{"version":3,"file":"static/js/main.87b6f676.js","mappings":"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G,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,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BAEVvhN,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,EAAAA,uBAAAA,+BAAYuhN,oBC9BXjlM,ICCA,IAAIknF,IDDUj0G,OAAO22C,OAAO,KAC5Bc,GAAez3C,OAAO22C,OAAO,CAAC,GEAnB,SAAAs/E,GACtBtqG,EACAjC,EACAn3B,GAEA,YAAO,IAFPA,IAAAA,EAAiEklD,IAEzD9rB,EAAMpoB,QAAUhR,EAAagR,OAASooB,EAAMpoB,OAAUmmB,GAAiBn3B,EAAagR,KAC9F,CCPA,IAwIAmwB,GAAe,IAAIugF,IAxIF,CACf,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,IACA,KACA,MACA,MACA,QACA,MACA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,UCrIIjyF,GAAc,wCAEd0uG,GAAe,WAMG,SAAAuO,GAAOtzG,GAC7B,OAAOA,EACJzb,QAAQ8R,GAAa,KACrB9R,QAAQwgH,GAAc,GAC3B,CCdA,IAAMwV,GAAgB,WAOhBlnH,GAAoB,SAAC2M,GAAiB,OAAAlT,OAAOitE,aAAa/5D,GAAQA,EAAO,GAAK,GAAK,IAA7C,EAGpB,SAAArH,GAAuBqH,GAC7C,IACIjC,EADAn3B,EAAO,GAIX,IAAKm3B,EAAI/3B,KAAKg5B,IAAIgB,GAAOjC,EAXP,GAWwBA,EAAKA,EAX7B,GAWgD,EAChEn3B,EAAOysB,GAAkB0K,EAZT,IAY4Bn3B,EAG9C,OAAQysB,GAAkB0K,EAfR,IAe2Bn3B,GAAM2d,QAAQg2H,GAAe,QAC5E,CCpBO,IAAAQ,GAKMj6G,GAAQ,SAACd,EAAWjC,GAG/B,IAFA,IAAIn3B,EAAIm3B,EAAEl4B,OAEHe,GACLo5B,EAAS,GAAJA,EAAUjC,EAAE63C,aAAahvE,GAGhC,OAAOo5B,CACT,EAGa8H,GAAO,SAAC9H,GACnB,OAAOc,GAjBW,KAiBCd,EACrB,ECfwB,SAAAumM,GAAoBvmM,GAC1C,OAAOrH,GAAuBmP,GAAK9H,KAAS,EAC9C,CCHwB,SAAA6rB,GAAiB7rB,GACvC,OAEGA,EAA8CzoB,aAC9CyoB,EAAoB9oB,MACrB,WAEJ,CCPwB,SAAAk4H,GAAMpvG,GAC5B,MACoB,iBAAXA,IACmB,CAI9B,CCNA,IAAMqoG,GAA8B,mBAAX9mH,QAAyBA,OAAOC,IAGnD67H,GAAkBhV,GAAY9mH,OAAOC,IAAI,cAAgB,MACzDy5H,GAAyB5S,GAAY9mH,OAAOC,IAAI,qBAAuB,MAKvEqmB,GAAgB,CACpB7B,mBAAA,EACAC,aAAA,EACAC,cAAA,EACApuB,cAAA,EACAP,aAAA,EACA4uB,iBAAA,EACAC,0BAAA,EACAC,0BAAA,EACA98B,QAAA,EACAi2B,WAAA,EACAr5B,MAAA,GAGIoiI,GAAgB,CACpBrxH,MAAA,EACArR,QAAA,EACAic,WAAA,EACAykB,QAAA,EACAC,QAAA,EACA5gC,WAAA,EACA6gC,OAAA,GAWIm0G,GAAe,CACnBt2G,UAAA,EACAqC,SAAA,EACA7uB,cAAA,EACAP,aAAA,EACAioB,WAAA,EACAr5B,MAAA,GAGIo/H,KAAYwV,GAAG,CAAC,GACnBE,IAlByB,CAC1B32G,UAAA,EACA0C,QAAA,EACAlvB,cAAA,EACAP,aAAA,EACAioB,WAAA,GAcAu7G,GAACsC,IAAkBzC,GAAAG,IAcrB,SAASc,GAAW77G,GAElB,OAPqB,SAFrBjC,EASWiC,IAP8BjC,EAAO53B,KAAKm+B,YAE7B+4G,GAMfzC,GAIF,aAAc56G,EACjBulG,GAAavlG,EAAoBsE,UACjCuD,GAjBN,IACE9J,CAiBF,CAEA,IAAMu/G,GAAiBjpI,OAAOC,eACxBg6H,GAAsBj6H,OAAO6yB,oBAC7B2qG,GAAwBx9H,OAAOwwB,sBAC/Bk7F,GAA2B1rH,OAAO8yB,yBAClCs5F,GAAiBpsH,OAAO+yB,eACxB8rD,GAAkB7+E,OAAOyN,UAiBP,SAAAw+G,GAItBtgG,EAAoBjC,EAAoBn3B,GACxC,GAA+B,iBAApBm3B,EAA8B,CAGvC,GAAIm1D,GAAiB,CACnB,IAAMjzD,EAAqBwgG,GAAe1iG,GACtCkC,GAAsBA,IAAuBizD,IAC/CotC,GAAqBtgG,EAAiBC,EAAoBr5B,EAE7D,CAED,IAAIo3B,EAA4BswG,GAAoBvwG,GAEhD8zG,KACF7zG,EAAOA,EAAKx3B,OAAOqrI,GAAsB9zG,KAM3C,IAHA,IAAM31B,EAAgByzI,GAAW77G,GAC3Br4B,EAAgBk0I,GAAW99G,GAExBz1B,EAAI,EAAGA,EAAI01B,EAAKn4B,SAAUyC,EAAG,CACpC,IAAMsuB,EAAMoH,EAAK11B,GACjB,KACIsuB,KAAO2xG,IACP3hI,GAAeA,EAAYgwB,IAC3BjvB,GAAiBivB,KAAOjvB,GACxBS,GAAiBwuB,KAAOxuB,GAC1B,CACA,IAAMC,EAAa03H,GAAyBhiG,EAAiBnH,GAE7D,IAEE0mH,GAAet9G,EAAiBpJ,EAAKvuB,EACtC,CAAC,MAAO23B,GAER,CACF,CACF,CACF,CAED,OAAOA,CACT,CCpJwB,SAAA15B,GAAW05B,GACjC,MAAuB,mBAATA,CAChB,CCAwB,SAAAwgG,GAAkBxgG,GACxC,MAAyB,iBAAXA,GAAuB,sBAAuBA,CAC9D,CCDgB,SAAAmgG,GAAYngG,EAAwBjC,GAClD,OAAOiC,GAAKjC,EAAI,GAAAv3B,OAAGw5B,EAAC,KAAAx5B,OAAIu3B,GAAMiC,GAAKjC,GAAK,EAC1C,CAEgB,SAAA2hG,GAAgB1/F,EAAejC,GAC7C,GAAmB,IAAfiC,EAAIn6B,OACN,MAAO,GAIT,IADA,IAAIe,EAASo5B,EAAI,GACRC,EAAI,EAAGA,EAAID,EAAIn6B,OAAQo6B,IAC9Br5B,GAAUm3B,EAAMA,EAAMiC,EAAIC,GAAKD,EAAIC,GAErC,OAAOr5B,CACT,CCjBwB,SAAAi5H,GAAc7/F,GACpC,OACQ,OAANA,GACa,iBAANA,GACPA,EAAEne,YAAY3K,OAAS7C,OAAO6C,QAE5B,UAAW8oB,GAAKA,EAAEsE,SAExB,CCNA,SAAS87F,GAAiBpgG,EAAajC,EAAan3B,GAGlD,QAAI,IAH8CA,IAAAA,GAAA,IAG7CA,IAAei5H,GAAc7/F,KAAY/rB,MAAMuC,QAAQwpB,GAC1D,OAAOjC,EAGT,GAAI9pB,MAAMuC,QAAQunB,GAChB,IAAK,IAAIkC,EAAM,EAAGA,EAAMlC,EAAOl4B,OAAQo6B,IACrCD,EAAOC,GAAOmgG,GAAiBpgG,EAAOC,GAAMlC,EAAOkC,SAEhD,GAAI4/F,GAAc9hG,GACvB,IAAK,IAAMkC,KAAOlC,EAChBiC,EAAOC,GAAOmgG,GAAiBpgG,EAAOC,GAAMlC,EAAOkC,IAIvD,OAAOD,CACT,CCJgB,SAAA0gG,GAAY1gG,EAAgBjC,GAC1C1pB,OAAOC,eAAe0rB,EAAQ,WAAY,CAAEt6B,MAAOq4B,GACrD,CCSwB,SAAAmiG,GACtBniG,GAAA,IACA,IAAwBn3B,EAAA,GAAAq5B,EAAA,EAAxBA,EAAwBr6B,UAAAC,OAAxBo6B,IAAAr5B,EAAwBq5B,EAAA,GAAAr6B,UAAAq6B,GAExB,OACS,IAAI54B,MACT,0IAAAb,OAA0Iu3B,EAAI,0BAAAv3B,OAC5II,EAAef,OAAS,EAAI,UAAUW,OAAAI,EAAeI,KAAK,OAAU,IAM5E,CCnCO,IAMDg5H,GAAiB,WAKrB,SAAAhgG,EAAYA,GACV3mB,KAAKmtN,WAAa,IAAIC,YARR,KASdptN,KAAKxT,OATS,IAUdwT,KAAKgyG,IAAMrrF,CACZ,CAyEH,OAvEEA,EAAYle,UAAA4kN,aAAZ,SAAa1mM,GAEX,IADA,IAAIjC,EAAQ,EACHn3B,EAAI,EAAGA,EAAIo5B,EAAOp5B,IACzBm3B,GAAS1kB,KAAKmtN,WAAW5/N,GAG3B,OAAOm3B,CAAA,EAGTiC,EAAAle,UAAAgO,YAAA,SAAYkQ,EAAejC,GACzB,GAAIiC,GAAS3mB,KAAKmtN,WAAW3gO,OAAQ,CAKnC,IAJA,IAAMe,EAAYyS,KAAKmtN,WACjBvmM,EAAUr5B,EAAUf,OAEtBm4B,EAAUiC,EACPD,GAAShC,GAEd,IADAA,IAAY,GACE,EACZ,MAAMkiG,GAAY,GAAI,GAAA15H,OAAGw5B,IAI7B3mB,KAAKmtN,WAAa,IAAIC,YAAYzoM,GAClC3kB,KAAKmtN,WAAWhgN,IAAI5f,GACpByS,KAAKxT,OAASm4B,EAEd,IAAK,IAAI51B,EAAI63B,EAAS73B,EAAI41B,EAAS51B,IACjCiR,KAAKmtN,WAAWp+N,GAAK,CAExB,CAID,IAFA,IAAIT,EAAY0R,KAAKqtN,aAAa1mM,EAAQ,GAE1B13B,GAAPF,EAAI,EAAO21B,EAAMl4B,QAAQuC,EAAIE,EAAGF,IACnCiR,KAAKgyG,IAAIpgG,WAAWtjB,EAAWo2B,EAAM31B,MACvCiR,KAAKmtN,WAAWxmM,KAChBr4B,IAAA,EAKNq4B,EAAUle,UAAA6kN,WAAV,SAAW3mM,GACT,GAAIA,EAAQ3mB,KAAKxT,OAAQ,CACvB,IAAMk4B,EAAS1kB,KAAKmtN,WAAWxmM,GACzBp5B,EAAayS,KAAKqtN,aAAa1mM,GAC/BC,EAAWr5B,EAAam3B,EAE9B1kB,KAAKmtN,WAAWxmM,GAAS,EAEzB,IAAK,IAAIhC,EAAIp3B,EAAYo3B,EAAIiC,EAAUjC,IACrC3kB,KAAKgyG,IAAIngG,WAAWtkB,EAEvB,GAGHo5B,EAAQle,UAAA8kN,SAAR,SAAS5mM,GACP,IAAIjC,EAAM,GACV,GAAIiC,GAAS3mB,KAAKxT,QAAqC,IAA3BwT,KAAKmtN,WAAWxmM,GAC1C,OAAOjC,EAOT,IAJA,IAAMn3B,EAASyS,KAAKmtN,WAAWxmM,GACzBC,EAAa5mB,KAAKqtN,aAAa1mM,GAC/BhC,EAAWiC,EAAar5B,EAErBwB,EAAI63B,EAAY73B,EAAI41B,EAAU51B,IACrC21B,GAAO,GAAAv3B,OAAG6S,KAAKgyG,IAAI9jG,QAAQnf,IAAK5B,OAAAs7B,IAGlC,OAAO/D,CAAA,EAEViC,CAAD,CAlFuB,GCPnB6gG,GAAuC,IAAIjvG,IAC3C+uG,GAAuC,IAAI/uG,IAC3CquG,GAAgB,EAQPuD,GAAgB,SAACxjG,GAC5B,GAAI6gG,GAAgBmE,IAAIhlG,GACtB,OAAO6gG,GAAgBtsH,IAAIyrB,GAG7B,KAAO2gG,GAAgBqE,IAAI/E,KACzBA,KAGF,IAAMliG,EAAQkiG,KAQd,OAFAY,GAAgBr6G,IAAIwZ,EAAIjC,GACxB4iG,GAAgBn6G,IAAIuX,EAAOiC,GACpBjC,CACT,EAMa6iG,GAAgB,SAAC5gG,EAAYjC,GAExCkiG,GAAgBliG,EAAQ,EAExB8iG,GAAgBr6G,IAAIwZ,EAAIjC,GACxB4iG,GAAgBn6G,IAAIuX,EAAOiC,EAC7B,ECxCM2/F,GAAW,SAASn5H,OAAA+B,GAAA,MAAA/B,OAAY03B,GAAe,MAAA13B,OAAKq7B,GAAU,MAC9Dy/F,GAAY,IAAI/6H,OAAO,IAAIC,OAAA+B,GAAqD,iDAkChF25H,GAA4B,SAACliG,EAAcjC,EAAYn3B,GAI3D,IAHA,IACIq5B,EADEjC,EAAQp3B,EAAQY,MAAM,KAGnBY,EAAI,EAAGT,EAAIq2B,EAAMn4B,OAAQuC,EAAIT,EAAGS,KAClC63B,EAAOjC,EAAM51B,KAChB43B,EAAM6mM,aAAa9oM,EAAIkC,EAG7B,EAEMojG,GAAwB,SAACrjG,EAAcjC,GAI3C,IAAK,IAALn3B,EAHMq5B,GAA8B,QAArBr5B,EAAAm3B,EAAM5O,mBAAA,IAAevoB,EAAAA,EAAA,IAAIY,MAAMs6B,IACxC9D,EAAkB,GAEf51B,EAAI,EAAGT,EAAIs4B,EAAMp6B,OAAQuC,EAAIT,EAAGS,IAAK,CAC5C,IAAME,EAAO23B,EAAM73B,GAAGgmB,OACtB,GAAK9lB,EAAL,CAEA,IAAMsuB,EAAStuB,EAAK5B,MAAM46H,IAE1B,GAAI1qG,EAAQ,CACV,IAAMvuB,EAAkC,EAA1BvB,SAAS8vB,EAAO,GAAI,IAC5ByJ,EAAKzJ,EAAO,GAEJ,IAAVvuB,IAEFu4H,GAAcvgG,EAAIh4B,GAGlB65H,GAA0BliG,EAAOK,EAAIzJ,EAAO,IAC5CoJ,EAAM8mM,SAASh3M,YAAYznB,EAAO21B,IAGpCA,EAAMn4B,OAAS,CAChB,MACCm4B,EAAMv1B,KAAKH,EAnBO,CAqBrB,CACH,EAEay+N,GAAiB,SAAC/mM,GAG7B,IAFA,IAAMjC,EAAQlgB,SAAS+lB,iBAAiB+7F,IAE/B/4H,EAAI,EAAGq5B,EAAIlC,EAAMl4B,OAAQe,EAAIq5B,EAAGr5B,IAAK,CAC5C,IAAMo3B,EAAOD,EAAMn3B,GACfo3B,GAAQA,EAAKzP,aAAahmB,MAAas1B,KACzCwlG,GAAsBrjG,EAAOhC,GAEzBA,EAAKnQ,YACPmQ,EAAKnQ,WAAWgC,YAAYmO,GAGjC,CACH,EC3Fc,SAAUmjG,KACtB,OAAkD6lG,oBAAAA,EACpD,CCEA,IAOavlG,GAAe,SAACzhG,GAC3B,IAAMjC,EAAOlgB,SAASoQ,KAChBrnB,EAASo5B,GAAUjC,EACnBkC,EAAQpiB,SAASsD,cAAc,SAC/B6c,EAXiB,SAACgC,GACxB,IAAMjC,EAAM9pB,MAAMi1I,KAAKlpH,EAAO4D,iBAAmC,SAASp9B,OAAA+B,GAAU,OAEpF,OAAOw1B,EAAIA,EAAIl4B,OAAS,EAC1B,CAJyB,CAWYe,GAC7BwB,OAAA,IAAc41B,EAA0BA,EAAUjQ,YAAc,KAEtEkS,EAAM5Q,aAAa9mB,GAASs1B,IAC5BoC,EAAM5Q,aAAa6O,GAAiB2D,IAEpC,IAAMl6B,EAAQw5H,KAMd,OAJIx5H,GAAOs4B,EAAM5Q,aAAa,QAAS1nB,GAEvCf,EAAO4oB,aAAayQ,EAAO73B,GAEpB63B,CACT,ECfa+gG,GAAQ,WAOnB,SAAAhhG,EAAYA,GACV3mB,KAAK6C,QAAUulH,GAAazhG,GAG5B3mB,KAAK6C,QAAQwT,YAAY7R,SAASy8H,eAAe,KAEjDjhI,KAAKqL,MDKe,SAACsb,GACvB,GAAIA,EAAItb,MACN,OAAOsb,EAAItb,MAKb,IADQ,IAAAqZ,EAAgBlgB,SAAQopN,YACvBrgO,EAAI,EAAGq5B,EAAIlC,EAAYl4B,OAAQe,EAAIq5B,EAAGr5B,IAAK,CAClD,IAAMo3B,EAAQD,EAAYn3B,GAC1B,GAAIo3B,EAAMkpM,YAAclnM,EACtB,OAAOhC,CAEV,CAED,MAAMkiG,GAAY,GACpB,CAfwB,CCLE7mH,KAAK6C,SAC3B7C,KAAKxT,OAAS,CACf,CA2BH,OAzBEm6B,EAAAle,UAAAmJ,WAAA,SAAW+U,EAAejC,GACxB,IAGE,OAFA1kB,KAAKqL,MAAMuG,WAAW8S,EAAMiC,GAC5B3mB,KAAKxT,UAAA,CAEN,CAAC,MAAOm6B,GACP,OAAO,CACR,GAGHA,EAAUle,UAAAoJ,WAAV,SAAW8U,GACT3mB,KAAKqL,MAAMwG,WAAW8U,GACtB3mB,KAAKxT,QAAA,EAGPm6B,EAAOle,UAAAyF,QAAP,SAAQyY,GACN,IAAMjC,EAAO1kB,KAAKqL,MAAMiK,SAASqR,GAGjC,OAAIjC,GAAQA,EAAKopM,QACRppM,EAAKopM,QAEL,IAGZnnM,CAAD,CA1CqB,GA6CRoiG,GAAO,WAKlB,SAAApiG,EAAYA,GACV3mB,KAAK6C,QAAUulH,GAAazhG,GAC5B3mB,KAAK4qF,MAAQ5qF,KAAK6C,QAAQgS,WAC1B7U,KAAKxT,OAAS,CACf,CA0BH,OAxBEm6B,EAAAle,UAAAmJ,WAAA,SAAW+U,EAAejC,GACxB,GAAIiC,GAAS3mB,KAAKxT,QAAUm6B,GAAS,EAAG,CACtC,IAAMp5B,EAAOiX,SAASy8H,eAAev8G,GAIrC,OAFA1kB,KAAK6C,QAAQsT,aAAa5oB,EADVyS,KAAK4qF,MAAMjkE,IACgB,MAC3C3mB,KAAKxT,UAAA,CAEN,CACC,OAAO,GAIXm6B,EAAUle,UAAAoJ,WAAV,SAAW8U,GACT3mB,KAAK6C,QAAQ2T,YAAYxW,KAAK4qF,MAAMjkE,IACpC3mB,KAAKxT,QAAA,EAGPm6B,EAAOle,UAAAyF,QAAP,SAAQyY,GACN,OAAIA,EAAQ3mB,KAAKxT,OACRwT,KAAK4qF,MAAMjkE,GAAO7Q,YAElB,IAGZ6Q,CAAD,CAnCoB,GAsCPqhG,GAAU,WAKrB,SAAArhG,EAAYA,GACV3mB,KAAK8N,MAAQ,GACb9N,KAAKxT,OAAS,CACf,CAwBH,OAtBEm6B,EAAAle,UAAAmJ,WAAA,SAAW+U,EAAejC,GACxB,OAAIiC,GAAS3mB,KAAKxT,SAChBwT,KAAK8N,MAAMyC,OAAOoW,EAAO,EAAGjC,GAC5B1kB,KAAKxT,UAAA,EACE,EAMXm6B,EAAUle,UAAAoJ,WAAV,SAAW8U,GACT3mB,KAAK8N,MAAMyC,OAAOoW,EAAO,GACzB3mB,KAAKxT,QAAA,EAGPm6B,EAAOle,UAAAyF,QAAP,SAAQyY,GACN,OAAIA,EAAQ3mB,KAAKxT,OACRwT,KAAK8N,MAAM6Y,GAEX,IAGZA,CAAD,CAhCuB,GCxFnBujG,GAAmBviG,GAajByiG,GAA+B,CACnC2jG,UAAWpmM,GACXqmM,mBAAoB/mM,IAItB8lG,GAAA,WAYE,SAAApmG,EACEA,EACAp5B,EACAq5B,QAAA,IAFAD,IAAAA,EAAgC8rB,SAAA,IAChCllD,IAAAA,EAA4C,IAF9C,IAqBCo3B,EAAA,KAhBC3kB,KAAKrJ,QAAO+tB,GAAAA,GAAA,GACP0lG,IACAzjG,GAGL3mB,KAAKiuN,GAAK1gO,EACVyS,KAAKkuN,MAAQ,IAAI31M,IAAIqO,GACrB5mB,KAAKmuN,SAAWxnM,EAAQonM,UAGnB/tN,KAAKmuN,QAAUxmM,IAAcuiG,KAChCA,IAAA,EACAwjG,GAAe1tN,OAGjBqnH,GAAYrnH,MAAM,WAAM,OJtDD,SAAC2mB,GAK1B,IAJA,IAAMjC,EAAMiC,EAAM8mM,SACVlgO,EAAWm3B,EAAGl4B,OAElBo6B,EAAM,GAAAjC,EAAA,SACDp3B,GACP,IAAMo3B,EDqBmB,SAACgC,GAC5B,OAAO2gG,GAAgBpsH,IAAIyrB,EAC7B,CAF6B,CCrBAp5B,GACzB,QAAI,IAAAo3B,EAA2B,iBAE/B,IAAM51B,EAAQ43B,EAAMunM,MAAMhzN,IAAIypB,GACxBr2B,EAAQo2B,EAAI6oM,SAAShgO,GAC3B,QAAI,IAAAwB,IAAwBA,EAAMmG,MAAyB,IAAjB5G,EAAM9B,OAAuB,iBAEvE,IAAMyC,EAAW,GAAG9B,OAAA+B,GAAA,MAAA/B,OAAYI,EAAK,SAAAJ,OAAQw3B,EAAE,MAE3CpH,EAAU,YACVxuB,GACFA,EAAM6hB,SAAQ,SAAA+V,GACRA,EAAKn6B,OAAS,IAChB+wB,GAAW,GAAApwB,OAAGw5B,EAAI,KAEtB,IAKFC,GAAO,GAAGz5B,OAAAmB,GAAQnB,OAAA8B,EAAA,cAAA9B,OAAqBowB,EAAO,MAAApwB,OAAKs7B,GAAA,EArB5C15B,EAAQ,EAAGA,EAAQxB,EAAQwB,IAAA41B,EAA3B51B,GAwBT,OAAO63B,CACT,CA9B2B,CIsDajC,EAAK,GAC1C,CAoEH,OA7FSgC,EAAUynM,WAAjB,SAAkBznM,GAChB,OAAOwjG,GAAcxjG,EAAA,EA0BvBA,EAAAle,UAAA4lN,UAAA,YACOruN,KAAKmuN,QAAUxmM,IAClB+lM,GAAe1tN,KAAA,EAInB2mB,EAAAle,UAAA6lN,uBAAA,SAAuB/gO,EAA+Bq5B,GACpD,YAAO,IAD6CA,IAAAA,GAAA,GAC7C,IAAID,EACJjC,GAAAA,GAAA,GAAA1kB,KAAKrJ,SAAYpJ,GACtByS,KAAKiuN,GACJrnM,GAAa5mB,KAAKkuN,YAAA,EAAU,EAIjCvnM,EAAkBle,UAAA8lN,mBAAlB,SAAmB5nM,GACjB,OAAQ3mB,KAAKiuN,GAAGtnM,IAAO3mB,KAAKiuN,GAAGtnM,IAAO,GAAK,GAI7CA,EAAAle,UAAAglN,OAAA,WACE,OAAOztN,KAAKgyG,MAAQhyG,KAAKgyG,KN/EErrF,EKAR,SAACA,GAAE,IAAUjC,EAAiBiC,EAAAqnM,kBAAEzgO,EAAMo5B,EAAA/f,OAC3D,OAAA+f,EAAAonM,SACS,IAAI/lG,GAAWz6H,GACbm3B,EACF,IAAIijG,GAASp6H,GAEb,IAAIw7H,GAAQx7H,EAEvB,CARuB,CC+EmCyS,KAAKrJ,SN9EtD,IAAIgwH,GAAkBhgG,KADD,IAACA,CAAA,EMmF7BA,EAAAle,UAAA+lN,aAAA,SAAa7nM,EAAYjC,GACvB,OAAO1kB,KAAKkuN,MAAMviG,IAAIhlG,IAAQ3mB,KAAKkuN,MAAMhzN,IAAIyrB,GAAYglG,IAAIjnG,EAAA,EAI/DiC,EAAAle,UAAA+kN,aAAA,SAAa7mM,EAAYjC,GAGvB,GAFAylG,GAAcxjG,GAET3mB,KAAKkuN,MAAMviG,IAAIhlG,GAKjB3mB,KAAKkuN,MAAMhzN,IAAIyrB,GAAY3Y,IAAI0W,OALT,CACvB,IAAMn3B,EAAa,IAAI0hH,IACvB1hH,EAAWygB,IAAI0W,GACf1kB,KAAKkuN,MAAM/gN,IAAIwZ,EAAIp5B,EACpB,GAMHo5B,EAAAle,UAAAgO,YAAA,SAAYkQ,EAAYjC,EAAcn3B,GACpCyS,KAAKwtN,aAAa7mM,EAAIjC,GACtB1kB,KAAKytN,SAASh3M,YAAY0zG,GAAcxjG,GAAKp5B,EAAA,EAI/Co5B,EAAUle,UAAAgmN,WAAV,SAAW9nM,GACL3mB,KAAKkuN,MAAMviG,IAAIhlG,IAChB3mB,KAAKkuN,MAAMhzN,IAAIyrB,GAAYnkB,OAAA,EAKhCmkB,EAAUle,UAAAimN,WAAV,SAAW/nM,GACT3mB,KAAKytN,SAASH,WAAWnjG,GAAcxjG,IACvC3mB,KAAKyuN,WAAW9nM,EAAA,EAIlBA,EAAAle,UAAAkmN,SAAA,WAGE3uN,KAAKgyG,SAAA,CAAM,EAEdrrF,CAAD,CArGA,GCvBMkmG,GAAY,KACZjzC,GAAgB,gBAWtB,SAAS0wC,GAAuB3jG,EAA4BjC,GAC1D,OAAOiC,EAASr5B,KAAI,SAAAq5B,GAclB,MAbkB,SAAdA,EAAK75B,OAEP65B,EAAKt6B,MAAQ,GAAGc,OAAAu3B,EAAA,KAAAv3B,OAAaw5B,EAAKt6B,OAElCs6B,EAAKt6B,MAAQs6B,EAAKt6B,MAAMuiO,WAAW,IAAK,IAAAzhO,OAAIu3B,EAAS,MACrDiC,EAAKrrB,MAASqrB,EAAKrrB,MAAmBhO,KAAI,SAAAq5B,GACxC,MAAO,GAAGx5B,OAAAu3B,EAAa,KAAAv3B,OAAAw5B,EACzB,KAGE/rB,MAAMuC,QAAQwpB,EAAKzmB,WAA2B,eAAdymB,EAAK75B,OACvC65B,EAAKzmB,SAAWoqH,GAAuB3jG,EAAKzmB,SAAUwkB,IAEjDiC,CACT,GACF,CAEwB,SAAAuhG,GACtBvhG,GAAA,IAKIjC,EACAn3B,EACAq5B,EAPJjC,OAAA,IAAAgC,EAG2B8rB,GAAsB9rB,EAF/C53B,EAAA41B,EAAAhuB,QAAArI,OAAA,IAAOS,EAAG0jD,GAAsB1jD,EAChCE,EAAuD01B,EAAAvb,QAAvDmU,OAAA,IAAOtuB,EAAG84B,GAA6C94B,EAOnDD,EAAwB,SAAC23B,EAAeC,EAAgBjC,GAC5D,OAKEA,EAAOs0I,WAAW1rK,IAClBo3B,EAAO60I,SAASjsK,IAChBo3B,EAAOiqM,WAAWrhO,EAAW,IAAIf,OAAS,EAEnC,IAAAW,OAAIu3B,GAGNiC,CACT,EAuBMK,EAAczJ,EAAQ9d,QAE5BunB,EAAY53B,MAX8C,SAAAu3B,GACpDA,EAAQ75B,OAASib,IAAkB4e,EAAQt6B,MAAMylH,SAAS,OAC3DnrF,EAAQrrB,MAAmB,GAAKqrB,EAAQrrB,MAAM,GAE5C4P,QAAQ2hH,GAAWt/H,GACnB2d,QAAQ0b,EAAiB53B,GAEhC,IASIV,EAAQklB,QACVwT,EAAY53B,KAAK2Y,IAGnBif,EAAY53B,KAAK2Y,IAEjB,IAAM8W,EAA8B,SAClC8H,EACAhC,EAIA51B,EACAE,QAAA,IALA01B,IAAAA,EAAa,aAIb51B,IAAAA,EAAW,aACXE,IAAAA,EAAiB,KAKjBy1B,EAAez1B,EACf1B,EAAYo3B,EACZiC,EAAkB,IAAI15B,OAAO,KAAAC,OAAKI,EAAc,OAAE,KAElD,IAAMgwB,EAAUoJ,EAAIzb,QAAQ0uE,GAAe,IACvC5qF,EAAW+Y,GACbhZ,GAAU41B,EAAW,GAAAx3B,OAAG4B,EAAM,KAAA5B,OAAIw3B,EAAQ,OAAAx3B,OAAMowB,EAAO,MAAOA,GAG5DjvB,EAAQugO,YACV7/N,EAAWs7H,GAAuBt7H,EAAUV,EAAQugO,YAGtD,I7B/FuBjqL,E6B+FjB/lB,EAAkB,GAOxB,OALA9W,GACE/Y,E7BnHC,SAAqB8/N,GAC3B,IAAItiO,EAASm+N,GAAOmE,GAEpB,OAAO,SAAUjsN,EAASrV,EAAO0S,EAAU0kC,GAG1C,IAFA,IAAI7pC,EAAS,GAEJzM,EAAI,EAAGA,EAAI9B,EAAQ8B,IAC3ByM,GAAU+zN,EAAWxgO,GAAGuU,EAASrV,EAAO0S,EAAU0kC,IAAa,GAEhE,OAAO7pC,CACR,CACD,C6ByGMgN,CAAkBif,EAAY75B,Q7BnGTy3C,E6BmGiC,SAAAje,GAAS,OAAA9H,EAAMzvB,KAAKu3B,EAAM,E7BlG9E,SAAU9jB,GACXA,EAAQhC,OACRgC,EAAUA,EAAQg3G,SACrBj1E,EAAS/hC,EACZ,M6BiGUgc,CACT,EAcA,OAZAA,EAAek3I,KAAOx4I,EAAQ/wB,OAC1B+wB,EACG5hB,QAAO,SAACgrB,EAAKjC,GAKZ,OAJKA,EAAO7mB,MACVgpH,GAAiB,IAGZp/F,GAAMd,EAAKjC,EAAO7mB,KAC1B,GnB5IW,MmB6IXkP,WACH,GAEG8R,CACT,CC1IO,IAAM6pG,GAAwB,IAAIqE,GAC5BtF,GAA0BS,KAQ1B6C,GAAoBnkG,EAAAA,cAAwC,CACvEmoM,uBAAA,EACAptM,WAAY+mG,GACZsmG,OAAQvnG,KAMGc,IAHqBwC,GAAkBwlC,SAGvB3pI,EAAAA,mBAAM,IAA8B,SAGjDqoM,KACd,OAAO1xM,EAAAA,EAAAA,YAAWwtG,GACpB,CAkDM,SAAUF,GAAkBlkG,GAC1B,IAAAjC,GAAwB31B,EAAAA,EAAAA,UAAS43B,EAAMuoM,eAAtC3hO,EAAOm3B,EAAA,GAAEC,EAAAD,EAAA,GACRnH,EAAe0xM,KAAAttM,WAEjB3yB,GAAqBV,EAAAA,EAAAA,UAAQ,WACjC,IAAIo2B,EAAQnH,EAYZ,OAVIoJ,EAAMtb,MACRqZ,EAAQiC,EAAMtb,MACLsb,EAAM/f,SACf8d,EAAQA,EAAM4pM,uBAAuB,CAAE1nN,OAAQ+f,EAAM/f,SAAA,IAGnD+f,EAAMwoM,wBACRzqM,EAAQA,EAAM4pM,uBAAuB,CAAEN,mBAAA,KAGlCtpM,CACT,GAAG,CAACiC,EAAMwoM,sBAAuBxoM,EAAMtb,MAAOsb,EAAM/f,OAAQ2W,IAEtDyJ,GAAS14B,EAAAA,EAAAA,UACb,WACE,OAAA45H,GAAqB,CACnBvxH,QAAS,CAAEk4N,UAAWloM,EAAMkoM,UAAWr7M,OAAQmT,EAAMyoM,sBACrDhmN,QAAO7b,GAFT,GAIF,CAACo5B,EAAMyoM,qBAAsBzoM,EAAMkoM,UAAWthO,KAGhD0B,EAAAA,EAAAA,YAAU,WACH4vB,KAAatxB,EAASo5B,EAAMuoM,gBAAgBvqM,EAAWgC,EAAMuoM,cACpE,GAAG,CAACvoM,EAAMuoM,gBAEV,IAAMnnN,GAAyBzZ,EAAAA,EAAAA,UAC7B,WAAM,MAAC,CACLygO,kBAAmBpoM,EAAMooM,kBACzBptM,WAAY3yB,EACZggO,OAAMhoM,EAHF,GAKN,CAACL,EAAMooM,kBAAmB//N,EAAoBg4B,IAGhD,OACEJ,EAAAA,cAACmkG,GAAkBulC,SAAS,CAAAjkK,MAAO0b,GACjC6e,EAAAA,cAAC2hG,GAAc+nC,SAAQ,CAACjkK,MAAO26B,GAASL,EAAMzmB,UAGpD,CCzHA,IAAAqqH,GAAA,WAKE,SAAY5jG,EAAAA,EAAcjC,GAA1B,IAQCn3B,EAAA,KAED,KAAAq9I,OAAS,SAACjkH,EAAwBjC,QAAA,IAAAA,IAAAA,EAAwC+iG,IACxE,IAAM7gG,EAAer5B,EAAKsQ,KAAO6mB,EAAeqxI,KAE3CpvI,EAAW6nM,aAAajhO,EAAK6W,GAAIwiB,IACpCD,EAAWlQ,YACTlpB,EAAK6W,GACLwiB,EACAlC,EAAen3B,EAAKugB,MAAO8Y,EAAc,cAG/C,EAnBE5mB,KAAKnC,KAAO8oB,EACZ3mB,KAAKoE,GAAK,gBAAgBjX,OAAAw5B,GAC1B3mB,KAAK8N,MAAQ4W,EAEb2iG,GAAYrnH,MAAM,WAChB,MAAM6mH,GAAY,GAAIpzG,OAAOlmB,EAAKsQ,MACpC,GACD,CAiBH,OAHE8oB,EAAOle,UAAA4mN,QAAP,SAAQ1oM,GACN,YAAO,IADDA,IAAAA,EAAwC8gG,IACvCznH,KAAKnC,KAAO8oB,EAAeovI,IAAA,EAErCpvI,CAAD,CA9BA,GCNMugG,GAAU,SAACvgG,GAAc,OAAAA,GAAK,KAAOA,GAAK,KAexB,SAAAwhG,GAAmBxhG,GAGzC,IAFA,IAAIjC,EAAS,GAEJn3B,EAAI,EAAGA,EAAIo5B,EAAOn6B,OAAQe,IAAK,CACtC,IAAMq5B,EAAID,EAAOp5B,GAEjB,GAAU,IAANA,GAAiB,MAANq5B,GAA2B,MAAdD,EAAO,GACjC,OAAOA,EAGLugG,GAAQtgG,GACVlC,GAAU,IAAMkC,EAAElM,cAElBgK,GAAUkC,CAEb,CAED,OAAOlC,EAAOu0I,WAAW,OAAS,IAAMv0I,EAASA,CACnD,CCTA,IAAM2lG,GAAY,SAAC1jG,GACjB,aAAAA,IAAA,IAAyCA,GAA6B,KAAVA,CAA5D,EAEW0hG,GAAgB,SAAC3jG,GAC5B,ICzBsCn3B,EAAcq5B,EDyB9CjC,EAAQ,GAEd,IAAK,IAAM51B,KAAO21B,EAAK,CACrB,IAAMp2B,EAAMo2B,EAAI31B,GACX21B,EAAItxB,eAAerE,KAAQs7H,GAAU/7H,KAGrCsM,MAAMuC,QAAQ7O,IAAQA,EAAIghO,OAAUriO,GAAWqB,GAClDq2B,EAAMv1B,KAAK,GAAAjC,OAAGg7H,GAAUp5H,GAAI,KAAKT,EAAK,KAC7Bk4H,GAAcl4H,GACvBq2B,EAAMv1B,KAAN2Q,MAAA4kB,EAAAgC,GAAAA,GAAA,CAAW,GAAGx5B,OAAA4B,EAAO,OAAKs5H,GAAc/5H,IAAA,GAAI,CAAE,UAE9Cq2B,EAAMv1B,KAAK,GAAGjC,OAAAg7H,GAAUp5H,GAAS,MAAA5B,QCrCCI,EDqCewB,ECnCxC,OAFuC63B,EDqCMt4B,ICnCpB,kBAAVs4B,GAAiC,KAAVA,EAC1C,GAGY,iBAAVA,GAAgC,IAAVA,GAAiBr5B,KAAQuB,IAAcvB,EAAK0rK,WAAW,MAIjFxlJ,OAAOmT,GAAO7R,OAHZ,GAAG5nB,OAAAy5B,EAAS,OD8ByC,MAE7D,CAED,OAAOjC,CACT,EAEc,SAAUimG,GACtBjkG,EACAjC,EACAn3B,EACAq5B,GAEA,OAAIyjG,GAAU1jG,GACL,GAILwgG,GAAkBxgG,GACb,CAAC,IAAKx5B,OAAAw5B,EAAkD4oM,oBAI7DtiO,GAAW05B,IE5DR15B,GADmC8B,EF8DhB43B,IE7DG53B,EAAK0Z,WAAa1Z,EAAK0Z,UAAU4+H,mBF6D1B3iH,EAoBzB,CAACiC,GAFDikG,GAjBQjkG,EAAMjC,GAiBSA,EAAkBn3B,EAAYq5B,GAM5DD,aAAiB4jG,GACfh9H,GACFo5B,EAAMikH,OAAOr9I,EAAYq5B,GAClB,CAACD,EAAM0oM,QAAQzoM,KAEf,CAACD,GAKR6/F,GAAc7/F,GACT0hG,GAAc1hG,GAGlB/rB,MAAMuC,QAAQwpB,GAUZ/rB,MAAM6N,UAAUtb,OAAO4S,MAAMgoB,GANrBpB,EAMwCr5B,KANjC,SAAAq5B,GACpB,OAAAikG,GAAejkG,EAAUjC,EAAkBn3B,EAAYq5B,EAAvD,KAJO,CAACD,EAAM5Z,YAtCZ,IE/DsChe,CF2G5C,CGzGwB,SAAA+7H,GAAoCnkG,GAC1D,IAAK,IAAIjC,EAAI,EAAGA,EAAIiC,EAAMn6B,OAAQk4B,GAAK,EAAG,CACxC,IAAMn3B,EAAOo5B,EAAMjC,GAEnB,GAAIz3B,GAAWM,KAAU45H,GAAkB55H,GAGzC,OAAO,CAEV,CAED,OAAO,CACT,CCPA,IAAM+6H,GAAO75F,GAAKjG,IAKlByhG,GAAA,WAQE,SAAAtjG,EAAYA,EAAqBjC,EAAqBn3B,GACpDyS,KAAK8N,MAAQ6Y,EACb3mB,KAAKwvN,cAAgB,GACrBxvN,KAAKgiK,eACS,IACXz0K,GAA2BA,EAAUy0K,WACtCl3C,GAAcnkG,GAChB3mB,KAAKyvN,YAAc/qM,EACnB1kB,KAAK0vN,SAAWjoM,GAAM6gG,GAAM5jG,GAC5B1kB,KAAK2vN,UAAYpiO,EAIjBw/H,GAAWqhG,WAAW1pM,EACvB,CAmEH,OAjEEiC,EAAAle,UAAAmnN,wBAAA,SACEjpM,EACAjC,EACAn3B,GAEA,IAAIq5B,EAAQ5mB,KAAK2vN,UACb3vN,KAAK2vN,UAAUC,wBAAwBjpM,EAAkBjC,EAAYn3B,GACrE,GAGJ,GAAIyS,KAAKgiK,WAAaz0K,EAAOwoK,KAC3B,GAAI/1J,KAAKwvN,eAAiB9qM,EAAW8pM,aAAaxuN,KAAKyvN,YAAazvN,KAAKwvN,eACvE5oM,EAAQkgG,GAAYlgG,EAAO5mB,KAAKwvN,mBAC3B,CACL,IAAM7qM,EAAY0hG,GAChBuE,GAAQ5qH,KAAK8N,MAAO6Y,EAAkBjC,EAAYn3B,IAE9CwB,EAAOuwB,GAAamI,GAAMznB,KAAK0vN,SAAU/qM,KAAe,GAE9D,IAAKD,EAAW8pM,aAAaxuN,KAAKyvN,YAAa1gO,GAAO,CACpD,IAAMT,EAAqBf,EAAOo3B,EAAW,IAAIx3B,OAAA4B,QAAA,EAAmBiR,KAAKyvN,aACzE/qM,EAAWjO,YAAYzW,KAAKyvN,YAAa1gO,EAAMT,EAChD,CAEDs4B,EAAQkgG,GAAYlgG,EAAO73B,GAC3BiR,KAAKwvN,cAAgBzgO,CACtB,KACI,CAIL,IAHA,IAAIE,EAAcw4B,GAAMznB,KAAK0vN,SAAUniO,EAAOwoK,MAC1Cx4I,EAAM,GAEDvuB,EAAI,EAAGA,EAAIgR,KAAK8N,MAAMthB,OAAQwC,IAAK,CAC1C,IAAMg4B,EAAWhnB,KAAK8N,MAAM9e,GAE5B,GAAwB,iBAAbg4B,EACTzJ,GAAOyJ,OAGF,GAAIA,EAAU,CACnB,IAAMnI,EAAawnG,GACjBuE,GAAQ5jG,EAAUL,EAAkBjC,EAAYn3B,IAGlD0B,EAAcw4B,GAAMx4B,EAAa4vB,EAAa7vB,GAC9CuuB,GAAOsB,CACR,CACF,CAED,GAAItB,EAAK,CACP,IAAMxV,EAAOuX,GAAarwB,IAAgB,GAErCy1B,EAAW8pM,aAAaxuN,KAAKyvN,YAAa1nN,IAC7C2c,EAAWjO,YACTzW,KAAKyvN,YACL1nN,EACAxa,EAAOgwB,EAAK,IAAIpwB,OAAA4a,QAAA,EAAmB/H,KAAKyvN,cAI5C7oM,EAAQkgG,GAAYlgG,EAAO7e,EAC5B,CACF,CAED,OAAO6e,CAAA,EAEVD,CAAD,CAzFA,GCwBakpM,GAAejpM,EAAAA,mBAAM,GAELipM,GAAat/D,SCH1C,IAAMu/D,GAAyC,CAAC,EAyEzB,IAAI7gH,IAqF3B,SAAShtE,GAKPtb,EACAhC,EACA51B,GAEA,IAAMT,EAAqB64H,GAAkBxgG,GACvC13B,EAAwB03B,EACxBpJ,GAAwBw4G,GAAMpvG,GAGlC9H,EAGE8F,EAAOuM,MAHTnpB,OAAA,IAAA8W,EAAQkJ,GAAWlJ,EACnB/vB,EAEE61B,EAFsE8qM,YAAxEvgO,OAAA,IAAcJ,EA1KlB,SACE63B,EACAjC,GAEA,IAAMn3B,EAA8B,iBAAhBo5B,EAA2B,KAAOszG,GAAOtzG,GAE7DmpM,GAAYviO,IAASuiO,GAAYviO,IAAS,GAAK,EAE/C,IAAMq5B,EAAc,GAAGz5B,OAAAI,EAAA,KAAAJ,OAAQ+/N,GAG7B1kM,GAAaj7B,EAAOuiO,GAAYviO,KAGlC,OAAOm3B,EAAoB,GAAGv3B,OAAAu3B,EAAqB,KAAAv3B,OAAAy5B,GAAgBA,CACrE,CAfA,CA0K6BjC,EAAQzmB,YAAaymB,EAAQorM,mBAAkBjhO,EACxE01B,EACEG,EADuCzmB,YAAzC2mB,OAAA,IAAcL,EC/MM,SAAoBmC,GAC1C,OAAOovG,GAAMpvG,GAAU,UAAUx5B,OAAAw5B,GAAW,UAAUx5B,OAAAqlD,GAAiB7rB,GAAA,IACzE,CAFwB,CD+McA,GAAAnC,EAG9BiE,EACJ9D,EAAQzmB,aAAeymB,EAAQ8qM,YAC3B,GAAAtiO,OAAG8sI,GAAOt1G,EAAQzmB,aAAgB,KAAA/Q,OAAAw3B,EAAQ8qM,aAC1C9qM,EAAQ8qM,aAAevgO,EAGvBy4B,EACJr5B,GAAsBW,EAAsBiiC,MACxCjiC,EAAsBiiC,MAAM/jC,OAAO4a,GAAyCkX,OAAO1I,SAClFxO,EAEDkf,EAAsBtC,EAAOoqM,kBAEnC,GAAIzgO,GAAsBW,EAAsB8/N,kBAAmB,CACjE,IAAMnqM,EAAsB31B,EAAsB8/N,kBAElD,GAAIpqM,EAAQoqM,kBAAmB,CAC7B,IAAMhgG,EAA4BpqG,EAAQoqM,kBAG1C9nM,EAAoB,SAACN,EAAMjC,GACzB,OAAAE,EAAoB+B,EAAMjC,IAC1BqqG,EAA0BpoG,EAAMjC,EADhC,CAEH,MACCuC,EAAoBrC,CAEvB,CAED,IAAM6xG,EAAiB,IAAIxM,GACzBl7H,EACA05B,EACAn6B,EAAsBW,EAAsB+gO,oBAAA,GAG9C,SAAShzM,EAAiB2J,EAAoChC,GAC5D,OAzIJ,SACEgC,EACAhC,EACA51B,GAGE,IAAOT,EAMLq4B,EAAkBuK,MALpBjiC,EAKE03B,EALYqpM,eACdzyM,EAIEoJ,EAAkBloB,aAHpBogB,EAGE8H,EAHgBspM,mBAClBloN,EAEE4e,EAAkB4oM,kBADpBzgO,EACE63B,EAAA/f,OAEE1X,EAAe03B,EAAAA,WAAiBipM,IAChCrrM,EAAMyqM,KACNpqM,EAAoB8B,EAAmBooM,mBAAqBvqM,EAAIuqM,kBAOhEvmM,EAAQyoG,GAAetsG,EAAOz1B,EAAcquB,IAAiBk1B,GAE7DhqB,EA/DR,SACE9B,EACAp5B,EACAq5B,GAYA,IAVA,IAQIjC,EARE51B,EAAA21B,GAAAA,GAAA,GAGDn3B,GAAK,CAER4S,eAAA,EACA5B,MAAKqoB,IAIEt4B,EAAI,EAAGA,EAAIq4B,EAAMn6B,OAAQ8B,GAAK,EAAG,CAExC,IAAMW,EAAkBhC,GADxB03B,EAAUgC,EAAMr4B,IAC8Bq2B,EAAQ51B,GAAW41B,EAEjE,IAAK,IAAMpH,KAAOtuB,EAChBF,EAAQwuB,GACE,cAARA,EACIupG,GAAY/3H,EAAQwuB,GAA4BtuB,EAAgBsuB,IACxD,UAARA,EAAAmH,GAAAA,GAAA,GACO31B,EAAQwuB,IAAStuB,EAAgBsuB,IACtCtuB,EAAgBsuB,EAE3B,CAMD,OAJIhwB,EAAM4S,YACRpR,EAAQoR,UAAY2mH,GAAY/3H,EAAQoR,UAAW5S,EAAM4S,YAGpDpR,CACT,CAlCA,CA+DwCT,EAAgBq2B,EAAO6D,GACvDb,EAAgCc,EAAQynM,IAAMphO,EAC9Cm4B,EAA6B,CAAC,EAEpC,IAAK,IAAMrC,KAAO6D,OAAA,IACZA,EAAQ7D,IAGU,MAAXA,EAAI,IAAsB,OAARA,GAAyB,UAARA,GAAmB6D,EAAQlqB,QAAUiqB,IAEhE,gBAAR5D,EACTqC,EAAgBipM,GAAKznM,EAAQ0nM,YACnBtrM,IAAqBA,EAAkBD,EAAK+C,KACtDV,EAAgBrC,GAAO6D,EAAQ7D,KAkBnC,IAAMmqG,EA/GR,SACEpoG,EACAjC,GAEA,IAAMn3B,EAAM0hO,KAUZ,OARkBtoM,EAAeipM,wBAC/BlrM,EACAn3B,EAAIo0B,WACJp0B,EAAIyhO,OAMR,CAfA,CA+G8C//N,EAAgBw5B,GAMxDguG,EAAc3P,GAAYjoG,EAAoB9W,GAkBlD,OAjBIgnH,IACF0H,GAAe,IAAM1H,GAEnBtmG,EAAQtoB,YACVs2H,GAAe,IAAMhuG,EAAQtoB,WAG/B8mB,EAEE8uG,GAAMpuG,KACL+G,GAAYi9F,IAAIhkG,GACb,QACA,aACF8uG,EAEJxvG,EAAgB5oB,IAAMtP,GAEfi4B,EAAAA,EAAAA,eAAcW,EAAoBV,EAC3C,CAjFA,CAyI8CykG,EAAwB/kG,EAAOhC,EAC1E,CAED3H,EAAiB9e,YAAc2mB,EAM/B,IAAI6mG,EAAyB9kG,EAAAA,WAAiB5J,GA+D9C,OA1DA0uG,EAAuBx6F,MAAQvJ,EAC/B+jG,EAAuBskG,eAAiBv5F,EACxC/K,EAAuBxtH,YAAc2mB,EACrC6mG,EAAuBqjG,kBAAoB9nM,EAI3CykG,EAAuBukG,mBAAqB3hO,EACxCw4H,GAAY73H,EAAsBghO,mBAAoBhhO,EAAsBsgO,mBAC5E,GAEJ7jG,EAAuB6jG,kBAAoB9mM,EAG3CijG,EAAuB9kH,OAAStY,EAAqBW,EAAsB2X,OAAS+f,EAEpF3rB,OAAOC,eAAeywH,EAAwB,eAAgB,CAC5DxwH,IAAG,WACD,OAAO8E,KAAKowN,mBACb,EAEDjjN,IAAA,SAAIwZ,GACF3mB,KAAKowN,oBAAsB9hO,EpBlQT,SAAUq4B,GAAA,IAAa,IAAiBjC,EAAA,GAAAn3B,EAAA,EAAjBA,EAAiBhB,UAAAC,OAAjBe,IAAAm3B,EAAiBn3B,EAAA,GAAAhB,UAAAgB,GAC9D,IAAqB,IAAAq5B,EAAA,EAAAjC,EAAOD,EAAPkC,EAAAjC,EAAAn4B,OAAAo6B,IACnBmgG,GAAiBpgG,EADFhC,EAAAiC,IAAA,GAIjB,OAAOD,CACT,CANwB,CoBmQR,CAAE,EAAE13B,EAAsBwP,aAAckoB,GAC9CA,CACL,IAYH0gG,GAAYqE,GAAwB,WAAM,UAAAv+H,OAAIu+H,EAAuB6jG,kBAA3B,IAEtChyM,GAGF0pG,GACEyE,EAH+B/kG,EAK/B,CAEEuK,OAAA,EACA8+L,gBAAA,EACA9xN,aAAA,EACA+xN,oBAAA,EACAlB,mBAAA,EACAQ,mBAAA,EACA3oN,QAAA,IAKC8kH,CACT,CEhUc,SAAU99G,GACtB+Y,EACAjC,GAIA,IAFA,IAAMn3B,EAAiC,CAACo5B,EAAQ,IAEvCC,EAAI,EAAGjC,EAAMD,EAAel4B,OAAQo6B,EAAIjC,EAAKiC,GAAK,EACzDr5B,EAAO6B,KAAKs1B,EAAekC,GAAID,EAAQC,EAAI,IAG7C,OAAOr5B,CACT,CCMA,IAAM8iO,GAAS,SAAyB1pM,GACtC,OAAA3rB,OAAO+rB,OAAOJ,EAAK,CAAE2oM,OAAA,GAArB,EAOF,SAASgB,GACP5rM,GAAA,IACA,IAAkDn3B,EAAA,GAAAq5B,EAAA,EAAlDA,EAAkDr6B,UAAAC,OAAlDo6B,IAAAr5B,EAAkDq5B,EAAA,GAAAr6B,UAAAq6B,GAElD,GAAI35B,GAAWy3B,IAAW8hG,GAAc9hG,GAGtC,OAAO2rM,GACLzlG,GACEh9G,GAAkBma,GAAWpB,GAAA,CAJHjC,GAMrBn3B,GAAA,MAMX,IAAMo3B,EAAmBD,EAEzB,OAC4B,IAA1Bn3B,EAAef,QACa,IAA5Bm4B,EAAiBn4B,QACc,iBAAxBm4B,EAAiB,GAEjBimG,GAAejmG,GAGjB0rM,GACLzlG,GAAeh9G,GAAkB+W,EAAkBp3B,IAEvD,CC0BwB,SAAAgjO,GAQtBhjO,EACAq5B,EACAjC,GASA,QAAI,IATJA,IAAAA,EAAoD8tB,KAS/C7rB,EACH,MAAMigG,GAAY,EAAGjgG,GAIvB,IAAM73B,EAAmB,SACvB21B,GAAA,IACA,IAAiE31B,EAAA,GAAAT,EAAA,EAAjEA,EAAiE/B,UAAAC,OAAjE8B,IAAAS,EAAiET,EAAA,GAAA/B,UAAA+B,GAEjE,OAAAf,EACEq5B,EACAjC,EACA2rM,GAAmCvwN,WAAA,EAAA4mB,GAAA,CAAAjC,GAAkB31B,GAAA,IAHvD,EA6CF,OAjCAA,EAAiBmiC,MAAQ,SAMvBvK,GAEA,OAAA4pM,GAUEhjO,EAAsBq5B,EACnBlC,GAAAA,GAAA,GAAAC,GACH,CAAAuM,MAAOt2B,MAAM6N,UAAUtb,OAAOw3B,EAAQuM,MAAOvK,GAAO1H,OAAO1I,WAZ7D,EAmBFxnB,EAAiByhO,WAAa,SAAC7pM,GAC7B,OAAA4pM,GAA0DhjO,EAAsBq5B,EAC3ElC,GAAAA,GAAA,GAAAC,GACAgC,GAFL,EAKK53B,CACT,CCvJA,IAAMqyC,GAAa,SACjBza,GAEA,OAAA4pM,GAIEtuL,GAAuBtb,EAJzB,EAMI8pM,GAASrvL,GAKf1S,GAAY9d,SAAQ,SAAA+V,GAElB8pM,GAAO9pM,GAAcya,GAA8Bza,EACrD,KCjBA,WAKE,SAAYA,EAAAA,EAAuBjC,GACjC1kB,KAAK8N,MAAQ6Y,EACb3mB,KAAKyvN,YAAc/qM,EACnB1kB,KAAKgiK,SAAWl3C,GAAcnkG,GAI9BomG,GAAWqhG,WAAWpuN,KAAKyvN,YAAc,EAC1C,CAED9oM,EAAYle,UAAAioN,aAAZ,SACE/pM,EACAjC,EACAn3B,EACAq5B,GAEA,IAGMjC,EAAMiC,EAHIy/F,GACduE,GAAQ5qH,KAAK8N,MAA0B4W,EAAkBn3B,EAAYq5B,IAE3C,IACtB73B,EAAKiR,KAAKyvN,YAAc9oM,EAG9Bp5B,EAAWkpB,YAAY1nB,EAAIA,EAAI41B,EAAA,EAGjCgC,EAAAle,UAAAkoN,aAAA,SAAahqM,EAAkBjC,GAC7BA,EAAWgqM,WAAW1uN,KAAKyvN,YAAc9oM,EAAA,EAG3CA,EAAYle,UAAAmoN,aAAZ,SACEjqM,EACAjC,EACAn3B,EACAq5B,GAEID,EAAW,GAAGomG,GAAWqhG,WAAWpuN,KAAKyvN,YAAc9oM,GAG3D3mB,KAAK2wN,aAAahqM,EAAUp5B,GAC5ByS,KAAK0wN,aAAa/pM,EAAUjC,EAAkBn3B,EAAYq5B,EAAA,CAE9D,CA/CA,ICQA,WAIE,SAAAD,IAAA,IAGCA,EAAA,KAED,KAAAkqM,cAAgB,WACd,IAAMnsM,EAAMiC,EAAKtf,SAAS0F,WAC1B,IAAK2X,EAAK,MAAO,GACjB,IAAMn3B,EAAQu6H,KAMRlhG,EAAWy/F,GALH,CACZ94H,GAAS,UAAUJ,OAAAI,EAAQ,KAC3B,GAAAJ,OAAG+B,GAAgB,WACnB,GAAG/B,OAAA03B,GAAoB,MAAA13B,OAAAq7B,GAAa,MAECvJ,OAAO1I,SAAsB,KAEpE,MAAO,UAAUppB,OAAAy5B,EAAY,KAAAz5B,OAAAu3B,EAAA,WAC/B,EAUA,KAAAosM,aAAe,WACb,GAAInqM,EAAKoqM,OACP,MAAMlqG,GAAY,GAGpB,OAAOlgG,EAAKkqM,eACd,EAEA,KAAAG,gBAAkB,eAAAzjO,EAChB,GAAIo5B,EAAKoqM,OACP,MAAMlqG,GAAY,GAGpB,IAAMliG,EAAMgC,EAAKtf,SAAS0F,WAC1B,IAAK4X,EAAK,MAAO,GAEjB,IAAM51B,IAAKxB,EAAG,CAAC,GACZ2B,IAAU,GACX3B,EAACs3B,IAAkB2D,GACnBj7B,EAAAumH,wBAAyB,CACvB0Z,OAAQ7oG,GAAAp3B,GAINe,EAAQw5H,KAMd,OALIx5H,IACDS,EAAcknB,MAAQ3nB,GAIlB,CAACs4B,EAAAA,cAAA,QAAAlC,GAAA,GAAW31B,EAAK,CAAE8K,IAAI,YAChC,EAyDA,KAAAo3N,KAAO,WACLtqM,EAAKoqM,QAAA,CACP,EApHE/wN,KAAKqH,SAAW,IAAI0lH,GAAW,CAAEghG,UAAA,IACjC/tN,KAAK+wN,QAAA,CACN,CAgBDpqM,EAAale,UAAAyoN,cAAb,SAAcvqM,GACZ,GAAI3mB,KAAK+wN,OACP,MAAMlqG,GAAY,GAGpB,OAAOjgG,EAAAA,cAACikG,GAAiB,CAACx/G,MAAOrL,KAAKqH,UAAWsf,EAAA,EAqCnDA,EAAwBle,UAAA0oN,yBAAxB,SAAyBxqM,GAErB,MAAMkgG,GAAY,GAuDxB,EA1HA,GCkBwB,QAAQ15H,OAAA+B,GAAA,MC5BzB,MAAMkiO,GAAcnrD,GAAOlqJ,GAAO21B,IAAdu0H,EAAiCpyK,IAAA,IAAC,MAAE0K,EAAK,OAAEjB,EAAM,SAAE+zN,EAAQ,MAAEh3N,GAAOxG,EAAA,MAAM,CACjGyJ,OAAQA,EACRjD,MAAOA,EACP5D,aAAc,UACdiF,OAAQ,EACR,CAAC6C,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BoD,OAAQ+zN,EAAW,IAAM/zN,GAE7B,CAACiB,EAAMvO,YAAYY,GAAG,OAAQ,CAC1B0M,OAAQ+zN,EAAW,IAAM/zN,GAE7B,CAACiB,EAAMvO,YAAYY,GAAG,OAAQ,CAC1B0M,OAAQ+zN,EAAW,IAAM/zN,GAE7B,CAACiB,EAAMvO,YAAYY,GAAG,OAAQ,CAC1B0M,OAAQ+zN,EAAW,IAAM/zN,GAEhC,IAGYg0N,GAAiBrrD,GAAOv0H,KAAqBtvB,IAAA,IAAC,MAAE7jB,EAAK,iBAAEgzN,EAAgB,cAAEC,EAAa,aAAEC,GAAcrvM,EAAA,MAAM,CACrHisE,gBAAiBkjI,GAAsChzN,EAAM5K,QAAQlF,WAAWmD,MAChF6E,aAAc+6N,GAAgC,EAC9C9rC,oBAAqB+rC,EAAe,EAAID,EACxC7rC,qBAAsB8rC,EAAe,EAAID,EACzC5rC,wBAAyB6rC,EAAe,EAAID,EAC5C3rC,uBAAwB4rC,EAAe,EAAID,EAC9C,IC/BYlwN,GAAa,CACtBg6F,KAAM,CAAC,GAAM,GAAM,GAAM,IACzBp/F,SAAU,ICSC,SAASw1N,GAAY79N,GAAkN,IAAjN,MAAEwxJ,EAAK,OAAE/nJ,EAAM,MAAEjD,EAAK,WAAEs3N,EAAU,gBAAEC,EAAe,aAAEn7N,EAAY,wBAAEo7N,EAAuB,SAAEC,EAAQ,SAAE5xN,EAAQ,YAAE6xN,EAAW,gBAAE1jI,EAAe,MAAEznC,EAAK,mBAAEorK,EAAkB,cAAEC,EAAa,MAAE9yI,GAAsBtrF,EAC/O,MAAM0K,EAAQI,MACPqoC,EAAKkrL,IAAUx/L,EAAAA,EAAAA,UAAS,IACzBy/L,EAAcv4B,KACdw4B,EAAax4B,KAmBby4B,EAASC,IACXJ,EAAO7sE,EAAM,EAWjB,OAPA9wH,EAAAA,EAAAA,YAAU,KACM,KAARyS,IACAmrL,EAAYp4N,MAAM,CAAE8uE,QAAS,IAC7BupJ,EAAWr4N,MAAM,CAAE8uE,QAASgpJ,EAA0B,EAAI,IAC9D,GACD,CAAC7qL,KAGAurL,EAAAA,GAAAA,KAAC18C,GAAQ,CACLJ,QA/BY+8C,KACZP,GACAC,EAAO,IACP9+C,GAAU,CACNC,OAAQg/C,EAAM,GACdzhM,IAAKy0H,KAGG,KAARr+G,GACAosI,GAAU,CACNC,OAAQg/C,EAAM,GACdzhM,IAAKy0H,GAGjB,EAkBIqwB,QAASA,OACTx1K,UACIqyN,EAAAA,GAAAA,KAACjB,GAAc,CACX/yN,MAAOA,EACPgzN,iBAAkBljI,EAClBmjI,cAAe/6N,EACfg7N,eAAcM,EAA2B7xN,UAEzCqyN,EAAAA,GAAAA,KAACnB,GAAW,CACR7yN,MAAOA,EACPm8L,QAAS,CAAE7xH,QAAS,GACpBkrH,QAASo+B,EACT7wN,WAAYA,GACZhE,OAAQA,EACRjD,MAAOA,EACPg3N,SAAUS,EAAS5xN,UAEnBqyN,EAAAA,GAAAA,KAACE,GAAG,CACAtzI,MAAOA,EACPt2E,MAAO,CACHvL,OAAQ,UACRjD,MAAO,UACP5D,aAAc,UACdi8N,gBAAiB,OAAO1rL,KAExB2rL,eAAgB,QAChBn4N,UAAW,SAASosD,GAAgB,KACpCorK,mBAAoBA,GAA0C,SAC9DY,iBAAkB,YAClBnyE,mBAAoB,OACpBa,yBAA0B,wCAE9BphJ,UACI2yN,EAAAA,GAAAA,MAAAC,GAAAA,SAAA,CAAA5yN,SAAA,EACIqyN,EAAAA,GAAAA,KAACx2M,GAAO21B,IAAG,CACPqiJ,QAASq+B,EACT13B,QAAS,CAAE7xH,QAAS,GACpBvnE,WAAYA,GACZuH,MAAO,CACHohB,SAAU,WACVvuB,OAAQ,EACRkgB,IAAK,EACLte,OAAQA,EACRjD,MAAOA,EACPq4N,gBAAiB,mBAAmBd,GApF7C,mGAuFE1xN,GAAYA,YAYjD,CCzGO,MAAM6yN,GAAc9sD,GAAOv0H,GAAG;;;EAKxBshL,GAAW/sD,GAAOqM,GAAK;;;ECJrB,SAAS2gD,GAAMp/N,GAAwD,IAAvD,OAAE+S,EAAM,KAAEikD,EAAI,SAAE3qD,EAAQ,SAAEzO,EAAQ,MAAE0tF,GAAgBtrF,EAC/E,OACIpC,GAEI8gO,EAAAA,GAAAA,KAACQ,GAAW,CACR7yN,SAAUA,KAGdqyN,EAAAA,GAAAA,KAACS,GAAQ,CACLnqN,MAAO,CAAEylK,eAAgB,QACzBxtC,QAAUn6G,GAAMA,EAAEi6F,iBAClB/1D,KAAMA,EACN/9D,KAAK,YACL8Z,OAAQA,EACR1G,SAAUA,EACVi/E,MAAOA,GAGvB,CChBe,SAAS+zI,GAAMr/N,GAAkC,IAAjC,YAAEs/N,EAAW,KAAEC,GAAev/N,EACzD,OACI0+N,EAAAA,GAAAA,KAAC/jD,GAAM,CAAC3lK,MAAO,CAAEnN,OAAQ,EAAGwF,WAAY,QAAUrU,MAAM,UAAUi0I,QAASA,IAAMqyF,EAAY,KAAKjzN,UAC9FqyN,EAAAA,GAAAA,KAACU,GAAM,CAAC9zI,MAAM,GAAGt0B,KAAM,IAAI3qD,UACvBqyN,EAAAA,GAAAA,KAAA,OAAK1pN,MAAO,CAAE1H,QAAS,OAAQ8sK,WAAY,UAAW/tK,UAClDqyN,EAAAA,GAAAA,KAACb,GAAY,CACTvyI,MAAM,GACN0yI,yBAAuB,EACvBxjI,gBAAgB,cAChB/wF,OAAQ,OACRjD,MAAO,QACPgrJ,MAAO+tE,SAM/B,CCnBA,MAAMC,IAAcljE,EAAAA,EAAAA,eAAqB,CAAEmjE,WAAW,EAAOC,aAAcA,OAAWC,aAAa,EAAOC,WAAYA,OAAWpgD,QAAQ,EAAMqgD,QAASA,OAAWC,mBAAmB,EAAOC,qBAAsBA,SAEtMC,GAAgBv4N,IACzB,MAAM8H,EAAWo6J,MACV81D,EAAWC,IAAgB7gM,EAAAA,EAAAA,WAAS,IACpC8gM,EAAaC,IAAc/gM,EAAAA,EAAAA,WAAS,IAEpC2gJ,EAAQqgD,IAAWhhM,EAAAA,EAAAA,WAAS,IAC5BohM,EAAYC,IAAerhM,EAAAA,EAAAA,WAAS,IACpCihM,EAAmBC,IAAwBlhM,EAAAA,EAAAA,WAAS,GAsD3D,OApDA6B,EAAAA,EAAAA,YAAU,KACN/sB,iBAAiB,QAASmf,GAAMotM,GAAY,KACrC,IAAM/+L,oBAAoB,QAASrO,UAC3C,KAEH4N,EAAAA,EAAAA,YAAU,KACoB,MAAtBnxB,EAASqiC,UACTmuL,GAAqB,GAEzBjvN,OAAO09K,SAAS,CAAEzmK,IAAK,EAAGo4M,SAAU,QAAS,GAC9C,CAAC5wN,EAASqiC,YAEblR,EAAAA,EAAAA,YAAU,KACFu/L,GAAcH,GACdD,GAAQ,EACZ,GACD,CAACI,EAAYH,KAqCZpB,EAAAA,GAAAA,KAACc,GAAY/iE,SAAQ,CACjBjkK,MAAO,CACHinO,YACAC,eACAC,cACAC,aACApgD,SACAqgD,UACAC,oBACAC,wBACF1zN,SAED5E,EAAM4E,UACY,EAIxB,SAAS+zN,KAEZ,OADgB55F,EAAAA,EAAAA,YAAWg5F,GAE/B,CChFe,SAASa,GAAQrgO,GAAiC,IAAhC,SAAEqM,EAAQ,KAAEi0N,GAAiBtgO,EAC1D,OACIsgO,GAEI5B,EAAAA,GAAAA,KAACE,GACG,CACA,WAAS,OACT,iBAAe,IACfvyN,SAAUA,KAGdqyN,EAAAA,GAAAA,KAACE,GAAG,CAACvyN,SAAUA,GAG3B,kCCpBO,MAAMk0N,GAAe,0BAQf71N,IAAQ7H,EAAAA,GAAAA,GAAY,CAC7B9C,WAAY,CACRG,WAAYqgO,GACZj+N,OAAQ,CACJf,WAAY,MAGpBzB,QAAS,CACLpC,QAAS,CACL8B,KAAM,UACNhC,MAAO,UACPsB,KAAM,WAEVnB,UAAW,CACP6B,KAAM,UACNV,KAAM,YACNtB,MAAO,WAEX5C,WAAY,CACRqD,QAAS,UACTF,MAAO,oBAGf6J,YAAa,CACTS,SAAU,CACNI,SAAU,QC9BT+3N,GAAiBpuD,GAAO4K,GAAP5K,EAAoCpyK,IAAA,IAAC,MAAE0K,EAAK,WAAExK,EAAU,OAAEugO,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,GAAQ7gO,EAAA,MAAM,CAClIE,WAAY4gO,GAAiB5gO,GAC7B,CAACwK,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BjG,SAAU2gO,GAAeF,IAE7B,CAACn2N,EAAMvO,YAAYY,GAAG,OAAQ,CAC1BqD,SAAU2gO,GAAeJ,IAE7B,CAACj2N,EAAMvO,YAAYY,GAAG,OAAQ,CAC1BqD,SAAU2gO,GAAeL,IAE7B,CAACh2N,EAAMvO,YAAYY,GAAG,OAAQ,CAC1BqD,SAAU2gO,GAAeN,IAE7B,CAAC/1N,EAAMvO,YAAYY,GAAG,OAAQ,CAC1BqD,SAAU2gO,GAAeH,IAEhC,IAED,SAASG,GAAeC,GACpB,YAAkBpoO,IAAdooO,EACO,OAEAA,CAEf,CAEA,SAASF,GAAiBG,GACtB,OAAQA,GACJ,IAAK,OACD,MDhCgB,+BCiCpB,IAAK,QACD,MDhCoB,gCCiCxB,IAAK,UACD,OAAOV,GACX,IAAK,YACD,MDrCuB,oCCsC3B,IAAK,WACD,MDrCsB,iCCsC1B,IAAK,SACD,MDtCoB,+BCwChC,CCzCe,SAASW,GAAgBlhO,GAA+H,IAA9H,SAAEqM,EAAQ,QAAEmvK,EAAO,MAAExmK,EAAK,MAAEhc,EAAK,WAAEkH,EAAU,KAAEogO,EAAI,OAAEG,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,UAAEp0N,GAA8BzM,EAChK,MAAM0K,EAAQI,KACd,OACI4zN,EAAAA,GAAAA,KAAC2B,GAAQ,CAACC,KAAMA,EAAKj0N,UACjBqyN,EAAAA,GAAAA,KAAC8B,GAAc,CACX/zN,UAAWA,GAAwB,OACnCvM,WAAYA,EACZ8U,MAAOA,EACPwmK,QAASA,EACTxiL,MAAOA,EACP0R,MAAOA,EACPm2N,OAAQA,EACRF,OAAQA,EACRD,OAAQA,EACRD,OAAQA,EACRG,OAAQA,EACRv0N,SAAUA,KAI1B,CC1BO,MAAM80N,GAAiB,yDCW9B,SAPA,SAAoBx3N,GAClB,IAAI7G,EAAUpK,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAO0oO,EAAAA,GAAAA,GAAyBz3N,GAAiBpN,EAAAA,EAAAA,GAAS,CACxDsN,aAAcA,GAAAA,GACb/G,GACL,ECPaqH,GAAYC,IAAWpK,IAAA,IAAC,MAAEyH,EAAK,WAAE1H,EAAU,QAAED,EAAO,YAAE3D,GAAa6D,EAAA,MAAM,CAClFqhO,UAAW,IACJthO,EAAWwC,QACd83K,eAAgB,SAChBrhL,MAAwB,SAAjB8G,EAAQ7G,KAAkB,OAAS6G,EAAQrC,KAAKE,UACvDy4B,SAAU,WACV,CAACj6B,EAAYY,GAAG,OAAQ,CACpB,wBAAyB,CACrB,WAAY,CACR6yE,QAAS,MACTtiE,QAAS,QACT8oB,SAAU,WACVtO,KAAM,MAKtBw5M,WAAY,CACRlhO,SAAUL,EAAWwC,QAAQnC,UAEjCmhO,QAAS,CACLC,SAAU,QAEdC,WAAY,CACRn0N,QAAS,OACTo0N,cAAe,SACf,CAACvlO,EAAYY,GAAG,OAAQ,CACpB2kO,cAAe,QAGvBC,aAAc,CACVr0N,QAAS,OACTo0N,cAAe,MACfrnD,eAAgB,WAChB,CAACl+K,EAAYkK,KAAK,OAAQ,CACtBg0K,eAAgB,WAGxBunD,UAAW,CACPxhO,SAAU,GACVm6K,OAAQ,UACRjtK,QAAS,OACTsa,QAAS,WACTna,WAAY,uBACZ2sK,WAAY,SACZ5sK,WAAY,IACZ5K,aAAc,MACd63K,eAAgB,OAChBh5K,cAAe,MACfF,WAAY,IACZ6xJ,SAAU,OACV,CAACj3J,EAAYkK,KAAK,OAAQ,CACtB+sJ,SAAU,MAGlByuE,QAAS,CACLliO,cAAe,YACf4B,WAAY,IACZnB,SAAU,GACVqB,cAAe,OAEnBqgO,UAAW,CACPl6M,QAAS,GAEbm6M,UAAW,CACP3oE,WAAY,EACZ,UAAW,CACX,GAEJ4oE,UAAW,CACP10N,QAAS,OACTo0N,cAAe,SACftnD,WAAY,UAEhB6nD,aAAc,CACVz7N,MAAO,OACP0qK,SAAU,IACVtuK,aAAc,GAElBs/N,WAAY,CACR50N,QAAS,OACTo0N,cAAe,SACfrnD,eAAgB,SAChBD,WAAY,SACZ2S,WAAY,GAEhBo1C,YAAa,CACTT,cAAe,SACfrnD,eAAgB,SAChBD,WAAY,UAEhBgoD,gBAAiB,CACblxD,SAAU,QACV9X,WAAY,OACZC,YAAa,QAEjBgpE,cAAe,CACX3gH,SAAU,EACVwvD,SAAU,QACV9X,WAAY,OACZC,YAAa,QAEjBipE,YAAa,CACTh1N,QAAS,OACTk0N,SAAU,OACV55M,QAAS,IAEb26M,eAAgB,CACZ7gH,SAAU,GAEd8gH,gBAAiB,CACb5/N,aAAc,EACdglB,QAAS,GAEb66M,WAAY,CACR11C,WAAY,EACZz/K,QAAS,OACTk0N,SAAU,QAEd5xJ,QAAS,CACL4qB,gBAAiB16F,EAAQlF,WAAWqD,QACpCuI,MAAO,OACPiD,OAAQ,QAEf,IC9HYgE,GAAa,CACtBpF,SAAU,GACVo/F,KAAM,CAAC,GAAM,GAAM,GAAM,KC4BhBi7H,IC1BgBtwD,GAAOlqJ,GAAO21B,IAAdu0H,EAAmCpyK,IAAA,IAAC,IAAEmzC,GAAKnzC,EAAA,MAAM,CAC1E6+N,gBAAiB,oHAAoH1rL,KACrI2rL,eAAgB,QAChBC,iBAAkB,YAClBZ,mBAAoB,SACpBv/H,SAAU,SACb,IDoB2B,4DAmN5B,GAjNa,SAAkBn3F,GAC7B,MAAMiD,EAAQI,KACR63N,EAAO/yD,GAAcllK,EAAMvO,YAAYkK,KAAK,OAC5CoE,EAAUN,GAAU1C,GACpB8iK,EAAWR,MACX,WAAE61D,GAAeQ,MAEhBjtL,EAAKkrL,IAAUx/L,EAAAA,EAAAA,UAAS,IAE/B,SAASygM,EAAYsD,GACnBl0N,YAAW,KACLk0N,IAAUrzN,SAASqiC,SACrB48I,SAAS,CAAEzmK,IAAK,EAAGo4M,SAAU,WAE7B51D,EAASq4D,EACX,GACC,IACL,CASA,MAQMC,EAAaC,IACjBpE,EAAAA,GAAAA,KAACwC,GAAgB,CACfZ,MAAM,EACNpgO,WAAW,WACX2gO,OAAQ,OACRF,OAAQ,OACRD,OAAQ,OACRD,OAAQ,OACRG,OAAQ,OACRv0N,SAAUy2N,IAKd,OACEpE,EAAAA,GAAAA,KAAA,UAAAryN,UACEqyN,EAAAA,GAAAA,KAACb,GAAY,CACXvyI,MAAM,GACNyyI,gBAAgB,8FAChBn7N,aAAc,MACd4uJ,MAAO2vE,GAEPhD,mBAAoB,SACpB10N,OAAO,OACPjD,MAAM,OAAM6F,UAEZ2yN,EAAAA,GAAAA,MAACvlE,GAAS,CAACyX,SAAS,KAAI7kK,SAAA,EACtBqyN,EAAAA,GAAAA,KAACE,GAAG,CAACrxL,GAAI,EAAGwzE,GAAI,EAAE10G,SACfs2N,GACCjE,EAAAA,GAAAA,KAACE,GAAG,CAACtyN,UAAW7B,EAAQu3N,UAAU31N,UAChC2yN,EAAAA,GAAAA,MAACJ,GAAG,CAACtyN,UAAW7B,EAAQw3N,aAAa51N,SAAA,EACnC2yN,EAAAA,GAAAA,MAACJ,GAAG,CAACtyN,UAAW7B,EAAQy3N,WAAW71N,SAAA,EACjCqyN,EAAAA,GAAAA,KAACE,GAAG,CAAC79G,GAAI,EAAGz0G,UAAW7B,EAAQ03N,YAAY91N,UACzCqyN,EAAAA,GAAAA,KAACE,GAAG,CAACp4N,MAAO,OAAO6F,UACjBqyN,EAAAA,GAAAA,KAACW,GAAM,CAACE,KAAMmD,GAAcpD,YAAcsD,GAAUtD,EAAYsD,UAGpElE,EAAAA,GAAAA,KAACE,GAAG,CAAC79G,GAAI,EAAE10G,UACTqyN,EAAAA,GAAAA,KAACU,GAAM,CAACpoK,KAAM,YAAY3qD,UACxBqyN,EAAAA,GAAAA,KAAC/jD,GAAM,CAACruK,UAAW7B,EAAQm3N,UAAW5oO,MAAM,UAAUi0I,QAASA,IAAMqyF,EAAY,aAAcj+N,KAAK,SAAQgL,SACzGw2N,EAAU,sBAIjBnE,EAAAA,GAAAA,KAACE,GAAG,CAAC79G,GAAI,EAAE10G,UACTqyN,EAAAA,GAAAA,KAACU,GAAM,CAACpoK,KAAM,kBAAkB3qD,UAC9BqyN,EAAAA,GAAAA,KAAC/jD,GAAM,CACLruK,UAAW7B,EAAQm3N,UACnB5oO,MAAM,UACNi0I,QAASA,IAAMqyF,EAAY,mBAC3Bj+N,KAAK,SAAQgL,SAEZw2N,EAAU,yBAIjBnE,EAAAA,GAAAA,KAACE,GAAG,CAAC79G,GAAI,EAAE10G,UACTqyN,EAAAA,GAAAA,KAACU,GAAM,CAACpoK,KAAM,UAAU3qD,UACtBqyN,EAAAA,GAAAA,KAAC/jD,GAAM,CAAC3hL,MAAM,UAAUsT,UAAW7B,EAAQm3N,UAAW30F,QAASA,IAAMqyF,EAAY,WAAYj+N,KAAK,SAAQgL,SACvGw2N,EAAU,iBAIjBnE,EAAAA,GAAAA,KAACE,GAAG,CAAC79G,GAAI,EAAE10G,UACTqyN,EAAAA,GAAAA,KAACU,GAAM,CAACpoK,KAAM,SAAS3qD,UACrBqyN,EAAAA,GAAAA,KAAC/jD,GAAM,CAAC3hL,MAAM,UAAUsT,UAAW7B,EAAQm3N,UAAW30F,QAASA,IAAMqyF,EAAY,UAAWj+N,KAAK,SAAQgL,SACtGw2N,EAAU,gBAIjBnE,EAAAA,GAAAA,KAACE,GAAG,CAAC79G,GAAI,EAAE10G,UACTqyN,EAAAA,GAAAA,KAAC/jD,GAAM,CAAC3hL,MAAM,UAAUsT,UAAW7B,EAAQm3N,UAAW30F,QAASA,IAAM2yF,GAAW,GAAOv+N,KAAK,SAAQgL,SACjGw2N,EAAU,mBAIjBnE,EAAAA,GAAAA,KAACE,GAAG,CAACtyN,UAAW7B,EAAQ23N,gBAAgB/1N,UACtC2yN,EAAAA,GAAAA,MAACJ,GAAG,CAAC9gD,UAAW,SAAUilD,GAAI,CAAEx9N,GAAI,GAAIE,GAAI,GAAKu9N,GAAI,EAAE32N,SAAA,EACrDqyN,EAAAA,GAAAA,KAACjgD,GAAI,CAACznH,KAAK,uCAAuCjkD,OAAO,SAAS1G,UAAUqyN,EAAAA,GAAAA,KAACz/C,GAAU,CAACjmL,MAAM,UAAUsT,UAAW7B,EAAQs3N,UAAW1gO,KAAK,SAASgL,UAAUqyN,EAAAA,GAAAA,KAACuE,GAAAA,EAAY,CAACjuN,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQ8B,aAClNk/N,EAAAA,GAAAA,KAACjgD,GAAI,CAACznH,KAAK,0CAA0CjkD,OAAO,SAAS1G,UAAUqyN,EAAAA,GAAAA,KAACz/C,GAAU,CAACjmL,MAAM,UAAUsT,UAAW7B,EAAQs3N,UAAW1gO,KAAK,SAASgL,UAAUqyN,EAAAA,GAAAA,KAACwE,GAAAA,EAAa,CAACluN,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQ8B,aACtNk/N,EAAAA,GAAAA,KAACjgD,GAAI,CAACznH,KAAK,2DAA2DjkD,OAAO,SAAS1G,UAAUqyN,EAAAA,GAAAA,KAACz/C,GAAU,CAACjmL,MAAM,UAAUsT,UAAW7B,EAAQs3N,UAAW1gO,KAAK,SAASgL,UAAUqyN,EAAAA,GAAAA,KAACyE,GAAAA,EAAW,CAACnuN,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQ8B,uBAM7Ow/N,EAAAA,GAAAA,MAACJ,GAAG,CAACtyN,UAAW7B,EAAQ63N,YAAYj2N,SAAA,EAClC2yN,EAAAA,GAAAA,MAACJ,GAAG,CAACtyN,UAAW7B,EAAQ83N,eAAel2N,SAAA,EACrCqyN,EAAAA,GAAAA,KAACE,GAAG,CAAC79G,GAAI,EAAE10G,UACTqyN,EAAAA,GAAAA,KAACW,GAAM,CAACE,KAAMmD,GAAcpD,YAAcsD,GAAUtD,EAAYsD,QAElE5D,EAAAA,GAAAA,MAACJ,GAAG,CAACtyN,UAAW7B,EAAQg4N,WAAWp2N,SAAA,EACjCqyN,EAAAA,GAAAA,KAACE,GAAG,CAAAvyN,UACFqyN,EAAAA,GAAAA,KAACU,GAAM,CAACpoK,KAAM,YAAY3qD,UACxBqyN,EAAAA,GAAAA,KAAC/jD,GAAM,CAACruK,UAAW7B,EAAQm3N,UAAW5oO,MAAM,UAAUi0I,QAASA,IAAMqyF,EAAY,aAAcj+N,KAAK,SAAQgL,SACzGw2N,EAAU,sBAIjBnE,EAAAA,GAAAA,KAACE,GAAG,CAACjqF,GAAI,EAAEtoI,UACTqyN,EAAAA,GAAAA,KAACU,GAAM,CAACpoK,KAAM,kBAAkB3qD,UAC9BqyN,EAAAA,GAAAA,KAAC/jD,GAAM,CACLruK,UAAW7B,EAAQm3N,UACnB5oO,MAAM,UACNi0I,QAASA,IAAMqyF,EAAY,mBAC3Bj+N,KAAK,SAAQgL,SAEZw2N,EAAU,yBAIjBnE,EAAAA,GAAAA,KAACE,GAAG,CAACjqF,GAAI,EAAEtoI,UACTqyN,EAAAA,GAAAA,KAACU,GAAM,CAACpoK,KAAM,UAAU3qD,UACtBqyN,EAAAA,GAAAA,KAAC/jD,GAAM,CAAC3hL,MAAM,UAAUsT,UAAW7B,EAAQm3N,UAAW30F,QAASA,IAAMqyF,EAAY,WAAYj+N,KAAK,SAAQgL,SACvGw2N,EAAU,iBAIjBnE,EAAAA,GAAAA,KAACE,GAAG,CAACjqF,GAAI,EAAEtoI,UACTqyN,EAAAA,GAAAA,KAACU,GAAM,CAACpoK,KAAM,SAAS3qD,UACrBqyN,EAAAA,GAAAA,KAAC/jD,GAAM,CAAC3hL,MAAM,UAAUsT,UAAW7B,EAAQm3N,UAAW30F,QAASA,IAAMqyF,EAAY,UAAWj+N,KAAK,SAAQgL,SACtGw2N,EAAU,gBAIjBnE,EAAAA,GAAAA,KAACE,GAAG,CAACjqF,GAAI,EAAEtoI,UACTqyN,EAAAA,GAAAA,KAAC/jD,GAAM,CAAC3hL,MAAM,UAAUsT,UAAW7B,EAAQm3N,UAAW30F,QAASA,IAAM2yF,GAAW,GAAOv+N,KAAK,SAAQgL,SACjGw2N,EAAU,sBAKnBnE,EAAAA,GAAAA,KAACE,GAAG,CAACtyN,UAAW7B,EAAQ43N,cAAch2N,UACpC2yN,EAAAA,GAAAA,MAACJ,GAAG,CAACtxN,QAAS,OAAQ+sK,eAAgB,WAAY0oD,GAAI,CAAEx9N,GAAI,GAAIE,GAAI,GAAKu9N,GAAI,EAAE32N,SAAA,EAC7EqyN,EAAAA,GAAAA,KAACjgD,GAAI,CAACznH,KAAK,uCAAuCjkD,OAAO,SAAS1G,UAAUqyN,EAAAA,GAAAA,KAACz/C,GAAU,CAACjmL,MAAM,UAAUsT,UAAW7B,EAAQs3N,UAAW1gO,KAAK,SAASgL,UAAUqyN,EAAAA,GAAAA,KAACuE,GAAAA,EAAY,CAACjuN,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQ8B,aAClNk/N,EAAAA,GAAAA,KAACjgD,GAAI,CAACznH,KAAK,0CAA0CjkD,OAAO,SAAS1G,UAAUqyN,EAAAA,GAAAA,KAACz/C,GAAU,CAACjmL,MAAM,UAAUsT,UAAW7B,EAAQs3N,UAAW1gO,KAAK,SAASgL,UAAUqyN,EAAAA,GAAAA,KAACwE,GAAAA,EAAa,CAACluN,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQ8B,aACtNk/N,EAAAA,GAAAA,KAACjgD,GAAI,CAACznH,KAAK,2DAA2DjkD,OAAO,SAAS1G,UAAUqyN,EAAAA,GAAAA,KAACz/C,GAAU,CAACjmL,MAAM,UAAUsT,UAAW7B,EAAQs3N,UAAW1gO,KAAK,SAASgL,UAAUqyN,EAAAA,GAAAA,KAACyE,GAAAA,EAAW,CAACnuN,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQ8B,uBAO/Ok/N,EAAAA,GAAAA,KAACE,GAAG,CAACrxL,GAAI,EAAGwzE,GAAI,GAAG10G,UACjBqyN,EAAAA,GAAAA,KAACE,GAAG,CAACtyN,UAAW7B,EAAQk3N,aAAat1N,UACnCqyN,EAAAA,GAAAA,KAACE,GAAG,CAACtyN,UAAW7B,EAAQ+3N,gBAAiBxpO,MAAO,OAAOqT,UACrDqyN,EAAAA,GAAAA,KAAC/jD,GAAM,CACLE,kBAAgB,EAChBE,oBAAkB,EAClBxD,eAAa,EACbE,oBAAkB,EAClBz+K,MAAM,UACNqI,KAAK,SAAQgL,UAEbqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,QACX8U,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQ8B,KAAMG,cAAe,QAC3D0M,SAAS,uDACTw0N,OAAQ,OACRF,OAAQ,OACRD,OAAQ,OACRD,OAAQ,OACRG,OAAQ,OACRplD,QAAQ,0BAU5B,EE7NA,IAAI4nD,GAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAC1CC,GAAa,CAAC,QAAQ,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,IA4CnE,SAASC,GAAU7nO,GACjB,IAAIoiD,EAAMnlD,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,EAC1Ew1C,EAAQ3zC,WAAWkB,GACvB,MAAO,GAAGnC,OAAO40C,EAAQ2P,GAAKvkD,OAAOsmB,OAAOnkB,GAAK4b,QAAQuI,OAAOsuB,GAAQ,KAAO,KACjF,CA4BO,IA6HHq1L,GAAoBh5N,EAAAA,YAAiB,SAAc9C,EAAO+C,GAC5D,IAAIg5N,EAAsB/7N,EAAMg8N,aAC5BA,OAAuC,IAAxBD,EAAiC,UAAYA,EAC5DE,EAAoBj8N,EAAM2yK,WAC1BA,OAAmC,IAAtBspD,EAA+B,UAAYA,EACxDj5N,EAAUhD,EAAMgD,QAChB6nK,EAAgB7qK,EAAM6E,UACtBE,EAAmB/E,EAAMgF,UACzB7C,OAAiC,IAArB4C,EAA8B,MAAQA,EAClDm3N,EAAmBl8N,EAAM8Z,UACzBA,OAAiC,IAArBoiN,GAAsCA,EAClDC,EAAmBn8N,EAAMvI,UACzBA,OAAiC,IAArB0kO,EAA8B,MAAQA,EAClDC,EAAcp8N,EAAM8oB,KACpBA,OAAuB,IAAhBszM,GAAiCA,EACxCp2I,EAAUhmF,EAAMgmF,QAChBq2I,EAAwBr8N,EAAM4yK,eAC9BA,OAA2C,IAA1BypD,EAAmC,aAAeA,EACnEC,EAAYt8N,EAAM/B,GAClBA,OAAmB,IAAdq+N,GAA+BA,EACpCC,EAAYv8N,EAAMhC,GAClBA,OAAmB,IAAdu+N,GAA+BA,EACpCC,EAAYx8N,EAAMjC,GAClBA,OAAmB,IAAdy+N,GAA+BA,EACpCC,EAAiBz8N,EAAMrL,QACvBA,OAA6B,IAAnB8nO,EAA4B,EAAIA,EAC1CC,EAAc18N,EAAM28N,KACpBA,OAAuB,IAAhBD,EAAyB,OAASA,EACzCE,EAAY58N,EAAM9B,GAClBA,OAAmB,IAAd0+N,GAA+BA,EACpCC,EAAY78N,EAAMlC,GAClBA,OAAmB,IAAd++N,GAA+BA,EACpCC,EAAsB98N,EAAM+8N,aAC5BA,OAAuC,IAAxBD,GAAyCA,EACxDrjO,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,eAAgB,aAAc,UAAW,YAAa,YAAa,YAAa,YAAa,OAAQ,UAAW,iBAAkB,KAAM,KAAM,KAAM,UAAW,OAAQ,KAAM,KAAM,iBAE5N6E,GAAYS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMslK,EAAe/wJ,GAAa,CAAC9W,EAAQ8W,UAAuB,IAAZnlB,GAAiBqO,EAAQ,cAAcnR,OAAOsmB,OAAOxjB,MAAam0B,GAAQ9lB,EAAQ8lB,KAAMi0M,GAAgB/5N,EAAQ+5N,aAA4B,QAAdtlO,GAAuBuL,EAAQ,gBAAgBnR,OAAOsmB,OAAO1gB,KAAuB,SAATklO,GAAmB35N,EAAQ,WAAWnR,OAAOsmB,OAAOwkN,KAAwB,YAAfhqD,GAA4B3vK,EAAQ,kBAAkBnR,OAAOsmB,OAAOw6J,KAAgC,YAAjBqpD,GAA8Bh5N,EAAQ,oBAAoBnR,OAAOsmB,OAAO6jN,KAAiD,gBAA/Bh2I,GAAW4sF,IAAoC5vK,EAAQ,sBAAsBnR,OAAOsmB,OAAO6tE,GAAW4sF,MAA0B,IAAP90K,GAAgBkF,EAAQ,WAAWnR,OAAOsmB,OAAOra,MAAc,IAAPC,GAAgBiF,EAAQ,WAAWnR,OAAOsmB,OAAOpa,MAAc,IAAPC,GAAgBgF,EAAQ,WAAWnR,OAAOsmB,OAAOna,MAAc,IAAPC,GAAgB+E,EAAQ,WAAWnR,OAAOsmB,OAAOla,MAAc,IAAPC,GAAgB8E,EAAQ,WAAWnR,OAAOsmB,OAAOja,MACh5B,OAAoB4E,EAAAA,cAAoBX,GAAWrN,EAAAA,EAAAA,GAAS,CAC1D+P,UAAWA,EACX9B,IAAKA,GACJtJ,GACL,IAqHIujO,IAAar3N,EAAAA,GAAAA,IA3RG,SAAgB1C,GAClC,OAAOnO,EAAAA,EAAAA,GAAS,CAEdyQ,KAAM,CAAC,EAGPuU,UAAW,CACT4vJ,UAAW,aACX7jK,QAAS,OACTk0N,SAAU,OACVh7N,MAAO,QAIT+pB,KAAM,CACJ4gJ,UAAW,aACXxpJ,OAAQ,KAKV68M,aAAc,CACZpxE,SAAU,GAIZ,sBAAuB,CACrBsuE,cAAe,UAIjB,8BAA+B,CAC7BA,cAAe,kBAIjB,2BAA4B,CAC1BA,cAAe,eAIjB,iBAAkB,CAChBF,SAAU,UAIZ,uBAAwB,CACtBA,SAAU,gBAIZ,wBAAyB,CACvBpnD,WAAY,UAId,4BAA6B,CAC3BA,WAAY,cAId,0BAA2B,CACzBA,WAAY,YAId,0BAA2B,CACzBA,WAAY,YAId,0BAA2B,CACzBqpD,aAAc,UAIhB,8BAA+B,CAC7BA,aAAc,cAIhB,4BAA6B,CAC3BA,aAAc,YAIhB,iCAAkC,CAChCA,aAAc,iBAIhB,gCAAiC,CAC/BA,aAAc,gBAIhB,4BAA6B,CAC3BppD,eAAgB,UAIlB,8BAA+B,CAC7BA,eAAgB,YAIlB,mCAAoC,CAClCA,eAAgB,iBAIlB,kCAAmC,CACjCA,eAAgB,gBAIlB,kCAAmC,CACjCA,eAAgB,iBA/ItB,SAAwB3vK,EAAO+lB,GAC7B,IAAIh0B,EAAS,CAAC,EAgBd,OAfA2mO,GAASrmN,SAAQ,SAAU3gB,GACzB,IAAIy1B,EAAennB,EAAMtO,QAAQA,GAEZ,IAAjBy1B,IAIJp1B,EAAO,WAAWnD,OAAOm3B,EAAY,KAAKn3B,OAAO8C,IAAY,CAC3DurB,OAAQ,IAAIruB,OAAOgqO,GAAUzxM,EAAc,IAC3CrrB,MAAO,eAAelN,OAAOgqO,GAAUzxM,GAAe,KACtD,YAAa,CACXjK,QAAS07M,GAAUzxM,EAAc,KAGvC,IACOp1B,CACT,CA+HKioO,CAAeh6N,EAAO,MAAOA,EAAMvO,YAAYF,KAAK6L,QAAO,SAAU68N,EAAa3+N,GAGnF,OApMJ,SAAsB4+N,EAAcl6N,EAAO+lB,GACzC,IAAIh0B,EAAS,CAAC,EACd4mO,GAAWtmN,SAAQ,SAAU1b,GAC3B,IAAI2E,EAAM,QAAQ1M,OAAOm3B,EAAY,KAAKn3B,OAAO+H,GAEjD,IAAa,IAATA,EAUJ,GAAa,SAATA,EAAJ,CAUA,IAAImF,EAAQ,GAAGlN,OAAOR,KAAKe,MAAMwH,EAAO,GAAK,KAAQ,IAAM,KAG3D5E,EAAOuJ,GAAO,CACZ6+N,UAAWr+N,EACXk7G,SAAU,EACVwvD,SAAU1qK,EATZ,MANE/J,EAAOuJ,GAAO,CACZ6+N,UAAW,OACXnjH,SAAU,EACVwvD,SAAU,aAZZz0K,EAAOuJ,GAAO,CACZ6+N,UAAW,EACXnjH,SAAU,EACVwvD,SAAU,OAuBhB,IAEmB,OAAfzgJ,GACFl0B,EAAAA,EAAAA,GAASqoO,EAAcnoO,GAEvBmoO,EAAal6N,EAAMvO,YAAYY,GAAG0zB,IAAeh0B,CAErD,CA2JIqoO,CAAaH,EAAaj6N,EAAO1E,GAC1B2+N,CACT,GAAG,CAAC,GACN,GA+JoC,CAClC36N,KAAM,WADSoD,CAEdm2N,IAmBH,YC5YawB,GAAe3yD,GAAOv0H,GAAG;;;;;;EAQzBmnL,GAAY5yD,GAAOmxD,GAAK;;;;;mCCNrC,MAAM91N,GAAa,YAENs3N,GAAe3yD,GAAOv0H,GAAG;;;;;;;;;;gBAUtBpwC;;;;;EAaHw3N,IANW7yD,GAAOj/H,GAAG;;;gBAGlB1lC;EAGW2kK,GAAOv0H,GAAG;;;GAKxBqnL,GAAc9yD,GAAOv0H,GAAG;;;;EAMxBsnL,GAAgB/yD,GAAOv0H,GAAG;;;;;;EAQ1BunL,GAAchzD,GAAOv0H,GAAG;;;;;;;;EAUxBwnL,GAAiBjzD,GAAOv0H,GAAG;;;;;;;;gBAQxBpwC;EAGH63N,GAAclzD,GAAOlqJ,GAAO21B,IAAI;;;;;EAOhC0nL,GAAYnzD,GAAOv0H,GAAgB;;;;;sBAK1Bp2C,GAASA,EAAM+9N;;;EAKxBC,GAAYrzD,GAAOszD,GAAAA,EAAPtzD,EAAcpyK,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACrDyJ,OAAQ,GACRjD,MAAO,GACPxN,MAAO,UACPg8E,QAAS,GACT,CAACtqE,EAAMvO,YAAYkK,KAAK,OAAQ,CAC9BoD,OAAQ,GACRjD,MAAO,IAEV,IAGYm/N,GAAkBvzD,GAAOv0H,KAAItvB,IAAA,IAAC,MAAE7jB,GAAO6jB,EAAA,MAAM,CACxD3xB,YAAa,GACbC,aAAc,GACdkwL,WAAY,GACZrxB,cAAe,EACf,CAAChxJ,EAAMvO,YAAYkK,KAAK,OAAQ,CAC9B6qK,SAAU,KAEZ,CAACxmK,EAAMvO,YAAYY,GAAG,OAAQ,CAC5Bm0K,SAAU,KAEZ,CAACxmK,EAAMvO,YAAYY,GAAG,OAAQ,CAC5Bm0K,SAAU,KAEZ,CAACxmK,EAAMvO,YAAYY,GAAG,OAAQ,CAC5Bm0K,SAAU,KAEb,ICzGc,SAAS00D,GAAWn+N,GACjC,MAAMiD,EAAQI,KACR+6N,EAAWj2D,GAAcllK,EAAMvO,YAAYkK,KAAK,OAChDkkK,EAAWR,KACX+7D,EAAiB//B,KAgBvB,OACE24B,EAAAA,GAAAA,KAAC6E,GAAI,CAACvuN,MAAO,CAAE0mJ,cAAemqE,EAAW,GAAK,GAAuBt1M,MAAI,EAAChrB,GAAI,GAAIC,GAAI,GAAIC,GAAI,EAAGC,GAAI,EAAGC,GAAI,EAAE0G,UAC5GqyN,EAAAA,GAAAA,KAAC4G,GAAW,CACV/7B,SAAU,CAAEx2I,MAAO,KACnBmtI,QAAS4lC,EACT74F,QAnBc7vG,gBACZ0oM,EAAe5/N,MAAM,CAAE6sD,MAAO,YAC9B+yK,EAAe5/N,MAAM,CAAE6sD,MAAO,IACpCw3G,EAAS9iK,EAAMs+N,KAAK,EAiBhBt4N,WAAY6xK,GAAiBjzK,UAE7BqyN,EAAAA,GAAAA,KAACU,GAAM,CAACpoK,KAAMvvD,EAAMs+N,KAAK15N,UACvBqyN,EAAAA,GAAAA,KAAC6G,GAAS,CACRC,SAAU96N,EAAM5K,QAAQpC,QAAQ8B,KAChC,WAAS,UACT,iBAnBJqmO,GAGqB,IAAhBp+N,EAAM8+D,MAFN,EAEwB,IAAM9+D,EAAM8+D,MAgBVl6D,UAE3BqyN,EAAAA,GAAAA,KAACqG,GAAY,CAAA14N,UACX2yN,EAAAA,GAAAA,MAACJ,GAAG,CAAAvyN,SAAA,EACF2yN,EAAAA,GAAAA,MAAC2G,GAAe,CAACj7N,MAAOA,EAAM2B,SAAA,EAC5BqyN,EAAAA,GAAAA,KAAC+G,GAAS,CAAC/6N,MAAOA,EAAOsK,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQnC,UAAUmB,SACjE4/N,EAAAA,GAAAA,KAACuG,GAAW,CAAC54N,UACXqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,UACXuM,UAAU,IACVuI,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQnC,UAAUmB,KAAM2C,cAAe,EAAGuzE,QAAS,IACzE6rJ,OAAQn2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCunN,OAAQ/1N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC7M,SAAU5E,EAAMy0I,UAIpBwiF,EAAAA,GAAAA,KAACwG,GAAW,CAAC74N,UACXqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,OACXuM,UAAU,KACVuI,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQnC,UAAUmB,KAAMk2E,QAAS,GAAIvzE,cAAe,KAC1Eo/N,OAAQn2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCynN,OAAQj2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrC7M,SAAU5E,EAAMuC,UAIpB00N,EAAAA,GAAAA,KAACyG,GAAa,CAAC94N,UACbqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,QACXuM,UAAU,IACVuI,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQnC,UAAUmB,KAAMk2E,QAAS,GAAKvzE,cAAe,KAC3Eo/N,OAAQn2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCwnN,OAAQh2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCunN,OAAQ/1N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxC0nN,OAAQl2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxC7M,SAAU5E,EAAMu+N,eAKtBtH,EAAAA,GAAAA,KAAC0G,GAAW,CACV/4N,UACEqyN,EAAAA,GAAAA,KAAC2G,GAAc,CACbh5N,UACEqyN,EAAAA,GAAAA,KAACb,GAAY,CACXvyI,MAAO7jF,EAAMuC,KACbwwF,gBAAgB,cAChBwjI,yBAAuB,EACvBxsE,MAAO/pJ,EAAM83N,KACbxsK,MAAOtrD,EAAMw+N,UAAUlzK,MACvBtpD,OAAQhC,EAAMw+N,UAAUx8N,OAAS,KACjCjD,MAAO,GAAGiB,EAAMw+N,UAAUz/N,UAC1B5D,aAAa,uBAxEqB6E,EAAM8+D,MAqFlE,CCrHA,MAEa2/J,GAAc,wDAIdC,GAAwB,yEAQrC,IACI,CACIC,QAAQ,EACR7G,KAAM2G,GACNhqF,KARmB,gIASnBlyI,KAAM,wBACNg8N,OAAQ,kBACRD,KAAM,kCACNE,UAAW,CACPx8N,OAAQ,IACRjD,MAAO,IACPusD,MAAO,KAGf,CACIqzK,QAAQ,EACR7G,KAAM4G,GACNjqF,KAvBW,sFAwBXlyI,KAAM,SACNg8N,OAAQ,gBACRD,KAAM,wBACNE,UAAW,CACPx8N,OAAQ,IACRjD,MAAO,IACPusD,MAAO,IAGf,CACIqzK,QAAQ,EACR7G,KA3Cc,wDA4CdrjF,KAhCkB,2FAiClBlyI,KAAM,aACNg8N,OAAQ,aACRD,KAAM,4BACNE,UAAW,CACPx8N,OAAQ,IACRjD,MAAO,IACPusD,MAAO,KCjDNszK,GAAYj0D,GAAOv0H,KAAI79C,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CAChDwG,MAAO,OACPvJ,UAAW,IACX,CAACyN,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B6qK,SAAU,KAEjB,IAEYo1D,GAAoBl0D,GAAOv0H,KAAItvB,IAAA,MAAIA,EAAA,MAAM,CAClD/nB,MAAO,OACP8G,QAAS,OACTo0N,cAAe,SACfrnD,eAAgB,SAChBD,WAAY,SACf,ICXc,SAASmsD,GAAYvmO,GAA+B,IAA9B,SAAEqM,GAAyBrM,EAC5D,MAAM0K,EAAQI,KACd,OACI4zN,EAAAA,GAAAA,KAAC4H,GAAiB,CAAC57N,MAAOA,EAAM2B,UAC5BqyN,EAAAA,GAAAA,KAAC2H,GAAS,CAAC37N,MAAOA,EAAM2B,SACnBA,KAIjB,CCPe,SAASm6N,KACtB,MACMX,EAAWj2D,GADH9kK,KACuB3O,YAAYkK,KAAK,OAEtD,OACEq4N,EAAAA,GAAAA,KAACqG,GAAY,CAAA14N,UACXqyN,EAAAA,GAAAA,KAAC6H,GAAY,CAAAl6N,UACXqyN,EAAAA,GAAAA,KAACsG,GAAS,CACRzjN,WAAS,EACTnlB,QAASypO,EAAW,EAAI,EAAEx5N,SAEzBo6N,GAAQhtO,KAAI,CAACq5B,EAAGyzC,KACfm4J,EAAAA,GAAAA,KAACkH,GAAU,IAAiB9yM,EAAGyzC,MAAOA,GAArBA,UAM7B,CCrBO,MAAMmgK,GAAat0D,GAAO4K,GAAW;;;;;;;;;;;;EAe/B2pD,GAAiBv0D,GAAOlqJ,GAAO21B,IAAI;YACnCp2C,GAAWA,EAAMssB,OAAS,UAAY;qBAC7BtsB,GAAWA,EAAMm/N,YAAc,oBAAsB;;;WAG/Dn/N,GAAWA,EAAMssB,OAAS,OAAS;;MAEzC2yM;;;;;EAOOG,GAAgBz0D,GAAOlqJ,GAAO21B,IAAI;;;;;;;EASlConL,GAAc7yD,GAAOlqJ,GAAO21B,IAAI;;;;;;;EAShCipL,GAAe10D,GAAOlqJ,GAAO21B,IAAI;;;;EAMtBu0H,GAAOlqJ,GAAO21B,IAAI;;kBAEvBp2C,GAAUA,EAAM4xJ;mBACf5xJ,GAAUA,EAAM22K;iBAClB32K,GAAUA,EAAM2xJ;ECtD3B,IAoCH2tE,GAA8Bx8N,EAAAA,YAAiB,SAAwB9C,EAAO+C,GAChF,IAAI6B,EAAW5E,EAAM4E,SACjB5B,EAAUhD,EAAMgD,QAChB6B,EAAY7E,EAAM6E,UAClBsrK,EAAwBnwK,EAAMmwK,sBAC9B12K,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,WAAY,UAAW,YAAa,0BAEjF,OAAoB8C,EAAAA,cAAoBysK,IAAYz6K,EAAAA,EAAAA,GAAS,CAC3D+P,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMV,GAC9BsrK,uBAAuB7qK,EAAAA,GAAAA,GAAK6qK,EAAuBntK,EAAQ+tK,cAC3DhuK,IAAKA,GACJtJ,GAAQmL,EAAuB9B,EAAAA,cAAoB,OAAQ,CAC5D+B,UAAW7B,EAAQu8N,iBAEvB,IA4BA,UAAe55N,EAAAA,GAAAA,IA9EK,SAAgB1C,GAClC,MAAO,CAELsC,KAAM,CACJM,QAAS,QACTwwK,UAAW,UACXt3K,MAAO,OACP,0BAA2B,CACzBwuE,QAAStqE,EAAM5K,QAAQ3B,OAAOG,cAEhC,iCAAkC,CAChC02E,QAAS,MAKbwjG,aAAc,CAAC,EAGfwuD,eAAgB,CACdpoI,SAAU,SACVy0D,cAAe,OACfj9H,SAAU,WACVrO,IAAK,EACLC,MAAO,EACPH,OAAQ,EACRC,KAAM,EACNllB,aAAc,UACdoyE,QAAS,EACTwlB,gBAAiB,eACjB/sF,WAAY/C,EAAM9C,YAAYmB,OAAO,UAAW,CAC9CV,SAAUqC,EAAM9C,YAAYS,SAASG,SAI7C,GA2CkC,CAChCwB,KAAM,qBADR,CAEG+8N,IClFUE,GAAqB70D,GAAO20D,GAAP30D,EAA4CpyK,IAAA,IAAC,OAAEknO,EAAM,MAAEC,EAAK,MAAEz8N,GAAO1K,EAAA,MAAM,CACzGyJ,OAAQ,OACRjD,MAAO,OACPxN,MAAO0R,EAAM5K,QAAQpC,QAAQ8B,KAC7BqyL,oBAAqBq1C,EAAS,EAAY,EAC1Cp1C,qBAAsBo1C,GAAaC,EAAJ,EAAgB,EAC/Cn1C,uBAAwBk1C,EAAS,EAAY,EAC7Cn1C,wBAAyBm1C,GAAaC,EAAJ,EAAgB,EAClD,CAACz8N,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BzD,aAAc,GAErB,IAEYwkO,GAAch1D,GAAOlqJ,GAAO21B,IAAdu0H,EAAiC7jJ,IAAA,IAAC,MAAE7jB,EAAK,MAAEy8N,GAAO54M,EAAA,MAAM,CAC/EmtI,cAAe,GACfoiB,UAAW,SACXzwK,WAAY,OACZ,CAAC3C,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B6qK,SAAU,IACVtuK,aAAc,GAElB,CAAC8H,EAAMvO,YAAYY,GAAG,OAAQ,CAC1Bm0K,SAAUi2D,EAAQ,IAAM,KAE5B,CAACz8N,EAAMvO,YAAYY,GAAG,OAAQ,CAC1Bm0K,SAAUi2D,EAAQ,IAAM,KAE5B,CAACz8N,EAAMvO,YAAYY,GAAG,OAAQ,CAC1Bm0K,SAAUi2D,EAAQ,IAAM,KAE/B,IAEYE,GAAYj1D,GAAOlqJ,GAAO21B,IAAdu0H,EAAiCziJ,IAAA,IAAC,MAAEjlB,GAAOilB,EAAA,MAAM,CACtE+rI,cAAe,GACfoiB,UAAW,SACXzwK,WAAY,OAEZ,CAAC3C,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BzD,aAAc,GAElB,CAAC8H,EAAMvO,YAAYY,GAAG,OAAQ,CAC1B,EAGP,ICvCD,IAAekgK,EAAAA,EAAAA,OAAK,SAAgBx1J,GAClC,MAAMiD,EAAQI,KACRy/J,EAAWR,KACXu9D,EAAkBxhC,KAClByhC,EAAmBzhC,KAEnBohC,IAASz/N,EAAMy/N,OACfC,IAAQ1/N,EAAM0/N,OAMpBzmM,EAAAA,EAAAA,YAAU,KACJj5B,EAAMssB,QACRyzM,GACF,GACC,CAAC//N,EAAMssB,SAEV,MAAMyzM,EAAaA,KACZ//N,EAAMssB,QAAQtsB,EAAMggO,SAASP,EAAS,EAAIC,EAAQ,EAAI,GAE3DI,EAAiBloM,OACjBioM,EAAgBjoM,OAEhBkoM,EAAiBrhO,MAAM,CAAE8uE,QAAS,GAAK,CAAE3sE,SAAU,KACnDi/N,EAAgBphO,MAAM,CAAE8uE,QAAS,GAAK,CAAE3sE,SAAU,IAAK,EAmBzD,OACEq2N,EAAAA,GAAAA,KAACiI,GACC,CACA5yM,OAAQtsB,EAAMssB,OACd2zM,aAAcF,EACdG,WArBiBC,KACfngO,EAAMssB,SAEVwzM,EAAiBloM,OACjBioM,EAAgBjoM,OAEhBkoM,EAAiBrhO,MAAM,CAAE8uE,QAAS,GAAK,CAAE3sE,SAAU,KACnDi/N,EAAgBphO,MAAM,CAAE8uE,QAAS,GAAK,CAAE3sE,SAAU,KAAK,EAc5BgE,UAEzBqyN,EAAAA,GAAAA,KAACuI,GAAkB,CAACv8N,MAAOA,EAAOw8N,OAAQA,EAAQC,MAAOA,EAAOl6F,QAASA,KAZ3Ev+H,YAAW,KACT67J,EAAS9iK,EAAMogO,SAAS,GACvB,IAU4F,EAAAx7N,UAC3FqyN,EAAAA,GAAAA,KAACU,GAAM,CAACpoK,KAAMvvD,EAAMogO,SAASx7N,UAC3BqyN,EAAAA,GAAAA,KAACoI,GAAY,CAAAz6N,UACXqyN,EAAAA,GAAAA,KAACuG,GAAW,CAAA54N,UACV2yN,EAAAA,GAAAA,MAAC92M,GAAO21B,IAAG,CAAC7oC,MAAO,CAAE/X,UAAWwK,EAAMssB,OAAS,EAAI,KAAM1nB,SAAA,EACvDqyN,EAAAA,GAAAA,KAAC2I,GAAS,CAAC38N,MAAOA,EAAM2B,UACtBqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,OACXuM,UAAU,KACVuI,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQF,MAAOiE,cAAe,IAAKq8K,UAAW,UAM5E+iD,OAAQn2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrCynN,OAAQj2N,EAAM3K,WAAWgC,GAAG3B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAWgC,GAAG3B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWgC,GAAG3B,SAAS8Y,WACrC7M,SAAU5E,EAAM6jF,WAGpB0zI,EAAAA,GAAAA,MAAC92M,GAAO21B,IAAG,CAAAxxC,SAAA,EACTqyN,EAAAA,GAAAA,KAAC0I,GAAW,CACVD,MAAOA,EACPz8N,MAAOA,EACPm8L,QAAS,CAAE71K,EAAG,EAAGgkD,QAAS,GAC1BkrH,QAASqnC,EACT95N,WAAYA,GACZpB,UACEqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,QACXuM,UAAU,IACVo0N,OAAQn2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCunN,OAAQ/1N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC7M,SAAU5E,EAAMy0I,UAItBwiF,EAAAA,GAAAA,KAACmI,GAAa,CACZ7xN,MAAO,CAAEnN,OAAQ,GACjBg/L,QAAS,CAAE71K,EAAG,EAAGgkD,QAAS,GAC1BkrH,QAASonC,EACT75N,WAAYA,GAAWpB,UAEvBqyN,EAAAA,GAAAA,KAACE,GAAG,CAACvyN,UACHqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,UACXuM,UAAU,IACVuI,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQF,MAAOw3E,QAAS,GAAIvzE,cAAe,GACzEo/N,OAAQn2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCwnN,OAAQ,SACRD,OAAQ/1N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC7M,SAAU5E,EAAMqgO,6BAYxC,ICjIaC,GAAgB31D,GAAOlqJ,GAAO21B,IAAdu0H,EAAmCpyK,IAAA,IAAC,MAAE0K,EAAK,OAAEjB,GAAQzJ,EAAA,MAAM,CACpF6+N,gBAAiB,8GACjBr4N,MAAO,OACPiD,OAAQA,GAAkB,OAC1BwoL,UAAW,IAAMxoL,EACjB7G,aAAc,EACjB,IAGYolO,GAAa51D,GAAOlqJ,GAAO21B,IAAdu0H,EAAgC7jJ,IAAA,IAAC,MAAE7jB,EAAK,OAAEjB,EAAM,IAAE0pC,GAAK5kB,EAAA,MAAM,CACnF/nB,MAAO,OACPiD,OAAQA,GAAkB,OAC1BwoL,UAAW,IAAMxoL,EACjB7G,aAAc,EACd8kB,OAAQ,EACRm3M,gBAAiB,OAAO1rL,KACxBgrL,mBAAoB,MACpBY,iBAAkB,YAClBD,eAAgB,QACnB,IAEYmJ,GAAU71D,GAAOlqJ,GAAO21B,IAAdu0H,EAAmBziJ,IAAA,IAAC,MAAEjlB,GAAOilB,EAAA,MAAM,CACtD6qE,gBAAiB9vF,EAAM5K,QAAQlF,WAAWmD,MAC1C6E,aAAc,EACjB,IClBc,SAASslO,GAAgBloO,GAA6C,IAA5C,IAAE+8B,EAAG,OAAEtzB,EAAM,MAAE6hF,GAA0BtrF,EAC9E,MAAM0K,EAAQI,MACPqoC,EAAKkrL,IAAUx/L,EAAAA,EAAAA,UAAS,IACzBspM,EAAcpiC,KACdw4B,EAAax4B,MAEnBrlK,EAAAA,EAAAA,YAAU,KACN0nM,EAAM,GACN/J,EAAOthM,EAAI,GACZ,CAACA,KAEJ2D,EAAAA,EAAAA,YAAU,KACN6+I,GAAU,CACNC,OAAQ6oD,IACRtrM,IAAKoW,GACP,GACH,CAACA,IAEJ,MAAMk1L,EAAeA,KACjB9J,EAAWl/L,OACXm/L,EAAM,GACC4J,EAAM,IAKX5J,EAASC,GAAqB0J,EAAYjiO,MAAM,CAAE8uE,QAASypJ,GAAY,CAAEp2N,SAAU,KACnF+/N,EAAS3J,GAAqBF,EAAWr4N,MAAM,CAAE8uE,QAASypJ,GAAY,CAAEp2N,SAAU,KAExF,OACIq2N,EAAAA,GAAAA,KAAC18C,GAAQ,CACLJ,QAASA,IAPSy8C,EAAOthM,GAQzB8kJ,QAASA,OACTx1K,UACI2yN,EAAAA,GAAAA,MAACiJ,GAAO,CAACv9N,MAAOA,EAAM2B,SAAA,EAClBqyN,EAAAA,GAAAA,KAACsJ,GAAU,CACP18I,MAAOA,EACP5gF,MAAOA,EACPjB,OAAQA,EACR0pC,IAAKA,EACL0zJ,QAAS,CAAE7xH,QAAS,GACpBkrH,QAASioC,EACT16N,WAAYA,MAEhBixN,EAAAA,GAAAA,KAACqJ,GAAa,CACVr9N,MAAOA,EACPjB,OAAQA,EACRo9L,QAAS,CAAE7xH,QAAS,GACpBkrH,QAASq+B,EACT9wN,WAAYA,SAMpC,CC/DO,MAAMw6N,GAAU71D,GAAOv0H,GAAG;;;;;EAOpByqL,GAAYl2D,GAAOv0H,GAAG;;;;EAMtBknL,GAAe3yD,GAAOv0H,GAAG;;;;;;EAQzB0qL,GAAan2D,GAAOv0H,GAAG,GAEvB2qL,GAAcp2D,GAAOv0H,GAAG,GCtBxB4qL,GAAmBr2D,GAAOv0H,KAAI79C,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACvD89K,UAAW,SACX,CAACpzK,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B,EAEP,IAEYqiO,GAAct2D,GAAO3Y,GAAU;;;;;;EAQ/B8uE,GAAan2D,GAAOv0H,KAAItvB,IAAA,IAAC,MAAE7jB,GAAO6jB,EAAA,MAAM,CACjD3G,QAAS,oBACTspJ,SAAU,IACV,CAACxmK,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BuhB,QAAS,sBAEhB,ICrBYqgN,GAAU71D,GAAOv0H,GAAG;;;;;;;;;;EAYpBonL,GAAc7yD,GAAOv0H,KAAI79C,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CAClD07J,cAAe,GACf,CAAChxJ,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B6qK,SAAU,KAEd,CAACxmK,EAAMvO,YAAYY,GAAG,OAAQ,CAC1Bm0K,SAAU,KAEd,CAACxmK,EAAMvO,YAAYY,GAAG,OAAQ,CAC1Bm0K,SAAU,KAEd,CAACxmK,EAAMvO,YAAYY,GAAG,OAAQ,CAC1Bm0K,SAAU,KAEjB,IAEYy3D,GAAoBv2D,GAAOv0H,KAAItvB,IAAA,IAAC,MAAE7jB,GAAO6jB,EAAA,MAAM,CACxD,CAAC7jB,EAAMvO,YAAYkK,KAAK,OAAQ,CAChC,EACH,IC7Bc,SAASuiO,GAASnhO,GAC/B,MAAMiD,EAAQI,KACd,OACE4zN,EAAAA,GAAAA,KAACiK,GAAiB,CAACj+N,MAAOA,EAAM2B,UAC9BqyN,EAAAA,GAAAA,KAACuJ,GAAO,CAAC/nO,WAAYuH,EAAMvH,WAAWmM,UACpC2yN,EAAAA,GAAAA,MAACyJ,GAAgB,CAAC/9N,MAAOA,EAAM2B,SAAA,EAC7BqyN,EAAAA,GAAAA,KAACuG,GAAW,CAACv6N,MAAOA,EAAM2B,UACxBqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfZ,MAAI,EACJpgO,WAAW,QACXuM,UAAU,IACVzT,MAAM,UACN6nO,OAAQn2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrC7M,SAAU5E,EAAMy0I,UAGpBwiF,EAAAA,GAAAA,KAACwC,GAAgB,CACfZ,MAAI,EACJpgO,WAAW,UACXuM,UAAU,KACVo0N,OAAQn2N,EAAM3K,WAAWsC,MAAMjC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCwnN,OAAQh2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCunN,OAAQ/1N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrClE,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQF,MAAOsgL,UAAW,SAAUr8K,cAAe,EAAGuzE,QAAS,IAC7F3oE,SAAU5E,EAAMuC,aAM5B,CCvCO,MAAM+6N,GAAe3yD,GAAOv0H,GAAG;;;;;;;EASzBonL,GAAc7yD,GAAOv0H,GAAG;;;;;;EAQxBgrL,GAAkBz2D,GAAOv0H,GAAG;;;;;;ECb1B,SAASirL,GAASrhO,GAC/B,MAAMiD,EAAQI,KACd,OACE4zN,EAAAA,GAAAA,KAACqG,GAAY,CAAA14N,UACXqyN,EAAAA,GAAAA,KAACuG,GAAW,CAAA54N,UACV2yN,EAAAA,GAAAA,MAAC6J,GAAe,CAAAx8N,SAAA,EACdqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfZ,MAAM,EACNpgO,WAAW,YACXuM,UAAU,KACVzT,MAAM,UACN6nO,OAAQ,MACRF,OAAQ,OACRD,OAAQ,OACRD,OAAQ,OACRG,OAAQ,OACR5rN,MAAO,CACLhc,MAAO0R,EAAM5K,QAAQpC,QAAQ8B,KAC7BiC,cAAe,EACfD,WAAY,KAEd6K,SAAU5E,EAAMshO,SAASC,cAE3BtK,EAAAA,GAAAA,KAACwC,GAAgB,CACfZ,MAAM,EACNpgO,WAAW,OACXuM,UAAU,KACVzT,MAAM,UACN6nO,OAAQ,MACRF,OAAQj2N,EAAM3K,WAAW+B,GAAG1B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAW+B,GAAG1B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAW+B,GAAG1B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAW+B,GAAG1B,SAAS8Y,WACrClE,MAAO,CACLhc,MAAO,UACPyI,cAAe,EACfq8K,UAAW,UAEbzxK,SAAU5E,EAAMshO,SAAS7sF,aAMrC,CC9Ce,SAAS+sF,GAAajpO,GAAyC,IAAxC,SAAEqM,EAAQ,QAAE4gI,GAAyBjtI,EACvE,MAAM8lO,EAAiB//B,KAIvB,OACI24B,EAAAA,GAAAA,KAACx2M,GAAO21B,IAAG,CACP7oC,MAAO,CAAEvL,OAAQ,OAAQjD,MAAO,OAAQ+zK,OAAQ,WAChDgvB,SAAU,CAAEx2I,MAAO,KACnBk6E,QANY7vG,SAAY0oM,EAAe5/N,MAAM,CAAE6sD,MAAO,MAAQonE,MAAK,IAAM2rG,EAAe5/N,MAAM,CAAE6sD,MAAO,IAAKonE,MAAK,IAAM8S,QAOvH5gI,SAAUA,EACVoB,WAAY,CACRg6F,KAAM,CAAC,GAAI,GAAI,GAAI,IACnBp/F,SAAU,KAI1B,CCjBO,MAAM6gO,GAAgB92D,GAAOlqJ,GAAO21B,IAAI;;;;EAMlCknL,GAAe3yD,GAAOv0H,GAAG;;;;;;;;;EAWzB4/K,GAAiBrrD,GAAOv0H,KAAI79C,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACrDwG,MAAO,OACPvJ,UAAW,IACX2F,aAAc,EACd43F,gBAAiB9vF,EAAM5K,QAAQlF,WAAWmD,MAC1C,CAAC2M,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B6qK,SAAU,KAEjB,IAEY+1D,GAAqB70D,GAAO20D,GAAe;;EAI3CwB,GAAan2D,GAAOlqJ,GAAO21B,IAAI;;;;;EAO/BsrL,GAAkB/2D,GAAOlqJ,GAAO21B,IAAI;EC9BlC,SAASurL,GAAS3hO,GAC/B,MAAMiD,EAAQI,KACRy/J,EAAWR,KAQjB,OACE20D,EAAAA,GAAAA,KAAC2B,GAAQ,CAACC,MAAI,EAAAj0N,UACZqyN,EAAAA,GAAAA,KAACqG,GAAY,CAAA14N,UACXqyN,EAAAA,GAAAA,KAACjB,GAAc,CAAC/yN,MAAOA,EAAM2B,UAC3BqyN,EAAAA,GAAAA,KAACuK,GAAa,CAACh8F,QAASA,KAT9Bv+H,YAAW,KACT67J,EAAS9iK,EAAMshO,SAASlB,SAAS,GAChC,IAO2C,EAAAx7N,UACtCqyN,EAAAA,GAAAA,KAACU,GAAM,CAACpoK,KAAMvvD,EAAMshO,SAASlB,SAASx7N,UACpCqyN,EAAAA,GAAAA,KAAC6J,GAAU,CAAAl8N,UACT2yN,EAAAA,GAAAA,MAACiI,GAAkB,CAAC1vD,eAAa,EAAAlrK,SAAA,EAC/BqyN,EAAAA,GAAAA,KAACwK,GAAa,CAAA78N,UACZqyN,EAAAA,GAAAA,KAACb,GAAY,CACXvyI,MAAO7jF,EAAMshO,SAASz9I,MACtBwyI,W3UxBc,I2UwBmB5kN,WACjCs4I,MAAO/pJ,EAAMshO,SAAS51L,IACtB1pC,OAAO,QACPjD,MAAM,YAGVk4N,EAAAA,GAAAA,KAACyK,GAAe,CAAC98N,UAAUqyN,EAAAA,GAAAA,KAACoK,GAAQ,IAAKrhO,oBAS3D,CC7CA,MAAMgG,GAAa,qCAEN47N,GAAgBj3D,GAAOv0H,GAAG;;;;;gBAKvBpwC;;;;EAMHw6N,GAAU71D,GAAOv0H,GAAG;;;;EAgBpByrL,IAVQl3D,GAAOjlF,IAAI;;mBAEb1/E;EAGQ2kK,GAAOjlF,IAAI;;gBAEtB1/E;EAGS2kK,GAAOjlF,IAAI;;;;;;gBAMnB1lF,GAAUA,EAAM7M,YAAc6M,EAAM7M;;gBAErC6S;GAGH87N,GAAQn3D,GAAOv0H,KAAI79C,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CAC9C4nB,QAAS,EACTpa,WAAY,EACZhH,MAAO,OACPs3K,UAAW,OACXtjF,gBAAiB,OACjB53F,aAAc,EACd23K,OAAQ,UACR9sK,WAAYA,GACZ2wK,aAAc,EACd,CAAC1zK,EAAMvO,YAAYkK,KAAK,OAAQ,CAC9B+3K,aAAc,IAEjB,IC9Cc,SAASorD,GAAK/hO,GAC3B,MAAMiD,EAAQI,KACRyE,EAAWo6J,KACXY,EAAWR,KACX0/D,EAAWl6N,EAASqiC,SAAW,IAAMnqC,EAAMkK,OAQjD,OACE+sN,EAAAA,GAAAA,KAACuK,GAAa,CAACh8F,QAASA,KANxBv+H,YAAW,KACT67J,EAASk/D,EAAS,GACjB,IAIyC,EAAAp9N,UAC1CqyN,EAAAA,GAAAA,KAACU,GAAM,CAACpoK,KAAMyyK,EAASp9N,UACrBqyN,EAAAA,GAAAA,KAAC2B,GAAQ,CAACC,MAAI,EAAAj0N,UACZ2yN,EAAAA,GAAAA,MAACuK,GAAK,CAAC7+N,MAAOA,EAAM2B,SAAA,EAClBqyN,EAAAA,GAAAA,KAAC2K,GAAa,CACZh9N,UACEqyN,EAAAA,GAAAA,KAACb,GAAY,CACXvyI,MAAO7jF,EAAM6jF,MACb0yI,yBAAuB,EACvBxjI,gBAAiB,cACjB/wF,OAAQhC,EAAM2+N,OAAS,QAAU,QACjC5/N,MAAOiB,EAAM2+N,OAAS,QAAU,QAChC50E,MAAO/pJ,EAAM+pJ,MACbz+F,MAAwB,oBAAjBtrD,EAAMkK,OAA+B,GAAM,OAIxDqtN,EAAAA,GAAAA,MAACiJ,GAAO,CAAA57N,SAAA,EACNqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfx2N,MAAOA,EACP41N,MAAM,EACNpgO,WAAW,YACXuM,UAAU,KACVuI,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQnC,UAAUmB,KAAM2C,cAAe,GAAIuzE,QAAS,GAAKr1E,cAAe,aAC9FkhO,OAAQn2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCynN,OAAQj2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCwnN,OAAyB,2BAAjBj5N,EAAMkK,OAAsC,UAAYjH,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WAC7FunN,OAAyB,2BAAjBh5N,EAAMkK,OAAsC,UAAYjH,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WAC7F0nN,OAAyB,2BAAjBn5N,EAAMkK,OAAsC,UAAYjH,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WAC7F7M,SAAU5E,EAAM6jF,SAElBozI,EAAAA,GAAAA,KAACwC,GAAgB,CACfx2N,MAAOA,EACP41N,MAAM,EACNpgO,WAAW,UACXuM,UAAU,IACVuI,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQnC,UAAUmB,KAAMk2E,QAAS,GAAIvzE,cAAe,GAC1Eo/N,OAAQn2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCwnN,OAAQh2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCunN,OAAQ/1N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxC0nN,OAAQl2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxC7M,SAAU5E,EAAMgkF,eAElBizI,EAAAA,GAAAA,KAAC4K,GAAS,CAAC1uO,WAAY6M,EAAMiiO,KAAM9mO,aAAc,eAO/D,CCzEA,MAAM+mO,GAAgB,6EAEhBC,GAAc,yKACdC,GAAc,2RAEdC,GAAa,iEAKNC,GAAa,wDAIpBC,GAAsB,sEAItBC,GAAe,8DAOfC,GAAc,sDASPC,GAAY,CACvB,CACE/D,QAAQ,EACRz0N,OAAQ,SACRy4N,KAAM,SACNC,UAAW,GACXC,MAAO,6BACPC,WAAYX,GACZY,WAAYX,GACZ12L,IAAKgzL,GACLsE,QAASd,GACTD,KAAM,UACN1D,OAAQ,CACNxhF,SAAU,cACVkmF,UAAW,eAEbtxN,KAAM,6CAER,CACEgtN,QAAQ,EACRz0N,OAAQ,kBACRy4N,KAAM,SACNC,UAAW,iBACXC,MAAO,6BACPC,WAAYX,GACZY,WAAYX,GACZ12L,IAAK+yL,GACLuE,QAASd,GACTD,KAAM,UACN1D,OAAQ,CACNxhF,SAAU,qBACVkmF,UAAW,kBAEbtxN,KAAM,6CAER,CACEgtN,QAAQ,EACRz0N,OAAQ,aACRy4N,KAAM,SACNC,UAAW,MACXC,MAAO,4BACPC,WAhEkB,0HAiElBC,WAhEmB,4LAiEnBr3L,IAAK42L,GACLU,QAASV,GACTL,KAAM,UACN1D,OAAQ,CACNxhF,SAAU,YACVkmF,UAAW,aAEbtxN,KAAM,iEAER,CACEgtN,QAAQ,EACRz0N,OAAQ,kBACRy4N,KAAM,UACNC,UAAW,UACXC,MAAO,sBACPC,WArFiB,yOAsFjBC,WArFiB,8MAsFjBr3L,IAAK22L,GACLW,QAzFmBX,GA0FnBJ,KAAM,UACN1D,OAAQ,CACNxhF,SAAU,iBACVkmF,UAAW,mBAEbtxN,KAAM,iEAER,CACEgtN,QAAQ,EACRz0N,OAAQ,iBACRy4N,KAAM,OACNC,UAAW,YACXC,MAAO,iCACPC,WA9FsB,uVA+FtBC,WA9FsB,8PA+FtBr3L,IAAK62L,GACLS,QAAST,GACTN,KAAM,UACN1D,OAAQ,CACNxhF,SAAU,sBACVkmF,UAAW,uBAEbtxN,KAAM,iEAER,CACEgtN,QAAQ,EACRz0N,OAAQ,eACRy4N,KAAM,QACNC,UAAW,SACXC,MAAO,mCACPC,WA3Ge,sbA4GfC,WAAY,GACZr3L,IAAK82L,GACLQ,QAASR,GACTP,KAAM,UACN1D,OAAQ,CACNxhF,SAAU,eACVkmF,UAAW,eAEbtxN,KAAM,iEAmBR,CACEgtN,QAAQ,EACRz0N,OAAQ,YACRy4N,KAAM,MACNC,UAAW,QACXC,MAAO,iBACPC,WAtIkB,kGAuIlBC,WAAY,GACZr3L,IAAK+2L,GACLO,QAASP,GACTR,KAAM,UACN1D,OAAQ,CACNxhF,SAAU,uBACVkmF,UAAW,aAEbtxN,KAAM,kEA2CGuxN,GAAgB,CAC3BppN,WAAW,EACXvM,MAPuB,CACvBxO,MAAO,OACPmhB,OAAQ,kEC7MV,MAAMijN,IAAsBtuE,EAAAA,EAAAA,eAA6B,CAAEuuE,YAAY,EAAOC,cAAeA,OAAWC,aAAa,EAAOC,eAAgBA,OAAWC,aAAa,EAAOC,eAAgBA,OAAWC,OAAO,EAAOC,SAAUA,OAAW35E,UAAU,EAAO45E,YAAaA,SAE1PC,GAAuBtrO,IAAgD,IAA/C,SAAEqM,EAAQ,QAAEk/N,GAA6BvrO,EAC1E,MAAM,SAAE4xC,GAAa+3H,MACdkhE,EAAYC,IAAiBjsM,EAAAA,EAAAA,WAAS,IACtCksM,EAAaC,IAAkBnsM,EAAAA,EAAAA,WAAS,IACxCosM,EAAaC,IAAkBrsM,EAAAA,EAAAA,WAAS,IACxCssM,EAAOC,IAAYvsM,EAAAA,EAAAA,WAAS,IAC5B4yH,EAAU45E,IAAexsM,EAAAA,EAAAA,WAAS,GAiBzC,OAfA6B,EAAAA,EAAAA,YAAU,KACW,MAAbkR,EAEAw5L,EAASG,IAMTP,GAAe,GACfI,GAAS,GACTF,GAAe,GACnB,GACD,CAACK,KAGA7M,EAAAA,GAAAA,KAACkM,GAAoBnuE,SAAQ,CACzBjkK,MAAO,CACHqyO,aACAC,gBACAC,cACAC,iBACAC,cACAC,iBACAC,QACAC,WACA35E,WACA45E,eACFh/N,SAEDA,GAC0B,EAIhC,SAASm/N,KAEZ,OADsBhlG,EAAAA,EAAAA,YAAWokG,GAErC,CCnDO,MAAM5mM,GAAuD,CAChE9B,KAAM,SACNC,QAAS,CACL,CACIO,WAAY,CAAC,EAAG,KAChBzpC,KAAM,OACN8hB,OAAQ,CAAC,EAAG,MAEhB,CACI2nB,WAAY,CAAC,IAAM,GACnBzpC,KAAM,OACN8hB,OAAQ,CAAC,QCPN,SAAS0wN,GAAQzrO,GAAyD,IAAxD,UAAEuxC,EAAS,OAAEmhK,EAAM,KAAEh1K,EAAI,OAAEj0B,EAAM,MAAEjD,GAAkBxG,EACpF,MAAM,WAAE6qO,EAAU,YAAEE,EAAW,YAAEE,EAAW,MAAEE,EAAK,YAAEE,GAAgBG,MAC9Dr6L,EAAMu6L,IAAW7sM,EAAAA,EAAAA,WAAS,GAUjC,OARA6B,EAAAA,EAAAA,YAAU,KAENgrM,IADEX,GAAeE,GAAeE,IACxBN,EAGV,GACC,CAACA,EAAYE,EAAaE,KAG3BvM,EAAAA,GAAAA,KAAAO,GAAAA,SAAA,CAAA5yN,SACG8kC,IAECutL,EAAAA,GAAAA,KAAC76L,KAAM,CACLlG,UAAU,EACVD,MAAe,IAATA,EACNsG,cAAe0uK,GAAU1uK,GACzBvG,cAAe8T,EACfv8B,MAAO,CAAEvL,OAAQA,GAAkB,OAAQjD,MAAOA,GAAgB,QAClEq3B,WAAYA,IAAMwtM,GAAY,MAKxC,86sIC1BaM,GAAWv5D,GAAOv0H,GAAG;;;;;EAOrB+tL,GAAUx5D,GAAOv0H,GAAa;YAC9Bp2C,GAAUA,EAAMgC,OAAShC,EAAMgC,OAAS;;gBAZlC;gCAEc;uIAcuGhC,GAAUA,EAAM0rC;;;;;;wBAM/H1rC,GAAUA,EAAMsrD;;;;uBAIjBtrD,GAAUA,EAAMsrD;;;;;;;;EAU3B84K,GAAgBz5D,GAAOv0H,KAAI79C,IAAA,MAAIA,EAAA,MAAM,CAChDyJ,OAAQ,QACR2sB,SAAU,WACVrO,IAAK,EACLvhB,MAAO,OACP8G,QAAS,OACT8sK,WAAY,SACZC,eAAgB,SAChBxyK,OAAQ,EACT,IAEYikO,GAAoB15D,GAAOv0H,KAAItvB,IAAA,MAAIA,EAAA,MAAM,CACpD/nB,MAAO,OACP0qK,SAAU,IACX,IAEYy0D,GAAkBvzD,GAAOv0H,KAAIluB,IAAA,MAAIA,EAAA,MAAM,CAClDlmB,OAAQ,OACRjD,MAAO,OACP0qK,SAAU,KACV5jK,QAAS,OACTo0N,cAAe,SACftnD,WAAY,SACZC,eAAgB,SACjB,IAEYojD,GAAiBrrD,GAAOv0H,KAAInuB,IAAA,IAAC,MAAEhlB,GAAOglB,EAAA,MAAM,CACvD8qE,gBAAiB9vF,EAAM5K,QAAQlF,WAAWqD,QAC3C,uwQCzDKwP,GAAa,CAEfpF,SAAU,GAGVo/F,KAAM,CAAC,GAAM,GAAM,GAAM,KAId,SAASskI,GAAc/rO,GAAwB,MAAHA,EACvD,MAAM,SAAE4xC,GAAa+3H,KACfqiE,EAAiBjmC,MAEvBrlK,EAAAA,EAAAA,YAAU,KACNurM,GAAQ,GACT,CAACr6L,IAEJ,MAAMq6L,EAAS7uM,gBACL4uM,EAAe9lO,MAAM,CACvB8uE,QAAS,UAEPg3J,EAAe9lO,MAAM,CACvB8uE,QAAS,IACX,EASN,OACI0pJ,EAAAA,GAAAA,KAACx2M,GAAO21B,IAAG,CACP7oC,MAAO,CAIHohB,SAAU,WAEVvO,OAAQ,GAEZg/K,QAAS,CAAE7xH,QAAS,GACpBkrH,QAAS8rC,EACTv+N,WAAYA,GAAWpB,UAEvBqyN,EAAAA,GAAAA,KAACz/C,GAAU,CAAC59K,KAAK,QAAQrI,MAAM,UAAUi0I,QAASA,KAnBtDv+H,YAAW,KACPoC,OAAO4hM,OAAO,CAAEytB,SAAU,SAAUp4M,IAAK,KAAM,GAChD,IAiB8E,EAAA1b,UACzEqyN,EAAAA,GAAAA,KAACE,GAAG,CAACvyN,UAAUqyN,EAAAA,GAAAA,KAAC+M,GAAQ,CAAChiO,OAAQ,GAAIjD,MAAO,GAAI+qC,UAAW26L,GAAYxuM,MAAI,SAI3F,CCxDe,SAASyuM,GAAYnsO,GAAsB,MAAHA,EACnD,MAAM,WAAE6qO,GAAeW,MAChBtvL,EAAMkwL,IAAWvtM,EAAAA,EAAAA,WAAS,GAoDjC,OAlDA6B,EAAAA,EAAAA,YAAU,KACN0rM,EAAQvB,EAAW,GAGpB,CAACA,IA8CG3uL,IAAQwiL,EAAAA,GAAAA,KAACqN,GAAc,GAElC,+DC1D2B35D,GAAOi6D,KAAPj6D,EAAoBpyK,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CAC3D0nB,OAAQ,EACRje,OAAQ,QACRjD,MAAO,OAEPG,UAAW,WACX,CAAC+D,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BM,UAAW,YAEf,CAAC+D,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BM,UAAW,YAEf,CAAC+D,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BM,UAAW,YAEf,CAAC+D,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BM,UAAW,cAEf,CAAC+D,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BM,UAAW,YAElB,IArBM,MAuBM2lO,GAAel6D,GAAOv0H,KAAItvB,IAAA,IAAC,MAAE7jB,GAAO6jB,EAAA,MAAM,CACnD7G,OAAQ,EACRje,OAAQ,QACRjD,MAAO,OAEPG,UAAW,WACX,CAAC+D,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BM,UAAW,cAEf,CAAC+D,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BM,UAAW,cAEf,CAAC+D,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BM,UAAW,cAEf,CAAC+D,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BM,UAAW,YAEf,CAAC+D,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BM,UAAW,YAElB,IC/CY8G,GAAa,CACtBpF,SAAU,GACVo/F,KAAM,CAAC,GAAM,GAAM,GAAM,KCWd,SAAS8kI,GAAWvsO,GAA0D,IAAzD,OAAEyJ,EAAM,aAAE+iO,EAAY,MAAEC,EAAK,SAAEpgO,GAAuBrM,EACtF,MAAMs+N,EAAcv4B,MACbz/J,EAASomM,IAAW7tM,EAAAA,EAAAA,WAAS,IAC7B7L,EAAQ25M,IAAa9tM,EAAAA,EAAAA,WAAS,IAC9BjtB,EAAKg7N,IAAU/tM,EAAAA,EAAAA,UAAS4tM,IACzB,QAAE5M,EAAO,OAAErgD,GAAW4gD,MACtB,cAAE0K,EAAa,eAAEE,EAAc,SAAEI,GAAaI,KAC9C9gO,EAAQI,MAEd41B,EAAAA,EAAAA,YAAU,KACF1N,EACA25M,EAAkB,KAAR/6N,GAEViuN,GAAQ,EACZ,GACD,CAACjuN,KAEJ8uB,EAAAA,EAAAA,YAAU,KACNurM,EAAOj5M,EAAS,EAAI,EAAE,GACvB,CAACA,IAKJ,MAAMi5M,EAAS7uM,UACXkhM,EAAYp4N,MAAM,CACd8uE,QAASypJ,IAEbqM,EAA2B,IAAbrM,EAAe,EAgBjC,OACIC,EAAAA,GAAAA,KAAC18C,GAAQ,CACLJ,QAASA,IAAM8qD,GAAQ,GACvB7qD,QAASA,IAAM6qD,GAAQ,GAAOrgO,UAE9B2yN,EAAAA,GAAAA,MAACJ,GAAG,CAAAvyN,SAAA,EACAqyN,EAAAA,GAAAA,KAACE,GAAG,CACA5pN,MAAO,CACHohB,SAAUo2M,EAAe,WAAa,WACtC/iO,OAAQA,EACRjD,MAAO,OACPq4N,gBAAiB7rM,GAAU,8GAC3BnrB,OAAQ,MAGhB62N,EAAAA,GAAAA,KAACx2M,GAAO21B,IAAG,CACP7oC,MAAO,CAAEohB,SAAU,WAAYvuB,OAAQ,GACvCg/L,QAAS,CAAE7xH,QAAS,GACpBkrH,QAASo+B,EACT7wN,WAAYA,GAAWpB,UAEvBqyN,EAAAA,GAAAA,KAAC4N,GAAY,CAAC5hO,MAAOA,EAAM2B,UACvBqyN,EAAAA,GAAAA,KAAC2N,KAAW,CACR9rM,OAAQ,CACJ4jH,QAAS,CAGLyB,YAAaA,IAAMlpJ,QAAQ0rH,IAAI,eAIvC19G,MAAOA,EACP47B,QAASA,EACT5I,MAAI,EACJ8nH,UAAU,EACVxH,OAAK,EACLv0I,OAAQ,OACRjD,MAAO,OAGPi3I,WAAa3qH,IA9C7B0sJ,GACAqgD,GAAQ,QAEZ8M,GAAU,IAgDUn7L,QA1DJpU,UAChB6uM,EAAO,GACPjB,GAAe,GACfI,GAAS,EAAK,EAyDMx5N,IAAKA,EAELvF,SAAUA,YAStC,CChHO,MAAMwgO,GAAgBz6D,GAAOlqJ,GAAO21B,IAAdu0H,EAAmBpyK,IAAA,MAAIA,EAAA,MAAM,CACtDyJ,OAAQ,QACX,ICLYgE,GAAa,CACtBpF,SAAU,GACVo/F,KAAM,CAAC,GAAM,GAAM,GAAM,KCQd,SAASqlI,GAAO9sO,GAAoC,IAAnC,IAAEmzC,EAAG,OAAE1pC,EAAM,MAAE6hF,GAAiBtrF,EAC5D,MAAMs+N,EAAcx4B,MACd,QAAE+5B,GAAYO,MACd,cAAE0K,EAAa,eAAEI,EAAc,MAAEC,EAAK,SAAEC,GAAaI,MACpDzuM,EAAKgwM,IAAUluM,EAAAA,EAAAA,UAAS,KAE/B6B,EAAAA,EAAAA,YAAU,KACNwqM,GAAe,EAAK,GACrB,KAEHxqM,EAAAA,EAAAA,YAAU,KACNssM,GAAc,EAAK,GACpB,CAAC7B,KAEJzqM,EAAAA,EAAAA,YAAU,KACNusM,GAAY,GACb,CAAClwM,IAEJ,MAAMkwM,EAAaA,KACf,IAAIxtD,EAAQ,IAAI7hF,MAChB6hF,EAAM1iJ,IAAMoW,EACZssI,EAAM5iJ,OAAS,KACXkwM,EAAO55L,GACPqrL,EAAM,GACNsM,GAAc,GACdkC,GAAc,EAAM,CACvB,EAGCA,EAAiBE,IAEfrN,EAAQqN,EAGZ,EAGE1O,EAAQphM,gBACJkhM,EAAYp4N,MAAM,CAAE8uE,QAASm4J,GAAM,EAuB7C,OACIzO,EAAAA,GAAAA,KAAC18C,GAAQ,CACLJ,QAtBY+8C,KACZwM,GACA4B,EAAO55L,EACX,EAoBI0uI,QAjBWurD,KACXjC,IACA4B,EAAO,IACPvO,EAAM,GACV,EAcInyN,UACIqyN,EAAAA,GAAAA,KAACmO,GAAa,CACVhmC,QAAS,CAAE7xH,QAAS,GACpBkrH,QAASo+B,EACT7wN,WAAYA,GAAWpB,UAEvBqyN,EAAAA,GAAAA,KAACkN,GAAO,CACJtgJ,MAAOA,EACP7hF,OAAQA,EAER0pC,IAAKpW,EACLg2B,MAAOo4K,EAAQ,IAAM,MACrB19N,WAAY09N,EAAQ,UAAY,YAChC35L,QAASA,KAvBrB25L,IACAC,GAAS,GACTF,GAAe,GAqB0B,OAOrD,CCrFe,SAASmC,GAAYrtO,GAAiC,IAAhC,IAAEmzC,EAAG,MAAEm4C,GAAsBtrF,EAC9D,MAAM0K,EAAQI,MACR,YAAEigO,EAAW,MAAEI,EAAK,YAAEF,GAAgBO,KAE5C,OACI9M,EAAAA,GAAAA,KAACE,GAAG,CAAC5pN,MAAO,CAAEwlF,gBAAiB9vF,EAAM5K,QAAQlF,WAAWmD,OAAQsO,SAC3D0+N,GACGrM,EAAAA,GAAAA,KAAC6N,GAAW,CAAC9iO,OAAO,QAAQ+iO,cAAY,EAACC,MAVrC,wDAYHtB,IAASF,KAAevM,EAAAA,GAAAA,KAACoO,GAAO,CAACxhJ,MAAOA,EAAOn4C,IAAKg4L,EAXpD,mEAWuEh4L,KAGxF,CCZe,SAASm6L,GAAattO,GAA2D,IAA1D,KAAE+xC,EAAI,IAAEoB,EAAG,SAAEo6L,EAAQ,QAAEhC,EAAO,MAAEjgJ,GAAuBtrF,EACzF,MAAM0K,EAAQI,KACd,OACI4zN,EAAAA,GAAAA,KAAC4M,GAAoB,CAACC,QAASA,EAAQl/N,UACnCqyN,EAAAA,GAAAA,KAACjB,GAAc,CAAC/yN,MAAOA,EAAM2B,UACzB2yN,EAAAA,GAAAA,MAAC2M,GAAQ,CAAAt/N,SAAA,EACLqyN,EAAAA,GAAAA,KAAC2O,GAAY,CAAC/hJ,MAAOA,EAAOn4C,IAAKA,KACjC6rL,EAAAA,GAAAA,MAAC6M,GAAa,CAAAx/N,SAAA,EACI,IAAbkhO,GAEG7O,EAAAA,GAAAA,KAACoN,GAAiB,CAAAz/N,UACdqyN,EAAAA,GAAAA,KAAC+M,GAAQ,CAACl6L,UAAWQ,EAAMrU,MAAM,OAGrCghM,EAAAA,GAAAA,KAACiH,GAAe,CAAAt5N,UACZqyN,EAAAA,GAAAA,KAAC+M,GAAQ,CAACl6L,UAAWQ,EAAMrU,MAAM,OAGzCghM,EAAAA,GAAAA,KAACyN,GAAY,aAMrC,CChCO,MAAMqB,GAAWp7D,GAAOvwK,IAAG7B,IAAA,MAAIA,EAAA,MAAM,CACxC0iC,WAAY,SACf,ICDY+qM,GAA+BA,KAC1C/O,EAAAA,GAAAA,KAAA,QAAM1pN,MAAO,CAAEggE,QAAS,EAAG5+C,SAAU,YAAa/pB,UAChDqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,4CAIKqhO,GAAoCA,KAC/ChP,EAAAA,GAAAA,KAAA,QAAM1pN,MAAO,CAAEggE,QAAS,EAAG5+C,SAAU,YAAa/pB,UAChDqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,4BAIKshO,GAAiCA,KAC5CjP,EAAAA,GAAAA,KAAA,QAAM1pN,MAAO,CAAEggE,QAAS,EAAG5+C,SAAU,YAAa/pB,UAChDqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,+BAIKuhO,GAAiBA,KAC5B5O,EAAAA,GAAAA,MAAAC,GAAAA,SAAA,CAAA5yN,SAAA,EACEqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,2BACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,iBACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,cACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,oBACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,oBACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,2BACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,0BACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,mBACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,oBACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,mBACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,mBACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,gBACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,0BACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,mBACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,aACVqyN,EAAAA,GAAAA,KAAC8O,GAAQ,CAAAnhO,SAAC,6BAIDwhO,GAAsBA,KACjC7O,EAAAA,GAAAA,MAAA,QAAMhqN,MAAO,CAAEggE,QAAS,EAAG5+C,SAAU,YAAa/pB,SAAA,EAChDqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,mBACJqyN,EAAAA,GAAAA,KAACkP,GAAc,KACflP,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,yCACJqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,mLAIKyhO,GAAmCA,KAC9C9O,EAAAA,GAAAA,MAAA,QAAMhqN,MAAO,CAAEggE,QAAS,EAAG5+C,SAAU,YAAa/pB,SAAA,EAChDqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,iCACJqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,8BACJqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,0CACJqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,kDAIK0hO,GAA+BA,KAC1C/O,EAAAA,GAAAA,MAAA,QAAMhqN,MAAO,CAAEggE,QAAS,EAAG5+C,SAAU,YAAa/pB,SAAA,EAChDqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,yCACJqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,8LAIK2hO,GAAmCA,KAC9CtP,EAAAA,GAAAA,KAAA,QAAM1pN,MAAO,CAAEggE,QAAS,EAAG5+C,SAAU,YAAa/pB,UAChDqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,yBAIK4hO,GAA4BA,KACvCjP,EAAAA,GAAAA,MAAA,QAAMhqN,MAAO,CAAEggE,QAAS,EAAG5+C,SAAU,YAAa/pB,SAAA,EAChDqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,uCACJqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,qIAIK6hO,GAAiCA,KAC5CxP,EAAAA,GAAAA,KAAA,QAAM1pN,MAAO,CAAEggE,QAAS,EAAG5+C,SAAU,YAAa/pB,UAChDqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,4BAIK8hO,GAA4BA,KACvCnP,EAAAA,GAAAA,MAAA,QAAMhqN,MAAO,CAAEggE,QAAS,EAAG5+C,SAAU,YAAa/pB,SAAA,EAChDqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,6BACJqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,8HAIK+hO,GAAkCA,KAC7C1P,EAAAA,GAAAA,KAAA,QAAM1pN,MAAO,CAAEggE,QAAS,EAAG5+C,SAAU,YAAa/pB,UAChDqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,mBAIKgiO,GAA2BA,KACtCrP,EAAAA,GAAAA,MAAA,QAAMhqN,MAAO,CAAEggE,QAAS,EAAG5+C,SAAU,YAAa/pB,SAAA,EAChDqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,4BACJqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAI,0HChGO,SAASiiO,GAActuO,GAAwD,IAAvD,KAAE+xC,EAAI,MAAEw8L,EAAK,IAAEp7L,EAAG,QAAEo4L,EAAO,MAAEjgJ,GAAuBtrF,EACvF,MACMwuO,EAAO5+D,GADC9kK,KACmB3O,YAAYkK,KAAK,OAElD,OACI24N,EAAAA,GAAAA,MAACJ,GAAG,CAACn1N,OAAQ,QAASjD,MAAO,OAAO6F,SAAA,CAC/Bk/N,IAAW7M,EAAAA,GAAAA,KAACmP,GAAmB,IAC/BW,GACG9P,EAAAA,GAAAA,KAAC4O,GAAa,CAAChiJ,MAAOA,EAAOigJ,QAASA,EAASgC,UAAU,EAAOx7L,KAAMw8L,EAAOp7L,IAAKA,KAElFurL,EAAAA,GAAAA,KAAC4O,GAAa,CAAChiJ,MAAOA,EAAOigJ,QAASA,EAASgC,SAAS,KAAKx7L,KAAMA,EAAMoB,IAAKA,MAI9F,CCjBO,MAAM4xL,GAAe3yD,GAAO5yK,MAAKQ,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACtD/C,UAAW,QACXuJ,MAAO,OACP5L,WAAY8P,EAAM5K,QAAQlF,WAAWqD,QACrCy9J,cAAe,GAChB,IAEY+hE,GAAiBrrD,GAAOv0H,GAAG;;;;EAM3B4wL,GAAgBr8D,GAAO3Y,GAAU;;EAIjCi1E,GAAsBt8D,GAAO3Y,GAAU;;EAIvCk1E,GAAgBv8D,GAAOmxD,GAAK;;;ECX5BqL,GAAa,sDAE1B,IAAe3xE,EAAAA,EAAAA,OAAK,WAClB,MAAMvyJ,EAAQI,KACR+jO,EAAOj/D,GAAcllK,EAAMvO,YAAYkK,KAAK,OAE5CkkK,EAAWR,KAEjB,SAAS+kE,EAAeh8M,GACtB,MAAMt5B,EjY6GH,SAGLyvJ,GAEEygB,MADFE,GAAU,GAOV,IAAI,SAAEh4H,GAAa+3H,KACnB,OAAOp/J,EAAAA,SACL,IAAMo8J,EAA0B1d,EAAS8lF,EAAWn9L,KACpD,CAACA,EAAUq3G,GAEf,CiY7HkB+lF,GACdtgO,YAAW,KACT67J,EAAS,GAAG/wK,EAAMo4C,YAAY9e,IAAI,GACjC,IACL,CAEA,OACEksM,EAAAA,GAAAA,MAAC+F,GAAY,CAACr6N,MAAOA,EAAM2B,SAAA,EACzB2yN,EAAAA,GAAAA,MAAA,WAAA3yN,SAAA,EACEqyN,EAAAA,GAAAA,KAACuP,GAAyB,KAC1BvP,EAAAA,GAAAA,KAAC4P,GAAc,CAAChjJ,MAAM,GAAGigJ,SAAS,EAAOx5L,KAAMk9L,GAAmBV,MAAOW,GAAoB/7L,IAAKy7L,SAEpGlQ,EAAAA,GAAAA,KAAA,WAAAryN,UACE2yN,EAAAA,GAAAA,MAACvB,GAAc,CAAApxN,SAAA,EACb2yN,EAAAA,GAAAA,MAAC0P,GAAmB,CAACx9D,SAAS,KAAI7kK,SAAA,EAChCqyN,EAAAA,GAAAA,KAACwP,GAA8B,KAC/BxP,EAAAA,GAAAA,KAAC+M,GAAQ,CAACl6L,UAAW49L,GAAgBz8B,QAAM,QAE7CgsB,EAAAA,GAAAA,KAAC+P,GAAa,CAACv9D,SAAS,KAAI7kK,UAC1BqyN,EAAAA,GAAAA,KAAC6E,GAAI,IAAKoH,GAAevuO,QAASyyO,EAAO,EAAI,EAAExiO,SAC5C89N,GAAU1wO,KAAI,CAACq5B,EAAG9sB,KAEf04N,EAAAA,GAAAA,KAACiQ,GAAa,CACZp+M,MAAI,EAEJhrB,GAAI,GACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EAAE0G,UAENqyN,EAAAA,GAAAA,KAAC0Q,GAAc,CACb7oK,MAAOvgE,EACP2L,OAAQmhB,EAAEnhB,OACVy0N,OAAQtzM,EAAEszM,OACVsD,KAAM52M,EAAE42M,KACRp+I,MAAOx4D,EAAEs3M,KAAO,IAAMt3M,EAAEu3M,UACxB5+I,YAAa34D,EAAEw3M,MACf94E,MAAO1+H,EAAEqgB,IACTi3L,KAAMt3M,EAAEs3M,KACRiF,eAAgBA,IAAMP,EAAeh8M,EAAEnhB,WAhBpC3L,gBA2BzB,ICjEMspO,GAAQ,GACRC,GAAQ,GAEd,IACE,CACE59N,OAAQ,mBACRy4N,KAAM,OACNC,UAAW,cACXC,MAAO,UACPC,WAAY+E,GACZ9E,WAAY+E,GACZp8L,IAnBY,8DAoBZu2L,KAAM,UACN1D,OAAQ,CACNxhF,SAAU,mBACVkmF,UAAW,qBAGf,CACE/4N,OAAQ,iBACRy4N,KAAM,UACNC,UAAW,SACXC,MAAO,UACPC,WAAY+E,GACZ9E,WAAY+E,GACZp8L,IAhCe,4DAiCfu2L,KAAM,UACN1D,OAAQ,CACNxhF,SAAU,iCACVkmF,UAAW,gBAGf,CACE/4N,OAAQ,cACRy4N,KAAM,OACNC,UAAW,SACXC,MAAO,UACPC,WAAY+E,GACZ9E,WAAY+E,GACZp8L,IA7CkB,wDA8ClBu2L,KAAM,UACN1D,OAAQ,CACNxhF,SAAU,aACVkmF,UAAW,eAGf,CACE/4N,OAAQ,cACRy4N,KAAM,OACNC,UAAW,SACXC,MAAO,aACPC,WAAY+E,GACZ9E,WAAY+E,GACZp8L,IA1Dc,0DA2Ddu2L,KAAM,UACN1D,OAAQ,CACNxhF,SAAU,uBACVkmF,UAAW,qBAGf,CACE/4N,OAAQ,iBACRy4N,KAAM,YACNC,UAAW,OACXC,MAAO,aACPC,WAAY+E,GACZ9E,WAAY+E,GACZp8L,IAvEqB,wDAwErBu2L,KAAM,UACN1D,OAAQ,CACNxhF,SAAU,gBACVkmF,UAAW,aAGf,CACE/4N,OAAQ,gBACRy4N,KAAM,QACNC,UAAW,UACXC,MAAO,aACPC,WAAY+E,GACZ9E,WAAY+E,GACZp8L,IApFoB,yDAqFpBu2L,KAAM,UACN1D,OAAQ,CACNxhF,SAAU,eACVkmF,UAAW,iBAGf,CACE/4N,OAAQ,oBACRy4N,KAAM,UACNC,UAAW,YACXC,MAAO,aACPC,WAAY+E,GACZ9E,WAAY+E,GACZp8L,IAjGyB,mEAkGzBu2L,KAAM,UACN1D,OAAQ,CACNxhF,SAAU,qBACVkmF,UAAW,kDCrGjB,UAAex8N,EAAAA,GAAAA,GAA4B3D,EAAAA,cAAoB,OAAQ,CACrE2J,EAAG,kHACD,UCwGJ,IAAIs7N,GAAsBjlO,EAAAA,YAAiB,SAAgB9C,EAAO+C,GAChE,IAAIilO,EAAMhoO,EAAMgoO,IACZC,EAAejoO,EAAM4E,SACrB5B,EAAUhD,EAAMgD,QAChB6B,EAAY7E,EAAM6E,UAClBE,EAAmB/E,EAAMgF,UACzB7C,OAAiC,IAArB4C,EAA8B,MAAQA,EAClDmjO,EAAWloO,EAAMkoO,SACjBC,EAAQnoO,EAAMmoO,MACd7yM,EAAMt1B,EAAMs1B,IACZ8yM,EAASpoO,EAAMooO,OACft0D,EAAiB9zK,EAAM+zK,QACvBA,OAA6B,IAAnBD,EAA4B,WAAaA,EACnDr6K,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,MAAO,WAAY,UAAW,YAAa,YAAa,WAAY,QAAS,MAAO,SAAU,YAEvI4E,EAAW,KAEX2mB,EA3DN,SAAmBhzB,GACjB,IAAI+8B,EAAM/8B,EAAK+8B,IACX8yM,EAAS7vO,EAAK6vO,OAEd9/N,EAAkBxF,EAAAA,UAAe,GACjCyoB,EAASjjB,EAAgB,GACzB48N,EAAY58N,EAAgB,GAiChC,OA/BAxF,EAAAA,WAAgB,WACd,GAAKwyB,GAAQ8yM,EAAb,CAIAlD,GAAU,GACV,IAAIvuO,GAAS,EACTozJ,EAAQ,IAAI5zD,MAoBhB,OAnBA4zD,EAAMz0H,IAAMA,EACZy0H,EAAMq+E,OAASA,EAEfr+E,EAAM30H,OAAS,WACRz+B,GAILuuO,EAAU,SACZ,EAEAn7E,EAAM10H,QAAU,WACT1+B,GAILuuO,EAAU,QACZ,EAEO,WACLvuO,GAAS,CACX,CA1BA,CA2BF,GAAG,CAAC2+B,EAAK8yM,IACF78M,CACT,CAmBe88M,CAAU,CACrB/yM,IAAKA,EACL8yM,OAAQA,IAENE,EAAShzM,GAAO8yM,EAChBG,EAAmBD,GAAqB,UAAX/8M,EAoBjC,OAjBE3mB,EADE2jO,EACsBzlO,EAAAA,cAAoB,OAAOhO,EAAAA,EAAAA,GAAS,CAC1DkzO,IAAKA,EACL1yM,IAAKA,EACL8yM,OAAQA,EACRD,MAAOA,EACPtjO,UAAW7B,EAAQ0oC,KAClBw8L,IACsB,MAAhBD,EACEA,EACFK,GAAUN,EACRA,EAAI,GAESllO,EAAAA,cAAoB0lO,GAAQ,CAClD3jO,UAAW7B,EAAQiM,WAIHnM,EAAAA,cAAoBX,GAAWrN,EAAAA,EAAAA,GAAS,CAC1D+P,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMvC,EAAQylO,OAAQzlO,EAAQ+wK,GAAUlvK,GAAY0jO,GAAoBvlO,EAAQ0lO,cACxG3lO,IAAKA,GACJtJ,GAAQmL,EACb,IAsFA,UAAee,EAAAA,GAAAA,IA5OK,SAAgB1C,GAClC,MAAO,CAELsC,KAAM,CACJopB,SAAU,WACV9oB,QAAS,OACT8sK,WAAY,SACZC,eAAgB,SAChB7sK,WAAY,EACZhH,MAAO,GACPiD,OAAQ,GACRvJ,WAAYwK,EAAM3K,WAAWG,WAC7BE,SAAUsK,EAAM3K,WAAWkB,QAAQ,IACnCO,WAAY,EACZoB,aAAc,MACdg8F,SAAU,SACVvxF,WAAY,QAId8iO,aAAc,CACZn3O,MAAO0R,EAAM5K,QAAQlF,WAAWqD,QAChCu8F,gBAAwC,UAAvB9vF,EAAM5K,QAAQ7G,KAAmByR,EAAM5K,QAAQ5B,KAAK,KAAOwM,EAAM5K,QAAQ5B,KAAK,MAIjGkyO,OAAQ,CAAC,EAGTC,SAAU,CAAC,EAGXC,QAAS,CACP1tO,aAAc8H,EAAM/C,MAAM/E,cAI5BmjE,OAAQ,CACNnjE,aAAc,GAIhBuwC,IAAK,CACH3sC,MAAO,OACPiD,OAAQ,OACRq0K,UAAW,SAEXyyD,UAAW,QAEXv3O,MAAO,cAEPw3O,WAAY,KAId95N,SAAU,CACRlQ,MAAO,MACPiD,OAAQ,OAGd,GAgLkC,CAChCO,KAAM,aADR,CAEGwlO,qCChPuBp9D,GAAOo9D,GAAO;;EAAjC,MAIMiB,GAAqBr+D,GAAOv0H,GAAG;;;;;;;EAS/B6yL,GAAgBt+D,GAAOv0H,GAAG;;;;;;EAQ1BsnL,GAAgB/yD,GAAOv0H,GAAG;;;;;;EAQ1B8yL,GAAgBv+D,GAAOv0H,GAAG;;;;;;;;;;;EAyB1B+yL,IAZUx+D,GAAOv0H,GAAG;;;;;;;EAYNu0H,GAAOv0H,GAAiB;;;;;;;;;;GAYtCgzL,GAAmBz+D,GAAO6wD,GAAAA,EAAa;;EAQvC6N,IAJmB1+D,GAAO2+D,GAAAA,EAAa;;EAInB3+D,GAAO8wD,GAAAA,EAAc;;GAIzC+B,GAAc7yD,GAAOv0H,GAAG;;EAIxBurL,GAAWh3D,GAAOv0H,GAAG;;;;;;;;;;;;;;;;;MAiB5B6yL;;;;MAIAvL;;;;MAIAwL;;;;;;MAMAD;;;;MAIAvL;;;;MAIAwL;;;;;ECpHS,SAASK,GAAWvpO,GACjC,MAAMiD,EAAQI,KACRyE,EAAWo6J,KACXY,EAAWR,KACX0/D,EAAWl6N,EAASqiC,SAAW,IAAMnqC,EAAMkK,OAQjD,OACE+sN,EAAAA,GAAAA,KAACuK,GAAa,CAACh8F,QAASA,KANxBv+H,YAAW,KACT67J,EAASk/D,EAAS,GACjB,IAIuC,EAAAp9N,UACxCqyN,EAAAA,GAAAA,KAACU,GAAM,CAACpoK,KAAMyyK,EAASp9N,UACrBqyN,EAAAA,GAAAA,KAAC2B,GAAQ,CAACC,MAAI,EAAAj0N,UACZqyN,EAAAA,GAAAA,KAAC0K,GAAQ,CAAA/8N,UACP2yN,EAAAA,GAAAA,MAAC4R,GAAW,CAAAvkO,SAAA,EACVqyN,EAAAA,GAAAA,KAACiS,GAAa,KACdjS,EAAAA,GAAAA,KAAC+R,GAAkB,CAAApkO,UACjBqyN,EAAAA,GAAAA,KAACgS,GAAa,CAAArkO,UACZqyN,EAAAA,GAAAA,KAACE,GAAG,CAAC5pN,MAAO,CAAEpS,aAAc,OAAQyJ,UAClCqyN,EAAAA,GAAAA,KAACb,GAAY,CACXvyI,MAAO7jF,EAAM2iO,KAAO,IAAM3iO,EAAM4iO,UAChCrM,yBAAuB,EACvBv0N,OAAO,QACPjD,MAAM,QACN5D,aAAa,MACb4uJ,MAAO/pJ,EAAM0rC,aAKrB6rL,EAAAA,GAAAA,MAACiG,GAAW,CAAA54N,SAAA,EACVqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,YACXuM,UAAU,KACVuI,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQnC,UAAUmB,KAAM2C,cAAe,GAAIuzE,QAAS,IAC1E6rJ,OAAQn2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrCynN,OAAQj2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrC7M,SAAU5E,EAAM2iO,KAAO,IAAM3iO,EAAM4iO,aAErC3L,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,UACXuM,UAAU,IACVuI,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQnC,UAAUmB,KAAMk2E,QAAS,GAAIvzE,cAAe,GAC1Eo/N,OAAQn2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCwnN,OAAQh2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCunN,OAAQ/1N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxC0nN,OAAQl2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxC7M,SAAU5E,EAAM6iO,YAGpB5L,EAAAA,GAAAA,KAACyG,GAAa,CACZ94N,UACE2yN,EAAAA,GAAAA,MAAAC,GAAAA,SAAA,CAAA5yN,SAAA,EACEqyN,EAAAA,GAAAA,KAACmS,GAAgB,KACjBnS,EAAAA,GAAAA,KAACoS,GAAiB,mBAUtC,ipmIC/EaG,GAAkB7+D,GAAO5yK,MAAKQ,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACvDw6F,gBAAiB9vF,EAAM5K,QAAQlF,WAAWmD,MAC1CyI,MAAO,OACPk1J,cAAe,GAClB,IAEYw1E,GAAoB9+D,GAAO3Y,GAAP2Y,EAAkB7jJ,IAAA,IAAC,MAAE7jB,GAAO6jB,EAAA,MAAM,CAC/Dw+J,WAAY,GACZrxB,cAAe,GAClB,IAEYy1E,GAAY,CACrB92D,eAAgB,SAChBrhL,MAAO,OACP2uB,OAAQ,EACRnhB,MAAO,QCJE4qO,GAAe,qDAEb,SAASC,GAAW5pO,GACjC,MAAMiD,EAAQI,KACR+jO,EAAOj/D,GAAcllK,EAAMvO,YAAYkK,KAAK,OAElD,OACE24N,EAAAA,GAAAA,MAACiS,GAAe,CAACvmO,MAAOA,EAAM2B,SAAA,EAC5B2yN,EAAAA,GAAAA,MAAA,WAAA3yN,SAAA,EACEqyN,EAAAA,GAAAA,KAACyP,GAAyB,KAC1BzP,EAAAA,GAAAA,KAAC4P,GAAc,CAAChjJ,MAAM,GAAGigJ,SAAS,EAAOx5L,KAAMu/L,GAAY/C,MAAOgD,GAAap+L,IAAKi+L,SAEtF1S,EAAAA,GAAAA,KAAA,WAAAryN,UACE2yN,EAAAA,GAAAA,MAACvlE,GAAS,CAACyX,SAAS,KAAI7kK,SAAA,EACtB2yN,EAAAA,GAAAA,MAACkS,GAAiB,CAAChgE,SAAS,KAAI7kK,SAAA,EAC9BqyN,EAAAA,GAAAA,KAAC0P,GAA+B,KAChC1P,EAAAA,GAAAA,KAAC+M,GAAQ,CAACl6L,UAAWigM,GAAqB9+B,QAAM,QAElDgsB,EAAAA,GAAAA,KAAC6E,GAAI,CAACvuN,MAAOm8N,GAAW/0O,QAASyyO,EAAO,EAAI,EAAGttN,WAAS,EAAAlV,SACrDolO,GAAWh4O,KAAI,CAACq5B,EAAGyzC,KAEhBm4J,EAAAA,GAAAA,KAAC6E,GAAI,CAAahzM,MAAI,EAAChrB,GAAI,GAAIC,GAAI,EAAGC,GAAI,EAAGC,GAAI,EAAGC,GAAI,EAAE0G,UACxDqyN,EAAAA,GAAAA,KAACsS,GAAU,CAAC9wO,WAAYuH,EAAMvH,cAAgB4yB,KADrCyzC,cAU3B,CC1CA,UACI,CACIshK,SAAU,UACV3rF,KAAM,eACN8sF,WAAY,aACZ71L,IAAKi+L,GACL9lJ,MAAO,2BAGX,CACIu8I,SAAU,kBACV3rF,KAAM,wBACN8sF,WAAY,aACZ71L,IAAKy7L,GACLtjJ,MAAO,0BCbFomJ,GAAgBt/D,GAAOmxD,GAAK;;;EAK5BoO,GAAWv/D,GAAOmxD,GAAPnxD,EAAapyK,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACjD,CAAC0K,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5Bq1J,c1WJuB,I0WM9B,ICLc,SAASk2E,KACpB,MAAMlnO,EAAQI,KACR63N,EAAO/yD,GAAcllK,EAAMvO,YAAYkK,KAAK,QAC3CwrO,EAAUC,IAAejzM,EAAAA,EAAAA,UAAkB,IAMlD,OAJA6B,EAAAA,EAAAA,YAAU,KACNoxM,EAAYC,GAAQ,GACrB,KAGCrT,EAAAA,GAAAA,KAACgT,GAAa,CAACnwN,WAAS,EAACnlB,QAASumO,EAAO,EAAI,EAAEt2N,SAC1CwlO,EAASp4O,KAAI,CAACq5B,EAAGyzC,KACdm4J,EAAAA,GAAAA,KAACiT,GAAQ,CAACjnO,MAAOA,EAAmB6lB,MAAI,EAAChrB,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,EAAGC,GAAI,EAAE0G,UAC1EqyN,EAAAA,GAAAA,KAAC0K,GAAQ,CAACL,SAAUj2M,KADKyzC,MAM7C,CCvBA,MAAMyrK,GACJ,uNAUF,GAGaA,GAHb,GAIgB,iBAJhB,GARE,wPAQF,GAPkB,6DAOlB,GAHE,kNAGF,GAFoB,4ihICNL,SAASC,GAAQjyO,GAAuB,IAAtB,KAAEk8I,GAAiBl8I,EAChD,MAAM0K,EAAQI,KAEd,OACI4zN,EAAAA,GAAAA,KAACgK,GAAW,CAAAr8N,UACRqyN,EAAAA,GAAAA,KAAC6J,GAAU,CAAC79N,MAAOA,EAAM2B,UACrB2yN,EAAAA,GAAAA,MAACyJ,GAAgB,CAAC/9N,MAAOA,EAAM2B,SAAA,EAC3BqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACbZ,MAAI,EACJpgO,WAAW,YACXuM,UAAU,KACVzT,MAAM,UACN6nO,OAAQ,UACRF,OAAQ,UACRD,OAAQ,UACRD,OAAQ,UACRG,OAAQ,UACR5rN,MAAO,CACHhc,MAAO0R,EAAM5K,QAAQpC,QAAQF,MAC7BsgL,UAAW,UAEfzxK,SAAU,mBAEdqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACbZ,MAAI,EACJpgO,WAAW,QACXlH,MAAM,UACNyT,UAAU,IACVo0N,OAAQn2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC7M,SAAU6vI,UAMlC,CC3CO,MAAMg2F,GAAa9/D,GAAOv0H,KAAI79C,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACjDsN,QAAS,OACTo0N,cAAe,SACftnD,WAAY,SACZ1e,cAAe,EACf9+J,YAAa,EACbC,aAAc,EACd,CAAC6N,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5Bq1J,cAAe,GACf9+J,YAAa,EACbC,aAAc,GAErB,IAEYs1O,GAAe//D,GAAOv0H,KAAItvB,IAAA,IAAC,MAAE7jB,GAAO6jB,EAAA,MAAM,CACnD/nB,MAAO,OACPvJ,UAAW,IACX2F,aAAc,EACd43F,gBAAiB9vF,EAAM5K,QAAQlF,WAAWmD,MAC1C,CAAC2M,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B6qK,SAAU,KAEjB,IAEYkhE,GAAmBhgE,GAAOigE,QAAO1iN,IAAA,MAAIA,EAAA,MAAM,CACpDjI,OAAQ,EACRje,OAAQ,IACRjD,MAAO,OACP5D,aAAc,EACdwoB,OAAQ,kBACX,ICxBc,SAASknN,KACpB,MAAM5nO,EAAQI,KACR0zN,EAAQz4B,KAEd,OACI24B,EAAAA,GAAAA,KAAC2B,GAAQ,CAACC,MAAI,EAAAj0N,UACVqyN,EAAAA,GAAAA,KAACwT,GAAU,CAACxnO,MAAOA,EAAM2B,UACrBqyN,EAAAA,GAAAA,KAACyT,GAAY,CAACznO,MAAOA,EAAM2B,UACvBqyN,EAAAA,GAAAA,KAACx2M,GAAO21B,IAAG,CACPgpJ,QAAS,CAAE7xH,QAAS,GACpBkrH,QAASs+B,EACT/wN,WAAYA,GAAWpB,UAEvBqyN,EAAAA,GAAAA,KAAC0T,GAAgB,CACbr1M,ICtBE,kRDuBFyiJ,OAAQA,IAAMg/C,EAAMt4N,MAAM,CAAE8uE,QAAS,IACrCu9J,QAAQ,OACRC,eAAe,sCAO3C,kCE7BO,MAAMvL,GAAqB70D,GAAO20D,GAAP30D,EAAuBpyK,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACvEyJ,OAAQ,IACRjD,MAAO,OACP5D,aAAc,EACd5J,MAAO0R,EAAM5K,QAAQpC,QAAQ8B,KAC9B,IAEYizO,GAAsBrgE,GAAOv0H,GAAG;;;;;EAOhC60L,GAAkBtgE,GAAOv0H,GAAG;;;;;;;;;EAW5B80L,GAAevgE,GAAOv0H,GAAG;;;;;EAOzB+0L,GAAexgE,GAAOv0H,GAAG;;EC3BvB,SAASg1L,GAAgBprO,GACtC,MAAMiD,EAAQI,KAEd,OACEk0N,EAAAA,GAAAA,MAAC8T,GAAAA,GAAe,CAAAzmO,SAAA,EACdqyN,EAAAA,GAAAA,KAAC9jE,GAAAA,GAAM,CAACU,cAAe,GAAGjvJ,SACvBrM,IAAA,IAAC,MACAgV,GACDhV,EAAA,OACC0+N,EAAAA,GAAAA,KAAA,UAAQ1pN,MAAOA,EAAM3I,UACnB2yN,EAAAA,GAAAA,MAACyT,GAAmB,CAAApmO,SAAA,EAClBqyN,EAAAA,GAAAA,KAACgU,GAAe,CAAArmO,UACd2yN,EAAAA,GAAAA,MAACJ,GAAG,CACF5pN,MAAO,CAAEk8J,SAAU,KAAM7kK,SAAA,CAExB5E,EAAM6jF,QACLozI,EAAAA,GAAAA,KAACkU,GAAY,CAAAvmO,UACXqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfZ,MAAI,EACJpgO,WAAW,YACXuM,UAAU,KACVuI,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQF,OACtCqjO,OAAQ,UACRF,OAAQ,UACRD,OAAQ,UACRD,OAAQ,UACRG,OAAQ,UACRv0N,SAAU5E,EAAM6jF,WAItBozI,EAAAA,GAAAA,KAACwC,GAAgB,CACfZ,MAAI,EACJpgO,WAAW,QACXlH,MAAM,UACNyT,UAAU,IACV/B,MAAOA,EACPm2N,OAAQn2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrCynN,OAAQj2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC7M,SAAU5E,EAAMy0I,aAItBwiF,EAAAA,GAAAA,KAACE,GAAG,CAACp4N,MAAM,YAEN,KAGbk4N,EAAAA,GAAAA,KAACiU,GAAY,CAAAtmO,UACXqyN,EAAAA,GAAAA,KAAC2B,GAAQ,CAACC,MAAI,EAAAj0N,UACZqyN,EAAAA,GAAAA,KAACuI,GAAkB,CAACv8N,MAAOA,EAAO6sK,eAAa,EAAAlrK,UAC7CqyN,EAAAA,GAAAA,KAACuK,GAAa,CAACh8F,QAASA,OAAU5gI,UAChCqyN,EAAAA,GAAAA,KAACjgD,GAAI,CAAC1rK,OAAO,SAASikD,KAAM,0DAA0D3qD,UACpFqyN,EAAAA,GAAAA,KAACb,GAAY,CACXvyI,MAAM,GACNyyI,gBAAgB,2FAChBn7N,aAAc,EACd4uJ,MAAO/pJ,EAAM0rC,IACb1pC,OAAO,QACPjD,MAAM,qBASxB,CC5EO,MAAMu+N,GAAe3yD,GAAOv0H,GAAG;;;;;;;aAOzBp2C,GAASA,EAAMmgB;EAGfmrN,GAAmB3gE,GAAO8uD,GAAP9uD,EAAyBpyK,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CAEzE,CAAC,ICXc,SAASgzO,GAAWvrO,GACjC,MAAMiD,EAAQI,KACd,OACE4zN,EAAAA,GAAAA,KAACqG,GAAY,CAACn9M,QAASngB,EAAMmgB,QAAQvb,UACnCqyN,EAAAA,GAAAA,KAACE,GAAG,CAAC5pN,MAAO,CAAEk8J,SAAU,KAAM7kK,UAC5B2yN,EAAAA,GAAAA,MAACyJ,GAAgB,CAAC/9N,MAAOA,EAAM2B,SAAA,EAC7BqyN,EAAAA,GAAAA,KAAA,OAAK1pN,MAAO,CAAE0mJ,cAAe,GAAIrvJ,UAC/BqyN,EAAAA,GAAAA,KAACqU,GAAgB,CACfzS,MAAI,EACJpgO,WAAW,YACXuM,UAAU,KACVuI,MAAO,CAAEhc,MAAO,WAChB0R,MAAOA,EACPm2N,OAAQ,UACRF,OAAQ,UACRD,OAAQ,UACRD,OAAQ,UACRG,OAAQ,UACRv0N,SAAU5E,EAAM6jF,WAGpBozI,EAAAA,GAAAA,KAACqU,GAAgB,CACfzS,MAAI,EACJpgO,WAAW,QACXlH,MAAM,UACNyT,UAAU,IACV/B,MAAOA,EACPm2N,OAAQn2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC7M,SAAU5E,EAAMy0I,aAM5B,CCvCO,MAAM+qF,GAAqB70D,GAAOwsD,GAAPxsD,EAAYpyK,IAAA,MAAIA,EAAA,MAAM,CACpDyJ,OAAQ,OACRjD,MAAO,OACP8G,QAAS,OACTo0N,cAAe,SACftnD,WAAY,SACZx3K,aAAc,EACd5J,MAAO,OACV,IAEYi6O,GAAiB7gE,GAAO3Y,GAAU;;EAIlCuuE,GAAa51D,GAAOv0H,GAAG;;;;ECVrB,SAASq1L,GAAUzrO,GAChC,OACEu3N,EAAAA,GAAAA,MAACiU,GAAc,CAAA5mO,SAAA,EACbqyN,EAAAA,GAAAA,KAACsU,GAAU,CACTn4E,UAAQ,EACRvvE,MAAO7jF,EAAM6jF,MACb4wD,KAAMz0I,EAAMy0I,KACZt0H,QAAQ,sBAEV82M,EAAAA,GAAAA,KAAC2B,GAAQ,CAACC,MAAI,EAAAj0N,UACZqyN,EAAAA,GAAAA,KAACuK,GAAa,CAACh8F,QAASA,OAAU5gI,UAChCqyN,EAAAA,GAAAA,KAACuI,GAAkB,CAAA56N,UACjBqyN,EAAAA,GAAAA,KAACsJ,GAAU,CAAA37N,UACTqyN,EAAAA,GAAAA,KAACjgD,GAAI,CAAC1rK,OAAO,SAASikD,KAAM,0DAA0D3qD,UACpFqyN,EAAAA,GAAAA,KAACb,GAAY,CACXvyI,MAAM,GACN1oF,aAAc,EACdm7N,gBAAgB,2FAChBE,UAAQ,EACRz3N,MAAM,OACNgrJ,MAAO/pJ,EAAM0rC,kBAS/B,CC9Be,SAASggM,GAAUnzO,GAAqC,IAApC,MAAEsrF,EAAK,KAAE4wD,EAAI,IAAE/oG,GAAkBnzC,EAIhE,OAFa4vK,GADC9kK,KACmB3O,YAAYkK,KAAK,QAK1Cq4N,EAAAA,GAAAA,KAACwU,GAAS,CACN5nJ,MAAOA,EACP4wD,KAAMA,EACN/oG,IAAKA,KAGTurL,EAAAA,GAAAA,KAACmU,GAAe,CACZvnJ,MAAOA,EACP4wD,KAAMA,EACN/oG,IAAKA,GAIrB,CCvBO,MAAMsqL,GAAiBrrD,GAAO5yK,IAAI;;gBAEzBiI,GAASA,EAAM+9N;;EAIlB4N,GAAiBhhE,GAAOv0H,GAAG;;EAI3B6wL,GAAsBt8D,GAAO3Y,GAAP2Y,EAAkBpyK,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACnE07J,cAAe,GACf,CAAChxJ,EAAMvO,YAAYkK,KAAK,OAAQ,CAC9B6qK,SAAU,KAEb,ICAYmiE,GAAe,qDAEb,SAASC,KACtB,MAAM5oO,EAAQI,KAEd,OACEk0N,EAAAA,GAAAA,MAACvB,GAAc,CAAC+H,SAAU96N,EAAM5K,QAAQlF,WAAWqD,QAAQoO,SAAA,EAEzD2yN,EAAAA,GAAAA,MAAA,WAAA3yN,SAAA,EACEqyN,EAAAA,GAAAA,KAAC2P,GAAwB,KACzB3P,EAAAA,GAAAA,KAAC4P,GAAc,CAAChjJ,MAAM,GAAGigJ,SAAS,EAAOx5L,KAAMwhM,GAAWhF,MAAOiF,GAAYrgM,IAAKkgM,SAGpF3U,EAAAA,GAAAA,KAAA,WAAAryN,UACEqyN,EAAAA,GAAAA,KAACuT,GAAQ,CAAC/1F,KAAMj/H,QAGlByhN,EAAAA,GAAAA,KAAA,WAAAryN,UACEqyN,EAAAA,GAAAA,KAAC0U,GAAc,CAAA/mO,UACbqyN,EAAAA,GAAAA,KAACyU,GAAU,CACT7nJ,MAAOruE,GACPi/H,KAAMj/H,GACNk2B,IAAKl2B,UAKX+hN,EAAAA,GAAAA,MAAA,WAAA3yN,SAAA,EACEqyN,EAAAA,GAAAA,KAACgQ,GAAmB,CAAChkO,MAAOA,EAAOwmK,SAAS,KAAI7kK,UAC9CqyN,EAAAA,GAAAA,KAAC+M,GAAQ,CAACl6L,UAAWkiM,GAAkB/gC,QAAM,OAE/CssB,EAAAA,GAAAA,MAACvlE,GAAS,CAACyX,SAAS,KAAI7kK,SAAA,EACtBqyN,EAAAA,GAAAA,KAAC4T,GAAK,KACN5T,EAAAA,GAAAA,KAACkT,GAAU,WAIflT,EAAAA,GAAAA,KAAA,WAAAryN,UACEqyN,EAAAA,GAAAA,KAACjlE,GAAS,CAACyX,SAAS,KAAI7kK,UACtBqyN,EAAAA,GAAAA,KAACkK,GAAQ,CAAC1sF,KAAMj/H,GAAejT,KAAMiT,WAM/C,CC3DA,MAYA,IACEy2N,UALgB,aAMhBC,QAJA,6BAMAC,UAAW,cACXC,SAhBA,sLAiBAC,QAAS,UACTC,aAAc,YAEdC,SAAU,SACVC,QAnBiB,4HAoBjBC,OAAQ,aACRC,YAAa,UAEbC,WAAY,QACZC,UArBA,qHAsBAC,SAAU,aACVC,cAAe,SAEf/iF,MAAO,CACL,CAAEz0H,IAAKokM,GAAgB71I,MAAO,yBAC9B,CAAEvuD,IAAKq0M,GAAc9lJ,MAAO,2BAC5B,CAAEvuD,IAAKs2M,GAAa/nJ,MAAO,2BC7BhB,SAASkpJ,KACtB,MAAOhjF,EAAOi2E,IAAY5oM,EAAAA,EAAAA,UAAS5hB,GAAKu0I,MAAM,IACxCijF,EAAkB3hN,GAAM20M,EAASxqN,GAAKu0I,MAAM1+H,EAAI,IAEhD4hN,EAAS9kE,GADD9kK,KACqB3O,YAAYY,GAAG,OAiHlD,OA7GI2hO,EAAAA,GAAAA,KAACqG,GAAY,CAACvzE,MAAOA,EAAMnlJ,UACzBqyN,EAAAA,GAAAA,KAAC6J,GAAU,CAAAl8N,SACRqoO,GACChW,EAAAA,GAAAA,KAAC8J,GAAW,CAAAn8N,UACV2yN,EAAAA,GAAAA,MAACqB,GAAQ,CAACC,MAAI,EAAAj0N,SAAA,EACZ2yN,EAAAA,GAAAA,MAACiJ,GAAO,CAAA57N,SAAA,EACNqyN,EAAAA,GAAAA,KAACiW,GAAM,CAELzN,QAAM,EACNnzM,QAAQ,EACR0zM,SAAUgN,EACVnpJ,MAAOruE,GAAK22N,UACZ13F,KAAMj/H,GAAK42N,SACX/L,QAAS7qN,GAAK62N,QACdjM,SAAU5qN,GAAK82N,cAPX,MASNrV,EAAAA,GAAAA,KAACiW,GAAM,CAELxN,OAAK,EACLpzM,QAAQ,EACR0zM,SAAUgN,EACVnpJ,MAAOruE,GAAK+2N,SACZ93F,KAAMj/H,GAAKg3N,QACXnM,QAAS7qN,GAAKi3N,OACdrM,SAAU5qN,GAAKk3N,aAPX,MASNzV,EAAAA,GAAAA,KAACiW,GAAM,CAELC,SAAO,EACP7gN,QAAQ,EACR0zM,SAAUgN,EACVnpJ,MAAOruE,GAAKm3N,WACZl4F,KAAMj/H,GAAKo3N,UACXvM,QAAS7qN,GAAKq3N,SACdzM,SAAU5qN,GAAKs3N,eAPX,SAUR7V,EAAAA,GAAAA,KAACwJ,GAAgB,CAAC58I,MAAOkmE,EAAMlmE,MAAOvuD,IAAKy0H,EAAMz0H,IAAKtzB,OAAQ,gBAKlEu1N,EAAAA,GAAAA,MAACuH,GAAY,CAAAl6N,SAAA,EACXqyN,EAAAA,GAAAA,KAAC8J,GAAW,CAAAn8N,UACV2yN,EAAAA,GAAAA,MAACqB,GAAQ,CAACC,MAAI,EAAAj0N,SAAA,EACZqyN,EAAAA,GAAAA,KAAC4J,GAAS,CAAAj8N,UACRqyN,EAAAA,GAAAA,KAACiW,GAAM,CAELzN,QAAQ,EACRC,OAAO,EACPyN,SAAS,EACT7gN,QAAQ,EACR0zM,SAAUgN,EACVnpJ,MAAOruE,GAAK22N,UACZ13F,KAAMj/H,GAAK42N,SACX/L,QAAS7qN,GAAK62N,QACdjM,SAAU5qN,GAAK82N,cATX,QAYRrV,EAAAA,GAAAA,KAACwJ,GAAgB,CAAC58I,MAAOruE,GAAKu0I,MAAM,GAAGlmE,MAAOvuD,IAAK9f,GAAKu0I,MAAM,GAAGz0H,IAAKtzB,OAAQ,gBAGlFi1N,EAAAA,GAAAA,KAAA,OAAK1pN,MAAO,CAAE4S,QAAS,OACvB82M,EAAAA,GAAAA,KAAC8J,GAAW,CAAAn8N,UACV2yN,EAAAA,GAAAA,MAACqB,GAAQ,CAACC,MAAI,EAAAj0N,SAAA,EACZqyN,EAAAA,GAAAA,KAAC4J,GAAS,CAAAj8N,UACRqyN,EAAAA,GAAAA,KAACiW,GAAM,CAELxN,OAAO,EACPD,QAAQ,EACR0N,SAAS,EACT7gN,QAAQ,EACR0zM,SAAUgN,EACVnpJ,MAAOruE,GAAK+2N,SACZ93F,KAAMj/H,GAAKg3N,QACXnM,QAAS7qN,GAAKi3N,OACdrM,SAAU5qN,GAAKk3N,aATX,QAYRzV,EAAAA,GAAAA,KAACwJ,GAAgB,CAAC58I,MAAOruE,GAAKu0I,MAAM,GAAGlmE,MAAOvuD,IAAK9f,GAAKu0I,MAAM,GAAGz0H,IAAKtzB,OAAQ,gBAGlFi1N,EAAAA,GAAAA,KAAA,OAAK1pN,MAAO,CAAE4S,QAAS,OACvB82M,EAAAA,GAAAA,KAAC8J,GAAW,CAAAn8N,UACV2yN,EAAAA,GAAAA,MAACqB,GAAQ,CAACC,MAAI,EAAAj0N,SAAA,EACZqyN,EAAAA,GAAAA,KAAC4J,GAAS,CAAAj8N,UACRqyN,EAAAA,GAAAA,KAACiW,GAAM,CAELC,SAAS,EACTzN,OAAO,EACPD,QAAQ,EACRnzM,QAAQ,EACR0zM,SAAUgN,EACVnpJ,MAAOruE,GAAKm3N,WACZl4F,KAAMj/H,GAAKo3N,UACXvM,QAAS7qN,GAAKq3N,SACdzM,SAAU5qN,GAAKs3N,eATX,QAYR7V,EAAAA,GAAAA,KAACwJ,GAAgB,CAAC58I,MAAOruE,GAAKu0I,MAAM,GAAGlmE,MAAOvuD,IAAK9f,GAAKu0I,MAAM,GAAGz0H,IAAKtzB,OAAQ,qBAWhG,4FC9FIorO,GAAqBtqO,EAAAA,YAAiB,SAAe9C,EAAO+C,GAC9D,IAAIC,EAAUhD,EAAMgD,QAChB6B,EAAY7E,EAAM6E,UAClBE,EAAmB/E,EAAMgF,UACzB7C,OAAiC,IAArB4C,EAA8B,MAAQA,EAClDsoO,EAAgBrtO,EAAMs+D,OACtBA,OAA2B,IAAlB+uK,GAAmCA,EAC5CC,EAAmBttO,EAAMutO,UACzBA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9Cx5D,EAAiB9zK,EAAM+zK,QACvBA,OAA6B,IAAnBD,EAA4B,YAAcA,EACpDr6K,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,UAAW,YAAa,YAAa,SAAU,YAAa,YAEzG,OAAoB8C,EAAAA,cAAoBX,GAAWrN,EAAAA,EAAAA,GAAS,CAC1D+P,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMV,EAAuB,aAAZkvK,EAAyB/wK,EAAQmxK,SAAWnxK,EAAQ,YAAYnR,OAAO07O,KAAcjvK,GAAUt7D,EAAQ6lO,SAChJ9lO,IAAKA,GACJtJ,GACL,IA4DA,UAAekM,EAAAA,GAAAA,IAvGK,SAAgB1C,GAClC,IAAIuqO,EAAa,CAAC,EAMlB,OALAvqO,EAAMhD,QAAQqV,SAAQ,SAAUu4L,EAAQ37M,GACtCs7O,EAAW,YAAY37O,OAAOK,IAAU,CACtCqiL,UAAWs5B,EAEf,KACO/4M,EAAAA,EAAAA,GAAS,CAEdyQ,KAAM,CACJwtF,gBAAiB9vF,EAAM5K,QAAQlF,WAAWmD,MAC1C/E,MAAO0R,EAAM5K,QAAQrC,KAAKC,QAC1B+P,WAAY/C,EAAM9C,YAAYmB,OAAO,eAIvCunO,QAAS,CACP1tO,aAAc8H,EAAM/C,MAAM/E,cAI5Bg5K,SAAU,CACRl0J,OAAQ,aAAapuB,OAAOoR,EAAM5K,QAAQhC,WAE3Cm3O,EACL,GA8EkC,CAChCjrO,KAAM,YADR,CAEG6qO,IC9GH,IAAe3mO,EAAAA,GAAAA,GAA4B3D,EAAAA,cAAoB,OAAQ,CACrE2J,EAAG,6FACD,QCAS6wN,GAAe3yD,GAAOv0H,GAAG;;;;;;;;;;;EAazB0qL,GAAan2D,GAAOv0H,GAAG;;;;;;;EAavBonL,IAJc7yD,GAAOyiE,GAAM;;EAIbziE,GAAOv0H,KAAI79C,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACpDkxK,SAAU,IACVtpJ,QAAS,mBACT5uB,MAAO,OACP8kL,UAAW,SACXr8K,cAAe,EACf,CAACiJ,EAAMvO,YAAYkK,KAAK,OAAQ,CAC9B6qK,SAAU,KAKb,KAEYgkE,GAAW9iE,GAAOv0H,GAAG;;;;EAMrBs3L,GAAY/iE,GAAOv0H,GAAG;;;;;EAiBtBu3L,IAVWhjE,GAAOijE,GAAK;;;;;;;;EAUHjjE,GAAOv0H,GAAG;;;;;GC7D5B,SAASy3L,GAAU7tO,GAChC,MAAMiD,EAAQI,KACd,OACE4zN,EAAAA,GAAAA,KAACqG,GAAY,CAAA14N,UACX2yN,EAAAA,GAAAA,MAACuJ,GAAU,CAAAl8N,SAAA,EACTqyN,EAAAA,GAAAA,KAACuG,GAAW,CACVv6N,MAAOA,EACP2B,UACEqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,QACXuM,UAAU,IACVo0N,OAAQn2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC7M,SAAU5E,EAAMy0I,UAItB8iF,EAAAA,GAAAA,MAACoW,GAAiB,CAAA/oO,SAAA,EAChBqyN,EAAAA,GAAAA,KAACwW,GAAQ,CAAC7oO,UACRqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,UACXuM,UAAU,KACVuI,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQF,MAAOiE,cAAe,GAC5Do/N,OAAQn2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC7M,SAAU5E,EAAMuC,UAIpB00N,EAAAA,GAAAA,KAACyW,GAAS,CAAC9oO,UACTqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,QACXuM,UAAU,IACVuI,MAAO,CAAEvT,cAAe,EAAGuzE,QAAS,IACpC6rJ,OAAQn2N,EAAM3K,WAAWsC,MAAMjC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWsC,MAAMjC,SAAS8Y,WACxCwnN,OAAQh2N,EAAM3K,WAAWsC,MAAMjC,SAAS8Y,WACxCunN,OAAQ/1N,EAAM3K,WAAWsC,MAAMjC,SAAS8Y,WACxC0nN,OAAQl2N,EAAM3K,WAAWsC,MAAMjC,SAAS8Y,WACxC7M,SAAU5E,EAAM6iO,iBA1CP7iO,EAAM8+D,MAkD7B,CC3DA,MAoBatpD,GAAO,CAClB,CACEi/H,KArBU,8HAsBVlyI,KAvBU,4BAwBVsgO,MAtBW,0FAwBb,CACEpuF,KAtBU,yOAuBVlyI,KAxBU,kBAyBVsgO,MAvBW,iDAyBb,CACEpuF,KAvBU,+NAwBVlyI,KAzBU,sBA0BVsgO,MAxBW,oCA0Bb,CACEpuF,KAxBU,oMAyBVlyI,KA1BU,oBA2BVsgO,MAzBW,oCA2Bb,CACEpuF,KAzBU,mJA0BVlyI,KA3BU,oBA4BVsgO,MA1BW,gBChBFiL,GAAiC,CAC1C3yO,aAAc,EACd4D,MAAO,GACPiD,OAAQ,GACR6D,QAAS,eACTqa,OAAQ,QACR4yJ,OAAQ,WAGCi7D,GAA6B,CACtCp/M,SAAU,WACVvuB,OAAQ,EACRkgB,IAAK,mBACLvhB,MAAO,GACPiD,OAAQ,GACR8wK,OAAQ,WCCG,SAASk7D,KACR3qO,KAAd,MACO4qO,EAASC,IAAc92M,EAAAA,EAAAA,UAAS,IAChC+wH,EAAUgmF,IAAe/2M,EAAAA,EAAAA,WAAS,GAUzC,OACE6/L,EAAAA,GAAAA,KAAC18C,GAAQ,CACPJ,QAVgBi0D,KAClBD,GAAY,EAAK,EAUf/zD,QAPgBi0D,KAClBF,GAAY,EAAM,EAMKvpO,UAErBqyN,EAAAA,GAAAA,KAAA,OAAAryN,UACEqyN,EAAAA,GAAAA,KAAC2B,GAAQ,CAACC,MAAI,EAAAj0N,UAEZqyN,EAAAA,GAAAA,KAACtvE,GAAAA,GAAQ,CACP9iJ,UAAU,wBACV6gI,WAAW,EACXyiB,SAAUA,EACVxD,eAAgB,IAChB2D,SAAU,IAGVU,YAAaA,IAAM/zJ,QAAQ0rH,IAAIstH,GAC/BjqF,aAAciqF,EACdhlF,SAAUA,CAAC/2J,EAAOo8O,IAAUJ,EAAWh8O,GACvCs3J,cAAY,EACZ4C,gBAAc,EAEdM,YAAY,EACZF,YAAY,EACZU,WAAS,EAET9I,cAAY,EACZgJ,YAAY,EAEZlC,aAAW,EAEXuD,gBAAiBA,CAACS,EAAgB7B,EAAS8B,IACzC9B,IACE4pE,EAAAA,GAAAA,KAAA,OAAKzxF,QAAS0pB,EAAgB3hJ,MAAO,IAAKwgO,GAAa1tN,KAAM,GAAIzb,UAC/DqyN,EAAAA,GAAAA,KAACz/C,GAAU,CAACjmL,MAAM,UAAUqI,KAAK,QAAQgL,UAAUqyN,EAAAA,GAAAA,KAACsX,GAAAA,EAAS,CAAChhO,MAAO,CAAEhc,MAAO,2BAIpFu9J,gBAAiBA,CAACI,EAAgB5B,EAAS6B,IACzC7B,IACE2pE,EAAAA,GAAAA,KAAA,OAAKzxF,QAAS0pB,EAAgB3hJ,MAAO,IAAKwgO,GAAaxtN,MAAO,GAAI3b,UAChEqyN,EAAAA,GAAAA,KAACz/C,GAAU,CAACjmL,MAAM,UAAUqI,KAAK,QAAQgL,UAAUqyN,EAAAA,GAAAA,KAACuX,GAAAA,EAAU,CAACjhO,MAAO,CAAEhc,MAAO,2BAKrF+6J,gBAAiBA,CAAC4C,EAAgBzD,EAAYv5J,EAAOi9J,IAC/C1D,GAEAwrE,EAAAA,GAAAA,KAAA,MACE1pN,MAAO,IAAKugO,GAAiB36O,WAAY,wBAK7C8jO,EAAAA,GAAAA,KAAA,MACE1pN,MAAO,IAAKugO,GAAiB36O,WAAY,oBAAqBo6E,QAAS,IACvEi4D,QAAS0pB,EACTK,UAAWL,EACXn+J,MAAOmB,EAEPuT,KAAK,SACL6oJ,SAAU,GAFLp8J,GASb0S,SAEG4Q,GAAKxjB,KAAI,CAACq5B,EAAGyzC,KAEVm4J,EAAAA,GAAAA,KAAA,OAAK1pN,MAAO,CAAE3H,WAAY,QAAShB,UACjCqyN,EAAAA,GAAAA,KAAC4W,GAAS,IACJxiN,EACJyzC,MAAOA,KAH8BA,YAezD,CCrHO,MAAMw+J,GAAe3yD,GAAOv0H,GAAG;;;;;;ECEvB,SAASq4L,KACtB,OACExX,EAAAA,GAAAA,KAACqG,GAAY,CAAA14N,UACXqyN,EAAAA,GAAAA,KAAC+W,GAAa,KAGpB,o+1UCPaU,GAA2B/jE,GAAO3Y,GAAU;;;EAK5C28E,GAAyBhkE,GAAO3Y,GAAU;;EAI1C48E,GAA4BjkE,GAAOwsD,GAAI;;EAIvC0X,GAAmBlkE,GAAO3Y,GAAP2Y,EAAkBpyK,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CAC9D,CAAC0K,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B6qK,SAAU,KAEjB,ICPc,SAASqlE,KACpB,MAAM7rO,EAAQI,KACR63N,EAAO/yD,GAAcllK,EAAMvO,YAAYkK,KAAK,OAElD,OACI24N,EAAAA,GAAAA,MAAAC,GAAAA,SAAA,CAAA5yN,SAAA,EACIqyN,EAAAA,GAAAA,KAACyX,GAAwB,CACrBjlE,SAAS,KACT7kK,UACIqyN,EAAAA,GAAAA,KAAC+M,GAAQ,CAACl6L,UAAWilM,GAAwB9jC,QAAM,OAG3DgsB,EAAAA,GAAAA,KAACoP,GAAgC,IAChCnL,GACGjE,EAAAA,GAAAA,KAAC4X,GAAgB,CAAC5rO,MAAOA,EAAOwmK,SAAS,KAAI7kK,UACzCqyN,EAAAA,GAAAA,KAAC2X,GAAyB,CAAChqO,UACvB2yN,EAAAA,GAAAA,MAACuH,GAAY,CAAAl6N,SAAA,EACTqyN,EAAAA,GAAAA,KAAC+M,GAAQ,CAASl6L,UAAWklM,GAAgB/jC,QAAM,GAApC,IACfgsB,EAAAA,GAAAA,KAAC+M,GAAQ,CAASl6L,UAAWmlM,GAAgBhkC,QAAM,GAApC,IACfgsB,EAAAA,GAAAA,KAAC+M,GAAQ,CAASl6L,UAAWolM,GAAgBjkC,QAAM,GAApC,WAK3BgsB,EAAAA,GAAAA,KAAC0X,GAAsB,CACnBllE,SAAS,KACT7kK,UACIqyN,EAAAA,GAAAA,KAAC+M,GAAQ,CAACl6L,UAAWqlM,GAAclkC,QAAM,QAOjE,CC3CoCtgC,GAAOlqJ,GAAO21B,IAAI;;;EAKpBu0H,GAAOlqJ,GAAO21B,IAAI;EAL7C,MAQMg5L,GAAmBzkE,GAAO3Y,GAAU;;EAIpCq9E,GAAgB1kE,GAAO3Y,GAAU;;EAIjCs9E,GAAgB3kE,GAAO3Y,GAAP2Y,EAAkBpyK,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAI,CAC3D07J,cAAe,IACf,CAAChxJ,EAAMvO,YAAYkK,KAAK,OAAQ,CAC9BzJ,YAAa,EACbC,aAAc,GAEjB,IAEYm6O,GAAiB5kE,GAAO3Y,GAAU;;ECxBlCw9E,GAAY7kE,GAAOv0H,KAAI79C,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CAClD,CAAC0K,EAAMvO,YAAYkK,KAAK,OAAQ,CAC9BpJ,UAAW,IACXqQ,QAAS,OACTo0N,cAAe,SACfrnD,eAAgB,UAKlB,CAAC3vK,EAAMvO,YAAYY,GAAG,OAAQ,CAC5BE,UAAW,KAEd,IAEY8nO,GAAe3yD,GAAOlqJ,GAAO21B,IAAI;;;;;EAOjCopL,GAAqB70D,GAAO20D,GAAP30D,EAAuB7jJ,IAAA,IAAC,MAAE7jB,GAAO6jB,EAAA,MAAM,CACvEv1B,MAAO0R,EAAM5K,QAAQpC,QAAQ8B,KAE7BiK,OAAQ,OACR7G,aAAc,UACd4D,MAAO,OACP8G,QAAS,OACTo0N,cAAe,SACfrnD,eAAgB,aAChBzyJ,QAAS,GACT,CAACld,EAAMvO,YAAYkK,KAAK,OAAQ,CAC9Bg0K,eAAgB,SAChBz9K,YAAa,EACbC,aAAc,GAEjB,IAEYq6O,GAAc9kE,GAAOv0H,GAAG;;;;;;;EASxBonL,GAAc7yD,GAAOv0H,GAAG;;;;;;;;EAUxBs5L,GAAgB/kE,GAAOv0H,KAAIluB,IAAA,IAAC,MAAEjlB,GAAOilB,EAAA,MAAM,CACtDnpB,MAAO,OACP,CAACkE,EAAMvO,YAAYkK,KAAK,OAAQ,CAC9B6qK,SAAU,KAIZ,CAACxmK,EAAMvO,YAAYY,GAAG,OAAQ,CAC5Bm0K,SAAU,KAEZ,CAACxmK,EAAMvO,YAAYY,GAAG,OAAQ,CAC5Bm0K,SAAU,KAEZ,CAACxmK,EAAMvO,YAAYY,GAAG,OAAQ,CAC5Bm0K,SAAU,KAEZ,CAACxmK,EAAMvO,YAAYY,GAAG,OAAQ,CAC5Bm0K,SAAU,KAEb,IC3Ec,SAASkmE,GAAS3vO,GAC/B,MAAMiD,EAAQI,KAId,OACE4zN,EAAAA,GAAAA,KAACqG,GAAY,CACX2C,aAJgB2P,IAAM5vO,EAAM4vO,YAAY5vO,EAAM2uB,UAIpB/pB,UAE1BqyN,EAAAA,GAAAA,KAACuI,GAAkB,CAACv8N,MAAOA,EAAO6sK,eAAa,EAACE,oBAAkB,EAAAprK,UAChEqyN,EAAAA,GAAAA,KAACwY,GAAW,CAAA7qO,UACV2yN,EAAAA,GAAAA,MAACiY,GAAS,CAACvsO,MAAOA,EAAM2B,SAAA,EACtBqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,OACXuM,UAAU,KACVuI,MAAO,CAAEvT,cAAe,EAAGzI,MAAO0R,EAAM5K,QAAQpC,QAAQF,OACxDqjO,OAAQn2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrCynN,OAAQj2N,EAAM3K,WAAWgC,GAAG3B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWgC,GAAG3B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAWgC,GAAG3B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWgC,GAAG3B,SAAS8Y,WACrC7M,SAAU5E,EAAM6vO,YAElB5Y,EAAAA,GAAAA,KAACuG,GAAW,CAAA54N,UACVqyN,EAAAA,GAAAA,KAACyY,GAAa,CAACzsO,MAAOA,EAAM2B,UAC1BqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,QACXuM,UAAU,IACVo0N,OAAQn2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC7M,SAAU5E,EAAMy0I,mBASlC,CChDA,MAIA,IACI,CACIq7F,WAAY,QACZD,SAAU,YACVp7F,KAPW,+JAQX9lH,SAAU,GAEd,CACImhN,WAAY,QACZD,SAAU,WACVp7F,KAda,6CAeb9lH,SAAU,GAEd,CACImhN,WAAY,SACZD,SAAU,UACVp7F,KAlBa,wJAmBb9lH,SAAU,IClBLohN,GAAqBplE,GAAOv0H,GAAG;;;;;;EAY/B45L,GAAWrlE,GAAOmxD,GAAiB;;;;;;MAM1C97N,GAASA,EAAMiD,MAAMvO,YAAYkK,KAAK;;;EAK/BqxO,GAAWtlE,GAAOmxD,GAAK;;;;;EAOvBoU,GAAgBvlE,GAAOv0H,KAAI79C,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CAGpDwG,MAAO,OACP,CAACkE,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B0mL,WAAY,EACZrxB,cAAe,EACf9+J,YAAa,EACbC,aAAc,GAErB,IChCc,SAAS+6O,GAAgBnwO,GACpC,MAAMiD,EAAQI,MACPqzN,EAAoB0Z,IAAyBh5M,EAAAA,EAAAA,UAAS,UAI7D,OACI6/L,EAAAA,GAAAA,KAAC2B,GAAQ,CAACC,MAAI,EAAAj0N,UACVqyN,EAAAA,GAAAA,KAACb,GAAY,CACTvyI,MAAM,GACNyyI,gBAAgB,8FAChBn7N,aAAc,MACd4uJ,MAdA,qDAeA2sE,mBAAoBA,EACpB10N,OAAO,OACPjD,MAAM,OAAM6F,UAEZqyN,EAAAA,GAAAA,KAACiZ,GAAa,CAACjtO,MAAOA,EAAM2B,UACxBqyN,EAAAA,GAAAA,KAAC+Y,GAAQ,CAAC/sO,MAAOA,EAAO6W,WAAS,EAACnlB,QAAS,EAAEiQ,SACxC4Q,GAAKxjB,KAAI,CAACq5B,EAAG9sB,KAEN04N,EAAAA,GAAAA,KAACgZ,GAAQ,CAACnnN,MAAI,EAAWhrB,GAAI,GAAIC,GAAI,GAAIC,GAAI,GAAIC,GAAI,EAAGC,GAAI,EAAE0G,UAC1DqyN,EAAAA,GAAAA,KAAC8Y,GAAkB,CAAAnrO,UACfqyN,EAAAA,GAAAA,KAAC0Y,GAAQ,CAACl7F,KAAMppH,EAAEopH,KAAMq7F,WAAYzkN,EAAEykN,WAAYD,SAAUxkN,EAAEwkN,SAAUlhN,SAAUtD,EAAEsD,SAAUihN,YAAcS,GAnB3HA,IAAiBD,EAA+B,IAATC,EAAa,MAAiB,IAATA,EAAa,SAAW,UAmBgDT,CAAYS,QAFrH9xO,YAYpD,CC1Be,SAAS+xO,KACtB,MAAMrtO,EAAQI,KAEd,OACEk0N,EAAAA,GAAAA,MAAA,QAAMhqN,MAAO,CAAEwlF,gBAAiB9vF,EAAM5K,QAAQlF,WAAWqD,SAAUoO,SAAA,EAEjEqyN,EAAAA,GAAAA,KAAA,WAAAryN,UACEqyN,EAAAA,GAAAA,KAAC4P,GAAc,CAAChjJ,MAAM,GAAGigJ,SAAO,EAACx5L,KAAMimM,GAAezJ,MAAO0J,GAAgB9kM,IAT3D,0DAYpBurL,EAAAA,GAAAA,KAAA,WAAAryN,UACEqyN,EAAAA,GAAAA,KAAC6X,GAAgB,OAGnBvX,EAAAA,GAAAA,MAAA,WAAA3yN,SAAA,EACEqyN,EAAAA,GAAAA,KAACjlE,GAAS,CAACzkJ,MAAO,CAAE0mJ,cAAe,IAAMwV,SAAS,KAAK7kK,UACrD2yN,EAAAA,GAAAA,MAAAC,GAAAA,SAAA,CAAA5yN,SAAA,EACEqyN,EAAAA,GAAAA,KAAC+O,GAA4B,KAC7B/O,EAAAA,GAAAA,KAAC+M,GAAQ,CAACl6L,UAAW2mM,GAAiBxlC,QAAM,UAIhDgsB,EAAAA,GAAAA,KAACmY,GAAgB,CAAC3lE,SAAS,KAAK7kK,UAAUqyN,EAAAA,GAAAA,KAAC8V,GAAS,UAGtDxV,EAAAA,GAAAA,MAAA,WAAA3yN,SAAA,EACEqyN,EAAAA,GAAAA,KAACjlE,GAAS,CAACzkJ,MAAO,CAAE0mJ,cAAe,IAAMwV,SAAS,KAAK7kK,UACrD2yN,EAAAA,GAAAA,MAAAC,GAAAA,SAAA,CAAA5yN,SAAA,EACEqyN,EAAAA,GAAAA,KAACgP,GAAiC,KAClChP,EAAAA,GAAAA,KAAC+M,GAAQ,CAACl6L,UAAW49L,GAAgBz8B,QAAM,UAG/CgsB,EAAAA,GAAAA,KAACoY,GAAa,CAAC5lE,SAAS,KAAK7kK,UAAUqyN,EAAAA,GAAAA,KAAC8H,GAAM,UAGhD9H,EAAAA,GAAAA,KAAA,WAAAryN,UACEqyN,EAAAA,GAAAA,KAACqY,GAAa,CAACrsO,MAAOA,EAAOwmK,SAAU,KAAM7kK,UAAUqyN,EAAAA,GAAAA,KAACkZ,GAAe,SAGzE5Y,EAAAA,GAAAA,MAAA,WAAA3yN,SAAA,EACEqyN,EAAAA,GAAAA,KAACjlE,GAAS,CAACzkJ,MAAO,CAAE0mJ,cAAe,IAAMwV,SAAS,KAAK7kK,UACrD2yN,EAAAA,GAAAA,MAAAC,GAAAA,SAAA,CAAA5yN,SAAA,EACEqyN,EAAAA,GAAAA,KAACiP,GAA8B,KAC/BjP,EAAAA,GAAAA,KAAC+M,GAAQ,CAACl6L,UAAW4mM,GAAkBzlC,QAAM,UAGjDgsB,EAAAA,GAAAA,KAACsY,GAAc,CAAC9lE,SAAU,KAAM7kK,UAAUqyN,EAAAA,GAAAA,KAACwX,GAAO,WAI1D,CClEe,SAASziM,GAAKviC,EAAIknO,GAC/B,OAAO,WACL,OAAOlnO,EAAGhF,MAAMksO,EAAS1/O,UAC3B,CACF,CCAA,MAAOwgB,SAAQA,IAAI/R,OAAOyN,WACpB,eAACslB,IAAkB/yB,OAEnBkxO,IAAU/zN,GAGbnd,OAAO4B,OAAO,MAHQuvO,IACrB,MAAMpiO,EAAMgD,GAASV,KAAK8/N,GAC1B,OAAOh0N,GAAMpO,KAASoO,GAAMpO,GAAOA,EAAItK,MAAM,GAAI,GAAGib,cAAc,GAFvD,IAACvC,GAKhB,MAAMi0N,GAAct/O,IAClBA,EAAOA,EAAK4tB,cACJyxN,GAAUD,GAAOC,KAAWr/O,GAGhCu/O,GAAav/O,GAAQq/O,UAAgBA,IAAUr/O,GAS/C,QAACqQ,IAAWvC,MASZ0xO,GAAcD,GAAW,aAqB/B,MAAME,GAAgBH,GAAW,eA2BjC,MAAMI,GAAWH,GAAW,UAQtBI,GAAaJ,GAAW,YASxBK,GAAWL,GAAW,UAStBM,GAAYR,GAAoB,OAAVA,GAAmC,kBAAVA,EAiB/C9lN,GAAiB/2B,IACrB,GAAoB,WAAhB48O,GAAO58O,GACT,OAAO,EAGT,MAAMmZ,EAAYslB,GAAez+B,GACjC,OAAsB,OAAdmZ,GAAsBA,IAAczN,OAAOyN,WAAkD,OAArCzN,OAAO+yB,eAAetlB,OAA0BP,OAAOssJ,eAAellK,MAAU4Y,OAAOI,YAAYhZ,EAAI,EAUnKs9O,GAASR,GAAW,QASpBS,GAAST,GAAW,QASpBU,GAASV,GAAW,QASpBW,GAAaX,GAAW,YAsCxBY,GAAoBZ,GAAW,oBAE9Ba,GAAkBC,GAAWC,GAAYC,IAAa,CAAC,iBAAkB,UAAW,WAAY,WAAW9/O,IAAI8+O,IA2BtH,SAASx7N,GAAQrI,EAAKxD,GAA+B,IAM/CzW,EACAU,GAPoB,WAACq+O,GAAa,GAAM9gP,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEhD,GAAY,OAARgc,GAA+B,qBAARA,EAa3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGLpL,GAAQoL,GAEV,IAAKja,EAAI,EAAGU,EAAIuZ,EAAI/b,OAAQ8B,EAAIU,EAAGV,IACjCyW,EAAGsH,KAAK,KAAM9D,EAAIja,GAAIA,EAAGia,OAEtB,CAEL,MAAMzY,EAAOu9O,EAAaryO,OAAO6yB,oBAAoBtlB,GAAOvN,OAAOlL,KAAKyY,GAClEwwB,EAAMjpC,EAAKtD,OACjB,IAAIqN,EAEJ,IAAKvL,EAAI,EAAGA,EAAIyqC,EAAKzqC,IACnBuL,EAAM/J,EAAKxB,GACXyW,EAAGsH,KAAK,KAAM9D,EAAI1O,GAAMA,EAAK0O,EAEjC,CACF,CAEA,SAAS+kO,GAAQ/kO,EAAK1O,GACpBA,EAAMA,EAAI6gB,cACV,MAAM5qB,EAAOkL,OAAOlL,KAAKyY,GACzB,IACI1N,EADAvM,EAAIwB,EAAKtD,OAEb,KAAO8B,KAAM,GAEX,GADAuM,EAAO/K,EAAKxB,GACRuL,IAAQgB,EAAK6f,cACf,OAAO7f,EAGX,OAAO,IACT,CAEA,MAAM0yO,GAEsB,qBAAfv6N,WAAmCA,WACvB,qBAATC,KAAuBA,KAA0B,qBAAXtO,OAAyBA,OAASkc,OAGlF2sN,GAAoBhnJ,IAAa8lJ,GAAY9lJ,IAAYA,IAAY+mJ,GAoD3E,MA8HME,IAAgBC,GAKG,qBAAft5I,YAA8BrmE,GAAeqmE,YAH9C+3I,GACEuB,IAAcvB,aAAiBuB,IAHrB,IAACA,GAetB,MAiCMC,GAAavB,GAAW,mBAWxBh5O,GAAiB,CAACS,IAAA,IAAC,eAACT,GAAeS,EAAA,MAAK,CAAC0U,EAAKiC,IAASpX,EAAeiZ,KAAK9D,EAAKiC,EAAK,EAApE,CAAsExP,OAAOyN,WAS9FmlO,GAAWxB,GAAW,UAEtByB,GAAoBA,CAACtlO,EAAKulO,KAC9B,MAAMC,EAAc/yO,OAAOokJ,0BAA0B72I,GAC/CylO,EAAqB,CAAC,EAE5Bp9N,GAAQm9N,GAAa,CAACx/M,EAAY1wB,KAChC,IAAI8lG,GAC2C,KAA1CA,EAAMmqI,EAAQv/M,EAAY1wB,EAAM0K,MACnCylO,EAAmBnwO,GAAQ8lG,GAAOp1E,EACpC,IAGFvzB,OAAOokG,iBAAiB72F,EAAKylO,EAAmB,EAsD5CC,GAAQ,6BAERC,GAAQ,aAERC,GAAW,CACfD,SACAD,SACAG,YAAaH,GAAQA,GAAMzuO,cAAgB0uO,IAwB7C,MA+BMG,GAAYjC,GAAW,iBAQvBkC,IAAkBC,GAkBE,oBAAjBr9E,aAlBsCs9E,GAmB7C/B,GAAWc,GAAQttM,aAlBfsuM,GACKr9E,aAGFs9E,GAAuB,EAAEtvD,EAAOl2I,KACrCukM,GAAQ/lO,iBAAiB,WAAW4a,IAAoB,IAAnB,OAACkE,EAAM,KAAExV,GAAKsR,EAC7CkE,IAAWinN,IAAWz8N,IAASouK,GACjCl2I,EAAUx8C,QAAUw8C,EAAUyE,OAAVzE,EACtB,IACC,GAEKvY,IACNuY,EAAU55C,KAAKqhC,GACf88M,GAAQttM,YAAYi/I,EAAO,IAAI,GATL,CAW3B,SAASvyL,KAAK0X,WAAY,IAAOosB,GAAOluB,WAAWkuB,IAhBlC,IAAE89M,GAAuBC,GAsB/C,MAAMC,GAAiC,qBAAnB3gH,eAClBA,eAAexmF,KAAKimM,IAAgC,qBAAZ9hO,SAA2BA,QAAQijO,UAAYJ,GAIzF,IACEnxO,WACAovO,iBACAoC,SAlpBF,SAAkBr/O,GAChB,OAAe,OAARA,IAAiBg9O,GAAYh9O,IAA4B,OAApBA,EAAIkZ,cAAyB8jO,GAAYh9O,EAAIkZ,cACpFikO,GAAWn9O,EAAIkZ,YAAYmmO,WAAar/O,EAAIkZ,YAAYmmO,SAASr/O,EACxE,EAgpBEs/O,WApgBkBzC,IAClB,IAAI0C,EACJ,OAAO1C,IACgB,oBAAb2C,UAA2B3C,aAAiB2C,UAClDrC,GAAWN,EAAM1jM,UACY,cAA1BomM,EAAO3C,GAAOC,KAEL,WAAT0C,GAAqBpC,GAAWN,EAAMp/N,WAAkC,sBAArBo/N,EAAMp/N,YAG/D,EA2fDgiO,kBA9nBF,SAA2Bz/O,GACzB,IAAIia,EAMJ,OAJEA,EAD0B,qBAAhB2lI,aAAiCA,YAAYC,OAC9CD,YAAYC,OAAO7/I,GAElBA,GAASA,EAAIm6F,QAAY8iJ,GAAcj9O,EAAIm6F,QAEhDlgF,CACT,EAunBEijO,YACAE,YACAsC,UA9kBgB7C,IAAmB,IAAVA,IAA4B,IAAVA,EA+kB3CQ,YACAtmN,iBACA4mN,oBACAC,aACAC,WAAU,GACVC,aACAd,eACAM,UACAC,UACAC,UACAc,YACAnB,cACAwC,SA9hBgB3/O,GAAQq9O,GAASr9O,IAAQm9O,GAAWn9O,EAAIk+L,MA+hBxDw/C,qBACAS,gBACAV,cACAn8N,WACAsV,MAhaF,SAASA,IACP,MAAM,SAACgpN,GAAY1B,GAAiBxtO,OAASA,MAAQ,CAAC,EAChDuJ,EAAS,CAAC,EACV4lO,EAAcA,CAAC7/O,EAAKuK,KACxB,MAAMu1O,EAAYF,GAAY5B,GAAQ/jO,EAAQ1P,IAAQA,EAClDwsB,GAAc9c,EAAO6lO,KAAe/oN,GAAc/2B,GACpDia,EAAO6lO,GAAalpN,EAAM3c,EAAO6lO,GAAY9/O,GACpC+2B,GAAc/2B,GACvBia,EAAO6lO,GAAalpN,EAAM,CAAC,EAAG52B,GACrB6N,GAAQ7N,GACjBia,EAAO6lO,GAAa9/O,EAAImQ,QAExB8J,EAAO6lO,GAAa9/O,CACtB,EAGF,IAAK,IAAIhB,EAAI,EAAGU,EAAIzC,UAAUC,OAAQ8B,EAAIU,EAAGV,IAC3C/B,UAAU+B,IAAMsiB,GAAQrkB,UAAU+B,GAAI6gP,GAExC,OAAO5lO,CACT,EA6YE8/G,OAjYa,SAACp6H,EAAG21B,EAAGqnN,GAA8B,IAArB,WAACoB,GAAW9gP,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAE,CAAC,EAQ5C,OAPAqkB,GAAQgU,GAAG,CAACt1B,EAAKuK,KACXoyO,GAAWQ,GAAWn9O,GACxBL,EAAE4K,GAAOytC,GAAKh4C,EAAK28O,GAEnBh9O,EAAE4K,GAAOvK,CACX,GACC,CAAC+9O,eACGp+O,CACT,EAyXE8lB,KA7fYhL,GAAQA,EAAIgL,KACxBhL,EAAIgL,OAAShL,EAAImB,QAAQ,qCAAsC,IA6f/DmkO,SAjXgB5rK,IACc,QAA1BA,EAAQlH,WAAW,KACrBkH,EAAUA,EAAQhkE,MAAM,IAEnBgkE,GA8WP6rK,SAlWeA,CAAC9mO,EAAa+mO,EAAkBj0O,EAAOyyO,KACtDvlO,EAAYC,UAAYzN,OAAO4B,OAAO2yO,EAAiB9mO,UAAWslO,GAClEvlO,EAAYC,UAAUD,YAAcA,EACpCxN,OAAOC,eAAeuN,EAAa,QAAS,CAC1Cnc,MAAOkjP,EAAiB9mO,YAE1BnN,GAASN,OAAO+rB,OAAOve,EAAYC,UAAWnN,EAAM,EA6VpDk0O,aAjVmBA,CAACC,EAAWC,EAASzwN,EAAQ0wN,KAChD,IAAIr0O,EACAhN,EACAkc,EACJ,MAAMolO,EAAS,CAAC,EAIhB,GAFAF,EAAUA,GAAW,CAAC,EAEL,MAAbD,EAAmB,OAAOC,EAE9B,EAAG,CAGD,IAFAp0O,EAAQN,OAAO6yB,oBAAoB4hN,GACnCnhP,EAAIgN,EAAM9O,OACH8B,KAAM,GACXkc,EAAOlP,EAAMhN,GACPqhP,IAAcA,EAAWnlO,EAAMilO,EAAWC,IAAcE,EAAOplO,KACnEklO,EAAQllO,GAAQilO,EAAUjlO,GAC1BolO,EAAOplO,IAAQ,GAGnBilO,GAAuB,IAAXxwN,GAAoB8O,GAAe0hN,EACjD,OAASA,KAAexwN,GAAUA,EAAOwwN,EAAWC,KAAaD,IAAcz0O,OAAOyN,WAEtF,OAAOinO,CAAO,EA2TdxD,UACAE,cACA5yE,SAjTeA,CAACzvJ,EAAK8lO,EAAc5lN,KACnClgB,EAAM0J,OAAO1J,SACItd,IAAbw9B,GAA0BA,EAAWlgB,EAAIvd,UAC3Cy9B,EAAWlgB,EAAIvd,QAEjBy9B,GAAY4lN,EAAarjP,OACzB,MAAMuuD,EAAYhxC,EAAIjc,QAAQ+hP,EAAc5lN,GAC5C,OAAsB,IAAf8wB,GAAoBA,IAAc9wB,CAAQ,EA2SjDk7H,QAhSegnF,IACf,IAAKA,EAAO,OAAO,KACnB,GAAIhvO,GAAQgvO,GAAQ,OAAOA,EAC3B,IAAI79O,EAAI69O,EAAM3/O,OACd,IAAKkgP,GAASp+O,GAAI,OAAO,KACzB,MAAMwsC,EAAM,IAAIlgC,MAAMtM,GACtB,KAAOA,KAAM,GACXwsC,EAAIxsC,GAAK69O,EAAM79O,GAEjB,OAAOwsC,CAAG,EAwRVg1M,aA7PmBA,CAACvnO,EAAKxD,KACzB,MAEMuD,GAFYC,GAAOA,EAAIL,OAAOI,WAET+D,KAAK9D,GAEhC,IAAIgB,EAEJ,MAAQA,EAASjB,EAASikB,UAAYhjB,EAAOwpH,MAAM,CACjD,MAAMrnE,EAAOniD,EAAOld,MACpB0Y,EAAGsH,KAAK9D,EAAKmjD,EAAK,GAAIA,EAAK,GAC7B,GAoPAqkL,SAzOeA,CAAC30N,EAAQrR,KACxB,IAAIlD,EACJ,MAAMi0B,EAAM,GAEZ,KAAwC,QAAhCj0B,EAAUuU,EAAO6hI,KAAKlzI,KAC5B+wB,EAAI1rC,KAAKyX,GAGX,OAAOi0B,CAAG,EAkOV6yM,cACAv6O,eAAc,GACd48O,WAAY58O,GACZy6O,qBACAoC,cAzLqB1nO,IACrBslO,GAAkBtlO,GAAK,CAACgmB,EAAY1wB,KAElC,GAAI4uO,GAAWlkO,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAUza,QAAQ+P,GAC/D,OAAO,EAGT,MAAMxR,EAAQkc,EAAI1K,GAEb4uO,GAAWpgP,KAEhBkiC,EAAWvmB,YAAa,EAEpB,aAAcumB,EAChBA,EAAWvE,UAAW,EAInBuE,EAAWphB,MACdohB,EAAWphB,IAAM,KACf,MAAMnf,MAAM,qCAAwC6P,EAAO,IAAK,GAEpE,GACA,EAmKFqyO,YAhKkBA,CAACC,EAAe9kB,KAClC,MAAM9iN,EAAM,CAAC,EAEP0jD,EAAUnxB,IACdA,EAAIlqB,SAAQvkB,IACVkc,EAAIlc,IAAS,CAAI,GACjB,EAKJ,OAFA8Q,GAAQgzO,GAAiBlkL,EAAOkkL,GAAiBlkL,EAAOx4C,OAAO08N,GAAehiP,MAAMk9N,IAE7E9iN,CAAG,EAsJV6nO,YAlOkBrmO,GACXA,EAAI2Q,cAAcxP,QAAQ,yBAC/B,SAAkBsZ,EAAG5E,EAAIC,GACvB,OAAOD,EAAGpgB,cAAgBqgB,CAC5B,IA+NFo7H,KApJWA,OAqJXo1F,eAnJqBA,CAAChkP,EAAO8mH,IACb,MAAT9mH,GAAiBmD,OAAOmlL,SAAStoL,GAASA,GAASA,EAAQ8mH,EAmJlEm6H,WACAzsN,OAAQ0sN,GACRC,oBACAW,YACAmC,eA1IqB,WAAgD,IAA/Cp7O,EAAI3I,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAIgkP,EAAQhkP,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG4hP,GAASC,YACjDrkO,EAAM,GACV,MAAM,OAACvd,GAAU+jP,EACjB,KAAOr7O,KACL6U,GAAOwmO,EAAS5jP,KAAK0X,SAAW7X,EAAO,GAGzC,OAAOud,CACT,EAmIEymO,oBA1HF,SAA6BrE,GAC3B,SAAUA,GAASM,GAAWN,EAAM1jM,SAAyC,aAA9B0jM,EAAMjkO,OAAOssJ,cAA+B23E,EAAMjkO,OAAOI,UAC1G,EAyHEmoO,aAvHoBloO,IACpB,MAAM48E,EAAQ,IAAIvqF,MAAM,IAElB81O,EAAQA,CAACpqN,EAAQh4B,KAErB,GAAIq+O,GAASrmN,GAAS,CACpB,GAAI6+D,EAAMr3F,QAAQw4B,IAAW,EAC3B,OAGF,KAAK,WAAYA,GAAS,CACxB6+D,EAAM72F,GAAKg4B,EACX,MAAM1f,EAASzJ,GAAQmpB,GAAU,GAAK,CAAC,EASvC,OAPA1V,GAAQ0V,GAAQ,CAACj6B,EAAOwN,KACtB,MAAM82O,EAAeD,EAAMrkP,EAAOiC,EAAI,IACrCg+O,GAAYqE,KAAkB/pO,EAAO/M,GAAO82O,EAAa,IAG5DxrJ,EAAM72F,QAAK7B,EAEJma,CACT,CACF,CAEA,OAAO0f,CAAM,EAGf,OAAOoqN,EAAMnoO,EAAK,EAAE,EA4FpB8lO,aACAuC,WAxFkBzE,GAClBA,IAAUQ,GAASR,IAAUM,GAAWN,KAAWM,GAAWN,EAAMn+G,OAASy+G,GAAWN,EAAMl+G,OAwF9FijC,aAAco9E,GACdG,SCvuBF,SAASoC,GAAWr0G,EAASh2G,EAAM4N,EAAQypH,EAASr5G,GAClDx2C,MAAMqe,KAAKrM,MAEPhS,MAAM8iP,kBACR9iP,MAAM8iP,kBAAkB9wO,KAAMA,KAAKwI,aAEnCxI,KAAKmlF,OAAS,IAAIn3F,OAASm3F,MAG7BnlF,KAAKw8H,QAAUA,EACfx8H,KAAKnC,KAAO,aACZ2oB,IAASxmB,KAAKwmB,KAAOA,GACrB4N,IAAWp0B,KAAKo0B,OAASA,GACzBypH,IAAY79I,KAAK69I,QAAUA,GACvBr5G,IACFxkC,KAAKwkC,SAAWA,EAChBxkC,KAAK+kC,OAASP,EAASO,OAASP,EAASO,OAAS,KAEtD,CAEAgsM,GAAMzB,SAASuB,GAAY7iP,MAAO,CAChC8e,OAAQ,WACN,MAAO,CAEL0vH,QAASx8H,KAAKw8H,QACd3+H,KAAMmC,KAAKnC,KAEXyhF,YAAat/E,KAAKs/E,YAClBz5E,OAAQ7F,KAAK6F,OAEb4mC,SAAUzsC,KAAKysC,SACfwxC,WAAYj+E,KAAKi+E,WACjB+yJ,aAAchxO,KAAKgxO,aACnB7rJ,MAAOnlF,KAAKmlF,MAEZ/wD,OAAQ28M,GAAMN,aAAazwO,KAAKo0B,QAChC5N,KAAMxmB,KAAKwmB,KACXue,OAAQ/kC,KAAK+kC,OAEjB,IAGF,MAAMt8B,GAAYooO,GAAWpoO,UACvBslO,GAAc,CAAC,EAErB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEAn9N,SAAQ4V,IACRunN,GAAYvnN,GAAQ,CAACn6B,MAAOm6B,EAAK,IAGnCxrB,OAAOokG,iBAAiByxI,GAAY9C,IACpC/yO,OAAOC,eAAewN,GAAW,eAAgB,CAACpc,OAAO,IAGzDwkP,GAAWhhG,KAAO,CAACn4I,EAAO8uB,EAAM4N,EAAQypH,EAASr5G,EAAUysM,KACzD,MAAMC,EAAal2O,OAAO4B,OAAO6L,IAgBjC,OAdAsoO,GAAMvB,aAAa93O,EAAOw5O,GAAY,SAAgB3oO,GACpD,OAAOA,IAAQva,MAAMya,SACvB,IAAG+B,GACe,iBAATA,IAGTqmO,GAAWxkO,KAAK6kO,EAAYx5O,EAAM8kI,QAASh2G,EAAM4N,EAAQypH,EAASr5G,GAElE0sM,EAAWC,MAAQz5O,EAEnBw5O,EAAWrzO,KAAOnG,EAAMmG,KAExBozO,GAAej2O,OAAO+rB,OAAOmqN,EAAYD,GAElCC,CAAU,EAGnB,YCxFA,SAASE,GAAYjF,GACnB,OAAO4E,GAAM1qN,cAAc8lN,IAAU4E,GAAM5zO,QAAQgvO,EACrD,CASA,SAASkF,GAAex3O,GACtB,OAAOk3O,GAAMv3E,SAAS3/J,EAAK,MAAQA,EAAI4F,MAAM,GAAI,GAAK5F,CACxD,CAWA,SAASy3O,GAAUtvO,EAAMnI,EAAK03O,GAC5B,OAAKvvO,EACEA,EAAK7U,OAAO0M,GAAKvM,KAAI,SAAc4xL,EAAO5wL,GAG/C,OADA4wL,EAAQmyD,GAAenyD,IACfqyD,GAAQjjP,EAAI,IAAM4wL,EAAQ,IAAMA,CAC1C,IAAGvxL,KAAK4jP,EAAO,IAAM,IALH13O,CAMpB,CAaA,MAAM23O,GAAaT,GAAMvB,aAAauB,GAAO,CAAC,EAAG,MAAM,SAAgBvmO,GACrE,MAAO,WAAWgE,KAAKhE,EACzB,IA8JA,SArIA,SAAoBjC,EAAKkpO,EAAU96O,GACjC,IAAKo6O,GAAMpE,SAASpkO,GAClB,MAAM,IAAImgB,UAAU,4BAItB+oN,EAAWA,GAAY,IAAyB3C,SAYhD,MAAM4C,GATN/6O,EAAUo6O,GAAMvB,aAAa74O,EAAS,CACpC+6O,YAAY,EACZH,MAAM,EACN/4J,SAAS,IACR,GAAO,SAAiBm5J,EAAQrrN,GAEjC,OAAQyqN,GAAMzE,YAAYhmN,EAAOqrN,GACnC,KAE2BD,WAErBE,EAAUj7O,EAAQi7O,SAAWC,EAC7BN,EAAO56O,EAAQ46O,KACf/4J,EAAU7hF,EAAQ6hF,QAElBs5J,GADQn7O,EAAQ0pC,MAAwB,qBAATA,MAAwBA,OACpC0wM,GAAMP,oBAAoBiB,GAEnD,IAAKV,GAAMtE,WAAWmF,GACpB,MAAM,IAAIlpN,UAAU,8BAGtB,SAASqpN,EAAa1lP,GACpB,GAAc,OAAVA,EAAgB,MAAO,GAE3B,GAAI0kP,GAAMnE,OAAOvgP,GACf,OAAOA,EAAM2lP,cAGf,IAAKF,GAAWf,GAAMjE,OAAOzgP,GAC3B,MAAM,IAAIwkP,GAAW,gDAGvB,OAAIE,GAAMxE,cAAclgP,IAAU0kP,GAAMtD,aAAaphP,GAC5CylP,GAA2B,oBAATzxM,KAAsB,IAAIA,KAAK,CAACh0C,IAAU4lP,OAAOpiG,KAAKxjJ,GAG1EA,CACT,CAYA,SAASwlP,EAAexlP,EAAOwN,EAAKmI,GAClC,IAAI84B,EAAMzuC,EAEV,GAAIA,IAAU2V,GAAyB,kBAAV3V,EAC3B,GAAI0kP,GAAMv3E,SAAS3/J,EAAK,MAEtBA,EAAM63O,EAAa73O,EAAMA,EAAI4F,MAAM,GAAI,GAEvCpT,EAAQyM,KAAKC,UAAU1M,QAClB,GACJ0kP,GAAM5zO,QAAQ9Q,IAnGvB,SAAqByuC,GACnB,OAAOi2M,GAAM5zO,QAAQ29B,KAASA,EAAIq6H,KAAKi8E,GACzC,CAiGiCc,CAAY7lP,KACnC0kP,GAAMhE,WAAW1gP,IAAU0kP,GAAMv3E,SAAS3/J,EAAK,SAAWihC,EAAMi2M,GAAM5rF,QAAQ94J,IAYhF,OATAwN,EAAMw3O,GAAex3O,GAErBihC,EAAIlqB,SAAQ,SAAciF,EAAIroB,IAC1BujP,GAAMzE,YAAYz2N,IAAc,OAAPA,GAAgB47N,EAAShpM,QAEtC,IAAZ+vC,EAAmB84J,GAAU,CAACz3O,GAAMrM,EAAO+jP,GAAqB,OAAZ/4J,EAAmB3+E,EAAMA,EAAM,KACnFk4O,EAAal8N,GAEjB,KACO,EAIX,QAAIu7N,GAAY/kP,KAIhBolP,EAAShpM,OAAO6oM,GAAUtvO,EAAMnI,EAAK03O,GAAOQ,EAAa1lP,KAElD,EACT,CAEA,MAAM84F,EAAQ,GAERgtJ,EAAiBn3O,OAAO+rB,OAAOyqN,GAAY,CAC/CK,iBACAE,eACAX,iBAyBF,IAAKL,GAAMpE,SAASpkO,GAClB,MAAM,IAAImgB,UAAU,0BAKtB,OA5BA,SAASy/L,EAAM97N,EAAO2V,GACpB,IAAI+uO,GAAMzE,YAAYjgP,GAAtB,CAEA,IAA8B,IAA1B84F,EAAMr3F,QAAQzB,GAChB,MAAM2B,MAAM,kCAAoCgU,EAAKrU,KAAK,MAG5Dw3F,EAAM/1F,KAAK/C,GAEX0kP,GAAMngO,QAAQvkB,GAAO,SAAcwpB,EAAIhc,IAKtB,OAJEk3O,GAAMzE,YAAYz2N,IAAc,OAAPA,IAAgB+7N,EAAQvlO,KAChEolO,EAAU57N,EAAIk7N,GAAMvE,SAAS3yO,GAAOA,EAAIkb,OAASlb,EAAKmI,EAAMmwO,KAI5DhqB,EAAMtyM,EAAI7T,EAAOA,EAAK7U,OAAO0M,GAAO,CAACA,GAEzC,IAEAsrF,EAAMn3B,KAlB8B,CAmBtC,CAMAm6J,CAAM5/M,GAECkpO,CACT,EC5MA,SAASW,GAAOroO,GACd,MAAMsoO,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,MAET,OAAO5rN,mBAAmB1c,GAAKmB,QAAQ,oBAAoB,SAAkB7d,GAC3E,OAAOglP,EAAQhlP,EACjB,GACF,CAUA,SAASilP,GAAqBlqO,EAAQzR,GACpCqJ,KAAKuyO,OAAS,GAEdnqO,GAAUoqO,GAAWpqO,EAAQpI,KAAMrJ,EACrC,CAEA,MAAM8R,GAAY6pO,GAAqB7pO,UAEvCA,GAAUggC,OAAS,SAAgB5qC,EAAMxR,GACvC2T,KAAKuyO,OAAOnjP,KAAK,CAACyO,EAAMxR,GAC1B,EAEAoc,GAAUsE,SAAW,SAAkB0lO,GACrC,MAAMC,EAAUD,EAAU,SAASpmP,GACjC,OAAOomP,EAAQpmO,KAAKrM,KAAM3T,EAAO+lP,GACnC,EAAIA,GAEJ,OAAOpyO,KAAKuyO,OAAOjlP,KAAI,SAAco+D,GACnC,OAAOgnL,EAAQhnL,EAAK,IAAM,IAAMgnL,EAAQhnL,EAAK,GAC/C,GAAG,IAAI/9D,KAAK,IACd,EAEA,YC5CA,SAASykP,GAAO9iP,GACd,OAAOm3B,mBAAmBn3B,GACxB4b,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CAWe,SAASynO,GAASltO,EAAK2C,EAAQzR,GAE5C,IAAKyR,EACH,OAAO3C,EAGT,MAAMitO,EAAU/7O,GAAWA,EAAQy7O,QAAUA,GAEvCQ,EAAcj8O,GAAWA,EAAQ+0N,UAEvC,IAAImnB,EAUJ,GAPEA,EADED,EACiBA,EAAYxqO,EAAQzR,GAEpBo6O,GAAM/D,kBAAkB5kO,GACzCA,EAAO2E,WACP,IAAIulO,GAAqBlqO,EAAQzR,GAASoW,SAAS2lO,GAGnDG,EAAkB,CACpB,MAAMC,EAAgBrtO,EAAI3X,QAAQ,MAEX,IAAnBglP,IACFrtO,EAAMA,EAAIhG,MAAM,EAAGqzO,IAErBrtO,KAA8B,IAAtBA,EAAI3X,QAAQ,KAAc,IAAM,KAAO+kP,CACjD,CAEA,OAAOptO,CACT,CCQA,SAlEA,MACE+C,WAAAA,GACExI,KAAK8zK,SAAW,EAClB,CAUAvhK,GAAAA,CAAIwgO,EAAWC,EAAUr8O,GAOvB,OANAqJ,KAAK8zK,SAAS1kL,KAAK,CACjB2jP,YACAC,WACAC,cAAat8O,GAAUA,EAAQs8O,YAC/BC,QAASv8O,EAAUA,EAAQu8O,QAAU,OAEhClzO,KAAK8zK,SAAStnL,OAAS,CAChC,CASA2mP,KAAAA,CAAM/uO,GACApE,KAAK8zK,SAAS1vK,KAChBpE,KAAK8zK,SAAS1vK,GAAM,KAExB,CAOA5B,KAAAA,GACMxC,KAAK8zK,WACP9zK,KAAK8zK,SAAW,GAEpB,CAYAljK,OAAAA,CAAQ7L,GACNgsO,GAAMngO,QAAQ5Q,KAAK8zK,UAAU,SAAwBhlL,GACzC,OAANA,GACFiW,EAAGjW,EAEP,GACF,GCjEF,IACEskP,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCDvB,IACE55C,WAAW,EACXp7L,QAAS,CACPi1O,gBCJsC,qBAApBA,gBAAkCA,gBAAkBjB,GDKtExD,SEN+B,qBAAbA,SAA2BA,SAAW,KFOxDzuM,KGP2B,qBAATA,KAAuBA,KAAO,MHSlDmzM,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,SIXhDC,GAAkC,qBAAX9uO,QAA8C,qBAAbH,SAExDkvO,GAAkC,kBAAd9pN,WAA0BA,gBAAan9B,EAmB3DknP,GAAwBF,MAC1BC,IAAc,CAAC,cAAe,eAAgB,MAAM5lP,QAAQ4lP,GAAWE,SAAW,GAWhFC,GAE2B,qBAAtBC,mBAEP7gO,gBAAgB6gO,mBACc,oBAAvB7gO,KAAK8gO,cAIVvuM,GAASiuM,IAAiB9uO,OAAOvB,SAASynD,MAAQ,mBCvCxD,OACKkmL,KACAiD,ICyFL,SA9CA,SAAwBvC,GACtB,SAASwC,EAAUjyO,EAAM3V,EAAOua,EAAQpZ,GACtC,IAAIqQ,EAAOmE,EAAKxU,KAEhB,GAAa,cAATqQ,EAAsB,OAAO,EAEjC,MAAMq2O,EAAe1kP,OAAOmlL,UAAU92K,GAChCs2O,EAAS3mP,GAASwU,EAAKxV,OAG7B,GAFAqR,GAAQA,GAAQkzO,GAAM5zO,QAAQyJ,GAAUA,EAAOpa,OAASqR,EAEpDs2O,EAOF,OANIpD,GAAMf,WAAWppO,EAAQ/I,GAC3B+I,EAAO/I,GAAQ,CAAC+I,EAAO/I,GAAOxR,GAE9Bua,EAAO/I,GAAQxR,GAGT6nP,EAGLttO,EAAO/I,IAAUkzO,GAAMpE,SAAS/lO,EAAO/I,MAC1C+I,EAAO/I,GAAQ,IASjB,OANeo2O,EAAUjyO,EAAM3V,EAAOua,EAAO/I,GAAOrQ,IAEtCujP,GAAM5zO,QAAQyJ,EAAO/I,MACjC+I,EAAO/I,GA/Cb,SAAuBi9B,GACrB,MAAMvyB,EAAM,CAAC,EACPzY,EAAOkL,OAAOlL,KAAKgrC,GACzB,IAAIxsC,EACJ,MAAMyqC,EAAMjpC,EAAKtD,OACjB,IAAIqN,EACJ,IAAKvL,EAAI,EAAGA,EAAIyqC,EAAKzqC,IACnBuL,EAAM/J,EAAKxB,GACXia,EAAI1O,GAAOihC,EAAIjhC,GAEjB,OAAO0O,CACT,CAoCqB6rO,CAAcxtO,EAAO/I,MAG9Bq2O,CACV,CAEA,GAAInD,GAAMnC,WAAW6C,IAAaV,GAAMtE,WAAWgF,EAASpiG,SAAU,CACpE,MAAM9mI,EAAM,CAAC,EAMb,OAJAwoO,GAAMjB,aAAa2B,GAAU,CAAC5zO,EAAMxR,KAClC4nP,EA1EN,SAAuBp2O,GAKrB,OAAOkzO,GAAMhB,SAAS,gBAAiBlyO,GAAMvQ,KAAID,GAC3B,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,IAEtD,CAkEgBgnP,CAAcx2O,GAAOxR,EAAOkc,EAAK,EAAE,IAGxCA,CACT,CAEA,OAAO,IACT,ECzDA,MAAM+rO,GAAW,CAEfC,aAAcC,GAEdC,QAAS,CAAC,MAAO,OAAQ,SAEzBC,iBAAkB,CAAC,SAA0B5jO,EAAM6jO,GACjD,MAAMC,EAAcD,EAAQE,kBAAoB,GAC1CC,EAAqBF,EAAY9mP,QAAQ,qBAAuB,EAChEinP,EAAkBhE,GAAMpE,SAAS77N,GAEnCikO,GAAmBhE,GAAMpD,WAAW78N,KACtCA,EAAO,IAAIg+N,SAASh+N,IAKtB,GAFmBigO,GAAMnC,WAAW99N,GAGlC,OAAOgkO,EAAqBh8O,KAAKC,UAAUi8O,GAAelkO,IAASA,EAGrE,GAAIigO,GAAMxE,cAAcz7N,IACtBigO,GAAMpC,SAAS79N,IACfigO,GAAM9B,SAASn+N,IACfigO,GAAMlE,OAAO/7N,IACbigO,GAAMjE,OAAOh8N,IACbigO,GAAM9D,iBAAiBn8N,GAEvB,OAAOA,EAET,GAAIigO,GAAMhC,kBAAkBj+N,GAC1B,OAAOA,EAAK24E,OAEd,GAAIsnJ,GAAM/D,kBAAkBl8N,GAE1B,OADA6jO,EAAQM,eAAe,mDAAmD,GACnEnkO,EAAK/D,WAGd,IAAIggO,EAEJ,GAAIgI,EAAiB,CACnB,GAAIH,EAAY9mP,QAAQ,sCAAwC,EAC9D,OCvEO,SAA0BgjB,EAAMna,GAC7C,OAAO67O,GAAW1hO,EAAM,IAAIkjO,GAAS11O,QAAQi1O,gBAAmBv4O,OAAO+rB,OAAO,CAC5E6qN,QAAS,SAASvlP,EAAOwN,EAAKmI,EAAMkzO,GAClC,OAAIlB,GAASmB,QAAUpE,GAAMpC,SAAStiP,IACpC2T,KAAKyoC,OAAO5uC,EAAKxN,EAAM0gB,SAAS,YACzB,GAGFmoO,EAAQrD,eAAe9xO,MAAMC,KAAMzT,UAC5C,GACCoK,GACL,CD4Dey+O,CAAiBtkO,EAAM9Q,KAAKq1O,gBAAgBtoO,WAGrD,IAAKggO,EAAagE,GAAMhE,WAAWj8N,KAAU8jO,EAAY9mP,QAAQ,wBAA0B,EAAG,CAC5F,MAAMwnP,EAAYt1O,KAAKu1O,KAAOv1O,KAAKu1O,IAAIzG,SAEvC,OAAO0D,GACLzF,EAAa,CAAC,UAAWj8N,GAAQA,EACjCwkO,GAAa,IAAIA,EACjBt1O,KAAKq1O,eAET,CACF,CAEA,OAAIN,GAAmBD,GACrBH,EAAQM,eAAe,oBAAoB,GAxEjD,SAAyBO,EAAUC,EAAQhD,GACzC,GAAI1B,GAAMvE,SAASgJ,GACjB,IAEE,OADCC,GAAU38O,KAAKipC,OAAOyzM,GAChBzE,GAAMh8N,KAAKygO,EACpB,CAAE,MAAO7uN,IACP,GAAe,gBAAXA,GAAE9oB,KACJ,MAAM8oB,EAEV,CAGF,OAAQ8rN,GAAW35O,KAAKC,WAAWy8O,EACrC,CA4DaE,CAAgB5kO,IAGlBA,CACT,GAEA6kO,kBAAmB,CAAC,SAA2B7kO,GAC7C,MAAMyjO,EAAev0O,KAAKu0O,cAAgBD,GAASC,aAC7ClB,EAAoBkB,GAAgBA,EAAalB,kBACjDuC,EAAsC,SAAtB51O,KAAKukC,aAE3B,GAAIwsM,GAAM5D,WAAWr8N,IAASigO,GAAM9D,iBAAiBn8N,GACnD,OAAOA,EAGT,GAAIA,GAAQigO,GAAMvE,SAAS17N,KAAWuiO,IAAsBrzO,KAAKukC,cAAiBqxM,GAAgB,CAChG,MACMC,IADoBtB,GAAgBA,EAAanB,oBACPwC,EAEhD,IACE,OAAO98O,KAAKipC,MAAMjxB,EACpB,CAAE,MAAO6V,IACP,GAAIkvN,EAAmB,CACrB,GAAe,gBAAXlvN,GAAE9oB,KACJ,MAAMgzO,GAAWhhG,KAAKlpH,GAAGkqN,GAAWiF,iBAAkB91O,KAAM,KAAMA,KAAKwkC,UAEzE,MAAM7d,EACR,CACF,CACF,CAEA,OAAO7V,CACT,GAMA5O,QAAS,EAET6zO,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBX,IAAK,CACHzG,SAAUkF,GAAS11O,QAAQwwO,SAC3BzuM,KAAM2zM,GAAS11O,QAAQ+hC,MAGzB81M,eAAgB,SAAwBpxM,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEA4vM,QAAS,CACP9iP,OAAQ,CACN,OAAU,oCACV,oBAAgBpF,KAKtBskP,GAAMngO,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,UAAWqtI,IAChEq2F,GAASK,QAAQ12F,GAAU,CAAC,CAAC,IAG/B,YE1JMm4F,GAAoBrF,GAAMb,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eCLtBmG,GAAanuO,OAAO,aAE1B,SAASouO,GAAgBC,GACvB,OAAOA,GAAU9iO,OAAO8iO,GAAQxhO,OAAO2F,aACzC,CAEA,SAAS87N,GAAenqP,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGF0kP,GAAM5zO,QAAQ9Q,GAASA,EAAMiB,IAAIkpP,IAAkB/iO,OAAOpnB,EACnE,CAgBA,SAASoqP,GAAiBjwJ,EAASn6F,EAAOkqP,EAAQt3N,EAAQy3N,GACxD,OAAI3F,GAAMtE,WAAWxtN,GACZA,EAAO5S,KAAKrM,KAAM3T,EAAOkqP,IAG9BG,IACFrqP,EAAQkqP,GAGLxF,GAAMvE,SAASngP,GAEhB0kP,GAAMvE,SAASvtN,IACiB,IAA3B5yB,EAAMyB,QAAQmxB,GAGnB8xN,GAAMnD,SAAS3uN,GACVA,EAAOzQ,KAAKniB,QADrB,OANA,EASF,CAsBA,MAAMsqP,GACJnuO,WAAAA,CAAYmsO,GACVA,GAAW30O,KAAKmN,IAAIwnO,EACtB,CAEAxnO,GAAAA,CAAIopO,EAAQK,EAAgBC,GAC1B,MAAM5jO,EAAOjT,KAEb,SAAS82O,EAAUpsO,EAAQqsO,EAASC,GAClC,MAAMC,EAAUX,GAAgBS,GAEhC,IAAKE,EACH,MAAM,IAAIjpP,MAAM,0CAGlB,MAAM6L,EAAMk3O,GAAMzD,QAAQr6N,EAAMgkO,KAE5Bp9O,QAAqBpN,IAAdwmB,EAAKpZ,KAAmC,IAAbm9O,QAAmCvqP,IAAbuqP,IAAwC,IAAd/jO,EAAKpZ,MACzFoZ,EAAKpZ,GAAOk9O,GAAWP,GAAe9rO,GAE1C,CAEA,MAAMwsO,EAAaA,CAACvC,EAASqC,IAC3BjG,GAAMngO,QAAQ+jO,GAAS,CAACjqO,EAAQqsO,IAAYD,EAAUpsO,EAAQqsO,EAASC,KAEzE,GAAIjG,GAAM1qN,cAAckwN,IAAWA,aAAkBv2O,KAAKwI,YACxD0uO,EAAWX,EAAQK,QACd,GAAG7F,GAAMvE,SAAS+J,KAAYA,EAASA,EAAOxhO,UArEtB,iCAAiCvG,KAqEmB+nO,EArEVxhO,QAsEvEmiO,ED1EN,CAAeC,IACb,MAAMnyD,EAAS,CAAC,EAChB,IAAInrL,EACAvK,EACAhB,EAsBJ,OApBA6oP,GAAcA,EAAWhpP,MAAM,MAAMyiB,SAAQ,SAAgBu4B,GAC3D76C,EAAI66C,EAAKr7C,QAAQ,KACjB+L,EAAMsvC,EAAKp7C,UAAU,EAAGO,GAAGymB,OAAO2F,cAClCprB,EAAM65C,EAAKp7C,UAAUO,EAAI,GAAGymB,QAEvBlb,GAAQmrL,EAAOnrL,IAAQu8O,GAAkBv8O,KAIlC,eAARA,EACEmrL,EAAOnrL,GACTmrL,EAAOnrL,GAAKzK,KAAKE,GAEjB01L,EAAOnrL,GAAO,CAACvK,GAGjB01L,EAAOnrL,GAAOmrL,EAAOnrL,GAAOmrL,EAAOnrL,GAAO,KAAOvK,EAAMA,EAE3D,IAEO01L,CACR,EC+CgBoyD,CAAab,GAASK,QAC5B,GAAI7F,GAAM3D,UAAUmJ,GACzB,IAAK,MAAO18O,EAAKxN,KAAUkqP,EAAOlnG,UAChCynG,EAAUzqP,EAAOwN,EAAKg9O,QAGd,MAAVN,GAAkBO,EAAUF,EAAgBL,EAAQM,GAGtD,OAAO72O,IACT,CAEA9E,GAAAA,CAAIq7O,EAAQd,GAGV,GAFAc,EAASD,GAAgBC,GAEb,CACV,MAAM18O,EAAMk3O,GAAMzD,QAAQttO,KAAMu2O,GAEhC,GAAI18O,EAAK,CACP,MAAMxN,EAAQ2T,KAAKnG,GAEnB,IAAK47O,EACH,OAAOppP,EAGT,IAAe,IAAXopP,EACF,OA5GV,SAAqB1rO,GACnB,MAAMstO,EAASr8O,OAAO4B,OAAO,MACvB06O,EAAW,mCACjB,IAAIjqP,EAEJ,KAAQA,EAAQiqP,EAASr6F,KAAKlzI,IAC5BstO,EAAOhqP,EAAM,IAAMA,EAAM,GAG3B,OAAOgqP,CACT,CAkGiBE,CAAYlrP,GAGrB,GAAI0kP,GAAMtE,WAAWgJ,GACnB,OAAOA,EAAOppO,KAAKrM,KAAM3T,EAAOwN,GAGlC,GAAIk3O,GAAMnD,SAAS6H,GACjB,OAAOA,EAAOx4F,KAAK5wJ,GAGrB,MAAM,IAAIq8B,UAAU,yCACtB,CACF,CACF,CAEAijG,GAAAA,CAAI4qH,EAAQ57E,GAGV,GAFA47E,EAASD,GAAgBC,GAEb,CACV,MAAM18O,EAAMk3O,GAAMzD,QAAQttO,KAAMu2O,GAEhC,SAAU18O,QAAqBpN,IAAduT,KAAKnG,IAAwB8gK,IAAW87E,GAAiBz2O,EAAMA,KAAKnG,GAAMA,EAAK8gK,GAClG,CAEA,OAAO,CACT,CAEAzmJ,OAAOqiO,EAAQ57E,GACb,MAAM1nJ,EAAOjT,KACb,IAAIw3O,GAAU,EAEd,SAASC,EAAaV,GAGpB,GAFAA,EAAUT,GAAgBS,GAEb,CACX,MAAMl9O,EAAMk3O,GAAMzD,QAAQr6N,EAAM8jO,IAE5Bl9O,GAAS8gK,IAAW87E,GAAiBxjO,EAAMA,EAAKpZ,GAAMA,EAAK8gK,YACtD1nJ,EAAKpZ,GAEZ29O,GAAU,EAEd,CACF,CAQA,OANIzG,GAAM5zO,QAAQo5O,GAChBA,EAAO3lO,QAAQ6mO,GAEfA,EAAalB,GAGRiB,CACT,CAEAh1O,KAAAA,CAAMm4J,GACJ,MAAM7qK,EAAOkL,OAAOlL,KAAKkQ,MACzB,IAAI1R,EAAIwB,EAAKtD,OACTgrP,GAAU,EAEd,KAAOlpP,KAAK,CACV,MAAMuL,EAAM/J,EAAKxB,GACbqsK,IAAW87E,GAAiBz2O,EAAMA,KAAKnG,GAAMA,EAAK8gK,GAAS,YACtD36J,KAAKnG,GACZ29O,GAAU,EAEd,CAEA,OAAOA,CACT,CAEAtgJ,SAAAA,CAAUvtF,GACR,MAAMsJ,EAAOjT,KACP20O,EAAU,CAAC,EAsBjB,OApBA5D,GAAMngO,QAAQ5Q,MAAM,CAAC3T,EAAOkqP,KAC1B,MAAM18O,EAAMk3O,GAAMzD,QAAQqH,EAAS4B,GAEnC,GAAI18O,EAGF,OAFAoZ,EAAKpZ,GAAO28O,GAAenqP,eACpB4mB,EAAKsjO,GAId,MAAMmB,EAAa/tO,EA9JzB,SAAsB4sO,GACpB,OAAOA,EAAOxhO,OACX2F,cAAcxP,QAAQ,mBAAmB,CAAC+b,EAAG6lG,EAAM/iH,IAC3C+iH,EAAKttH,cAAgBuK,GAElC,CAyJkC4tO,CAAapB,GAAU9iO,OAAO8iO,GAAQxhO,OAE9D2iO,IAAenB,UACVtjO,EAAKsjO,GAGdtjO,EAAKykO,GAAclB,GAAenqP,GAElCsoP,EAAQ+C,IAAc,CAAI,IAGrB13O,IACT,CAEA7S,MAAAA,GAAmB,QAAAuN,EAAAnO,UAAAC,OAATorP,EAAO,IAAAh9O,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAP+8O,EAAO/8O,GAAAtO,UAAAsO,GACf,OAAOmF,KAAKwI,YAAYrb,OAAO6S,QAAS43O,EAC1C,CAEA9qO,MAAAA,CAAO+qO,GACL,MAAMtvO,EAAMvN,OAAO4B,OAAO,MAM1B,OAJAm0O,GAAMngO,QAAQ5Q,MAAM,CAAC3T,EAAOkqP,KACjB,MAATlqP,IAA2B,IAAVA,IAAoBkc,EAAIguO,GAAUsB,GAAa9G,GAAM5zO,QAAQ9Q,GAASA,EAAMsB,KAAK,MAAQtB,EAAM,IAG3Gkc,CACT,CAEA,CAACL,OAAOI,YACN,OAAOtN,OAAOq0I,QAAQrvI,KAAK8M,UAAU5E,OAAOI,WAC9C,CAEAyE,QAAAA,GACE,OAAO/R,OAAOq0I,QAAQrvI,KAAK8M,UAAUxf,KAAIuG,IAAA,IAAE0iP,EAAQlqP,GAAMwH,EAAA,OAAK0iP,EAAS,KAAOlqP,CAAK,IAAEsB,KAAK,KAC5F,CAEA,IAAKua,OAAOssJ,eACV,MAAO,cACT,CAEA,WAAO3kB,CAAKs8F,GACV,OAAOA,aAAiBnsO,KAAOmsO,EAAQ,IAAInsO,KAAKmsO,EAClD,CAEA,aAAOh/O,CAAO+jD,GACZ,MAAM/xB,EAAW,IAAInf,KAAKkxC,GAAO,QAAArxC,EAAAtT,UAAAC,OADXorP,EAAO,IAAAh9O,MAAAiF,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAP83O,EAAO93O,EAAA,GAAAvT,UAAAuT,GAK7B,OAFA83O,EAAQhnO,SAAShK,GAAWuY,EAAShS,IAAIvG,KAElCuY,CACT,CAEA,eAAO24N,CAASvB,GACd,MAIMwB,GAJY/3O,KAAKq2O,IAAer2O,KAAKq2O,IAAc,CACvD0B,UAAW,CAAC,IAGcA,UACtBtvO,EAAYzI,KAAKyI,UAEvB,SAASuvO,EAAejB,GACtB,MAAME,EAAUX,GAAgBS,GAE3BgB,EAAUd,MAtNrB,SAAwB1uO,EAAKguO,GAC3B,MAAM0B,EAAelH,GAAMX,YAAY,IAAMmG,GAE7C,CAAC,MAAO,MAAO,OAAO3lO,SAAQqlL,IAC5Bj7L,OAAOC,eAAesN,EAAK0tL,EAAagiD,EAAc,CACpD5rP,MAAO,SAAS6rP,EAAMC,EAAMC,GAC1B,OAAOp4O,KAAKi2L,GAAY5pL,KAAKrM,KAAMu2O,EAAQ2B,EAAMC,EAAMC,EACzD,EACAruN,cAAc,GACd,GAEN,CA4MQsuN,CAAe5vO,EAAWsuO,GAC1BgB,EAAUd,IAAW,EAEzB,CAIA,OAFAlG,GAAM5zO,QAAQo5O,GAAUA,EAAO3lO,QAAQonO,GAAkBA,EAAezB,GAEjEv2O,IACT,EAGF22O,GAAamB,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,kBAGpG/G,GAAMlD,kBAAkB8I,GAAaluO,WAAW,CAAA2Z,EAAUvoB,KAAQ,IAAjB,MAACxN,GAAM+1B,EAClDk2N,EAASz+O,EAAI,GAAG2F,cAAgB3F,EAAI4F,MAAM,GAC9C,MAAO,CACLvE,IAAKA,IAAM7O,EACX8gB,GAAAA,CAAIorO,GACFv4O,KAAKs4O,GAAUC,CACjB,EACD,IAGHxH,GAAMd,cAAc0G,IAEpB,YC/Re,SAASj+K,GAAc8/K,EAAKh0M,GACzC,MAAMpQ,EAASp0B,MAAQs0O,GACjB9tJ,EAAUhiD,GAAYpQ,EACtBugN,EAAUgC,GAAa9mG,KAAKrpD,EAAQmuJ,SAC1C,IAAI7jO,EAAO01E,EAAQ11E,KAQnB,OANAigO,GAAMngO,QAAQ4nO,GAAK,SAAmBzzO,GACpC+L,EAAO/L,EAAGsH,KAAK+nB,EAAQtjB,EAAM6jO,EAAQz9I,YAAa1yD,EAAWA,EAASO,YAASt4C,EACjF,IAEAkoP,EAAQz9I,YAEDpmF,CACT,CCzBe,SAAS2nO,GAASpsP,GAC/B,SAAUA,IAASA,EAAMqsP,WAC3B,CCUA,SAASC,GAAcn8G,EAASpoG,EAAQypH,GAEtCgzF,GAAWxkO,KAAKrM,KAAiB,MAAXw8H,EAAkB,WAAaA,EAASq0G,GAAW+H,aAAcxkN,EAAQypH,GAC/F79I,KAAKnC,KAAO,eACd,CAEAkzO,GAAMzB,SAASqJ,GAAe9H,GAAY,CACxC6H,YAAY,IAGd,YCXe,SAASG,GAAO9qH,EAAS4vB,EAAQn5G,GAC9C,MAAM2xM,EAAiB3xM,EAASpQ,OAAO+hN,eAClC3xM,EAASO,QAAWoxM,IAAkBA,EAAe3xM,EAASO,QAGjE44G,EAAO,IAAIkzF,GACT,mCAAqCrsM,EAASO,OAC9C,CAAC8rM,GAAWiI,gBAAiBjI,GAAWiF,kBAAkBnpP,KAAKmvC,MAAM0I,EAASO,OAAS,KAAO,GAC9FP,EAASpQ,OACToQ,EAASq5G,QACTr5G,IAPFupF,EAAQvpF,EAUZ,CC4BA,SA9CA,SAAqBu0M,EAAczsP,GACjCysP,EAAeA,GAAgB,GAC/B,MAAMC,EAAQ,IAAIp+O,MAAMm+O,GAClBE,EAAa,IAAIr+O,MAAMm+O,GAC7B,IAEIG,EAFAtkO,EAAO,EACP0rH,EAAO,EAKX,OAFAh0I,OAAcG,IAARH,EAAoBA,EAAM,IAEzB,SAAc6sP,GACnB,MAAM1gO,EAAMC,KAAKD,MAEX2gO,EAAYH,EAAW34G,GAExB44G,IACHA,EAAgBzgO,GAGlBugO,EAAMpkO,GAAQukO,EACdF,EAAWrkO,GAAQ6D,EAEnB,IAAInqB,EAAIgyI,EACJ+4G,EAAa,EAEjB,KAAO/qP,IAAMsmB,GACXykO,GAAcL,EAAM1qP,KACpBA,GAAQyqP,EASV,GANAnkO,GAAQA,EAAO,GAAKmkO,EAEhBnkO,IAAS0rH,IACXA,GAAQA,EAAO,GAAKy4G,GAGlBtgO,EAAMygO,EAAgB5sP,EACxB,OAGF,MAAMgtP,EAASF,GAAa3gO,EAAM2gO,EAElC,OAAOE,EAAS3sP,KAAKe,MAAmB,IAAb2rP,EAAoBC,QAAU7sP,CAC3D,CACF,ECTA,SArCA,SAAkBsY,EAAIk1F,GACpB,IAEIkS,EACAu3C,EAHAk1B,EAAY,EACZz+F,EAAY,IAAO8f,EAIvB,MAAMs/I,EAAS,SAAC5+O,GAA2B,IAArB8d,EAAGlsB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGmsB,KAAKD,MAC/BmgK,EAAYngK,EACZ0zF,EAAW,KACPu3C,IACFphJ,aAAaohJ,GACbA,EAAQ,MAEV3+I,EAAGhF,MAAM,KAAMpF,EACjB,EAoBA,MAAO,CAlBW,WAChB,MAAM8d,EAAMC,KAAKD,MACX6gO,EAAS7gO,EAAMmgK,EAAU,QAAAl+K,EAAAnO,UAAAC,OAFXmO,EAAI,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJF,EAAIE,GAAAtO,UAAAsO,GAGnBy+O,GAAUn/J,EACbo/J,EAAO5+O,EAAM8d,IAEb0zF,EAAWxxG,EACN+oJ,IACHA,EAAQnhJ,YAAW,KACjBmhJ,EAAQ,KACR61F,EAAOptI,EAAS,GACfhyB,EAAYm/J,IAGrB,EAEcvwN,IAAMojF,GAAYotI,EAAOptI,GAGzC,ECrCaqtI,GAAuB,SAAC1kN,EAAU2kN,GAA+B,IAAbx/I,EAAI1tG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAClEmtP,EAAgB,EACpB,MAAMC,EAAeC,GAAY,GAAI,KAErC,OAAOC,IAASlzN,IACd,MAAME,EAASF,EAAEE,OACXkkI,EAAQpkI,EAAEmzN,iBAAmBnzN,EAAEokI,WAAQt+J,EACvCstP,EAAgBlzN,EAAS6yN,EACzBt/M,EAAOu/M,EAAaI,GAG1BL,EAAgB7yN,EAchBiO,EAZa,CACXjO,SACAkkI,QACAla,SAAUka,EAASlkI,EAASkkI,OAASt+J,EACrCusP,MAAOe,EACP3/M,KAAMA,QAAc3tC,EACpButP,UAAW5/M,GAAQ2wH,GAVLlkI,GAAUkkI,GAUeA,EAAQlkI,GAAUuT,OAAO3tC,EAChE2Z,MAAOugB,EACPmzN,iBAA2B,MAAT/uF,EAClB,CAAC0uF,EAAmB,WAAa,WAAW,GAGhC,GACbx/I,EACL,EAEaggJ,GAAyBA,CAAClvF,EAAOmvF,KAC5C,MAAMJ,EAA4B,MAAT/uF,EAEzB,MAAO,CAAElkI,GAAWqzN,EAAU,GAAG,CAC/BJ,mBACA/uF,QACAlkI,WACEqzN,EAAU,GAAG,EAGNC,GAAkBp1O,GAAO,mBAAArK,EAAAnO,UAAAC,OAAImO,EAAI,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJF,EAAIE,GAAAtO,UAAAsO,GAAA,OAAKk2O,GAAMtC,MAAK,IAAM1pO,KAAMpK,IAAM,ECtChF,GAAeq5O,GAASL,sBAIrB,WACC,MAAMyG,EAAOpG,GAASpqN,WAAa,kBAAkBpb,KAAKwlO,GAASpqN,UAAUC,WACvEwwN,EAAiB71O,SAASsD,cAAc,KAC9C,IAAIwyO,EAQJ,SAASC,EAAW90O,GAClB,IAAIolD,EAAOplD,EAWX,OATI20O,IAEFC,EAAerkO,aAAa,OAAQ60C,GACpCA,EAAOwvL,EAAexvL,MAGxBwvL,EAAerkO,aAAa,OAAQ60C,GAG7B,CACLA,KAAMwvL,EAAexvL,KACrB2vL,SAAUH,EAAeG,SAAWH,EAAeG,SAAStvO,QAAQ,KAAM,IAAM,GAChFuvO,KAAMJ,EAAeI,KACrBj1O,OAAQ60O,EAAe70O,OAAS60O,EAAe70O,OAAO0F,QAAQ,MAAO,IAAM,GAC3E6qJ,KAAMskF,EAAetkF,KAAOskF,EAAetkF,KAAK7qJ,QAAQ,KAAM,IAAM,GACpEwvO,SAAUL,EAAeK,SACzBC,KAAMN,EAAeM,KACrBl1M,SAAiD,MAAtC40M,EAAe50M,SAAS14C,OAAO,GACxCstP,EAAe50M,SACf,IAAM40M,EAAe50M,SAE3B,CAUA,OARA60M,EAAYC,EAAW51O,OAAOvB,SAASynD,MAQhC,SAAyB+vL,GAC9B,MAAM51D,EAAU+rD,GAAMvE,SAASoO,GAAeL,EAAWK,GAAcA,EACvE,OAAQ51D,EAAOw1D,WAAaF,EAAUE,UAClCx1D,EAAOy1D,OAASH,EAAUG,IAChC,CACF,CAlDC,GAsDQ,WACL,OAAO,CACT,EC9DJ,GAAezG,GAASL,sBAGtB,CACEkH,KAAAA,CAAMh9O,EAAMxR,EAAOyuP,EAAS94O,EAAM+4O,EAAQC,GACxC,MAAMC,EAAS,CAACp9O,EAAO,IAAM4oB,mBAAmBp6B,IAEhD0kP,GAAMrE,SAASoO,IAAYG,EAAO7rP,KAAK,WAAa,IAAIspB,KAAKoiO,GAASI,eAEtEnK,GAAMvE,SAASxqO,IAASi5O,EAAO7rP,KAAK,QAAU4S,GAE9C+uO,GAAMvE,SAASuO,IAAWE,EAAO7rP,KAAK,UAAY2rP,IAEvC,IAAXC,GAAmBC,EAAO7rP,KAAK,UAE/BoV,SAASy2O,OAASA,EAAOttP,KAAK,KAChC,EAEA8rL,IAAAA,CAAK57K,GACH,MAAMxQ,EAAQmX,SAASy2O,OAAO5tP,MAAM,IAAIH,OAAO,aAAe2Q,EAAO,cACrE,OAAQxQ,EAAQs+D,mBAAmBt+D,EAAM,IAAM,IACjD,EAEAwe,MAAAA,CAAOhO,GACLmC,KAAK66O,MAAMh9O,EAAM,GAAI6a,KAAKD,MAAQ,MACpC,GAMF,CACEoiO,KAAAA,GAAS,EACTphE,KAAIA,IACK,KAET5tK,MAAAA,GAAU,GCxBC,SAASsvO,GAAcC,EAASC,GAC7C,OAAID,ICHG,8BAA8B5sO,KDGP6sO,GENjB,SAAqBD,EAASE,GAC3C,OAAOA,EACHF,EAAQlwO,QAAQ,SAAU,IAAM,IAAMowO,EAAYpwO,QAAQ,OAAQ,IAClEkwO,CACN,CFGWG,CAAYH,EAASC,GAEvBA,CACT,CGfA,MAAMG,GAAmBrP,GAAUA,aAAiBwK,GAAe,IAAKxK,GAAUA,EAWnE,SAASsP,GAAYC,EAASC,GAE3CA,EAAUA,GAAW,CAAC,EACtB,MAAMvnN,EAAS,CAAC,EAEhB,SAASwnN,EAAeh1O,EAAQ0f,EAAQ4oN,GACtC,OAAI6B,GAAM1qN,cAAczf,IAAWmqO,GAAM1qN,cAAcC,GAC9CyqN,GAAM7qN,MAAM7Z,KAAK,CAAC6iO,YAAWtoO,EAAQ0f,GACnCyqN,GAAM1qN,cAAcC,GACtByqN,GAAM7qN,MAAM,CAAC,EAAGI,GACdyqN,GAAM5zO,QAAQmpB,GAChBA,EAAO7mB,QAET6mB,CACT,CAGA,SAASu1N,EAAoB5sP,EAAG21B,EAAGsqN,GACjC,OAAK6B,GAAMzE,YAAY1nN,GAEXmsN,GAAMzE,YAAYr9O,QAAvB,EACE2sP,OAAenvP,EAAWwC,EAAGigP,GAF7B0M,EAAe3sP,EAAG21B,EAAGsqN,EAIhC,CAGA,SAAS4M,EAAiB7sP,EAAG21B,GAC3B,IAAKmsN,GAAMzE,YAAY1nN,GACrB,OAAOg3N,OAAenvP,EAAWm4B,EAErC,CAGA,SAASm3N,EAAiB9sP,EAAG21B,GAC3B,OAAKmsN,GAAMzE,YAAY1nN,GAEXmsN,GAAMzE,YAAYr9O,QAAvB,EACE2sP,OAAenvP,EAAWwC,GAF1B2sP,OAAenvP,EAAWm4B,EAIrC,CAGA,SAASo3N,EAAgB/sP,EAAG21B,EAAGpa,GAC7B,OAAIA,KAAQmxO,EACHC,EAAe3sP,EAAG21B,GAChBpa,KAAQkxO,EACVE,OAAenvP,EAAWwC,QAD5B,CAGT,CAEA,MAAMgtP,EAAW,CACfx2O,IAAKq2O,EACL79F,OAAQ69F,EACRhrO,KAAMgrO,EACNV,QAASW,EACTrH,iBAAkBqH,EAClBpG,kBAAmBoG,EACnBG,iBAAkBH,EAClB75O,QAAS65O,EACTI,eAAgBJ,EAChBK,gBAAiBL,EACjBM,cAAeN,EACftH,QAASsH,EACTx3M,aAAcw3M,EACdhG,eAAgBgG,EAChB/F,eAAgB+F,EAChBO,iBAAkBP,EAClBQ,mBAAoBR,EACpBS,WAAYT,EACZ9F,iBAAkB8F,EAClB7F,cAAe6F,EACfU,eAAgBV,EAChBW,UAAWX,EACXY,UAAWZ,EACXa,WAAYb,EACZc,YAAad,EACbe,WAAYf,EACZgB,iBAAkBhB,EAClB5F,eAAgB6F,EAChBrH,QAASA,CAAC1lP,EAAG21B,IAAMi3N,EAAoBL,GAAgBvsP,GAAIusP,GAAgB52N,IAAI,IASjF,OANAmsN,GAAMngO,QAAQ5V,OAAOlL,KAAKkL,OAAO+rB,OAAO,CAAC,EAAG20N,EAASC,KAAW,SAA4BnxO,GAC1F,MAAM0b,EAAQ+1N,EAASzxO,IAASqxO,EAC1BmB,EAAc92N,EAAMw1N,EAAQlxO,GAAOmxO,EAAQnxO,GAAOA,GACvDumO,GAAMzE,YAAY0Q,IAAgB92N,IAAU81N,IAAqB5nN,EAAO5pB,GAAQwyO,EACnF,IAEO5oN,CACT,CChGA,SAAgBA,IACd,MAAM6oN,EAAYxB,GAAY,CAAC,EAAGrnN,GAElC,IAaIwgN,GAbA,KAAC9jO,EAAI,cAAEurO,EAAa,eAAErG,EAAc,eAAED,EAAc,QAAEpB,EAAO,KAAEuI,GAAQD,EAe3E,GAbAA,EAAUtI,QAAUA,EAAUgC,GAAa9mG,KAAK8kG,GAEhDsI,EAAUx3O,IAAMktO,GAASwI,GAAc8B,EAAU7B,QAAS6B,EAAUx3O,KAAM2uB,EAAOhsB,OAAQgsB,EAAO8nN,kBAG5FgB,GACFvI,EAAQxnO,IAAI,gBAAiB,SAC3BgwO,MAAMD,EAAKE,UAAY,IAAM,KAAOF,EAAKt3O,SAAWy3O,SAAS52N,mBAAmBy2N,EAAKt3O,WAAa,MAMlGmrO,GAAMnC,WAAW99N,GACnB,GAAIkjO,GAASL,uBAAyBK,GAASH,+BAC7Cc,EAAQM,oBAAexoP,QAClB,IAAiD,KAA5CmoP,EAAcD,EAAQE,kBAA6B,CAE7D,MAAO/nP,KAASuqP,GAAUzC,EAAcA,EAAYzmP,MAAM,KAAKb,KAAI4xL,GAASA,EAAMnqK,SAAQkK,OAAO1I,SAAW,GAC5Go+N,EAAQM,eAAe,CAACnoP,GAAQ,yBAA0BuqP,GAAQ1pP,KAAK,MACzE,CAOF,GAAIqmP,GAASL,wBACX0I,GAAiBtL,GAAMtE,WAAW4P,KAAmBA,EAAgBA,EAAcY,IAE/EZ,IAAoC,IAAlBA,GAA2BiB,GAAgBL,EAAUx3O,MAAO,CAEhF,MAAM83O,EAAYvH,GAAkBD,GAAkByH,GAAQ/jE,KAAKs8D,GAE/DwH,GACF5I,EAAQxnO,IAAI6oO,EAAgBuH,EAEhC,CAGF,OAAON,CACR,EC1CD,GAFwD,qBAAnBn4M,gBAEG,SAAU1Q,GAChD,OAAO,IAAIw5F,SAAQ,SAA4BG,EAAS4vB,GACtD,MAAM8/F,EAAUC,GAActpN,GAC9B,IAAIupN,EAAcF,EAAQ3sO,KAC1B,MAAM8sO,EAAiBjH,GAAa9mG,KAAK4tG,EAAQ9I,SAASz9I,YAC1D,IACI2mJ,EACAC,EAAiBC,EACjBC,EAAaC,GAHb,aAAC15M,EAAY,iBAAE+3M,EAAgB,mBAAEC,GAAsBkB,EAK3D,SAAS1qH,IACPirH,GAAeA,IACfC,GAAiBA,IAEjBR,EAAQZ,aAAeY,EAAQZ,YAAYjvF,YAAYiwF,GAEvDJ,EAAQS,QAAUT,EAAQS,OAAOlpN,oBAAoB,QAAS6oN,EAChE,CAEA,IAAIhgG,EAAU,IAAI/4G,eAOlB,SAASq5M,IACP,IAAKtgG,EACH,OAGF,MAAMugG,EAAkBzH,GAAa9mG,KACnC,0BAA2BgO,GAAWA,EAAQwgG,yBAahDxF,IAAO,SAAkBxsP,GACvB0hI,EAAQ1hI,GACR0mI,GACF,IAAG,SAAiBh/G,GAClB4pI,EAAO5pI,GACPg/G,GACF,GAfiB,CACfjiH,KAHoByzB,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxCs5G,EAAQr5G,SAA/Bq5G,EAAQp5G,aAGRM,OAAQ84G,EAAQ94G,OAChB63H,WAAY/e,EAAQ+e,WACpB+3E,QAASyJ,EACThqN,SACAypH,YAYFA,EAAU,IACZ,CAlCAA,EAAQ74G,KAAKy4M,EAAQx/F,OAAOz+I,cAAei+O,EAAQh4O,KAAK,GAGxDo4I,EAAQ37I,QAAUu7O,EAAQv7O,QAiCtB,cAAe27I,EAEjBA,EAAQsgG,UAAYA,EAGpBtgG,EAAQ/sH,mBAAqB,WACtB+sH,GAAkC,IAAvBA,EAAQ11H,aAQD,IAAnB01H,EAAQ94G,QAAkB84G,EAAQygG,aAAwD,IAAzCzgG,EAAQygG,YAAYxwP,QAAQ,WAKjFyU,WAAW47O,EACb,EAIFtgG,EAAQ0gG,QAAU,WACX1gG,IAILF,EAAO,IAAIkzF,GAAW,kBAAmBA,GAAW2N,aAAcpqN,EAAQypH,IAG1EA,EAAU,KACZ,EAGAA,EAAQltH,QAAU,WAGhBgtH,EAAO,IAAIkzF,GAAW,gBAAiBA,GAAW4N,YAAarqN,EAAQypH,IAGvEA,EAAU,IACZ,EAGAA,EAAQ6gG,UAAY,WAClB,IAAIC,EAAsBlB,EAAQv7O,QAAU,cAAgBu7O,EAAQv7O,QAAU,cAAgB,mBAC9F,MAAMqyO,EAAekJ,EAAQlJ,cAAgBC,GACzCiJ,EAAQkB,sBACVA,EAAsBlB,EAAQkB,qBAEhChhG,EAAO,IAAIkzF,GACT8N,EACApK,EAAajB,oBAAsBzC,GAAW+N,UAAY/N,GAAW2N,aACrEpqN,EACAypH,IAGFA,EAAU,IACZ,OAGgBpxJ,IAAhBkxP,GAA6BC,EAAe3I,eAAe,MAGvD,qBAAsBp3F,GACxBkzF,GAAMngO,QAAQgtO,EAAe9wO,UAAU,SAA0Bxd,EAAKuK,GACpEgkJ,EAAQghG,iBAAiBhlP,EAAKvK,EAChC,IAIGyhP,GAAMzE,YAAYmR,EAAQrB,mBAC7Bv+F,EAAQu+F,kBAAoBqB,EAAQrB,iBAIlC73M,GAAiC,SAAjBA,IAClBs5G,EAAQt5G,aAAek5M,EAAQl5M,cAI7Bg4M,KACAwB,EAAmBE,GAAiBzE,GAAqB+C,GAAoB,GAC/E1+F,EAAQr2I,iBAAiB,WAAYu2O,IAInCzB,GAAoBz+F,EAAQihG,UAC5BhB,EAAiBE,GAAexE,GAAqB8C,GAEvDz+F,EAAQihG,OAAOt3O,iBAAiB,WAAYs2O,GAE5CjgG,EAAQihG,OAAOt3O,iBAAiB,UAAWw2O,KAGzCP,EAAQZ,aAAeY,EAAQS,UAGjCL,EAAa/0N,IACN+0H,IAGLF,GAAQ70H,GAAUA,EAAOh8B,KAAO,IAAI6rP,GAAc,KAAMvkN,EAAQypH,GAAW/0H,GAC3E+0H,EAAQkhG,QACRlhG,EAAU,KAAI,EAGhB4/F,EAAQZ,aAAeY,EAAQZ,YAAYlvF,UAAUkwF,GACjDJ,EAAQS,SACVT,EAAQS,OAAOc,QAAUnB,IAAeJ,EAAQS,OAAO12O,iBAAiB,QAASq2O,KAIrF,MAAMrD,ECvLK,SAAuB/0O,GACpC,MAAMpY,EAAQ,4BAA4B4vJ,KAAKx3I,GAC/C,OAAOpY,GAASA,EAAM,IAAM,EAC9B,CDoLqB4xP,CAAcxB,EAAQh4O,KAEnC+0O,IAAsD,IAA1CxG,GAASR,UAAU1lP,QAAQ0sP,GACzC78F,EAAO,IAAIkzF,GAAW,wBAA0B2J,EAAW,IAAK3J,GAAWiI,gBAAiB1kN,IAM9FypH,EAAQ54G,KAAK04M,GAAe,KAC9B,GACF,EErJA,GA3CuBuB,CAACC,EAASj9O,KAC/B,MAAM,OAAC1V,GAAW2yP,EAAUA,EAAUA,EAAQlgO,OAAO1I,SAAW,GAEhE,GAAIrU,GAAW1V,EAAQ,CACrB,IAEIwyP,EAFAI,EAAa,IAAIC,gBAIrB,MAAMd,EAAU,SAAU57O,GACxB,IAAKq8O,EAAS,CACZA,GAAU,EACVpxF,IACA,MAAM75I,EAAMpR,aAAkB3U,MAAQ2U,EAAS3C,KAAK2C,OACpDy8O,EAAWL,MAAMhrO,aAAe88N,GAAa98N,EAAM,IAAI4kO,GAAc5kO,aAAe/lB,MAAQ+lB,EAAIyoH,QAAUzoH,GAC5G,CACF,EAEA,IAAI2vI,EAAQxhJ,GAAWK,YAAW,KAChCmhJ,EAAQ,KACR66F,EAAQ,IAAI1N,GAAW,WAAW3uO,mBAA0B2uO,GAAW+N,WAAW,GACjF18O,GAEH,MAAM0rJ,EAAcA,KACduxF,IACFz7F,GAASphJ,aAAaohJ,GACtBA,EAAQ,KACRy7F,EAAQvuO,SAAQstO,IACdA,EAAOtwF,YAAcswF,EAAOtwF,YAAY2wF,GAAWL,EAAOlpN,oBAAoB,QAASupN,EAAQ,IAEjGY,EAAU,KACZ,EAGFA,EAAQvuO,SAASstO,GAAWA,EAAO12O,iBAAiB,QAAS+2O,KAE7D,MAAM,OAACL,GAAUkB,EAIjB,OAFAlB,EAAOtwF,YAAc,IAAMmjF,GAAMtC,KAAK7gF,GAE/BswF,CACT,GC3CWoB,GAAc,UAAWC,EAAOC,GAC3C,IAAIzmN,EAAMwmN,EAAME,WAEhB,IAAKD,GAAazmN,EAAMymN,EAEtB,kBADMD,GAIR,IACIvlP,EADAg9B,EAAM,EAGV,KAAOA,EAAM+B,GACX/+B,EAAMg9B,EAAMwoN,QACND,EAAM9/O,MAAMu3B,EAAKh9B,GACvBg9B,EAAMh9B,CAEV,EAQM0lP,GAAazuN,gBAAiB0uN,GAClC,GAAIA,EAAOz3O,OAAO03O,eAEhB,kBADOD,GAIT,MAAME,EAASF,EAAOG,YACtB,IACE,OAAS,CACP,MAAM,KAAC/sH,EAAI,MAAE1mI,SAAewzP,EAAOpmE,OACnC,GAAI1mD,EACF,YAEI1mI,CACR,CACF,CAAE,cACMwzP,EAAO/2N,QACf,CACF,EAEai3N,GAAcA,CAACJ,EAAQH,EAAWluG,EAAY0uG,KACzD,MAAM13O,EA3BiB2oB,gBAAiBgvN,EAAUT,GAClD,UAAW,MAAMD,KAASG,GAAWO,SAC5BX,GAAYC,EAAOC,EAE9B,CAuBmBU,CAAUP,EAAQH,GAEnC,IACIzsH,EADAimH,EAAQ,EAERmH,EAAax5N,IACVosG,IACHA,GAAO,EACPitH,GAAYA,EAASr5N,GACvB,EAGF,OAAO,IAAIy5N,eAAe,CACxB,UAAMC,CAAKjB,GACT,IACE,MAAM,KAACrsH,EAAI,MAAE1mI,SAAeic,EAASikB,OAErC,GAAIwmG,EAGF,OAFDotH,SACCf,EAAWkB,QAIb,IAAIvnN,EAAM1sC,EAAMozP,WAChB,GAAInuG,EAAY,CACd,IAAIivG,EAAcvH,GAASjgN,EAC3Bu4G,EAAWivG,EACb,CACAnB,EAAWoB,QAAQ,IAAIpsJ,WAAW/nG,GACpC,CAAE,MAAO0nB,GAEP,MADAosO,EAAUpsO,GACJA,CACR,CACF,EACA+U,OAAOnmB,IACLw9O,EAAUx9O,GACH2F,EAASuxG,WAEjB,CACD4mI,cAAe,GACf,EC3EEC,GAAoC,oBAAVtrJ,OAA2C,oBAAZurJ,SAA8C,oBAAbC,SAC1FC,GAA4BH,IAA8C,oBAAnBN,eAGvDU,GAAaJ,KAA4C,oBAAhBK,aACzCtO,GAA0C,IAAIsO,YAAjCh3O,GAAQ0oO,GAAQL,OAAOroO,IACtCknB,SAAe,IAAImjE,iBAAiB,IAAIwsJ,SAAS72O,GAAKi3O,gBADtD,IAAEvO,GAIN,MAAMjkO,GAAO,SAACzJ,GACZ,IAAI,QAAArK,EAAAnO,UAAAC,OADemO,EAAI,IAAAC,MAAAF,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJF,EAAIE,EAAA,GAAAtO,UAAAsO,GAErB,QAASkK,KAAMpK,EACjB,CAAE,MAAOgsB,IACP,OAAO,CACT,CACF,EAEMs6N,GAAwBJ,IAA6BryO,IAAK,KAC9D,IAAI0yO,GAAiB,EAErB,MAAMC,EAAiB,IAAIR,QAAQ3M,GAASxuM,OAAQ,CAClDgM,KAAM,IAAI4uM,eACVniG,OAAQ,OACR,UAAImjG,GAEF,OADAF,GAAiB,EACV,MACT,IACCvM,QAAQhpH,IAAI,gBAEf,OAAOu1H,IAAmBC,CAAc,IAKpCE,GAAyBR,IAC7BryO,IAAK,IAAMuiO,GAAM9D,iBAAiB,IAAI2T,SAAS,IAAIpvM,QAG/C8vM,GAAY,CAChB3B,OAAQ0B,IAA0B,CAAEE,GAAQA,EAAI/vM,OAG7B,IAAE+vM,GAAvBb,KAAuBa,GAOpB,IAAIX,SANL,CAAC,OAAQ,cAAe,OAAQ,WAAY,UAAUhwO,SAAQ9jB,KAC3Dw0P,GAAUx0P,KAAUw0P,GAAUx0P,GAAQikP,GAAMtE,WAAW8U,GAAIz0P,IAAUy0P,GAAQA,EAAIz0P,KAChF,CAACi7B,EAAGqM,KACF,MAAM,IAAIy8M,GAAW,kBAAkB/jP,sBAA0B+jP,GAAW2Q,gBAAiBptN,EAAO,EACpG,KAIR,MA8BMqtN,GAAoBxwN,MAAO0jN,EAASnjM,KACxC,MAAMhlD,EAASukP,GAAMV,eAAesE,EAAQ+M,oBAE5C,OAAiB,MAAVl1P,EAjCaykC,WACpB,GAAY,MAARugB,EACF,OAAO,EAGT,GAAGu/L,GAAMjE,OAAOt7L,GACd,OAAOA,EAAKt8C,KAGd,GAAG67O,GAAMP,oBAAoBh/L,GAAO,CAClC,MAAMmwM,EAAW,IAAIhB,QAAQ3M,GAASxuM,OAAQ,CAC5Cy4G,OAAQ,OACRzsG,SAEF,aAAcmwM,EAASX,eAAevB,UACxC,CAEA,OAAG1O,GAAMhC,kBAAkBv9L,IAASu/L,GAAMxE,cAAc/6L,GAC/CA,EAAKiuM,YAGX1O,GAAM/D,kBAAkBx7L,KACzBA,GAAc,IAGbu/L,GAAMvE,SAASh7L,UACFsvM,GAAWtvM,IAAOiuM,gBADlC,EAEA,EAMwBmC,CAAcpwM,GAAQhlD,CAAM,EAGtD,GAAek0P,IAAoB,OAACzvN,IAClC,IAAI,IACFxrB,EAAG,OACHw4I,EAAM,KACNntI,EAAI,OACJotO,EAAM,YACNrB,EAAW,QACX36O,EAAO,mBACPq6O,EAAkB,iBAClBD,EAAgB,aAChB/3M,EAAY,QACZowM,EAAO,gBACPyH,EAAkB,cAAa,aAC/ByF,GACEnE,GAActpN,GAElBmQ,EAAeA,GAAgBA,EAAe,IAAI7pB,cAAgB,OAElE,IAEImjI,EAFAikG,EAAiB5C,GAAe,CAAChB,EAAQrB,GAAeA,EAAYkF,iBAAkB7/O,GAI1F,MAAM0rJ,EAAck0F,GAAkBA,EAAel0F,aAAe,MAChEk0F,EAAel0F,aAClB,GAED,IAAIo0F,EAEJ,IACE,GACE1F,GAAoB2E,IAAoC,QAAXhjG,GAA+B,SAAXA,GACG,KAAnE+jG,QAA6BP,GAAkB9M,EAAS7jO,IACzD,CACA,IAMIuzB,EANAs9M,EAAW,IAAIhB,QAAQl7O,EAAK,CAC9Bw4I,OAAQ,OACRzsG,KAAM1gC,EACNswO,OAAQ,SASV,GAJIrQ,GAAMnC,WAAW99N,KAAUuzB,EAAoBs9M,EAAShN,QAAQz5O,IAAI,kBACtEy5O,EAAQM,eAAe5wM,GAGrBs9M,EAASnwM,KAAM,CACjB,MAAO8/F,EAAYvoH,GAASkxN,GAC1B+H,EACAxI,GAAqBW,GAAemC,KAGtCxrO,EAAOivO,GAAY4B,EAASnwM,KA1GT,MA0GmC8/F,EAAYvoH,EACpE,CACF,CAEKgoN,GAAMvE,SAAS4P,KAClBA,EAAkBA,EAAkB,UAAY,QAKlD,MAAM6F,EAAyB,gBAAiBtB,QAAQl4O,UACxDo1I,EAAU,IAAI8iG,QAAQl7O,EAAK,IACtBo8O,EACH3D,OAAQ4D,EACR7jG,OAAQA,EAAOz+I,cACfm1O,QAASA,EAAQz9I,YAAYpqF,SAC7B0kC,KAAM1gC,EACNswO,OAAQ,OACRc,YAAaD,EAAyB7F,OAAkB3vP,IAG1D,IAAI+3C,QAAiB4wD,MAAMyoD,GAE3B,MAAMskG,EAAmBd,KAA4C,WAAjB98M,GAA8C,aAAjBA,GAEjF,GAAI88M,KAA2B9E,GAAuB4F,GAAoBv0F,GAAe,CACvF,MAAMj3J,EAAU,CAAC,EAEjB,CAAC,SAAU,aAAc,WAAWia,SAAQpG,IAC1C7T,EAAQ6T,GAAQg6B,EAASh6B,EAAK,IAGhC,MAAM43O,EAAwBrR,GAAMV,eAAe7rM,EAASmwM,QAAQz5O,IAAI,oBAEjEo2I,EAAYvoH,GAASwzN,GAAsBtC,GAChDmI,EACA5I,GAAqBW,GAAeoC,IAAqB,KACtD,GAEL/3M,EAAW,IAAIo8M,SACbb,GAAYv7M,EAASgN,KAlJF,MAkJ4B8/F,GAAY,KACzDvoH,GAASA,IACT6kI,GAAeA,GAAa,IAE9Bj3J,EAEJ,CAEA4tC,EAAeA,GAAgB,OAE/B,IAAI89M,QAAqBf,GAAUvQ,GAAMzD,QAAQgU,GAAW/8M,IAAiB,QAAQC,EAAUpQ,GAI/F,OAFC+tN,GAAoBv0F,GAAeA,UAEvB,IAAIhgC,SAAQ,CAACG,EAAS4vB,KACjCk7F,GAAO9qH,EAAS4vB,EAAQ,CACtB7sI,KAAMuxO,EACN1N,QAASgC,GAAa9mG,KAAKrrG,EAASmwM,SACpC5vM,OAAQP,EAASO,OACjB63H,WAAYp4H,EAASo4H,WACrBxoI,SACAypH,WACA,GAEN,CAAE,MAAO9pI,GAGP,GAFA65I,GAAeA,IAEX75I,GAAoB,cAAbA,EAAIlW,MAAwB,SAAS2Q,KAAKuF,EAAIyoH,SACvD,MAAMxhI,OAAO+rB,OACX,IAAI8pN,GAAW,gBAAiBA,GAAW4N,YAAarqN,EAAQypH,GAChE,CACEszF,MAAOp9N,EAAIo9N,OAASp9N,IAK1B,MAAM88N,GAAWhhG,KAAK97H,EAAKA,GAAOA,EAAIyS,KAAM4N,EAAQypH,EACtD,CACD,GC5NKykG,GAAgB,CACpBC,KCNF,KDOEn+M,IAAKo+M,GACLptJ,MAAOqtJ,IAGT1R,GAAMngO,QAAQ0xO,IAAe,CAACv9O,EAAI1Y,KAChC,GAAI0Y,EAAI,CACN,IACE/J,OAAOC,eAAe8J,EAAI,OAAQ,CAAC1Y,SACrC,CAAE,MAAOs6B,IACP,CAEF3rB,OAAOC,eAAe8J,EAAI,cAAe,CAAC1Y,SAC5C,KAGF,MAAMq2P,GAAgB//O,GAAW,KAAKA,IAEhCggP,GAAoBlO,GAAY1D,GAAMtE,WAAWgI,IAAwB,OAAZA,IAAgC,IAAZA,EAEvF,GACemO,IACXA,EAAW7R,GAAM5zO,QAAQylP,GAAYA,EAAW,CAACA,GAEjD,MAAM,OAACp2P,GAAUo2P,EACjB,IAAIC,EACApO,EAEJ,MAAMqO,EAAkB,CAAC,EAEzB,IAAK,IAAIx0P,EAAI,EAAGA,EAAI9B,EAAQ8B,IAAK,CAE/B,IAAI8V,EAIJ,GALAy+O,EAAgBD,EAASt0P,GAGzBmmP,EAAUoO,GAELF,GAAiBE,KACpBpO,EAAU6N,IAAel+O,EAAKqP,OAAOovO,IAAgBnoO,oBAErCjuB,IAAZgoP,GACF,MAAM,IAAI5D,GAAW,oBAAoBzsO,MAI7C,GAAIqwO,EACF,MAGFqO,EAAgB1+O,GAAM,IAAM9V,GAAKmmP,CACnC,CAEA,IAAKA,EAAS,CAEZ,MAAMsO,EAAU/nP,OAAOq0I,QAAQyzG,GAC5Bx1P,KAAIuG,IAAA,IAAEuQ,EAAIV,GAAM7P,EAAA,MAAK,WAAWuQ,OACpB,IAAVV,EAAkB,sCAAwC,gCAAgC,IAG/F,IAAI3U,EAAIvC,EACLu2P,EAAQv2P,OAAS,EAAI,YAAcu2P,EAAQz1P,IAAIo1P,IAAc/0P,KAAK,MAAQ,IAAM+0P,GAAaK,EAAQ,IACtG,0BAEF,MAAM,IAAIlS,GACR,wDAA0D9hP,EAC1D,kBAEJ,CAEA,OAAO0lP,CAAO,EE3DlB,SAASuO,GAA6B5uN,GAKpC,GAJIA,EAAOyoN,aACTzoN,EAAOyoN,YAAYoG,mBAGjB7uN,EAAO8pN,QAAU9pN,EAAO8pN,OAAOc,QACjC,MAAM,IAAIrG,GAAc,KAAMvkN,EAElC,CASe,SAAS8uN,GAAgB9uN,GACtC4uN,GAA6B5uN,GAE7BA,EAAOugN,QAAUgC,GAAa9mG,KAAKz7G,EAAOugN,SAG1CvgN,EAAOtjB,KAAO4nD,GAAcrsD,KAC1B+nB,EACAA,EAAOsgN,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAAS5mP,QAAQsmC,EAAO6pH,SAC1C7pH,EAAOugN,QAAQM,eAAe,qCAAqC,GAKrE,OAFgB2N,GAAoBxuN,EAAOqgN,SAAWH,GAASG,QAExDA,CAAQrgN,GAAQ45F,MAAK,SAA6BxpF,GAYvD,OAXAw+M,GAA6B5uN,GAG7BoQ,EAAS1zB,KAAO4nD,GAAcrsD,KAC5B+nB,EACAA,EAAOuhN,kBACPnxM,GAGFA,EAASmwM,QAAUgC,GAAa9mG,KAAKrrG,EAASmwM,SAEvCnwM,CACT,IAAG,SAA4B7hC,GAe7B,OAdK81O,GAAS91O,KACZqgP,GAA6B5uN,GAGzBzxB,GAAUA,EAAO6hC,WACnB7hC,EAAO6hC,SAAS1zB,KAAO4nD,GAAcrsD,KACnC+nB,EACAA,EAAOuhN,kBACPhzO,EAAO6hC,UAET7hC,EAAO6hC,SAASmwM,QAAUgC,GAAa9mG,KAAKltI,EAAO6hC,SAASmwM,WAIzD/mH,QAAQ+vB,OAAOh7I,EACxB,GACF,CChFO,MAAMwgP,GAAU,QCKjBC,GAAa,CAAC,EAGpB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAUxyO,SAAQ,CAAC9jB,EAAMwB,KAC7E80P,GAAWt2P,GAAQ,SAAmBq/O,GACpC,cAAcA,IAAUr/O,GAAQ,KAAOwB,EAAI,EAAI,KAAO,KAAOxB,CAC/D,CAAC,IAGH,MAAMu2P,GAAqB,CAAC,EAW5BD,GAAW7O,aAAe,SAAsB7xO,EAAW0U,EAASolH,GAClE,SAAS8mH,EAAcC,EAAKxzG,GAC1B,MAAO,uCAAoDwzG,EAAM,IAAOxzG,GAAQvT,EAAU,KAAOA,EAAU,GAC7G,CAGA,MAAO,CAACnwI,EAAOk3P,EAAKv2O,KAClB,IAAkB,IAAdtK,EACF,MAAM,IAAImuO,GACRyS,EAAcC,EAAK,qBAAuBnsO,EAAU,OAASA,EAAU,KACvEy5N,GAAW2S,gBAef,OAXIpsO,IAAYisO,GAAmBE,KACjCF,GAAmBE,IAAO,EAE1BhzP,QAAQC,KACN8yP,EACEC,EACA,+BAAiCnsO,EAAU,8CAK1C1U,GAAYA,EAAUrW,EAAOk3P,EAAKv2O,EAAY,CAEzD,EAmCA,UACEy2O,cAxBF,SAAuB9sP,EAAS+sP,EAAQC,GACtC,GAAuB,kBAAZhtP,EACT,MAAM,IAAIk6O,GAAW,4BAA6BA,GAAW+S,sBAE/D,MAAM9zP,EAAOkL,OAAOlL,KAAK6G,GACzB,IAAIrI,EAAIwB,EAAKtD,OACb,KAAO8B,KAAM,GAAG,CACd,MAAMi1P,EAAMzzP,EAAKxB,GACXoU,EAAYghP,EAAOH,GACzB,GAAI7gP,EAAJ,CACE,MAAMrW,EAAQsK,EAAQ4sP,GAChBh6O,OAAmB9c,IAAVJ,GAAuBqW,EAAUrW,EAAOk3P,EAAK5sP,GAC5D,IAAe,IAAX4S,EACF,MAAM,IAAIsnO,GAAW,UAAY0S,EAAM,YAAch6O,EAAQsnO,GAAW+S,qBAG5E,MACA,IAAqB,IAAjBD,EACF,MAAM,IAAI9S,GAAW,kBAAoB0S,EAAK1S,GAAWgT,eAE7D,CACF,EAIET,eC9EIA,GAAa1gP,GAAU0gP,WAS7B,MAAMU,GACJt7O,WAAAA,CAAYu7O,GACV/jP,KAAKs0O,SAAWyP,EAChB/jP,KAAKgkP,aAAe,CAClBnmG,QAAS,IAAIomG,GACbz/M,SAAU,IAAIy/M,GAElB,CAUA,aAAMpmG,CAAQqmG,EAAa9vN,GACzB,IACE,aAAap0B,KAAK2hP,SAASuC,EAAa9vN,EAC1C,CAAE,MAAOrgB,GACP,GAAIA,aAAe/lB,MAAO,CACxB,IAAIm2P,EAEJn2P,MAAM8iP,kBAAoB9iP,MAAM8iP,kBAAkBqT,EAAQ,CAAC,GAAMA,EAAQ,IAAIn2P,MAG7E,MAAMm3F,EAAQg/J,EAAMh/J,MAAQg/J,EAAMh/J,MAAMj6E,QAAQ,QAAS,IAAM,GAC/D,IACO6I,EAAIoxE,MAGEA,IAAU1xE,OAAOM,EAAIoxE,OAAOq0E,SAASr0E,EAAMj6E,QAAQ,YAAa,OACzE6I,EAAIoxE,OAAS,KAAOA,GAHpBpxE,EAAIoxE,MAAQA,CAKhB,CAAE,MAAOx+D,IACP,CAEJ,CAEA,MAAM5S,CACR,CACF,CAEA4tO,QAAAA,CAASuC,EAAa9vN,GAGO,kBAAhB8vN,GACT9vN,EAASA,GAAU,CAAC,GACb3uB,IAAMy+O,EAEb9vN,EAAS8vN,GAAe,CAAC,EAG3B9vN,EAASqnN,GAAYz7O,KAAKs0O,SAAUlgN,GAEpC,MAAM,aAACmgN,EAAY,iBAAE2H,EAAgB,QAAEvH,GAAWvgN,OAE7B3nC,IAAjB8nP,GACF7xO,GAAU+gP,cAAclP,EAAc,CACpCnB,kBAAmBgQ,GAAW7O,aAAa6O,GAAWgB,SACtD/Q,kBAAmB+P,GAAW7O,aAAa6O,GAAWgB,SACtD9Q,oBAAqB8P,GAAW7O,aAAa6O,GAAWgB,WACvD,GAGmB,MAApBlI,IACEnL,GAAMtE,WAAWyP,GACnB9nN,EAAO8nN,iBAAmB,CACxBxwB,UAAWwwB,GAGbx5O,GAAU+gP,cAAcvH,EAAkB,CACxC9J,OAAQgR,GAAWiB,SACnB34B,UAAW03B,GAAWiB,WACrB,IAKPjwN,EAAO6pH,QAAU7pH,EAAO6pH,QAAUj+I,KAAKs0O,SAASr2F,QAAU,OAAOvjI,cAGjE,IAAI4pO,EAAiB3P,GAAW5D,GAAM7qN,MACpCyuN,EAAQ9iP,OACR8iP,EAAQvgN,EAAO6pH,SAGjB02F,GAAW5D,GAAMngO,QACf,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WACjDqtI,WACQ02F,EAAQ12F,EAAO,IAI1B7pH,EAAOugN,QAAUgC,GAAaxpP,OAAOm3P,EAAgB3P,GAGrD,MAAM4P,EAA0B,GAChC,IAAIC,GAAiC,EACrCxkP,KAAKgkP,aAAanmG,QAAQjtI,SAAQ,SAAoC6zO,GACjC,oBAAxBA,EAAYvR,UAA0D,IAAhCuR,EAAYvR,QAAQ9+M,KAIrEowN,EAAiCA,GAAkCC,EAAYxR,YAE/EsR,EAAwB/sL,QAAQitL,EAAY1R,UAAW0R,EAAYzR,UACrE,IAEA,MAAM0R,EAA2B,GAKjC,IAAI/vF,EAJJ30J,KAAKgkP,aAAax/M,SAAS5zB,SAAQ,SAAkC6zO,GACnEC,EAAyBt1P,KAAKq1P,EAAY1R,UAAW0R,EAAYzR,SACnE,IAGA,IACIj6M,EADAzqC,EAAI,EAGR,IAAKk2P,EAAgC,CACnC,MAAMG,EAAQ,CAACzB,GAAgB57M,KAAKtnC,WAAOvT,GAO3C,IANAk4P,EAAMntL,QAAQz3D,MAAM4kP,EAAOJ,GAC3BI,EAAMv1P,KAAK2Q,MAAM4kP,EAAOD,GACxB3rN,EAAM4rN,EAAMn4P,OAEZmoK,EAAU/mC,QAAQG,QAAQ35F,GAEnB9lC,EAAIyqC,GACT47H,EAAUA,EAAQ3mC,KAAK22H,EAAMr2P,KAAMq2P,EAAMr2P,MAG3C,OAAOqmK,CACT,CAEA57H,EAAMwrN,EAAwB/3P,OAE9B,IAAIywP,EAAY7oN,EAIhB,IAFA9lC,EAAI,EAEGA,EAAIyqC,GAAK,CACd,MAAM6rN,EAAcL,EAAwBj2P,KACtCu2P,EAAaN,EAAwBj2P,KAC3C,IACE2uP,EAAY2H,EAAY3H,EAC1B,CAAE,MAAOvlP,GACPmtP,EAAWx4O,KAAKrM,KAAMtI,GACtB,KACF,CACF,CAEA,IACEi9J,EAAUuuF,GAAgB72O,KAAKrM,KAAMi9O,EACvC,CAAE,MAAOvlP,GACP,OAAOk2H,QAAQ+vB,OAAOjmJ,EACxB,CAKA,IAHApJ,EAAI,EACJyqC,EAAM2rN,EAAyBl4P,OAExB8B,EAAIyqC,GACT47H,EAAUA,EAAQ3mC,KAAK02H,EAAyBp2P,KAAMo2P,EAAyBp2P,MAGjF,OAAOqmK,CACT,CAEAmwF,MAAAA,CAAO1wN,GAGL,OAAOu+M,GADUwI,IADjB/mN,EAASqnN,GAAYz7O,KAAKs0O,SAAUlgN,IACEgnN,QAAShnN,EAAO3uB,KAC5B2uB,EAAOhsB,OAAQgsB,EAAO8nN,iBAClD,EAIFnL,GAAMngO,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6BqtI,GAE/E6lG,GAAMr7O,UAAUw1I,GAAU,SAASx4I,EAAK2uB,GACtC,OAAOp0B,KAAK69I,QAAQ49F,GAAYrnN,GAAU,CAAC,EAAG,CAC5C6pH,SACAx4I,MACAqL,MAAOsjB,GAAU,CAAC,GAAGtjB,OAEzB,CACF,IAEAigO,GAAMngO,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BqtI,GAGrE,SAAS8mG,EAAmBC,GAC1B,OAAO,SAAoBv/O,EAAKqL,EAAMsjB,GACpC,OAAOp0B,KAAK69I,QAAQ49F,GAAYrnN,GAAU,CAAC,EAAG,CAC5C6pH,SACA02F,QAASqQ,EAAS,CAChB,eAAgB,uBACd,CAAC,EACLv/O,MACAqL,SAEJ,CACF,CAEAgzO,GAAMr7O,UAAUw1I,GAAU8mG,IAE1BjB,GAAMr7O,UAAUw1I,EAAS,QAAU8mG,GAAmB,EACxD,IAEA,YCxNA,MAAME,GACJz8O,WAAAA,CAAY08O,GACV,GAAwB,oBAAbA,EACT,MAAM,IAAIx8N,UAAU,gCAGtB,IAAIy8N,EAEJnlP,KAAK20J,QAAU,IAAI/mC,SAAQ,SAAyBG,GAClDo3H,EAAiBp3H,CACnB,IAEA,MAAMmxD,EAAQl/K,KAGdA,KAAK20J,QAAQ3mC,MAAKllG,IAChB,IAAKo2J,EAAMkmE,WAAY,OAEvB,IAAI92P,EAAI4wL,EAAMkmE,WAAW54P,OAEzB,KAAO8B,KAAM,GACX4wL,EAAMkmE,WAAW92P,GAAGw6B,GAEtBo2J,EAAMkmE,WAAa,IAAI,IAIzBplP,KAAK20J,QAAQ3mC,KAAOq3H,IAClB,IAAIC,EAEJ,MAAM3wF,EAAU,IAAI/mC,SAAQG,IAC1BmxD,EAAMvxB,UAAU5/B,GAChBu3H,EAAWv3H,CAAO,IACjBC,KAAKq3H,GAMR,OAJA1wF,EAAQ7rI,OAAS,WACfo2J,EAAMtxB,YAAY03F,EACpB,EAEO3wF,CAAO,EAGhBuwF,GAAS,SAAgB1oH,EAASpoG,EAAQypH,GACpCqhC,EAAMv8K,SAKVu8K,EAAMv8K,OAAS,IAAIg2O,GAAcn8G,EAASpoG,EAAQypH,GAClDsnG,EAAejmE,EAAMv8K,QACvB,GACF,CAKAsgP,gBAAAA,GACE,GAAIjjP,KAAK2C,OACP,MAAM3C,KAAK2C,MAEf,CAMAgrJ,SAAAA,CAAU74H,GACJ90B,KAAK2C,OACPmyB,EAAS90B,KAAK2C,QAIZ3C,KAAKolP,WACPplP,KAAKolP,WAAWh2P,KAAK0lC,GAErB90B,KAAKolP,WAAa,CAACtwN,EAEvB,CAMA84H,WAAAA,CAAY94H,GACV,IAAK90B,KAAKolP,WACR,OAEF,MAAM53P,EAAQwS,KAAKolP,WAAWt3P,QAAQgnC,IACvB,IAAXtnC,GACFwS,KAAKolP,WAAW70O,OAAO/iB,EAAO,EAElC,CAEAu0P,aAAAA,GACE,MAAM3C,EAAa,IAAIC,gBAEjBN,EAAShrO,IACbqrO,EAAWL,MAAMhrO,EAAI,EAOvB,OAJA/T,KAAK2tJ,UAAUoxF,GAEfK,EAAWlB,OAAOtwF,YAAc,IAAM5tJ,KAAK4tJ,YAAYmxF,GAEhDK,EAAWlB,MACpB,CAMA,aAAO53N,GACL,IAAIwC,EAIJ,MAAO,CACLo2J,MAJY,IAAI+lE,IAAY,SAAkB1nO,GAC9CuL,EAASvL,CACX,IAGEuL,SAEJ,EAGF,YCtIA,MAAMy8N,GAAiB,CACrBC,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZ3/G,GAAI,IACJ4/G,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXC,SAAU,IACVC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B,KAGjCruP,OAAOq0I,QAAQk2G,IAAgB30O,SAAQ/c,IAAkB,IAAhBgG,EAAKxN,GAAMwH,EAClD0xP,GAAel5P,GAASwN,CAAG,IAG7B,YCxBA,MAAMyvP,GAnBN,SAASC,EAAeC,GACtB,MAAMhjK,EAAU,IAAIs9J,GAAM0F,GACpBniP,EAAWigC,GAAKw8M,GAAMr7O,UAAUo1I,QAASr3D,GAa/C,OAVAuqJ,GAAM1nH,OAAOhiH,EAAUy8O,GAAMr7O,UAAW+9E,EAAS,CAAC6mJ,YAAY,IAG9D0D,GAAM1nH,OAAOhiH,EAAUm/E,EAAS,KAAM,CAAC6mJ,YAAY,IAGnDhmO,EAASzK,OAAS,SAAgBmnP,GAChC,OAAOwF,EAAe9N,GAAY+N,EAAezF,GACnD,EAEO18O,CACT,CAGckiP,CAAejV,IAG7BgV,GAAMxF,MAAQA,GAGdwF,GAAM3Q,cAAgBA,GACtB2Q,GAAMrE,YAAcA,GACpBqE,GAAM7Q,SAAWA,GACjB6Q,GAAMnG,QAAUA,GAChBmG,GAAM9W,WAAaA,GAGnB8W,GAAMzY,WAAaA,GAGnByY,GAAMG,OAASH,GAAM3Q,cAGrB2Q,GAAMthO,IAAM,SAAagsI,GACvB,OAAOpmC,QAAQ5lG,IAAIgsI,EACrB,EAEAs1F,GAAMjjF,OC9CS,SAAgBzhI,GAC7B,OAAO,SAAc9J,GACnB,OAAO8J,EAAS7kC,MAAM,KAAM+6B,EAC9B,CACF,ED6CAwuN,GAAMI,aE7DS,SAAsBvkN,GACnC,OAAO4rM,GAAMpE,SAASxnM,KAAsC,IAAzBA,EAAQukN,YAC7C,EF8DAJ,GAAM7N,YAAcA,GAEpB6N,GAAM3S,aAAeA,GAErB2S,GAAMK,WAAaxd,GAAS6I,GAAejE,GAAMpD,WAAWxB,GAAS,IAAI2C,SAAS3C,GAASA,GAE3Fmd,GAAMM,WAAahH,GAEnB0G,GAAM/D,eAAiBA,GAEvB+D,GAAMx3P,QAAUw3P,GAGhB,YGxF2B5kO,GAAE,kCAAkCn3B,GAAE,aAAao3B,GAAE,GAAGD,MAAKn3B,KAAIq5B,GAAE,GAAGlC,WAAUp2B,GAAE,GAAGo2B,uBAAsB11B,GAAE,GAAG01B,cAAa31B,GAAE,GAAG21B,oBAAmBz1B,GAAE,GAAGy1B,aAAYsC,GAAE,GAAGtC,iBAAgBnH,GAAE,GAAGmH,kBAAiB3c,GAAE,GAAG2c,aAAY8D,GAAE,SAASt5B,GAAE,WAAWs1B,GAAE,aAAmBxpB,OAAO22C,OAAO,CAACi7F,UAAU,KAAKi9G,cAAcnlO,GAAEolO,gBAAgBv8P,GAAEw8P,mBAAmBplO,GAAEqlO,cAAcpjO,GAAEqjO,yBAAyB37P,GAAE47P,iBAAiBl7P,GAAEm7P,sBAAsBp7P,GAAEq7P,gBAAgBn7P,GAAEo7P,mBAAmBrjO,GAAEsjO,oBAAoB/sO,GAAEgtO,gBAAgBxiP,GAAE3D,GAAGokB,GAAEgiO,iBAAiBt7P,GAAEu7P,mBAAmBjmO,KAAI,SAASiE,GAAC50B,GAA6D,IAA3DsM,UAAUukB,EAAE,GAAGxkB,SAAS3S,EAAE8gK,SAAS1pI,EAAGA,OAAQ+lO,UAAU9jO,GAAE/yB,EAAE,MAAM7E,EAAE23B,EAAAA,SAAW,IAAI,GAAGr4B,MAAKo2B,KAAK,CAACA,IAAI,OAAOiC,EAAAA,cAAgB,MAAM,CAACxmB,UAAUnR,EAAEq/J,SAAS1pI,EAAEtmB,IAAIuoB,GAAGr5B,EAAE,CAAC,IAAIsxB,GAAE8H,EAAAA,MAAQ,SAAAvE,GAA2C,IAAjCjiB,UAAUukB,EAAEtgB,GAAG7W,EAAEC,MAAMm3B,EAAEpC,KAAKqE,GAAExE,EAAE,MAAM9zB,EAAEq4B,EAAAA,OAAS,MAAM,OAAOC,EAAEjC,GAAGr2B,EAAEq4B,EAAAA,cAAgB,MAAM3rB,OAAO+rB,OAAO,CAAC5mB,UAAUukB,GAAG,CAAC,CAACx1B,IAAG3B,EAAE,CAACi3B,IAAGG,GAAG,CAACtmB,IAAI/P,IAAI,IAAQs2B,GAAE+B,EAAAA,MAAQ,SAAAnD,GAAsD,IAA5CtjB,SAASwkB,EAAEvkB,UAAU5S,EAAE6W,GAAGugB,EAAEn3B,MAAMo5B,EAAErE,KAAKj0B,GAAEk1B,EAAE,MAAMx0B,EAAE23B,EAAAA,OAAS,MAAM,OAAOr4B,EAAEmlB,OAAOmT,IAAI53B,EAAE23B,EAAAA,cAAgB,MAAM3rB,OAAO+rB,OAAO,CAAC5mB,UAAU5S,GAAG,CAAC,CAAC2B,IAAGy1B,EAAE,CAACH,IAAGoC,GAAG,CAACvoB,IAAIrP,IAAI01B,EAAE,IAAI,SAASG,GAAE8B,GAAG,MAAM,iBAAiBA,GAAG,MAAMA,GAAG,IAAIA,EAAEje,QAAQ,CAAC,SAASqmH,GAAEpoG,EAAEjC,GAAG,QAAQA,GAAG,WAAWiC,IAAI,YAAYA,GAAG,SAASA,CAAC,CAAC,SAASM,GAAEN,EAAEjC,GAAG,GAAGiC,EAAEw9H,aAAax9H,EAAE0oI,cAAc1oI,EAAEu9H,YAAYv9H,EAAEgkO,YAAY,CAAC,IAAIp9P,EAAE6xB,iBAAiBuH,EAAE,MAAM,OAAOooG,GAAExhI,EAAEq9P,UAAUlmO,IAAIqqG,GAAExhI,EAAEs9P,UAAUnmO,IAAI,SAASiC,GAAG,IAAIjC,EAAE,SAASiC,GAAG,IAAIA,EAAEriB,gBAAgBqiB,EAAEriB,cAAcI,YAAY,OAAO,KAAK,IAAI,OAAOiiB,EAAEriB,cAAcI,YAAYomP,YAAY,CAAC,MAAMnkO,GAAG,OAAO,IAAI,CAAC,CAAnJ,CAAqJA,GAAG,QAAQjC,IAAIA,EAAEy/H,aAAax9H,EAAE0oI,cAAc3qI,EAAEw/H,YAAYv9H,EAAEgkO,YAAY,CAAjP,CAAmPhkO,EAAE,CAAC,OAAM,CAAE,CAAC,SAASsqG,GAAEtqG,EAAEjC,EAAEn3B,EAAEo3B,EAAEiC,EAAEt4B,EAAEU,EAAED,GAAG,OAAOT,EAAEq4B,GAAG33B,EAAE01B,GAAGp2B,EAAEq4B,GAAG33B,EAAE01B,EAAE,EAAEp2B,GAAGq4B,GAAG53B,GAAGxB,GAAGyB,GAAG01B,GAAG31B,GAAGxB,EAAEe,EAAEq4B,EAAEhC,EAAE31B,EAAE01B,GAAG31B,EAAExB,GAAGe,EAAEq4B,GAAG53B,EAAExB,EAAEyB,EAAE01B,EAAEkC,EAAE,CAAC,CAAC,IAAI6vG,GAAEhkF,GAAE,SAAS9rB,EAAEjC,GAAG,IAAIn3B,EAAEoX,OAAOggB,EAAED,EAAEqmO,WAAWnkO,EAAElC,EAAEsmO,MAAM18P,EAAEo2B,EAAEumO,OAAOj8P,EAAE01B,EAAEwmO,SAASn8P,EAAE21B,EAAEymO,2BAA2Bl8P,EAAE,mBAAmBD,EAAEA,EAAE,SAAS23B,GAAG,OAAOA,IAAI33B,CAAC,EAAE,IAAI61B,GAAE8B,GAAG,MAAM,IAAI+B,UAAU,kBAAkB,IAAI,IAAI1B,EAAEzJ,EAAExV,EAAEvD,SAAS4mP,kBAAkB5mP,SAASqY,gBAAgB2L,EAAE,GAAGt5B,EAAEy3B,EAAE9B,GAAE31B,IAAID,EAAEC,IAAI,CAAC,IAAIA,EAAE,OAAOquB,GAAGyJ,EAAE93B,GAAG6rN,eAAe/zL,EAAEqkO,cAAc5Q,MAAM,KAAKl9N,KAAKxV,EAAE,CAACygB,EAAEp5B,KAAKF,GAAG,KAAK,CAAC,MAAMA,GAAGA,IAAIsV,SAASgtC,MAAMvqB,GAAE/3B,KAAK+3B,GAAEziB,SAASqY,kBAAkB,MAAM3tB,GAAG+3B,GAAE/3B,EAAEH,IAAIy5B,EAAEp5B,KAAKF,EAAE,CAAC,IAAI,IAAIs1B,EAAEj3B,EAAE+9P,eAAe/9P,EAAE+9P,eAAejxP,MAAMg9K,WAAWvoL,EAAEvB,EAAE+9P,eAAe/9P,EAAE+9P,eAAehuP,OAAO8sB,YAAY3B,EAAE9jB,OAAO4mP,SAASC,YAAY3sO,EAAEla,OAAO8mP,SAASthO,YAAYvF,EAAE+B,EAAE6O,wBAAwBu5F,EAAEnqG,EAAEtnB,OAAOm5H,EAAE7xG,EAAEvqB,MAAMo4C,EAAE7tB,EAAEhJ,IAAI0D,EAAEsF,EAAE/I,MAAM8L,EAAE/C,EAAElJ,OAAO+L,EAAE7C,EAAEjJ,KAAKuxM,EAAE,UAAUtmM,GAAG,YAAYA,EAAE6rB,EAAE,QAAQ7rB,EAAEe,EAAE8qB,EAAEs8E,EAAE,EAAE5/H,EAAE,WAAWb,EAAEm5B,EAAEgvG,EAAE,EAAE,QAAQnoI,EAAEgxB,EAAEmI,EAAEm6G,EAAE,GAAGV,EAAE,EAAEA,EAAE14G,EAAEh8B,OAAO00I,IAAI,CAAC,IAAIlkH,EAAEwL,EAAE04G,GAAGQ,EAAE1kH,EAAEwY,wBAAwBykG,EAAEyH,EAAEpkI,OAAOoxB,EAAEgzG,EAAErnI,MAAM2f,EAAE0nH,EAAE9lH,IAAIszG,EAAEwS,EAAE7lH,MAAM22B,EAAEkvF,EAAEhmH,OAAOq6G,EAAE2L,EAAE/lH,KAAK,GAAG,cAAcgJ,GAAG8tB,GAAG,GAAGhrB,GAAG,GAAGE,GAAG74B,GAAGwwB,GAAGkF,GAAGiuB,GAAGz4B,GAAG2N,GAAG6qB,GAAG/qB,GAAGsuG,GAAGz2G,GAAG4vG,EAAE,OAAO0S,EAAE,IAAI9K,EAAE13G,iBAAiBpC,GAAG0uG,EAAEj+H,SAASqpI,EAAE2uD,gBAAgB,IAAIt5D,EAAE1+H,SAASqpI,EAAEwuD,eAAe,IAAI9iD,EAAE/0I,SAASqpI,EAAEyuD,iBAAiB,IAAIvhD,EAAEv2I,SAASqpI,EAAE0uD,kBAAkB,IAAIz9J,EAAE,EAAEyG,EAAE,EAAE09F,EAAE,gBAAgBlvG,EAAEA,EAAEq+C,YAAYr+C,EAAEknI,YAAYx4B,EAAE8W,EAAE,EAAEjB,EAAE,iBAAiBvkH,EAAEA,EAAEwN,aAAaxN,EAAEmnI,aAAah4B,EAAE6X,EAAE,EAAEv1G,EAAE,gBAAgBzR,EAAE,IAAIA,EAAEq+C,YAAY,EAAE3sC,EAAE1R,EAAEq+C,YAAY,EAAE45D,EAAE,iBAAiBj4G,EAAE,IAAIA,EAAEwN,aAAa,EAAEyvG,EAAEj9G,EAAEwN,aAAa,EAAE,GAAGziB,IAAIiV,EAAE+K,EAAE,UAAUnB,EAAEsmM,EAAE,QAAQtmM,EAAEsmM,EAAEp+N,EAAE,YAAY83B,EAAEqqG,GAAEpyG,EAAEA,EAAE/vB,EAAEA,EAAEq9H,EAAE6X,EAAEnlH,EAAEquM,EAAEruM,EAAEquM,EAAEn+F,EAAEA,GAAGm+F,EAAEp+N,EAAE,EAAE0/B,EAAE,UAAUlgC,EAAEa,EAAE,WAAWb,EAAEa,EAAEq1B,EAAE,EAAE,QAAQl2B,EAAEa,EAAEq1B,EAAEysG,GAAExoG,EAAEA,EAAEjE,EAAEA,EAAEknG,EAAE8W,EAAE/5G,EAAEt5B,EAAEs5B,EAAEt5B,EAAEsnI,EAAEA,GAAG1uG,EAAEp7B,KAAKD,IAAI,EAAEq7B,EAAElJ,GAAG2P,EAAE7hC,KAAKD,IAAI,EAAE8hC,EAAE/F,OAAO,CAACV,EAAE,UAAUnB,EAAEsmM,EAAElzM,EAAEmyG,EAAE,QAAQvlG,EAAEsmM,EAAE16K,EAAEwxF,EAAEzC,EAAE,YAAY36G,EAAEqqG,GAAEj3G,EAAEw4B,EAAEynF,EAAE9N,EAAE6X,EAAEzC,EAAE2rF,EAAEA,EAAEn+F,EAAEA,GAAGm+F,GAAGlzM,EAAEigH,EAAE,GAAGsH,EAAE,EAAE/yG,EAAE,UAAUlgC,EAAEa,EAAE4mI,EAAErK,EAAE,WAAWp9H,EAAEa,GAAG4mI,EAAErnG,EAAE,GAAGw9F,EAAE,EAAE,QAAQ59H,EAAEa,EAAE+/H,EAAEsT,EAAEtW,EAAE+E,GAAE8E,EAAE7G,EAAExgG,EAAEg9F,EAAE8W,EAAEtW,EAAE/8H,EAAEA,EAAEsnI,EAAEA,GAAG,IAAIzH,EAAEhyG,EAAE2N,WAAW6tG,EAAEx7G,EAAE4N,UAAUsiM,GAAG10F,GAAGzwG,EAAEp7B,KAAKD,IAAI,EAAEC,KAAKL,IAAIksI,EAAEzwG,EAAEktG,EAAEj4G,EAAEqyI,aAAap1B,EAAEhF,EAAEsM,KAAKpyI,GAAG6/H,GAAGxgG,EAAE7hC,KAAKD,IAAI,EAAEC,KAAKL,IAAI0iI,EAAExgG,EAAEC,EAAEzR,EAAE2tO,YAAYj8N,EAAED,EAAEy9F,IAAI,CAAC0V,EAAExyI,KAAK,CAACymB,GAAGmH,EAAEpB,IAAImM,EAAEpM,KAAK6S,GAAG,CAAC,OAAOozG,CAAC,EAAE,SAAStiH,GAAEqH,GAAG,OAAOA,IAAI3rB,OAAO2rB,IAAI,IAAI3rB,OAAOlL,KAAK62B,GAAGn6B,MAAM,CAAC,SAASm7B,GAAEhB,EAAEjC,GAAG,IAAIn3B,EAAEo5B,EAAE+kO,aAAa/kO,EAAEriB,cAAcuY,gBAAgB2rG,SAAS7hG,GAAG,GAAGrH,GAAEoF,IAAI,mBAAmBA,EAAEsvM,SAAS,OAAOtvM,EAAEsvM,SAASzmO,EAAEklD,GAAE9rB,EAAEjC,GAAG,IAAI,GAAGn3B,EAAE,CAAC,IAAIo3B,EAAE,SAASgC,GAAG,OAAM,IAAKA,EAAE,CAACqkO,MAAM,MAAMC,OAAO,WAAW3rO,GAAEqH,GAAGA,EAAE,CAACqkO,MAAM,QAAQC,OAAO,UAAU,CAA/F,CAAiGvmO,GAAG,OAAO,SAASiC,EAAEjC,QAAG,IAASA,IAAIA,EAAE,QAAQ,IAAIn3B,EAAE,mBAAmBiX,SAASgtC,KAAK3oC,MAAM8d,EAAE/V,SAAS,SAAS+V,GAAG,IAAIhC,EAAEgC,EAAE9Q,GAAG+Q,EAAED,EAAE/K,IAAIttB,EAAEq4B,EAAEhL,KAAKgJ,EAAE4hL,QAAQh5M,EAAEo3B,EAAE4hL,OAAO,CAAC3qL,IAAIgL,EAAEjL,KAAKrtB,EAAE0lO,SAAStvM,KAAKC,EAAEiG,UAAUhE,EAAEjC,EAAEgG,WAAWr8B,EAAE,GAAG,CAAtN,CAAwNmkD,GAAE9rB,EAAEhC,GAAGA,EAAEqvM,SAAS,CAAC,CAAC,IAAIvsM,GAAE,WAAW,OAAOgvG,KAAIA,GAAE,gBAAgB9xH,OAAOioG,YAAYn0F,IAAI6uB,KAAKslE,aAAal0F,KAAKD,KAAKg+G,IAAG,EAAE,SAASy2F,GAAEvmM,GAAG,IAAIjC,EAAE+C,KAAIl6B,EAAEZ,KAAKL,KAAKo4B,EAAEiC,EAAE24E,WAAW34E,EAAEzqB,SAAS,GAAGyoB,EAAEgC,EAAE20E,KAAK/tG,GAAGq5B,EAAED,EAAEglO,QAAQhlO,EAAErH,EAAEqH,EAAEglO,QAAQhnO,EAAEr2B,EAAEq4B,EAAEilO,QAAQjlO,EAAE9B,EAAE8B,EAAEilO,QAAQjnO,EAAEgC,EAAEs3H,OAAOr3H,EAAEt4B,GAAGs4B,IAAID,EAAErH,GAAGhxB,IAAIq4B,EAAE9B,EAAEosB,uBAAuB,WAAW,OAAOi8K,GAAEvmM,EAAE,IAAIA,EAAE8J,IAAI,CAAC,SAASthC,GAAEw3B,EAAEjC,EAAEn3B,EAAEo3B,EAAEiC,EAAEt4B,GAAG,IAAIU,EAAED,EAAEE,EAAE+3B,OAAE,IAASrC,IAAIA,EAAE,UAAK,IAASiC,IAAIA,EAAE,SAASD,GAAG,OAAO,IAAIA,EAAEA,EAAEA,EAAEA,EAAEA,CAAC,GAAG33B,EAAE23B,EAAE53B,EAAE43B,EAAEgE,WAAW17B,EAAE03B,EAAEiE,UAAU5D,EAAE,SAAStC,EAAEn3B,GAAGo5B,EAAEgE,WAAWh+B,KAAK8pC,KAAK/R,GAAGiC,EAAEiE,UAAUj+B,KAAK8pC,KAAKlpC,EAAE,EAAE2/N,GAAE,CAAC2+B,WAAW78P,EAAEivJ,OAAOj3H,EAAEs4E,UAAU73E,KAAIkkO,OAAO58P,EAAE68P,OAAO38P,EAAEqwB,EAAEoF,EAAEG,EAAEt3B,EAAE2O,SAASyoB,EAAE22E,KAAK10E,EAAE6J,GAAGniC,GAAG,CAAuiB,SAAS0uB,GAAE2J,EAAEjC,EAAEn3B,EAAEo3B,EAAEiC,EAAEt4B,GAAG,IAAIU,EAAE,MAAMD,GAAG,QAAQC,EAAE,MAAM23B,OAAE,EAAOA,EAAE20L,aAAQ,IAAStsN,OAAE,EAAOA,EAAE4X,SAAS+f,EAAE13B,EAAEy1B,GAAG,SAAS,GAAG31B,EAAE,OAAOT,EAAE,MAAMS,OAAE,EAAOA,EAAE+8P,eAAe,CAAC93B,SAAS/kO,EAAEg8P,OAAO19P,GAAG,MAAMy9P,MAAMrmO,GAAG,YAA1uB,SAASgC,EAAEjC,GAAG,IAAIn3B,EAAEm3B,GAAG,CAAC,EAAE,OAAO,SAASiC,GAAG,OAAOA,IAAIA,EAAEqtM,UAAU,WAAWrtM,EAAEqtM,QAAQ,CAAxD,CAA0DzmO,GAAGo6B,GAAEhB,EAAE,CAACqkO,MAAMz9P,EAAEy9P,MAAMC,OAAO19P,EAAE09P,OAAOF,WAAWx9P,EAAEw9P,WAAWG,SAAS39P,EAAE29P,SAASl3B,SAAS,SAASrtM,GAAG,OAAOinG,QAAQ5lG,IAAIrB,EAAEhrB,QAAQ,SAASgrB,EAAEjC,GAAG,IAAIC,EAAED,EAAE7O,GAAG+Q,EAAElC,EAAE/I,KAAKrtB,EAAEo2B,EAAE9I,IAAI5sB,EAAE21B,EAAEgG,WAAW57B,EAAE41B,EAAEiG,UAAU,OAAO57B,IAAI43B,GAAG73B,IAAIT,EAAEq4B,EAAE,GAAGx5B,OAAOw5B,EAAE,CAAC,IAAIinG,SAAS,SAASjnG,GAAG,OAAOx3B,GAAEw1B,EAAEiC,EAAEt4B,EAAEf,EAAE2O,SAAS3O,EAAE+tG,MAAM,WAAW,OAAO30E,EAAE,CAAC9Q,GAAG8O,EAAEhJ,KAAK,CAAC3sB,EAAE43B,GAAGhL,IAAI,CAAC7sB,EAAET,IAAI,GAAG,KAAK,GAAG,IAAI,IAAIs/H,QAAQG,QAAQpmG,GAAEhB,EAAEjC,GAAG,CAAwRk9G,CAAE7yI,EAAEiM,OAAO+rB,OAAO,CAACitM,SAAS/kO,EAAEg8P,OAAO19P,GAAG,MAAMy9P,MAAMrmO,GAAG,UAAUzoB,SAAS,KAAK0qB,GAAG,CAAC,MAAM86G,GAAE/6G,GAAGniB,SAAS4P,cAAc,IAAIllB,OAAMy3B,OAAOszG,GAAEtzG,GAAGniB,SAAS4P,cAAc,IAAIoQ,OAAMmC,OAAO,SAAS+H,GAAEhK,GAAG,OAAOiC,EAAAA,eAAiBjC,IAAIA,GAAG,mBAAmBA,GAAGiC,EAAAA,cAAgBjC,EAAE,OAAO,IAAI,CAAC,MAAM1K,GAAE2M,GAAGA,EAAE1H,QAAQ0H,IAAI,IAAIz5B,OAAO,KAAKK,OAAMihB,KAAKmY,KAAKuoG,GAAEvoG,IAAI,IAAIjC,EAAE,OAAOjR,QAAQ,QAAQiR,EAAE,MAAMiC,OAAE,EAAOA,EAAErrB,aAAQ,IAASopB,OAAE,EAAOA,EAAE8D,MAAK/U,QAAQ,MAAMkT,OAAE,EAAOA,EAAE9sB,MAAM,IAAIqR,QAAQ,QAAQ,IAAI,EAAE,SAASsnC,GAACjvB,GAAgE,IAA9DrjB,SAASwkB,EAAEslO,cAAc17P,EAAE,GAAGi0B,KAAKvzB,EAAE+6P,mBAAmBh7P,EAAE,IAAGw0B,EAAE,MAAMt0B,EAAE03B,EAAAA,SAAWw+H,QAAQzgI,GAAGzF,OAAO1I,SAASyQ,EAAE/3B,EAAEzC,OAAO+wB,EAAEoJ,EAAAA,SAAW,IAAI,GAAGC,MAAKt4B,KAAK,CAACA,IAAIyZ,EAAE4e,EAAAA,SAAW,IAAI,GAAGhC,MAAK51B,KAAK,CAACA,IAAI,OAAO43B,EAAAA,cAAgBA,EAAAA,SAAW,KAAK13B,EAAE3B,KAAK,CAACo3B,EAAEC,KAAK,MAAMiC,EAAEsoG,GAAExqG,GAAGp2B,EAAEs4B,EAAEr5B,GAAEwB,EAAE41B,EAAE,IAAIqC,EAAE,MAAM,CAACL,EAAAA,cAAgB/B,GAAE,CAACzkB,UAAUod,EAAEnZ,GAAGwiB,EAAE/sB,IAAI,aAAa+sB,EAAErE,KAAKvzB,EAAExB,MAAMm3B,GAAGD,IAAI31B,GAAG43B,EAAAA,cAAgB9H,GAAE,CAAC1e,UAAU4H,EAAE3D,GAAG9V,EAAEi0B,KAAKvzB,EAAE6K,IAAIvL,EAAEd,MAAMm3B,EAAE,KAAK,IAAI,CAAC,MAAMoxG,GAAE,oBAAoBpxH,OAAOgiB,EAAAA,gBAAkBA,EAAAA,UAAY,SAASmwG,GAACsrC,GAA2C,IAAzCnqG,MAAMvzC,EAAEqnO,aAAax+P,EAAEg1B,KAAKoC,EAAEhuB,QAAQiwB,GAAEw7I,EAAE,MAAM9zK,EAAEq4B,EAAAA,UAAY33B,EAAED,GAAG43B,EAAAA,SAAW,IAAI13B,EAAE03B,EAAAA,QAAUpkB,YAAY,QAAQ,IAAIykB,EAAEL,EAAAA,aAAeA,IAAIjC,EAAEvX,IAAI,SAASwZ,EAAEjC,GAAG,MAAM,IAAIiC,GAAGr5B,KAAKq5B,IAAI,IAAIp5B,EAAEo3B,EAAEiC,EAAEt4B,EAAE,MAAMU,EAAE23B,EAAE/f,OAAO7X,EAAE0kB,OAAO,QAAQkR,EAAE,QAAQp3B,EAAE,MAAMyB,OAAE,EAAOA,EAAEk6B,eAAU,IAAS37B,OAAE,EAAOA,EAAEsM,WAAM,IAAS8qB,EAAEA,EAAE,IAAI,MAAM,CAAC51B,EAAE,CAACvB,MAAMimB,OAAO,QAAQnlB,EAAE,QAAQs4B,EAAE,MAAM53B,OAAE,EAAOA,EAAEk6B,eAAU,IAAStC,OAAE,EAAOA,EAAEp5B,aAAQ,IAASc,EAAEA,EAAE,IAAIuL,IAAI9K,EAAEusN,MAAM30L,EAAEqlO,QAAQrlO,EAAEslO,mBAAmBvnO,EAAEwnO,OAAO,GAAG,CAA9U,CAAgVvlO,EAAEC,IAAItkB,aAAarT,EAAE0U,SAAS1U,EAAE0U,SAASpB,YAAY,IAAI0uC,uBAAuB,KAAKliD,GAAG43B,IAAI,MAAMp5B,EAAEm3B,EAAEynO,aAAa7+P,KAAKq5B,GAAGA,EAAE,GAAG9sB,MAAM,OAAOf,KAAKC,UAAU4tB,KAAK7tB,KAAKC,UAAUxL,GAAGA,EAAEo5B,CAAC,GAAG,KAAKC,EAAEizN,SAAS,GAAG,CAACn1N,EAAEkC,IAAI,OAAOmvG,IAAG,KAAK,MAAMpvG,EAAt7DA,IAAG3rB,OAAO9M,OAAOy4B,GAAGr5B,KAAKq5B,GAAGA,EAAEhjB,UAAUsb,OAAO1I,SAAy4D2qH,CAAEv8G,GAAGD,EAAEp2B,EAAEqV,SAAS,IAAIi4M,qBAAqB50L,EAAEJ,GAAG,OAAOt4B,EAAEqV,QAAQ+gB,EAAEiC,EAAE/V,SAAS+V,GAAGjC,EAAE6E,QAAQ5C,KAAK,KAAKrkB,aAAarT,EAAE0U,SAAS+gB,EAAE0nO,aAAa99P,EAAEqV,aAAQ,CAAM,CAAC,GAAG,CAACqjB,EAAEz5B,EAAEq5B,EAAEjC,IAAI31B,CAAC,CAAyD,MAAMm9H,WAAU5zG,IAAI8zO,KAAAA,GAAQ,OAAOrsP,KAAKygB,KAAK,IAAIzgB,MAAM,CAACssP,OAAAA,GAAU,OAAOtsP,KAAKqsP,QAAQ/+P,KAAKs1K,IAAA,IAAEj8I,GAAEi8I,EAAA,OAAGj8I,CAAC,GAAE,CAAC4lO,wBAAAA,GAA2B,OAAOvyO,GAAEha,KAAKssP,UAAU,CAACE,WAAAA,GAAc,OAAOxsP,KAAKssP,SAAS,CAAC7rO,IAAAA,CAAKkG,GAAG,OAAOA,EAAElG,MAAM,CAAAogK,EAAAC,KAAA,IAAE,CAACn6J,GAAEk6J,GAAE,CAACn8J,GAAEo8J,EAAA,OAAIn6J,EAAEn5B,OAAOk3B,EAAEl3B,KAAK,GAAE,CAAC2f,GAAAA,CAAIwZ,EAAEjC,GAAG,OAAO9pB,MAAMuC,QAAQwpB,GAAG3mB,KAAKygB,KAAKkG,GAAG/V,SAASmwK,IAAS,IAAPp6J,EAAEjC,GAAEq8J,EAAIpwC,MAAMxjI,IAAIsG,OAAOkT,GAAGjC,EAAE,IAAIisH,MAAMxjI,IAAIsG,OAAOkT,GAAGjC,GAAG1kB,IAAI,CAACkxC,KAAAA,GAAQ,IAAIvqB,EAAE,OAAO,QAAQA,EAAE3mB,KAAKqsP,QAAQ,UAAK,IAAS1lO,OAAE,EAAOA,EAAE,EAAE,CAAC8nF,IAAAA,GAAO,IAAI9nF,EAAEjC,EAAE,OAAO,QAAQA,EAAE,QAAQiC,EAAE3mB,KAAKqsP,QAAQ5sP,OAAO,UAAK,IAASknB,OAAE,EAAOA,EAAE,UAAK,IAASjC,OAAE,EAAOA,EAAE,EAAE,CAACzF,MAAAA,CAAO0H,GAAG,OAAO3mB,KAAKqsP,QAAQptO,OAAO0H,EAAE,CAAC2P,IAAAA,CAAK3P,GAAG,OAAO3mB,KAAKqsP,QAAQ/1N,KAAK3P,EAAE,CAACq6I,SAAAA,CAAUr6I,GAAG,OAAO3mB,KAAKqsP,QAAQrrF,UAAUr6I,EAAE,CAAC8lO,aAAAA,CAAc9lO,EAAEjC,GAAG,MAAMC,EAAE3kB,KAAKqsP,QAAQptO,QAAQ0H,IAAI,IAAIhC,EAAE,OAAOD,IAAI,QAAQC,EAAE,MAAMgC,OAAE,EAAOA,EAAE,UAAK,IAAShC,OAAE,EAAOA,EAAEmtF,SAASvkH,KAAIo5B,CAAC,IAAIC,EAAEjC,EAAEq8I,WAAWggB,IAAA,IAAEt8J,EAAEn3B,GAAEyzL,EAAA,OAAGt8J,IAAIiC,GAAGp5B,IAAIo5B,CAAC,IAAG,MAAM,CAAChC,EAAEiC,EAAE,CAAC0F,IAAAA,CAAK3F,EAAEjC,GAAG,IAAIn3B,EAAE,MAAMo3B,EAAEiC,GAAG5mB,KAAKysP,cAAc9lO,IAAIjC,GAAG,OAAO,IAAIkC,EAAE,QAAQr5B,EAAEo3B,EAAEiC,EAAE,UAAK,IAASr5B,OAAE,EAAOA,EAAE,QAAG,CAAM,CAACg/B,IAAAA,CAAK5F,EAAEjC,GAAG,IAAIn3B,EAAE,MAAMo3B,EAAEiC,GAAG5mB,KAAKysP,cAAc9lO,IAAIjC,GAAG,OAAO,IAAIkC,EAAE,QAAQr5B,EAAEo3B,EAAEiC,EAAE,UAAK,IAASr5B,OAAE,EAAOA,EAAE,QAAG,CAAM,CAAC4+P,UAAAA,GAAa,OAAOnsP,KAAKif,QAAQ0H,GAAGA,EAAE,GAAGqlO,SAAS,CAACU,kBAAAA,GAAqB,OAAO1sP,KAAKif,QAAQ0H,IAAIA,EAAE,GAAGmrF,SAASvkH,KAAIo5B,EAAE,GAAGqlO,SAAS,EAAE,MAAMxpH,GAAE,CAAC0pH,MAAM,GAAG5vC,WAAW,MAAMniI,UAAU,CAAC,IAAI,GAAG,IAAI,KAAK0/J,SAAS,KAAW71G,GAAEr9G,EAAAA,cAAgB,CAAC,GAA6hB,MAA+P46G,GAAE,CAAC59H,QAAQ,CAAC,GAAG8qB,GAAEA,OAAO,SAASwmG,GAACgsD,GAAoY,IAAlY0rE,UAAUjoO,EAAEkoO,WAAWjoO,EAAEzkB,SAAS0mB,EAAEimO,OAAOv+P,EAAEw+P,OAAOtkO,EAAEi4H,mBAAmBvxJ,EAAE,IAAI69P,eAAevoO,EAAEwoO,mBAAmBl+P,EAAEm+P,OAAOpuO,EAAE4P,GAAExd,SAAS2T,EAAE6J,GAAEkgH,YAAY9pH,EAAEknJ,UAAUh9C,EAAEm+H,YAAYjmO,EAAEonI,SAASp9B,EAAExiG,GAAE6/H,YAAY73B,EAAEmY,aAAan8F,EAAEo8F,WAAWvvH,EAAE6tO,QAAQxlO,EAAE8G,GAAE93B,QAAQ8wB,EAAE+6G,GAAEynH,yBAAyB/8B,EAAE,GAAG88B,cAAc76P,EAAE,GAAG46P,mBAAmBnoH,EAAE,GAAGsoH,iBAAiBhpH,EAAE,GAAGksH,OAAOl+H,EAAEqS,GAAE8rH,IAAIt3H,EAAEu3H,WAAWvlO,GAAEk5J,EAAE,MAAMzyJ,EAAEE,GAAEhK,GAAGwnG,EAAEx9F,GAAE/J,GAAGswG,EAAEvmG,GAAEpgC,GAAG0gI,EAAEtgG,GAAElG,GAAGgwG,EAAE7xG,EAAAA,OAAS,OAAOs9G,GAAGt9G,EAAAA,SAAW,CAAC,GAAG+/F,EAAG//F,EAAAA,SAAW,IAAI3rB,OAAO+rB,OAAO/rB,OAAO+rB,OAAO/rB,OAAO+rB,OAAO,CAAC,EAAEy7G,IAAG/6G,GAAG,CAAC5mB,KAAK23H,EAAE70H,WAAW,CAAC8jB,EAAE+wG,EAAE70H,UAAUyjH,EAAGzgG,EAAAA,OAAS,IAAIwlG,IAAGxoH,QAAQk2E,EAAG,SAASn1D,EAAEC,GAAG,MAAMiC,EAAEt4B,GAAGq4B,EAAAA,SAAW,IAAI33B,EAAE23B,EAAAA,SAAW,IAAhyFjC,IAAGiC,EAAAA,SAAWw+H,QAAQzgI,GAAGp3B,IAAI4hI,IAAGjwG,OAAO1I,SAA6vFm1G,CAAEhnG,IAAI,CAACA,IAAI,OAAOiC,EAAAA,WAAa,KAAK,MAAMA,EAAE33B,EAAEiwB,OAAO1I,SAAS5oB,KAAK,IAAIg3B,EAAE4nO,2BAA2BttO,QAAQ0H,IAAI33B,EAAE8iH,SAASnrF,KAAK/V,SAAS+V,IAAI,IAAIjC,EAAEkC,EAAE,MAAMt4B,GAAG,QAAQo2B,EAAEC,EAAE8pF,cAAS,IAAS/pF,OAAE,EAAOA,EAAE7qB,OAAO8sB,IAAI,QAAQC,EAAEjC,EAAE2H,KAAK3F,UAAK,IAASC,OAAE,EAAOA,EAAE/sB,MAAM,GAAG8qB,EAAEzQ,OAAO5lB,GAAGq2B,EAAEzQ,OAAO,GAAGyS,IAAIp5B,MAAKo3B,EAAEzQ,OAAOyS,EAAE,IAAIr4B,EAAEq4B,EAAE,GAAG,CAAC33B,EAAE21B,IAAIiC,CAAC,CAA7X,CAA+XA,EAAEwgG,GAAIn6H,EAAG6pI,GAAEnwG,EAAAA,SAAW,MAAMsxC,MAAMmvD,EAAG2kI,aAAalyK,EAAGljF,QAAQ+vH,EAAGnkG,KAAK0hH,KAAK,CAAC7c,EAAGvtC,EAAGoqD,EAAEvd,KAAMO,IAAKh6H,EAAGT,OAAOs6H,EAAGngG,EAAAA,SAAW,IAAI,SAASA,GAAe,IAAbjC,EAACn4B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAC,GAAGgB,EAAChB,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EAACk4B,EAACp4B,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EAACm6B,EAACr6B,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EAAC6B,EAAC/B,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EAAE,IAAIuC,EAAED,EAAE,MAAME,EAAE+qB,GAAE0K,GAAGsC,KAAK,QAAQh4B,EAAE23B,EAAEuqB,eAAU,IAASliD,OAAE,EAAOA,EAAEg9P,SAASzuO,KAAK,QAAQxuB,EAAE43B,EAAE8nF,cAAS,IAAS1/G,OAAE,EAAOA,EAAEi9P,SAASjkP,EAAE2c,IAAI,IAAIn3B,EAAE,OAAO,QAAQA,EAAEo5B,EAAE2P,MAAM3P,GAAGA,EAAE,GAAG9sB,MAAM4Z,OAAOiR,YAAO,IAASn3B,OAAE,EAAOA,EAAE,EAAE,EAAEi7B,EAAEA,KAAK,IAAI9D,EAAEn3B,EAAE,OAAOo5B,EAAE2F,KAAK,QAAQ/+B,EAAE,QAAQm3B,EAAEiC,EAAEwlO,oBAAe,IAASznO,OAAE,EAAOA,EAAE,UAAK,IAASn3B,OAAE,EAAOA,EAAE,GAAG,EAAE2B,EAAEA,KAAK,IAAIw1B,EAAEn3B,EAAEo3B,EAAEiC,EAAE,OAAOD,EAAE4F,KAAK,QAAQ3F,EAAE,QAAQjC,EAAE,QAAQp3B,EAAE,QAAQm3B,EAAEiC,EAAEwlO,oBAAe,IAASznO,OAAE,EAAOA,EAAEjlB,aAAQ,IAASlS,OAAE,EAAOA,EAAE8e,KAAKqY,GAAG,UAAK,IAASC,OAAE,EAAOA,EAAE,UAAK,IAASiC,OAAE,EAAOA,EAAE,GAAG,EAAE,MAAM,CAAC2mO,YAAYxlP,EAAEylP,mBAAmB9rH,GAAE+rH,eAAe/oO,IAAI,IAAIn3B,EAAE,OAAO,QAAQA,EAAEo5B,EAAE2P,MAAM3P,GAAGlT,OAAOkT,EAAE,GAAGn5B,SAASimB,OAAOiR,YAAO,IAASn3B,OAAE,EAAOA,EAAE,EAAE,EAAEmgQ,sBAAsBzzH,GAAE0zH,YAAYz+P,EAAE0+P,eAAeA,KAAK,IAAIlpO,EAAEn3B,EAAEo3B,EAAEiC,EAAE,OAAOD,EAAE4F,KAAK,QAAQ3F,EAAE,QAAQjC,EAAE,QAAQp3B,EAAE,QAAQm3B,EAAEiC,EAAE+lO,4BAAuB,IAAShoO,OAAE,EAAOA,EAAEjlB,aAAQ,IAASlS,OAAE,EAAOA,EAAE8e,KAAKqY,GAAG,UAAK,IAASC,OAAE,EAAOA,EAAE,UAAK,IAASiC,OAAE,EAAOA,EAAE,IAAG,EAAG,EAAEinO,YAAYrlO,EAAEslO,eAAeA,KAAK,IAAIppO,EAAEn3B,EAAE,OAAOo5B,EAAE2F,KAAK,QAAQ/+B,EAAE,QAAQm3B,EAAEiC,EAAE+lO,4BAAuB,IAAShoO,OAAE,EAAOA,EAAE,UAAK,IAASn3B,OAAE,EAAOA,EAAE,IAAG,EAAG,EAAEwgQ,mBAAmB/mO,EAAEgnO,cAAcrnO,GAAG13B,EAAE6iH,SAASr+F,OAAOkT,IAAIsnO,WAAWvpO,GAAGiC,EAAE8nF,SAAS1mG,EAAE2c,GAAGwpO,kBAAkB3wO,EAAE4wO,WAAW,SAACxnO,EAAEjC,EAAE11B,GAAiE,IAA9DkN,SAASnN,EAAEusG,KAAKrsG,EAAEi8P,SAASlkO,GAAG,MAAMz5B,OAAE,EAAOA,EAAEoW,UAASpX,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAC,CAAC,EAAK,MAAMgxB,EAAE,MAAMoJ,EAAEA,EAAE,MAAMhC,OAAE,EAAOA,EAAEqvM,SAAS,OAAOh3M,GAAE9tB,IAAIquB,EAAEmH,GAAG,QAAQ11B,GAAG,UAAU,CAACk8P,SAASlkO,EAAE9qB,SAAS,MAAMnN,EAAEA,EAAE,MAAM41B,OAAE,EAAOA,EAAEzoB,SAASo/F,KAAK,MAAMrsG,EAAEA,EAAE,MAAM01B,OAAE,EAAOA,EAAE22E,MAAM10E,GAAGt4B,EAAE,EAAE8/P,WAAW,SAACznO,EAAEjC,EAAE11B,GAAiE,IAA9DkN,SAASnN,EAAEusG,KAAKrsG,EAAEi8P,SAASlkO,GAAG,MAAMz5B,OAAE,EAAOA,EAAEoW,UAASpX,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAC,CAAC,EAAK,MAAMgxB,EAAE,MAAMoJ,EAAEA,EAAE,MAAMhC,OAAE,EAAOA,EAAEqvM,SAAS,OAAOh3M,GAAEwL,IAAIjL,EAAEmH,GAAG,MAAM11B,GAAG,UAAU,CAACk8P,SAASlkO,EAAE9qB,SAAS,MAAMnN,EAAEA,EAAE,MAAM41B,OAAE,EAAOA,EAAEzoB,SAASo/F,KAAK,MAAMrsG,EAAEA,EAAE,MAAM01B,OAAE,EAAOA,EAAE22E,MAAM10E,GAAGt4B,EAAE,EAAE+/P,aAAaA,CAAC1nO,EAAEjC,EAAEkC,EAAE53B,EAAED,KAAK,IAAIE,EAAE+3B,EAAE,OAAOhK,GAAE2J,EAAE,MAAMjC,EAAEA,EAAE,MAAMC,OAAE,EAAOA,EAAEqvM,SAASptM,EAAE53B,EAAEgM,OAAO+rB,OAAO/rB,OAAO+rB,OAAO,CAACmkO,SAAS,MAAM39P,OAAE,EAAOA,EAAEoW,SAAS5U,GAAG,CAACmN,SAAS,QAAQjN,EAAE,MAAMF,OAAE,EAAOA,EAAEmN,gBAAW,IAASjN,EAAEA,EAAE,MAAM01B,OAAE,EAAOA,EAAEzoB,SAASo/F,KAAK,QAAQt0E,EAAE,MAAMj4B,OAAE,EAAOA,EAAEusG,YAAO,IAASt0E,EAAEA,EAAE,MAAMrC,OAAE,EAAOA,EAAE22E,OAAOhtG,EAAE,EAAEggQ,gBAAgBr/P,EAAEs/P,8BAA8B7pO,EAAE4mI,aAAa5mI,EAAE8pO,8BAA8Bv/P,EAAE,CAAjpE,CAAmpEm4H,EAAGn6H,EAAGurI,EAAE,CAACt8H,SAAShN,EAAEosG,KAAK92E,EAAEwvM,SAASllO,GAAGinI,EAAEhuG,IAAI,CAACq/F,EAAGn6H,EAAG4sF,EAAGk8C,EAAEhuG,IAAIg/F,EAAGpgG,EAAAA,aAAe,IAAI3rB,OAAO+rB,OAAO/rB,OAAO+rB,OAAO,CAAC,EAAE+/F,GAAI,CAAC2nI,aAAaxnI,EAAGhvD,MAAMmvD,EAAGmnI,8BAA8BthQ,EAAGyhQ,gBAAgBl2H,KAAK,CAAC1R,EAAGG,EAAGG,EAAGn6H,EAAGurI,KAAKrR,EAAGd,GAAI1/F,EAAAA,SAAWogG,IAAK,SAAA4nI,GAA4C,IAAlCl+N,GAAG/L,EAAGA,OAAQ0L,UAAU7iC,EAAEwoK,KAAKpxI,GAAEgqO,EAAEhoO,EAAAA,WAAa,KAAKp5B,GAAGm3B,GAAG,GAAG,CAACC,EAAEp3B,GAAG,CAA9E,CAAgF,CAACkjC,GAAGA,IAAI7L,EAAEuiG,GAAI/2F,UAAU,SAAAw+N,GAA4B,IAAlBn+N,GAAG/L,EAAE0L,UAAU7iC,GAAEqhQ,EAAE,MAAMjqO,EAAEiC,GAAGD,EAAAA,UAAW,GAAI,OAAOA,EAAAA,WAAa,KAAKp5B,IAAIo3B,IAAIiC,GAAE,GAAIlC,IAAI,GAAG,CAACn3B,EAAEo3B,IAAIA,CAAC,CAA7G,CAA+G,CAAC8L,GAAGA,IAAI5R,EAAEsoG,GAAI/2F,UAAU62F,IAAK8uC,KAAKj9J,KAAKC,UAAU9L,EAAGE,OAAOsmB,OAAO,MAAM0zG,OAAG,EAAOA,EAAG4mI,qBAAqB5gQ,OAAOsmB,OAAO,MAAM0zG,OAAG,EAAOA,EAAG+mI,uBAAuBvnO,EAAAA,WAAa,IAAI0/F,EAAGU,MAAO,CAACA,IAAKmI,EAAEvrH,QAAQwjH,EAAG,MAAME,EAAG1gG,EAAAA,aAAeA,GAAGsqG,EAAE9J,EAAGxgG,IAAI,CAACsqG,EAAE9J,IAAKX,EAAG7/F,EAAAA,aAAeA,GAAGgB,EAAEw/F,EAAGxgG,IAAI,CAACgB,EAAEw/F,IAAKV,EAAG9/F,EAAAA,SAAW,IAAI,GAAG33B,MAAKkyI,KAAK,CAACA,IAAI5Z,EAAG3gG,EAAAA,SAAW,IAAI,GAAGumM,IAAIn3F,EAAE,OAAO,MAAM,CAACA,EAAEm3F,IAAI,OAAOvmM,EAAAA,cAAgB,MAAM,CAACxmB,UAAUsmH,EAAG0mI,QAAQ3mI,EAAGmoB,YAAY,MAAM9pH,OAAE,EAAOA,EAAEsiG,GAAI4kD,UAAU,MAAMh9C,OAAE,EAAOA,EAAE5H,GAAI+lI,YAAY,MAAMjmO,OAAE,EAAOA,EAAEkgG,GAAIynB,aAAa,MAAMn8F,OAAE,EAAOA,EAAE00E,GAAImnC,YAAY,MAAM73B,OAAE,EAAOA,EAAEtP,GAAI0nB,WAAW,MAAMvvH,OAAE,EAAOA,EAAE6nG,IAAKxgG,EAAAA,cAAgBq9G,GAAEssB,SAAS,CAACjkK,MAAM86H,GAAIxgG,EAAAA,cAAgB,MAAM,CAACxmB,UAAUlR,IAAGgmI,GAAGtuG,EAAAA,cAAgB,MAAM,CAACxmB,UAAUpR,IAAG43B,EAAAA,cAAgB,MAAM,CAACxmB,UAAU6mB,IAAGwH,GAAG7H,EAAAA,cAAgB8B,GAAE,CAACtoB,UAAUmnH,EAAG+mC,SAAShnC,EAAGqjI,UAAUlyH,GAAG7xG,EAAAA,cAAgB6rB,GAAE,CAACjwB,KAAK0hH,EAAE+lH,cAAc76P,EAAE46P,mBAAmBnoH,GAAGh7G,IAAID,EAAAA,cAAgB,MAAM,CAACxmB,UAAUod,IAAG2uG,IAAIvlG,EAAAA,cAAgB,MAAM,CAACxmB,UAAU4H,IAAGinH,IAAI,+DCcjtc,IAAInqH,GAAsC,qBAAXF,OAAyBvG,EAAAA,gBAAwBA,EAAAA,UAM5E8wB,GAAsB9wB,EAAAA,YAAiB,SAAgB9C,EAAO+C,GAChE,IAAI6B,EAAW5E,EAAM4E,SACjBkV,EAAY9Z,EAAM8Z,UAClBy5O,EAAuBvzP,EAAMwzP,cAC7BA,OAAyC,IAAzBD,GAA0CA,EAC1DE,EAAazzP,EAAMyzP,WAEnBnrP,EAAkBxF,EAAAA,SAAe,MACjC4wP,EAAYprP,EAAgB,GAC5BqrP,EAAerrP,EAAgB,GAE/BgqK,GAAY5oK,EAAAA,GAAAA,GAAyB5G,EAAAA,eAAqB8B,GAAYA,EAAS7B,IAAM,KAAMA,GAsB/F,OArBAwG,IAAkB,WACXiqP,GACHG,EA1BN,SAAsB75O,GAGpB,OAFAA,EAAiC,oBAAdA,EAA2BA,IAAcA,EAErD7N,EAAAA,YAAqB6N,EAC9B,CAsBmB85O,CAAa95O,IAAc5Q,SAASgtC,KAErD,GAAG,CAACp8B,EAAW05O,IACfjqP,IAAkB,WAChB,GAAImqP,IAAcF,EAEhB,OADAlqP,EAAAA,GAAAA,GAAOvG,EAAK2wP,GACL,YACLpqP,EAAAA,GAAAA,GAAOvG,EAAK,KACd,CAIJ,GAAG,CAACA,EAAK2wP,EAAWF,IACpBjqP,IAAkB,WACZkqP,IAAeC,GAAaF,IAC9BC,GAEJ,GAAG,CAACA,EAAYC,EAAWF,IAEvBA,EACgB1wP,EAAAA,eAAqB8B,GACjB9B,EAAAA,aAAmB8B,EAAU,CAC/C7B,IAAKuvK,IAIF1tK,EAGF8uP,EAAyBznP,EAAAA,aAAsBrH,EAAU8uP,GAAaA,CAC/E,IA2CA,2IC1FO,SAASG,GAAW5qP,EAAMwrC,GAC3BA,EACFxrC,EAAKyR,aAAa,cAAe,QAEjCzR,EAAKmjB,gBAAgB,cAEzB,CAEA,SAAS0nO,GAAgB7qP,GACvB,OAAO9W,SAASkX,OAAOya,iBAAiB7a,GAAM,iBAAkB,KAAO,CACzE,CAEA,SAAS8qP,GAAmBj6O,EAAW45O,EAAWM,GAChD,IAAIC,EAAiBhjQ,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GACrFwjD,EAAOxjD,UAAUC,OAAS,EAAID,UAAU,QAAKE,EAC7C0hC,EAAY,CAAC6gO,EAAWM,GAAaniQ,QAAO+xB,EAAAA,GAAAA,GAAmBqwO,IAC/DC,EAAoB,CAAC,WAAY,SAAU,SAC/C,GAAG5+O,QAAQvE,KAAK+I,EAAUlV,UAAU,SAAUqE,GACtB,IAAlBA,EAAKmE,WAA+C,IAA7BylB,EAAUrgC,QAAQyW,KAA6D,IAA7CirP,EAAkB1hQ,QAAQyW,EAAKuC,UAC1FqoP,GAAW5qP,EAAMwrC,EAErB,GACF,CAEA,SAAS0/M,GAAY5wI,EAAej6E,GAClC,IAAI4tH,GAAO,EASX,OARA3zC,EAAcs2C,MAAK,SAAU/wI,EAAM52B,GACjC,QAAIo3C,EAASxgB,KACXouI,EAAMhlK,GACC,EAIX,IACOglK,CACT,CAEA,SAASk9F,GAAgB7wI,EAAevjH,GACtC,IAGIq0P,EAHAC,EAAe,GACfC,EAAkB,GAClBz6O,EAAYypG,EAAczpG,UAG9B,IAAK9Z,EAAMw0P,kBAAmB,CAC5B,GAtDJ,SAAuB16O,GACrB,IAAI9N,GAAMhD,EAAAA,GAAAA,GAAc8Q,GAExB,OAAI9N,EAAIkqC,OAASp8B,GACR3Q,EAAAA,GAAAA,GAAY6C,GAAK+vK,WAAa/vK,EAAIuV,gBAAgBqnI,YAGpD9uI,EAAUi6I,aAAej6I,EAAU+uI,YAC5C,CA8CQ4rG,CAAc36O,GAAY,CAE5B,IAAI46O,EC7DK,WACb,IAAIC,EAAYzrP,SAASsD,cAAc,OACvCmoP,EAAUpnP,MAAMxO,MAAQ,OACxB41P,EAAUpnP,MAAMvL,OAAS,OACzB2yP,EAAUpnP,MAAMohB,SAAW,WAC3BgmO,EAAUpnP,MAAM+S,IAAM,UACtBq0O,EAAUpnP,MAAM4pF,SAAW,SAC3BjuF,SAASgtC,KAAKn7B,YAAY45O,GAC1B,IAAID,EAAgBC,EAAU50L,YAAc40L,EAAU/rG,YAEtD,OADA1/I,SAASgtC,KAAKh7B,YAAYy5O,GACnBD,CACT,CDkD0BE,GACpBN,EAAaxgQ,KAAK,CAChB/C,MAAO+oB,EAAUvM,MAAMnY,aACvBmJ,IAAK,gBACLgc,GAAIT,IAGNA,EAAUvM,MAAM,iBAAmB,GAAG1b,OAAOiiQ,GAAgBh6O,GAAa46O,EAAe,MAEzFL,GAAarrP,EAAAA,GAAAA,GAAc8Q,GAAWmV,iBAAiB,cACvD,GAAG3Z,QAAQvE,KAAKsjP,GAAY,SAAUprP,GACpCsrP,EAAgBzgQ,KAAKmV,EAAKsE,MAAMnY,cAChC6T,EAAKsE,MAAMnY,aAAe,GAAGvD,OAAOiiQ,GAAgB7qP,GAAQyrP,EAAe,KAC7E,GACF,CAIA,IAAIziP,EAAS6H,EAAU2lM,cACnB2zC,EAAsC,SAApBnhP,EAAOilG,UAAyE,WAAlD7tG,OAAOya,iBAAiB7R,GAAQ,cAA6BA,EAAS6H,EAG1Hw6O,EAAaxgQ,KAAK,CAChB/C,MAAOqiQ,EAAgB7lP,MAAM4pF,SAC7B54F,IAAK,WACLgc,GAAI64O,IAENA,EAAgB7lP,MAAM4pF,SAAW,QACnC,CA0BA,OAxBc,WACRk9J,GACF,GAAG/+O,QAAQvE,KAAKsjP,GAAY,SAAUprP,EAAMjW,GACtCuhQ,EAAgBvhQ,GAClBiW,EAAKsE,MAAMnY,aAAem/P,EAAgBvhQ,GAE1CiW,EAAKsE,MAAMkD,eAAe,gBAE9B,IAGF6jP,EAAah/O,SAAQ,SAAU/c,GAC7B,IAAIxH,EAAQwH,EAAKxH,MACbwpB,EAAKhiB,EAAKgiB,GACVhc,EAAMhG,EAAKgG,IAEXxN,EACFwpB,EAAGhN,MAAMmD,YAAYnS,EAAKxN,GAE1BwpB,EAAGhN,MAAMkD,eAAelS,EAE5B,GACF,CAGF,CAoBA,IAAIs2P,GAA4B,WAC9B,SAASA,KE3IX,SAAyBlhQ,EAAG1B,GAC1B,KAAM0B,aAAa1B,GAAI,MAAM,IAAIm7B,UAAU,oCAC7C,CF0IIwjH,CAAgBlsI,KAAMmwP,GAGtBnwP,KAAKowP,OAAS,GAMdpwP,KAAKqwP,WAAa,EACpB,CAkGA,OAhGAnjP,EAAAA,GAAAA,GAAaijP,EAAc,CAAC,CAC1Bt2P,IAAK,MACLxN,MAAO,SAAa8S,EAAOiW,GACzB,IAAIk7O,EAAatwP,KAAKowP,OAAOtiQ,QAAQqR,GAErC,IAAoB,IAAhBmxP,EACF,OAAOA,EAGTA,EAAatwP,KAAKowP,OAAO5jQ,OACzBwT,KAAKowP,OAAOhhQ,KAAK+P,GAEbA,EAAMoxP,UACRpB,GAAWhwP,EAAMoxP,UAAU,GAG7B,IAAIC,EAhDV,SAA2Bp7O,GACzB,IAAIq7O,EAAiB,GAMrB,MALA,GAAG7/O,QAAQvE,KAAK+I,EAAUlV,UAAU,SAAUqE,GACxCA,EAAK2Q,cAAqD,SAArC3Q,EAAK2Q,aAAa,gBACzCu7O,EAAerhQ,KAAKmV,EAExB,IACOksP,CACT,CAwC+BC,CAAkBt7O,GAC3Ci6O,GAAmBj6O,EAAWjW,EAAM6vP,UAAW7vP,EAAMoxP,SAAUC,GAAoB,GACnF,IAAIG,EAAiBlB,GAAYzvP,KAAKqwP,YAAY,SAAUjsO,GAC1D,OAAOA,EAAKhP,YAAcA,CAC5B,IAEA,OAAwB,IAApBu7O,GACF3wP,KAAKqwP,WAAWM,GAAgBP,OAAOhhQ,KAAK+P,GACrCmxP,IAGTtwP,KAAKqwP,WAAWjhQ,KAAK,CACnBghQ,OAAQ,CAACjxP,GACTiW,UAAWA,EACXu0E,QAAS,KACT6mK,mBAAoBA,IAEfF,EACT,GACC,CACDz2P,IAAK,QACLxN,MAAO,SAAe8S,EAAO7D,GAC3B,IAAIq1P,EAAiBlB,GAAYzvP,KAAKqwP,YAAY,SAAUjsO,GAC1D,OAAuC,IAAhCA,EAAKgsO,OAAOtiQ,QAAQqR,EAC7B,IACI0/G,EAAgB7+G,KAAKqwP,WAAWM,GAE/B9xI,EAAcl1B,UACjBk1B,EAAcl1B,QAAU+lK,GAAgB7wI,EAAevjH,GAE3D,GACC,CACDzB,IAAK,SACLxN,MAAO,SAAgB8S,GACrB,IAAImxP,EAAatwP,KAAKowP,OAAOtiQ,QAAQqR,GAErC,IAAoB,IAAhBmxP,EACF,OAAOA,EAGT,IAAIK,EAAiBlB,GAAYzvP,KAAKqwP,YAAY,SAAUjsO,GAC1D,OAAuC,IAAhCA,EAAKgsO,OAAOtiQ,QAAQqR,EAC7B,IACI0/G,EAAgB7+G,KAAKqwP,WAAWM,GAIpC,GAHA9xI,EAAcuxI,OAAO7/O,OAAOsuG,EAAcuxI,OAAOtiQ,QAAQqR,GAAQ,GACjEa,KAAKowP,OAAO7/O,OAAO+/O,EAAY,GAEK,IAAhCzxI,EAAcuxI,OAAO5jQ,OAEnBqyH,EAAcl1B,SAChBk1B,EAAcl1B,UAGZxqF,EAAMoxP,UAERpB,GAAWhwP,EAAMoxP,UAAU,GAG7BlB,GAAmBxwI,EAAczpG,UAAWjW,EAAM6vP,UAAW7vP,EAAMoxP,SAAU1xI,EAAc2xI,oBAAoB,GAC/GxwP,KAAKqwP,WAAW9/O,OAAOogP,EAAgB,OAClC,CAEL,IAAIC,EAAU/xI,EAAcuxI,OAAOvxI,EAAcuxI,OAAO5jQ,OAAS,GAI7DokQ,EAAQL,UACVpB,GAAWyB,EAAQL,UAAU,EAEjC,CAEA,OAAOD,CACT,GACC,CACDz2P,IAAK,aACLxN,MAAO,SAAoB8S,GACzB,OAAOa,KAAKowP,OAAO5jQ,OAAS,GAAKwT,KAAKowP,OAAOpwP,KAAKowP,OAAO5jQ,OAAS,KAAO2S,CAC3E,KAGKgxP,CACT,CA/GgC,GGoEhC,SAnMA,SAA4B70P,GAC1B,IAAI4E,EAAW5E,EAAM4E,SACjB2wP,EAAwBv1P,EAAMw1P,iBAC9BA,OAA6C,IAA1BD,GAA2CA,EAC9DE,EAAwBz1P,EAAM01P,oBAC9BA,OAAgD,IAA1BD,GAA2CA,EACjEE,EAAwB31P,EAAM41P,oBAC9BA,OAAgD,IAA1BD,GAA2CA,EACjEE,EAAS71P,EAAM61P,OACf5wC,EAAYjlN,EAAMilN,UAClBv7K,EAAO1pC,EAAM0pC,KACbosN,EAAyBhzP,EAAAA,SACzBizP,EAAgBjzP,EAAAA,OAAa,MAC7BkzP,EAAclzP,EAAAA,OAAa,MAC3BmzP,EAAgBnzP,EAAAA,SAChBozP,EAAUpzP,EAAAA,OAAa,MAEvBuvK,EAAevvK,EAAAA,aAAkB,SAAUiJ,GAE7CmqP,EAAQ7tP,QAAU4D,EAAAA,YAAqBF,EACzC,GAAG,IACCumK,GAAY5oK,EAAAA,GAAAA,GAAW9E,EAAS7B,IAAKsvK,GACrC8jF,EAAcrzP,EAAAA,SAsGlB,OArGAA,EAAAA,WAAgB,WACdqzP,EAAY9tP,QAAUqhC,CACxB,GAAG,CAACA,KAECysN,EAAY9tP,SAAWqhC,GAA0B,qBAAXrgC,SASzC4sP,EAAc5tP,QAAUwtP,IAASn+I,eAGnC50G,EAAAA,WAAgB,WACd,GAAK4mC,EAAL,CAIA,IAAI19B,GAAMhD,EAAAA,GAAAA,GAAcktP,EAAQ7tP,SAE3BmtP,IAAoBU,EAAQ7tP,SAAY6tP,EAAQ7tP,QAAQ6kH,SAASlhH,EAAI0rG,iBACnEw+I,EAAQ7tP,QAAQ+tP,aAAa,aAKhCF,EAAQ7tP,QAAQqS,aAAa,YAAa,GAG5Cw7O,EAAQ7tP,QAAQnR,SAGlB,IAAIm/P,EAAU,WAIQ,OAHFH,EAAQ7tP,UAOrB2D,EAAIsqP,aAAcZ,GAAwBzwC,MAAe6wC,EAAuBztP,QAKjF6tP,EAAQ7tP,UAAY6tP,EAAQ7tP,QAAQ6kH,SAASlhH,EAAI0rG,gBACnDw+I,EAAQ7tP,QAAQnR,QALhB4+P,EAAuBztP,SAAU,EAOrC,EAEIkuP,EAAY,SAAmBzrP,IAE7B4qP,GAAwBzwC,KAAiC,IAAlBn6M,EAAM85G,SAK7C54G,EAAI0rG,gBAAkBw+I,EAAQ7tP,UAGhCytP,EAAuBztP,SAAU,EAE7ByC,EAAM67G,SACRqvI,EAAY3tP,QAAQnR,QAEpB6+P,EAAc1tP,QAAQnR,QAG5B,EAEA8U,EAAIE,iBAAiB,QAASmqP,GAAS,GACvCrqP,EAAIE,iBAAiB,UAAWqqP,GAAW,GAM3C,IAAIjuG,EAAW18G,aAAY,WACzByqN,GACF,GAAG,IACH,OAAO,WACLtqN,cAAcu8G,GACdt8I,EAAI0tB,oBAAoB,QAAS28N,GAAS,GAC1CrqP,EAAI0tB,oBAAoB,UAAW68N,GAAW,GAEzCX,IAKCK,EAAc5tP,SAAW4tP,EAAc5tP,QAAQnR,OACjD++P,EAAc5tP,QAAQnR,QAGxB++P,EAAc5tP,QAAU,KAE5B,CAhFA,CAiFF,GAAG,CAACmtP,EAAkBE,EAAqBE,EAAqB3wC,EAAWv7K,IACvD5mC,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoB,MAAO,CACpGwrJ,SAAU,EACVvrJ,IAAKgzP,EACL,YAAa,kBACEjzP,EAAAA,aAAmB8B,EAAU,CAC5C7B,IAAKuvK,IACUxvK,EAAAA,cAAoB,MAAO,CAC1CwrJ,SAAU,EACVvrJ,IAAKizP,EACL,YAAa,gBAEjB,EC9IO,IAAIhhQ,GAAS,CAElBuQ,KAAM,CACJnF,QAAS,EACTuuB,SAAU,QACVpO,MAAO,EACPH,OAAQ,EACRE,IAAK,EACLD,KAAM,EACN0yE,gBAAiB,qBACjB8/E,wBAAyB,eAI3BuJ,UAAW,CACTrpF,gBAAiB,gBAgCrB,SAzBkCjwF,EAAAA,YAAiB,SAAwB9C,EAAO+C,GAChF,IAAIyzP,EAAmBx2P,EAAMo8K,UACzBA,OAAiC,IAArBo6E,GAAsCA,EAClD9sN,EAAO1pC,EAAM0pC,KACbjwC,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,YAAa,SAE1D,OAAO0pC,EAAoB5mC,EAAAA,cAAoB,OAAOhO,EAAAA,EAAAA,GAAS,CAC7D,eAAe,EACfiO,IAAKA,GACJtJ,EAAO,CACR8T,OAAOzY,EAAAA,EAAAA,GAAS,CAAC,EAAGE,GAAOuQ,KAAM62K,EAAYpnL,GAAOonL,UAAY,CAAC,EAAG3iL,EAAM8T,UACtE,IACR,ICTA,IAAIkpP,GAAiB,IAAI5B,GAiCrB6B,GAAqB5zP,EAAAA,YAAiB,SAAe6zP,EAAS5zP,GAChE,IAAIE,GAAQI,EAAAA,EAAAA,KACRrD,GAAQsD,EAAAA,GAAAA,GAAc,CACxBf,KAAM,WACNvC,OAAOlL,EAAAA,EAAAA,GAAS,CAAC,EAAG6hQ,GACpB1zP,MAAOA,IAGL2zP,EAAwB52P,EAAM62P,kBAC9BA,OAA8C,IAA1BD,EAAmCE,GAAiBF,EACxEG,EAAgB/2P,EAAM+2P,cACtBnyP,EAAW5E,EAAM4E,SACjBoyP,EAAwBh3P,EAAMi3P,qBAC9BA,OAAiD,IAA1BD,GAA2CA,EAClEl9O,EAAY9Z,EAAM8Z,UAClBy7O,EAAwBv1P,EAAMw1P,iBAC9BA,OAA6C,IAA1BD,GAA2CA,EAC9D2B,EAAwBl3P,EAAMm3P,qBAC9BA,OAAiD,IAA1BD,GAA2CA,EAClEzB,EAAwBz1P,EAAM01P,oBAC9BA,OAAgD,IAA1BD,GAA2CA,EACjE2B,EAAwBp3P,EAAMq3P,qBAC9BA,OAAiD,IAA1BD,GAA2CA,EAClE7D,EAAuBvzP,EAAMwzP,cAC7BA,OAAyC,IAAzBD,GAA0CA,EAC1DoC,EAAwB31P,EAAM41P,oBAC9BA,OAAgD,IAA1BD,GAA2CA,EACjE2B,EAAwBt3P,EAAMw0P,kBAC9BA,OAA8C,IAA1B8C,GAA2CA,EAC/DC,EAAsBv3P,EAAMw3P,aAC5BA,OAAuC,IAAxBD,GAAyCA,EACxDE,EAAqBz3P,EAAM03P,YAC3BA,OAAqC,IAAvBD,GAAwCA,EACtDE,EAAiB33P,EAAM43P,QACvBA,OAA6B,IAAnBD,EAA4BlB,GAAiBkB,EACvDE,EAAkB73P,EAAM63P,gBACxBC,EAAU93P,EAAM83P,QAChBC,EAAkB/3P,EAAM+3P,gBACxBtE,EAAazzP,EAAMyzP,WACnB/pN,EAAO1pC,EAAM0pC,KACbjwC,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,oBAAqB,gBAAiB,WAAY,uBAAwB,YAAa,mBAAoB,uBAAwB,sBAAuB,uBAAwB,gBAAiB,sBAAuB,oBAAqB,eAAgB,cAAe,UAAW,kBAAmB,UAAW,kBAAmB,aAAc,SAEjYsI,EAAkBxF,EAAAA,UAAe,GACjCk1P,EAAS1vP,EAAgB,GACzB2vP,EAAY3vP,EAAgB,GAE5BzE,EAAQf,EAAAA,OAAa,CAAC,GACtBo1P,EAAep1P,EAAAA,OAAa,MAC5BmyP,EAAWnyP,EAAAA,OAAa,MACxBwvK,GAAY5oK,EAAAA,GAAAA,GAAWurP,EAAUlyP,GACjCo1P,EAzFN,SAA0Bn4P,GACxB,QAAOA,EAAM4E,UAAW5E,EAAM4E,SAAS5E,MAAMlI,eAAe,KAC9D,CAuFsBsgQ,CAAiBp4P,GAEjC61P,EAAS,WACX,OAAO7sP,EAAAA,GAAAA,GAAckvP,EAAa7vP,QACpC,EAEIgwP,EAAW,WAGb,OAFAx0P,EAAMwE,QAAQ4sP,SAAWA,EAAS5sP,QAClCxE,EAAMwE,QAAQqrP,UAAYwE,EAAa7vP,QAChCxE,EAAMwE,OACf,EAEIiwP,EAAgB,WAClBV,EAAQ15D,MAAMm6D,IAAY,CACxB7D,kBAAmBA,IAGrBS,EAAS5sP,QAAQinB,UAAY,CAC/B,EAEIipO,GAAa/uP,EAAAA,GAAAA,IAAiB,WAChC,IAAIgvP,EAnHR,SAAsB1+O,GAEpB,OADAA,EAAiC,oBAAdA,EAA2BA,IAAcA,EACrD7N,EAAAA,YAAqB6N,EAC9B,CAgH4B85O,CAAa95O,IAAc+7O,IAAS3/M,KAC5D0hN,EAAQllP,IAAI2lP,IAAYG,GAEpBvD,EAAS5sP,SACXiwP,GAEJ,IACIG,EAAa31P,EAAAA,aAAkB,WACjC,OAAO80P,EAAQa,WAAWJ,IAC5B,GAAG,CAACT,IACAc,IAAkBlvP,EAAAA,GAAAA,IAAiB,SAAUP,GAC/CivP,EAAa7vP,QAAUY,EAElBA,IAIDwqP,GACFA,IAGE/pN,GAAQ+uN,IACVH,IAEAzE,GAAWoB,EAAS5sP,SAAS,GAEjC,IACIswP,GAAc71P,EAAAA,aAAkB,WAClC80P,EAAQrnP,OAAO8nP,IACjB,GAAG,CAACT,IAcJ,GAbA90P,EAAAA,WAAgB,WACd,OAAO,WACL61P,IACF,CACF,GAAG,CAACA,KACJ71P,EAAAA,WAAgB,WACV4mC,EACF6uN,IACUJ,GAAkBlB,GAC5B0B,IAEJ,GAAG,CAACjvN,EAAMivN,GAAaR,EAAelB,EAAsBsB,KAEvDb,IAAgBhuN,KAAUyuN,GAAiBH,GAC9C,OAAO,KAGT,IAmDIY,GAzMc,SAAgB31P,GAClC,MAAO,CAELsC,KAAM,CACJopB,SAAU,QACVvuB,OAAQ6C,EAAM7C,OAAOyD,MACrB0c,MAAO,EACPH,OAAQ,EACRE,IAAK,EACLD,KAAM,GAIR8jD,OAAQ,CACNlpC,WAAY,UAGlB,CAwLoBjmC,CAAOiO,GAAS,CAChC7C,OAAQA,GAAAA,IAENy4P,GAAa,CAAC,EAYlB,YAVgC1nQ,IAA5ByT,EAAS5E,MAAMsuJ,WACjBuqG,GAAWvqG,SAAW1pJ,EAAS5E,MAAMsuJ,UAAY,MAI/C6pG,IACFU,GAAW1+E,SAAU/1K,EAAAA,GAAAA,IA9DL,WAChB6zP,GAAU,EACZ,GA4D0DrzP,EAAS5E,MAAMm6K,SACvE0+E,GAAWltF,UAAWvnK,EAAAA,GAAAA,IA3DL,WACjB6zP,GAAU,GAENhB,GACF0B,IAEJ,GAqD4D/zP,EAAS5E,MAAM2rK,WAGvD7oK,EAAAA,cAAoB8wB,GAAQ,CAC9C7wB,IAAK21P,GACL5+O,UAAWA,EACX05O,cAAeA,GACD1wP,EAAAA,cAAoB,OAAOhO,EAAAA,EAAAA,GAAS,CAClDiO,IAAKuvK,EACL/iB,UA9CkB,SAAuBzkJ,GAOvB,WAAdA,EAAMvM,KAAqBk6P,MAI3BV,GACFA,EAAgBjtP,GAGbusP,IAEHvsP,EAAMw5G,kBAEFwzI,GACFA,EAAQhtP,EAAO,kBAGrB,EAwBErF,KAAM,gBACLhM,EAAO,CACR8T,OAAOzY,EAAAA,EAAAA,GAAS,CAAC,EAAG8jQ,GAAYrzP,MAAOmkC,GAAQsuN,EAASY,GAAYz0L,OAAS,CAAC,EAAG1qE,EAAM8T,SACrFiqP,EAAe,KAAoB10P,EAAAA,cAAoB+zP,GAAmB/hQ,EAAAA,EAAAA,GAAS,CACrF40C,KAAMA,EACN87F,QAlEwB,SAA6B16H,GACjDA,EAAMQ,SAAWR,EAAMm6G,gBAIvB4yI,GACFA,EAAgB/sP,IAGbqsP,GAAwBW,GAC3BA,EAAQhtP,EAAO,iBAEnB,GAuDGisP,IAA8Bj0P,EAAAA,cAAoBg2P,GAAW,CAC9DpD,oBAAqBA,EACrBF,iBAAkBA,EAClBI,oBAAqBA,EACrBC,OAAQA,EACR5wC,UAAWwzC,EACX/uN,KAAMA,GACQ5mC,EAAAA,aAAmB8B,EAAUi0P,MAC/C,IAgIA,4CC3YA,UACY,ECDL,ICSIE,GAAY,YACZC,GAAS,SACTC,GAAW,WACXC,GAAU,UACVC,GAAU,UA6FjBC,GAA0B,SAAUxxG,GAGtC,SAASwxG,EAAWp5P,EAAOkrF,GACzB,IAAIp6E,EAEJA,EAAQ82I,EAAiB72I,KAAKrM,KAAM1E,EAAOkrF,IAAYxmF,KACvD,IAGI20P,EADAvsF,EAFc5hF,MAEuB0hF,WAAa5sK,EAAMwsK,MAAQxsK,EAAM8sK,OAuB1E,OArBAh8J,EAAMwoP,aAAe,KAEjBt5P,EAAMssK,GACJQ,GACFusF,EAAgBL,GAChBloP,EAAMwoP,aAAeL,IAErBI,EAAgBH,GAIhBG,EADEr5P,EAAMu5P,eAAiBv5P,EAAMw5P,aACfT,GAEAC,GAIpBloP,EAAM1I,MAAQ,CACZqhC,OAAQ4vN,GAEVvoP,EAAM2oP,aAAe,KACd3oP,CACT,EAhCAM,EAAAA,GAAAA,GAAegoP,EAAYxxG,GAkC3BwxG,EAAW1nO,yBAA2B,SAAkCn5B,EAAM8xJ,GAG5E,OAFa9xJ,EAAK+zK,IAEJjiB,EAAU5gH,SAAWsvN,GAC1B,CACLtvN,OAAQuvN,IAIL,IACT,EAkBA,IAAIrmP,EAASymP,EAAWjsP,UAkPxB,OAhPAwF,EAAOquH,kBAAoB,WACzBt8H,KAAKg1P,cAAa,EAAMh1P,KAAK40P,aAC/B,EAEA3mP,EAAO4wH,mBAAqB,SAA4BmU,GACtD,IAAIiiH,EAAa,KAEjB,GAAIjiH,IAAchzI,KAAK1E,MAAO,CAC5B,IAAIypC,EAAS/kC,KAAK0D,MAAMqhC,OAEpB/kC,KAAK1E,MAAMssK,GACT7iI,IAAWwvN,IAAYxvN,IAAWyvN,KACpCS,EAAaV,IAGXxvN,IAAWwvN,IAAYxvN,IAAWyvN,KACpCS,EAAaR,GAGnB,CAEAz0P,KAAKg1P,cAAa,EAAOC,EAC3B,EAEAhnP,EAAO40H,qBAAuB,WAC5B7iI,KAAKk1P,oBACP,EAEAjnP,EAAOknP,YAAc,WACnB,IACIttF,EAAMC,EAAOM,EADblmK,EAAUlC,KAAK1E,MAAM4G,QAWzB,OATA2lK,EAAOC,EAAQM,EAASlmK,EAET,MAAXA,GAAsC,kBAAZA,IAC5B2lK,EAAO3lK,EAAQ2lK,KACfC,EAAQ5lK,EAAQ4lK,MAEhBM,OAA4B37K,IAAnByV,EAAQkmK,OAAuBlmK,EAAQkmK,OAASN,GAGpD,CACLD,KAAMA,EACNC,MAAOA,EACPM,OAAQA,EAEZ,EAEAn6J,EAAO+mP,aAAe,SAAsBI,EAAUH,GAKpD,QAJiB,IAAbG,IACFA,GAAW,GAGM,OAAfH,EAIF,GAFAj1P,KAAKk1P,qBAEDD,IAAeV,GAAU,CAC3B,GAAIv0P,KAAK1E,MAAMu5P,eAAiB70P,KAAK1E,MAAMw5P,aAAc,CACvD,IAAIvwP,EAAOvE,KAAK1E,MAAM+5P,QAAUr1P,KAAK1E,MAAM+5P,QAAQ1xP,QAAU4D,EAAAA,YAAqBvH,MAI9EuE,GDzOW,SAAqBA,GACrCA,EAAKqmB,SACd,CCuOoB0qO,CAAY/wP,EACxB,CAEAvE,KAAKu1P,aAAaH,EACpB,MACEp1P,KAAKw1P,mBAEEx1P,KAAK1E,MAAMu5P,eAAiB70P,KAAK0D,MAAMqhC,SAAWuvN,IAC3Dt0P,KAAK+0I,SAAS,CACZhwG,OAAQsvN,IAGd,EAEApmP,EAAOsnP,aAAe,SAAsBH,GAC1C,IAAInvG,EAASjmJ,KAET8nK,EAAQ9nK,KAAK1E,MAAMwsK,MACnB2tF,EAAYz1P,KAAKwmF,QAAUxmF,KAAKwmF,QAAQ0hF,WAAaktF,EAErDhzO,EAAQpiB,KAAK1E,MAAM+5P,QAAU,CAACI,GAAa,CAACluP,EAAAA,YAAqBvH,MAAOy1P,GACxEC,EAAYtzO,EAAM,GAClBuzO,EAAiBvzO,EAAM,GAEvBwzO,EAAW51P,KAAKm1P,cAChBU,EAAeJ,EAAYG,EAASxtF,OAASwtF,EAAS9tF,OAGrDstF,IAAattF,GAAS1zI,GACzBp0B,KAAK81P,aAAa,CAChB/wN,OAAQyvN,KACP,WACDvuG,EAAO3qJ,MAAMy6P,UAAUL,EACzB,KAIF11P,KAAK1E,MAAMm6K,QAAQigF,EAAWC,GAC9B31P,KAAK81P,aAAa,CAChB/wN,OAAQwvN,KACP,WACDtuG,EAAO3qJ,MAAM06P,WAAWN,EAAWC,GAEnC1vG,EAAOgwG,gBAAgBJ,GAAc,WACnC5vG,EAAO6vG,aAAa,CAClB/wN,OAAQyvN,KACP,WACDvuG,EAAO3qJ,MAAMy6P,UAAUL,EAAWC,EACpC,GACF,GACF,IACF,EAEA1nP,EAAOunP,YAAc,WACnB,IAAI1uG,EAAS9mJ,KAET6nK,EAAO7nK,KAAK1E,MAAMusK,KAClB+tF,EAAW51P,KAAKm1P,cAChBO,EAAY11P,KAAK1E,MAAM+5P,aAAU5oQ,EAAY8a,EAAAA,YAAqBvH,MAEjE6nK,IAAQzzI,IASbp0B,KAAK1E,MAAM46P,OAAOR,GAClB11P,KAAK81P,aAAa,CAChB/wN,OAAQ0vN,KACP,WACD3tG,EAAOxrJ,MAAM66P,UAAUT,GAEvB5uG,EAAOmvG,gBAAgBL,EAAS/tF,MAAM,WACpC/gB,EAAOgvG,aAAa,CAClB/wN,OAAQuvN,KACP,WACDxtG,EAAOxrJ,MAAM2rK,SAASyuF,EACxB,GACF,GACF,KArBE11P,KAAK81P,aAAa,CAChB/wN,OAAQuvN,KACP,WACDxtG,EAAOxrJ,MAAM2rK,SAASyuF,EACxB,GAkBJ,EAEAznP,EAAOinP,mBAAqB,WACA,OAAtBl1P,KAAK+0P,eACP/0P,KAAK+0P,aAAajsO,SAClB9oB,KAAK+0P,aAAe,KAExB,EAEA9mP,EAAO6nP,aAAe,SAAsBpgH,EAAW9wG,GAIrDA,EAAW5kC,KAAKo2P,gBAAgBxxN,GAChC5kC,KAAK+0I,SAASW,EAAW9wG,EAC3B,EAEA32B,EAAOmoP,gBAAkB,SAAyBxxN,GAChD,IAAI4iH,EAASxnJ,KAET/N,GAAS,EAcb,OAZA+N,KAAK+0P,aAAe,SAAU3uP,GACxBnU,IACFA,GAAS,EACTu1J,EAAOutG,aAAe,KACtBnwN,EAASx+B,GAEb,EAEApG,KAAK+0P,aAAajsO,OAAS,WACzB72B,GAAS,CACX,EAEO+N,KAAK+0P,YACd,EAEA9mP,EAAOgoP,gBAAkB,SAAyB/zP,EAAS2yB,GACzD70B,KAAKo2P,gBAAgBvhO,GACrB,IAAItwB,EAAOvE,KAAK1E,MAAM+5P,QAAUr1P,KAAK1E,MAAM+5P,QAAQ1xP,QAAU4D,EAAAA,YAAqBvH,MAC9Eq2P,EAA0C,MAAXn0P,IAAoBlC,KAAK1E,MAAMg7P,eAElE,GAAK/xP,IAAQ8xP,EAAb,CAKA,GAAIr2P,KAAK1E,MAAMg7P,eAAgB,CAC7B,IAAI9yO,EAAQxjB,KAAK1E,MAAM+5P,QAAU,CAACr1P,KAAK+0P,cAAgB,CAACxwP,EAAMvE,KAAK+0P,cAC/DW,EAAYlyO,EAAM,GAClB+yO,EAAoB/yO,EAAM,GAE9BxjB,KAAK1E,MAAMg7P,eAAeZ,EAAWa,EACvC,CAEe,MAAXr0P,GACFK,WAAWvC,KAAK+0P,aAAc7yP,EAXhC,MAFEK,WAAWvC,KAAK+0P,aAAc,EAelC,EAEA9mP,EAAO0f,OAAS,WACd,IAAIoX,EAAS/kC,KAAK0D,MAAMqhC,OAExB,GAAIA,IAAWsvN,GACb,OAAO,KAGT,IAAI5sG,EAAcznJ,KAAK1E,MACnB4E,EAAWunJ,EAAYvnJ,SAgBvBi0P,GAfM1sG,EAAYmgB,GACFngB,EAAYqtG,aACXrtG,EAAYotG,cACnBptG,EAAY2gB,OACb3gB,EAAYqgB,MACbrgB,EAAYogB,KACTpgB,EAAYvlJ,QACLulJ,EAAY6uG,eACnB7uG,EAAYguB,QACThuB,EAAYuuG,WACbvuG,EAAYsuG,UACftuG,EAAYyuG,OACTzuG,EAAY0uG,UACb1uG,EAAYwf,SACbxf,EAAY4tG,SACVxiP,EAAAA,GAAAA,GAA8B40I,EAAa,CAAC,WAAY,KAAM,eAAgB,gBAAiB,SAAU,QAAS,OAAQ,UAAW,iBAAkB,UAAW,aAAc,YAAa,SAAU,YAAa,WAAY,aAEjP,OAGErpJ,EAAAA,cAAoBmqK,GAAuBjY,SAAU,CACnDjkK,MAAO,MACc,oBAAb6T,EAA0BA,EAAS6kC,EAAQovN,GAAc/1P,EAAAA,aAAmBA,EAAAA,SAAehE,KAAK8F,GAAWi0P,GAEzH,EAEOO,CACT,CAlT8B,CAkT5Bt2P,EAAAA,WA+LF,SAAS68I,KAAQ,CA7LjBy5G,GAAW9nO,YAAc27I,GACzBmsF,GAAWvuO,UA0LP,CAAC,EAILuuO,GAAWj2P,aAAe,CACxBmpK,IAAI,EACJktF,cAAc,EACdD,eAAe,EACfzsF,QAAQ,EACRN,OAAO,EACPD,MAAM,EACN4N,QAASx6B,GACT+6G,WAAY/6G,GACZ86G,UAAW96G,GACXi7G,OAAQj7G,GACRk7G,UAAWl7G,GACXgsB,SAAUhsB,IAEZy5G,GAAWL,UAAYA,GACvBK,GAAWJ,OAASA,GACpBI,GAAWH,SAAWA,GACtBG,GAAWF,QAAUA,GACrBE,GAAWD,QAAUA,GACrB,6CChnBW+B,GAAS,SAAgBjyP,GAClC,OAAOA,EAAKqmB,SACd,EACO,SAAS6rO,GAAmBn7P,EAAO3E,GACxC,IAAIuL,EAAU5G,EAAM4G,QAChBw0P,EAAep7P,EAAMuN,MACrBA,OAAyB,IAAjB6tP,EAA0B,CAAC,EAAIA,EAC3C,MAAO,CACLx6P,SAAU2M,EAAM43I,oBAAyC,kBAAZv+I,EAAuBA,EAAUA,EAAQvL,EAAQo/B,OAAS,EACvG74B,MAAO2L,EAAM8tP,gBAEjB,CCDA,IAAIrmQ,GAAS,CACXsmQ,SAAU,CACR/tL,QAAS,GAEXguL,QAAS,CACPhuL,QAAS,IAGTiuL,GAAiB,CACnBhvF,MAAO5rK,GAAAA,GAASM,eAChBqrK,KAAM3rK,GAAAA,GAASO,eAObs6P,GAAoB34P,EAAAA,YAAiB,SAAc9C,EAAO+C,GAC5D,IAAI6B,EAAW5E,EAAM4E,SACjB82P,EAAwB17P,EAAM27P,wBAC9BA,OAAoD,IAA1BD,GAA2CA,EACrEnuF,EAASvtK,EAAMssK,GACf6N,EAAUn6K,EAAMm6K,QAChBsgF,EAAYz6P,EAAMy6P,UAClBC,EAAa16P,EAAM06P,WACnBE,EAAS56P,EAAM46P,OACfjvF,EAAW3rK,EAAM2rK,SACjBkvF,EAAY76P,EAAM66P,UAClBttP,EAAQvN,EAAMuN,MACdquP,EAAwB57P,EAAM67P,oBAC9BA,OAAgD,IAA1BD,EAAmCxC,GAAawC,EACtEE,EAAiB97P,EAAM4G,QACvBA,OAA6B,IAAnBk1P,EAA4BN,GAAiBM,EACvDriQ,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,WAAY,0BAA2B,KAAM,UAAW,YAAa,aAAc,SAAU,WAAY,YAAa,QAAS,sBAAuB,YAE/LiD,EAAQI,KACR04P,EAAyB94P,EAAMwsI,sBAAwBksH,EACvD5B,EAAUj3P,EAAAA,OAAa,MACvBk5P,GAAatyP,EAAAA,GAAAA,GAAW9E,EAAS7B,IAAKA,GACtCuvK,GAAY5oK,EAAAA,GAAAA,GAAWqyP,EAAyBhC,OAAU5oQ,EAAW6qQ,GAErEC,EAA+B,SAAsC3yN,GACvE,OAAO,SAAU4yN,EAAiB7B,GAChC,GAAI/wN,EAAU,CACZ,IAAI/wC,EAAOwjQ,EAAyB,CAAChC,EAAQ1xP,QAAS6zP,GAAmB,CAACA,EAAiB7B,GACvFvzO,GAAQmD,EAAAA,GAAAA,GAAe1xB,EAAM,GAC7B0Q,EAAO6d,EAAM,GACbq1O,EAAcr1O,EAAM,QAGJ31B,IAAhBgrQ,EACF7yN,EAASrgC,GAETqgC,EAASrgC,EAAMkzP,EAEnB,CACF,CACF,EAEIC,EAAiBH,EAA6BvB,GAC9CtsB,EAAc6tB,GAA6B,SAAUhzP,EAAMkzP,GAC7DjB,GAAOjyP,GAEP,IAAIozP,EAAkBlB,GAAmB,CACvC5tP,MAAOA,EACP3G,QAASA,GACR,CACD6zB,KAAM,UAERxxB,EAAKsE,MAAM+uP,iBAAmBr5P,EAAM9C,YAAYmB,OAAO,UAAW+6P,GAClEpzP,EAAKsE,MAAMvH,WAAa/C,EAAM9C,YAAYmB,OAAO,UAAW+6P,GAExDliF,GACFA,EAAQlxK,EAAMkzP,EAElB,IACII,EAAgBN,EAA6BxB,GAC7C+B,EAAgBP,EAA6BpB,GAC7C4B,EAAaR,GAA6B,SAAUhzP,GACtD,IAAIozP,EAAkBlB,GAAmB,CACvC5tP,MAAOA,EACP3G,QAASA,GACR,CACD6zB,KAAM,SAERxxB,EAAKsE,MAAM+uP,iBAAmBr5P,EAAM9C,YAAYmB,OAAO,UAAW+6P,GAClEpzP,EAAKsE,MAAMvH,WAAa/C,EAAM9C,YAAYmB,OAAO,UAAW+6P,GAExDzB,GACFA,EAAO3xP,EAEX,IACIyjK,EAAeuvF,EAA6BtwF,GAChD,OAAoB7oK,EAAAA,cAAoB+4P,GAAqB/mQ,EAAAA,EAAAA,GAAS,CACpEg4K,QAAQ,EACRR,GAAIiB,EACJwsF,QAASgC,EAAyBhC,OAAU5oQ,EAC5CgpL,QAASi0D,EACTqsB,UAAW8B,EACX7B,WAAY0B,EACZxB,OAAQ6B,EACR9wF,SAAUe,EACVmuF,UAAW2B,EACX51P,QAASA,GACRnN,IAAQ,SAAU2O,EAAOywP,GAC1B,OAAoB/1P,EAAAA,aAAmB8B,GAAU9P,EAAAA,EAAAA,GAAS,CACxDyY,OAAOzY,EAAAA,EAAAA,GAAS,CACdy4E,QAAS,EACTtyC,WAAsB,WAAV7yB,GAAuBmlK,OAAoBp8K,EAAX,UAC3C6D,GAAOoT,GAAQmF,EAAO3I,EAAS5E,MAAMuN,OACxCxK,IAAKuvK,GACJumF,GACL,GACF,IAqEA,YCzLO,IAsBH6D,GAAwB55P,EAAAA,YAAiB,SAAkB9C,EAAO+C,GACpE,IAAI6B,EAAW5E,EAAM4E,SACjB5B,EAAUhD,EAAMgD,QAChB6B,EAAY7E,EAAM6E,UAClB2xP,EAAmBx2P,EAAMo8K,UACzBA,OAAiC,IAArBo6E,GAAsCA,EAClD9sN,EAAO1pC,EAAM0pC,KACby7G,EAAqBnlJ,EAAMmlJ,mBAC3By2G,EAAwB57P,EAAM67P,oBAC9BA,OAAgD,IAA1BD,EAAmCH,GAAOG,EAChEniQ,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,WAAY,UAAW,YAAa,YAAa,OAAQ,qBAAsB,wBAE5H,OAAoB8C,EAAAA,cAAoB+4P,GAAqB/mQ,EAAAA,EAAAA,GAAS,CACpEw3K,GAAI5iI,EACJ9iC,QAASu+I,GACR1rJ,GAAqBqJ,EAAAA,cAAoB,MAAO,CACjD+B,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMV,EAAWu3K,GAAap5K,EAAQo5K,WAC9D,eAAe,EACfr5K,IAAKA,GACJ6B,GACL,IA4CA,UAAee,EAAAA,GAAAA,GAtFK,CAElBJ,KAAM,CAEJnF,QAAS,EACTuuB,SAAU,QACV9oB,QAAS,OACT8sK,WAAY,SACZC,eAAgB,SAChBryJ,MAAO,EACPH,OAAQ,EACRE,IAAK,EACLD,KAAM,EACN0yE,gBAAiB,qBACjB8/E,wBAAyB,eAI3BuJ,UAAW,CACTrpF,gBAAiB,gBAmEa,CAChCxwF,KAAM,eADR,CAEGm6P,ICjFI,IAqIHC,GAA4B,CAC9BnwF,MAAO5rK,GAAAA,GAASM,eAChBqrK,KAAM3rK,GAAAA,GAASO,eAMby7P,GAAsB95P,EAAAA,YAAiB,SAAgB9C,EAAO+C,GAChE,IAAIg0P,EAAgB/2P,EAAM+2P,cACtBnyP,EAAW5E,EAAM4E,SACjB5B,EAAUhD,EAAMgD,QAChB6B,EAAY7E,EAAM6E,UAClBqyP,EAAwBl3P,EAAMm3P,qBAC9BA,OAAiD,IAA1BD,GAA2CA,EAClEE,EAAwBp3P,EAAMq3P,qBAC9BA,OAAiD,IAA1BD,GAA2CA,EAClEyF,EAAoB78P,EAAM88P,WAC1BA,OAAmC,IAAtBD,GAAuCA,EACpDppF,EAAmBzzK,EAAM0zK,UACzBA,OAAiC,IAArBD,GAAsCA,EAClDjK,EAAkBxpK,EAAMypK,SACxBA,OAA+B,IAApBD,EAA6B,KAAOA,EAC/CquF,EAAkB73P,EAAM63P,gBACxBC,EAAU93P,EAAM83P,QAChB39E,EAAUn6K,EAAMm6K,QAChBsgF,EAAYz6P,EAAMy6P,UAClBC,EAAa16P,EAAM06P,WACnB3C,EAAkB/3P,EAAM+3P,gBACxB6C,EAAS56P,EAAM46P,OACfjvF,EAAW3rK,EAAM2rK,SACjBkvF,EAAY76P,EAAM66P,UAClBnxN,EAAO1pC,EAAM0pC,KACbqzN,EAAwB/8P,EAAMg9P,eAC9BA,OAA2C,IAA1BD,EAAmC3vB,GAAQ2vB,EAC5DE,EAAoBj9P,EAAMk9P,WAC1BA,OAAmC,IAAtBD,EAA+B,CAAC,EAAIA,EACjDE,EAAgBn9P,EAAMirM,OACtBA,OAA2B,IAAlBkyD,EAA2B,QAAUA,EAC9CvB,EAAwB57P,EAAM67P,oBAC9BA,OAAgD,IAA1BD,EAAmCH,GAAOG,EAChEwB,EAAwBp9P,EAAMmlJ,mBAC9BA,OAA+C,IAA1Bi4G,EAAmCT,GAA4BS,EACpFC,EAAkBr9P,EAAMq9P,gBACxBC,EAAkBt9P,EAAM,oBACxBu9P,EAAiBv9P,EAAM,mBACvBvG,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,gBAAiB,WAAY,UAAW,YAAa,uBAAwB,uBAAwB,aAAc,YAAa,WAAY,kBAAmB,UAAW,UAAW,YAAa,aAAc,kBAAmB,SAAU,WAAY,YAAa,OAAQ,iBAAkB,aAAc,SAAU,sBAAuB,qBAAsB,kBAAmB,mBAAoB,oBAErbw9P,EAAkB16P,EAAAA,SA6BtB,OAAoBA,EAAAA,cAAoB4zP,IAAO5hQ,EAAAA,EAAAA,GAAS,CACtD+P,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMV,GAC9BgyP,kBAAmB6F,GACnB3F,eAAejiQ,EAAAA,EAAAA,GAAS,CACtBqwJ,mBAAoBA,GACnB4xG,GACHE,sBAAsB,GACrBE,EAAuB,CACxBA,qBAAsBA,GACpB,CAAC,EAAG,CACNE,qBAAsBA,EACtBU,gBAAiBA,EACjBD,QAASA,EACTpuN,KAAMA,EACN3mC,IAAKA,GACJtJ,GAAqBqJ,EAAAA,cAAoB+4P,GAAqB/mQ,EAAAA,EAAAA,GAAS,CACxEg4K,QAAQ,EACRR,GAAI5iI,EACJ9iC,QAASu+I,EACTg1B,QAASA,EACTugF,WAAYA,EACZD,UAAWA,EACXG,OAAQA,EACRC,UAAWA,EACXlvF,SAAUA,EACVlmK,KAAM,qBACL43P,GAA+Bv6P,EAAAA,cAAoB,MAAO,CAC3D+B,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQ8W,UAAW9W,EAAQ,SAASnR,QAAOmS,EAAAA,GAAAA,GAAWinM,MACtEx6B,UAnDwB,SAA6B3lK,GAGjDA,EAAMQ,SAAWR,EAAMm6G,eAKvBn6G,EAAMQ,SAAWkyP,EAAgBn1P,UAIrCm1P,EAAgBn1P,QAAU,KAEtBwvP,GACFA,EAAgB/sP,IAGbqsP,GAAwBW,GAC3BA,EAAQhtP,EAAO,iBAEnB,EA+BEuoI,YAxDoB,SAAyBvoI,GAC7C0yP,EAAgBn1P,QAAUyC,EAAMQ,MAClC,GAuDgBxI,EAAAA,cAAoBk6P,GAAgBloQ,EAAAA,EAAAA,GAAS,CAC3Dy4O,UAAW,GACX9nO,KAAM,SACN,mBAAoB63P,EACpB,kBAAmBC,GAClBL,EAAY,CACbr4P,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQ1M,MAAO0M,EAAQ,cAAcnR,QAAOmS,EAAAA,GAAAA,GAAWinM,KAAWjoM,EAAQ,aAAanR,QAAOmS,EAAAA,GAAAA,GAAWmU,OAAOsxJ,MAAcyzF,EAAWr4P,UAAWi4P,GAAc95P,EAAQy6P,gBAAiB/pF,GAAa1wK,EAAQ06P,kBAC9N94P,KACN,IAsKA,UAAee,EAAAA,GAAAA,IA9ZK,SAAgB1C,GAClC,MAAO,CAELsC,KAAM,CACJ,eAAgB,CAEdopB,SAAU,wBAKdgvO,YAAa,CACX93P,QAAS,OACT+sK,eAAgB,SAChBD,WAAY,UAIdirF,WAAY,CACVtO,UAAW,OACXC,UAAW,SACXl5E,UAAW,SACX,UAAW,CACTluG,QAAS,KACTtiE,QAAS,eACTktK,cAAe,SACf/wK,OAAQ,OACRjD,MAAO,MAKX+a,UAAW,CACT9X,OAAQ,OACR,eAAgB,CACdA,OAAQ,QAGV0e,QAAS,GAIXpqB,MAAO,CACL4pB,OAAQ,GACRyO,SAAU,WACV2gO,UAAW,OAEX,eAAgB,CACdA,UAAW,UACX/6E,UAAW,SAKfspF,iBAAkB,CAChBh4P,QAAS,OACTo0N,cAAe,SACfvvD,UAAW,qBAIbozF,gBAAiB,CACfj4P,QAAS,eACTktK,cAAe,SACfsD,UAAW,QAKb0nF,gBAAiB,CACft0F,SAAU,qBAIZu0F,aAAc,CACZv0F,SAAUp4K,KAAKD,IAAI6R,EAAMvO,YAAY9B,OAAOkL,GAAI,KAChD,qBAAqBzI,EAAAA,GAAAA,GAAgB,CAAC,EAAG4N,EAAMvO,YAAYkK,KAAKvN,KAAKD,IAAI6R,EAAMvO,YAAY9B,OAAOkL,GAAI,KAAO,IAAS,CACpH2rK,SAAU,uBAKdw0F,aAAc,CACZx0F,SAAUxmK,EAAMvO,YAAY9B,OAAOmL,GACnC,qBAAqB1I,EAAAA,GAAAA,GAAgB,CAAC,EAAG4N,EAAMvO,YAAYkK,KAAKqE,EAAMvO,YAAY9B,OAAOmL,GAAK,IAAS,CACrG0rK,SAAU,uBAKdy0F,aAAc,CACZz0F,SAAUxmK,EAAMvO,YAAY9B,OAAOoL,GACnC,qBAAqB3I,EAAAA,GAAAA,GAAgB,CAAC,EAAG4N,EAAMvO,YAAYkK,KAAKqE,EAAMvO,YAAY9B,OAAOoL,GAAK,IAAS,CACrGyrK,SAAU,uBAKd00F,aAAc,CACZ10F,SAAUxmK,EAAMvO,YAAY9B,OAAOqL,GACnC,qBAAqB5I,EAAAA,GAAAA,GAAgB,CAAC,EAAG4N,EAAMvO,YAAYkK,KAAKqE,EAAMvO,YAAY9B,OAAOqL,GAAK,IAAS,CACrGwrK,SAAU,uBAKd20F,aAAc,CACZ30F,SAAUxmK,EAAMvO,YAAY9B,OAAOsL,GACnC,qBAAqB7I,EAAAA,GAAAA,GAAgB,CAAC,EAAG4N,EAAMvO,YAAYkK,KAAKqE,EAAMvO,YAAY9B,OAAOsL,GAAK,IAAS,CACrGurK,SAAU,uBAKdi0F,eAAgB,CACd3+P,MAAO,qBAIT0+P,gBAAiB,CACfv9O,OAAQ,EACRnhB,MAAO,OACP0qK,SAAU,OACVznK,OAAQ,OACR0oK,UAAW,OACXvvK,aAAc,EACd,oBAAqB,CACnB+kB,OAAQ,EACRupJ,SAAU,SAIlB,GA0RkC,CAChClnK,KAAM,aADR,CAEGq6P,IChZUyB,IA1Bc1zF,GAAOi6D,KAAPj6D,EAAoBpyK,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CAC3D0nB,OAAQ,EACRje,OAAQ,OACRjD,MAAO,OACP5D,aAAc,EAoBjB,IAEgCwvK,GAAOlqJ,GAAO21B,IAAdu0H,EAAmB7jJ,IAAA,IAAC,MAAE7jB,GAAO6jB,EAAA,MAAM,CAChE3rB,aAAc,EAGd4D,MAAO,OACP,CAACkE,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BoD,OAAQ,KAGZ,CAACiB,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BoD,OAAQ,KAGZ,CAACiB,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BoD,OAAQ,KAGZ,CAACiB,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BoD,OAAQ,KAGZ,CAACiB,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BoD,OAAQ,KAGf,KCvDYgE,GAAa,CACtBpF,SAAU,GACVo/F,KAAM,CAAC,GAAM,GAAM,GAAM,KCMd,SAASs+J,GAAY/lQ,GAA8C,IAA7C,IAAE4R,EAAG,MAAEosI,EAAK,YAAEgoH,GAA4BhmQ,EAC3E,MAAMs+N,EAAcv4B,KACdr7L,EAAQI,MAEd41B,EAAAA,EAAAA,YAAU,KACFslO,GAAaxnC,EAAM,EAAE,GAC1B,IAEH,MACMA,EAAS2O,GAAgB7O,EAAYp4N,MAAM,CAAE8uE,QAASm4J,IAE5D,OACIzO,EAAAA,GAAAA,KAAConC,GAAiB,CAACp7P,MAAOA,EAAM2B,UAC5BqyN,EAAAA,GAAAA,KAACx2M,GAAO21B,IAAG,CACP7oC,MAAO,CAAEvL,OAAQ,UAAWjD,MAAO,WACnCqgM,QAAS,CAAE7xH,QAAS,GACpBkrH,QAASo+B,EACT7wN,WAAYA,GAAWpB,UAEvBqyN,EAAAA,GAAAA,KAAC2N,KAAW,CACR3hO,MAAOA,EACP47B,SAAS,EACT5I,MAAI,EACJ8nH,UAAU,EACVxH,MAAOA,EACPhpI,MAAO,CAAEpS,aAAc,GACvB6iJ,aAAW,EACXh8I,OAAQ,UACRjD,MAAO,UACPi3I,WAAa3qH,GAAQA,EAAEoqH,cAAgB,GAAOpqH,EAAEoqH,cAAgB,GArB1DshF,EAAM,GAsBZhtL,QAASA,IAAMgtL,EAAM,GACrB5sN,IAAKA,OAMzB,CCtCA,SAASq0P,GAAcjmQ,GAAsD,IAArD,KAAEmxC,EAAI,SAAE+0N,EAAQ,QAAEC,EAAO,KAAEjqH,GAAuBl8I,EACxD8K,KACd,OACI4zN,EAAAA,GAAAA,KAAC2lC,GAAM,CACHlzN,KAAMA,EACNn8B,MAAO,CAAE2S,OAAQ,GACjB43O,QAASA,IAAM2G,IACfvB,WAAY,CAAE3vB,UAAW,EAAGhgO,MAAO,CAAEwlF,gBAAiB,gBACtDiqK,eAAgBA,IACZtzN,IACAutL,EAAAA,GAAAA,KAACE,GAAG,CAAC5pN,MAAO,CAAEk8J,SAAU,KAAM1qK,MAAO,QAAS6F,UAC1CqyN,EAAAA,GAAAA,KAACqnC,GAAY,CACTC,aAAW,EACXhoH,OAAO,EACPpsI,IAAK,iCAAmCu0P,OAMhE,CAEA,UAAelpG,EAAAA,EAAAA,MAAKgpG,kEC7Bb,MAAMx4P,GAAa,CACtBg6F,KAAM,CAAC,GAAI,GAAI,GAAI,IACnBp/F,SAAU,IAGD+9P,GAAuB,IACvBC,GAAwB,ICGxBC,GAAqBl0F,GAAOlqJ,GAAO21B,IAAdu0H,EAAkCpyK,IAAA,IAAC,MAAE0K,EAAK,IAAEyoC,EAAG,KAAEhU,GAAMn/B,EAAA,MAAM,CAC3F6H,OAAQ,EACRwF,WAAY,OACZktK,OAAQ,UACRt9K,UAAW,QACX,UAAW,CACP,CAAC8qO,IAAgB,CACb/yJ,QAAS,GAEb,CAACuxL,IAAmB,CAChBvxL,QAAS,GAEb,CAACwxL,IAAW,CACRxxL,QAAS71C,EAAO,EAAI,GAExB,CAACsnO,IAAY,CACTzxL,QAAS71C,EAAO,EAAI,GAExB,CAACunO,IAAoB,CACjB1xL,QAAS,KAGjB,CAACtqE,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B,CAACmgQ,IAAW,CACRxxL,QAAS71C,EAAO,EAAI,GAExB,CAACsnO,IAAY,CACTzxL,QAAS71C,EAAO,EAAI,GAExB,CAACunO,IAAoB,CACjB1xL,QAAS,GAEb,CAAC+yJ,IAAgB,CACb/yJ,QAAS,GAEb,CAACuxL,IAAmB,CAChBvxL,QAAS,IAGpB,IAIYyxL,GAAYr0F,GAAOu0F,GAAAA,EAAPv0F,EAAsC7jJ,IAAA,IAAC,MAAE7jB,EAAK,YAAEk8P,GAAar4O,EAAA,MAAM,CACxFymD,QAAS4xL,EACTh/O,QAAS,EACT/f,OAAQ,EACR4F,WAAY,WACf,IAEY+4P,GAAWp0F,GAAOy0F,GAAAA,EAAPz0F,EAAsBziJ,IAAA,IAAC,MAAEjlB,GAAOilB,EAAA,MAAM,CAC1DqlD,QAAS,EACTptD,QAAS,EACT/f,OAAQ,EACR4F,WAAY,WACf,IAGYq5P,GAAkB10F,GAAOv0H,KAAInuB,IAAA,IAAC,MAAEhlB,GAAOglB,EAAA,MAAM,CACtD3H,IAAK,EACLqO,SAAU,WACV3sB,OAAQ48P,GACR7/P,MAAO4/P,GACP94P,QAAS,OACT8sK,WAAY,WACZ1e,cAAe,EACf7zJ,OAAQ,EACR+kJ,mBAAoB,OACpBa,yBAA0B,uCAC7B,IAGYi5G,GAAoBt0F,GAAOv0H,KAAwB0wH,IAAA,IAAC,MAAE7jK,EAAK,QAAEq8P,GAASx4F,EAAA,MAAM,CACrF9kK,OAAQ,OACRjD,MAAO4/P,GACP94P,QAAS,OACTo0N,cAAe,SACfrnD,eAAgB,WAChBrlG,QAAS+xL,EAAU,GAAM,EACzBh6E,WAAY,GACZngC,mBAAoB,OACpBa,yBAA0B,uCAC7B,IAgBYu5G,IAde50F,GAAOlqJ,GAAO21B,IAAdu0H,EAAkCrD,IAAA,IAAC,MAAErkK,EAAK,IAAEyoC,GAAK47H,EAAA,MAAM,CAC/EtlK,OAAQ48P,GACR7/P,MAAO4/P,GACPxjQ,aAAc,EACdyK,WAAY,OACZxF,OAAQ,EACRg3N,gBAAiB,OAAO1rL,KACxB4rL,iBAAkB,YAClBD,eAAgB,QAChBX,mBAAoB,SACpBvxE,mBAAoB,OACpBa,yBAA0B,uCAC7B,IAE8B2kB,GAAOlqJ,GAAOirB,IAAdi/H,EAAmB4a,IAAA,MAAIA,EAAA,MAAM,CACxDvjL,OAAQ,OACRjD,MAAO,OACPygQ,UAAW,OACXhmJ,YAAa,MACbsvH,UAAW,QACX22B,eAAgB,aAChBtkQ,aAAc,EACdyK,WAAY,OACZxF,OAAQ,EACR+kJ,mBAAoB,OACpBa,yBAA0B,uCAC7B,KAEY05G,GAAoB/0F,GAAOlqJ,GAAO21B,IAAdu0H,EAAmB6a,IAAA,IAAC,MAAEviL,GAAOuiL,EAAA,MAAM,CAChExjL,OAAQ48P,GACR7/P,MAAO4/P,GACP5rK,gBAAiB9vF,EAAM5K,QAAQlF,WAAWmD,MAC1C6E,aAAc,EACdyK,WAAY,OACf,IAGY06N,GAAgB31D,GAAOv0H,KAAIqvI,IAAA,IAAC,MAAExiL,GAAOwiL,EAAA,MAAM,CACpDzjL,OAAQ48P,GACR7/P,MAAO4/P,GACPhwO,SAAU,WACVrO,IAAK,EACLlgB,OAAQ,EACRg3N,gBAAiB,gHACjB7pJ,QAAS,EACTpyE,aAAc,EACdgqJ,mBAAoB,OACpBa,yBAA0B,uCAC7B,IAEY84G,GAAmBn0F,GAAOv0H,KAAIsvI,IAAA,IAAC,MAAEziL,GAAOyiL,EAAA,MAAM,CACvD1jL,OAAQ48P,GACR7/P,MAAO4/P,GACPhwO,SAAU,WACVrO,IAAK,EACLlgB,OAAQ,EACRg3N,gBAAiB,gHACjB7pJ,QAAS,EACTpyE,aAAc,EACdgqJ,mBAAoB,OACpBa,yBAA0B,uCAC7B,ICpJM,IA+FH25G,GAAwB78P,EAAAA,YAAiB,SAAkB9C,EAAO+C,GACpE,IAAI68P,EAAmB5/P,EAAM8pC,UACzBA,OAAiC,IAArB81N,EAA8B,QAAUA,EACpD58P,EAAUhD,EAAMgD,QAChB6B,EAAY7E,EAAM6E,UAClBE,EAAmB/E,EAAMgF,UACzB7C,OAAiC,IAArB4C,EAA8B,OAASA,EACnD/C,EAAShC,EAAMgC,OACf8xK,EAAiB9zK,EAAM+zK,QACvBA,OAA6B,IAAnBD,EAA4B,OAASA,EAC/C/0K,EAAQiB,EAAMjB,MACdtF,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,YAAa,UAAW,YAAa,YAAa,SAAU,UAAW,UAEhH6/P,EAAc5kP,QAAQxhB,EAAMmL,UAChC,OAAoB9B,EAAAA,cAAoBX,GAAWrN,EAAAA,EAAAA,GAAS,CAC1DiO,IAAKA,EACL8B,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMvC,EAAQ+wK,GAAUlvK,EAAWg7P,GAAe,CAAC78P,EAAQ88P,cAAe/gQ,GAASiE,EAAQ+8P,YAAa/9P,GAAUgB,EAAQg9P,aAA2B,IAAdl2N,GAAuB9mC,EAAQ8mC,KAC7LrwC,EAAO,CACR8T,OAAOzY,EAAAA,EAAAA,GAAS,CACdiK,MAAOA,EACPiD,OAAQA,GACPvI,EAAM8T,SAEb,IAiDA,UAAe5H,EAAAA,GAAAA,IAvKK,SAAgB1C,GAClC,MAAO,CAELsC,KAAM,CACJM,QAAS,QAETktF,iBAAiB3+F,EAAAA,GAAAA,IAAM6O,EAAM5K,QAAQrC,KAAKC,QAAgC,UAAvBgN,EAAM5K,QAAQ7G,KAAmB,IAAO,KAC3FwQ,OAAQ,SAIVhM,KAAM,CACJw0L,UAAW,EACX7T,aAAc,EACd30K,OAAQ,OACRs/B,gBAAiB,QACjBpiC,UAAW,iBACX/D,aAAc8H,EAAM/C,MAAM/E,aAC1B,iBAAkB,CAChBgtE,QAAS,aAKbsD,KAAM,CAAC,EAGPk9J,OAAQ,CACNxtO,aAAc,OAIhB8kQ,MAAO,CACLn2N,UAAW,yCAEb,mBAAoB,CAClB,KAAM,CACJyjC,QAAS,GAEX,MAAO,CACLA,QAAS,IAEX,OAAQ,CACNA,QAAS,IAKb2yL,KAAM,CACJvxO,SAAU,WACVwoE,SAAU,SACV,WAAY,CACVrtD,UAAW,kCACX32C,WAAY,uCAAuCtB,OAAOoR,EAAM5K,QAAQ3B,OAAOE,MAAO,kBACtFuxE,QAAS,KACTx5C,SAAU,WACVzvB,UAAW,oBAEXkhB,OAAQ,EACRC,KAAM,EACNE,MAAO,EACPD,IAAK,IAGT,kBAAmB,CACjB,KAAM,CACJphB,UAAW,qBAEb,MAAO,CAELA,UAAW,oBAEb,OAAQ,CACNA,UAAW,qBAKf4gQ,aAAc,CACZ,QAAS,CACP7kO,WAAY,WAKhB8kO,WAAY,CACVt2F,SAAU,eAIZu2F,WAAY,CACVh+P,OAAQ,QAGd,GAyEkC,CAChCO,KAAM,eADR,CAEGo9P,IC5KUn/B,GAAU71D,GAAOv0H,KAAI79C,IAAA,MAAIA,EAAA,MAAM,CACxCqN,WAAY,OACZktK,OAAQ,UACRt9K,UAAW,QACXm2J,SAAUgzG,GACV/sG,YAAa,GAChB,ICGc,SAASuuG,GAAS5nQ,GAA0E,IAAzE,IAAEmzC,EAAG,MAAEm4C,EAAK,QAAE66K,EAAO,KAAEjqH,EAAI,GAAE3rI,EAAE,UAAEs3P,EAAS,aAAEC,GAA0B9nQ,EAClF+lM,KAAlB,MACMgiE,EAAkBhiE,KAClBr7L,EAAQI,MACPk9P,EAAOC,IAAUppO,EAAAA,EAAAA,WAAS,GAC3BqpO,GAASjpO,EAAAA,EAAAA,QAAuB,OAC/BkpO,EAAOC,IAAYvpO,EAAAA,EAAAA,UAAS,IAE7BwpO,GAAc7hI,EAAAA,EAAAA,YAAW8hI,IACzBC,EAAkBF,EAAYlO,eAAevgQ,SAAS2W,GAAM,GAAG2I,YAC/DsvP,EAAcH,EAAYlO,cAAc5pP,GACxCk4P,EAAkBJ,EAAYlO,eAAevgQ,SAAS2W,GAAM,GAAG2I,aAC9Dq3D,EAAWm4L,IAAgB7pO,EAAAA,EAAAA,WAAS,IAE3C6B,EAAAA,EAAAA,YAAU,KACNgoO,KAAeH,GAAoBC,GAAgBC,GAAgC,GACpF,CAACF,EAAiBC,EAAaC,KAElC/nO,EAAAA,EAAAA,YAAU,KACNioO,GAAa,GACd,CAACx1N,EAAKo9B,KAET7vC,EAAAA,EAAAA,YAAU,KACNkoO,GAAe,GAChB,CAACT,IAEJ,MAAMS,EAAgBA,KACJ,KAAVT,EACA5pC,EAAW,GAEXh/C,GAAU,CAAEC,OAAQ++C,EAAW,GAAIxhM,IAAKorO,GAC5C,EAGEQ,EAAcvrO,UACX+V,GACLi1N,EAAS73L,EAAYp9B,EAAM,GAAG,EAI5BorL,EAAc4O,GAAgB46B,EAAgB7hQ,MAAM,CAAE8uE,QAASm4J,IAQrE,OACIzO,EAAAA,GAAAA,KAACuJ,GAAO,CAAUz9N,IAAK09P,EAAO77P,UAC1B2yN,EAAAA,GAAAA,MAACsnC,GAAkB,CACfnnO,KAAM0oO,EACNn9P,MAAOA,EACPyoC,IAAKg1N,EACL1hD,WAAYA,IAAMwhD,GAAO,GACzBthD,SAAUA,IAAMshD,GAAO,GACvBh7H,QAASA,MAbZ+6H,GAASG,GACVL,GAAa,EAYoB,EAAAz7P,SAAA,EAE7BqyN,EAAAA,GAAAA,KAACyoC,GAAiB,CACdz8P,MAAOA,EAAM2B,UAYb2yN,EAAAA,GAAAA,MAAC92M,GAAO21B,IAAG,CACP7oC,MAAO,CAAEohB,SAAU,WAAYvuB,OAAQ,GACvCg/L,QAAS,CAAE7xH,QAAS,GACpBkrH,QAAS6nE,EACTt6P,WAAYA,GAAWpB,SAAA,EAGvBqyN,EAAAA,GAAAA,KAACooC,GAAe,CAAAz6P,UACZqyN,EAAAA,GAAAA,KAAC8nC,GAAQ,CAACxtQ,MAAM,eAEpB0lO,EAAAA,GAAAA,KAACooC,GAAe,CAAAz6P,UACZqyN,EAAAA,GAAAA,KAAC+nC,GAAS,CAACG,YAAaiB,EAAY,EAAI,EAAG7uQ,MAAM,eAErD0lO,EAAAA,GAAAA,KAACqJ,GAAa,KACdrJ,EAAAA,GAAAA,KAAC6nC,GAAgB,KACjB7nC,EAAAA,GAAAA,KAACsoC,GAAe,CACZ/1C,WAAW,EACXwe,IAAKnkJ,EACLvuD,IAAKorO,EACLthE,QAAS,CAAE7xH,QAAS,GAEpBvnE,WAAYA,WAKxBixN,EAAAA,GAAAA,KAACgoC,GAAiB,CAACK,QAAmB,KAAVz7K,EAAaj/E,UACrCqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACbz0N,UAAU,KACVvM,WAAW,YACX8U,MAAO,CACHhc,MAAO0R,EAAM5K,QAAQpC,QAAQ8B,KAC7BiC,cAAe,GAEnBo/N,OAAQn2N,EAAM3K,WAAWsC,MAAMjC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWsC,MAAMjC,SAAS8Y,WACxCwnN,OAAQh2N,EAAM3K,WAAWsC,MAAMjC,SAAS8Y,WACxCunN,OAAQ/1N,EAAM3K,WAAWsC,MAAMjC,SAAS8Y,WACxC0nN,OAAQl2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxC7M,SACIi/E,GAEIozI,EAAAA,GAAAA,KAACx2M,GAAO21B,IAAG,CACPgpJ,QAAS,CAAE7xH,QAAS,GACpBkrH,QAAS,CAAElrH,QAAS,GACpBg/F,KAAM,CAAEh/F,QAAS,GACjBvnE,WAAYA,GAAWpB,SAEtBi/E,KAGL0zI,EAAAA,GAAAA,MAAAC,GAAAA,SAAA,CAAA5yN,SAAA,EACIqyN,EAAAA,GAAAA,KAAC0oC,GAAQ,CAAC71N,WAAW,EAAOv8B,MAAO,CAAEwlF,gBAAiB9vF,EAAM5K,QAAQlF,WAAWmD,UAC/E2gO,EAAAA,GAAAA,KAAC0oC,GAAQ,CAAC71N,WAAW,EAAOv8B,MAAO,CAAEwlF,gBAAiB9vF,EAAM5K,QAAQlF,WAAWmD,oBA3E7FwS,EAoFtB,CC3Ie,SAASs4P,GAAM7oQ,GAA8C,IAA7C,IAAEmzC,EAAG,MAAEm4C,EAAK,QAAE66K,EAAO,KAAEjqH,EAAI,GAAE3rI,GAAavQ,EACvE,MAAO6nQ,EAAWC,IAAgBjpO,EAAAA,EAAAA,WAAkB,GAEpD,OACEmgM,EAAAA,GAAAA,MAACJ,GAAG,CAAC5pN,MAAO,CAAE4pF,SAAU,SAAUvxF,WAAY,QAAShB,SAAA,EACrDqyN,EAAAA,GAAAA,KAACunC,GAAc,CAAC90N,KAAM02N,EAAW1B,QAASA,EAASjqH,KAAMA,EAAMgqH,SAAUA,IAAM4B,GAAa,MAC5FppC,EAAAA,GAAAA,KAACkpC,GAAS,CAACr3P,GAAIA,EAAI2rI,KAAMA,EAAM/oG,IAAKA,EAAKm4C,MAAOA,EAAO66K,QAASA,EAAS0B,UAAWA,EAAWC,aAAegB,GAAUhB,EAAagB,OAG3I,kCCbO,MAAMC,GAAe32F,GAAOv0H,KAAI79C,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACnDwG,MAAO,GACPohB,QAAS,EACT2yJ,OAAQ,UACRjtK,QAAS,OACTo0N,cAAe,SACfrnD,eAAgB,SAChBz3K,aAAc,EACd8kB,OAAQ,MACRstD,QAAS,EACT3nE,WAAY,OACZ,UAAW,CACP,CAAC27P,IAAmB,CAChBriQ,UAAW,eAGtB,IAEYqiQ,GAAmB52F,GAAOv0H,KAAItvB,IAAA,IAAC,MAAE7jB,GAAO6jB,EAAA,MAAM,CACvD5nB,UAAW,WACXimJ,mBAAoB,OACpBa,yBAA0B,uCAC7B,ICpBc,SAASw7G,GAAKjpQ,GAAmD,IAAlD,SAAEqM,EAAQ,SAAEzO,EAAQ,QAAEqvI,EAAO,OAAEi8H,GAAgBlpQ,EACzE,OACI0+N,EAAAA,GAAAA,KAACqqC,GAAY,CAAC97H,QAASA,EAAQ5gI,SAC1BA,GAGb,CCVO,MAAMoB,GAAa,CACtBpF,SAAU,GACVo/F,KAAM,CAAC,GAAM,GAAM,GAAM,KCQd,SAASqxJ,KACpB,MAAM,eAAEmB,EAAc,mBAAEC,EAAkB,aAAEM,EAAY,gBAAEC,EAAe,aAAEG,GAAiBrwP,EAAAA,WAAiB+9P,IACvG9pC,EAAQz4B,KAEdx7L,EAAAA,WAAgB,KACRkwP,EAAgB9hQ,QAAQwwQ,GAAa,GAC1C,CAACjP,EAAoBO,IAExB,MAAM0O,EAAc/rO,UACZ88N,SACM17B,EAAMt4N,MAAM,CACd8uE,QAAS,UAEPwpJ,EAAMt4N,MAAM,CACdoH,QAAS,iBAGPkxN,EAAMt4N,MAAM,CACdoH,QAAS,eAEPkxN,EAAMt4N,MAAM,CACd8uE,QAAS,IAEjB,EAKJ,OACI0pJ,EAAAA,GAAAA,KAACuqC,GAAK,CAACC,QAAM,EAACtrQ,UAAU,EAAOqvI,QAFdm8H,IAAM5O,EAAaP,IAAkB,SAAU,UAEX5tP,UACjDqyN,EAAAA,GAAAA,KAACx2M,GAAO21B,IAAG,CACP7oC,MAAO,CACH1H,QAAS,OACTo0N,cAAe,SACfrnD,eAAgB,SAChBD,WAAY,SACZ3wK,OAAQ48P,GACRx+P,OAAQ,EACRg3N,gBAAiB,yEAErBh4B,QAAS,CAAE7xH,QAAS,GACpBkrH,QAASs+B,EACT/wN,WAAYA,GAAWpB,UAEvBqyN,EAAAA,GAAAA,KAACsqC,GAAgB,CAAA38P,UACbqyN,EAAAA,GAAAA,KAAC2qC,GAAAA,EAAS,CAACr0P,MAAO,CAAEvL,OAAQ,GAAIjD,MAAO,IAAMxN,MAAO,iBAKxE,kCC/Ce,SAAS+/P,KACpB,MAAM,eAAEgB,EAAc,kBAAEM,EAAiB,aAAEG,EAAY,gBAAEC,GAAqBlwP,EAAAA,WAAiB+9P,IACzF9pC,EAAQz4B,KAEdx7L,EAAAA,WAAgB,KACRkwP,EAAgB9hQ,QAAQwwQ,GAAa,GAC1C,CAAC9O,EAAmBI,IAEvB,MAAM0O,EAAc/rO,UACZi9N,SACM77B,EAAMt4N,MAAM,CACd8uE,QAAS,UAEPwpJ,EAAMt4N,MAAM,CACdoH,QAAS,iBAGPkxN,EAAMt4N,MAAM,CACdoH,QAAS,eAEPkxN,EAAMt4N,MAAM,CACd8uE,QAAS,IAEjB,EAKJ,OACI0pJ,EAAAA,GAAAA,KAACuqC,GAAK,CAACC,QAAQ,EAAOtrQ,UAAU,EAAOqvI,QAFtBm8H,IAAM5O,EAAaT,IAAkB,SAAU,UAEH1tP,UACzDqyN,EAAAA,GAAAA,KAACx2M,GAAO21B,IAAG,CACP7oC,MAAO,CACH1H,QAAS,OACTo0N,cAAe,SACfrnD,eAAgB,SAChBD,WAAY,SACZvyK,OAAQ,EACR4B,OAAQ48P,GACRxnC,gBAAiB,yEAErBh4B,QAAS,CAAE7xH,QAAS,GACpBkrH,QAASs+B,EACT/wN,WAAYA,GAAWpB,UAEvBqyN,EAAAA,GAAAA,KAACsqC,GAAgB,CAAA38P,UACbqyN,EAAAA,GAAAA,KAAC4qC,GAAAA,EAAY,CAACtwQ,MAAO,iBAKzC,CC7DO,MAGMo6O,GAAiBhhE,GAAOv0H,KAAI79C,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACrD07J,cAAe,GACf9+J,YAJqC,GAKrC,CAAC8N,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BzJ,YAPoC,IAS3C,ICPYw2O,GAAiBhhE,GAAOv0H,KAAqB79C,IAAA,IAAC,MAAE0K,EAAK,IAAEy4B,EAAG,OAAEomO,GAAQvpQ,EAAA,MAAM,CACnFpD,YAAqB,IAARumC,EDFwB,GCEgB,EACrDtmC,aAAcsmC,IAAQomO,EAAS,GAAK,EACpC,CAAC7+P,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BzJ,YAAqB,IAARumC,EDNuB,GCMoB,EACxDtmC,aAAcsmC,IAAQomO,EAAS,EAAI,GAE1C,IAEYC,GAAmBp3F,GAAOv0H,GAAG;;ECXnC,SAAS4rN,GAAoBC,GAChC,YAA2B9wQ,IAAvB8wQ,EAAYC,YACiB/wQ,IAAzB8wQ,EAAYjhQ,cACc7P,IAAtB8wQ,EAAYE,WACehxQ,IAAvB8wQ,EAAYG,YACgBjxQ,IAAxB8wQ,EAAYzrQ,QACL,GAEAyrQ,EAAYzrQ,QAAQ2T,IAGxB83P,EAAYG,OAAOj4P,IAGvB83P,EAAYE,MAAMh4P,IAGtB83P,EAAYjhQ,SAASmJ,IAGzB83P,EAAYC,OAAO/3P,GAElC,CCxBO,MAAMk4P,GAAY,CACrB,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,GCMU,SAASC,GAAQ/pQ,GAAiC,IAAhC,KAAEoZ,EAAI,MAAEkyE,GAAqBtrF,EAC1D,MAAM0K,EAAQI,MACPk/P,EAAWC,IAAgBprO,EAAAA,EAAAA,UAAuB,KAClDi/G,EAAWosH,IAAgBrrO,EAAAA,EAAAA,WAAS,GACrCsrO,GAAalrO,EAAAA,EAAAA,SAAO,IAE1ByB,EAAAA,EAAAA,YAAU,KACNypO,EAAWr6P,SAAU,EACd,KACHq6P,EAAWr6P,SAAU,EACrBm6P,EAAa,GAAG,IAErB,IAEH,MAyBM,UAAEG,EAAS,SAAEC,EAAQ,SAAEC,EAAQ,SAAEC,GCzD5B,WACb,MAAOC,EAASC,GAAclgQ,EAAAA,UAAe,IACtCggQ,EAAUG,GAAengQ,EAAAA,UAAe,GACzC6rB,EAAW7rB,EAAAA,OAAa,GAgC9B,MAAO,CACL6/P,UA/BgB7/P,EAAAA,aAAmBg5B,IACnCnN,EAAStmB,QAAUyzB,EAAGC,QACtBinO,GAAW,EAAK,GACf,IA6BDJ,SA3Be9/P,EAAAA,aACf,IAEEuG,OAAOssC,uBAAsB,KAC3BstN,GAAY,GACZD,GAAW,EAAM,KAErB,IAqBAH,SAlBeA,CAAC/mO,EAAsB3G,KACtC,MAAM+tO,EAAUv0O,EAAStmB,QAAUyzB,EAAGC,QAEhConO,EAAc9xQ,KAAKg5B,IAAI64O,GAAW,EAEpCH,GAAWI,GACbF,GAAY,GAGVH,GAAYK,IACdx0O,EAAStmB,QAAUyzB,EAAGC,QACtB5G,EAAG+tO,GACL,EAOAJ,WACAn0O,WACAs0O,cAEJ,CDcwDG,GAepD,OACInsC,EAAAA,GAAAA,KAAC18C,GAAQ,CACLJ,QAASA,IA1CEkpF,MACf,GAAyB,IAArBd,EAAUrxQ,OAAc,OAAO,EACnCuxQ,GAAa,GACbzU,GAAMpuP,IAA0B+R,GAC3B+gH,MAAMuzH,IACH,MAAMvoK,EAAwB,GAS9B,GARAuoK,EAAIzwO,KAAKmnD,MAAM3qE,KAAKwjB,IAChBkoE,EAAQ5pF,KAAK,CACTkwF,YAAaxuE,EAAK8tP,QAAQt/K,YAC1Bt4C,IAAKs2N,GAAoBxsP,EAAK8tP,QAAQC,YACtC1/K,MAAOruE,EAAK8tP,QAAQz/K,MACpB66K,QAASlpP,EAAK8tP,QAAQE,WAAW9E,SACnC,KAEDgE,EAAWr6P,QAAS,OAAO,KAChCm6P,EAAa9kL,GACb+kL,GAAa,EAAM,IAEtB9vI,OAAOl6G,IACJxjB,QAAQ0rH,IAAIloG,EAAI,GAElB,EAqBa4qP,GACfjpF,QAASA,OAAUx1K,UAEnBqyN,EAAAA,GAAAA,KAAC8qC,GAAgB,CAACvxF,aAAcoyF,EAASh+P,UACrCqyN,EAAAA,GAAAA,KAACwsC,GAAU,CACPpS,WAAYh7G,GAAag7G,GACzBC,YAAaj7G,GAAai7G,GAE1Bj+G,YAAaA,IAAMsvH,EACnBlyF,UAAWA,IAAMmyF,EACjBhR,YA1BG9qO,IAAA,IAAC,gBAAEssO,GAA0CtsO,EAAA,OAAMgV,IAC7Du6G,GACDwsH,EAAS/mO,GAAK4nO,IACNtQ,EAAgB/qP,UAChB+qP,EAAgB/qP,QAAQgnB,YAAcq0O,EAC1C,GAER,CACH,EAkBuC9+P,SAEvByxI,EAEGgsH,GAAUrwQ,KAAI,CAACwjB,EAAMjX,KACjB04N,EAAAA,GAAAA,KAAC0U,GAAc,CACX1oO,MAAOA,EACPy4B,IAAKn9B,EACLujQ,OAAQO,GAAUnxQ,OAAS,EAAE0T,UAG7BqyN,EAAAA,GAAAA,KAACmqC,GAAM,CAAC11N,IAAK,GAAIm4C,MAAO,GAAI4wD,KAAM,GAAIiqH,QAAS,GAAI51P,GAAIvK,EAAIkT,cAFtDlT,KAMbgkQ,EAAUvwQ,KAAI,CAACq5B,EAAG9sB,KACd04N,EAAAA,GAAAA,KAAC0U,GAAc,CACX1oO,MAAOA,EACPy4B,IAAKn9B,EACLujQ,OAAQS,EAAUrxQ,OAAS,EAAE0T,UAG7BqyN,EAAAA,GAAAA,KAACmqC,GAAM,CAAC11N,IAAKrgB,EAAEqgB,IAAKm4C,MAAOx4D,EAAEw4D,MAAO4wD,KAAMppH,EAAE24D,YAAa06K,QAASrzO,EAAEqzO,QAAS51P,GAAIvK,EAAIkT,cAFhFlT,UAUrC,CElHO,MAAMolQ,GAA0C,CACnD,CACIC,UAAU,EACV//K,MAAO,2BACPlyE,KAAM,wEAEV,CACIkyE,MAAO,eACPlyE,KAAM,wEAEV,CACIkyE,MAAO,mBACPlyE,KAAM,wEAEV,CACIkyE,MAAO,2BACPlyE,KAAM,yECXC,SAASkyP,KACpB,MAAM5gQ,EAAQI,KAEd,OACI4zN,EAAAA,GAAAA,KAAA,WAAAryN,SACK++P,GAAkB3xQ,KAAI,CAACwjB,EAAMjX,KAC1Bg5N,EAAAA,GAAAA,MAACJ,GAAG,CAAC5pN,MAAO,CAAE0mJ,cAAe,IAAKrvJ,SAAA,EAC9BqyN,EAAAA,GAAAA,KAAC0U,GAAc,CAAC1oO,MAAOA,EAAM2B,UACzBqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACbhhO,WAAW,SACXuM,UAAU,KACVzT,MAAM,UACNgc,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQF,MAAOiE,cAAe,GAC5Do/N,OAAQn2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrCynN,OAAQj2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWiC,GAAG5B,SAAS8Y,WACrC7M,SAAU4Q,EAAKquE,WAGvBozI,EAAAA,GAAAA,KAACqrC,GAAQ,CAACz+K,MAAOruE,EAAKquE,MAAOlyE,KAAM6D,EAAK7D,SAfJpT,MAoBxD,0glJC9BairO,GAAkB7+D,GAAOv0H,GAAG;;;;;;EAQ5B85L,GAAgBvlE,GAAOv0H,GAAG;;;;;;EAQ1B0tN,GAAmBn5F,GAAO3Y,GAAU;;;;;;EAqCpCgkE,IA7BYrzN,IAAYM,IAAK,CACxC8gQ,UAAW,CACTvuQ,UAAW,IACXwM,OAAQ,OACR+wF,gBAAiB,OACjB53F,aAAc,EACdg8F,SAAU,SACVp4F,MAAO,WAETilQ,UAAW,CACThiQ,OAAQ,OACRke,OAAQ,EACRC,QAAS,EACTphB,MAAO,OACP5D,aAAc,MACd,CAAC8H,EAAMvO,YAAYkK,KAAK,OAAQ,CAChC,EACA,CAACqE,EAAMvO,YAAYY,GAAG,OAAQ,CAC5BuQ,QAAS,OACT8sK,WAAY,eAKUhI,GAAOv0H,GAAG;;;EAKRu0H,GAAO5yK,IAAI;;;;sBAInBiI,GAASA,EAAM+9N;GC/CtB,SAASkmC,KACtB,MAAMhhQ,EAAQI,KAEd,OACEk0N,EAAAA,GAAAA,MAACvB,GAAc,CAAC+H,SAAU96N,EAAM5K,QAAQlF,WAAWqD,QAAQoO,SAAA,EACzD2yN,EAAAA,GAAAA,MAAA,WAAA3yN,SAAA,EACEqyN,EAAAA,GAAAA,KAACqP,GAA4B,KAC7BrP,EAAAA,GAAAA,KAAC4P,GAAc,CAAChjJ,MAAM,GAAGigJ,SAAS,EAAOx5L,KAAM45N,GAAap9B,MAAOq9B,GAAcz4N,IAAKguL,SAExFzC,EAAAA,GAAAA,KAAA,WAAAryN,UACE2yN,EAAAA,GAAAA,MAACvlE,GAAS,CAACzkJ,MAAO,CAAE+3K,WAAY,GAAIrxB,cAAe,IAAMwV,SAAS,KAAI7kK,SAAA,EACpEqyN,EAAAA,GAAAA,KAACsP,GAAgC,KACjCtP,EAAAA,GAAAA,KAAC+M,GAAQ,CAACl6L,UAAWs6N,GAAmBn5D,QAAM,UAIlDgsB,EAAAA,GAAAA,KAAC4sC,GAAY,MAGnB,CC1BO,IAeHQ,GAA2BvhQ,EAAAA,YAAiB,SAAqB9C,EAAO+C,GAC1E,IAAIuhQ,EAAwBtkQ,EAAMukQ,eAC9BA,OAA2C,IAA1BD,GAA2CA,EAC5DthQ,EAAUhD,EAAMgD,QAChB6B,EAAY7E,EAAM6E,UAClBpL,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,iBAAkB,UAAW,cAE1E,OAAoB8C,EAAAA,cAAoB,OAAOhO,EAAAA,EAAAA,GAAS,CACtD+P,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMV,GAAY0/P,GAAkBvhQ,EAAQrO,SACpEoO,IAAKA,GACJtJ,GACL,IA4BA,UAAekM,EAAAA,GAAAA,GAtDK,CAElBJ,KAAM,CACJM,QAAS,OACT8sK,WAAY,SACZxyJ,QAAS,GAIXxrB,QAAS,CACP,yBAA0B,CACxBg9J,WAAY,KA2CgB,CAChCpvJ,KAAM,kBADR,CAEG8hQ,qCC5DI,MAAMruC,GAAiBrrD,GAAOv0H,KAAI79C,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACrDsN,QAAS,OACT+sK,eAAgB,SAChBD,WAAY,SACZn9K,UAAW,QACXu9F,gBAAiB9vF,EAAM5K,QAAQlF,WAAWqD,QAC1C,CAACyM,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B+zK,WAAY,cAEnB,IAEY6xF,GAAgB75F,GAAOv0H,KAAItvB,IAAA,IAAC,MAAE7jB,GAAO6jB,EAAA,MAAM,CACpD/nB,MAAO,OACP,CAACkE,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B6qK,SAAU,QAEd,CAACxmK,EAAMvO,YAAYY,GAAG,OAAQ,CAC1Bm0K,SAAU,KAEd,CAACxmK,EAAMvO,YAAYY,GAAG,OAAQ,CAC1Bm0K,SAAU,QAEjB,IAEYg7F,GAAgB95F,GAAOv0H,KAAIluB,IAAA,IAAC,MAAEjlB,GAAOilB,EAAA,MAAM,CACpD1yB,UAAW,IACXuJ,MAAO,OACP,CAACkE,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BoD,OAAQ,KAEZ,CAACiB,EAAMvO,YAAYY,GAAG,OAAQ,CAC1B0M,OAAQ,KAEZ,CAACiB,EAAMvO,YAAYY,GAAG,OAAQ,CAC1B0M,OAAQ,KAEZ,CAACiB,EAAMvO,YAAYY,GAAG,OAAQ,CAC1B0M,OAAQ,KAEf,IAGYkiO,GAAWv5D,GAAOv0H,KAAInuB,IAAA,IAAC,MAAEhlB,GAAOglB,EAAA,MAAM,CAC/CpiB,QAAS,OACT9G,MAAO,OACPo4F,SAAU,SACVw7E,WAAY,SACZ,CAAC1vK,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5Bq7N,cAAe,UAEnB,CAACh3N,EAAMvO,YAAYY,GAAG,OAAQ,CAC1B2kO,cAAe,MACfj4N,OAAQ,QAEf,IAEYw7N,GAAc7yD,GAAOv0H,KAAI0wH,IAAA,IAAC,MAAE7jK,GAAO6jK,EAAA,MAAM,CAClD6P,aAAc,EACd2O,WAAY,GACZrxB,cAAe,EACf9+J,YAAa,EACbs0K,SAAU,IACV,CAACxmK,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B6qK,SAAU,QAEjB,IAEYi7F,GAAqB/5F,GAAOv0H,KAAIkxH,IAAA,IAAC,MAAErkK,GAAOqkK,EAAA,MAAM,CACzDlyK,aAAc,GACdq0K,SAAU,IACV,CAACxmK,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B6qK,SAAU,OACVr0K,aAAc,MACd6+J,cAAe,IAEtB,IAEY0wG,GAAWh6F,GAAOv0H,KAAImvI,IAAA,IAAC,MAAEtiL,GAAOsiL,EAAA,MAAM,CAC/CxmL,MAAO,OACP,CAACkE,EAAMvO,YAAYY,GAAG,OAAQ,CAC1BuQ,QAAS,OACT8sK,WAAY,UAEnB,IC7Dc,SAASiyF,GAAU5kQ,GAChC,MAAMiD,EAAQI,KACRmS,EAAOxV,EAAMwV,MACb,GAAE1M,GzgB0QH,WAKL,IAAI,QAAEyC,GAAYzI,EAAAA,WAAiB++J,GAC/B4B,EAAal4J,EAAQA,EAAQra,OAAS,GAC1C,OAAOuyK,EAAcA,EAAW32J,OAAiB,CAAC,CACpD,CygBlRiB+3P,GACT/hG,EAAWR,MACVwoE,EAASg6B,IAAc1tO,EAAAA,EAAAA,WAAS,IAChCsrM,EAAWqiC,IAAgB3tO,EAAAA,EAAAA,UAAS,CAAE5hB,KAAM,QAEnDyjB,EAAAA,EAAAA,YAAU,KACR,MAAM7wB,EAIR,WACE,MAAM48P,EAAaxvP,EAAKwlB,MAAKxlB,GAAQA,EAAKtL,OAAOssG,SAAS1tG,KAC1D,OAAOk8P,GAA0B,IACnC,CAPgBC,GACd78P,EAAQ28P,EAAa,CAAEvvP,KAAMpN,IAAW06J,EAAS9iK,EAAMogO,SAAS,GAC/D,KAaHnnM,EAAAA,EAAAA,YAAU,KACJypM,EAAUltN,OACRktN,EAAUltN,KAAK7D,KACjBmzP,GAAW,GAEXt/B,IAEJ,GACC,CAAC9C,IAEJ,MAAM8C,EAAaA,IAAM1tD,GAAU,CAAEC,OAAQ+sF,GAAW,GAAQxvO,IAAK4vO,MAQrE,MAAMA,EAAeA,IAAMxiC,EAAUltN,KAAKwtN,QAAUN,EAAUltN,KAAKwtN,QAAUN,EAAUltN,KAAKk2B,IAEtFy5N,EAAoBA,KACxBluC,EAAAA,GAAAA,KAAA,QAAM1pN,MAAO,CAAEggE,QAAS,EAAG5+C,SAAU,YAAa/pB,UAChDqyN,EAAAA,GAAAA,KAAA,MAAAryN,SAAK89N,EAAUltN,KAAKmtN,KAAO,IAAMD,EAAUltN,KAAKotN,cAqKpD,OACE3L,EAAAA,GAAAA,KAAA,QAAAryN,UACEqyN,EAAAA,GAAAA,KAAA,WAAAryN,UACEqyN,EAAAA,GAAAA,KAACjB,GAAc,CAAC/yN,MAAOA,EAAM2B,UAC3BqyN,EAAAA,GAAAA,KAACutC,GAAa,CAACvhQ,MAAOA,EAAM2B,UArKVwgQ,EAsKE1iC,EAAUltN,MArKhCs1N,IAGFvT,EAAAA,GAAAA,MAACiS,GAAe,CAAA5kO,SAAA,EACdqyN,EAAAA,GAAAA,KAACkuC,EAAiB,KAClBluC,EAAAA,GAAAA,KAACiZ,GAAa,CAAAtrO,UACZqyN,EAAAA,GAAAA,KAAC6sC,GAAgB,CAAAl/P,UACf2yN,EAAAA,GAAAA,MAAC2M,GAAQ,CAACjhO,MAAOA,EAAM2B,SAAA,EACrBqyN,EAAAA,GAAAA,KAAA,OACE,WAAS,YACT,iBAAe,IACf1pN,MAAO,CAAExO,MAAO,QAAS6F,UAEzB2yN,EAAAA,GAAAA,MAACJ,GAAG,CAAAvyN,SAAA,EACFqyN,EAAAA,GAAAA,KAACE,GAAG,CAACtxN,QAAQ,OAAO1Q,YAAY,MAAMwhL,aAAa,OAAM/xK,UACvDqyN,EAAAA,GAAAA,KAACU,GAAM,CAACpoK,KAAMvvD,EAAMogO,SAASx7N,UAC3B2yN,EAAAA,GAAAA,MAACrkD,GAAM,CAAC3hL,MAAO,UAAWi0I,QAASA,KA9BrDv+H,YAAW,KACT67J,EAAS9iK,EAAMogO,SAAS,GACvB,IA4BsE,EAAC7yN,MAAO,CAAEvT,cAAe,OAAQ4K,SAAA,EACtFqyN,EAAAA,GAAAA,KAAC2qC,GAAAA,EAAS,CAACr0P,MAAO,CAAEvL,OAAQ,GAAIjD,MAAO,OACvCk4N,EAAAA,GAAAA,KAACE,GAAG,CAACj3M,OAAO,kBAAiBtb,UAC3BqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfZ,MAAM,EACNpgO,WAAW,WACXlH,MAAM,UACN6nO,OAAQn2N,EAAM3K,WAAWwC,QAAQnC,SAAS8Y,WAC1CynN,OAAQj2N,EAAM3K,WAAWwC,QAAQnC,SAAS8Y,WAC1CwnN,OAAQh2N,EAAM3K,WAAWwC,QAAQnC,SAAS8Y,WAC1CunN,OAAQ/1N,EAAM3K,WAAWwC,QAAQnC,SAAS8Y,WAC1C0nN,OAAQl2N,EAAM3K,WAAWwC,QAAQnC,SAAS8Y,WAC1C7M,SAAU5E,EAAMqlQ,uBAO1BpuC,EAAAA,GAAAA,KAACE,GAAG,CAAC5pN,MAAO,CAAErV,cAAe,aAAc0M,UACzCqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfZ,MAAM,EACNpgO,WAAW,OACXlH,MAAM,UACN6nO,OAAQ,OACRF,OAAQj2N,EAAM3K,WAAW8B,GAAGzB,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAW8B,GAAGzB,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAW8B,GAAGzB,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAW8B,GAAGzB,SAAS8Y,WACrClE,MAAO,CACLxT,WAAY,IACZC,cAAe,EACfzI,MAAO0R,EAAM5K,QAAQpC,QAAQF,OAE/B6O,SAAUwgQ,EAAWziC,UAIzB1L,EAAAA,GAAAA,KAACE,GAAG,CAAC5pN,MAAO,CAAErV,cAAe,aAAc0M,UACzCqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfZ,MAAM,EACNpgO,WAAW,OACXlH,MAAM,UACN6nO,OAAQ,OACRF,OAAQj2N,EAAM3K,WAAW8B,GAAGzB,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAW8B,GAAGzB,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAW8B,GAAGzB,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAW8B,GAAGzB,SAAS8Y,WACrClE,MAAO,CACLxT,WAAY,IACZC,cAAe,EACfzI,MAAO0R,EAAM5K,QAAQpC,QAAQF,OAE/B6O,SAAUwgQ,EAAWxiC,eAIzB3L,EAAAA,GAAAA,KAACuG,GAAW,CAACv6N,MAAOA,EAAM2B,UACxBqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfZ,MAAM,EACNpgO,WAAW,UACXuM,UAAU,KACVzT,MAAM,UACN6nO,OAAQn2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCynN,OAAQj2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrClE,MAAO,CAAEvT,cAAe,EAAG5E,aAAc,GAAIm4E,QAAS,IACtD3oE,SAAUwgQ,EAAWviC,WAIzB5L,EAAAA,GAAAA,KAACE,GAAG,CAACn1N,OAAO,OAAO20K,aAAa,OAAM/xK,UACpC2yN,EAAAA,GAAAA,MAAC8sC,GAAW,CAAC92P,MAAO,CAAE4S,QAAS,OAAQvb,SAAA,EACrCqyN,EAAAA,GAAAA,KAACjgD,GAAI,CAACznH,KAAM,4BAA4B61M,EAAW7mC,OAAOxhF,WAAYzxI,OAAO,SAAQ1G,UACnFqyN,EAAAA,GAAAA,KAACz/C,GAAU,CAACjmL,MAAO,UAAUqT,UAC3BqyN,EAAAA,GAAAA,KAACuE,GAAAA,EAAY,CAACjuN,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQ8B,aAGxDk/N,EAAAA,GAAAA,KAACjgD,GAAI,CAACznH,KAAM,6BAA6B61M,EAAW7mC,OAAO0E,YAAa33N,OAAO,SAAQ1G,UACrFqyN,EAAAA,GAAAA,KAACz/C,GAAU,CAACjmL,MAAO,UAAUqT,UAC3BqyN,EAAAA,GAAAA,KAACwE,GAAAA,EAAa,CAACluN,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQ8B,kBAK7Dk/N,EAAAA,GAAAA,KAACytC,GAAkB,CAACzhQ,MAAOA,EAAM2B,UAC/BqyN,EAAAA,GAAAA,KAACE,GAAG,CAACxgD,aAAa,MAAK/xK,UACrBqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfZ,MAAM,EACNpgO,WAAW,QACXlH,MAAM,UACNyT,UAAU,IACVo0N,OAAQn2N,EAAM3K,WAAWqC,MAAMhC,SAAS8Y,WACxCynN,OAAQj2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCwnN,OAAQh2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrCunN,OAAQ/1N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrC0nN,OAAQl2N,EAAM3K,WAAWkC,GAAG7B,SAAS8Y,WACrClE,MAAO,CAAEvT,cAAe,GACxB4K,SAAUwgQ,EAAWtiC,uBAO/B7L,EAAAA,GAAAA,KAAC0tC,GAAQ,CAAC1hQ,MAAOA,EAAM2B,UACrBqyN,EAAAA,GAAAA,KAACuK,GAAa,CAACh8F,QAASA,OAAU5gI,UAChCqyN,EAAAA,GAAAA,KAACE,GAAG,CACF,WAAS,UACT,iBAAe,MAAKvyN,UAEpBqyN,EAAAA,GAAAA,KAACE,GAAG,CACF5pN,MAAO,CACL4pF,SAAU,SACVh8F,aAAc,EACd43F,gBAAiB9vF,EAAM5K,QAAQlF,WAAWmD,OAC1CsO,SAGA89N,EAAUltN,KAAK7D,MAEbslN,EAAAA,GAAAA,KAACqnC,GAAY,CAACC,aAAW,EAACp0P,IAAKu4N,EAAUltN,KAAK7D,QAE9CslN,EAAAA,GAAAA,KAACwtC,GAAa,CAACxhQ,MAAOA,EAAM2B,UAC1BqyN,EAAAA,GAAAA,KAACb,GAAY,CACXvyI,MAAOuhL,EAAWziC,KAAO,IAAMyiC,EAAWxiC,UAC1CrM,yBAAuB,EACvBC,UAAQ,EACRzsE,MAAOm7G,mCAnJnC,IAA0BE,CA4K5B,kCCnMO,SAASE,GAAkB7tQ,EAAWwR,GAC3C,IAAI/J,EArCN,SAA2BzH,EAAWwR,GACpC,IACI/J,EADAusE,EAAOxiE,EAAKixB,wBAGhB,GAAIjxB,EAAKs8P,cACPrmQ,EAAY+J,EAAKs8P,kBACZ,CACL,IAAIv3C,EAAgB3kN,OAAOya,iBAAiB7a,GAC5C/J,EAAY8uN,EAAc11M,iBAAiB,sBAAwB01M,EAAc11M,iBAAiB,YACpG,CAEA,IAAIktP,EAAU,EACVC,EAAU,EAEd,GAAIvmQ,GAA2B,SAAdA,GAA6C,kBAAdA,EAAwB,CACtE,IAAIwmQ,EAAkBxmQ,EAAUrM,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAGA,MAAM,KAClE2yQ,EAAUrzQ,SAASuzQ,EAAgB,GAAI,IACvCD,EAAUtzQ,SAASuzQ,EAAgB,GAAI,GACzC,CAEA,MAAkB,SAAdjuQ,EACK,cAAc5F,OAAOwX,OAAO0yK,WAAY,mBAAmBlqL,OAAO2zQ,EAAU/5L,EAAKprD,KAAM,OAG9E,UAAd5oB,EACK,eAAe5F,OAAO45E,EAAKprD,KAAOorD,EAAK1sE,MAAQymQ,EAAS,OAG/C,OAAd/tQ,EACK,cAAc5F,OAAOwX,OAAOylB,YAAa,mBAAmBj9B,OAAO4zQ,EAAUh6L,EAAKnrD,IAAK,OAIzF,eAAezuB,OAAO45E,EAAKnrD,IAAMmrD,EAAKzpE,OAASyjQ,EAAS,MACjE,CAGkBE,CAAkBluQ,EAAWwR,GAEzC/J,IACF+J,EAAKsE,MAAMslF,gBAAkB3zF,EAC7B+J,EAAKsE,MAAMrO,UAAYA,EAE3B,CACA,IAAIs8P,GAAiB,CACnBhvF,MAAO5rK,GAAAA,GAASM,eAChBqrK,KAAM3rK,GAAAA,GAASO,eAObykQ,GAAqB9iQ,EAAAA,YAAiB,SAAe9C,EAAO+C,GAC9D,IAAI6B,EAAW5E,EAAM4E,SACjBu3N,EAAmBn8N,EAAMvI,UACzBA,OAAiC,IAArB0kO,EAA8B,OAASA,EACnD5uD,EAASvtK,EAAMssK,GACf6N,EAAUn6K,EAAMm6K,QAChBsgF,EAAYz6P,EAAMy6P,UAClBC,EAAa16P,EAAM06P,WACnBE,EAAS56P,EAAM46P,OACfjvF,EAAW3rK,EAAM2rK,SACjBkvF,EAAY76P,EAAM66P,UAClBttP,EAAQvN,EAAMuN,MACduuP,EAAiB97P,EAAM4G,QACvBA,OAA6B,IAAnBk1P,EAA4BN,GAAiBM,EACvDF,EAAwB57P,EAAM67P,oBAC9BA,OAAgD,IAA1BD,EAAmCxC,GAAawC,EACtEniQ,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,WAAY,YAAa,KAAM,UAAW,YAAa,aAAc,SAAU,WAAY,YAAa,QAAS,UAAW,wBAErKiD,EAAQI,KACRwiQ,EAAc/iQ,EAAAA,OAAa,MAK3BuvK,EAAevvK,EAAAA,aAAkB,SAAUiJ,GAE7C85P,EAAYx9P,QAAU4D,EAAAA,YAAqBF,EAC7C,GAAG,IACC+5P,GAAwBp8P,EAAAA,GAAAA,GAAW9E,EAAS7B,IAAKsvK,GACjDC,GAAY5oK,EAAAA,GAAAA,GAAWo8P,EAAuB/iQ,GAE9Ck5P,EAA+B,SAAsC3yN,GACvE,OAAO,SAAU6yN,GACX7yN,SAEkBn4C,IAAhBgrQ,EACF7yN,EAASu8N,EAAYx9P,SAErBihC,EAASu8N,EAAYx9P,QAAS8zP,GAGpC,CACF,EAEI/tB,EAAc6tB,GAA6B,SAAUhzP,EAAMkzP,GAC7DmJ,GAAkB7tQ,EAAWwR,GAC7BiyP,GAAOjyP,GAEHkxK,GACFA,EAAQlxK,EAAMkzP,EAElB,IACIC,EAAiBH,GAA6B,SAAUhzP,EAAMkzP,GAChE,IAAIE,EAAkBlB,GAAmB,CACvCv0P,QAASA,EACT2G,MAAOA,GACN,CACDktB,KAAM,UAERxxB,EAAKsE,MAAM+uP,iBAAmBr5P,EAAM9C,YAAYmB,OAAO,qBAAqBxM,EAAAA,EAAAA,GAAS,CAAC,EAAGunQ,EAAiB,CACxG97P,OAAQ0C,EAAM9C,YAAYI,OAAOE,WAEnCwI,EAAKsE,MAAMvH,WAAa/C,EAAM9C,YAAYmB,OAAO,aAAaxM,EAAAA,EAAAA,GAAS,CAAC,EAAGunQ,EAAiB,CAC1F97P,OAAQ0C,EAAM9C,YAAYI,OAAOE,WAEnCwI,EAAKsE,MAAMslF,gBAAkB,OAC7B5pF,EAAKsE,MAAMrO,UAAY,OAEnBw7P,GACFA,EAAWzxP,EAAMkzP,EAErB,IACII,EAAgBN,EAA6BxB,GAC7C+B,EAAgBP,EAA6BpB,GAC7C4B,EAAaR,GAA6B,SAAUhzP,GACtD,IAAIozP,EAAkBlB,GAAmB,CACvCv0P,QAASA,EACT2G,MAAOA,GACN,CACDktB,KAAM,SAERxxB,EAAKsE,MAAM+uP,iBAAmBr5P,EAAM9C,YAAYmB,OAAO,qBAAqBxM,EAAAA,EAAAA,GAAS,CAAC,EAAGunQ,EAAiB,CACxG97P,OAAQ0C,EAAM9C,YAAYI,OAAOI,SAEnCsI,EAAKsE,MAAMvH,WAAa/C,EAAM9C,YAAYmB,OAAO,aAAaxM,EAAAA,EAAAA,GAAS,CAAC,EAAGunQ,EAAiB,CAC1F97P,OAAQ0C,EAAM9C,YAAYI,OAAOI,SAEnC2kQ,GAAkB7tQ,EAAWwR,GAEzB2xP,GACFA,EAAO3xP,EAEX,IACIyjK,EAAeuvF,GAA6B,SAAUhzP,GAExDA,EAAKsE,MAAM+uP,iBAAmB,GAC9BrzP,EAAKsE,MAAMvH,WAAa,GAEpB2lK,GACFA,EAAS1iK,EAEb,IACI88P,EAAiBjjQ,EAAAA,aAAkB,WACjC+iQ,EAAYx9P,SACdi9P,GAAkB7tQ,EAAWouQ,EAAYx9P,QAE7C,GAAG,CAAC5Q,IAyBJ,OAxBAqL,EAAAA,WAAgB,WAEd,IAAIyqK,GAAwB,SAAd91K,GAAsC,UAAdA,EAAtC,CAIA,IAAIuuQ,GAAer/P,EAAAA,GAAAA,IAAS,WACtBk/P,EAAYx9P,SACdi9P,GAAkB7tQ,EAAWouQ,EAAYx9P,QAE7C,IAEA,OADAgB,OAAO6C,iBAAiB,SAAU85P,GAC3B,WACLA,EAAa9+P,QACbmC,OAAOqwB,oBAAoB,SAAUssO,EACvC,CAXA,CAYF,GAAG,CAACvuQ,EAAW81K,IACfzqK,EAAAA,WAAgB,WACTyqK,GAGHw4F,GAEJ,GAAG,CAACx4F,EAAQw4F,IACQjjQ,EAAAA,cAAoB+4P,GAAqB/mQ,EAAAA,EAAAA,GAAS,CACpEilQ,QAAS8L,EACT1rF,QAASi0D,EACTqsB,UAAW8B,EACX7B,WAAY0B,EACZxB,OAAQ6B,EACR9wF,SAAUe,EACVmuF,UAAW2B,EACX1vF,QAAQ,EACRR,GAAIiB,EACJ3mK,QAASA,GACRnN,IAAQ,SAAU2O,EAAOywP,GAC1B,OAAoB/1P,EAAAA,aAAmB8B,GAAU9P,EAAAA,EAAAA,GAAS,CACxDiO,IAAKuvK,EACL/kK,OAAOzY,EAAAA,EAAAA,GAAS,CACdmmC,WAAsB,WAAV7yB,GAAuBmlK,OAAoBp8K,EAAX,UAC3Coc,EAAO3I,EAAS5E,MAAMuN,QACxBsrP,GACL,GACF,IAmEA,YCtRO,IA2BHoN,GAAuBnjQ,EAAAA,YAAiB,SAAiB9C,EAAO+C,GAClE,IAAIC,EAAUhD,EAAMgD,QAChB6B,EAAY7E,EAAM6E,UAClBE,EAAmB/E,EAAMgF,UACzB7C,OAAiC,IAArB4C,EAA8B,MAAQA,EAClDqkK,EAAwBppK,EAAMqpK,eAC9BA,OAA2C,IAA1BD,GAA2CA,EAC5D0K,EAAiB9zK,EAAM+zK,QACvBA,OAA6B,IAAnBD,EAA4B,UAAYA,EAClDr6K,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,UAAW,YAAa,YAAa,iBAAkB,YAEpG,OAAoB8C,EAAAA,cAAoBX,GAAWrN,EAAAA,EAAAA,GAAS,CAC1D+P,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMvC,EAAQ+wK,GAAUlvK,GAAYwkK,GAAkBrmK,EAAQjO,SACtFgO,IAAKA,GACJtJ,GACL,IAoCA,UAAekM,EAAAA,GAAAA,IA9EK,SAAgB1C,GAClC,MAAO,CAELsC,KAAM,CACJopB,SAAU,WACV9oB,QAAS,OACT8sK,WAAY,UAId59K,SAASM,EAAAA,GAAAA,GAAgB,CACvBF,YAAa8N,EAAMtO,QAAQ,GAC3BS,aAAc6N,EAAMtO,QAAQ,IAC3BsO,EAAMvO,YAAYY,GAAG,MAAO,CAC7BH,YAAa8N,EAAMtO,QAAQ,GAC3BS,aAAc6N,EAAMtO,QAAQ,KAI9BuxQ,QAASjjQ,EAAMrO,OAAOW,QAGtB4wQ,MAAO,CACL3wQ,UAAW,IAGjB,GAoDkC,CAChC+M,KAAM,cADR,CAEG0jQ,qCCICG,GAAsBtjQ,EAAAA,YAAiB,SAAgB9C,EAAO+C,GAChE,IAAIC,EAAUhD,EAAMgD,QAChB6B,EAAY7E,EAAM6E,UAClBC,EAAe9E,EAAMzO,MACrBA,OAAyB,IAAjBuT,EAA0B,UAAYA,EAC9CuhQ,EAAkBrmQ,EAAM2uB,SACxBA,OAA+B,IAApB03O,EAA6B,QAAUA,EAClD5sQ,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,UAAW,YAAa,QAAS,aAE9E,OAAoB8C,EAAAA,cAAoBsqO,IAAOt4O,EAAAA,EAAAA,GAAS,CACtDwpE,QAAQ,EACRt5D,UAAW,SACXuoO,UAAW,EACX1oO,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMvC,EAAQ,WAAWnR,QAAOmS,EAAAA,GAAAA,GAAW2qB,KAAa3rB,EAAQ,QAAQnR,QAAOmS,EAAAA,GAAAA,GAAWzS,KAAUsT,EAAwB,UAAb8pB,GAAwB,aAC/J5rB,IAAKA,GACJtJ,GACL,IAmCA,UAAekM,EAAAA,GAAAA,IAtIK,SAAgB1C,GAClC,IAAIqjQ,EAAgD,UAAvBrjQ,EAAM5K,QAAQ7G,KAAmByR,EAAM5K,QAAQ5B,KAAK,KAAOwM,EAAM5K,QAAQ5B,KAAK,KAC3G,MAAO,CAEL8O,KAAM,CACJM,QAAS,OACTo0N,cAAe,SACfl7N,MAAO,OACP2qK,UAAW,aAEXtpK,OAAQ6C,EAAM7C,OAAOuD,OACrBoC,WAAY,GAIdwgQ,cAAe,CACb53O,SAAU,QACVrO,IAAK,EACLD,KAAM,OACNE,MAAO,EACP,eAAgB,CAEdoO,SAAU,aAKd63O,iBAAkB,CAChB73O,SAAU,WACVrO,IAAK,EACLD,KAAM,OACNE,MAAO,GAITkmP,eAAgB,CAEd93O,SAAU,SACVrO,IAAK,EACLD,KAAM,OACNE,MAAO,GAITmmP,eAAgB,CACd/3O,SAAU,UAIZg4O,iBAAkB,CAChBh4O,SAAU,YAIZ+5M,aAAc,CACZ31I,gBAAiBuzK,EACjB/0Q,MAAO0R,EAAM5K,QAAQ8E,gBAAgBmpQ,IAIvCrgQ,aAAc,CACZ8sF,gBAAiB9vF,EAAM5K,QAAQpC,QAAQ8B,KACvCxG,MAAO0R,EAAM5K,QAAQpC,QAAQyH,cAI/BwI,eAAgB,CACd6sF,gBAAiB9vF,EAAM5K,QAAQnC,UAAU6B,KACzCxG,MAAO0R,EAAM5K,QAAQnC,UAAUwH,cAIjCs2K,aAAc,CACZziL,MAAO,WAITq1Q,iBAAkB,CAChB7zK,gBAAiB,cACjBxhG,MAAO,WAGb,GAoDkC,CAChCgR,KAAM,aADR,CAEG6jQ,IC9IUS,GAAYl8F,GAAOwsD,GAAPxsD,EAAYpyK,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACjDsN,QAAS,OACTo0N,cAAe,MACf1sJ,QAAS,EACT43E,mBAAoB,OACpBa,yBAA0B,uCAC1B,CAAC/iJ,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B2uE,QAAS,EACThtD,MAAO,GACPoO,SAAU,YAEjB,IAEYm4O,GAAiBn8F,GAAO6M,GAAP7M,EAAmB7jJ,IAAA,IAAC,MAAE7jB,GAAO6jB,EAAA,MAAM,CAC7D6H,SAAU,WACVpO,MAAO,EACPqxI,YAAa,GACbrkF,QAAS,EACTvnE,WAAY,kBACZ5F,OAAQ,EACR,CAAC6C,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B2uE,QAAS,GAEhB,IAEYw5L,GAAap8F,GAAOy7F,GAAPz7F,EAAeziJ,IAAA,IAAC,MAAEjlB,GAAOilB,EAAA,MAAM,CACrD/0B,WAAY,yBAEf,IC5BY6zQ,GAAkB,CAC3B,CACI1oC,KAAM,YACN/7D,OAAQ,KAEZ,CACI+7D,KAAM,cACN/7D,OAAQ,aAEZ,CACI+7D,KAAM,iBACN/7D,OAAQ,mBAEZ,CACI+7D,KAAM,SACN/7D,OAAQ,WAEZ,CACI+7D,KAAM,QACN/7D,OAAQ,UAEZ,CACI+7D,KAAM,UACN/7D,OAAQ,aCvBT,SAAS0kG,GAAcC,EAAeC,EAAeC,EAAkBC,GACtE,MAAe,cAAVH,GAAwBC,EAAOG,QAEd,gBAAVJ,GAA0BC,EAAOI,UAEvB,mBAAVL,GAAgCC,EAAOK,gBAE7B,WAAVN,GAAwBC,EAAOM,QAErB,UAAVP,GAAuBC,EAAOO,MAP3BN,EAWAC,GAAoB,EAE3C,CCIO,MAAMM,GAAWh9F,GAAOuI,GAAPvI,EAA0BpyK,IAAA,IAAC,aAAEqvQ,EAAY,WAAEC,EAAU,cAAEC,EAAa,UAAEC,EAAS,gBAAEC,EAAe,aAAEC,GAAc1vQ,EAAA,MAAM,CAC5Iw6F,gBAAiB+0K,EACjBv2Q,MAAOw2Q,GAAa,OACpBrzF,YAAa,OAEb16K,cAAe,IAEf,UAAW,CACT+4F,gBAAiB60K,EACjBlzF,YAAa,OACbnjL,MAAOs2Q,GAGT7hQ,WAAY,YACb,ICnBc,SAASkiQ,GAASloQ,GAC7B,MAAM,aAAEi4N,EAAY,WAAEE,GAAeQ,KAC/B11N,EAAQI,KACR63N,EAAO/yD,GAAcllK,EAAMvO,YAAYkK,KAAK,OAC5CkJ,EAAWo6J,KACXY,EAAWR,MACV6kG,EAAQgB,IAAW/wO,EAAAA,EAAAA,UAAgB,CAAEkwO,QAAQ,EAAOC,UAAU,EAAOC,gBAAgB,EAAOC,QAAQ,EAAOC,OAAO,KAEzHzuO,EAAAA,EAAAA,YAAU,KACNkvO,EAAQ,CACJb,OAA+B,MAAtBx/P,EAASqiC,SAClBo9N,SAAWz/P,EAASqiC,SAASqsE,SAAS,aACtCgxJ,eAAiB1/P,EAASqiC,SAASqsE,SAAS,mBAC5CixJ,OAAS3/P,EAASqiC,SAASqsE,SAAS,WACpCkxJ,MAA8B,WAAtB5/P,EAASqiC,UAEnB,GACH,CAACriC,EAASqiC,WAEb,MAAMi+N,EAAelB,IACH,aAAVA,EACA/uC,GAAW,GAEP+uC,IAAUp/P,EAASqiC,SACnB48I,SAAS,CAAEzmK,IAAK,EAAGo4M,SAAU,WAE7B51D,EAASokG,EAEjB,EAGJ,OACIjwC,EAAAA,GAAAA,KAAA,OAAAryN,UACI2yN,EAAAA,GAAAA,MAACJ,GAAG,CAACxoM,SAAS,WAAU/pB,SAAA,EACpBqyN,EAAAA,GAAAA,KAAC2uC,GAAK,CAAC94F,QAAQ,EAAOr1K,UAAU,OAAO60K,IAAI,EAAK1nK,UAC5CqyN,EAAAA,GAAAA,KAAC8vC,GAAU,CAACx5B,UAAW,EAAE3oO,UACrBqyN,EAAAA,GAAAA,KAACgvC,GAAO,CAAArhQ,UACJ2yN,EAAAA,GAAAA,MAACJ,GAAG,CAAC5pN,MAAO,CAAExO,MAAO,OAAQ8G,QAAS,OAAQ+sK,eAAgB,gBAAiBD,WAAY,UAAW/tK,SAAA,EAClGqyN,EAAAA,GAAAA,KAACW,GAAM,CAACE,KAAMmD,GAAcpD,YAAcsD,GAAUitC,EAAYjtC,MAChElE,EAAAA,GAAAA,KAAC4vC,GAAS,CAAAjiQ,SACLoiQ,GAAMh1Q,KAAI,CAACwjB,EAAMjX,KACd04N,EAAAA,GAAAA,KAACE,GAAG,CAAWjlJ,GAAI,EAAEttE,UACjBqyN,EAAAA,GAAAA,KAACU,GAAM,CAACxhO,SAA0B,aAAhBqf,EAAK+sJ,OAAuBhzG,KAAM/5C,EAAK+sJ,OAAO39J,UAC5DqyN,EAAAA,GAAAA,KAAC0wC,GAAQ,CACLxxQ,SAAU+kO,EACV9nD,kBAAgB,EAChBW,QAAQ,YACR9wK,MAAOA,EAEPuiI,QAASA,IAAM4iI,EAAY5yP,EAAK+sJ,QAChCulG,cAAeb,GAAczxP,EAAK8oN,KAAM6oC,EAAQ,cAAe,eAC/DY,UAAWd,GAAczxP,EAAK8oN,KAAM6oC,EAAQlkQ,EAAM5K,QAAQpC,QAAQ8B,KAAMkL,EAAM5K,QAAQpC,QAAQ8B,MAC9F8vQ,WAAY5kQ,EAAM5K,QAAQpC,QAAQ8B,KAClC6vQ,aAAc,wBACdhuQ,KAAK,SACLi6K,UAAWr+J,EAAKle,KAChBsN,UACIqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACbhhO,WAAW,SAEX8U,MAAO,CAAEhc,MAAO01Q,GAAczxP,EAAK8oN,KAAM6oC,EAAQlkQ,EAAM5K,QAAQpC,QAAQF,MAAOkN,EAAM5K,QAAQpC,QAAQ8B,OACpGqhO,OAAQn2N,EAAM3K,WAAWuC,OAAOlC,SAAS8Y,WACzCynN,OAAQj2N,EAAM3K,WAAWuC,OAAOlC,SAAS8Y,WACzCwnN,OAAQh2N,EAAM3K,WAAWuC,OAAOlC,SAAS8Y,WACzCunN,OAAQ/1N,EAAM3K,WAAWuC,OAAOlC,SAAS8Y,WACzC0nN,OAAQl2N,EAAM3K,WAAWuC,OAAOlC,SAAS8Y,WACzC7M,SAAU4Q,EAAK8oN,QAlBlB9oN,EAAK8oN,SAPZ//N,QAiClB04N,EAAAA,GAAAA,KAAC6vC,GAAc,CACX3wQ,UAAW+kO,EACXxjD,KAAK,QACLnmL,MAAM,UACNi0I,QAASA,IAAMyyF,GAAa,GAAMrzN,UAElCqyN,EAAAA,GAAAA,KAACoxC,GAAAA,EAAQ,CAAC96P,MAAO,CAAEhc,MAAO0R,EAAM5K,QAAQpC,QAAQF,qBAMpEkhO,EAAAA,GAAAA,KAACgvC,GAAO,QAIxB,CC7FO,IAqFHqC,GAAoB,CACtBjoP,KAAM,QACNE,MAAO,OACPD,IAAK,OACLF,OAAQ,MAEH,SAASilI,GAAat2H,GAC3B,OAA8C,IAAvC,CAAC,OAAQ,SAASv8B,QAAQu8B,EACnC,CACO,SAASw5O,GAAUtlQ,EAAO8rB,GAC/B,MAA2B,QAApB9rB,EAAMxL,WAAuB4tJ,GAAat2H,GAAUu5O,GAAkBv5O,GAAUA,CACzF,CACA,IAAI4tO,GAA4B,CAC9BnwF,MAAO5rK,GAAAA,GAASM,eAChBqrK,KAAM3rK,GAAAA,GAASO,eAObqnQ,GAAsB1lQ,EAAAA,YAAiB,SAAgB9C,EAAO+C,GAChE,IAAI0lQ,EAAgBzoQ,EAAM+uB,OACtB25O,OAA+B,IAAlBD,EAA2B,OAASA,EACjD1R,EAAgB/2P,EAAM+2P,cACtBnyP,EAAW5E,EAAM4E,SACjB5B,EAAUhD,EAAMgD,QAChB6B,EAAY7E,EAAM6E,UAClByoO,EAAmBttO,EAAMutO,UACzBA,OAAiC,IAArBD,EAA8B,GAAKA,EAC/Cq7B,EAAoB3oQ,EAAM4oQ,WAG1BC,GAFJF,OAA0C,IAAtBA,EAA+B,CAAC,EAAIA,GAEd5R,cACtC6R,GAAalvQ,EAAAA,GAAAA,GAAyBivQ,EAAmB,CAAC,kBAC1D7Q,EAAU93P,EAAM83P,QAChBgR,EAAc9oQ,EAAM0pC,KACpBA,OAAuB,IAAhBo/N,GAAiCA,EACxC7L,EAAoBj9P,EAAMk9P,WAC1BA,OAAmC,IAAtBD,EAA+B,CAAC,EAAIA,EACjD8L,EAAa/oQ,EAAM+oQ,WACnBnN,EAAwB57P,EAAM67P,oBAC9BA,OAAgD,IAA1BD,EAAmCgK,GAAQhK,EACjEwB,EAAwBp9P,EAAMmlJ,mBAC9BA,OAA+C,IAA1Bi4G,EAAmCT,GAA4BS,EACpFtpF,EAAiB9zK,EAAM+zK,QACvBA,OAA6B,IAAnBD,EAA4B,YAAcA,EACpDr6K,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,SAAU,gBAAiB,WAAY,UAAW,YAAa,YAAa,aAAc,UAAW,OAAQ,aAAc,aAAc,sBAAuB,qBAAsB,YAE/NiD,EAAQI,KAIR+yI,EAAUtzI,EAAAA,QAAa,GAC3BA,EAAAA,WAAgB,WACdszI,EAAQ/tI,SAAU,CACpB,GAAG,IACH,IAAI0mB,EAASw5O,GAAUtlQ,EAAOylQ,GAC1B9kQ,EAAsBd,EAAAA,cAAoBsqO,IAAOt4O,EAAAA,EAAAA,GAAS,CAC5Dy4O,UAAuB,cAAZx5D,EAA0Bw5D,EAAY,EACjDjvK,QAAQ,GACP4+L,EAAY,CACbr4P,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQ1M,MAAO0M,EAAQ,cAAcnR,QAAOmS,EAAAA,GAAAA,GAAW+qB,KAAWmuO,EAAWr4P,UAAuB,cAAZkvK,GAA2B/wK,EAAQ,oBAAoBnR,QAAOmS,EAAAA,GAAAA,GAAW+qB,QAC/KnqB,GAEJ,GAAgB,cAAZmvK,EACF,OAAoBjxK,EAAAA,cAAoB,OAAOhO,EAAAA,EAAAA,GAAS,CACtD+P,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMvC,EAAQgmQ,OAAQnkQ,GAC9C9B,IAAKA,GACJtJ,GAAQmK,GAGb,IAAIqlQ,EAA6BnmQ,EAAAA,cAAoB+4P,GAAqB/mQ,EAAAA,EAAAA,GAAS,CACjFw3K,GAAI5iI,EACJjyC,UAAW6wQ,GAAkBv5O,GAC7BnoB,QAASu+I,EACT2nB,OAAQ12B,EAAQ/tI,SACf0gQ,GAAanlQ,GAEhB,MAAgB,eAAZmwK,EACkBjxK,EAAAA,cAAoB,OAAOhO,EAAAA,EAAAA,GAAS,CACtD+P,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMvC,EAAQgmQ,OAAQnkQ,GAC9C9B,IAAKA,GACJtJ,GAAQwvQ,GAIOnmQ,EAAAA,cAAoB4zP,IAAO5hQ,EAAAA,EAAAA,GAAS,CACtDiiQ,eAAejiQ,EAAAA,EAAAA,GAAS,CAAC,EAAGiiQ,EAAe8R,EAAmB,CAC5D1jH,mBAAoBA,IAEtB0xG,kBAAmB6F,GACnB73P,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMvC,EAAQa,MAAOgB,GAC7C6kC,KAAMA,EACNouN,QAASA,EACT/0P,IAAKA,GACJtJ,EAAOmvQ,GAAaK,EACzB,IAgFA,UAAetjQ,EAAAA,GAAAA,IAtQK,SAAgB1C,GAClC,MAAO,CAELsC,KAAM,CAAC,EAGPyjQ,OAAQ,CACN5lP,KAAM,YAIR9sB,MAAO,CACLg5P,UAAW,OACXzpP,QAAS,OACTo0N,cAAe,SACfj4N,OAAQ,OACRohB,KAAM,WACNhjB,OAAQ6C,EAAM7C,OAAOwD,OACrBslQ,wBAAyB,QAGzBv6O,SAAU,QACVrO,IAAK,EAILI,QAAS,GAIXyoP,gBAAiB,CACf9oP,KAAM,EACNE,MAAO,QAIT6oP,iBAAkB,CAChB/oP,KAAM,OACNE,MAAO,GAIT8oP,eAAgB,CACd/oP,IAAK,EACLD,KAAM,EACND,OAAQ,OACRG,MAAO,EACPve,OAAQ,OACR0oK,UAAW,QAIb4+F,kBAAmB,CACjBhpP,IAAK,OACLD,KAAM,EACND,OAAQ,EACRG,MAAO,EACPve,OAAQ,OACR0oK,UAAW,QAIb6+F,sBAAuB,CACrBC,YAAa,aAAa33Q,OAAOoR,EAAM5K,QAAQhC,UAIjDozQ,qBAAsB,CACpBC,aAAc,aAAa73Q,OAAOoR,EAAM5K,QAAQhC,UAIlDszQ,uBAAwB,CACtBC,WAAY,aAAa/3Q,OAAOoR,EAAM5K,QAAQhC,UAIhDwzQ,wBAAyB,CACvBC,UAAW,aAAaj4Q,OAAOoR,EAAM5K,QAAQhC,UAI/CwN,MAAO,CAAC,EAEZ,GAkLkC,CAChCtB,KAAM,YACN6kB,MAAM,GAFR,CAGGohP,ICnRH,IAAIj/P,GAAsC,qBAAXF,OAA4DvG,EAAAA,gBAAwBA,EAAAA,UAgEnH,SArDA,SAAe9C,GACb,IAAI4E,EAAW5E,EAAM4E,SACjBmlQ,EAAe/pQ,EAAMgqQ,MACrBA,OAAyB,IAAjBD,GAAkCA,EAC1CE,EAAkBjqQ,EAAMiP,SACxBA,OAA+B,IAApBg7P,EAA6B,KAAOA,EAE/C3hQ,EAAkBxF,EAAAA,UAAe,GACjC0vK,EAAelqK,EAAgB,GAC/BmqK,EAAkBnqK,EAAgB,GAatC,OAXAiB,IAAkB,WACXygQ,GACHv3F,GAAgB,EAEpB,GAAG,CAACu3F,IACJlnQ,EAAAA,WAAgB,WACVknQ,GACFv3F,GAAgB,EAEpB,GAAG,CAACu3F,IAEgBlnQ,EAAAA,cAAoBA,EAAAA,SAAgB,KAAM0vK,EAAe5tK,EAAWqK,EAC1F,EC5BO,IAgCHi7P,GAAyBpnQ,EAAAA,YAAiB,SAAmB9C,EAAO+C,GACtE,IAAIgsB,EAAS/uB,EAAM+uB,OACf/rB,EAAUhD,EAAMgD,QAChB6B,EAAY7E,EAAM6E,UAClB9F,EAAQiB,EAAMjB,MACdtF,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,SAAU,UAAW,YAAa,UAE/E,OAAoB8C,EAAAA,cAAoB,OAAOhO,EAAAA,EAAAA,GAAS,CACtD+P,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMvC,EAAQ,SAASnR,QAAOmS,EAAAA,GAAAA,GAAW+qB,KAAWlqB,GAC5E9B,IAAKA,EACLwK,OAAOlY,EAAAA,GAAAA,GAAgB,CAAC,EAAGgwJ,GAAat2H,GAAU,QAAU,SAAUhwB,IACrEtF,GACL,IAuBA,UAAekM,EAAAA,GAAAA,IAnEK,SAAgB1C,GAClC,MAAO,CAELsC,KAAM,CACJopB,SAAU,QACVrO,IAAK,EACLD,KAAM,EACND,OAAQ,EACRhgB,OAAQ6C,EAAM7C,OAAOwD,OAAS,GAEhCumQ,WAAY,CACV5pP,MAAO,QAET6pP,YAAa,CACX/pP,KAAM,OACNE,MAAO,GAET8pP,UAAW,CACTjqP,OAAQ,OACRG,MAAO,GAET+pP,aAAc,CACZhqP,IAAK,OACLF,OAAQ,EACRG,MAAO,GAGb,GAwCkC,CAChChe,KAAM,oBADR,CAEG2nQ,IC7DH,IAKIK,GAA0B,KAM9B,SAASC,GAAkBz7O,EAAQk7F,GACjC,MAAkB,UAAXl7F,EAAqB7lB,SAASgtC,KAAK6pB,YAAckqD,EAAQ,GAAGxD,MAAQwD,EAAQ,GAAGxD,KACxF,CAEA,SAASgkJ,GAAkB17O,EAAQk7F,GACjC,MAAkB,WAAXl7F,EAAsB1lB,OAAOylB,YAAcm7F,EAAQ,GAAGjuF,QAAUiuF,EAAQ,GAAGjuF,OACpF,CAEA,SAAS0uO,GAAgBC,EAAiBC,GACxC,OAAOD,EAAkBC,EAAchiH,YAAcgiH,EAAc/hH,YACrE,CAEA,SAASgiH,GAAaC,EAAkBC,EAAerhO,EAAMshO,GAC3D,OAAO35Q,KAAKL,IAAIK,KAAKD,IAAIs4C,EAAOqhO,EAAgBD,EAAmBE,EAAeD,EAAgBD,EAAkB,GAAIE,EAC1H,CAkEA,IAAIC,GAA2B,qBAAd38O,WAA6B,mBAAmBpb,KAAKob,UAAUC,WAC5E28O,GAA4B,CAC9B1+F,MAAO5rK,GAAAA,GAASM,eAChBqrK,KAAM3rK,GAAAA,GAASO,eAEboI,GAAsC,qBAAXF,OAAyBvG,EAAAA,gBAAwBA,EAAAA,UAC5EqoQ,GAA+BroQ,EAAAA,YAAiB,SAAyB6zP,EAAS5zP,GACpF,IAAIE,EAAQI,KACRrD,GAAQsD,EAAAA,GAAAA,GAAc,CACxBf,KAAM,qBACNvC,OAAOlL,EAAAA,EAAAA,GAAS,CAAC,EAAG6hQ,GACpB1zP,MAAOA,IAELwlQ,EAAgBzoQ,EAAM+uB,OACtBA,OAA2B,IAAlB05O,EAA2B,OAASA,EAC7CvR,EAAwBl3P,EAAMorQ,0BAC9BA,OAAsD,IAA1BlU,GAA2CA,EACvEmU,EAAwBrrQ,EAAMsrQ,iBAC9BA,OAA6C,IAA1BD,GAA2CA,EAC9DE,EAAwBvrQ,EAAMwrQ,mBAC9BA,OAA+C,IAA1BD,EAAmCN,GAAMM,EAC9D/T,EAAex3P,EAAMw3P,aACrBiU,EAAoBzrQ,EAAM0rQ,WAC1BA,OAAmC,IAAtBD,EAA+B,IAAOA,EACnDE,EAAwB3rQ,EAAM4rQ,iBAC9BA,OAA6C,IAA1BD,EAAmC,IAAMA,EAC5DhD,EAAoB3oQ,EAAM4oQ,WAG1B7R,GAFJ4R,OAA0C,IAAtBA,EAA+B,CAAC,EAAIA,GAElB5R,cAClC8U,GAAiBnyQ,EAAAA,GAAAA,GAAyBivQ,EAAmB,CAAC,kBAC9D7Q,EAAU93P,EAAM83P,QAChBgU,EAAS9rQ,EAAM8rQ,OACfpiO,EAAO1pC,EAAM0pC,KACbuzN,EAAoBj9P,EAAMk9P,WAC1BA,OAAmC,IAAtBD,EAA+B,CAAC,EAAIA,EACjD8O,EAAiB/rQ,EAAM+rQ,eACvBC,EAAwBhsQ,EAAMisQ,eAC9BA,OAA2C,IAA1BD,EAAmC,GAAKA,EACzD5O,EAAwBp9P,EAAMmlJ,mBAC9BA,OAA+C,IAA1Bi4G,EAAmC8N,GAA4B9N,EACpFtpF,EAAiB9zK,EAAM+zK,QACvBA,OAA6B,IAAnBD,EAA4B,YAAcA,EACpDr6K,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,SAAU,4BAA6B,mBAAoB,qBAAsB,eAAgB,aAAc,mBAAoB,aAAc,UAAW,SAAU,OAAQ,aAAc,iBAAkB,iBAAkB,qBAAsB,YAE/RsI,EAAkBxF,EAAAA,UAAe,GACjCopQ,EAAe5jQ,EAAgB,GAC/B6jQ,EAAkB7jQ,EAAgB,GAElC8jQ,EAAgBtpQ,EAAAA,OAAa,CAC/BquJ,UAAW,OAETk7G,EAAevpQ,EAAAA,SACfwpQ,EAAcxpQ,EAAAA,SACdypQ,EAAWzpQ,EAAAA,SACX0pQ,EAAgB1pQ,EAAAA,QAAa,GAE7B2pQ,EAAwB3pQ,EAAAA,SAE5ByG,IAAkB,WAChBkjQ,EAAsBpkQ,QAAU,IAClC,GAAG,CAACqhC,IACJ,IAAI86G,EAAc1hJ,EAAAA,aAAkB,SAAU2oD,GAC5C,IAAIpwD,EAAUpK,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Ey7Q,EAAgBrxQ,EAAQo/B,KACxBA,OAAyB,IAAlBiyO,EAA2B,KAAOA,EACzCC,EAAwBtxQ,EAAQuxQ,iBAChCA,OAA6C,IAA1BD,GAA0CA,EAC7DE,EAAYtE,GAAUtlQ,EAAO8rB,GAC7B+9O,GAAqE,IAA5C,CAAC,QAAS,UAAUt6Q,QAAQq6Q,GAAoB,GAAK,EAC9ElC,EAAkBtlH,GAAat2H,GAC/B7vB,EAAYyrQ,EAAkB,aAAa94Q,OAAOi7Q,EAAyBrhN,EAAW,UAAY,gBAAgB55D,OAAOi7Q,EAAyBrhN,EAAW,OAC7JshN,EAAcR,EAASlkQ,QAAQkF,MACnCw/P,EAAYl6K,gBAAkB3zF,EAC9B6tQ,EAAY7tQ,UAAYA,EACxB,IAAI8G,EAAa,GAejB,GAbIy0B,IACFz0B,EAAa/C,EAAM9C,YAAYmB,OAAO,MAAO65P,GAAmB,CAC9Dv0P,QAASu+I,GACR,CACD1qH,KAAMA,MAINmyO,IACFG,EAAYzQ,iBAAmBt2P,EAC/B+mQ,EAAY/mQ,WAAaA,IAGtBolQ,IAA8B5T,EAAc,CAC/C,IAAIwV,EAAgBV,EAAYjkQ,QAAQkF,MACxCy/P,EAAcz/L,QAAU,EAAI9hB,EAAYi/M,GAAgBC,EAAiB4B,EAASlkQ,SAE9EukQ,IACFI,EAAc1Q,iBAAmBt2P,EACjCgnQ,EAAchnQ,WAAaA,EAE/B,CACF,GAAG,CAAC+oB,EAAQq8O,EAA2B5T,EAAcv0P,EAAOkiJ,IACxD8nH,GAAqBzjQ,EAAAA,GAAAA,IAAiB,SAAUsB,GAClD,GAAK0hQ,EAAcnkQ,QAQnB,GAJAkiQ,GAA0B,KAC1BiC,EAAcnkQ,SAAU,EACxB8jQ,GAAgB,GAEXC,EAAc/jQ,QAAQ8oJ,UAA3B,CAKAi7G,EAAc/jQ,QAAQ8oJ,UAAY,KAClC,IAEI9oJ,EAFAwkQ,EAAYtE,GAAUtlQ,EAAO8rB,GAC7BmrJ,EAAa70B,GAAat2H,GAI5B1mB,EADE6xK,EACQswF,GAAkBqC,EAAW/hQ,EAAMq/G,gBAEnCsgJ,GAAkBoC,EAAW/hQ,EAAMq/G,gBAG/C,IAAI4gJ,EAAgB7wF,EAAakyF,EAAc/jQ,QAAQgoP,OAAS+b,EAAc/jQ,QAAQioP,OAClF0a,EAAeN,GAAgBxwF,EAAYqyF,EAASlkQ,SACpDyiQ,EAAmBD,GAAaxiQ,EAAS0iQ,EAAerhO,EAAMshO,GAC9DkC,EAAiBpC,EAAmBE,EAEpC35Q,KAAKg5B,IAAI+hP,EAAc/jQ,QAAQ+2F,UAAYwsK,IAE7Ca,EAAsBpkQ,QAAyF,IAA/EhX,KAAKg5B,KAAK2gP,EAAeF,GAAoBsB,EAAc/jQ,QAAQ+2F,WAGjG11D,EACE0iO,EAAc/jQ,QAAQ+2F,SAAWwsK,GAAoBsB,EAAiBxB,EACxE5T,IAGAtzG,EAAY,EAAG,CACb/pH,KAAM,SAOR2xO,EAAc/jQ,QAAQ+2F,UAAYwsK,GAAoB,EAAIsB,EAAiBxB,EAC7EI,IAGAtnH,EAAYkmH,GAAgBxwF,EAAYqyF,EAASlkQ,SAAU,CACzDoyB,KAAM,SAzCV,MAFE2xO,EAAc/jQ,QAAQ8oJ,UAAY,IA8CtC,IACIg8G,GAAsB3jQ,EAAAA,GAAAA,IAAiB,SAAUsB,GAEnD,GAAKyhQ,EAASlkQ,SAAYmkQ,EAAcnkQ,UAKT,MAA3BkiQ,IAAmCA,KAA4B6B,EAAc/jQ,SAAjF,CAIA,IAAIwkQ,EAAYtE,GAAUtlQ,EAAO8rB,GAC7B47O,EAAkBtlH,GAAat2H,GAC/B+pB,EAAW0xN,GAAkBqC,EAAW/hQ,EAAMm/G,SAC9CmjJ,EAAW3C,GAAkBoC,EAAW/hQ,EAAMm/G,SAElD,GAAIvgF,GAAQ6iO,EAASlkQ,QAAQ6kH,SAASpiH,EAAMQ,SAAsC,MAA3Bi/P,GAAiC,CACtF,IAAI8C,EA9OV,SAA0B9lQ,EAAS+lQ,GAIjC,IAFA,IAAID,EAAgB,GAEb9lQ,GAAWA,IAAY+lQ,GAAU,CACtC,IAAI//P,EAAQlE,OAAOya,iBAAiBvc,GAGG,aAAvCgG,EAAM+K,iBAAiB,aACkB,WAAzC/K,EAAM+K,iBAAiB,cACrB+0P,EAAgB,IACP9lQ,EAAQqhJ,YAAc,GAAKrhJ,EAAQ8nP,YAAc9nP,EAAQqhJ,aAAerhJ,EAAQshJ,aAAe,GAAKthJ,EAAQwsJ,aAAexsJ,EAAQshJ,eAG5IwkH,EAAcv5Q,KAAKyT,GAGrBA,EAAUA,EAAQk4M,aACpB,CAEA,OAAO4tD,CACT,CAyN0BE,CAAiBziQ,EAAMQ,OAAQihQ,EAASlkQ,SACxDmlQ,EAxNV,SAA2Bj1Q,GACzB,IAAI80Q,EAAgB90Q,EAAK80Q,cACrB5uQ,EAAQlG,EAAKkG,MACb4J,EAAU9P,EAAK8P,QACf0mB,EAASx2B,EAAKw2B,OAEd0+O,EACc,CACdzpP,EAAG,aACHuF,EAAG,aAHHkkP,EAKY,CACZzpP,EAAG,cACHuF,EAAG,gBAPHkkP,EASY,CACZzpP,EAAG,cACHuF,EAAG,gBAGP,OAAO8jP,EAAcxzG,MAAK,SAAU35J,GAElC,IAAIwtQ,EAAerlQ,GAAW5J,EAEf,QAAXswB,GAA+B,SAAXA,IACtB2+O,GAAgBA,GAGlB,IAAIxqH,EAAkB,SAAXn0H,GAAgC,UAAXA,EAAqB,IAAM,IACvD4+O,EAAiBztQ,EAAMutQ,EAA8BvqH,IACrD0qH,EAAgBD,EAAiB,EACjCE,EAAcF,EAAiBztQ,EAAMutQ,EAA4BvqH,IAAShjJ,EAAMutQ,EAA4BvqH,IAEhH,OAAIwqH,GAAgBG,IAAgBH,GAAgBE,EAC3C1tQ,EAGF,IACT,GACF,CAiL0B4tQ,CAAkB,CACpCT,cAAeA,EACf5uQ,MAAOksQ,EAAkByB,EAAc/jQ,QAAQgoP,OAAS+b,EAAc/jQ,QAAQioP,OAC9EjoP,QAASsiQ,EAAkB7xN,EAAWs0N,EACtCr+O,OAAQA,IAGV,GAAIy+O,EAEF,YADAjD,GAA0BiD,GAI5BjD,GAA0B6B,EAAc/jQ,OAC1C,CAGA,GAAuC,MAAnC+jQ,EAAc/jQ,QAAQ8oJ,UAAmB,CAC3C,IAAI48G,EAAK18Q,KAAKg5B,IAAIyuB,EAAWszN,EAAc/jQ,QAAQgoP,QAC/C2d,EAAK38Q,KAAKg5B,IAAI+iP,EAAWhB,EAAc/jQ,QAAQioP,QAE/Cyd,EAAKC,GACHljQ,EAAMk7G,YACRl7G,EAAMw6G,iBAIV,IAAI2oJ,EAAoBtD,EAAkBoD,EAAKC,GAAMD,EApS/B,EAoS4DC,EAAKD,GAAMC,EApSvE,EAsStB,IAA0B,IAAtBC,IAA+BtD,EAAkBqD,EAtS/B,EAsS4DD,EAtS5D,GAsSyF,CAG7G,GAFA3B,EAAc/jQ,QAAQ8oJ,UAAY88G,GAE7BA,EAEH,YADAhB,EAAmBniQ,GAKrBshQ,EAAc/jQ,QAAQgoP,OAASv3M,EAC/BszN,EAAc/jQ,QAAQioP,OAAS8c,EAE1B9B,GAAqB5hO,IACpBihO,EACFyB,EAAc/jQ,QAAQgoP,QAAU4b,EAEhCG,EAAc/jQ,QAAQioP,QAAU2b,EAGtC,CACF,CAEA,GAAKG,EAAc/jQ,QAAQ8oJ,UAA3B,CAIA,IAAI65G,EAAeN,GAAgBC,EAAiB4B,EAASlkQ,SACzD0iQ,EAAgBJ,EAAkByB,EAAc/jQ,QAAQgoP,OAAS+b,EAAc/jQ,QAAQioP,OAEvF5mN,IAAS0iO,EAAc/jQ,QAAQ6lQ,WACjCnD,EAAgB15Q,KAAKL,IAAI+5Q,EAAeC,IAG1C,IAAIv/M,EAAYo/M,GAAaF,EAAkB7xN,EAAWs0N,EAAUrC,EAAerhO,EAAMshO,GAEzF,GAAIthO,EACF,GAAK0iO,EAAc/jQ,QAAQ6lQ,SAUF,IAAdziN,IACT2gN,EAAc/jQ,QAAQgoP,OAASv3M,EAC/BszN,EAAc/jQ,QAAQioP,OAAS8c,OAZI,CAGnC,KAFezC,EAAkB7xN,EAAWkyN,EAAeoC,EAAWpC,GAOpE,OAJAoB,EAAc/jQ,QAAQ6lQ,UAAW,EACjC9B,EAAc/jQ,QAAQgoP,OAASv3M,EAC/BszN,EAAc/jQ,QAAQioP,OAAS8c,CAInC,CAM0C,OAAxChB,EAAc/jQ,QAAQ8lQ,gBACxB/B,EAAc/jQ,QAAQ8lQ,cAAgB1iN,EACtC2gN,EAAc/jQ,QAAQyiG,SAAWwG,YAAYn0F,MAAQ,GAGvD,IAAIiiF,GAAY3zC,EAAY2gN,EAAc/jQ,QAAQ8lQ,gBAAkB78J,YAAYn0F,MAAQivP,EAAc/jQ,QAAQyiG,UAAY,IAE1HshK,EAAc/jQ,QAAQ+2F,SAA4C,GAAjCgtK,EAAc/jQ,QAAQ+2F,SAA4B,GAAXA,EACxEgtK,EAAc/jQ,QAAQ8lQ,cAAgB1iN,EACtC2gN,EAAc/jQ,QAAQyiG,SAAWwG,YAAYn0F,MAEzCrS,EAAMk7G,YACRl7G,EAAMw6G,iBAGRk/B,EAAY/4F,EA3CZ,CA7DA,CAyGF,IACI2iN,GAAuB5kQ,EAAAA,GAAAA,IAAiB,SAAUsB,GAGpD,IAAIA,EAAMq6G,mBAKNr6G,EAAMujQ,cAKN3kO,GAAS4iO,EAAYjkQ,QAAQ6kH,SAASpiH,EAAMQ,SAAYihQ,EAASlkQ,QAAQ6kH,SAASpiH,EAAMQ,SAA5F,CAIA,IAAIuhQ,EAAYtE,GAAUtlQ,EAAO8rB,GAC7B47O,EAAkBtlH,GAAat2H,GAC/B+pB,EAAW0xN,GAAkBqC,EAAW/hQ,EAAMm/G,SAC9CmjJ,EAAW3C,GAAkBoC,EAAW/hQ,EAAMm/G,SAElD,IAAKvgF,EAAM,CACT,GAAI8hO,GAAsB1gQ,EAAMQ,SAAW+gQ,EAAahkQ,QACtD,OAGF,GAAIsiQ,GACF,GAAI7xN,EAAWmzN,EACb,YAEG,GAAImB,EAAWnB,EACpB,MAEJ,CAEAnhQ,EAAMujQ,YAAa,EACnB9D,GAA0B,KAC1B6B,EAAc/jQ,QAAQgoP,OAASv3M,EAC/BszN,EAAc/jQ,QAAQioP,OAAS8c,EAC/BjB,GAAgB,IAEXziO,GAAQ6iO,EAASlkQ,SAEpBm8I,EAAYkmH,GAAgBC,EAAiB4B,EAASlkQ,UAAYijQ,EAAmB,IAAMW,GAAiB,CAC1GW,kBAAkB,IAItBR,EAAc/jQ,QAAQ+2F,SAAW,EACjCgtK,EAAc/jQ,QAAQyiG,SAAW,KACjCshK,EAAc/jQ,QAAQ8lQ,cAAgB,KACtC/B,EAAc/jQ,QAAQ6lQ,UAAW,EACjC1B,EAAcnkQ,SAAU,CAtCxB,CAuCF,IACAvF,EAAAA,WAAgB,WACd,GAAgB,cAAZixK,EAAyB,CAC3B,IAAI/nK,GAAMhD,EAAAA,GAAAA,GAAcujQ,EAASlkQ,SAMjC,OALA2D,EAAIE,iBAAiB,aAAckiQ,GACnCpiQ,EAAIE,iBAAiB,YAAaihQ,EAAqB,CACrDx8I,SAAS,IAEX3kH,EAAIE,iBAAiB,WAAY+gQ,GAC1B,WACLjhQ,EAAI0tB,oBAAoB,aAAc00O,GACtCpiQ,EAAI0tB,oBAAoB,YAAayzO,EAAqB,CACxDx8I,SAAS,IAEX3kH,EAAI0tB,oBAAoB,WAAYuzO,EACtC,CACF,CAGF,GAAG,CAACl5F,EAASq6F,EAAsBjB,EAAqBF,IACxDnqQ,EAAAA,WAAgB,WACd,OAAO,WAEDynQ,KAA4B6B,EAAc/jQ,UAC5CkiQ,GAA0B,KAE9B,CACF,GAAG,IACHznQ,EAAAA,WAAgB,WACT4mC,GACHyiO,GAAgB,EAEpB,GAAG,CAACziO,IACJ,IAAI4kO,EAAoBxrQ,EAAAA,aAAkB,SAAUiJ,GAElDugQ,EAAYjkQ,QAAU4D,EAAAA,YAAqBF,EAC7C,GAAG,IACH,OAAoBjJ,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoB0lQ,IAAQ1zQ,EAAAA,EAAAA,GAAS,CAC9G40C,OAAkB,cAAZqqI,IAA2Bm4F,IAAsBxiO,EACvDqqI,QAASA,EACT60F,YAAY9zQ,EAAAA,EAAAA,GAAS,CACnBiiQ,eAAejiQ,EAAAA,EAAAA,GAAS,CAAC,EAAGiiQ,EAAe,CACzCh0P,IAAKurQ,KAENzC,GACH3O,YAAYpoQ,EAAAA,EAAAA,GAAS,CAAC,EAAGooQ,EAAY,CACnC3vP,OAAOzY,EAAAA,EAAAA,GAAS,CACd82J,cAA2B,cAAZmoB,GAA4BrqI,EAAgB,GAAT,QACjDwzN,EAAW3vP,OACdxK,IAAKwpQ,IAEPx9O,OAAQA,EACRo2H,mBAAoBsnH,EAAsBpkQ,SAAW88I,EACrD2yG,QAASA,EACT/0P,IAAKA,GACJtJ,KAAU+xQ,GAAkC,cAAZz3F,GAAwCjxK,EAAAA,cAAoByrQ,GAAO,KAAmBzrQ,EAAAA,cAAoBonQ,IAAWp1Q,EAAAA,EAAAA,GAAS,CAC/Ji6B,OAAQA,EACRhsB,IAAKspQ,EACLttQ,MAAOktQ,GACNF,KACL,IA6GA,YCvlBayC,GAAO7jG,GAAO,MAAPA,EAAcpyK,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CAChDyJ,OAAQ,OACT,IAEYysQ,GAAS9jG,GAAOwsD,GAAPxsD,EAAY7jJ,IAAA,IAAC,MAAE7jB,GAAO6jB,EAAA,MAAM,CAChD/nB,MAAO,GACPiD,OAAQ,EACR+wF,gBAAiB9vF,EAAM5K,QAAQpC,QAAQ8B,KACvCoD,aAAc,EACdwzB,SAAU,WACVrO,IAAK,GACLD,KAAM,mBACP,IAEYquP,GAAgB/jG,GAAOv0H,GAAmB;2BAC5Bp2C,GAASA,EAAMiD,MAAM5K,QAAQnC,UAAUH;;;eAGnDiK,GAASA,EAAM2uQ,WAAa,QAAU;;;;;;;EASxCvvC,GAAgBz0D,GAAOv0H,GAAW;;;;;;2BAMpBp2C,GAASA,EAAMiD,MAAM5K,QAAQpC,QAAQ8B;;EAInDm4O,GAAgBvlE,GAAO3Y,GAAmB;;2BAE5BhyJ,GAASA,EAAMiD,MAAM5K,QAAQlF,WAAWqD;;;;;ECzBpD,SAASo4Q,KACtB,MAAM73C,EAAQz4B,MACR,UAAE05B,EAAS,aAAEC,EAAY,WAAEE,GAAeQ,KAC1C11N,EAAQI,KACRy/J,EAAWR,KACX/2J,EAAU48J,GAAcllK,EAAMvO,YAAYY,GAAG,OAC7CwS,EAAWo6J,MACVilG,EAAQgB,IAAW/wO,EAAAA,EAAAA,UAAgB,CAAEkwO,QAAQ,EAAOC,UAAU,EAAOC,gBAAgB,EAAOC,QAAQ,EAAOC,OAAO,IAEnHhnC,EAAc/qM,eAA6BohM,EAAMt4N,MAAM,CAAE8uE,QAASm4J,KAExEzsM,EAAAA,EAAAA,YAAU,KACRkvO,EAAQ,CACNb,OAA+B,MAAtBx/P,EAASqiC,SAClBo9N,SAAWz/P,EAASqiC,SAASqsE,SAAS,aACtCgxJ,eAAiB1/P,EAASqiC,SAASqsE,SAAS,mBAC5CixJ,OAAS3/P,EAASqiC,SAASqsE,SAAS,WACpCkxJ,MAA8B,WAAtB5/P,EAASqiC,UACjB,GACD,CAACriC,EAASqiC,YAEblR,EAAAA,EAAAA,YAAU,KACR0/N,GAAa,GACZ,CAACptP,KAEJ0tB,EAAAA,EAAAA,YAAU,KACJ++L,EACF/wN,YAAW,KACTy5N,EAAY,EAAE,GACb,KAGHA,EAAY,EACd,GAEC,CAAC1I,IAEJ,MAqBM2gC,EAAchjO,gBACZ+qM,EAAY,GAClBzI,GAAa,EAAM,EAGrB,OACEhB,EAAAA,GAAAA,KAACu3C,GAAI,CAAA5pQ,UACHqyN,EAAAA,GAAAA,KAACk0C,GAAe,CACdvC,WAAY,CAAElR,aAAa,GAC3BwF,WAAY,CAAE3vP,MAAO,CAAEwlF,gBAAiB,gBACxChkE,OAAO,SACP2a,KAAMsuL,EACN8zC,OAASzgP,MACTysO,QAASa,EACTsT,eA1Ee,GA2EfT,oBAAkB,EAAA5mQ,UAElBqyN,EAAAA,GAAAA,KAACb,GAAY,CACXvyI,MAAM,GACNyyI,gBAAgB,8FAChBG,aAAa,EACbz0N,OAAO,QACPjD,MAAM,OACNgrJ,MAAO2vE,GACP90N,UACEqyN,EAAAA,GAAAA,KAAA,OAAK1pN,MAAO,CAAEvL,OAAQ,QAAS4C,UAC7BqyN,EAAAA,GAAAA,KAACiZ,GAAa,CAACjtO,MAAOA,EAAM2B,UAC1B2yN,EAAAA,GAAAA,MAACJ,GAAG,CAAC5pN,MAAO,CAAExO,MAAO,QAAS6F,SAAA,EAC5B2yN,EAAAA,GAAAA,MAACm3C,GAAa,CAACzrQ,MAAOA,EAAO0rQ,aAAY32C,EAAyBpzN,SAAA,EAChEqyN,EAAAA,GAAAA,KAACw3C,GAAM,CAACxrQ,MAAOA,KACfg0N,EAAAA,GAAAA,KAACE,GAAG,CAAC5zM,EAAG,QAEV0zM,EAAAA,GAAAA,KAACx2M,GAAO21B,IAAG,CACTgpJ,QAAS,CAAE7xH,QAAS,GACpBkrH,QAASs+B,EACT/wN,WAAYA,GAAWpB,UAEvBqyN,EAAAA,GAAAA,KAACmI,GAAa,CAACn8N,MAAOA,EAAM2B,UAC1BqyN,EAAAA,GAAAA,KAACE,GAAG,CAACtxN,QAAS,OAAQo0N,cAAc,SAAStnD,WAAY,SAAUC,eAAgB,SAAU7zK,MAAM,OAAM6F,SACtGoiQ,GAAMh1Q,KAAI,CAACwjB,EAAMjX,KAChB04N,SAAAA,GAAAA,KAACE,GAAG,CAAWp4N,MAAM,OAAOu6G,GAAI,GAAIxzE,GAAI,GAAGlhC,UACzCqyN,EAAAA,GAAAA,KAAC0wC,GAAQ,CACPj0F,WAAS,EACTzwK,MAAOA,EAEPuiI,SAlEN21F,EAkE4B3lN,EAAK+sJ,OAlEf,KACtCt7J,YAAW,KACTy5N,EAAY,GAAGhuG,MAAK,KAClBulG,GAAa,GACbhxN,YAAW,KACK,aAAVk0N,EACFhD,GAAW,GAEPgD,IAAUrzN,EAASqiC,SACrB48I,SAAS,CAAEzmK,IAAK,EAAGo4M,SAAU,WAE7B51D,EAASq4D,EAEb,GACC,IAAI,GACP,GAED,IAAI,GAkDmB2sC,cAAeb,GAAczxP,EAAK8oN,KAAM6oC,EAAQ,cAAe,eAC/DY,UAAWd,GAAczxP,EAAK8oN,KAAM6oC,EAAQlkQ,EAAM5K,QAAQpC,QAAQ8B,KAAMkL,EAAM5K,QAAQpC,QAAQ8B,MAC9F8vQ,WAAY5kQ,EAAM5K,QAAQpC,QAAQ8B,KAClC6vQ,aAAc,cACdI,gBAAiB,EACjBC,aAAc,EACdruQ,KAAK,QACLi6K,UAAWr+J,EAAKle,KAChBy8K,QAAQ,YACRX,kBAAgB,EAChBxuK,UACEqyN,EAAAA,GAAAA,KAACwC,GAAgB,CACfhhO,WAAW,SACX8U,MAAO,CAAEhc,MAAO01Q,GAAczxP,EAAK8oN,KAAM6oC,EAAQlkQ,EAAM5K,QAAQpC,QAAQF,MAAOkN,EAAM5K,QAAQpC,QAAQ8B,OACpGqhO,OAAQn2N,EAAM3K,WAAWuC,OAAOlC,SAAS8Y,WACzCynN,OAAQj2N,EAAM3K,WAAWuC,OAAOlC,SAAS8Y,WACzCwnN,OAAQh2N,EAAM3K,WAAWuC,OAAOlC,SAAS8Y,WACzCunN,OAAQ/1N,EAAM3K,WAAWuC,OAAOlC,SAAS8Y,WACzC0nN,OAAQl2N,EAAM3K,WAAWuC,OAAOlC,SAAS8Y,WACzC7M,SAAU4Q,EAAK8oN,QArBd9oN,EAAK8oN,OAJJ//N,GA7DZ48N,KA0FC,sBAYzB,i1+ECvJe,SAAS0zC,KACpB,MAAM,YAAE32C,EAAW,WAAEC,GAAeQ,MAC7BjvL,EAAMu6L,IAAW7sM,EAAAA,EAAAA,WAAS,GAQjC,OANA6B,EAAAA,EAAAA,YAAU,MACDyQ,IAASwuL,IAAkBxuL,GAAQwuL,IACpC+L,EAAQ/L,EACZ,GACD,CAACA,KAGAjB,EAAAA,GAAAA,KAAC2lC,GAAM,CACHlzN,KAAMA,EACNn8B,MAAO,CAAE2S,OAAQ,GACjB43O,QAASA,IAAM3/B,GAAW,GAC1B+kC,WAAY,CAAE3vB,UAAW,EAAGhgO,MAAO,CAAEwlF,gBAAiB,gBACtDiqK,eAAgBA,IACZtzN,IACAutL,EAAAA,GAAAA,KAACjlE,GAAS,CAACyX,SAAU,KAAK7kK,UACtBqyN,EAAAA,GAAAA,KAACE,GAAG,CAACp4N,MAAM,OAAM6F,UACbqyN,EAAAA,GAAAA,KAAC+M,GAAQ,CAAC/tM,MAAM,EAAO6T,UAAWglO,UAO1D,CCxBA,IAiLIC,GAA8BjsQ,EAAAA,YAAiB,SAAwB9C,EAAO+C,GAChF,IAAIC,EAAUhD,EAAMgD,QAChB6B,EAAY7E,EAAM6E,UAClBC,EAAe9E,EAAMzO,MACrBA,OAAyB,IAAjBuT,EAA0B,UAAYA,EAC9C/T,EAAQiP,EAAMjP,MACdi+Q,EAAchvQ,EAAMgvQ,YACpBl7F,EAAiB9zK,EAAM+zK,QACvBA,OAA6B,IAAnBD,EAA4B,gBAAkBA,EACxDr6K,GAAQC,EAAAA,GAAAA,GAAyBsG,EAAO,CAAC,UAAW,YAAa,QAAS,QAAS,cAAe,YAElGiD,EAAQI,KACR4rQ,EAAY,CAAC,EACbC,EAAe,CACjBC,KAAM,CAAC,EACPC,KAAM,CAAC,GAGT,GAAgB,gBAAZr7F,GAAyC,WAAZA,EAC/B,QAAc5iL,IAAVJ,EAAqB,CACvBk+Q,EAAU,iBAAmB59Q,KAAKe,MAAMrB,GACxCk+Q,EAAU,iBAAmB,EAC7BA,EAAU,iBAAmB,IAC7B,IAAI/vQ,EAAYnO,EAAQ,IAEA,QAApBkS,EAAMxL,YACRyH,GAAaA,GAGfgwQ,EAAaC,KAAKjwQ,UAAY,cAAcrN,OAAOqN,EAAW,KAChE,MAAWiR,EAKb,GAAgB,WAAZ4jK,EACF,QAAoB5iL,IAAhB69Q,EAA2B,CAC7B,IAAIK,GAAcL,GAAe,GAAK,IAEd,QAApB/rQ,EAAMxL,YACR43Q,GAAcA,GAGhBH,EAAaE,KAAKlwQ,UAAY,cAAcrN,OAAOw9Q,EAAY,KACjE,MAAWl/P,EAKb,OAAoBrN,EAAAA,cAAoB,OAAOhO,EAAAA,EAAAA,GAAS,CACtD+P,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQuC,KAAMvC,EAAQ,QAAQnR,QAAOmS,EAAAA,GAAAA,GAAWzS,KAAUsT,EAAW,CACnF,YAAe7B,EAAQssQ,YACvB,cAAiBtsQ,EAAQusQ,cACzB,OAAUvsQ,EAAQmrF,OAClB,MAASnrF,EAAQuP,OACjBwhK,IACFtuK,KAAM,eACLwpQ,EAAW,CACZlsQ,IAAKA,GACJtJ,GAAoB,WAAZs6K,EAAoCjxK,EAAAA,cAAoB,MAAO,CACxE+B,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQwsQ,OAAQxsQ,EAAQ,cAAcnR,QAAOmS,EAAAA,GAAAA,GAAWzS,QACrE,KAAmBuR,EAAAA,cAAoB,MAAO,CACjD+B,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQysQ,IAAKzsQ,EAAQ,WAAWnR,QAAOmS,EAAAA,GAAAA,GAAWzS,MAAuB,kBAAZwiL,GAA2C,UAAZA,IAAwB/wK,EAAQ0sQ,kBAAmB,CAC7J,YAAe1sQ,EAAQ2sQ,gBACvB,OAAU3sQ,EAAQ4sQ,YAClB77F,IACFxmK,MAAO2hQ,EAAaC,OACN,gBAAZp7F,EAA4B,KAAoBjxK,EAAAA,cAAoB,MAAO,CAC7E+B,WAAWS,EAAAA,GAAAA,GAAKtC,EAAQysQ,KAAkB,kBAAZ17F,GAA2C,UAAZA,IAAwB/wK,EAAQ6sQ,kBAA+B,WAAZ97F,EAAuB,CAAC/wK,EAAQ,QAAQnR,QAAOmS,EAAAA,GAAAA,GAAWzS,KAAUyR,EAAQ8sQ,YAAc9sQ,EAAQ,WAAWnR,QAAOmS,EAAAA,GAAAA,GAAWzS,MAC/Ogc,MAAO2hQ,EAAaE,OAExB,IAyCA,UAAezpQ,EAAAA,GAAAA,IA/RK,SAAgB1C,GAClC,IAAI8sQ,EAAW,SAAkBx+Q,GAC/B,MAA8B,UAAvB0R,EAAM5K,QAAQ7G,MAAmB+C,EAAAA,GAAAA,GAAQhD,EAAO,MAAQ8C,EAAAA,GAAAA,IAAO9C,EAAO,GAC/E,EAEIy+Q,EAAoBD,EAAS9sQ,EAAM5K,QAAQpC,QAAQ8B,MACnDk4Q,EAAsBF,EAAS9sQ,EAAM5K,QAAQnC,UAAU6B,MAC3D,MAAO,CAELwN,KAAM,CACJopB,SAAU,WACVwoE,SAAU,SACVn1F,OAAQ,EACR,eAAgB,CACd+f,YAAa,UAKjB9b,aAAc,CACZ8sF,gBAAiBi9K,GAInB9pQ,eAAgB,CACd6sF,gBAAiBk9K,GAInBX,YAAa,CAAC,EAGdC,cAAe,CAAC,EAGhBphL,OAAQ,CACN4E,gBAAiB,eAInBxgF,MAAO,CACLrT,UAAW,kBAIbswQ,OAAQ,CACN7gP,SAAU,WACV67J,UAAW,EACXxoL,OAAQ,OACRjD,MAAO,OACP+qC,UAAW,8BAIbomO,mBAAoB,CAClB94C,gBAAiB,mBAAmBvlO,OAAOm+Q,EAAmB,SAASn+Q,OAAOm+Q,EAAmB,0BACjG34C,eAAgB,YAChBX,mBAAoB,WAItBy5C,qBAAsB,CACpB/4C,gBAAiB,mBAAmBvlO,OAAOo+Q,EAAqB,SAASp+Q,OAAOo+Q,EAAqB,0BACrG54C,eAAgB,YAChBX,mBAAoB,WAItB+4C,IAAK,CACH1wQ,MAAO,OACP4vB,SAAU,WACVtO,KAAM,EACND,OAAQ,EACRE,IAAK,EACLta,WAAY,wBACZs7B,gBAAiB,QAInB8uO,gBAAiB,CACfr9K,gBAAiB9vF,EAAM5K,QAAQpC,QAAQ8B,MAIzCs4Q,kBAAmB,CACjBt9K,gBAAiB9vF,EAAM5K,QAAQnC,UAAU6B,MAI3C23Q,kBAAmB,CACjB3wQ,MAAO,OACP+qC,UAAW,yEAIb6lO,gBAAiB,CACf3pQ,WAAY,cAAcnU,OAlGN,EAkGkC,aAIxD+9Q,WAAY,CACVxvQ,OAAQ,EACR4F,WAAY,cAAcnU,OAxGN,EAwGkC,aAIxDg+Q,kBAAmB,CACjB9wQ,MAAO,OACP+qC,UAAW,0EAIbgmO,WAAY,CACV9pQ,WAAY,cAAcnU,OAnHN,EAmHkC,aAMxD,4BAA6B,CAE3B,KAAM,CACJwuB,KAAM,OACNE,MAAO,QAGT,MAAO,CACLF,KAAM,OACNE,MAAO,QAET,OAAQ,CACNF,KAAM,OACNE,MAAO,SAGX,4BAA6B,CAE3B,KAAM,CACJF,KAAM,QACNE,MAAO,QAGT,MAAO,CACLF,KAAM,OACNE,MAAO,OAET,OAAQ,CACNF,KAAM,OACNE,MAAO,QAGX,oBAAqB,CACnB,KAAM,CACJgtD,QAAS,EACTmpJ,mBAAoB,WAEtB,MAAO,CACLnpJ,QAAS,EACTmpJ,mBAAoB,WAEtB,OAAQ,CACNnpJ,QAAS,EACTmpJ,mBAAoB,iBAI5B,GAyHkC,CAChCn0N,KAAM,qBADR,CAEGwsQ,ICzSUj5C,GAAcnrD,GAAOlqJ,GAAO21B,IAAdu0H,EAAmBpyK,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CAC1Dw6F,gBAAiB9vF,EAAM5K,QAAQpC,QAAQ8B,KACvC42B,SAAU,WACVrO,IAAK,EACLte,OAAQ,QACRjD,MAAO,OACP8G,QAAS,OACT+sK,eAAgB,SAChBD,WAAY,SAEf,ICLc,SAAS29F,KACpB,MAAMrtQ,EAAQI,KACR63N,EAAO/yD,GAAcllK,EAAMvO,YAAYkK,KAAK,QAC5C,OAAEm5K,GAAW4gD,KAEnB,OACI1B,EAAAA,GAAAA,KAAA,OAAAryN,UACIqyN,EAAAA,GAAAA,KAACy/B,GAAK,CACFnpP,MAAO,CAAE0S,OAAQ,EAAG7f,OAAQ,KAC5Bw1P,qBAAmB,EACnBF,qBAAmB,EACnBF,kBAAgB,EAChB9rN,KAAMquI,EACNnzK,UACI2yN,EAAAA,GAAAA,MAAAC,GAAAA,SAAA,CAAA5yN,SAAA,EACIqyN,EAAAA,GAAAA,KAAC83C,GAAc,CAACxhQ,MAAO,CAAEnN,OAAQ,GAAK7O,MAAM,eAC5C0lO,EAAAA,GAAAA,KAACnB,GAAW,CAAC7yN,MAAOA,EAAM2B,UACtBqyN,EAAAA,GAAAA,KAACb,GAAY,CACTvyI,MAAM,GACN8yI,eAAa,EACb5jI,gBAAgB,cAChB/wF,OAAQk5N,EAAO,QAAU,QACzBn8N,MAAOm8N,EAAO,QAAU,QACxBnxE,MAzBf,2DA0BewsE,yBAAuB,YAQvD,yHC5BIg6C,GAA4B,CAAEC,IAChCA,EAAiB,KAAI,OACrBA,EAAiB,KAAI,OACrBA,EAAiB,KAAI,OACrBA,EAAiB,KAAI,OACrBA,EAAiB,KAAI,OACrBA,EAAiB,KAAI,OACrBA,EAAqB,SAAI,WACzBA,EAAmB,OAAI,SACvBA,EAAkB,MAAI,QACtBA,EAAkB,MAAI,QACtBA,EAAqB,SAAI,yBAClBA,GAZuB,CAa7BD,IAAa,CAAC,GACbE,GACI,CAAEvtM,IAAK,CAAC,UAAW,YAAa,cADpCutM,GAEM,CAAEj/Q,KAAM,CAAC,wBAFfi/Q,GAGI,CACJ/6O,QAAS,GACTnzB,KAAM,CAAC,YAAa,SAAU,eAC9BmiB,SAAU,CACR,UACA,WACA,SACA,WACA,eACA,iBACA,cACA,gBACA,sBACA,gBACA,oBACA,eACA,iBAIFgsP,GAAkBhxQ,OAAO9M,OAAO29Q,IAChCI,GAAgB,CAClBC,UAAW,YACXl7O,QAAS,UACTm7O,MAAO,YACPC,gBAAiB,kBACjBC,YAAa,cACb,aAAc,YACdC,SAAU,WACVC,SAAU,YAERC,GAAexxQ,OAAOq0I,QAAQ48H,IAAetwQ,QAC/C,CAAC8wQ,EAAK54Q,KAAmB,IAAhBgG,EAAKxN,GAAMwH,EAElB,OADA44Q,EAAMpgR,GAASwN,EACR4yQ,CAAK,GAEd,CAAC,GAECC,GAAmB,UAGnBC,GACa,eADbA,GAEK,QAFLA,GAGyB,0BAHzBA,GAIsB,sBAJtBA,GAKc,gBALdA,GAMmB,oBAEnBC,GAAuBA,CAACC,EAAW7sP,KACrC,IAAK,IAAI1xB,EAAIu+Q,EAAUrgR,OAAS,EAAG8B,GAAK,EAAGA,GAAK,EAAG,CACjD,MAAMgN,EAAQuxQ,EAAUv+Q,GACxB,GAAI0M,OAAOyN,UAAUrV,eAAeiZ,KAAK/Q,EAAO0kB,GAC9C,OAAO1kB,EAAM0kB,EAEjB,CACA,OAAO,IAAI,EAET8sP,GAAyBD,IAC3B,IAAIE,EAAiBH,GAAqBC,EAAW,SACrD,MAAMG,EAAoBJ,GAAqBC,EAAWF,IAI1D,GAHI/xQ,MAAMuC,QAAQ4vQ,KAChBA,EAAiBA,EAAep/Q,KAAK,KAEnCq/Q,GAAqBD,EACvB,OAAOC,EAAkB9hQ,QAAQ,OAAO,IAAM6hQ,IAEhD,MAAME,EAAwBL,GAAqBC,EAAWF,IAC9D,OAAOI,GAAkBE,QAAyB,CAAM,EAEtDC,GAA0BL,GAAcD,GAAqBC,EAAWF,KAAwC,MACnH,GACGQ,GAA6BA,CAACC,EAASP,IAAcA,EAAU5tP,QAAQ3jB,GAAoC,qBAAnBA,EAAM8xQ,KAA0B9/Q,KAAKgO,GAAUA,EAAM8xQ,KAAUzxQ,QAAO,CAAC0xQ,EAAU1pQ,KAAY,IAAM0pQ,KAAa1pQ,KAAY,CAAC,GACrN2pQ,GAA0BA,CAACC,EAAmBV,IAAcA,EAAU5tP,QAAQ3jB,GAA8C,qBAA7BA,EAAuB,OAAmBhO,KAAKgO,GAAUA,EAAuB,OAAGgmD,UAAU3lD,QAAO,CAAC6xQ,EAAkBx7J,KACxN,IAAKw7J,EAAiBhhR,OAAQ,CAC5B,MAAMsD,EAAOkL,OAAOlL,KAAKkiH,GACzB,IAAK,IAAI1jH,EAAI,EAAGA,EAAIwB,EAAKtD,OAAQ8B,GAAK,EAAG,CACvC,MACMm/Q,EADe39Q,EAAKxB,GACiBosB,cAC3C,IAA0D,IAAtD6yP,EAAkBz/Q,QAAQ2/Q,IAAiCz7J,EAAIy7J,GACjE,OAAOD,EAAiBrgR,OAAO6kH,EAEnC,CACF,CACA,OAAOw7J,CAAgB,GACtB,IAECE,GAAuBA,CAAC5mQ,EAASymQ,EAAmBV,KACtD,MAAMc,EAAmB,CAAC,EAC1B,OAAOd,EAAU5tP,QAAQ3jB,IACvB,QAAIV,MAAMuC,QAAQ7B,EAAMwL,MAGM,qBAAnBxL,EAAMwL,KAPT8mQ,EASJ,WAAW9mQ,2DAAiExL,EAAMwL,MATtEvW,SAAmC,oBAAjBA,QAAQC,MAAuBD,QAAQC,KAAKo9Q,KAYvE,GAZCA,KAYI,IACXtgR,KAAKgO,GAAUA,EAAMwL,KAAUw6C,UAAU3lD,QAAO,CAACkyQ,EAAcC,KAChE,MAAMC,EAAmB,CAAC,EAC1BD,EAAa7uP,QAAQ+yF,IACnB,IAAIg8J,EACJ,MAAMC,EAAQjzQ,OAAOlL,KAAKkiH,GAC1B,IAAK,IAAI1jH,EAAI,EAAGA,EAAI2/Q,EAAMzhR,OAAQ8B,GAAK,EAAG,CACxC,MAAM4/Q,EAAeD,EAAM3/Q,GACrBm/Q,EAAwBS,EAAaxzP,eACe,IAAtD6yP,EAAkBz/Q,QAAQ2/Q,IAA2D,QAAxBO,GAAsF,cAA3Ch8J,EAAIg8J,GAAqBtzP,eAA8D,QAA1B+yP,GAA0F,eAA7Cz7J,EAAIy7J,GAAuB/yP,gBAC/OszP,EAAsBP,IAEyB,IAA7CF,EAAkBz/Q,QAAQogR,IAA0C,cAAjBA,GAAkE,YAAjBA,GAA8D,aAAjBA,IACnJF,EAAsBE,EAE1B,CACA,IAAKF,IAAwBh8J,EAAIg8J,GAC/B,OAAO,EAET,MAAM3hR,EAAQ2lH,EAAIg8J,GAAqBtzP,cAOvC,OANKizP,EAAiBK,KACpBL,EAAiBK,GAAuB,CAAC,GAEtCD,EAAiBC,KACpBD,EAAiBC,GAAuB,CAAC,IAEtCL,EAAiBK,GAAqB3hR,KACzC0hR,EAAiBC,GAAqB3hR,IAAS,GACxC,EAEG,IACXi1D,UAAU1wC,SAASohG,GAAQ67J,EAAaz+Q,KAAK4iH,KAChD,MAAMliH,EAAOkL,OAAOlL,KAAKi+Q,GACzB,IAAK,IAAIz/Q,EAAI,EAAGA,EAAIwB,EAAKtD,OAAQ8B,GAAK,EAAG,CACvC,MAAM4/Q,EAAep+Q,EAAKxB,GACpB6/Q,EAAW,IACZR,EAAiBO,MACjBH,EAAiBG,IAEtBP,EAAiBO,GAAgBC,CACnC,CACA,OAAON,CAAY,GAClB,IAAIvsN,SAAS,EAEd8sN,GAA0BA,CAACvB,EAAWwB,KACxC,GAAIzzQ,MAAMuC,QAAQ0vQ,IAAcA,EAAUrgR,OACxC,IAAK,IAAIgB,EAAQ,EAAGA,EAAQq/Q,EAAUrgR,OAAQgB,GAAS,EAAG,CAExD,GADaq/Q,EAAUr/Q,GACd6gR,GACP,OAAO,CAEX,CAEF,OAAO,CAAK,EAoCVC,GAAgBC,GAAkB3zQ,MAAMuC,QAAQoxQ,GAAiBA,EAAc5gR,KAAK,IAAM4gR,EAU1FC,GAAcA,CAACC,EAAcC,IAC3B9zQ,MAAMuC,QAAQsxQ,GACTA,EAAa9yQ,QAClB,CAACC,EAAK+yQ,KAZYC,EAACtzQ,EAAOuzQ,KAC9B,MAAM/+Q,EAAOkL,OAAOlL,KAAKwL,GACzB,IAAK,IAAIhN,EAAI,EAAGA,EAAIwB,EAAKtD,OAAQ8B,GAAK,EACpC,GAAIugR,EAAQ/+Q,EAAKxB,KAAOugR,EAAQ/+Q,EAAKxB,IAAIwjH,SAASx2G,EAAMxL,EAAKxB,KAC3D,OAAO,EAGX,OAAO,CAAK,EAMFsgR,CAAkBD,EAAcD,GAClC9yQ,EAAI+iH,SAASvvH,KAAKu/Q,GAElB/yQ,EAAI9J,QAAQ1C,KAAKu/Q,GAEZ/yQ,IAET,CAAE+iH,SAAU,GAAI7sH,QAAS,KAGtB,CAAEA,QAAS28Q,EAAc9vJ,SAAU,IAExCmwJ,GAAUA,CAACvmQ,EAAK1O,KACX,IACF0O,EACH,CAAC1O,QAAM,IAKPk1Q,GAAoB,CAAC,WAA2B,SAAuB,SACvEC,GAA0B,SAACjlQ,GAC7B,OAAe,OADyBxd,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,IAE/BknB,OAAO1J,GAET0J,OAAO1J,GAAKmB,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,SAC9H,EACI+jQ,GAAqCpiO,GAAe7xC,OAAOlL,KAAK+8C,GAAYlxC,QAAO,CAACoO,EAAKlQ,KAC3F,MAAMs3B,EAAkC,qBAApB0b,EAAWhzC,GAAuB,GAAGA,MAAQgzC,EAAWhzC,MAAU,GAAGA,IACzF,OAAOkQ,EAAM,GAAGA,KAAOonB,IAASA,CAAI,GACnC,IAwBC+9O,GAAuC,SAACriO,GAAU,IAAEsiO,EAAS5iR,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAKyO,OAAOlL,KAAK+8C,GAAYlxC,QAAO,CAAC4M,EAAK1O,KAE9G0O,EADe0jQ,GAAcpyQ,IACfA,GAAOgzC,EAAWhzC,GACzB0O,IACN4mQ,EAAU,EASTC,GAA+BA,CAACtiR,EAAMuiR,IAASA,EAAK/hR,KAAI,CAAC0kH,EAAK1jH,KAChE,MAAMghR,EAAY,CAChBz1Q,IAAKvL,EACL,CAACo+Q,KAAmB,GAYtB,OAVA1xQ,OAAOlL,KAAKkiH,GAAKphG,SAAS2+P,IACxB,MACMC,EADSvD,GAAcsD,IACKA,EAClC,GAAwB,cAApBC,GAAwE,YAApBA,EAA8C,CACpG,MAAM/rM,EAAUuuC,EAAIuC,WAAavC,EAAI87G,QACrCwhD,EAAUx7J,wBAA0B,CAAE0Z,OAAQ/pD,EAChD,MACE6rM,EAAUE,GAAmBx9J,EAAIu9J,EACnC,IAEKnxQ,EAAAA,cAAoBtR,EAAMwiR,EAAU,IAEzCG,GAAmB,SAAC3iR,EAAMuiR,GAAwB,IAAlBj9B,IAAM7lP,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACxC,OAAQO,GACN,IAAK,QACH,MAAO,CACL4iR,YAAaA,IA7BeC,EAACC,EAAOzwL,EAAOtyC,KACjD,MAIMvxC,EAAQ4zQ,GAAqCriO,EAJjC,CAChBhzC,IAAKslF,EACL,CAACutL,KAAmB,IAGtB,MAAO,CAACtuQ,EAAAA,cAAoB,QAAqB9C,EAAO6jF,GAAO,EAuBtCwwL,CAA8B7iR,EAAMuiR,EAAKlwL,MAAOkwL,EAAKQ,iBACxE9iQ,SAAUA,IA1DU+iQ,EAAChjR,EAAMqyF,EAAOtyC,EAAYulM,KACpD,MAAM29B,EAAkBd,GAAkCpiO,GACpDmjO,EAAiB1B,GAAanvL,GACpC,OAAO4wL,EAAkB,IAAIjjR,KAAQ4/Q,aAA2BqD,KAAmBf,GACjFgB,EACA59B,OACItlP,KAAU,IAAIA,KAAQ4/Q,aAA2BsC,GACrDgB,EACA59B,OACItlP,IAAO,EAiDSgjR,CAAsBhjR,EAAMuiR,EAAKlwL,MAAOkwL,EAAKQ,gBAAiBz9B,IAElF,IAAK,iBACL,IAAK,iBACH,MAAO,CACLs9B,YAAaA,IAAMR,GAAqCG,GACxDtiQ,SAAUA,IAAMkiQ,GAAkCI,IAEtD,QACE,MAAO,CACLK,YAAaA,IAAMN,GAA6BtiR,EAAMuiR,GACtDtiQ,SAAUA,IA1DS,SAACjgB,EAAMuiR,GAAI,IAAEj9B,IAAM7lP,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAAO,OAAK8iR,EAAK1zQ,QAAO,CAACoO,EAAK2a,KAC1E,MAAMstF,EAAMttF,EACNurP,EAAgBj1Q,OAAOlL,KAAKkiH,GAAK/yF,QACpCswP,KAA8B,cAAdA,GAA4D,YAAdA,KAC/D5zQ,QAAO,CAAC4D,EAAQgwQ,KAChB,MAAMp+O,EAAiC,qBAAnB6gF,EAAIu9J,GAA6BA,EAAY,GAAGA,MAAcP,GAAwBh9J,EAAIu9J,GAAYn9B,MAC1H,OAAO7yO,EAAS,GAAGA,KAAU4xB,IAASA,CAAI,GACzC,IACG++O,EAAal+J,EAAIuC,WAAavC,EAAI87G,SAAW,GAC7CqiD,GAAqD,IAArCpB,GAAkBjhR,QAAQhB,GAChD,MAAO,GAAGid,KAAOjd,KAAQ4/Q,aAA2BuD,IAAgBE,EAAgB,KAAO,IAAID,MAAepjR,MAAS,GACtH,GAAG,CA+CkBsjR,CAAqBtjR,EAAMuiR,EAAMj9B,IAGzD,EA6DIi+B,GAlCoB/0Q,IACtB,MAAM,QACJg1Q,EAAO,eACPC,EAAc,OACdn+B,GAAS,EAAI,eACbo+B,EAAc,aACdC,EAAY,UACZC,EAAS,MACTvxL,EAAQ,GAAE,gBACV0wL,EAAe,kBACfc,GACEr1Q,EACJ,IAAI,SAAEs1Q,EAAQ,SAAEC,EAAQ,WAAEC,GAAex1Q,EACrCy1Q,EAAkB,CACpBrB,YAAaA,OAEb3iQ,SAAUA,IAAM,IAKlB,OAHI4jQ,KACCI,kBAAiBH,WAAUC,WAAUC,cA7CnB1uP,KAAgD,IAA/C,SAAEyuP,EAAQ,SAAED,EAAQ,WAAEE,EAAU,OAAE1+B,GAAQhwN,EAClE,MAAMxM,EAAO44P,GAAYqC,EAAU9E,IAC7B9+P,EAAOuhQ,GAAYoC,EAAU7E,IAC7Bv7O,EAASg+O,GAAYsC,EAAY/E,IAgBvC,MAAO,CACLgF,gBAhBsB,CACtBrB,YAAaA,IAAM,IACdN,GAA6B,OAAmBx5P,EAAK+oG,aACrDywJ,GAA6B,OAAmBniQ,EAAK0xG,aACrDywJ,GAA6B,SAAuB5+O,EAAOmuF,WAEhE5xG,SAAUA,IAER,GAAG0iQ,GAAiB,OAAmB75P,EAAK+oG,SAAUyzH,MAAWq9B,GAC/D,OACAxiQ,EAAK0xG,SACLyzH,MACGq9B,GAAiB,SAAuBj/O,EAAOmuF,SAAUyzH,MAKhEy+B,SAAUj7P,EAAK9jB,QACf8+Q,SAAU3jQ,EAAKnb,QACfg/Q,WAAYtgP,EAAO1+B,QACpB,EAqBwDk/Q,CAAmB11Q,IAErE,CACLqjH,SAAUoyJ,EACVz5J,KAAMm4J,GAAiB,OAAmBa,EAASl+B,GACnDm+B,eAAgBd,GAAiB,iBAA6Bc,EAAgBn+B,GAC9Eo+B,eAAgBf,GAAiB,iBAA6Be,EAAgBp+B,GAC9EnlO,KAAMwiQ,GAAiB,OAAmBmB,EAAUx+B,GACpDx8N,KAAM65P,GAAiB,OAAmBoB,EAAUz+B,GACpD6+B,SAAUxB,GAAiB,WAA2BgB,EAAcr+B,GACpE5hN,OAAQi/O,GAAiB,SAAuBqB,EAAY1+B,GAC5DvpO,MAAO4mQ,GAAiB,QAAqBiB,EAAWt+B,GACxDjzJ,MAAOswL,GAAiB,QAAqB,CAAEtwL,QAAO0wL,mBAAmBz9B,GAC1E,EAKC8+B,GAAY,GACZC,KAAkC,qBAAXxsQ,SAA0BA,OAAOH,WAAYG,OAAOH,SAASsD,eACpFspQ,GAAa,MACfF,UAAY,GACZG,UAAY,KAAAF,GAAA,GACZ3qL,QACAn6F,MAAQ,CACNilR,UAAYC,IACVvxQ,KAAKwmF,QAAQgrL,OAASD,CAAW,EAEnCE,gBAAiB,CACfv2Q,IAAKA,IAAM8E,KAAKqxQ,UAAYH,GAAYlxQ,KAAKkxQ,UAC7CljQ,IAAM3G,KACHrH,KAAKqxQ,UAAYH,GAAYlxQ,KAAKkxQ,WAAW9hR,KAAKiY,EAAS,EAE9DwE,OAASxE,IACP,MAAM7Z,GAASwS,KAAKqxQ,UAAYH,GAAYlxQ,KAAKkxQ,WAAWpjR,QAAQuZ,IACnErH,KAAKqxQ,UAAYH,GAAYlxQ,KAAKkxQ,WAAW3gQ,OAAO/iB,EAAO,EAAE,IAIpEgb,WAAAA,CAAYg+E,EAAS6qL,GACnBrxQ,KAAKwmF,QAAUA,EACfxmF,KAAKqxQ,UAAYA,IAAa,EACzBA,IACH7qL,EAAQgrL,OAASnB,GAAe,CAC9BC,QAAS,GACTC,eAAgB,CAAC,EACjBvB,yBAAyB,EACzBwB,eAAgB,CAAC,EACjBI,SAAU,GACVC,SAAU,GACVJ,aAAc,GACdK,WAAY,GACZJ,UAAW,GACXvxL,MAAO,GACP0wL,gBAAiB,CAAC,IAGxB,GAKE6B,GAAUC,EAAAA,cADK,CAAC,GAEhBC,GAAiB,MAAMC,UAAwBp0Q,EAAAA,UACjDkgK,iBAAmB,KAAAwzG,GAAA,GACnBW,WACAtpQ,WAAAA,CAAYlN,GACVq1I,MAAMr1I,GACN0E,KAAK8xQ,WAAa,IAAIV,GAAWpxQ,KAAK1E,MAAMkrF,SAAW,CAAC,EAAGqrL,EAAgBR,UAC7E,CACA1jP,MAAAA,GACE,OAAuBgkP,EAAAA,cAAqBD,GAAQphH,SAAU,CAAEjkK,MAAO2T,KAAK8xQ,WAAWzlR,OAAS2T,KAAK1E,MAAM4E,SAC7G,GAQE6xQ,GAAaA,CAACjlR,EAAMuiR,KACtB,MAAM2C,EAAcxtQ,SAASoQ,MAAQpQ,SAAS4P,cAAc,QACtD69P,EAAWD,EAAYznP,iBAAiB,GAAGz9B,KAAQ4/Q,OACnDwF,EAAU,GAAGzyQ,MAAM4M,KAAK4lQ,GACxBE,EAAU,GAChB,IAAIC,EAkCJ,OAjCI/C,GAAQA,EAAK7iR,QACf6iR,EAAKz+P,SAASohG,IACZ,MAAMj9D,EAAavwC,SAASsD,cAAchb,GAC1C,IAAK,MAAMyiR,KAAav9J,EACtB,GAAIh3G,OAAOyN,UAAUrV,eAAeiZ,KAAK2lG,EAAKu9J,GAC5C,GAAkB,cAAdA,EACFx6N,EAAWw/D,UAAYvC,EAAIuC,eACtB,GAAkB,YAAdg7J,EACLx6N,EAAWpzB,WACbozB,EAAWpzB,WAAWmsM,QAAU97G,EAAI87G,QAEpC/4K,EAAW1+B,YAAY7R,SAASy8H,eAAejvB,EAAI87G,cAEhD,CACL,MAAM38L,EAAOo+O,EACPljR,EAA6B,qBAAd2lH,EAAI7gF,GAAwB,GAAK6gF,EAAI7gF,GAC1D4jB,EAAW/+B,aAAau5P,EAAWljR,EACrC,CAGJ0oD,EAAW/+B,aAAa02P,GAAkB,QACtCwF,EAAQ/8G,MAAK,CAACk9G,EAAa7kR,KAC7B4kR,EAAgB5kR,EACTunD,EAAWu9N,YAAYD,MAE9BH,EAAQ3hQ,OAAO6hQ,EAAe,GAE9BD,EAAQ/iR,KAAK2lD,EACf,IAGJm9N,EAAQthQ,SAASohG,GAAQA,EAAIx9F,YAAYgC,YAAYw7F,KACrDmgK,EAAQvhQ,SAASohG,GAAQggK,EAAY37P,YAAY27F,KAC1C,CACLkgK,UACAC,UACD,EAECI,GAAmBA,CAACzrQ,EAAS+lC,KAC/B,MAAM2lO,EAAahuQ,SAASusB,qBAAqBjqB,GAAS,GAC1D,IAAK0rQ,EACH,OAEF,MAAMC,EAAwBD,EAAWt9P,aAAaw3P,IAChDgG,EAAmBD,EAAwBA,EAAsBtkR,MAAM,KAAO,GAC9EwkR,EAAqB,IAAID,GACzBE,EAAgB53Q,OAAOlL,KAAK+8C,GAClC,IAAK,MAAM0iO,KAAaqD,EAAe,CACrC,MAAMvmR,EAAQwgD,EAAW0iO,IAAc,GACnCiD,EAAWt9P,aAAaq6P,KAAeljR,GACzCmmR,EAAWx8P,aAAau5P,EAAWljR,IAEQ,IAAzCqmR,EAAiB5kR,QAAQyhR,IAC3BmD,EAAiBtjR,KAAKmgR,GAExB,MAAMsD,EAAcF,EAAmB7kR,QAAQyhR,IAC1B,IAAjBsD,GACFF,EAAmBpiQ,OAAOsiQ,EAAa,EAE3C,CACA,IAAK,IAAIvkR,EAAIqkR,EAAmBnmR,OAAS,EAAG8B,GAAK,EAAGA,GAAK,EACvDkkR,EAAW9qP,gBAAgBirP,EAAmBrkR,IAE5CokR,EAAiBlmR,SAAWmmR,EAAmBnmR,OACjDgmR,EAAW9qP,gBAAgBglP,IAClB8F,EAAWt9P,aAAaw3P,MAAsBkG,EAAcjlR,KAAK,MAC1E6kR,EAAWx8P,aAAa02P,GAAkBkG,EAAcjlR,KAAK,KAC/D,EAQEmlR,GAAmBA,CAACvvG,EAAU9yI,KAChC,MAAM,QACJ6/O,EAAO,eACPC,EAAc,eACdC,EAAc,SACdI,EAAQ,SACRC,EAAQ,aACRJ,EAAY,oBACZsC,EAAmB,WACnBjC,EAAU,UACVJ,EAAS,MACTvxL,EAAK,gBACL0wL,GACEtsG,EACJgvG,GAAiB,OAAmBhC,GACpCgC,GAAiB,OAAmB/B,GArBpBwC,EAAC7zL,EAAOtyC,KACH,qBAAVsyC,GAAyB36E,SAAS26E,QAAUA,IACrD36E,SAAS26E,MAAQmvL,GAAanvL,IAEhCozL,GAAiB,QAAqB1lO,EAAW,EAkBjDmmO,CAAY7zL,EAAO0wL,GACnB,MAAMoD,EAAa,CACjB3C,QAASyB,GAAW,OAAmBzB,GACvCM,SAAUmB,GAAW,OAAmBnB,GACxCC,SAAUkB,GAAW,OAAmBlB,GACxCJ,aAAcsB,GAAW,WAA2BtB,GACpDK,WAAYiB,GAAW,SAAuBjB,GAC9CJ,UAAWqB,GAAW,QAAqBrB,IAEvCwC,EAAY,CAAC,EACbC,EAAc,CAAC,EACrBn4Q,OAAOlL,KAAKmjR,GAAYriQ,SAASw8P,IAC/B,MAAM,QAAE+E,EAAO,QAAED,GAAYe,EAAW7F,GACpC+E,EAAQ3lR,SACV0mR,EAAU9F,GAAW+E,GAEnBD,EAAQ1lR,SACV2mR,EAAY/F,GAAW6F,EAAW7F,GAAS8E,QAC7C,IAEEzhP,GACFA,IAEFsiP,EAAoBxvG,EAAU2vG,EAAWC,EAAY,EAEnDC,GAAkB,KAgBlBC,GAf6B9vG,IAC3B6vG,IACFtkK,qBAAqBskK,IAEnB7vG,EAAS+hG,MACX8N,GAAkBniO,uBAAsB,KACtC6hO,GAAiBvvG,GAAU,KACzB6vG,GAAkB,IAAI,GACtB,KAGJN,GAAiBvvG,GACjB6vG,GAAkB,KACpB,EAKEE,GAAmB,cAAcC,EAAAA,UACnCC,UAAW,EACX73I,qBAAAA,CAAsB8Z,GACpB,OAAQg+H,KAAah+H,EAAWz1I,KAAK1E,MACvC,CACAujI,kBAAAA,GACE7+H,KAAK0zQ,YACP,CACA7wI,oBAAAA,GACE,MAAM,gBAAE4uI,GAAoBzxQ,KAAK1E,MAAMkrF,QACvCirL,EAAgB5lQ,OAAO7L,MACvBA,KAAK0zQ,YACP,CACAA,UAAAA,GACE,MAAM,gBAAEjC,EAAe,UAAEH,GAActxQ,KAAK1E,MAAMkrF,QAClD,IAAI+qL,EAAc,KAClB,MAAM7tQ,GAlbgBmpQ,EAmbpB4E,EAAgBv2Q,MAAM5N,KAAK+Z,IACzB,MAAM/L,EAAQ,IAAK+L,EAAS/L,OAE5B,cADOA,EAAMkrF,QACNlrF,CAAK,IAtbe,CACjCg1Q,QAAShD,GAAwB,CAAC,QAAoBT,GACtD0D,eAAgBpD,GAA2B,iBAA6BN,GACxEvH,MAAOsH,GAAqBC,EAAWF,IACvCv6B,OAAQw6B,GAAqBC,EAAWF,IACxC6D,eAAgBrD,GAA2B,iBAA6BN,GACxE+D,SAAUlD,GACR,OACA,CAAC,MAAiB,QAClBb,GAEFgE,SAAUnD,GACR,OACA,CACE,OACA,UACA,aACA,WACA,YAEFb,GAEF4D,aAAc/C,GAAqB,WAA2B,CAAC,aAA+Bb,GAC9FkG,oBAAqB7F,GAAuBL,GAC5CiE,WAAYpD,GACV,SACA,CAAC,MAAiB,aAClBb,GAEF6D,UAAWhD,GAAqB,QAAqB,CAAC,WAA2Bb,GACjF1tL,MAAO2tL,GAAsBD,GAC7BgD,gBAAiB1C,GAA2B,kBAA+BN,GAC3E8D,kBAAmBvC,GAAwBvB,EAAWF,MAhC9BE,MAyblB+E,GAAeP,UACjBgC,GAAe3vQ,GACN2sQ,KACTkB,EAAclB,GAAe3sQ,IAE/B4tQ,EAAUC,EACZ,CAIAlpP,IAAAA,GACE,GAAIroB,KAAKwzQ,SACP,OAEFxzQ,KAAKwzQ,UAAW,EAChB,MAAM,gBAAE/B,GAAoBzxQ,KAAK1E,MAAMkrF,QACvCirL,EAAgBzjQ,IAAIhO,MACpBA,KAAK0zQ,YACP,CACA/lP,MAAAA,GAEE,OADA3tB,KAAKqoB,OACE,IACT,GAIEsrP,GAAS,cAAcC,EAAAA,UACzBj2G,oBAAsB,CACpB2nG,OAAO,EACP0J,yBAAyB,EACzB2B,mBAAmB,GAErBh1I,qBAAAA,CAAsB8Z,GACpB,OAAQo+H,KAAY/E,GAAQ9uQ,KAAK1E,MAAO,cAAewzQ,GAAQr5H,EAAW,cAC5E,CACAq+H,wBAAAA,CAAyB15J,EAAO25J,GAC9B,IAAKA,EACH,OAAO,KAET,OAAQ35J,EAAMttH,MACZ,IAAK,SACL,IAAK,WACH,MAAO,CACLynH,UAAWw/J,GAEf,IAAK,QACH,MAAO,CACLjmD,QAASimD,GAEb,QACE,MAAM,IAAI/lR,MACR,IAAIosH,EAAMttH,0GAGlB,CACAknR,wBAAAA,CAAyB55J,EAAO65J,EAAmBC,EAAeH,GAChE,MAAO,IACFE,EACH,CAAC75J,EAAMttH,MAAO,IACTmnR,EAAkB75J,EAAMttH,OAAS,GACpC,IACKonR,KACAl0Q,KAAK8zQ,yBAAyB15J,EAAO25J,KAIhD,CACAI,qBAAAA,CAAsB/5J,EAAOg6J,EAAUF,EAAeH,GACpD,OAAQ35J,EAAMttH,MACZ,IAAK,QACH,MAAO,IACFsnR,EACH,CAACh6J,EAAMttH,MAAOinR,EACdlE,gBAAiB,IAAKqE,IAE1B,IAAK,OACH,MAAO,IACFE,EACH7D,eAAgB,IAAK2D,IAEzB,IAAK,OACH,MAAO,IACFE,EACH5D,eAAgB,IAAK0D,IAEzB,QACE,MAAO,IACFE,EACH,CAACh6J,EAAMttH,MAAO,IAAKonR,IAG3B,CACAG,2BAAAA,CAA4BJ,EAAmBG,GAC7C,IAAIE,EAAoB,IAAKF,GAO7B,OANAp5Q,OAAOlL,KAAKmkR,GAAmBrjQ,SAAS2jQ,IACtCD,EAAoB,IACfA,EACH,CAACC,GAAiBN,EAAkBM,GACrC,IAEID,CACT,CACAE,qBAAAA,CAAsBp6J,EAAO25J,GAW3B,OAVAr+G,KACEs2G,GAAgB72G,MAAMt3J,GAASu8G,EAAMttH,OAAS+Q,IACxB,oBAAfu8G,EAAMttH,KAAsB,oIAAsI,uBAAuBk/Q,GAAgBr+Q,KAC9M,yDACmDysH,EAAMttH,0DAE7D4oK,MACGq+G,GAA4C,kBAAnBA,GAA+Bn5Q,MAAMuC,QAAQ42Q,KAAoBA,EAAe5+G,MAAMs/G,GAAuC,kBAAhBA,IACvI,0CAA0Cr6J,EAAMttH,6DAA6DstH,EAAMttH,gBAAgBstH,EAAMttH,mDAEpI,CACT,CACA4nR,kBAAAA,CAAmBx0Q,EAAUk0Q,GAC3B,IAAIH,EAAoB,CAAC,EAqCzB,OApCAU,EAAAA,SAAgB/jQ,QAAQ1Q,GAAWk6G,IACjC,IAAKA,IAAUA,EAAM9+G,MACnB,OAEF,MAAQ4E,SAAU6zQ,KAAmB5f,GAAe/5I,EAAM9+G,MACpD44Q,EAAgBl5Q,OAAOlL,KAAKqkQ,GAAYx4P,QAAO,CAAC4M,EAAK1O,KACzD0O,EAAIikQ,GAAa3yQ,IAAQA,GAAOs6P,EAAWt6P,GACpC0O,IACN,CAAC,GACJ,IAAI,KAAEzb,GAASstH,EAMf,OALoB,kBAATttH,EACTA,EAAOA,EAAKigB,WAEZ/M,KAAKw0Q,sBAAsBp6J,EAAO25J,GAE5BjnR,GACN,IAAK,yBACHsnR,EAAWp0Q,KAAK00Q,mBAAmBX,EAAgBK,GACnD,MACF,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,SACL,IAAK,QACHH,EAAoBj0Q,KAAKg0Q,yBACvB55J,EACA65J,EACAC,EACAH,GAEF,MACF,QACEK,EAAWp0Q,KAAKm0Q,sBAAsB/5J,EAAOg6J,EAAUF,EAAeH,GAE1E,IAEK/zQ,KAAKq0Q,4BAA4BJ,EAAmBG,EAC7D,CACAzmP,MAAAA,GACE,MAAM,SAAEztB,KAAa5E,GAAU0E,KAAK1E,MACpC,IAAI84Q,EAAW,IAAK94Q,IAChB,WAAEw2Q,GAAex2Q,EAIrB,GAHI4E,IACFk0Q,EAAWp0Q,KAAK00Q,mBAAmBx0Q,EAAUk0Q,IAE3CtC,KAAgBA,aAAsBV,IAAa,CAErDU,EAAa,IAAIV,GADJU,EACoBtrL,SAAS,UACnC4tL,EAAStC,UAClB,CACA,OAAOA,EAA6B6C,EAAAA,cAAqBrB,GAAkB,IAAKc,EAAU5tL,QAASsrL,EAAWzlR,QAA2BsoR,EAAAA,cAAqBjD,GAAQnhH,SAAU,MAAO/pE,GAA4BmuL,EAAAA,cAAqBrB,GAAkB,IAAKc,EAAU5tL,aAC3Q,GCrxBK,MAAMouL,GAEF,CACHz1L,MAAO,sDACP4wD,KAAM,+KAJD6kI,GAMC,CACNz1L,MAAO,cACP4wD,KAAM,0LARD6kI,GAUO,CACZz1L,MAAO,iBACP4wD,KAAM,iIAZD6kI,GAcD,CACJz1L,MAAO,SACP4wD,KAAM,6HAhBD6kI,GAkBF,CACHz1L,MAAO,QACP4wD,KAAM,sHCPD8kI,GAAqB,CAC9B,WAAY,qBACZ,MAAO,4CACP,QAAS,eACT,KAAQ,gBACR,cAAiB,CAAC,MAAO,MAAO,gBAAiB,iBACjD,IAAO,+BACP,KAAQ,+DACR,aAAgB,CACZ,CACI,QAAS,eACT,UAAa,oBACb,YAAe,QACf,WAAc,KACd,kBAAqB,CAAC,QAAS,OAEnC,CACI,QAAS,eACT,UAAa,oBACb,YAAe,oBACf,WAAc,KACd,kBAAqB,CAAC,QAAS,OAEnC,CACI,QAAS,eACT,UAAa,oBACb,YAAe,mBACf,WAAc,KACd,kBAAqB,CAAC,QAAS,QAGvC,OAAU,CACN,wCACA,uCACA,6CAIO,SAASC,KACpB,MAAM,SAAErvO,GAAa+3H,KACfu3G,EAActpQ,8BAAqCg6B,EACnDuvO,EAAsB,MAAbvvO,EACTwvO,EAA0B,cAAbxvO,GAEZyvO,EAAWC,IAAgBziP,EAAAA,EAAAA,eAAmCjmC,IAErE8nC,EAAAA,EAAAA,YAAU,KACN6gP,GAAY,GACb,CAACH,IAEJ,MAAMG,EAAankP,eAAkBokP,IAE/BC,EAAqB,SAACC,GAAkF,IAAjCC,EAAsBjpR,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAClGgpR,EAAMzkQ,KAAKmnD,MAAM3qE,KAAKwjB,IAClB0kQ,EAASpmR,KAAK,CACVkwF,YAAaxuE,EAAK8tP,QAAQt/K,YAC1Bt4C,IAAKs2N,GAAoBxsP,EAAK8tP,QAAQC,YACtC1/K,MAAOruE,EAAK8tP,QAAQz/K,MACpB66K,QAASlpP,EAAK8tP,QAAQE,WAAW9E,QACjCyb,YAAa3kQ,EAAK8tP,QAAQ6W,aAC5B,GAEV,EAEMJ,EAAkBpkP,UACpB,GAAIgkP,IAAeC,EAAW,CAC1B,IAAIl8L,EAAwB,SACtBswK,GAAMpuP,IAxEG,wEAwE2C8yH,MAAMl9G,GAASwkQ,EAAmBxkQ,EAAMkoE,KAAUi1C,OAAOl6G,GAAQxjB,QAAQ0rH,IAAIloG,WACjIu1O,GAAMpuP,IAxEG,wEAwE2C8yH,MAAMl9G,GAASwkQ,EAAmBxkQ,EAAMkoE,KAAUi1C,OAAOl6G,GAAQxjB,QAAQ0rH,IAAIloG,WACjIu1O,GAAMpuP,IAxEI,wEAwE2C8yH,MAAMl9G,GAASwkQ,EAAmBxkQ,EAAMkoE,KAAUi1C,OAAOl6G,GAAQxjB,QAAQ0rH,IAAIloG,WAClIu1O,GAAMpuP,IAxEI,wEAwE2C8yH,MAAMl9G,GAASwkQ,EAAmBxkQ,EAAMkoE,KAAUi1C,OAAOl6G,GAAQxjB,QAAQ0rH,IAAIloG,KACxIohQ,EAAan8L,EACjB,GAgBJ,MAAM08L,EAAmB/+C,IACrB,OAAQlxL,GACJ,IAAK,IAAK,OAAOkxL,EAAQi+C,GAAiB7kI,KAAO6kI,GAAiBz1L,MAClE,IAAK,YAAa,OAAOw3I,EAAQi+C,GAAoB7kI,KAAO6kI,GAAoBz1L,MAChF,IAAK,kBAAmB,OAAOw3I,EAAQi+C,GAA0B7kI,KAAO6kI,GAA0Bz1L,MAClG,IAAK,UAAW,OAAOw3I,EAAQi+C,GAAkB7kI,KAAO6kI,GAAkBz1L,MAC1E,IAAK,SAAU,OAAOw3I,EAAQi+C,GAAiB7kI,KAAO6kI,GAAiBz1L,MACvE,QACI,OAAI15C,EAASqsE,SAAS,YAflC,SAA0B6kH,GACtB,MAAMvyN,EAAKqhC,EAASmpL,WAAW,WAAY,IACrC0xC,EAAah7B,GAAWhvM,MAAKxlB,GAAQA,EAAKtL,OAAOssG,SAAS1tG,KAChE,OAAOk8P,EAAa3pC,EAAS2pC,EAAWniC,OAAUmiC,EAAWriC,KAAO,IAAMqiC,EAAWpiC,WAAWnpN,OAAS,EAE7G,CAWuB4gQ,CAAiBh/C,GACjBlxL,EAASqsE,SAAS,oBAvBzC,SAAyB6kH,GACrB,MAAMvyN,EAAKqhC,EAASmpL,WAAW,mBAAoB,IAC7C0xC,EAAatiC,GAAU1nM,MAAKxlB,GAAQA,EAAKtL,OAAOssG,SAAS1tG,KAC/D,OAAOk8P,EAAa3pC,EAAS2pC,EAAWliC,YAAekiC,EAAWriC,KAAO,IAAMqiC,EAAWpiC,WAAWnpN,OAAS,EAClH,CAoBuB6gQ,CAAgBj/C,GACb,GAEtB,EAoBEk/C,EAAoBA,IAAMpwO,EAASqsE,SAAS,YAE5CgkK,EAAkBA,IAAMD,IAAsB,UAAY,kBAI1DE,EAAgB,CAClB,WAAY,oBACZ,MAAO,uCACP,QAAS,UACT,KAAQ,sDACR,YAAeL,GAAgB,GAC/B,IAAOX,EACP,MAAS,gEAGPiB,EAAmB,CACrB,WAAY,oBACZ,QAAS,iBACT,gBAAmB,CACf,CACI,QAAS,WACT,SAAY,IACZ,KAAQN,GAAgB,MAK9BO,EAA4B,CAC9B,WAAY,qBACZ,QAAS,iBACT,gBAAmB,CACf,CACI,QAAS,WACT,SAAY,IACZ,KAAQ,CACJ,MAAOxqQ,8BAAqCqqQ,IAC5C,KAAQ,UACR,IAAOrqQ,8BAAqCqqQ,IAC5C,KApCmBD,IAAsB,SAAW,mBAuC5D,CACI,QAAS,WACT,SAAY,IACZ,KAAQH,GAAgB,MAKpC,OACI7iD,EAAAA,GAAAA,MAAC8gD,GAAM,CAAAzzQ,SAAA,EACHqyN,EAAAA,GAAAA,KAAA,SAAAryN,SAAQw1Q,GAAgB,MACxBnjD,EAAAA,GAAAA,KAAA,QAAM10N,KAAK,cAAc4lE,QAASiyM,GAAgB,MAClDnjD,EAAAA,GAAAA,KAAA,QAAM/zJ,IAAI,YAAY3T,KAAMkqN,KAE5BxiD,EAAAA,GAAAA,KAAA,QAAMvyM,SAAS,WAAWyjD,QAASiyM,GAAgB,MACnDnjD,EAAAA,GAAAA,KAAA,QAAMvyM,SAAS,iBAAiByjD,QAASiyM,GAAgB,MACzDnjD,EAAAA,GAAAA,KAAA,QAAMvyM,SAAS,SAASyjD,QAASsxM,KAEjCxiD,EAAAA,GAAAA,KAAA,QAAM10N,KAAK,gBAAgB4lE,QAASiyM,GAAgB,MACpDnjD,EAAAA,GAAAA,KAAA,QAAM10N,KAAK,sBAAsB4lE,QAASiyM,GAAgB,MAE1DnjD,EAAAA,GAAAA,KAAA,UAAQzlO,KAAK,sBAAqBoT,SAC7BpH,KAAKC,UAAU87Q,MAIhBG,GACIziD,EAAAA,GAAAA,KAAA,UAAQzlO,KAAK,sBAAqBoT,SAC7BpH,KAAKC,UAAUg9Q,MArELtwO,EAASqsE,SAAS,gBAyEjCygH,EAAAA,GAAAA,KAAA,UAAQzlO,KAAK,sBAAqBoT,SAC7BpH,KAAKC,UA5FNm9Q,MAChB,OAAQzwO,GACJ,IAAK,IACL,IAAK,YACL,IAAK,kBACL,IAAK,UACL,IAAK,SAAU,OAAO,EACtB,QACI,GAAIA,EAASqsE,SAAS,YAClB,OAAO,EACJ,GAAIrsE,EAASqsE,SAAS,oBACzB,OAAO,EAGnB,EA8EgCokK,GAAgBD,EAA4BD,OA6BpF,CC9OyB/vG,GAAOwsD,GAAPxsD,EAAYpyK,IAAA,IAAC,MAAE0K,GAAO1K,EAAA,MAAM,CACjDw6F,gBAAiB9vF,EAAM5K,QAAQlF,WAAWqD,QAC7C,IAEsBm0K,GAAOwsD,GAAPxsD,EAAY7jJ,IAAA,IAAC,MAAE7jB,GAAO6jB,EAAA,MAAM,CAC/CjhB,QAAS,OACTo0N,cAAe,SACfrnD,eAAgB,aAChBD,WAAY,SACZn9K,UAAW,OACX8vL,WAAY,GACZrxB,cAAe,GACf,CAAChxJ,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5B0mL,WAAY,IAEnB,IAE+B3a,GAAOwsD,GAAPxsD,EAAYziJ,IAAA,IAAC,MAAEjlB,GAAOilB,EAAA,MAAM,CACxDnpB,MAAO,OACV,IAE2B4rK,GAAOwsD,GAAPxsD,EAAY1iJ,IAAA,IAAC,MAAEhlB,GAAOglB,EAAA,MAAM,CACpD9sB,aAAc,EACdqvL,UAAW,GACX7T,aAAc,GACdnhL,UAAW,GACXwQ,WAAY,kBACZ,CAAC/C,EAAMvO,YAAYkK,KAAK,OAAQ,CAC5BpJ,UAAW,IAElB,IAE0Bm1K,GAAOwsD,GAAPxsD,EAAY7D,IAAA,IAAC,MAAE7jK,GAAO6jK,EAAA,MAAM,CACnDwe,WAAY,EACZvyF,gBAAiB,YACjB53F,aAAc,EACdglB,QAAS,GAGZ,IAE2BwqJ,GAAOwsD,GAAPxsD,EAAYrD,IAAA,IAAC,MAAErkK,GAAOqkK,EAAA,MAAM,CACpDv0E,gBAAiB9vF,EAAM5K,QAAQlF,WAAWmD,MAC1C0L,OAAQ,OACRjD,MAAO,OACP5D,aAAc,EACjB,ICTc,SAAS0/Q,KACtB,OAEE5jD,EAAAA,GAAAA,KAACpvD,GAAa,CAAAjjK,UACZ2yN,EAAAA,GAAAA,MAACgB,GAAY,CAAA3zN,SAAA,EACXqyN,EAAAA,GAAAA,KAACuiD,GAAQ,KACTviD,EAAAA,GAAAA,KAACq5C,GAAS,KACVr5C,EAAAA,GAAAA,KAACixC,GAAQ,KACTjxC,EAAAA,GAAAA,KAAC6jD,GAAO,KACR7jD,EAAAA,GAAAA,KAAC23C,GAAiB,KAClBr3C,EAAAA,GAAAA,MAAClwD,GAAM,CAAAziK,SAAA,EACLqyN,EAAAA,GAAAA,KAACrwD,GAAK,CACJlgK,KAAK,IACLvE,UAAWA,KAAM80N,EAAAA,GAAAA,KAACqZ,GAAS,OAE7BrZ,EAAAA,GAAAA,KAACrwD,GAAK,CACJlgK,KAAK,YACLvE,UAAWA,KAAM80N,EAAAA,GAAAA,KAACgtC,GAAS,OAE7BhtC,EAAAA,GAAAA,KAACrwD,GAAK,CACJlgK,KAAK,sBACLvE,UAAWA,KAAM80N,EAAAA,GAAAA,KAAC2tC,GAAS,CACzBpvP,KAAMktN,GACNq4C,SAAS,iBACT1V,WAAW,0BACXjlC,SAAS,uBAIbnJ,EAAAA,GAAAA,KAACrwD,GAAK,CACJlgK,KAAK,kBACLvE,UAAWA,KAAM80N,EAAAA,GAAAA,KAAC+jD,GAAS,OAE7B/jD,EAAAA,GAAAA,KAACrwD,GAAK,CACJlgK,KAAK,cACLvE,UAAWA,KACT80N,EAAAA,GAAAA,KAACgkD,GAAU,CACTzlQ,KAAM0lQ,GACN7V,WAAW,gBACX0V,SAAS,SACT36C,SAAS,eAIfnJ,EAAAA,GAAAA,KAACrwD,GAAK,CACJlgK,KAAK,UACLvE,UAAWA,KAAM80N,EAAAA,GAAAA,KAAC2S,GAAU,OAE9B3S,EAAAA,GAAAA,KAACrwD,GAAK,CACJlgK,KAAK,SACLvE,UAAWA,KAAM80N,EAAAA,GAAAA,KAACkkD,GAAK,OAEzBlkD,EAAAA,GAAAA,KAACrwD,GAAK,CAAClgK,KAAK,IAAIvE,UAAWA,KAAM80N,EAAAA,GAAAA,KAACxwD,GAAQ,CAACnqJ,GAAG,YAEhD26M,EAAAA,GAAAA,KAACmkD,GAAI,QAIb,+DCxFe,SAASC,KAUtB,OARApiP,EAAAA,EAAAA,YAAU,KACR/vB,SAASgD,iBAAiB,cAAc,QAAW,CAAEykH,SAAS,IAC9DznH,SAASgD,iBAAiB,aAAa,QAAW,CAAEykH,SAAS,IAC7DznH,SAASgD,iBAAiB,cAAc,QAAW,CAAEykH,SAAS,IAE9D2qJ,KAAAA,KAAS,CAAExvP,MAAM,GAAO,GACvB,KAGDmrM,EAAAA,GAAAA,KAACq/C,GAAc,CAAA1xQ,UACbqyN,EAAAA,GAAAA,KAACskD,EAAa,CAACt4Q,MAAOA,GAAM2B,UAC1BqyN,EAAAA,GAAAA,KAAC4jD,GAAW,OAIpB,kCCxBA,MAAM/gQ,GAAY5Q,SAAS2hE,eAAe,SAC7B2kE,EAAAA,GAAAA,GAAW11H,IACnBuY,QAAO4kM,EAAAA,GAAAA,KAACokD,GAAG","sources":["../node_modules/@material-ui/core/esm/styles/colorManipulator.js","../node_modules/@material-ui/core/esm/styles/createBreakpoints.js","../node_modules/@material-ui/core/esm/styles/createMixins.js","../node_modules/@material-ui/core/esm/colors/common.js","../node_modules/@material-ui/core/esm/colors/grey.js","../node_modules/@material-ui/core/esm/colors/indigo.js","../node_modules/@material-ui/core/esm/colors/pink.js","../node_modules/@material-ui/core/esm/colors/red.js","../node_modules/@material-ui/core/esm/colors/orange.js","../node_modules/@material-ui/core/esm/colors/blue.js","../node_modules/@material-ui/core/esm/colors/green.js","../node_modules/@material-ui/core/esm/styles/createPalette.js","../node_modules/@material-ui/core/esm/styles/createTypography.js","../node_modules/@material-ui/core/esm/styles/shadows.js","../node_modules/@material-ui/core/esm/styles/shape.js","../node_modules/@material-ui/core/esm/styles/createTheme.js","../node_modules/@material-ui/core/esm/styles/createSpacing.js","../node_modules/@material-ui/core/esm/styles/defaultTheme.js","../node_modules/@material-ui/core/esm/styles/transitions.js","../node_modules/@material-ui/styles/esm/withStyles/withStyles.js","../node_modules/@material-ui/core/esm/styles/withStyles.js","../node_modules/@material-ui/core/esm/styles/zIndex.js","../node_modules/@material-ui/core/esm/utils/capitalize.js","../node_modules/@material-ui/core/esm/utils/createChainedFunction.js","../node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js","../node_modules/@material-ui/core/esm/utils/createSvgIcon.js","../node_modules/@material-ui/core/esm/utils/debounce.js","../node_modules/@material-ui/core/esm/utils/deprecatedPropType.js","../node_modules/@material-ui/core/esm/utils/isMuiElement.js","../node_modules/@material-ui/core/esm/utils/requirePropFactory.js","../node_modules/@material-ui/core/esm/utils/unsupportedProp.js","../node_modules/@material-ui/core/esm/utils/useControlled.js","../node_modules/@material-ui/core/esm/utils/unstable_useId.js","../node_modules/@material-ui/core/esm/utils/ownerDocument.js","../node_modules/@material-ui/core/esm/utils/ownerWindow.js","../node_modules/@material-ui/core/esm/utils/setRef.js","../node_modules/@material-ui/core/esm/utils/useEventCallback.js","../node_modules/@material-ui/core/esm/utils/useForkRef.js","../node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js","../node_modules/@material-ui/icons/ArrowBack.js","../node_modules/@material-ui/icons/ArrowBackIos.js","../node_modules/@material-ui/icons/ArrowForwardIos.js","../node_modules/@material-ui/icons/ArrowLeft.js","../node_modules/@material-ui/icons/ArrowRight.js","../node_modules/@material-ui/icons/Facebook.js","../node_modules/@material-ui/icons/FormatQuote.js","../node_modules/@material-ui/icons/Instagram.js","../node_modules/@material-ui/icons/LinkedIn.js","../node_modules/@material-ui/icons/Menu.js","../node_modules/@material-ui/icons/Pause.js","../node_modules/@material-ui/icons/PlayArrow.js","../node_modules/@material-ui/icons/YouTube.js","../node_modules/@material-ui/icons/utils/createSvgIcon.js","../node_modules/@material-ui/styles/esm/ThemeProvider/nested.js","../node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js","../node_modules/is-in-browser/dist/module.js","../node_modules/jss/dist/jss.esm.js","../node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js","../node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js","../node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js","../node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","../node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","../node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","../node_modules/hyphenate-style-name/index.js","../node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","../node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","../node_modules/css-vendor/dist/css-vendor.esm.js","../node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","../node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","../node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js","../node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js","../node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js","../node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js","../node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js","../node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js","../node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","../node_modules/@material-ui/styles/esm/useTheme/useTheme.js","../node_modules/@material-ui/system/esm/breakpoints.js","../node_modules/@material-ui/system/esm/merge.js","../node_modules/@material-ui/system/esm/spacing.js","../node_modules/@material-ui/system/esm/memoize.js","../node_modules/@material-ui/utils/esm/deepmerge.js","../node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js","../node_modules/aos/dist/aos.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/deepmerge/dist/cjs.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/invariant/browser.js","../node_modules/load-script/index.js","../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/performance-now/src/performance-now.coffee","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/raf/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-easy-swipe/lib/index.js","../node_modules/react-easy-swipe/lib/react-swipe.js","../node_modules/react-fast-compare/index.js","../node_modules/react-player/lib/Player.js","../node_modules/react-player/lib/ReactPlayer.js","../node_modules/react-player/lib/index.js","../node_modules/react-player/lib/patterns.js","../node_modules/react-player/lib/players/index.js","../node_modules/react-player/lib/props.js","../node_modules/react-player/lib/utils.js","../node_modules/react-responsive-carousel/lib/js/CSSTranslate.js","../node_modules/react-responsive-carousel/lib/js/components/Carousel/animations.js","../node_modules/react-responsive-carousel/lib/js/components/Carousel/index.js","../node_modules/react-responsive-carousel/lib/js/components/Carousel/utils.js","../node_modules/react-responsive-carousel/lib/js/components/Thumbs.js","../node_modules/react-responsive-carousel/lib/js/cssClasses.js","../node_modules/react-responsive-carousel/lib/js/dimensions.js","../node_modules/react-responsive-carousel/lib/js/index.js","../node_modules/react-responsive-carousel/lib/js/shims/document.js","../node_modules/react-responsive-carousel/lib/js/shims/window.js","../node_modules/react-sticky/lib/Container.js","../node_modules/react-sticky/lib/Sticky.js","../node_modules/react-sticky/lib/index.js","../node_modules/react-waypoint/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-waypoint/node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/@material-ui/styles/esm/ThemeProvider/ThemeProvider.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/@material-ui/core/esm/styles/useTheme.js","../node_modules/@material-ui/core/esm/useMediaQuery/useMediaQuery.js","../node_modules/@material-ui/core/esm/Container/Container.js","../node_modules/@material-ui/system/esm/styleFunctionSx.js","../node_modules/@material-ui/system/esm/compose.js","../node_modules/@material-ui/system/esm/style.js","../node_modules/@material-ui/system/esm/borders.js","../node_modules/@material-ui/system/esm/display.js","../node_modules/@material-ui/system/esm/flexbox.js","../node_modules/@material-ui/system/esm/grid.js","../node_modules/@material-ui/system/esm/positions.js","../node_modules/@material-ui/system/esm/palette.js","../node_modules/@material-ui/system/esm/shadows.js","../node_modules/@material-ui/system/esm/sizing.js","../node_modules/@material-ui/system/esm/typography.js","../node_modules/@material-ui/styles/esm/styled/styled.js","../node_modules/@material-ui/core/esm/styles/styled.js","../node_modules/@material-ui/core/esm/Box/Box.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@material-ui/core/esm/ButtonBase/Ripple.js","../node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js","../node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js","../node_modules/@material-ui/core/esm/Button/Button.js","../node_modules/@material-ui/core/esm/Typography/Typography.js","../node_modules/@material-ui/core/esm/Link/Link.js","../node_modules/@material-ui/core/esm/IconButton/IconButton.js","Comum/index.ts","../node_modules/consolidated-events/lib/index.esm.js","../node_modules/react-waypoint/es/index.js","../node_modules/framer-motion/dist/es/utils/noop.mjs","../node_modules/framer-motion/dist/es/utils/errors.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs","../node_modules/framer-motion/dist/es/frameloop/batcher.mjs","../node_modules/framer-motion/dist/es/frameloop/render-step.mjs","../node_modules/framer-motion/dist/es/frameloop/frame.mjs","../node_modules/framer-motion/dist/es/frameloop/sync-time.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/framer-motion/dist/es/animation/utils/get-value-transition.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","../node_modules/framer-motion/dist/es/easing/back.mjs","../node_modules/framer-motion/dist/es/easing/anticipate.mjs","../node_modules/framer-motion/dist/es/easing/circ.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/framer-motion/dist/es/utils/clamp.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs","../node_modules/framer-motion/dist/es/value/types/utils/sanitize.mjs","../node_modules/framer-motion/dist/es/value/types/utils/float-regex.mjs","../node_modules/framer-motion/dist/es/value/types/utils/single-color-regex.mjs","../node_modules/framer-motion/dist/es/value/types/color/utils.mjs","../node_modules/framer-motion/dist/es/value/types/utils/is-nullish.mjs","../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","../node_modules/framer-motion/dist/es/value/types/color/hex.mjs","../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","../node_modules/framer-motion/dist/es/value/types/color/index.mjs","../node_modules/framer-motion/dist/es/value/types/utils/color-regex.mjs","../node_modules/framer-motion/dist/es/value/types/complex/index.mjs","../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number-browser.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/transform.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-none.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/is-generator.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs","../node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","../node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","../node_modules/framer-motion/dist/es/easing/ease.mjs","../node_modules/framer-motion/dist/es/easing/utils/map.mjs","../node_modules/framer-motion/dist/es/utils/pipe.mjs","../node_modules/framer-motion/dist/es/utils/progress.mjs","../node_modules/framer-motion/dist/es/utils/mix/number.mjs","../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/framer-motion/dist/es/utils/mix/immediate.mjs","../node_modules/framer-motion/dist/es/utils/mix/color.mjs","../node_modules/framer-motion/dist/es/utils/mix/visibility.mjs","../node_modules/framer-motion/dist/es/utils/mix/complex.mjs","../node_modules/framer-motion/dist/es/utils/mix/index.mjs","../node_modules/framer-motion/dist/es/utils/interpolate.mjs","../node_modules/framer-motion/dist/es/utils/offsets/default.mjs","../node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","../node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","../node_modules/framer-motion/dist/es/utils/offsets/time.mjs","../node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs","../node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs","../node_modules/framer-motion/dist/es/animation/animators/utils/accelerated-values.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs","../node_modules/framer-motion/dist/es/utils/memo.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-flags.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/memo-supports.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-linear-easing.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/linear.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/attach-timeline.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/supports-waapi.mjs","../node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","../node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs","../node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/get-will-change-name.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","../node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs","../node_modules/framer-motion/dist/es/render/components/create-proxy.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","../node_modules/framer-motion/dist/es/render/utils/get-variant-context.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/motion/features/Feature.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","../node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/add-dom-event.mjs","../node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","../node_modules/framer-motion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/framer-motion/dist/es/utils/get-context-window.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/gestures/pan/index.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/projection/node/state.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/frameloop/microtask.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/utils/delay.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","../node_modules/framer-motion/dist/es/animation/animate/single-value.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/drag/index.mjs","../node_modules/framer-motion/dist/es/gestures/hover.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/gestures/press.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/focus.mjs","../node_modules/framer-motion/dist/es/motion/features/layout.mjs","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/components/create-factory.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../node_modules/framer-motion/dist/es/render/store.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/VisualElement.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs","../node_modules/framer-motion/dist/es/render/components/motion/create.mjs","../node_modules/styled-components/node_modules/tslib/tslib.es6.mjs","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Prefixer.js","../node_modules/stylis/src/Middleware.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/styled-components/src/constants.ts","../node_modules/styled-components/src/utils/empties.ts","../node_modules/styled-components/src/utils/checkDynamicCreation.ts","../node_modules/styled-components/src/utils/determineTheme.ts","../node_modules/styled-components/src/utils/domElements.ts","../node_modules/styled-components/src/utils/escape.ts","../node_modules/styled-components/src/utils/generateAlphabeticName.ts","../node_modules/styled-components/src/utils/hash.ts","../node_modules/styled-components/src/utils/generateComponentId.ts","../node_modules/styled-components/src/utils/getComponentName.ts","../node_modules/styled-components/src/utils/isTag.ts","../node_modules/styled-components/src/utils/hoist.ts","../node_modules/styled-components/src/utils/isFunction.ts","../node_modules/styled-components/src/utils/isStyledComponent.ts","../node_modules/styled-components/src/utils/joinStrings.ts","../node_modules/styled-components/src/utils/isPlainObject.ts","../node_modules/styled-components/src/utils/mixinDeep.ts","../node_modules/styled-components/src/utils/setToString.ts","../node_modules/styled-components/src/utils/error.ts","../node_modules/styled-components/src/sheet/GroupedTag.ts","../node_modules/styled-components/src/sheet/GroupIDAllocator.ts","../node_modules/styled-components/src/sheet/Rehydration.ts","../node_modules/styled-components/src/utils/nonce.ts","../node_modules/styled-components/src/sheet/dom.ts","../node_modules/styled-components/src/sheet/Tag.ts","../node_modules/styled-components/src/sheet/Sheet.ts","../node_modules/styled-components/src/utils/stylis.ts","../node_modules/styled-components/src/models/StyleSheetManager.tsx","../node_modules/styled-components/src/models/Keyframes.ts","../node_modules/styled-components/src/utils/hyphenateStyleName.ts","../node_modules/styled-components/src/utils/flatten.ts","../node_modules/styled-components/src/utils/addUnitIfNeeded.ts","../node_modules/styled-components/src/utils/isStatelessFunction.ts","../node_modules/styled-components/src/utils/isStaticRules.ts","../node_modules/styled-components/src/models/ComponentStyle.ts","../node_modules/styled-components/src/models/ThemeProvider.tsx","../node_modules/styled-components/src/models/StyledComponent.ts","../node_modules/styled-components/src/utils/generateDisplayName.ts","../node_modules/styled-components/src/utils/interleave.ts","../node_modules/styled-components/src/constructors/css.ts","../node_modules/styled-components/src/constructors/constructWithOptions.ts","../node_modules/styled-components/src/constructors/styled.tsx","../node_modules/styled-components/src/models/GlobalStyle.ts","../node_modules/styled-components/src/models/ServerStyleSheet.tsx","../node_modules/styled-components/src/base.ts","Components/MyImageLazzy/styles.tsx","Components/MyMotionImgLazzy/data.ts","Components/MyImageLazzy/index.tsx","Components/MyLink/styles.tsx","Components/MyLink/index.tsx","Components/MyLogo/index.tsx","Contexts/main.tsx","Components/MyFadeUp/index.tsx","theme/index.tsx","Components/MyTypography/MyTypographyDesc/styles.ts","Components/MyTypography/MyTypographyDesc/index.tsx","Components/GridMater/data.js","../node_modules/@material-ui/core/esm/styles/makeStyles.js","Components/Foot/styles.js","Components/CardHover/CardUp/data.ts","Components/Foot/index.js","Components/Foot/styles.ts","../node_modules/@material-ui/core/esm/Grid/Grid.js","Components/Patroc/styles.tsx","Components/Patroc/PatrocItem/styles.tsx","Components/Patroc/PatrocItem/index.tsx","Components/Patroc/data.js","Components/MyFlexCenter/styles.tsx","Components/MyFlexCenter/index.tsx","Components/Patroc/index.tsx","Components/CardHover/CardUp/styles.js","../node_modules/@material-ui/core/esm/CardActionArea/CardActionArea.js","Components/CardHover/CardUp/styles.ts","Components/CardHover/CardUp/index.js","Components/MyMotionImgLazzy/styles.ts","Components/MyMotionImgLazzy/index.tsx","Components/CardHover/styles.js","Components/About/DescComp/styles.tsx","Components/About/TextLast/styles.js","Components/About/TextLast/index.js","Components/DoubleTapCard/DescCard/styles.tsx","Components/DoubleTapCard/DescCard/index.tsx","Components/MyPressMotion/index.tsx","Components/DoubleTapCard/Card/styles.ts","Components/DoubleTapCard/Card/index.tsx","Components/GridColab/ColabCapaPrinc/styles.js","Components/GridColab/ColabCapaPrinc/index.js","Components/GridColab/data.js","Contexts/LottiePlayer.tsx","Components/MyLottie/data.ts","Components/MyLottie/index.tsx","Components/MyLottieImage/styles.ts","Components/MyScrollAnim/MyLottieScroll/index.tsx","Components/MyScrollAnim/index.tsx","Components/MyLottieImage/IFrameIntro/styles.ts","Components/MyLottieImage/IFrameIntro/data.tsx","Components/MyLottieImage/IFrameIntro/index.tsx","Components/MyLottieImage/MyImage/styles.ts","Components/MyLottieImage/MyImage/data.ts","Components/MyLottieImage/MyImage/index.tsx","Components/MyLottieImage/MyMediaIntro/index.tsx","Components/MyLottieImage/index.tsx","Components/LottieHtml/styles.tsx","Components/LottieHtml/data.tsx","Components/MyAnimTextMain/index.tsx","Components/GridColab/styles.ts","Components/GridColab/index.js","Components/GridEquipe/data.js","../node_modules/@material-ui/core/esm/internal/svg-icons/Person.js","../node_modules/@material-ui/core/esm/Avatar/Avatar.js","Components/GridEquipe/EquipeCapa/styles.ts","Components/GridEquipe/EquipeCapa/index.tsx","Components/GridEquipe/styles.ts","Components/GridEquipe/index.js","Components/DoubleTapCard/data.js","Components/DoubleTapCard/styles.ts","Components/DoubleTapCard/index.tsx","Components/About/data.js","Components/About/DescComp/index.tsx","Components/MyMap/styles.tsx","Components/MyMap/index.tsx","Components/MyMap/data.ts","Components/About/ImageTextSticky/styles.ts","Components/About/ImageTextSticky/index.js","Components/About/TextCenter/styles.js","Components/About/TextCenter/index.js","Components/About/ImageText/styles.ts","Components/About/ImageText/index.js","Components/About/StickyComp/index.tsx","Components/About/styles.js","Components/About/index.js","Components/CardHover/data.js","Components/CardHover/index.js","../node_modules/@material-ui/core/esm/Paper/Paper.js","../node_modules/@material-ui/icons/esm/Star.js","Components/Opinion/CardCrSel/styles.tsx","Components/Opinion/CardCrSel/index.tsx","Components/Opinion/CrSelMaterial/data.js","Components/Opinion/CrSelMaterial/styles.ts","Components/Opinion/CrSelMaterial/index.tsx","Components/Opinion/styles.ts","Components/Opinion/index.tsx","Components/AnimationSec/styles.tsx","Components/AnimationSec/index.tsx","Components/Principal/styles.js","Components/CardInformation/CardItem/styles.ts","Components/CardInformation/CardItem/index.tsx","Components/CardInformation/data.js","Components/CardInformation/styles.ts","Components/CardInformation/index.tsx","Components/Principal/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/react-horizontal-scrolling-menu/dist/index.mjs","../node_modules/@material-ui/core/esm/Portal/Portal.js","../node_modules/@material-ui/core/esm/Modal/ModalManager.js","../node_modules/@material-ui/core/esm/utils/getScrollbarSize.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js","../node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js","../node_modules/@material-ui/core/esm/Modal/Modal.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@material-ui/core/esm/transitions/utils.js","../node_modules/@material-ui/core/esm/Fade/Fade.js","../node_modules/@material-ui/core/esm/Backdrop/Backdrop.js","../node_modules/@material-ui/core/esm/Dialog/Dialog.js","Components/GridColab/ColabItem/MyFrameColab/styles.ts","Components/GridColab/ColabItem/MyFrameColab/data.ts","Components/GridColab/ColabItem/MyFrameColab/index.tsx","Components/MyHorizontalScrolling/MyOverLayMovie/index.tsx","Components/MyHorizontalScrolling/MyCard/MediaCard/data.ts","Components/MyHorizontalScrolling/MyCard/styles.tsx","../node_modules/@material-ui/lab/esm/Skeleton/Skeleton.js","Components/MyHorizontalScrolling/MyCard/MediaCard/styles.ts","Components/MyHorizontalScrolling/MyCard/MediaCard/index.tsx","Components/MyHorizontalScrolling/MyCard/index.tsx","Components/MyHorizontalScrolling/MyArrows/styles.ts","Components/MyHorizontalScrolling/MyArrows/Arrow/index.tsx","Components/MyHorizontalScrolling/MyArrows/data.ts","Components/MyHorizontalScrolling/MyArrows/LeftArrow/index.tsx","Components/MyHorizontalScrolling/MyArrows/RightArrow/index.tsx","Components/GridMater/MateriasItem/styles.tsx","Components/GridMater/MateriasItem/Materias/styles.tsx","Components/GridMater/MateriasItem/Materias/utils/index.ts","Components/GridMater/MateriasItem/Materias/dataMater.ts","Components/GridMater/MateriasItem/Materias/index.tsx","Components/MyHorizontalScrolling/useDrag.ts","Components/GridMater/dataPlayList.ts","Components/GridMater/MateriasItem/index.tsx","Components/GridMater/styles.js","Components/GridMater/index.js","../node_modules/@material-ui/core/esm/CardActions/CardActions.js","Components/GridColab/ColabItem/styles.tsx","Components/GridColab/ColabItem/index.js","../node_modules/@material-ui/core/esm/Slide/Slide.js","../node_modules/@material-ui/core/esm/Toolbar/Toolbar.js","../node_modules/@material-ui/core/esm/AppBar/AppBar.js","Components/MyNavbar/styles.ts","Components/MyNavbar/data.tsx","Components/MyNavbar/functions/index.ts","Components/MyButton/styles.tsx","Components/MyNavbar/index.tsx","../node_modules/@material-ui/core/esm/Drawer/Drawer.js","../node_modules/@material-ui/core/esm/NoSsr/NoSsr.js","../node_modules/@material-ui/core/esm/SwipeableDrawer/SwipeArea.js","../node_modules/@material-ui/core/esm/SwipeableDrawer/SwipeableDrawer.js","Components/MySwipeableDrawer/styles.ts","Components/MySwipeableDrawer/index.tsx","Components/Contact/index.tsx","../node_modules/@material-ui/core/esm/LinearProgress/LinearProgress.js","Components/MyLoading/styles.ts","Components/MyLoading/index.tsx","../node_modules/react-helmet-async/lib/index.esm.js","Components/MyHelmet/data.ts","Components/MyHelmet/index.tsx","Components/MateriasYou/styles.tsx","Router/index.js","App.js","index.js"],"sourcesContent":["import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nexport function hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : _formatMuiErrorMessage(3, color));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nexport function recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\nexport function getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nexport function getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nvar warnedOnce = false;\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n *\n * @deprecated\n * Use `import { alpha } from '@material-ui/core/styles'` instead.\n */\n\nexport function fade(color, value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: The `fade` color utility was renamed to `alpha` to better describe its functionality.', '', \"You should use `import { alpha } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return alpha(color, value);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha value is overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0-1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport var keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nexport default function createBreakpoints(breakpoints) {\n var _breakpoints$values = breakpoints.values,\n values = _breakpoints$values === void 0 ? {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n } : _breakpoints$values,\n _breakpoints$unit = breakpoints.unit,\n unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n _breakpoints$step = breakpoints.step,\n step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n other = _objectWithoutProperties(breakpoints, [\"values\", \"unit\", \"step\"]);\n\n function up(key) {\n var value = typeof values[key] === 'number' ? values[key] : key;\n return \"@media (min-width:\".concat(value).concat(unit, \")\");\n }\n\n function down(key) {\n var endIndex = keys.indexOf(key) + 1;\n var upperbound = values[keys[endIndex]];\n\n if (endIndex === keys.length) {\n // xl down applies to all sizes\n return up('xs');\n }\n\n var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n }\n\n function between(start, end) {\n var endIndex = keys.indexOf(end);\n\n if (endIndex === keys.length - 1) {\n return up(start);\n }\n\n return \"@media (min-width:\".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, \") and \") + \"(max-width:\".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === 'number' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, \")\");\n }\n\n function only(key) {\n return between(key, key);\n }\n\n var warnedOnce = false;\n\n function width(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.warn([\"Material-UI: The `theme.breakpoints.width` utility is deprecated because it's redundant.\", 'Use the `theme.breakpoints.values` instead.'].join('\\n'));\n }\n }\n\n return values[key];\n }\n\n return _extends({\n keys: keys,\n values: values,\n up: up,\n down: down,\n between: between,\n only: only,\n width: width\n }, other);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, spacing, mixins) {\n var _toolbar;\n\n return _extends({\n gutters: function gutters() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n console.warn(['Material-UI: theme.mixins.gutters() is deprecated.', 'You can use the source of the mixin directly:', \"\\n paddingLeft: theme.spacing(2),\\n paddingRight: theme.spacing(2),\\n [theme.breakpoints.up('sm')]: {\\n paddingLeft: theme.spacing(3),\\n paddingRight: theme.spacing(3),\\n },\\n \"].join('\\n'));\n return _extends({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, _defineProperty({}, breakpoints.up('sm'), _extends({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up('sm')])));\n },\n toolbar: (_toolbar = {\n minHeight: 56\n }, _defineProperty(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n minHeight: 48\n }), _defineProperty(_toolbar, breakpoints.up('sm'), {\n minHeight: 64\n }), _toolbar)\n }, mixins);\n}","var common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","var grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\nexport default grey;","var indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\nexport default indigo;","var pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\nexport default pink;","var red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","var orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","var blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","var green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\nimport { deepmerge } from '@material-ui/utils';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport indigo from '../colors/indigo';\nimport pink from '../colors/pink';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport green from '../colors/green';\nimport { darken, getContrastRatio, lighten } from './colorManipulator';\nexport var light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.54)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)',\n // Text hints.\n hint: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: grey[50]\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport var dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n hint: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: grey[800],\n default: '#303030'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n var tonalOffsetLight = tonalOffset.light || tonalOffset;\n var tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\n\nexport default function createPalette(palette) {\n var _palette$primary = palette.primary,\n primary = _palette$primary === void 0 ? {\n light: indigo[300],\n main: indigo[500],\n dark: indigo[700]\n } : _palette$primary,\n _palette$secondary = palette.secondary,\n secondary = _palette$secondary === void 0 ? {\n light: pink.A200,\n main: pink.A400,\n dark: pink.A700\n } : _palette$secondary,\n _palette$error = palette.error,\n error = _palette$error === void 0 ? {\n light: red[300],\n main: red[500],\n dark: red[700]\n } : _palette$error,\n _palette$warning = palette.warning,\n warning = _palette$warning === void 0 ? {\n light: orange[300],\n main: orange[500],\n dark: orange[700]\n } : _palette$warning,\n _palette$info = palette.info,\n info = _palette$info === void 0 ? {\n light: blue[300],\n main: blue[500],\n dark: blue[700]\n } : _palette$info,\n _palette$success = palette.success,\n success = _palette$success === void 0 ? {\n light: green[300],\n main: green[500],\n dark: green[700]\n } : _palette$success,\n _palette$type = palette.type,\n type = _palette$type === void 0 ? 'light' : _palette$type,\n _palette$contrastThre = palette.contrastThreshold,\n contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n _palette$tonalOffset = palette.tonalOffset,\n tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n other = _objectWithoutProperties(palette, [\"primary\", \"secondary\", \"error\", \"warning\", \"info\", \"success\", \"type\", \"contrastThreshold\", \"tonalOffset\"]); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n\n function getContrastText(background) {\n var contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n var contrast = getContrastRatio(background, contrastText);\n\n if (contrast < 3) {\n console.error([\"Material-UI: The contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(background), 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n\n return contrastText;\n }\n\n var augmentColor = function augmentColor(color) {\n var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n color = _extends({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.main) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\nThe color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\") : _formatMuiErrorMessage(4, mainShade));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\n`color.main` should be a string, but `\".concat(JSON.stringify(color.main), \"` was provided instead.\\n\\nDid you intend to use one of the following approaches?\\n\\nimport {\\xA0green } from \\\"@material-ui/core/colors\\\";\\n\\nconst theme1 = createTheme({ palette: {\\n primary: green,\\n} });\\n\\nconst theme2 = createTheme({ palette: {\\n primary: { main: green[500] },\\n} });\") : _formatMuiErrorMessage(5, JSON.stringify(color.main)));\n }\n\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n var types = {\n dark: dark,\n light: light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!types[type]) {\n console.error(\"Material-UI: The palette type `\".concat(type, \"` is not supported.\"));\n }\n }\n\n var paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: common,\n // The palette type, can be light or dark.\n type: type,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor(primary),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor(secondary, 'A400', 'A200', 'A700'),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor(error),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor(warning),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor(info),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor(success),\n // The grey colors.\n grey: grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold: contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText: getContrastText,\n // Generate a rich color object.\n augmentColor: augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset: tonalOffset\n }, types[type]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nvar warnedOnce = false;\n\nfunction roundWithDeprecationWarning(value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n console.warn(['Material-UI: The `theme.typography.round` helper is deprecated.', 'Head to https://mui.com/r/migration-v4/#theme for a migration path.'].join('\\n'));\n warnedOnce = true;\n }\n }\n\n return round(value);\n}\n\nvar caseAllCaps = {\n textTransform: 'uppercase'\n};\nvar defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nexport default function createTypography(palette, typography) {\n var _ref = typeof typography === 'function' ? typography(palette) : typography,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n _ref$fontWeightLight = _ref.fontWeightLight,\n fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n _ref$fontWeightRegula = _ref.fontWeightRegular,\n fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n _ref$fontWeightMedium = _ref.fontWeightMedium,\n fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n _ref$fontWeightBold = _ref.fontWeightBold,\n fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n _ref$htmlFontSize = _ref.htmlFontSize,\n htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n allVariants = _ref.allVariants,\n pxToRem2 = _ref.pxToRem,\n other = _objectWithoutProperties(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('Material-UI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('Material-UI: `htmlFontSize` is required to be a number.');\n }\n }\n\n var coef = fontSize / 14;\n\n var pxToRem = pxToRem2 || function (size) {\n return \"\".concat(size / htmlFontSize * coef, \"rem\");\n };\n\n var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n return _extends({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight: lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: \"\".concat(round(letterSpacing / size), \"em\")\n } : {}, casing, allVariants);\n };\n\n var variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return deepmerge(_extends({\n htmlFontSize: htmlFontSize,\n pxToRem: pxToRem,\n round: roundWithDeprecationWarning,\n // TODO v5: remove\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeightLight: fontWeightLight,\n fontWeightRegular: fontWeightRegular,\n fontWeightMedium: fontWeightMedium,\n fontWeightBold: fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}","var shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0,0,0,\").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0,0,0,\").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0,0,0,\").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nvar shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","var shape = {\n borderRadius: 4\n};\nexport default shape;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport transitions from './transitions';\nimport zIndex from './zIndex';\n\nfunction createTheme() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _options$breakpoints = options.breakpoints,\n breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n _options$mixins = options.mixins,\n mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n _options$palette = options.palette,\n paletteInput = _options$palette === void 0 ? {} : _options$palette,\n spacingInput = options.spacing,\n _options$typography = options.typography,\n typographyInput = _options$typography === void 0 ? {} : _options$typography,\n other = _objectWithoutProperties(options, [\"breakpoints\", \"mixins\", \"palette\", \"spacing\", \"typography\"]);\n\n var palette = createPalette(paletteInput);\n var breakpoints = createBreakpoints(breakpointsInput);\n var spacing = createSpacing(spacingInput);\n var muiTheme = deepmerge({\n breakpoints: breakpoints,\n direction: 'ltr',\n mixins: createMixins(breakpoints, spacing, mixinsInput),\n overrides: {},\n // Inject custom styles\n palette: palette,\n props: {},\n // Provide default props\n shadows: shadows,\n typography: createTypography(palette, typographyInput),\n spacing: spacing,\n shape: shape,\n transitions: transitions,\n zIndex: zIndex\n }, other);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n muiTheme = args.reduce(function (acc, argument) {\n return deepmerge(acc, argument);\n }, muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n\n var traverse = function traverse(node, parentKey) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n var child = node[key];\n\n if (depth === 1) {\n if (key.indexOf('Mui') === 0 && child) {\n traverse(child, key, depth + 1);\n }\n } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `\".concat(parentKey, \"` component increases \") + \"the CSS specificity of the `\".concat(key, \"` internal state.\"), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({\n root: _defineProperty({}, \"&$\".concat(key), child)\n }, null, 2), '', 'https://mui.com/r/pseudo-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n traverse(muiTheme.overrides);\n }\n\n return muiTheme;\n}\n\nvar warnedOnce = false;\nexport function createMuiTheme() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return createTheme.apply(void 0, arguments);\n}\nexport default createTheme;","import { createUnarySpacing } from '@material-ui/system';\nvar warnOnce;\nexport default function createSpacing() {\n var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n // Smaller components, such as icons and type, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n var transform = createUnarySpacing({\n spacing: spacingInput\n });\n\n var spacing = function spacing() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(args.length <= 4)) {\n console.error(\"Material-UI: Too many arguments provided, expected between 0 and 4, got \".concat(args.length));\n }\n }\n\n if (args.length === 0) {\n return transform(1);\n }\n\n if (args.length === 1) {\n return transform(args[0]);\n }\n\n return args.map(function (argument) {\n if (typeof argument === 'string') {\n return argument;\n }\n\n var output = transform(argument);\n return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n }).join(' ');\n }; // Backward compatibility, to remove in v5.\n\n\n Object.defineProperty(spacing, 'unit', {\n get: function get() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnOnce || process.env.NODE_ENV === 'test') {\n console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\\n'));\n }\n\n warnOnce = true;\n }\n\n return spacingInput;\n }\n });\n spacing.mui = true;\n return spacing;\n}","import createTheme from './createTheme';\nvar defaultTheme = createTheme();\nexport default defaultTheme;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport var easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexport var duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\n\nfunction formatMs(milliseconds) {\n return \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\nexport default {\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = _objectWithoutProperties(options, [\"duration\", \"easing\", \"delay\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var isNumber = function isNumber(value) {\n return !isNaN(parseFloat(value));\n };\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('Material-UI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(\"Material-UI: Argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n }\n\n if (!isString(easingOption)) {\n console.error('Material-UI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('Material-UI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(\"Material-UI: Unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"].\"));\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n }).join(',');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { chainPropTypes, getDisplayName } from '@material-ui/utils';\nimport makeStyles from '../makeStyles';\nimport getThemeProps from '../getThemeProps';\nimport useTheme from '../useTheme'; // Link a style sheet with a component.\n// It does not modify the component passed to it;\n// instead, it returns a new component, with a `classes` property.\n\nvar withStyles = function withStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function (Component) {\n var defaultTheme = options.defaultTheme,\n _options$withTheme = options.withTheme,\n withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n name = options.name,\n stylesOptions = _objectWithoutProperties(options, [\"defaultTheme\", \"withTheme\", \"name\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (Component === undefined) {\n throw new Error(['You are calling withStyles(styles)(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n }\n\n var classNamePrefix = name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = getDisplayName(Component);\n\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n\n var useStyles = makeStyles(stylesOrCreator, _extends({\n defaultTheme: defaultTheme,\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var WithStyles = /*#__PURE__*/React.forwardRef(function WithStyles(props, ref) {\n var classesProp = props.classes,\n innerRef = props.innerRef,\n other = _objectWithoutProperties(props, [\"classes\", \"innerRef\"]); // The wrapper receives only user supplied props, which could be a subset of\n // the actual props Component might receive due to merging with defaultProps.\n // So copying it here would give us the same result in the wrapper as well.\n\n\n var classes = useStyles(_extends({}, Component.defaultProps, props));\n var theme;\n var more = other;\n\n if (typeof name === 'string' || withTheme) {\n // name and withTheme are invariant in the outer scope\n // eslint-disable-next-line react-hooks/rules-of-hooks\n theme = useTheme() || defaultTheme;\n\n if (name) {\n more = getThemeProps({\n theme: theme,\n name: name,\n props: other\n });\n } // Provide the theme to the wrapped component.\n // So we don't have to use the `withTheme()` Higher-order Component.\n\n\n if (withTheme && !more.theme) {\n more.theme = theme;\n }\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: innerRef || ref,\n classes: classes\n }, more));\n });\n process.env.NODE_ENV !== \"production\" ? WithStyles.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * Use that prop to pass a ref to the decorated component.\n * @deprecated\n */\n innerRef: chainPropTypes(PropTypes.oneOfType([PropTypes.func, PropTypes.object]), function (props) {\n if (props.innerRef == null) {\n return null;\n }\n\n return null; // return new Error(\n // 'Material-UI: The `innerRef` prop is deprecated and will be removed in v5. ' +\n // 'Refs are now automatically forwarded to the inner component.',\n // );\n })\n } : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n WithStyles.displayName = \"WithStyles(\".concat(getDisplayName(Component), \")\");\n }\n\n hoistNonReactStatics(WithStyles, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // Exposed for test purposes.\n WithStyles.Naked = Component;\n WithStyles.options = options;\n WithStyles.useStyles = useStyles;\n }\n\n return WithStyles;\n };\n};\n\nexport default withStyles;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { withStyles as withStylesWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\n\nfunction withStyles(stylesOrCreator, options) {\n return withStylesWithoutDefault(stylesOrCreator, _extends({\n defaultTheme: defaultTheme\n }, options));\n}\n\nexport default withStyles;","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word a the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: capitalize(string) expects a string argument.\" : _formatMuiErrorMessage(7));\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nexport default function createChainedFunction() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n return funcs.reduce(function (acc, func) {\n if (func == null) {\n return acc;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof func !== 'function') {\n console.error('Material-UI: Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n }\n\n return function chainedFunction() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, function () {});\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n fill: 'currentColor',\n flexShrink: 0,\n fontSize: theme.typography.pxToRem(24),\n transition: theme.transitions.create('fill', {\n duration: theme.transitions.duration.shorter\n })\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n color: theme.palette.primary.main\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n color: theme.palette.secondary.main\n },\n\n /* Styles applied to the root element if `color=\"action\"`. */\n colorAction: {\n color: theme.palette.action.active\n },\n\n /* Styles applied to the root element if `color=\"error\"`. */\n colorError: {\n color: theme.palette.error.main\n },\n\n /* Styles applied to the root element if `color=\"disabled\"`. */\n colorDisabled: {\n color: theme.palette.action.disabled\n },\n\n /* Styles applied to the root element if `fontSize=\"inherit\"`. */\n fontSizeInherit: {\n fontSize: 'inherit'\n },\n\n /* Styles applied to the root element if `fontSize=\"small\"`. */\n fontSizeSmall: {\n fontSize: theme.typography.pxToRem(20)\n },\n\n /* Styles applied to the root element if `fontSize=\"large\"`. */\n fontSizeLarge: {\n fontSize: theme.typography.pxToRem(35)\n }\n };\n};\nvar SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'inherit' : _props$color,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'svg' : _props$component,\n _props$fontSize = props.fontSize,\n fontSize = _props$fontSize === void 0 ? 'medium' : _props$fontSize,\n htmlColor = props.htmlColor,\n titleAccess = props.titleAccess,\n _props$viewBox = props.viewBox,\n viewBox = _props$viewBox === void 0 ? '0 0 24 24' : _props$viewBox,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"titleAccess\", \"viewBox\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, color !== 'inherit' && classes[\"color\".concat(capitalize(color))], fontSize !== 'default' && fontSize !== 'medium' && classes[\"fontSize\".concat(capitalize(fontSize))]),\n focusable: \"false\",\n viewBox: viewBox,\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, other), children, titleAccess ? /*#__PURE__*/React.createElement(\"title\", null, titleAccess) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n */\n color: PropTypes.oneOf(['action', 'disabled', 'error', 'inherit', 'primary', 'secondary']),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n */\n fontSize: chainPropTypes(PropTypes.oneOf(['default', 'inherit', 'large', 'medium', 'small']), function (props) {\n var fontSize = props.fontSize;\n\n if (fontSize === 'default') {\n throw new Error('Material-UI: `fontSize=\"default\"` is deprecated. Use `fontSize=\"medium\"` instead.');\n }\n\n return null;\n }),\n\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this property.\n */\n shapeRendering: PropTypes.string,\n\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default withStyles(styles, {\n name: 'MuiSvgIcon'\n})(SvgIcon);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport SvgIcon from '../SvgIcon';\n/**\n * Private module reserved for @material-ui/x packages.\n */\n\nexport default function createSvgIcon(path, displayName) {\n var Component = function Component(props, ref) {\n return /*#__PURE__*/React.createElement(SvgIcon, _extends({\n ref: ref\n }, props), path);\n };\n\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = \"\".concat(displayName, \"Icon\");\n }\n\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func) {\n var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 166;\n var timeout;\n\n function debounced() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // eslint-disable-next-line consistent-this\n var that = this;\n\n var later = function later() {\n func.apply(that, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n debounced.clear = function () {\n clearTimeout(timeout);\n };\n\n return debounced;\n}","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return function () {\n return null;\n };\n }\n\n return function (props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined') {\n return new Error(\"The \".concat(location, \" `\").concat(propFullNameSafe, \"` of \") + \"`\".concat(componentNameSafe, \"` is deprecated. \").concat(reason));\n }\n\n return null;\n };\n}","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","export default function requirePropFactory(componentNameInError) {\n if (process.env.NODE_ENV === 'production') {\n return function () {\n return null;\n };\n }\n\n var requireProp = function requireProp(requiredProp) {\n return function (props, propName, componentName, location, propFullName) {\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(\"The prop `\".concat(propFullNameSafe, \"` of \") + \"`\".concat(componentNameInError, \"` must be used on `\").concat(requiredProp, \"`.\"));\n }\n\n return null;\n };\n };\n\n return requireProp;\n}","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined') {\n return new Error(\"The prop `\".concat(propFullNameSafe, \"` is not supported. Please remove it.\"));\n }\n\n return null;\n}","/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled(_ref) {\n var controlled = _ref.controlled,\n defaultProp = _ref.default,\n name = _ref.name,\n _ref$state = _ref.state,\n state = _ref$state === void 0 ? 'value' : _ref$state;\n\n var _React$useRef = React.useRef(controlled !== undefined),\n isControlled = _React$useRef.current;\n\n var _React$useState = React.useState(defaultProp),\n valueState = _React$useState[0],\n setValue = _React$useState[1];\n\n var value = isControlled ? controlled : valueState;\n\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(function () {\n if (isControlled !== (controlled !== undefined)) {\n console.error([\"Material-UI: A component is changing the \".concat(isControlled ? '' : 'un', \"controlled \").concat(state, \" state of \").concat(name, \" to be \").concat(isControlled ? 'un' : '', \"controlled.\"), 'Elements should not switch from uncontrolled to controlled (or vice versa).', \"Decide between using a controlled or uncontrolled \".concat(name, \" \") + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [controlled]);\n\n var _React$useRef2 = React.useRef(defaultProp),\n defaultValue = _React$useRef2.current;\n\n React.useEffect(function () {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([\"Material-UI: A component is changing the default \".concat(state, \" state of an uncontrolled \").concat(name, \" after being initialized. \") + \"To suppress this warning opt to use a controlled \".concat(name, \".\")].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n\n var setValueIfUncontrolled = React.useCallback(function (newValue) {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","import * as React from 'react';\n/**\n * Private module reserved for @material-ui/x packages.\n */\n\nexport default function useId(idOverride) {\n var _React$useState = React.useState(idOverride),\n defaultId = _React$useState[0],\n setDefaultId = _React$useState[1];\n\n var id = idOverride || defaultId;\n React.useEffect(function () {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the random value for client-side rendering only.\n // We can't use it server-side.\n setDefaultId(\"mui-\".concat(Math.round(Math.random() * 1e5)));\n }\n }, [defaultId]);\n return id;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from './ownerDocument';\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc.defaultView || window;\n}","// TODO v5: consider to make it private\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","import * as React from 'react';\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param {function} fn\n */\n\nexport default function useEventCallback(fn) {\n var ref = React.useRef(fn);\n useEnhancedEffect(function () {\n ref.current = fn;\n });\n return React.useCallback(function () {\n return (0, ref.current).apply(void 0, arguments);\n }, []);\n}","import * as React from 'react';\nimport setRef from './setRef';\nexport default function useForkRef(refA, refB) {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior\n */\n return React.useMemo(function () {\n if (refA == null && refB == null) {\n return null;\n }\n\n return function (refValue) {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}","// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nvar hadKeyboardEvent = true;\nvar hadFocusVisibleRecently = false;\nvar hadFocusVisibleRecentlyTimeout = null;\nvar inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @return {boolean}\n */\n\nfunction focusTriggersKeyboardModality(node) {\n var type = node.type,\n tagName = node.tagName;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n\n if (node.isContentEditable) {\n return true;\n }\n\n return false;\n}\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\n\n\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n hadKeyboardEvent = true;\n}\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\n\n\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\n\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\n\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nfunction isFocusVisible(event) {\n var target = event.target;\n\n try {\n return target.matches(':focus-visible');\n } catch (error) {} // browsers not implementing :focus-visible will throw a SyntaxError\n // we use our own heuristic for those browsers\n // rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n // no need for validFocusTarget check. the user does that by attaching it to\n // focusable events only\n\n\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\n/**\n * Should be called if a blur event is fired on a focus-visible element\n */\n\n\nfunction handleBlurVisible() {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n }, 100);\n}\n\nexport default function useIsFocusVisible() {\n var ref = React.useCallback(function (instance) {\n var node = ReactDOM.findDOMNode(instance);\n\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(isFocusVisible);\n }\n\n return {\n isFocusVisible: isFocusVisible,\n onBlurVisible: handleBlurVisible,\n ref: ref\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z\"\n}), 'ArrowBack');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.67 3.87L9.9 2.1 0 12l9.9 9.9 1.77-1.77L3.54 12z\"\n}), 'ArrowBackIos');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.88 4.12L13.76 12l-7.88 7.88L8 22l10-10L8 2z\"\n}), 'ArrowForwardIos');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14 7l-5 5 5 5V7z\"\n}), 'ArrowLeft');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 17l5-5-5-5v10z\"\n}), 'ArrowRight');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2m13 2h-2.5A3.5 3.5 0 0 0 12 8.5V11h-2v3h2v7h3v-7h3v-3h-3V9a1 1 0 0 1 1-1h2V5z\"\n}), 'Facebook');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z\"\n}), 'FormatQuote');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.8 2h8.4C19.4 2 22 4.6 22 7.8v8.4a5.8 5.8 0 0 1-5.8 5.8H7.8C4.6 22 2 19.4 2 16.2V7.8A5.8 5.8 0 0 1 7.8 2m-.2 2A3.6 3.6 0 0 0 4 7.6v8.8C4 18.39 5.61 20 7.6 20h8.8a3.6 3.6 0 0 0 3.6-3.6V7.6C20 5.61 18.39 4 16.4 4H7.6m9.65 1.5a1.25 1.25 0 0 1 1.25 1.25A1.25 1.25 0 0 1 17.25 8 1.25 1.25 0 0 1 16 6.75a1.25 1.25 0 0 1 1.25-1.25M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3z\"\n}), 'Instagram');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93h2.79M6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z\"\n}), 'LinkedIn');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\"\n}), 'Menu');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 19h4V5H6v14zm8-14v14h4V5h-4z\"\n}), 'Pause');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 5v14l11-7z\"\n}), 'PlayArrow');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 15l5.19-3L10 9v6m11.56-7.83c.13.47.22 1.1.28 1.9.07.8.1 1.49.1 2.09L22 12c0 2.19-.16 3.8-.44 4.83-.25.9-.83 1.48-1.73 1.73-.47.13-1.33.22-2.65.28-1.3.07-2.49.1-3.59.1L12 19c-4.19 0-6.8-.16-7.83-.44-.9-.25-1.48-.83-1.73-1.73-.13-.47-.22-1.1-.28-1.9-.07-.8-.1-1.49-.1-2.09L2 12c0-2.19.16-3.8.44-4.83.25-.9.83-1.48 1.73-1.73.47-.13 1.33-.22 2.65-.28 1.3-.07 2.49-.1 3.59-.1L12 5c4.19 0 6.8.16 7.83.44.9.25 1.48.83 1.73 1.73z\"\n}), 'YouTube');\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _utils.createSvgIcon;\n }\n});\n\nvar _utils = require(\"@material-ui/core/utils\");","var hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","/* eslint-disable no-restricted-syntax */\nexport default function getThemeProps(params) {\n var theme = params.theme,\n name = params.name,\n props = params.props;\n\n if (!theme || !theme.props || !theme.props[name]) {\n return props;\n } // Resolve default props, code borrow from React source.\n // https://github.com/facebook/react/blob/15a8f031838a553e41c0b66eb1bcf1da8448104d/packages/react/src/ReactElement.js#L221\n\n\n var defaultProps = theme.props[name];\n var propName;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n\n return props;\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexport default isBrowser;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport isInBrowser from 'is-in-browser';\nimport warning from 'tiny-warning';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\n\nvar plainObjectConstrurctor = {}.constructor;\nfunction cloneStyle(style) {\n if (style == null || typeof style !== 'object') return style;\n if (Array.isArray(style)) return style.map(cloneStyle);\n if (style.constructor !== plainObjectConstrurctor) return style;\n var newStyle = {};\n\n for (var name in style) {\n newStyle[name] = cloneStyle(style[name]);\n }\n\n return newStyle;\n}\n\n/**\n * Create a rule instance.\n */\n\nfunction createRule(name, decl, options) {\n if (name === void 0) {\n name = 'unnamed';\n }\n\n var jss = options.jss;\n var declCopy = cloneStyle(decl);\n var rule = jss.plugins.onCreateRule(name, declCopy, options);\n if (rule) return rule; // It is an at-rule and it has no instance.\n\n if (name[0] === '@') {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown rule \" + name) : void 0;\n }\n\n return null;\n}\n\nvar join = function join(value, by) {\n var result = '';\n\n for (var i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break;\n if (result) result += by;\n result += value[i];\n }\n\n return result;\n};\n/**\n * Converts JSS array value to a CSS string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\n\n\nvar toCssValue = function toCssValue(value) {\n if (!Array.isArray(value)) return value;\n var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n\n if (value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n\n return cssValue;\n};\n\nfunction getWhitespaceSymbols(options) {\n if (options && options.format === false) {\n return {\n linebreak: '',\n space: ''\n };\n }\n\n return {\n linebreak: '\\n',\n space: ' '\n };\n}\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\n\nfunction indentStr(str, indent) {\n var result = '';\n\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }\n\n return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\n\nfunction toCss(selector, style, options) {\n if (options === void 0) {\n options = {};\n }\n\n var result = '';\n if (!style) return result;\n var _options = options,\n _options$indent = _options.indent,\n indent = _options$indent === void 0 ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n\n if (options.format === false) {\n indent = -Infinity;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak,\n space = _getWhitespaceSymbols.space;\n\n if (selector) indent++; // Apply fallbacks first.\n\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n\n for (var prop in fallback) {\n var value = fallback[prop];\n\n if (value != null) {\n if (result) result += linebreak;\n result += indentStr(prop + \":\" + space + toCssValue(value) + \";\", indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n\n if (_value != null) {\n if (result) result += linebreak;\n result += indentStr(_prop + \":\" + space + toCssValue(_value) + \";\", indent);\n }\n }\n }\n }\n\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n\n if (_value2 != null && _prop2 !== 'fallbacks') {\n if (result) result += linebreak;\n result += indentStr(_prop2 + \":\" + space + toCssValue(_value2) + \";\", indent);\n }\n } // Allow empty style in this case, because properties will be added dynamically.\n\n\n if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n if (!selector) return result;\n indent--;\n if (result) result = \"\" + linebreak + result + linebreak;\n return indentStr(\"\" + selector + space + \"{\" + result, indent) + indentStr('}', indent);\n}\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\nvar escape = (function (str) {\n return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n});\n\nvar BaseStyleRule =\n/*#__PURE__*/\nfunction () {\n function BaseStyleRule(key, style, options) {\n this.type = 'style';\n this.isProcessed = false;\n var sheet = options.sheet,\n Renderer = options.Renderer;\n this.key = key;\n this.options = options;\n this.style = style;\n if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n }\n /**\n * Get or set a style property.\n */\n\n\n var _proto = BaseStyleRule.prototype;\n\n _proto.prop = function prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n var force = options ? options.force : false;\n if (!force && this.style[name] === value) return this;\n var newValue = value;\n\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n }\n\n var isEmpty = newValue == null || newValue === false;\n var isDefined = name in this.style; // Value is empty and wasn't defined before.\n\n if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n var remove = isEmpty && isDefined;\n if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n return this;\n }\n\n var sheet = this.options.sheet;\n\n if (sheet && sheet.attached) {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".') : void 0;\n }\n\n return this;\n };\n\n return BaseStyleRule;\n}();\nvar StyleRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(StyleRule, _BaseStyleRule);\n\n function StyleRule(key, style, options) {\n var _this;\n\n _this = _BaseStyleRule.call(this, key, style, options) || this;\n var selector = options.selector,\n scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n\n if (selector) {\n _this.selectorText = selector;\n } else if (scoped !== false) {\n _this.id = generateId(_assertThisInitialized(_assertThisInitialized(_this)), sheet);\n _this.selectorText = \".\" + escape(_this.id);\n }\n\n return _this;\n }\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n\n var _proto2 = StyleRule.prototype;\n\n /**\n * Apply rule to an element inline.\n */\n _proto2.applyTo = function applyTo(renderable) {\n var renderer = this.renderer;\n\n if (renderer) {\n var json = this.toJSON();\n\n for (var prop in json) {\n renderer.setProperty(renderable, prop, json[prop]);\n }\n }\n\n return this;\n }\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n ;\n\n _proto2.toJSON = function toJSON() {\n var json = {};\n\n for (var prop in this.style) {\n var value = this.style[prop];\n if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n }\n\n return json;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto2.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.selectorText, this.style, opts);\n };\n\n _createClass(StyleRule, [{\n key: \"selector\",\n set: function set(selector) {\n if (selector === this.selectorText) return;\n this.selectorText = selector;\n var renderer = this.renderer,\n renderable = this.renderable;\n if (!renderable || !renderer) return;\n var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n if (!hasChanged) {\n renderer.replaceRule(renderable, this);\n }\n }\n /**\n * Get selector string.\n */\n ,\n get: function get() {\n return this.selectorText;\n }\n }]);\n\n return StyleRule;\n}(BaseStyleRule);\nvar pluginStyleRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (key[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n\n return new StyleRule(key, style, options);\n }\n};\n\nvar defaultToStringOptions = {\n indent: 1,\n children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule =\n/*#__PURE__*/\nfunction () {\n function ConditionalRule(key, styles, options) {\n this.type = 'conditional';\n this.isProcessed = false;\n this.key = key;\n var atMatch = key.match(atRegExp);\n this.at = atMatch ? atMatch[1] : 'unknown'; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n this.query = options.name || \"@\" + this.at;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = ConditionalRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */\n ;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (options.indent == null) options.indent = defaultToStringOptions.indent;\n if (options.children == null) options.children = defaultToStringOptions.children;\n\n if (options.children === false) {\n return this.query + \" {}\";\n }\n\n var children = this.rules.toString(options);\n return children ? this.query + \" {\" + linebreak + children + linebreak + \"}\" : '';\n };\n\n return ConditionalRule;\n}();\nvar keyRegExp = /@container|@media|@supports\\s+/;\nvar pluginConditionalRule = {\n onCreateRule: function onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n }\n};\n\nvar defaultToStringOptions$1 = {\n indent: 1,\n children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule =\n/*#__PURE__*/\nfunction () {\n function KeyframesRule(key, frames, options) {\n this.type = 'keyframes';\n this.at = '@keyframes';\n this.isProcessed = false;\n var nameMatch = key.match(nameRegExp);\n\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1];\n } else {\n this.name = 'noname';\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Bad keyframes name \" + key) : void 0;\n }\n\n this.key = this.type + \"-\" + this.name;\n this.options = options;\n var scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends({}, options, {\n parent: this\n }));\n }\n\n this.rules.process();\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = KeyframesRule.prototype;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions$1;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n if (options.children == null) options.children = defaultToStringOptions$1.children;\n\n if (options.children === false) {\n return this.at + \" \" + this.id + \" {}\";\n }\n\n var children = this.rules.toString(options);\n if (children) children = \"\" + linebreak + children + linebreak;\n return this.at + \" \" + this.id + \" {\" + children + \"}\";\n };\n\n return KeyframesRule;\n}();\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\n\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n if (typeof val === 'string') {\n return val.replace(refRegExp, function (match, name) {\n if (name in keyframes) {\n return keyframes[name];\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced keyframes rule \\\"\" + name + \"\\\" is not defined.\") : void 0;\n return match;\n });\n }\n\n return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n var value = style[prop];\n var refKeyframe = findReferencedKeyframe(value, keyframes);\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe;\n }\n};\n\nvar pluginKeyframesRule = {\n onCreateRule: function onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n },\n // Animation name ref replacer.\n onProcessStyle: function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style' || !sheet) return style;\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n return style;\n },\n onChangeValue: function onChangeValue(val, prop, rule) {\n var sheet = rule.options.sheet;\n\n if (!sheet) {\n return val;\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n default:\n return val;\n }\n }\n};\n\nvar KeyframeRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(KeyframeRule, _BaseStyleRule);\n\n function KeyframeRule() {\n return _BaseStyleRule.apply(this, arguments) || this;\n }\n\n var _proto = KeyframeRule.prototype;\n\n /**\n * Generates a CSS string.\n */\n _proto.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.key, this.style, opts);\n };\n\n return KeyframeRule;\n}(BaseStyleRule);\nvar pluginKeyframeRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options);\n }\n\n return null;\n }\n};\n\nvar FontFaceRule =\n/*#__PURE__*/\nfunction () {\n function FontFaceRule(key, style, options) {\n this.type = 'font-face';\n this.at = '@font-face';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = FontFaceRule.prototype;\n\n _proto.toString = function toString(options) {\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (Array.isArray(this.style)) {\n var str = '';\n\n for (var index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index]);\n if (this.style[index + 1]) str += linebreak;\n }\n\n return str;\n }\n\n return toCss(this.at, this.style, options);\n };\n\n return FontFaceRule;\n}();\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n }\n};\n\nvar ViewportRule =\n/*#__PURE__*/\nfunction () {\n function ViewportRule(key, style, options) {\n this.type = 'viewport';\n this.at = '@viewport';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = ViewportRule.prototype;\n\n _proto.toString = function toString(options) {\n return toCss(this.key, this.style, options);\n };\n\n return ViewportRule;\n}();\nvar pluginViewportRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n }\n};\n\nvar SimpleRule =\n/*#__PURE__*/\nfunction () {\n function SimpleRule(key, value, options) {\n this.type = 'simple';\n this.isProcessed = false;\n this.key = key;\n this.value = value;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n\n var _proto = SimpleRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + \" \" + this.value[index] + \";\";\n if (this.value[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return this.key + \" \" + this.value + \";\";\n };\n\n return SimpleRule;\n}();\nvar keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n};\nvar pluginSimpleRule = {\n onCreateRule: function onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null;\n }\n};\n\nvar plugins = [pluginStyleRule, pluginConditionalRule, pluginKeyframesRule, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\n\nvar defaultUpdateOptions = {\n process: true\n};\nvar forceUpdateOptions = {\n force: true,\n process: true\n /**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\n\n};\n\nvar RuleList =\n/*#__PURE__*/\nfunction () {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n // Original styles object.\n // Used to ensure correct rules order.\n function RuleList(options) {\n this.map = {};\n this.raw = {};\n this.index = [];\n this.counter = 0;\n this.options = options;\n this.classes = options.classes;\n this.keyframes = options.keyframes;\n }\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n\n var _proto = RuleList.prototype;\n\n _proto.add = function add(name, decl, ruleOptions) {\n var _this$options = this.options,\n parent = _this$options.parent,\n sheet = _this$options.sheet,\n jss = _this$options.jss,\n Renderer = _this$options.Renderer,\n generateId = _this$options.generateId,\n scoped = _this$options.scoped;\n\n var options = _extends({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateId: generateId,\n scoped: scoped,\n name: name,\n keyframes: this.keyframes,\n selector: undefined\n }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n\n\n var key = name;\n\n if (name in this.raw) {\n key = name + \"-d\" + this.counter++;\n } // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n\n\n this.raw[key] = decl;\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = \".\" + escape(this.classes[key]);\n }\n\n var rule = createRule(key, decl, options);\n if (!rule) return null;\n this.register(rule);\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n return rule;\n }\n /**\n * Replace rule.\n * Create a new rule and remove old one instead of overwriting\n * because we want to invoke onCreateRule hook to make plugins work.\n */\n ;\n\n _proto.replace = function replace(name, decl, ruleOptions) {\n var oldRule = this.get(name);\n var oldIndex = this.index.indexOf(oldRule);\n\n if (oldRule) {\n this.remove(oldRule);\n }\n\n var options = ruleOptions;\n if (oldIndex !== -1) options = _extends({}, ruleOptions, {\n index: oldIndex\n });\n return this.add(name, decl, options);\n }\n /**\n * Get a rule by name or selector.\n */\n ;\n\n _proto.get = function get(nameOrSelector) {\n return this.map[nameOrSelector];\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.remove = function remove(rule) {\n this.unregister(rule);\n delete this.raw[rule.key];\n this.index.splice(this.index.indexOf(rule), 1);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n ;\n\n _proto.process = function process() {\n var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n }\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n ;\n\n _proto.register = function register(rule) {\n this.map[rule.key] = rule;\n\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule;\n if (rule.id) this.classes[rule.key] = rule.id;\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id;\n }\n }\n /**\n * Unregister a rule.\n */\n ;\n\n _proto.unregister = function unregister(rule) {\n delete this.map[rule.key];\n\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name];\n }\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var name;\n var data;\n var options;\n\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n name = arguments.length <= 0 ? undefined : arguments[0];\n data = arguments.length <= 1 ? undefined : arguments[1];\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0];\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n\n if (name) {\n this.updateOne(this.get(name), data, options);\n } else {\n for (var index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options);\n }\n }\n }\n /**\n * Execute plugins, update rule props.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n if (options === void 0) {\n options = defaultUpdateOptions;\n }\n\n var _this$options2 = this.options,\n plugins = _this$options2.jss.plugins,\n sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options);\n return;\n }\n\n var style = rule.style;\n plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n if (options.process && style && style !== rule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(rule.style, rule, sheet); // Update and add props.\n\n for (var prop in rule.style) {\n var nextValue = rule.style[prop];\n var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (nextValue !== prevValue) {\n rule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n\n for (var _prop in style) {\n var _nextValue = rule.style[_prop];\n var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (_nextValue == null && _nextValue !== _prevValue) {\n rule.prop(_prop, null, forceUpdateOptions);\n }\n }\n }\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options); // No need to render an empty rule.\n\n if (!css && !link) continue;\n if (str) str += linebreak;\n str += css;\n }\n\n return str;\n };\n\n return RuleList;\n}();\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(styles, options) {\n this.attached = false;\n this.deployed = false;\n this.classes = {};\n this.keyframes = {};\n this.options = _extends({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n });\n\n if (options.Renderer) {\n this.renderer = new options.Renderer(this);\n }\n\n this.rules = new RuleList(this.options);\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Attach renderable to the render tree.\n */\n\n\n var _proto = StyleSheet.prototype;\n\n _proto.attach = function attach() {\n if (this.attached) return this;\n if (this.renderer) this.renderer.attach();\n this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n if (!this.deployed) this.deploy();\n return this;\n }\n /**\n * Remove renderable from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.attached) return this;\n if (this.renderer) this.renderer.detach();\n this.attached = false;\n return this;\n }\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n ;\n\n _proto.addRule = function addRule(name, decl, options) {\n var queue = this.queue; // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n var rule = this.rules.add(name, decl, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n\n if (this.attached) {\n if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n } // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return rule;\n }\n /**\n * Replace a rule in the current stylesheet.\n */\n ;\n\n _proto.replaceRule = function replaceRule(nameOrSelector, decl, options) {\n var oldRule = this.rules.get(nameOrSelector);\n if (!oldRule) return this.addRule(nameOrSelector, decl, options);\n var newRule = this.rules.replace(nameOrSelector, decl, options);\n\n if (newRule) {\n this.options.jss.plugins.onProcessRule(newRule);\n }\n\n if (this.attached) {\n if (!this.deployed) return newRule; // Don't replace / delete rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (this.renderer) {\n if (!newRule) {\n this.renderer.deleteRule(oldRule);\n } else if (oldRule.renderable) {\n this.renderer.replaceRule(oldRule.renderable, newRule);\n }\n }\n\n return newRule;\n } // We can't replace rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return newRule;\n }\n /**\n * Insert rule into the StyleSheet\n */\n ;\n\n _proto.insertRule = function insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule);\n }\n }\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n ;\n\n _proto.addRules = function addRules(styles, options) {\n var added = [];\n\n for (var name in styles) {\n var rule = this.addRule(name, styles[name], options);\n if (rule) added.push(rule);\n }\n\n return added;\n }\n /**\n * Get a rule by name or selector.\n */\n ;\n\n _proto.getRule = function getRule(nameOrSelector) {\n return this.rules.get(nameOrSelector);\n }\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n ;\n\n _proto.deleteRule = function deleteRule(name) {\n var rule = typeof name === 'object' ? name : this.rules.get(name);\n\n if (!rule || // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n this.attached && !rule.renderable) {\n return false;\n }\n\n this.rules.remove(rule);\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable);\n }\n\n return true;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Deploy pure CSS string to a renderable.\n */\n ;\n\n _proto.deploy = function deploy() {\n if (this.renderer) this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var _this$rules;\n\n (_this$rules = this.rules).update.apply(_this$rules, arguments);\n\n return this;\n }\n /**\n * Updates a single rule.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options);\n return this;\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return StyleSheet;\n}();\n\nvar PluginsRegistry =\n/*#__PURE__*/\nfunction () {\n function PluginsRegistry() {\n this.plugins = {\n internal: [],\n external: []\n };\n this.registry = {};\n }\n\n var _proto = PluginsRegistry.prototype;\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n _proto.onCreateRule = function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n var rule = this.registry.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n\n return null;\n }\n /**\n * Call `onProcessRule` hooks.\n */\n ;\n\n _proto.onProcessRule = function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n\n for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet);\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n rule.isProcessed = true;\n }\n /**\n * Call `onProcessStyle` hooks.\n */\n ;\n\n _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n }\n }\n /**\n * Call `onProcessSheet` hooks.\n */\n ;\n\n _proto.onProcessSheet = function onProcessSheet(sheet) {\n for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet);\n }\n }\n /**\n * Call `onUpdate` hooks.\n */\n ;\n\n _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n for (var i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options);\n }\n }\n /**\n * Call `onChangeValue` hooks.\n */\n ;\n\n _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n var processedValue = value;\n\n for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n }\n\n return processedValue;\n }\n /**\n * Register a plugin.\n */\n ;\n\n _proto.use = function use(newPlugin, options) {\n if (options === void 0) {\n options = {\n queue: 'external'\n };\n }\n\n var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n if (plugins.indexOf(newPlugin) !== -1) {\n return;\n }\n\n plugins.push(newPlugin);\n this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n for (var name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name]);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown hook \\\"\" + name + \"\\\".\") : void 0;\n }\n }\n\n return registry;\n }, {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n });\n };\n\n return PluginsRegistry;\n}();\n\n/**\n * Sheets registry to access all instances in one place.\n */\n\nvar SheetsRegistry =\n/*#__PURE__*/\nfunction () {\n function SheetsRegistry() {\n this.registry = [];\n }\n\n var _proto = SheetsRegistry.prototype;\n\n /**\n * Register a Style Sheet.\n */\n _proto.add = function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n if (registry.indexOf(sheet) !== -1) return;\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n } // Find a position.\n\n\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n /**\n * Reset the registry.\n */\n ;\n\n _proto.reset = function reset() {\n this.registry = [];\n }\n /**\n * Remove a Style Sheet.\n */\n ;\n\n _proto.remove = function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n /**\n * Convert all attached sheets to a CSS string.\n */\n ;\n\n _proto.toString = function toString(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n attached = _ref.attached,\n options = _objectWithoutPropertiesLoose(_ref, [\"attached\"]);\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n var css = '';\n\n for (var i = 0; i < this.registry.length; i++) {\n var sheet = this.registry[i];\n\n if (attached != null && sheet.attached !== attached) {\n continue;\n }\n\n if (css) css += linebreak;\n css += sheet.toString(options);\n }\n\n return css;\n };\n\n _createClass(SheetsRegistry, [{\n key: \"index\",\n\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n\n return SheetsRegistry;\n}();\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\nvar sheets = new SheetsRegistry();\n\n/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\nvar globalThis$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' && window.Math === Math ? window : typeof self !== 'undefined' && self.Math === Math ? self : Function('return this')();\n\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis$1[ns] == null) globalThis$1[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis$1[ns]++;\n\nvar maxRules = 1e10;\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\n\nvar createGenerateId = function createGenerateId(options) {\n if (options === void 0) {\n options = {};\n }\n\n var ruleCounter = 0;\n\n var generateId = function generateId(rule, sheet) {\n ruleCounter += 1;\n\n if (ruleCounter > maxRules) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] You might have a memory leak. Rule counter is at \" + ruleCounter + \".\") : void 0;\n }\n\n var jssId = '';\n var prefix = '';\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix;\n }\n\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id);\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n }\n\n return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n };\n\n return generateId;\n};\n\n/**\n * Cache the value from the first time a function is called.\n */\n\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n/**\n * Get a style property value.\n */\n\n\nvar getPropertyValue = function getPropertyValue(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop);\n }\n\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n};\n/**\n * Set a style property.\n */\n\n\nvar setProperty = function setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value);\n } // Support CSSTOM.\n\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n var indexOfImportantFlag = cssValue ? cssValue.indexOf('!important') : -1;\n var cssValueWithoutImportantFlag = indexOfImportantFlag > -1 ? cssValue.substr(0, indexOfImportantFlag - 1) : cssValue;\n cssRule.style.setProperty(prop, cssValueWithoutImportantFlag, indexOfImportantFlag > -1 ? 'important' : '');\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n\n return true;\n};\n/**\n * Remove a style property.\n */\n\n\nvar removeProperty = function removeProperty(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop);\n } else {\n cssRule.style.removeProperty(prop);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] DOMException \\\"\" + err.message + \"\\\" was thrown. Tried to remove property \\\"\" + prop + \"\\\".\") : void 0;\n }\n};\n/**\n * Set the selector.\n */\n\n\nvar setSelector = function setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText; // Return false if setter was not successful.\n // Currently works in chrome only.\n\n return cssRule.selectorText === selectorText;\n};\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\n\nvar getHead = memoize(function () {\n return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\n\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\n\nfunction findCommentNode(text) {\n var head = getHead();\n\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n\n return null;\n}\n/**\n * Find a node before which we can insert the sheet.\n */\n\n\nfunction findPrevNode(options) {\n var registry = sheets.registry;\n\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n };\n } // Otherwise insert after the last attached.\n\n\n sheet = findHighestSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n };\n }\n } // Try to find a comment placeholder if registry is empty.\n\n\n var insertionPoint = options.insertionPoint;\n\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n };\n } // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Insertion point \\\"\" + insertionPoint + \"\\\" not found.\") : void 0;\n }\n\n return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\n\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n var nextNode = findPrevNode(options);\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node);\n return;\n } // Works with iframes and any node types.\n\n\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n var insertionPointElement = insertionPoint;\n var parentNode = insertionPointElement.parentNode;\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Insertion point is not in the DOM.') : void 0;\n return;\n }\n\n getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\n\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\n\nvar _insertRule = function insertRule(container, rule, index) {\n try {\n if ('insertRule' in container) {\n container.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n container.appendRule(rule);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] \" + err.message) : void 0;\n return false;\n }\n\n return container.cssRules[index];\n};\n\nvar getValidRuleInsertionIndex = function getValidRuleInsertionIndex(container, index) {\n var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex;\n }\n\n return index;\n};\n\nvar createStyle = function createStyle() {\n var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n\n el.textContent = '\\n';\n return el;\n};\n\nvar DomRenderer =\n/*#__PURE__*/\nfunction () {\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n function DomRenderer(sheet) {\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.hasInsertedRules = false;\n this.cssRules = [];\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) sheets.add(sheet);\n this.sheet = sheet;\n\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n\n this.element = element || createStyle();\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n /**\n * Insert style element into render tree.\n */\n\n\n var _proto = DomRenderer.prototype;\n\n _proto.attach = function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n\n var deployed = Boolean(this.sheet && this.sheet.deployed);\n\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false;\n this.deploy();\n }\n }\n /**\n * Remove style element from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.sheet) return;\n var parentNode = this.element.parentNode;\n if (parentNode) parentNode.removeChild(this.element); // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n\n if (this.sheet.options.link) {\n this.cssRules = [];\n this.element.textContent = '\\n';\n }\n }\n /**\n * Inject CSS string into element.\n */\n ;\n\n _proto.deploy = function deploy() {\n var sheet = this.sheet;\n if (!sheet) return;\n\n if (sheet.options.link) {\n this.insertRules(sheet.rules);\n return;\n }\n\n this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n }\n /**\n * Insert RuleList into an element.\n */\n ;\n\n _proto.insertRules = function insertRules(rules, nativeParent) {\n for (var i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent);\n }\n }\n /**\n * Insert a rule into element.\n */\n ;\n\n _proto.insertRule = function insertRule(rule, index, nativeParent) {\n if (nativeParent === void 0) {\n nativeParent = this.element.sheet;\n }\n\n if (rule.rules) {\n var parent = rule;\n var latestNativeParent = nativeParent;\n\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n var _insertionIndex = getValidRuleInsertionIndex(nativeParent, index); // We need to render the container without children first.\n\n\n latestNativeParent = _insertRule(nativeParent, parent.toString({\n children: false\n }), _insertionIndex);\n\n if (latestNativeParent === false) {\n return false;\n }\n\n this.refCssRule(rule, _insertionIndex, latestNativeParent);\n }\n\n this.insertRules(parent.rules, latestNativeParent);\n return latestNativeParent;\n }\n\n var ruleStr = rule.toString();\n if (!ruleStr) return false;\n var insertionIndex = getValidRuleInsertionIndex(nativeParent, index);\n\n var nativeRule = _insertRule(nativeParent, ruleStr, insertionIndex);\n\n if (nativeRule === false) {\n return false;\n }\n\n this.hasInsertedRules = true;\n this.refCssRule(rule, insertionIndex, nativeRule);\n return nativeRule;\n };\n\n _proto.refCssRule = function refCssRule(rule, index, cssRule) {\n rule.renderable = cssRule; // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules.splice(index, 0, cssRule);\n }\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.deleteRule = function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return true;\n }\n /**\n * Get index of a CSS Rule.\n */\n ;\n\n _proto.indexOf = function indexOf(cssRule) {\n return this.cssRules.indexOf(cssRule);\n }\n /**\n * Generate a new CSS rule and replace the existing one.\n */\n ;\n\n _proto.replaceRule = function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n this.element.sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return this.insertRule(rule, index);\n }\n /**\n * Get all rules elements.\n */\n ;\n\n _proto.getRules = function getRules() {\n return this.element.sheet.cssRules;\n };\n\n return DomRenderer;\n}();\n\nvar instanceCounter = 0;\n\nvar Jss =\n/*#__PURE__*/\nfunction () {\n function Jss(options) {\n this.id = instanceCounter++;\n this.version = \"10.10.0\";\n this.plugins = new PluginsRegistry();\n this.options = {\n id: {\n minify: false\n },\n createGenerateId: createGenerateId,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n };\n this.generateId = createGenerateId({\n minify: false\n });\n\n for (var i = 0; i < plugins.length; i++) {\n this.plugins.use(plugins[i], {\n queue: 'internal'\n });\n }\n\n this.setup(options);\n }\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n\n\n var _proto = Jss.prototype;\n\n _proto.setup = function setup(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId;\n }\n\n if (options.id) {\n this.options.id = _extends({}, this.options.id, options.id);\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id);\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer;\n } // eslint-disable-next-line prefer-spread\n\n\n if (options.plugins) this.use.apply(this, options.plugins);\n return this;\n }\n /**\n * Create a Style Sheet.\n */\n ;\n\n _proto.createStyleSheet = function createStyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n index = _options.index;\n\n if (typeof index !== 'number') {\n index = sheets.index === 0 ? 0 : sheets.index + 1;\n }\n\n var sheet = new StyleSheet(styles, _extends({}, options, {\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n return sheet;\n }\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n ;\n\n _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n sheet.detach();\n sheets.remove(sheet);\n return this;\n }\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n ;\n\n _proto.createRule = function createRule$1(name, style, options) {\n if (style === void 0) {\n style = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n return this.createRule(undefined, name, style);\n }\n\n var ruleOptions = _extends({}, options, {\n name: name,\n jss: this,\n Renderer: this.options.Renderer\n });\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n\n var rule = createRule(name, style, ruleOptions);\n\n if (rule) this.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n ;\n\n _proto.use = function use() {\n var _this = this;\n\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n plugins.forEach(function (plugin) {\n _this.plugins.use(plugin);\n });\n return this;\n };\n\n return Jss;\n}();\n\nvar createJss = function createJss(options) {\n return new Jss(options);\n};\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n * Used in react-jss.\n */\n\nvar SheetsManager =\n/*#__PURE__*/\nfunction () {\n function SheetsManager() {\n this.length = 0;\n this.sheets = new WeakMap();\n }\n\n var _proto = SheetsManager.prototype;\n\n _proto.get = function get(key) {\n var entry = this.sheets.get(key);\n return entry && entry.sheet;\n };\n\n _proto.add = function add(key, sheet) {\n if (this.sheets.has(key)) return;\n this.length++;\n this.sheets.set(key, {\n sheet: sheet,\n refs: 0\n });\n };\n\n _proto.manage = function manage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach();\n }\n\n entry.refs++;\n return entry.sheet;\n }\n\n warning(false, \"[JSS] SheetsManager: can't find sheet to manage\");\n return undefined;\n };\n\n _proto.unmanage = function unmanage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--;\n if (entry.refs === 0) entry.sheet.detach();\n }\n } else {\n warning(false, \"SheetsManager: can't find sheet to unmanage\");\n }\n };\n\n _createClass(SheetsManager, [{\n key: \"size\",\n get: function get() {\n return this.length;\n }\n }]);\n\n return SheetsManager;\n}();\n\n/**\n* Export a constant indicating if this browser has CSSTOM support.\n* https://developers.google.com/web/updates/2018/03/cssom\n*/\nvar hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS;\n\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n var to = null;\n\n for (var key in styles) {\n var value = styles[key];\n var type = typeof value;\n\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n\n return to;\n}\n\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\nvar index = createJss();\n\nexport default index;\nexport { RuleList, SheetsManager, SheetsRegistry, createJss as create, createGenerateId, createRule, getDynamicStyles, hasCSSTOMSupport, sheets, toCssValue };\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getDisplayName } from '@material-ui/utils';\nexport default function mergeClasses() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var baseClasses = options.baseClasses,\n newClasses = options.newClasses,\n Component = options.Component;\n\n if (!newClasses) {\n return baseClasses;\n }\n\n var nextClasses = _extends({}, baseClasses);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof newClasses === 'string') {\n console.error([\"Material-UI: The value `\".concat(newClasses, \"` \") + \"provided to the classes prop of \".concat(getDisplayName(Component), \" is incorrect.\"), 'You might want to use the className prop instead.'].join('\\n'));\n return baseClasses;\n }\n }\n\n Object.keys(newClasses).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!baseClasses[key] && newClasses[key]) {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not implemented in \".concat(getDisplayName(Component), \".\"), \"You can only override one of the following: \".concat(Object.keys(baseClasses).join(','), \".\")].join('\\n'));\n }\n\n if (newClasses[key] && typeof newClasses[key] !== 'string') {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not valid for \".concat(getDisplayName(Component), \".\"), \"You need to provide a non empty string instead of: \".concat(newClasses[key], \".\")].join('\\n'));\n }\n }\n\n if (newClasses[key]) {\n nextClasses[key] = \"\".concat(baseClasses[key], \" \").concat(newClasses[key]);\n }\n });\n return nextClasses;\n}","// Used https://github.com/thinkloop/multi-key-cache as inspiration\nvar multiKeyStore = {\n set: function set(cache, key1, key2, value) {\n var subCache = cache.get(key1);\n\n if (!subCache) {\n subCache = new Map();\n cache.set(key1, subCache);\n }\n\n subCache.set(key2, value);\n },\n get: function get(cache, key1, key2) {\n var subCache = cache.get(key1);\n return subCache ? subCache.get(key2) : undefined;\n },\n delete: function _delete(cache, key1, key2) {\n var subCache = cache.get(key1);\n subCache.delete(key2);\n }\n};\nexport default multiKeyStore;","import nested from '../ThemeProvider/nested';\n/**\n * This is the list of the style rule name we use as drop in replacement for the built-in\n * pseudo classes (:checked, :disabled, :focused, etc.).\n *\n * Why do they exist in the first place?\n * These classes are used at a specificity of 2.\n * It allows them to override previously definied styles as well as\n * being untouched by simple user overrides.\n */\n\nvar pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected']; // Returns a function which generates unique class names based on counters.\n// When new generator function is created, rule counter is reset.\n// We need to reset the rule counter for SSR for each request.\n//\n// It's inspired by\n// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js\n\nexport default function createGenerateClassName() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$disableGloba = options.disableGlobal,\n disableGlobal = _options$disableGloba === void 0 ? false : _options$disableGloba,\n _options$productionPr = options.productionPrefix,\n productionPrefix = _options$productionPr === void 0 ? 'jss' : _options$productionPr,\n _options$seed = options.seed,\n seed = _options$seed === void 0 ? '' : _options$seed;\n var seedPrefix = seed === '' ? '' : \"\".concat(seed, \"-\");\n var ruleCounter = 0;\n\n var getNextCounterId = function getNextCounterId() {\n ruleCounter += 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (ruleCounter >= 1e10) {\n console.warn(['Material-UI: You might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join(''));\n }\n }\n\n return ruleCounter;\n };\n\n return function (rule, styleSheet) {\n var name = styleSheet.options.name; // Is a global static MUI style?\n\n if (name && name.indexOf('Mui') === 0 && !styleSheet.options.link && !disableGlobal) {\n // We can use a shorthand class name, we never use the keys to style the components.\n if (pseudoClasses.indexOf(rule.key) !== -1) {\n return \"Mui-\".concat(rule.key);\n }\n\n var prefix = \"\".concat(seedPrefix).concat(name, \"-\").concat(rule.key);\n\n if (!styleSheet.options.theme[nested] || seed !== '') {\n return prefix;\n }\n\n return \"\".concat(prefix, \"-\").concat(getNextCounterId());\n }\n\n if (process.env.NODE_ENV === 'production') {\n return \"\".concat(seedPrefix).concat(productionPrefix).concat(getNextCounterId());\n }\n\n var suffix = \"\".concat(rule.key, \"-\").concat(getNextCounterId()); // Help with debuggability.\n\n if (styleSheet.options.classNamePrefix) {\n return \"\".concat(seedPrefix).concat(styleSheet.options.classNamePrefix, \"-\").concat(suffix);\n }\n\n return \"\".concat(seedPrefix).concat(suffix);\n };\n}","import warning from 'tiny-warning';\nimport { createRule } from 'jss';\n\nvar now = Date.now();\nvar fnValuesNs = \"fnValues\" + now;\nvar fnRuleNs = \"fnStyle\" + ++now;\n\nvar functionPlugin = function functionPlugin() {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (typeof decl !== 'function') return null;\n var rule = createRule(name, {}, options);\n rule[fnRuleNs] = decl;\n return rule;\n },\n onProcessStyle: function onProcessStyle(style, rule) {\n // We need to extract function values from the declaration, so that we can keep core unaware of them.\n // We need to do that only once.\n // We don't need to extract functions on each style update, since this can happen only once.\n // We don't support function values inside of function rules.\n if (fnValuesNs in rule || fnRuleNs in rule) return style;\n var fnValues = {};\n\n for (var prop in style) {\n var value = style[prop];\n if (typeof value !== 'function') continue;\n delete style[prop];\n fnValues[prop] = value;\n }\n\n rule[fnValuesNs] = fnValues;\n return style;\n },\n onUpdate: function onUpdate(data, rule, sheet, options) {\n var styleRule = rule;\n var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object\n // will be returned from that function.\n\n if (fnRule) {\n // Empty object will remove all currently defined props\n // in case function rule returns a falsy value.\n styleRule.style = fnRule(data) || {};\n\n if (process.env.NODE_ENV === 'development') {\n for (var prop in styleRule.style) {\n if (typeof styleRule.style[prop] === 'function') {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Function values inside function rules are not supported.') : void 0;\n break;\n }\n }\n }\n }\n\n var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.\n\n if (fnValues) {\n for (var _prop in fnValues) {\n styleRule.prop(_prop, fnValues[_prop](data), options);\n }\n }\n }\n };\n};\n\nexport default functionPlugin;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { RuleList } from 'jss';\n\nvar at = '@global';\nvar atPrefix = '@global ';\n\nvar GlobalContainerRule =\n/*#__PURE__*/\nfunction () {\n function GlobalContainerRule(key, styles, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var selector in styles) {\n this.rules.add(selector, styles[selector]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = GlobalContainerRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (rule) this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */\n ;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return GlobalContainerRule;\n}();\n\nvar GlobalPrefixedRule =\n/*#__PURE__*/\nfunction () {\n function GlobalPrefixedRule(key, style, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n var selector = key.substr(atPrefix.length);\n this.rule = options.jss.createRule(selector, style, _extends({}, options, {\n parent: this\n }));\n }\n\n var _proto2 = GlobalPrefixedRule.prototype;\n\n _proto2.toString = function toString(options) {\n return this.rule ? this.rule.toString(options) : '';\n };\n\n return GlobalPrefixedRule;\n}();\n\nvar separatorRegExp = /\\s*,\\s*/g;\n\nfunction addScope(selector, scope) {\n var parts = selector.split(separatorRegExp);\n var scoped = '';\n\n for (var i = 0; i < parts.length; i++) {\n scoped += scope + \" \" + parts[i].trim();\n if (parts[i + 1]) scoped += ', ';\n }\n\n return scoped;\n}\n\nfunction handleNestedGlobalContainerRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n var rules = style ? style[at] : null;\n if (!rules) return;\n\n for (var name in rules) {\n sheet.addRule(name, rules[name], _extends({}, options, {\n selector: addScope(name, rule.selector)\n }));\n }\n\n delete style[at];\n}\n\nfunction handlePrefixedGlobalRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n\n for (var prop in style) {\n if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;\n var selector = addScope(prop.substr(at.length), rule.selector);\n sheet.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n delete style[prop];\n }\n}\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\n\nfunction jssGlobal() {\n function onCreateRule(name, styles, options) {\n if (!name) return null;\n\n if (name === at) {\n return new GlobalContainerRule(name, styles, options);\n }\n\n if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {\n return new GlobalPrefixedRule(name, styles, options);\n }\n\n var parent = options.parent;\n\n if (parent) {\n if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {\n options.scoped = false;\n }\n }\n\n if (!options.selector && options.scoped === false) {\n options.selector = name;\n }\n\n return null;\n }\n\n function onProcessRule(rule, sheet) {\n if (rule.type !== 'style' || !sheet) return;\n handleNestedGlobalContainerRule(rule, sheet);\n handlePrefixedGlobalRule(rule, sheet);\n }\n\n return {\n onCreateRule: onCreateRule,\n onProcessRule: onProcessRule\n };\n}\n\nexport default jssGlobal;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\n\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n\n if (rule) {\n return rule.selector;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : void 0;\n return key;\n };\n }\n\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n var result = '';\n\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n\n return result;\n }\n\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends({}, prevOptions, {\n index: prevOptions.index + 1\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n var options = _extends({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n\n });\n\n delete options.name;\n return options;\n }\n\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp, replaceRef);\n var name = styleRule.key + \"-\" + prop;\n\n if ('replaceRule' in container) {\n // for backward compatibility\n container.replaceRule(name, style[prop], _extends({}, options, {\n selector: selector\n }));\n } else {\n container.addRule(name, style[prop], _extends({}, options, {\n selector: selector\n }));\n }\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options).addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n\n delete style[prop];\n }\n\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssNested;\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","import hyphenate from 'hyphenate-style-name';\n\n/**\n * Convert camel cased property names to dash separated.\n */\n\nfunction convertCase(style) {\n var converted = {};\n\n for (var prop in style) {\n var key = prop.indexOf('--') === 0 ? prop : hyphenate(prop);\n converted[key] = style[prop];\n }\n\n if (style.fallbacks) {\n if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n }\n\n return converted;\n}\n/**\n * Allow camel cased property names by converting them back to dasherized.\n */\n\n\nfunction camelCase() {\n function onProcessStyle(style) {\n if (Array.isArray(style)) {\n // Handle rules like @font-face, which can have multiple styles in an array\n for (var index = 0; index < style.length; index++) {\n style[index] = convertCase(style[index]);\n }\n\n return style;\n }\n\n return convertCase(style);\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop.indexOf('--') === 0) {\n return value;\n }\n\n var hyphenatedProp = hyphenate(prop); // There was no camel case in place\n\n if (prop === hyphenatedProp) return value;\n rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default camelCase;\n","import { hasCSSTOMSupport } from 'jss';\n\nvar px = hasCSSTOMSupport && CSS ? CSS.px : 'px';\nvar ms = hasCSSTOMSupport && CSS ? CSS.ms : 'ms';\nvar percent = hasCSSTOMSupport && CSS ? CSS.percent : '%';\n/**\n * Generated jss-plugin-default-unit CSS property units\n */\n\nvar defaultUnits = {\n // Animation properties\n 'animation-delay': ms,\n 'animation-duration': ms,\n // Background properties\n 'background-position': px,\n 'background-position-x': px,\n 'background-position-y': px,\n 'background-size': px,\n // Border Properties\n border: px,\n 'border-bottom': px,\n 'border-bottom-left-radius': px,\n 'border-bottom-right-radius': px,\n 'border-bottom-width': px,\n 'border-left': px,\n 'border-left-width': px,\n 'border-radius': px,\n 'border-right': px,\n 'border-right-width': px,\n 'border-top': px,\n 'border-top-left-radius': px,\n 'border-top-right-radius': px,\n 'border-top-width': px,\n 'border-width': px,\n 'border-block': px,\n 'border-block-end': px,\n 'border-block-end-width': px,\n 'border-block-start': px,\n 'border-block-start-width': px,\n 'border-block-width': px,\n 'border-inline': px,\n 'border-inline-end': px,\n 'border-inline-end-width': px,\n 'border-inline-start': px,\n 'border-inline-start-width': px,\n 'border-inline-width': px,\n 'border-start-start-radius': px,\n 'border-start-end-radius': px,\n 'border-end-start-radius': px,\n 'border-end-end-radius': px,\n // Margin properties\n margin: px,\n 'margin-bottom': px,\n 'margin-left': px,\n 'margin-right': px,\n 'margin-top': px,\n 'margin-block': px,\n 'margin-block-end': px,\n 'margin-block-start': px,\n 'margin-inline': px,\n 'margin-inline-end': px,\n 'margin-inline-start': px,\n // Padding properties\n padding: px,\n 'padding-bottom': px,\n 'padding-left': px,\n 'padding-right': px,\n 'padding-top': px,\n 'padding-block': px,\n 'padding-block-end': px,\n 'padding-block-start': px,\n 'padding-inline': px,\n 'padding-inline-end': px,\n 'padding-inline-start': px,\n // Mask properties\n 'mask-position-x': px,\n 'mask-position-y': px,\n 'mask-size': px,\n // Width and height properties\n height: px,\n width: px,\n 'min-height': px,\n 'max-height': px,\n 'min-width': px,\n 'max-width': px,\n // Position properties\n bottom: px,\n left: px,\n top: px,\n right: px,\n inset: px,\n 'inset-block': px,\n 'inset-block-end': px,\n 'inset-block-start': px,\n 'inset-inline': px,\n 'inset-inline-end': px,\n 'inset-inline-start': px,\n // Shadow properties\n 'box-shadow': px,\n 'text-shadow': px,\n // Column properties\n 'column-gap': px,\n 'column-rule': px,\n 'column-rule-width': px,\n 'column-width': px,\n // Font and text properties\n 'font-size': px,\n 'font-size-delta': px,\n 'letter-spacing': px,\n 'text-decoration-thickness': px,\n 'text-indent': px,\n 'text-stroke': px,\n 'text-stroke-width': px,\n 'word-spacing': px,\n // Motion properties\n motion: px,\n 'motion-offset': px,\n // Outline properties\n outline: px,\n 'outline-offset': px,\n 'outline-width': px,\n // Perspective properties\n perspective: px,\n 'perspective-origin-x': percent,\n 'perspective-origin-y': percent,\n // Transform properties\n 'transform-origin': percent,\n 'transform-origin-x': percent,\n 'transform-origin-y': percent,\n 'transform-origin-z': percent,\n // Transition properties\n 'transition-delay': ms,\n 'transition-duration': ms,\n // Alignment properties\n 'vertical-align': px,\n 'flex-basis': px,\n // Some random properties\n 'shape-margin': px,\n size: px,\n gap: px,\n // Grid properties\n grid: px,\n 'grid-gap': px,\n 'row-gap': px,\n 'grid-row-gap': px,\n 'grid-column-gap': px,\n 'grid-template-rows': px,\n 'grid-template-columns': px,\n 'grid-auto-rows': px,\n 'grid-auto-columns': px,\n // Not existing properties.\n // Used to avoid issues with jss-plugin-expand integration.\n 'box-shadow-x': px,\n 'box-shadow-y': px,\n 'box-shadow-blur': px,\n 'box-shadow-spread': px,\n 'font-line-height': px,\n 'text-shadow-x': px,\n 'text-shadow-y': px,\n 'text-shadow-blur': px\n};\n\n/**\n * Clones the object and adds a camel cased property version.\n */\n\nfunction addCamelCasedVersion(obj) {\n var regExp = /(-[a-z])/g;\n\n var replace = function replace(str) {\n return str[1].toUpperCase();\n };\n\n var newObj = {};\n\n for (var key in obj) {\n newObj[key] = obj[key];\n newObj[key.replace(regExp, replace)] = obj[key];\n }\n\n return newObj;\n}\n\nvar units = addCamelCasedVersion(defaultUnits);\n/**\n * Recursive deep style passing function\n */\n\nfunction iterate(prop, value, options) {\n if (value == null) return value;\n\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i] = iterate(prop, value[i], options);\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n for (var innerProp in value) {\n value[innerProp] = iterate(innerProp, value[innerProp], options);\n }\n } else {\n for (var _innerProp in value) {\n value[_innerProp] = iterate(prop + \"-\" + _innerProp, value[_innerProp], options);\n }\n } // eslint-disable-next-line no-restricted-globals\n\n } else if (typeof value === 'number' && isNaN(value) === false) {\n var unit = options[prop] || units[prop]; // Add the unit if available, except for the special case of 0px.\n\n if (unit && !(value === 0 && unit === px)) {\n return typeof unit === 'function' ? unit(value).toString() : \"\" + value + unit;\n }\n\n return value.toString();\n }\n\n return value;\n}\n/**\n * Add unit to numeric values.\n */\n\n\nfunction defaultUnit(options) {\n if (options === void 0) {\n options = {};\n }\n\n var camelCasedOptions = addCamelCasedVersion(options);\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n\n for (var prop in style) {\n style[prop] = iterate(prop, style[prop], camelCasedOptions);\n }\n\n return style;\n }\n\n function onChangeValue(value, prop) {\n return iterate(prop, value, camelCasedOptions);\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default defaultUnit;\n","import isInBrowser from 'is-in-browser';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\n\n// Export javascript style and css style vendor prefixes.\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (isInBrowser) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n\n var _document$createEleme = document.createElement('p'),\n style = _document$createEleme.style;\n\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n } // Correctly detect the Edge browser.\n\n\n if (js === 'Webkit' && 'msHyphens' in style) {\n js = 'ms';\n css = jsCssMap.ms;\n browser = 'edge';\n } // Correctly detect the Safari browser.\n\n\n if (js === 'Webkit' && '-apple-trailing-word' in style) {\n vendor = 'apple';\n }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\n\nvar prefix = {\n js: js,\n css: css,\n vendor: vendor,\n browser: browser,\n isTouch: isTouch\n};\n\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n // https://caniuse.com/#search=keyframes\n\n if (prefix.js === 'ms') return key;\n return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n}\n\n// https://caniuse.com/#search=appearance\n\nvar appearence = {\n noPrefill: ['appearance'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'appearance') return false;\n if (prefix.js === 'ms') return \"-webkit-\" + prop;\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n noPrefill: ['color-adjust'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'color-adjust') return false;\n if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n return prop;\n }\n};\n\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n}\n\n// but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\nvar mask = {\n noPrefill: ['mask'],\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^mask/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var longhand = 'mask-image';\n\n if (camelize(longhand) in style) {\n return prop;\n }\n\n if (prefix.js + pascalize(longhand) in style) {\n return prefix.css + prop;\n }\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n noPrefill: ['text-orientation'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'text-orientation') return false;\n\n if (prefix.vendor === 'apple' && !prefix.isTouch) {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=transform\n\nvar transform = {\n noPrefill: ['transform'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transform') return false;\n\n if (options.transform) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=transition\n\nvar transition = {\n noPrefill: ['transition'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transition') return false;\n\n if (options.transition) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n noPrefill: ['writing-mode'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'writing-mode') return false;\n\n if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=user-select\n\nvar userSelect = {\n noPrefill: ['user-select'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'user-select') return false;\n\n if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^break-/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var jsProp = \"WebkitColumn\" + pascalize(prop);\n return jsProp in style ? prefix.css + \"column-\" + prop : false;\n }\n\n if (prefix.js === 'Moz') {\n var _jsProp = \"page\" + pascalize(prop);\n\n return _jsProp in style ? \"page-\" + prop : false;\n }\n\n return false;\n }\n};\n\n// See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n if (prefix.js === 'Moz') return prop;\n var newProp = prop.replace('-inline', '');\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\n// Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n return camelize(prop) in style ? prop : false;\n }\n};\n\nvar prefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n if (prop[0] === '-' && prop[1] === '-') return prop;\n if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n return false;\n }\n};\n\n// https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n supportedProperty: function supportedProperty(prop) {\n if (prop.substring(0, 11) !== 'scroll-snap') return false;\n\n if (prefix.js === 'ms') {\n return \"\" + prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'overscroll-behavior') return false;\n\n if (prefix.js === 'ms') {\n return prefix.css + \"scroll-chaining\";\n }\n\n return prop;\n }\n};\n\nvar propMap = {\n 'flex-grow': 'flex-positive',\n 'flex-shrink': 'flex-negative',\n 'flex-basis': 'flex-preferred-size',\n 'justify-content': 'flex-pack',\n order: 'flex-order',\n 'align-items': 'flex-align',\n 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n supportedProperty: function supportedProperty(prop, style) {\n var newProp = propMap[prop];\n if (!newProp) return false;\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\nvar propMap$1 = {\n flex: 'box-flex',\n 'flex-grow': 'box-flex',\n 'flex-direction': ['box-orient', 'box-direction'],\n order: 'box-ordinal-group',\n 'align-items': 'box-align',\n 'flex-flow': ['box-orient', 'box-direction'],\n 'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\n\nvar prefixCss = function prefixCss(p) {\n return prefix.css + p;\n}; // Support old flex spec from 2009.\n\n\nvar flex2009 = {\n supportedProperty: function supportedProperty(prop, style, _ref) {\n var multiple = _ref.multiple;\n\n if (propKeys.indexOf(prop) > -1) {\n var newProp = propMap$1[prop];\n\n if (!Array.isArray(newProp)) {\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n\n if (!multiple) return false;\n\n for (var i = 0; i < newProp.length; i++) {\n if (!(prefix.js + pascalize(newProp[0]) in style)) {\n return false;\n }\n }\n\n return newProp.map(prefixCss);\n }\n\n return false;\n }\n};\n\n// plugins = [\n// ...plugins,\n// breakPropsOld,\n// inlineLogicalOld,\n// unprefixed,\n// prefixed,\n// scrollSnap,\n// flex2012,\n// flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins.filter(function (p) {\n return p.supportedProperty;\n}).map(function (p) {\n return p.supportedProperty;\n});\nvar noPrefill = plugins.filter(function (p) {\n return p.noPrefill;\n}).reduce(function (a, p) {\n a.push.apply(a, _toConsumableArray(p.noPrefill));\n return a;\n}, []);\n\nvar el;\nvar cache = {};\n\nif (isInBrowser) {\n el = document.createElement('p'); // We test every property on vendor prefix requirement.\n // Once tested, result is cached. It gives us up to 70% perf boost.\n // http://jsperf.com/element-style-object-access-vs-plain-object\n //\n // Prefill cache with known css properties to reduce amount of\n // properties we need to feature test at runtime.\n // http://davidwalsh.name/vendor-prefix\n\n var computed = window.getComputedStyle(document.documentElement, '');\n\n for (var key$1 in computed) {\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];\n } // Properties that cannot be correctly detected using the\n // cache prefill method.\n\n\n noPrefill.forEach(function (x) {\n return delete cache[x];\n });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\n\nfunction supportedProperty(prop, options) {\n if (options === void 0) {\n options = {};\n }\n\n // For server-side rendering.\n if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {\n return cache[prop];\n } // Check if 'transition' or 'transform' natively supported in browser.\n\n\n if (prop === 'transition' || prop === 'transform') {\n options[prop] = prop in el.style;\n } // Find a plugin for current prefix property.\n\n\n for (var i = 0; i < propertyDetectors.length; i++) {\n cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n if (cache[prop]) break;\n } // Reset styles for current property.\n // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n\n try {\n el.style[prop] = '';\n } catch (err) {\n return false;\n }\n\n return cache[prop];\n}\n\nvar cache$1 = {};\nvar transitionProperties = {\n transition: 1,\n 'transition-property': 1,\n '-webkit-transition': 1,\n '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n if (p1 === 'var') return 'var';\n if (p1 === 'all') return 'all';\n if (p2 === 'all') return ', all';\n var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n if (!prefixedValue) return p1 || p2;\n return prefixedValue;\n}\n\nif (isInBrowser) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n // For server-side rendering.\n var prefixedValue = value;\n if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n // eslint-disable-next-line no-restricted-globals\n\n if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n return prefixedValue;\n } // Create cache key for current value.\n\n\n var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {\n return cache$1[cacheKey];\n } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n\n try {\n // Test value as it is.\n el$1.style[property] = prefixedValue;\n } catch (err) {\n // Return false if value not supported.\n cache$1[cacheKey] = false;\n return false;\n } // If 'transition' or 'transition-property' property.\n\n\n if (transitionProperties[property]) {\n prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n } else if (el$1.style[property] === '') {\n // Value with a vendor prefix.\n prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n if (el$1.style[property] === '') {\n cache$1[cacheKey] = false;\n return false;\n }\n } // Reset styles for current property.\n\n\n el$1.style[property] = ''; // Write current value to cache.\n\n cache$1[cacheKey] = prefixedValue;\n return cache$1[cacheKey];\n}\n\nexport { prefix, supportedKeyframes, supportedProperty, supportedValue };\n","import { supportedKeyframes, supportedValue, supportedProperty } from 'css-vendor';\nimport { toCssValue } from 'jss';\n\n/**\n * Add vendor prefix to a property name when needed.\n */\n\nfunction jssVendorPrefixer() {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n var atRule = rule;\n atRule.at = supportedKeyframes(atRule.at);\n }\n }\n\n function prefixStyle(style) {\n for (var prop in style) {\n var value = style[prop];\n\n if (prop === 'fallbacks' && Array.isArray(value)) {\n style[prop] = value.map(prefixStyle);\n continue;\n }\n\n var changeProp = false;\n var supportedProp = supportedProperty(prop);\n if (supportedProp && supportedProp !== prop) changeProp = true;\n var changeValue = false;\n var supportedValue$1 = supportedValue(supportedProp, toCssValue(value));\n if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;\n\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop];\n style[supportedProp || prop] = supportedValue$1 || value;\n }\n }\n\n return style;\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n return prefixStyle(style);\n }\n\n function onChangeValue(value, prop) {\n return supportedValue(prop, toCssValue(value)) || value;\n }\n\n return {\n onProcessRule: onProcessRule,\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default jssVendorPrefixer;\n","/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n var sort = function sort(prop0, prop1) {\n if (prop0.length === prop1.length) {\n return prop0 > prop1 ? 1 : -1;\n }\n\n return prop0.length - prop1.length;\n };\n\n return {\n onProcessStyle: function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n var newStyle = {};\n var props = Object.keys(style).sort(sort);\n\n for (var i = 0; i < props.length; i++) {\n newStyle[props[i]] = style[props[i]];\n }\n\n return newStyle;\n }\n };\n}\n\nexport default jssPropsSort;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@material-ui/utils';\nimport createGenerateClassName from '../createGenerateClassName';\nimport { create } from 'jss';\nimport jssPreset from '../jssPreset'; // Default JSS instance.\n\nvar jss = create(jssPreset()); // Use a singleton or the provided one by the context.\n//\n// The counter-based approach doesn't tolerate any mistake.\n// It's much safer to use the same counter everywhere.\n\nvar generateClassName = createGenerateClassName(); // Exported for test purposes\n\nexport var sheetsManager = new Map();\nvar defaultOptions = {\n disableGeneration: false,\n generateClassName: generateClassName,\n jss: jss,\n sheetsCache: null,\n sheetsManager: sheetsManager,\n sheetsRegistry: null\n};\nexport var StylesContext = React.createContext(defaultOptions);\n\nif (process.env.NODE_ENV !== 'production') {\n StylesContext.displayName = 'StylesContext';\n}\n\nvar injectFirstNode;\nexport default function StylesProvider(props) {\n var children = props.children,\n _props$injectFirst = props.injectFirst,\n injectFirst = _props$injectFirst === void 0 ? false : _props$injectFirst,\n _props$disableGenerat = props.disableGeneration,\n disableGeneration = _props$disableGenerat === void 0 ? false : _props$disableGenerat,\n localOptions = _objectWithoutProperties(props, [\"children\", \"injectFirst\", \"disableGeneration\"]);\n\n var outerOptions = React.useContext(StylesContext);\n\n var context = _extends({}, outerOptions, {\n disableGeneration: disableGeneration\n }, localOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window === 'undefined' && !context.sheetsManager) {\n console.error('Material-UI: You need to use the ServerStyleSheets API when rendering on the server.');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (context.jss.options.insertionPoint && injectFirst) {\n console.error('Material-UI: You cannot use a custom insertionPoint and at the same time.');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (injectFirst && localOptions.jss) {\n console.error('Material-UI: You cannot use the jss and injectFirst props at the same time.');\n }\n }\n\n if (!context.jss.options.insertionPoint && injectFirst && typeof window !== 'undefined') {\n if (!injectFirstNode) {\n var head = document.head;\n injectFirstNode = document.createComment('mui-inject-first');\n head.insertBefore(injectFirstNode, head.firstChild);\n }\n\n context.jss = create({\n plugins: jssPreset().plugins,\n insertionPoint: injectFirstNode\n });\n }\n\n return /*#__PURE__*/React.createElement(StylesContext.Provider, {\n value: context\n }, children);\n}\nprocess.env.NODE_ENV !== \"production\" ? StylesProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node.isRequired,\n\n /**\n * You can disable the generation of the styles with this option.\n * It can be useful when traversing the React tree outside of the HTML\n * rendering step on the server.\n * Let's say you are using react-apollo to extract all\n * the queries made by the interface server-side - you can significantly speed up the traversal with this prop.\n */\n disableGeneration: PropTypes.bool,\n\n /**\n * JSS's class name generator.\n */\n generateClassName: PropTypes.func,\n\n /**\n * By default, the styles are injected last in the element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override Material-UI's styles, set this prop.\n */\n injectFirst: PropTypes.bool,\n\n /**\n * JSS's instance.\n */\n jss: PropTypes.object,\n\n /**\n * @ignore\n */\n serverGenerateClassName: PropTypes.func,\n\n /**\n * @ignore\n *\n * Beta feature.\n *\n * Cache for the sheets.\n */\n sheetsCache: PropTypes.object,\n\n /**\n * @ignore\n *\n * The sheetsManager is used to deduplicate style sheet injection in the page.\n * It's deduplicating using the (theme, styles) couple.\n * On the server, you should provide a new instance for each request.\n */\n sheetsManager: PropTypes.object,\n\n /**\n * @ignore\n *\n * Collect the sheets.\n */\n sheetsRegistry: PropTypes.object\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? StylesProvider.propTypes = exactProp(StylesProvider.propTypes) : void 0;\n}","import functions from 'jss-plugin-rule-value-function';\nimport global from 'jss-plugin-global';\nimport nested from 'jss-plugin-nested';\nimport camelCase from 'jss-plugin-camel-case';\nimport defaultUnit from 'jss-plugin-default-unit';\nimport vendorPrefixer from 'jss-plugin-vendor-prefixer';\nimport propsSort from 'jss-plugin-props-sort'; // Subset of jss-preset-default with only the plugins the Material-UI components are using.\n\nexport default function jssPreset() {\n return {\n plugins: [functions(), global(), nested(), camelCase(), defaultUnit(), // Disable the vendor prefixer server-side, it does nothing.\n // This way, we can get a performance boost.\n // In the documentation, we are using `autoprefixer` to solve this problem.\n typeof window === 'undefined' ? null : vendorPrefixer(), propsSort()]\n };\n}","/* eslint-disable import/prefer-default-export */\n// Global index counter to preserve source order.\n// We create the style sheet during the creation of the component,\n// children are handled after the parents, so the order of style elements would be parent->child.\n// It is a problem though when a parent passes a className\n// which needs to override any child's styles.\n// StyleSheet of the child has a higher specificity, because of the source order.\n// So our solution is to render sheets them in the reverse order child->sheet, so\n// that parent has a higher specificity.\nvar indexCounter = -1e9;\nexport function increment() {\n indexCounter += 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (indexCounter >= 0) {\n console.warn(['Material-UI: You might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join('\\n'));\n }\n }\n\n return indexCounter;\n}","// We use the same empty object to ref count the styles that don't need a theme object.\nvar noopTheme = {};\nexport default noopTheme;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport { getDynamicStyles } from 'jss';\nimport mergeClasses from '../mergeClasses';\nimport multiKeyStore from './multiKeyStore';\nimport useTheme from '../useTheme';\nimport { StylesContext } from '../StylesProvider';\nimport { increment } from './indexCounter';\nimport getStylesCreator from '../getStylesCreator';\nimport noopTheme from '../getStylesCreator/noopTheme';\n\nfunction getClasses(_ref, classes, Component) {\n var state = _ref.state,\n stylesOptions = _ref.stylesOptions;\n\n if (stylesOptions.disableGeneration) {\n return classes || {};\n }\n\n if (!state.cacheClasses) {\n state.cacheClasses = {\n // Cache for the finalized classes value.\n value: null,\n // Cache for the last used classes prop pointer.\n lastProp: null,\n // Cache for the last used rendered classes pointer.\n lastJSS: {}\n };\n } // Tracks if either the rendered classes or classes prop has changed,\n // requiring the generation of a new finalized classes object.\n\n\n var generate = false;\n\n if (state.classes !== state.cacheClasses.lastJSS) {\n state.cacheClasses.lastJSS = state.classes;\n generate = true;\n }\n\n if (classes !== state.cacheClasses.lastProp) {\n state.cacheClasses.lastProp = classes;\n generate = true;\n }\n\n if (generate) {\n state.cacheClasses.value = mergeClasses({\n baseClasses: state.cacheClasses.lastJSS,\n newClasses: classes,\n Component: Component\n });\n }\n\n return state.cacheClasses.value;\n}\n\nfunction attach(_ref2, props) {\n var state = _ref2.state,\n theme = _ref2.theme,\n stylesOptions = _ref2.stylesOptions,\n stylesCreator = _ref2.stylesCreator,\n name = _ref2.name;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n\n if (!sheetManager) {\n sheetManager = {\n refs: 0,\n staticSheet: null,\n dynamicStyles: null\n };\n multiKeyStore.set(stylesOptions.sheetsManager, stylesCreator, theme, sheetManager);\n }\n\n var options = _extends({}, stylesCreator.options, stylesOptions, {\n theme: theme,\n flip: typeof stylesOptions.flip === 'boolean' ? stylesOptions.flip : theme.direction === 'rtl'\n });\n\n options.generateId = options.serverGenerateClassName || options.generateClassName;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n var staticSheet;\n\n if (stylesOptions.sheetsCache) {\n staticSheet = multiKeyStore.get(stylesOptions.sheetsCache, stylesCreator, theme);\n }\n\n var styles = stylesCreator.create(theme, name);\n\n if (!staticSheet) {\n staticSheet = stylesOptions.jss.createStyleSheet(styles, _extends({\n link: false\n }, options));\n staticSheet.attach();\n\n if (stylesOptions.sheetsCache) {\n multiKeyStore.set(stylesOptions.sheetsCache, stylesCreator, theme, staticSheet);\n }\n }\n\n if (sheetsRegistry) {\n sheetsRegistry.add(staticSheet);\n }\n\n sheetManager.staticSheet = staticSheet;\n sheetManager.dynamicStyles = getDynamicStyles(styles);\n }\n\n if (sheetManager.dynamicStyles) {\n var dynamicSheet = stylesOptions.jss.createStyleSheet(sheetManager.dynamicStyles, _extends({\n link: true\n }, options));\n dynamicSheet.update(props);\n dynamicSheet.attach();\n state.dynamicSheet = dynamicSheet;\n state.classes = mergeClasses({\n baseClasses: sheetManager.staticSheet.classes,\n newClasses: dynamicSheet.classes\n });\n\n if (sheetsRegistry) {\n sheetsRegistry.add(dynamicSheet);\n }\n } else {\n state.classes = sheetManager.staticSheet.classes;\n }\n\n sheetManager.refs += 1;\n}\n\nfunction update(_ref3, props) {\n var state = _ref3.state;\n\n if (state.dynamicSheet) {\n state.dynamicSheet.update(props);\n }\n}\n\nfunction detach(_ref4) {\n var state = _ref4.state,\n theme = _ref4.theme,\n stylesOptions = _ref4.stylesOptions,\n stylesCreator = _ref4.stylesCreator;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n sheetManager.refs -= 1;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n multiKeyStore.delete(stylesOptions.sheetsManager, stylesCreator, theme);\n stylesOptions.jss.removeStyleSheet(sheetManager.staticSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(sheetManager.staticSheet);\n }\n }\n\n if (state.dynamicSheet) {\n stylesOptions.jss.removeStyleSheet(state.dynamicSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(state.dynamicSheet);\n }\n }\n}\n\nfunction useSynchronousEffect(func, values) {\n var key = React.useRef([]);\n var output; // Store \"generation\" key. Just returns a new object every time\n\n var currentKey = React.useMemo(function () {\n return {};\n }, values); // eslint-disable-line react-hooks/exhaustive-deps\n // \"the first render\", or \"memo dropped the value\"\n\n if (key.current !== currentKey) {\n key.current = currentKey;\n output = func();\n }\n\n React.useEffect(function () {\n return function () {\n if (output) {\n output();\n }\n };\n }, [currentKey] // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n\nexport default function makeStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var name = options.name,\n classNamePrefixOption = options.classNamePrefix,\n Component = options.Component,\n _options$defaultTheme = options.defaultTheme,\n defaultTheme = _options$defaultTheme === void 0 ? noopTheme : _options$defaultTheme,\n stylesOptions2 = _objectWithoutProperties(options, [\"name\", \"classNamePrefix\", \"Component\", \"defaultTheme\"]);\n\n var stylesCreator = getStylesCreator(stylesOrCreator);\n var classNamePrefix = name || classNamePrefixOption || 'makeStyles';\n stylesCreator.options = {\n index: increment(),\n name: name,\n meta: classNamePrefix,\n classNamePrefix: classNamePrefix\n };\n\n var useStyles = function useStyles() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var theme = useTheme() || defaultTheme;\n\n var stylesOptions = _extends({}, React.useContext(StylesContext), stylesOptions2);\n\n var instance = React.useRef();\n var shouldUpdate = React.useRef();\n useSynchronousEffect(function () {\n var current = {\n name: name,\n state: {},\n stylesCreator: stylesCreator,\n stylesOptions: stylesOptions,\n theme: theme\n };\n attach(current, props);\n shouldUpdate.current = false;\n instance.current = current;\n return function () {\n detach(current);\n };\n }, [theme, stylesCreator]);\n React.useEffect(function () {\n if (shouldUpdate.current) {\n update(instance.current, props);\n }\n\n shouldUpdate.current = true;\n });\n var classes = getClasses(instance.current, props.classes, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(classes);\n }\n\n return classes;\n };\n\n return useStyles;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { deepmerge } from '@material-ui/utils';\nimport noopTheme from './noopTheme';\nexport default function getStylesCreator(stylesOrCreator) {\n var themingEnabled = typeof stylesOrCreator === 'function';\n\n if (process.env.NODE_ENV !== 'production') {\n if (_typeof(stylesOrCreator) !== 'object' && !themingEnabled) {\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You need to provide a function generating the styles or a styles object.'].join('\\n'));\n }\n }\n\n return {\n create: function create(theme, name) {\n var styles;\n\n try {\n styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n if (themingEnabled === true && theme === noopTheme) {\n // TODO: prepend error message/name instead\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n\n throw err;\n }\n\n if (!name || !theme.overrides || !theme.overrides[name]) {\n return styles;\n }\n\n var overrides = theme.overrides[name];\n\n var stylesWithOverrides = _extends({}, styles);\n\n Object.keys(overrides).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!stylesWithOverrides[key]) {\n console.warn(['Material-UI: You are trying to override a style that does not exist.', \"Fix the `\".concat(key, \"` key of `theme.overrides.\").concat(name, \"`.\")].join('\\n'));\n }\n }\n\n stylesWithOverrides[key] = deepmerge(stylesWithOverrides[key], overrides[key]);\n });\n return stylesWithOverrides;\n },\n options: {}\n };\n}","import React from 'react';\nvar ThemeContext = React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\n\nexport default ThemeContext;","import React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n var theme = React.useContext(ThemeContext);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport PropTypes from 'prop-types';\nimport merge from './merge'; // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nvar values = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n};\nvar defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: function up(key) {\n return \"@media (min-width:\".concat(values[key], \"px)\");\n }\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n if (process.env.NODE_ENV !== 'production') {\n if (!props.theme) {\n console.error('Material-UI: You are calling a style function without a theme value.');\n }\n }\n\n if (Array.isArray(propValue)) {\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n return propValue.reduce(function (acc, item, index) {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n\n if (_typeof(propValue) === 'object') {\n var _themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n\n return Object.keys(propValue).reduce(function (acc, breakpoint) {\n acc[_themeBreakpoints.up(breakpoint)] = styleFromPropValue(propValue[breakpoint]);\n return acc;\n }, {});\n }\n\n var output = styleFromPropValue(propValue);\n return output;\n}\n\nfunction breakpoints(styleFunction) {\n var newStyleFunction = function newStyleFunction(props) {\n var base = styleFunction(props);\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n var extended = themeBreakpoints.keys.reduce(function (acc, key) {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme: props.theme\n }, props[key]));\n }\n\n return acc;\n }, null);\n return merge(base, extended);\n };\n\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl'].concat(_toConsumableArray(styleFunction.filterProps));\n return newStyleFunction;\n}\n\nexport default breakpoints;","import { deepmerge } from '@material-ui/utils';\n\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n\n });\n}\n\nexport default merge;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport merge from './merge';\nimport memoize from './memoize';\nvar properties = {\n m: 'margin',\n p: 'padding'\n};\nvar directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nvar aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nvar getCssProperties = memoize(function (prop) {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n\n var _prop$split = prop.split(''),\n _prop$split2 = _slicedToArray(_prop$split, 2),\n a = _prop$split2[0],\n b = _prop$split2[1];\n\n var property = properties[a];\n var direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(function (dir) {\n return property + dir;\n }) : [property + direction];\n});\nvar spacingKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY'];\nexport function createUnarySpacing(theme) {\n var themeSpacing = theme.spacing || 8;\n\n if (typeof themeSpacing === 'number') {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(\"Material-UI: Expected spacing argument to be a number, got \".concat(abs, \".\"));\n }\n }\n\n return themeSpacing * abs;\n };\n }\n\n if (Array.isArray(themeSpacing)) {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (abs > themeSpacing.length - 1) {\n console.error([\"Material-UI: The value provided (\".concat(abs, \") overflows.\"), \"The supported values are: \".concat(JSON.stringify(themeSpacing), \".\"), \"\".concat(abs, \" > \").concat(themeSpacing.length - 1, \", you need to add the missing values.\")].join('\\n'));\n }\n }\n\n return themeSpacing[abs];\n };\n }\n\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `theme.spacing` value (\".concat(themeSpacing, \") is invalid.\"), 'It should be a number, an array or a function.'].join('\\n'));\n }\n\n return function () {\n return undefined;\n };\n}\n\nfunction getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n\n var abs = Math.abs(propValue);\n var transformed = transformer(abs);\n\n if (propValue >= 0) {\n return transformed;\n }\n\n if (typeof transformed === 'number') {\n return -transformed;\n }\n\n return \"-\".concat(transformed);\n}\n\nfunction getStyleFromPropValue(cssProperties, transformer) {\n return function (propValue) {\n return cssProperties.reduce(function (acc, cssProperty) {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n };\n}\n\nfunction spacing(props) {\n var theme = props.theme;\n var transformer = createUnarySpacing(theme);\n return Object.keys(props).map(function (prop) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (spacingKeys.indexOf(prop) === -1) {\n return null;\n }\n\n var cssProperties = getCssProperties(prop);\n var styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n var propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n }).reduce(merge, {});\n}\n\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce(function (obj, key) {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n\n return cache[arg];\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function isPlainObject(item) {\n return item && _typeof(item) === 'object' && item.constructor === Object;\n}\nexport default function deepmerge(target, source) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n clone: true\n };\n var output = options.clone ? _extends({}, target) : target;\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(function (key) {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n\n if (isPlainObject(source[key]) && key in target) {\n output[key] = deepmerge(target[key], source[key], options);\n } else {\n output[key] = source[key];\n }\n });\n }\n\n return output;\n}","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@material-ui/utils/macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe iff we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n\n /* eslint-disable prefer-template */\n var url = 'https://mui.com/production-error/?code=' + code;\n\n for (var i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n\n return 'Minified Material-UI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p=\"dist/\",t(0)}([function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,x),(0,b.default)(w,x.once),w},O=function(){w=(0,h.default)(),j()},M=function(){w.forEach(function(e,t){e.node.removeAttribute(\"data-aos\"),e.node.removeAttribute(\"data-aos-easing\"),e.node.removeAttribute(\"data-aos-duration\"),e.node.removeAttribute(\"data-aos-delay\")})},S=function(e){return e===!0||\"mobile\"===e&&p.default.mobile()||\"phone\"===e&&p.default.phone()||\"tablet\"===e&&p.default.tablet()||\"function\"==typeof e&&e()===!0},_=function(e){x=i(x,e),w=(0,h.default)();var t=document.all&&!window.atob;return S(x.disable)||t?M():(x.disableMutationObserver||d.default.isSupported()||(console.info('\\n aos: MutationObserver is not supported on this browser,\\n code mutations observing has been disabled.\\n You may have to call \"refreshHard()\" by yourself.\\n '),x.disableMutationObserver=!0),document.querySelector(\"body\").setAttribute(\"data-aos-easing\",x.easing),document.querySelector(\"body\").setAttribute(\"data-aos-duration\",x.duration),document.querySelector(\"body\").setAttribute(\"data-aos-delay\",x.delay),\"DOMContentLoaded\"===x.startEvent&&[\"complete\",\"interactive\"].indexOf(document.readyState)>-1?j(!0):\"load\"===x.startEvent?window.addEventListener(x.startEvent,function(){j(!0)}):document.addEventListener(x.startEvent,function(){j(!0)}),window.addEventListener(\"resize\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"orientationchange\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"scroll\",(0,u.default)(function(){(0,b.default)(w,x.once)},x.throttleDelay)),x.disableMutationObserver||d.default.ready(\"[data-aos]\",O),w)};e.exports={init:_,refresh:j,refreshHard:O}},function(e,t){},,,,,function(e,t){(function(t){\"use strict\";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(f,t),M?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return S?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=O();return c(e)?d(e):void(h=setTimeout(f,a(e)))}function d(e){return h=void 0,_&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),o(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,k=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(s);return t=u(t)||0,i(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?x(u(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if(\"function\"!=typeof e)throw new TypeError(s);return i(o)&&(r=\"leading\"in o?!!o.leading:r,a=\"trailing\"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t=\"undefined\"==typeof e?\"undefined\":c(e);return!!e&&(\"object\"==t||\"function\"==t)}function r(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":c(e))}function a(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":c(e))||r(e)&&k.call(e)==d}function u(e){if(\"number\"==typeof e)return e;if(a(e))return f;if(i(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(l,\"\");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?f:+e}var c=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},s=\"Expected a function\",f=NaN,d=\"[object Symbol]\",l=/^\\s+|\\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y=\"object\"==(\"undefined\"==typeof t?\"undefined\":c(t))&&t&&t.Object===Object&&t,g=\"object\"==(\"undefined\"==typeof self?\"undefined\":c(self))&&self&&self.Object===Object&&self,h=y||g||Function(\"return this\")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){\"use strict\";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(f,t),M?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return S?x(i,y-o):i}function s(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=j();return s(e)?d(e):void(h=setTimeout(f,u(e)))}function d(e){return h=void 0,_&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=s(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),i(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,O=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?k(a(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e){var t=\"undefined\"==typeof e?\"undefined\":u(e);return!!e&&(\"object\"==t||\"function\"==t)}function i(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":u(e))}function r(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":u(e))||i(e)&&w.call(e)==f}function a(e){if(\"number\"==typeof e)return e;if(r(e))return s;if(o(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(d,\"\");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?s:+e}var u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},c=\"Expected a function\",s=NaN,f=\"[object Symbol]\",d=/^\\s+|\\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v=\"object\"==(\"undefined\"==typeof t?\"undefined\":u(t))&&t&&t.Object===Object&&t,y=\"object\"==(\"undefined\"==typeof self?\"undefined\":u(self))&&self&&self.Object===Object&&self,g=v||y||Function(\"return this\")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){\"use strict\";function n(e){var t=void 0,o=void 0,i=void 0;for(t=0;te.position?e.node.classList.add(\"aos-animate\"):\"undefined\"!=typeof o&&(\"false\"===o||!n&&\"true\"!==o)&&e.node.classList.remove(\"aos-animate\")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add(\"aos-init\"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute(\"data-aos-offset\"),anchor:e.getAttribute(\"data-aos-anchor\"),anchorPlacement:e.getAttribute(\"data-aos-anchor-placement\")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case\"top-bottom\":break;case\"center-bottom\":n+=e.offsetHeight/2;break;case\"bottom-bottom\":n+=e.offsetHeight;break;case\"top-center\":n+=i/2;break;case\"bottom-center\":n+=i/2+e.offsetHeight;break;case\"center-center\":n+=i/2+e.offsetHeight/2;break;case\"top-top\":n+=i;break;case\"bottom-top\":n+=e.offsetHeight+i;break;case\"center-top\":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-(\"BODY\"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-(\"BODY\"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){return e=e||document.querySelectorAll(\"[data-aos]\"),Array.prototype.map.call(e,function(e){return{node:e}})};t.default=n}])});","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t {\n const { animationData, loop, autoplay, initialSegment, onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy, \n // Specified here to take them out from the 'rest'\n lottieRef, renderer, name, assetsPath, rendererSettings, \n // TODO: find a better way to extract the html props to avoid specifying\n // all the props that we want to exclude (as you can see above)\n ...rest } = props;\n const [animationLoaded, setAnimationLoaded] = useState(false);\n const animationInstanceRef = useRef();\n const animationContainer = useRef(null);\n /*\n ======================================\n INTERACTION METHODS\n ======================================\n */\n /**\n * Play\n */\n const play = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n };\n /**\n * Stop\n */\n const stop = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n };\n /**\n * Pause\n */\n const pause = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n };\n /**\n * Set animation speed\n * @param speed\n */\n const setSpeed = (speed) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n };\n /**\n * Got to frame and play\n * @param value\n * @param isFrame\n */\n const goToAndPlay = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n };\n /**\n * Got to frame and stop\n * @param value\n * @param isFrame\n */\n const goToAndStop = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n };\n /**\n * Set animation direction\n * @param direction\n */\n const setDirection = (direction) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n };\n /**\n * Play animation segments\n * @param segments\n * @param forceFlag\n */\n const playSegments = (segments, forceFlag) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n };\n /**\n * Set sub frames\n * @param useSubFrames\n */\n const setSubframe = (useSubFrames) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n };\n /**\n * Get animation duration\n * @param inFrames\n */\n const getDuration = (inFrames) => { var _a; return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames); };\n /**\n * Destroy animation\n */\n const destroy = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Removing the reference to the animation so separate cleanups are skipped.\n // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n animationInstanceRef.current = undefined;\n };\n /*\n ======================================\n LOTTIE\n ======================================\n */\n /**\n * Load a new animation, and if it's the case, destroy the previous one\n * @param {Object} forcedConfigs\n */\n const loadAnimation = (forcedConfigs = {}) => {\n var _a;\n // Return if the container ref is null\n if (!animationContainer.current) {\n return;\n }\n // Destroy any previous instance\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Build the animation configuration\n const config = {\n ...props,\n ...forcedConfigs,\n container: animationContainer.current,\n };\n // Save the animation instance\n animationInstanceRef.current = lottie.loadAnimation(config);\n setAnimationLoaded(!!animationInstanceRef.current);\n // Return a function that will clean up\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n animationInstanceRef.current = undefined;\n };\n };\n /**\n * (Re)Initialize when animation data changed\n */\n useEffect(() => {\n const onUnmount = loadAnimation();\n // Clean up on unmount\n return () => onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationData, loop]);\n // Update the autoplay state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n animationInstanceRef.current.autoplay = !!autoplay;\n }, [autoplay]);\n // Update the initial segment state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n // When null should reset to default animation length\n if (!initialSegment) {\n animationInstanceRef.current.resetSegments(true);\n return;\n }\n // If it's not a valid segment, do nothing\n if (!Array.isArray(initialSegment) || !initialSegment.length) {\n return;\n }\n // If the current position it's not in the new segment\n // set the current position to start\n if (animationInstanceRef.current.currentRawFrame < initialSegment[0] ||\n animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n animationInstanceRef.current.currentRawFrame = initialSegment[0];\n }\n // Update the segment\n animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n }, [initialSegment]);\n /*\n ======================================\n EVENTS\n ======================================\n */\n /**\n * Reinitialize listener on change\n */\n useEffect(() => {\n const partialListeners = [\n { name: \"complete\", handler: onComplete },\n { name: \"loopComplete\", handler: onLoopComplete },\n { name: \"enterFrame\", handler: onEnterFrame },\n { name: \"segmentStart\", handler: onSegmentStart },\n { name: \"config_ready\", handler: onConfigReady },\n { name: \"data_ready\", handler: onDataReady },\n { name: \"data_failed\", handler: onDataFailed },\n { name: \"loaded_images\", handler: onLoadedImages },\n { name: \"DOMLoaded\", handler: onDOMLoaded },\n { name: \"destroy\", handler: onDestroy },\n ];\n const listeners = partialListeners.filter((listener) => listener.handler != null);\n if (!listeners.length) {\n return;\n }\n const deregisterList = listeners.map(\n /**\n * Handle the process of adding an event listener\n * @param {Listener} listener\n * @return {Function} Function that deregister the listener\n */\n (listener) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n // Return a function to deregister this listener\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n };\n });\n // Deregister listeners on unmount\n return () => {\n deregisterList.forEach((deregister) => deregister());\n };\n }, [\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n onConfigReady,\n onDataReady,\n onDataFailed,\n onLoadedImages,\n onDOMLoaded,\n onDestroy,\n ]);\n /**\n * Build the animation view\n */\n const View = React.createElement(\"div\", { style: style, ref: animationContainer, ...rest });\n return {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef: animationContainer,\n animationLoaded,\n animationItem: animationInstanceRef.current,\n };\n};\nexport default useLottie;\n","import { useEffect } from \"react\";\n// helpers\nexport function getContainerVisibility(container) {\n const { top, height } = container.getBoundingClientRect();\n const current = window.innerHeight - top;\n const max = window.innerHeight + height;\n return current / max;\n}\nexport function getContainerCursorPosition(container, cursorX, cursorY) {\n const { top, left, width, height } = container.getBoundingClientRect();\n const x = (cursorX - left) / width;\n const y = (cursorY - top) / height;\n return { x, y };\n}\nexport const useInitInteractivity = ({ wrapperRef, animationItem, mode, actions, }) => {\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper || !animationItem || !actions.length) {\n return;\n }\n animationItem.stop();\n const scrollModeHandler = () => {\n let assignedSegment = null;\n const scrollHandler = () => {\n const currentPercent = getContainerVisibility(wrapper);\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ visibility }) => visibility &&\n currentPercent >= visibility[0] &&\n currentPercent <= visibility[1]);\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n if (action.type === \"seek\" &&\n action.visibility &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const frameToGo = action.frames[0] +\n Math.ceil(((currentPercent - action.visibility[0]) /\n (action.visibility[1] - action.visibility[0])) *\n action.frames[1]);\n //! goToAndStop must be relative to the start of the current segment\n animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n }\n if (action.type === \"loop\") {\n // Loop: Loop a given frames\n if (assignedSegment === null) {\n // if not playing any segments currently. play those segments and save to state\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else {\n // if playing any segments currently.\n //check if segments in state are equal to the frames selected by action\n if (assignedSegment !== action.frames) {\n // if they are not equal. new segments are to be loaded\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else if (animationItem.isPaused) {\n // if they are equal the play method must be called only if lottie is paused\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n }\n }\n if (action.type === \"play\" && animationItem.isPaused) {\n // Play: Reset segments and continue playing full animation from current position\n animationItem.resetSegments(true);\n animationItem.play();\n }\n if (action.type === \"stop\") {\n // Stop: Stop playback\n animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n }\n };\n document.addEventListener(\"scroll\", scrollHandler);\n return () => {\n document.removeEventListener(\"scroll\", scrollHandler);\n };\n };\n const cursorModeHandler = () => {\n const handleCursor = (_x, _y) => {\n let x = _x;\n let y = _y;\n // Resolve cursor position if cursor is inside container\n if (x !== -1 && y !== -1) {\n // Get container cursor position\n const pos = getContainerCursorPosition(wrapper, x, y);\n // Use the resolved position\n x = pos.x;\n y = pos.y;\n }\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ position }) => {\n if (position &&\n Array.isArray(position.x) &&\n Array.isArray(position.y)) {\n return (x >= position.x[0] &&\n x <= position.x[1] &&\n y >= position.y[0] &&\n y <= position.y[1]);\n }\n if (position &&\n !Number.isNaN(position.x) &&\n !Number.isNaN(position.y)) {\n return x === position.x && y === position.y;\n }\n return false;\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n // Process action types:\n if (action.type === \"seek\" &&\n action.position &&\n Array.isArray(action.position.x) &&\n Array.isArray(action.position.y) &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const xPercent = (x - action.position.x[0]) /\n (action.position.x[1] - action.position.x[0]);\n const yPercent = (y - action.position.y[0]) /\n (action.position.y[1] - action.position.y[0]);\n animationItem.playSegments(action.frames, true);\n animationItem.goToAndStop(Math.ceil(((xPercent + yPercent) / 2) *\n (action.frames[1] - action.frames[0])), true);\n }\n if (action.type === \"loop\") {\n animationItem.playSegments(action.frames, true);\n }\n if (action.type === \"play\") {\n // Play: Reset segments and continue playing full animation from current position\n if (animationItem.isPaused) {\n animationItem.resetSegments(false);\n }\n animationItem.playSegments(action.frames);\n }\n if (action.type === \"stop\") {\n animationItem.goToAndStop(action.frames[0], true);\n }\n };\n const mouseMoveHandler = (ev) => {\n handleCursor(ev.clientX, ev.clientY);\n };\n const mouseOutHandler = () => {\n handleCursor(-1, -1);\n };\n wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n return () => {\n wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n };\n };\n switch (mode) {\n case \"scroll\":\n return scrollModeHandler();\n case \"cursor\":\n return cursorModeHandler();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, animationItem]);\n};\nconst useLottieInteractivity = ({ actions, mode, lottieObj, }) => {\n const { animationItem, View, animationContainerRef } = lottieObj;\n useInitInteractivity({\n actions,\n animationItem,\n mode,\n wrapperRef: animationContainerRef,\n });\n return View;\n};\nexport default useLottieInteractivity;\n","import { useEffect } from \"react\";\nimport useLottie from \"../hooks/useLottie\";\nimport useLottieInteractivity from \"../hooks/useLottieInteractivity\";\nconst Lottie = (props) => {\n var _a, _b, _c;\n const { style, interactivity, ...lottieProps } = props;\n /**\n * Initialize the 'useLottie' hook\n */\n const { View, play, stop, pause, setSpeed, goToAndStop, goToAndPlay, setDirection, playSegments, setSubframe, getDuration, destroy, animationContainerRef, animationLoaded, animationItem, } = useLottie(lottieProps, style);\n /**\n * Make the hook variables/methods available through the provided 'lottieRef'\n */\n useEffect(() => {\n if (props.lottieRef) {\n props.lottieRef.current = {\n play,\n stop,\n pause,\n setSpeed,\n goToAndPlay,\n goToAndStop,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n return useLottieInteractivity({\n lottieObj: {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n },\n actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\",\n });\n};\nexport default Lottie;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","if performance? and performance.now\n module.exports = -> performance.now()\nelse if process? and process.hrtime\n module.exports = -> (getNanoSeconds() - nodeLoadTime) / 1e6\n hrtime = process.hrtime\n getNanoSeconds = ->\n hr = hrtime()\n hr[0] * 1e9 + hr[1]\n moduleLoadTime = getNanoSeconds()\n upTime = process.uptime() * 1e9\n nodeLoadTime = moduleLoadTime - upTime\nelse if Date.now\n module.exports = -> Date.now() - loadTime\n loadTime = Date.now()\nelse\n module.exports = -> new Date().getTime() - loadTime\n loadTime = new Date().getTime()\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var supportsCaptureOption = false;\n function setHasSupportToCaptureOption(hasSupport) {\n supportsCaptureOption = hasSupport;\n }\n\n try {\n addEventListener('test', null, Object.defineProperty({}, 'capture', { get: function get() {\n setHasSupportToCaptureOption(true);\n } }));\n } catch (e) {} // eslint-disable-line no-empty\n\n function getSafeEventHandlerOpts() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { capture: true };\n\n return supportsCaptureOption ? options : options.capture;\n }\n\n /**\n * [getPosition returns a position element that works for mouse or touch events]\n * @param {[Event]} event [the received event]\n * @return {[Object]} [x and y coords]\n */\n function getPosition(event) {\n if ('touches' in event) {\n var _event$touches$ = event.touches[0],\n pageX = _event$touches$.pageX,\n pageY = _event$touches$.pageY;\n\n return { x: pageX, y: pageY };\n }\n\n var screenX = event.screenX,\n screenY = event.screenY;\n\n return { x: screenX, y: screenY };\n }\n\n var ReactSwipe = function (_Component) {\n _inherits(ReactSwipe, _Component);\n\n function ReactSwipe() {\n var _ref;\n\n _classCallCheck(this, ReactSwipe);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _this = _possibleConstructorReturn(this, (_ref = ReactSwipe.__proto__ || Object.getPrototypeOf(ReactSwipe)).call.apply(_ref, [this].concat(args)));\n\n _this._handleSwipeStart = _this._handleSwipeStart.bind(_this);\n _this._handleSwipeMove = _this._handleSwipeMove.bind(_this);\n _this._handleSwipeEnd = _this._handleSwipeEnd.bind(_this);\n\n _this._onMouseDown = _this._onMouseDown.bind(_this);\n _this._onMouseMove = _this._onMouseMove.bind(_this);\n _this._onMouseUp = _this._onMouseUp.bind(_this);\n\n _this._setSwiperRef = _this._setSwiperRef.bind(_this);\n return _this;\n }\n\n _createClass(ReactSwipe, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.swiper) {\n this.swiper.addEventListener('touchmove', this._handleSwipeMove, getSafeEventHandlerOpts({\n capture: true,\n passive: false\n }));\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.swiper) {\n this.swiper.removeEventListener('touchmove', this._handleSwipeMove, getSafeEventHandlerOpts({\n capture: true,\n passive: false\n }));\n }\n }\n }, {\n key: '_onMouseDown',\n value: function _onMouseDown(event) {\n if (!this.props.allowMouseEvents) {\n return;\n }\n\n this.mouseDown = true;\n\n document.addEventListener('mouseup', this._onMouseUp);\n document.addEventListener('mousemove', this._onMouseMove);\n\n this._handleSwipeStart(event);\n }\n }, {\n key: '_onMouseMove',\n value: function _onMouseMove(event) {\n if (!this.mouseDown) {\n return;\n }\n\n this._handleSwipeMove(event);\n }\n }, {\n key: '_onMouseUp',\n value: function _onMouseUp(event) {\n this.mouseDown = false;\n\n document.removeEventListener('mouseup', this._onMouseUp);\n document.removeEventListener('mousemove', this._onMouseMove);\n\n this._handleSwipeEnd(event);\n }\n }, {\n key: '_handleSwipeStart',\n value: function _handleSwipeStart(event) {\n var _getPosition = getPosition(event),\n x = _getPosition.x,\n y = _getPosition.y;\n\n this.moveStart = { x: x, y: y };\n this.props.onSwipeStart(event);\n }\n }, {\n key: '_handleSwipeMove',\n value: function _handleSwipeMove(event) {\n if (!this.moveStart) {\n return;\n }\n\n var _getPosition2 = getPosition(event),\n x = _getPosition2.x,\n y = _getPosition2.y;\n\n var deltaX = x - this.moveStart.x;\n var deltaY = y - this.moveStart.y;\n this.moving = true;\n\n // handling the responsability of cancelling the scroll to\n // the component handling the event\n var shouldPreventDefault = this.props.onSwipeMove({\n x: deltaX,\n y: deltaY\n }, event);\n\n if (shouldPreventDefault && event.cancelable) {\n event.preventDefault();\n }\n\n this.movePosition = { deltaX: deltaX, deltaY: deltaY };\n }\n }, {\n key: '_handleSwipeEnd',\n value: function _handleSwipeEnd(event) {\n this.props.onSwipeEnd(event);\n\n var tolerance = this.props.tolerance;\n\n\n if (this.moving && this.movePosition) {\n if (this.movePosition.deltaX < -tolerance) {\n this.props.onSwipeLeft(1, event);\n } else if (this.movePosition.deltaX > tolerance) {\n this.props.onSwipeRight(1, event);\n }\n if (this.movePosition.deltaY < -tolerance) {\n this.props.onSwipeUp(1, event);\n } else if (this.movePosition.deltaY > tolerance) {\n this.props.onSwipeDown(1, event);\n }\n }\n\n this.moveStart = null;\n this.moving = false;\n this.movePosition = null;\n }\n }, {\n key: '_setSwiperRef',\n value: function _setSwiperRef(node) {\n this.swiper = node;\n this.props.innerRef(node);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n tagName = _props.tagName,\n className = _props.className,\n style = _props.style,\n children = _props.children,\n allowMouseEvents = _props.allowMouseEvents,\n onSwipeUp = _props.onSwipeUp,\n onSwipeDown = _props.onSwipeDown,\n onSwipeLeft = _props.onSwipeLeft,\n onSwipeRight = _props.onSwipeRight,\n onSwipeStart = _props.onSwipeStart,\n onSwipeMove = _props.onSwipeMove,\n onSwipeEnd = _props.onSwipeEnd,\n innerRef = _props.innerRef,\n tolerance = _props.tolerance,\n props = _objectWithoutProperties(_props, ['tagName', 'className', 'style', 'children', 'allowMouseEvents', 'onSwipeUp', 'onSwipeDown', 'onSwipeLeft', 'onSwipeRight', 'onSwipeStart', 'onSwipeMove', 'onSwipeEnd', 'innerRef', 'tolerance']);\n\n return _react2.default.createElement(\n this.props.tagName,\n _extends({\n ref: this._setSwiperRef,\n onMouseDown: this._onMouseDown,\n onTouchStart: this._handleSwipeStart,\n onTouchEnd: this._handleSwipeEnd,\n className: className,\n style: style\n }, props),\n children\n );\n }\n }]);\n\n return ReactSwipe;\n }(_react.Component);\n\n ReactSwipe.displayName = 'ReactSwipe';\n ReactSwipe.propTypes = {\n tagName: _propTypes2.default.string,\n className: _propTypes2.default.string,\n style: _propTypes2.default.object,\n children: _propTypes2.default.node,\n allowMouseEvents: _propTypes2.default.bool,\n onSwipeUp: _propTypes2.default.func,\n onSwipeDown: _propTypes2.default.func,\n onSwipeLeft: _propTypes2.default.func,\n onSwipeRight: _propTypes2.default.func,\n onSwipeStart: _propTypes2.default.func,\n onSwipeMove: _propTypes2.default.func,\n onSwipeEnd: _propTypes2.default.func,\n innerRef: _propTypes2.default.func,\n tolerance: _propTypes2.default.number.isRequired\n };\n ReactSwipe.defaultProps = {\n tagName: 'div',\n allowMouseEvents: false,\n onSwipeUp: function onSwipeUp() {},\n onSwipeDown: function onSwipeDown() {},\n onSwipeLeft: function onSwipeLeft() {},\n onSwipeRight: function onSwipeRight() {},\n onSwipeStart: function onSwipeStart() {},\n onSwipeMove: function onSwipeMove() {},\n onSwipeEnd: function onSwipeEnd() {},\n innerRef: function innerRef() {},\n\n tolerance: 0\n };\n exports.default = ReactSwipe;\n});","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar Player_exports = {};\n__export(Player_exports, {\n default: () => Player\n});\nmodule.exports = __toCommonJS(Player_exports);\nvar import_react = __toESM(require(\"react\"));\nvar import_react_fast_compare = __toESM(require(\"react-fast-compare\"));\nvar import_props = require(\"./props\");\nvar import_utils = require(\"./utils\");\nconst SEEK_ON_PLAY_EXPIRY = 5e3;\nclass Player extends import_react.Component {\n constructor() {\n super(...arguments);\n __publicField(this, \"mounted\", false);\n __publicField(this, \"isReady\", false);\n __publicField(this, \"isPlaying\", false);\n // Track playing state internally to prevent bugs\n __publicField(this, \"isLoading\", true);\n // Use isLoading to prevent onPause when switching URL\n __publicField(this, \"loadOnReady\", null);\n __publicField(this, \"startOnPlay\", true);\n __publicField(this, \"seekOnPlay\", null);\n __publicField(this, \"onDurationCalled\", false);\n __publicField(this, \"handlePlayerMount\", (player) => {\n if (this.player) {\n this.progress();\n return;\n }\n this.player = player;\n this.player.load(this.props.url);\n this.progress();\n });\n __publicField(this, \"getInternalPlayer\", (key) => {\n if (!this.player)\n return null;\n return this.player[key];\n });\n __publicField(this, \"progress\", () => {\n if (this.props.url && this.player && this.isReady) {\n const playedSeconds = this.getCurrentTime() || 0;\n const loadedSeconds = this.getSecondsLoaded();\n const duration = this.getDuration();\n if (duration) {\n const progress = {\n playedSeconds,\n played: playedSeconds / duration\n };\n if (loadedSeconds !== null) {\n progress.loadedSeconds = loadedSeconds;\n progress.loaded = loadedSeconds / duration;\n }\n if (progress.playedSeconds !== this.prevPlayed || progress.loadedSeconds !== this.prevLoaded) {\n this.props.onProgress(progress);\n }\n this.prevPlayed = progress.playedSeconds;\n this.prevLoaded = progress.loadedSeconds;\n }\n }\n this.progressTimeout = setTimeout(this.progress, this.props.progressFrequency || this.props.progressInterval);\n });\n __publicField(this, \"handleReady\", () => {\n if (!this.mounted)\n return;\n this.isReady = true;\n this.isLoading = false;\n const { onReady, playing, volume, muted } = this.props;\n onReady();\n if (!muted && volume !== null) {\n this.player.setVolume(volume);\n }\n if (this.loadOnReady) {\n this.player.load(this.loadOnReady, true);\n this.loadOnReady = null;\n } else if (playing) {\n this.player.play();\n }\n this.handleDurationCheck();\n });\n __publicField(this, \"handlePlay\", () => {\n this.isPlaying = true;\n this.isLoading = false;\n const { onStart, onPlay, playbackRate } = this.props;\n if (this.startOnPlay) {\n if (this.player.setPlaybackRate && playbackRate !== 1) {\n this.player.setPlaybackRate(playbackRate);\n }\n onStart();\n this.startOnPlay = false;\n }\n onPlay();\n if (this.seekOnPlay) {\n this.seekTo(this.seekOnPlay);\n this.seekOnPlay = null;\n }\n this.handleDurationCheck();\n });\n __publicField(this, \"handlePause\", (e) => {\n this.isPlaying = false;\n if (!this.isLoading) {\n this.props.onPause(e);\n }\n });\n __publicField(this, \"handleEnded\", () => {\n const { activePlayer, loop, onEnded } = this.props;\n if (activePlayer.loopOnEnded && loop) {\n this.seekTo(0);\n }\n if (!loop) {\n this.isPlaying = false;\n onEnded();\n }\n });\n __publicField(this, \"handleError\", (...args) => {\n this.isLoading = false;\n this.props.onError(...args);\n });\n __publicField(this, \"handleDurationCheck\", () => {\n clearTimeout(this.durationCheckTimeout);\n const duration = this.getDuration();\n if (duration) {\n if (!this.onDurationCalled) {\n this.props.onDuration(duration);\n this.onDurationCalled = true;\n }\n } else {\n this.durationCheckTimeout = setTimeout(this.handleDurationCheck, 100);\n }\n });\n __publicField(this, \"handleLoaded\", () => {\n this.isLoading = false;\n });\n }\n componentDidMount() {\n this.mounted = true;\n }\n componentWillUnmount() {\n clearTimeout(this.progressTimeout);\n clearTimeout(this.durationCheckTimeout);\n if (this.isReady && this.props.stopOnUnmount) {\n this.player.stop();\n if (this.player.disablePIP) {\n this.player.disablePIP();\n }\n }\n this.mounted = false;\n }\n componentDidUpdate(prevProps) {\n if (!this.player) {\n return;\n }\n const { url, playing, volume, muted, playbackRate, pip, loop, activePlayer, disableDeferredLoading } = this.props;\n if (!(0, import_react_fast_compare.default)(prevProps.url, url)) {\n if (this.isLoading && !activePlayer.forceLoad && !disableDeferredLoading && !(0, import_utils.isMediaStream)(url)) {\n console.warn(`ReactPlayer: the attempt to load ${url} is being deferred until the player has loaded`);\n this.loadOnReady = url;\n return;\n }\n this.isLoading = true;\n this.startOnPlay = true;\n this.onDurationCalled = false;\n this.player.load(url, this.isReady);\n }\n if (!prevProps.playing && playing && !this.isPlaying) {\n this.player.play();\n }\n if (prevProps.playing && !playing && this.isPlaying) {\n this.player.pause();\n }\n if (!prevProps.pip && pip && this.player.enablePIP) {\n this.player.enablePIP();\n }\n if (prevProps.pip && !pip && this.player.disablePIP) {\n this.player.disablePIP();\n }\n if (prevProps.volume !== volume && volume !== null) {\n this.player.setVolume(volume);\n }\n if (prevProps.muted !== muted) {\n if (muted) {\n this.player.mute();\n } else {\n this.player.unmute();\n if (volume !== null) {\n setTimeout(() => this.player.setVolume(volume));\n }\n }\n }\n if (prevProps.playbackRate !== playbackRate && this.player.setPlaybackRate) {\n this.player.setPlaybackRate(playbackRate);\n }\n if (prevProps.loop !== loop && this.player.setLoop) {\n this.player.setLoop(loop);\n }\n }\n getDuration() {\n if (!this.isReady)\n return null;\n return this.player.getDuration();\n }\n getCurrentTime() {\n if (!this.isReady)\n return null;\n return this.player.getCurrentTime();\n }\n getSecondsLoaded() {\n if (!this.isReady)\n return null;\n return this.player.getSecondsLoaded();\n }\n seekTo(amount, type, keepPlaying) {\n if (!this.isReady) {\n if (amount !== 0) {\n this.seekOnPlay = amount;\n setTimeout(() => {\n this.seekOnPlay = null;\n }, SEEK_ON_PLAY_EXPIRY);\n }\n return;\n }\n const isFraction = !type ? amount > 0 && amount < 1 : type === \"fraction\";\n if (isFraction) {\n const duration = this.player.getDuration();\n if (!duration) {\n console.warn(\"ReactPlayer: could not seek using fraction \\u2013\\xA0duration not yet available\");\n return;\n }\n this.player.seekTo(duration * amount, keepPlaying);\n return;\n }\n this.player.seekTo(amount, keepPlaying);\n }\n render() {\n const Player2 = this.props.activePlayer;\n if (!Player2) {\n return null;\n }\n return /* @__PURE__ */ import_react.default.createElement(\n Player2,\n {\n ...this.props,\n onMount: this.handlePlayerMount,\n onReady: this.handleReady,\n onPlay: this.handlePlay,\n onPause: this.handlePause,\n onEnded: this.handleEnded,\n onLoaded: this.handleLoaded,\n onError: this.handleError\n }\n );\n }\n}\n__publicField(Player, \"displayName\", \"Player\");\n__publicField(Player, \"propTypes\", import_props.propTypes);\n__publicField(Player, \"defaultProps\", import_props.defaultProps);\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar ReactPlayer_exports = {};\n__export(ReactPlayer_exports, {\n createReactPlayer: () => createReactPlayer\n});\nmodule.exports = __toCommonJS(ReactPlayer_exports);\nvar import_react = __toESM(require(\"react\"));\nvar import_deepmerge = __toESM(require(\"deepmerge\"));\nvar import_memoize_one = __toESM(require(\"memoize-one\"));\nvar import_react_fast_compare = __toESM(require(\"react-fast-compare\"));\nvar import_props = require(\"./props\");\nvar import_utils = require(\"./utils\");\nvar import_Player = __toESM(require(\"./Player\"));\nconst Preview = (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerPreview' */\n \"./Preview\"\n));\nconst IS_BROWSER = typeof window !== \"undefined\" && window.document && typeof document !== \"undefined\";\nconst IS_GLOBAL = typeof global !== \"undefined\" && global.window && global.window.document;\nconst SUPPORTED_PROPS = Object.keys(import_props.propTypes);\nconst UniversalSuspense = IS_BROWSER || IS_GLOBAL ? import_react.Suspense : () => null;\nconst customPlayers = [];\nconst createReactPlayer = (players, fallback) => {\n var _a;\n return _a = class extends import_react.Component {\n constructor() {\n super(...arguments);\n __publicField(this, \"state\", {\n showPreview: !!this.props.light\n });\n // Use references, as refs is used by React\n __publicField(this, \"references\", {\n wrapper: (wrapper) => {\n this.wrapper = wrapper;\n },\n player: (player) => {\n this.player = player;\n }\n });\n __publicField(this, \"handleClickPreview\", (e) => {\n this.setState({ showPreview: false });\n this.props.onClickPreview(e);\n });\n __publicField(this, \"showPreview\", () => {\n this.setState({ showPreview: true });\n });\n __publicField(this, \"getDuration\", () => {\n if (!this.player)\n return null;\n return this.player.getDuration();\n });\n __publicField(this, \"getCurrentTime\", () => {\n if (!this.player)\n return null;\n return this.player.getCurrentTime();\n });\n __publicField(this, \"getSecondsLoaded\", () => {\n if (!this.player)\n return null;\n return this.player.getSecondsLoaded();\n });\n __publicField(this, \"getInternalPlayer\", (key = \"player\") => {\n if (!this.player)\n return null;\n return this.player.getInternalPlayer(key);\n });\n __publicField(this, \"seekTo\", (fraction, type, keepPlaying) => {\n if (!this.player)\n return null;\n this.player.seekTo(fraction, type, keepPlaying);\n });\n __publicField(this, \"handleReady\", () => {\n this.props.onReady(this);\n });\n __publicField(this, \"getActivePlayer\", (0, import_memoize_one.default)((url) => {\n for (const player of [...customPlayers, ...players]) {\n if (player.canPlay(url)) {\n return player;\n }\n }\n if (fallback) {\n return fallback;\n }\n return null;\n }));\n __publicField(this, \"getConfig\", (0, import_memoize_one.default)((url, key) => {\n const { config } = this.props;\n return import_deepmerge.default.all([\n import_props.defaultProps.config,\n import_props.defaultProps.config[key] || {},\n config,\n config[key] || {}\n ]);\n }));\n __publicField(this, \"getAttributes\", (0, import_memoize_one.default)((url) => {\n return (0, import_utils.omit)(this.props, SUPPORTED_PROPS);\n }));\n __publicField(this, \"renderActivePlayer\", (url) => {\n if (!url)\n return null;\n const player = this.getActivePlayer(url);\n if (!player)\n return null;\n const config = this.getConfig(url, player.key);\n return /* @__PURE__ */ import_react.default.createElement(\n import_Player.default,\n {\n ...this.props,\n key: player.key,\n ref: this.references.player,\n config,\n activePlayer: player.lazyPlayer || player,\n onReady: this.handleReady\n }\n );\n });\n }\n shouldComponentUpdate(nextProps, nextState) {\n return !(0, import_react_fast_compare.default)(this.props, nextProps) || !(0, import_react_fast_compare.default)(this.state, nextState);\n }\n componentDidUpdate(prevProps) {\n const { light } = this.props;\n if (!prevProps.light && light) {\n this.setState({ showPreview: true });\n }\n if (prevProps.light && !light) {\n this.setState({ showPreview: false });\n }\n }\n renderPreview(url) {\n if (!url)\n return null;\n const { light, playIcon, previewTabIndex, oEmbedUrl, previewAriaLabel } = this.props;\n return /* @__PURE__ */ import_react.default.createElement(\n Preview,\n {\n url,\n light,\n playIcon,\n previewTabIndex,\n previewAriaLabel,\n oEmbedUrl,\n onClick: this.handleClickPreview\n }\n );\n }\n render() {\n const { url, style, width, height, fallback: fallback2, wrapper: Wrapper } = this.props;\n const { showPreview } = this.state;\n const attributes = this.getAttributes(url);\n const wrapperRef = typeof Wrapper === \"string\" ? this.references.wrapper : void 0;\n return /* @__PURE__ */ import_react.default.createElement(Wrapper, { ref: wrapperRef, style: { ...style, width, height }, ...attributes }, /* @__PURE__ */ import_react.default.createElement(UniversalSuspense, { fallback: fallback2 }, showPreview ? this.renderPreview(url) : this.renderActivePlayer(url)));\n }\n }, __publicField(_a, \"displayName\", \"ReactPlayer\"), __publicField(_a, \"propTypes\", import_props.propTypes), __publicField(_a, \"defaultProps\", import_props.defaultProps), __publicField(_a, \"addCustomPlayer\", (player) => {\n customPlayers.push(player);\n }), __publicField(_a, \"removeCustomPlayers\", () => {\n customPlayers.length = 0;\n }), __publicField(_a, \"canPlay\", (url) => {\n for (const Player2 of [...customPlayers, ...players]) {\n if (Player2.canPlay(url)) {\n return true;\n }\n }\n return false;\n }), __publicField(_a, \"canEnablePIP\", (url) => {\n for (const Player2 of [...customPlayers, ...players]) {\n if (Player2.canEnablePIP && Player2.canEnablePIP(url)) {\n return true;\n }\n }\n return false;\n }), _a;\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar src_exports = {};\n__export(src_exports, {\n default: () => src_default\n});\nmodule.exports = __toCommonJS(src_exports);\nvar import_players = __toESM(require(\"./players\"));\nvar import_ReactPlayer = require(\"./ReactPlayer\");\nconst fallback = import_players.default[import_players.default.length - 1];\nvar src_default = (0, import_ReactPlayer.createReactPlayer)(import_players.default, fallback);\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar patterns_exports = {};\n__export(patterns_exports, {\n AUDIO_EXTENSIONS: () => AUDIO_EXTENSIONS,\n DASH_EXTENSIONS: () => DASH_EXTENSIONS,\n FLV_EXTENSIONS: () => FLV_EXTENSIONS,\n HLS_EXTENSIONS: () => HLS_EXTENSIONS,\n MATCH_URL_DAILYMOTION: () => MATCH_URL_DAILYMOTION,\n MATCH_URL_FACEBOOK: () => MATCH_URL_FACEBOOK,\n MATCH_URL_FACEBOOK_WATCH: () => MATCH_URL_FACEBOOK_WATCH,\n MATCH_URL_KALTURA: () => MATCH_URL_KALTURA,\n MATCH_URL_MIXCLOUD: () => MATCH_URL_MIXCLOUD,\n MATCH_URL_MUX: () => MATCH_URL_MUX,\n MATCH_URL_SOUNDCLOUD: () => MATCH_URL_SOUNDCLOUD,\n MATCH_URL_STREAMABLE: () => MATCH_URL_STREAMABLE,\n MATCH_URL_TWITCH_CHANNEL: () => MATCH_URL_TWITCH_CHANNEL,\n MATCH_URL_TWITCH_VIDEO: () => MATCH_URL_TWITCH_VIDEO,\n MATCH_URL_VIDYARD: () => MATCH_URL_VIDYARD,\n MATCH_URL_VIMEO: () => MATCH_URL_VIMEO,\n MATCH_URL_WISTIA: () => MATCH_URL_WISTIA,\n MATCH_URL_YOUTUBE: () => MATCH_URL_YOUTUBE,\n VIDEO_EXTENSIONS: () => VIDEO_EXTENSIONS,\n canPlay: () => canPlay\n});\nmodule.exports = __toCommonJS(patterns_exports);\nvar import_utils = require(\"./utils\");\nconst MATCH_URL_YOUTUBE = /(?:youtu\\.be\\/|youtube(?:-nocookie|education)?\\.com\\/(?:embed\\/|v\\/|watch\\/|watch\\?v=|watch\\?.+&v=|shorts\\/|live\\/))((\\w|-){11})|youtube\\.com\\/playlist\\?list=|youtube\\.com\\/user\\//;\nconst MATCH_URL_SOUNDCLOUD = /(?:soundcloud\\.com|snd\\.sc)\\/[^.]+$/;\nconst MATCH_URL_VIMEO = /vimeo\\.com\\/(?!progressive_redirect).+/;\nconst MATCH_URL_MUX = /stream\\.mux\\.com\\/(?!\\w+\\.m3u8)(\\w+)/;\nconst MATCH_URL_FACEBOOK = /^https?:\\/\\/(www\\.)?facebook\\.com.*\\/(video(s)?|watch|story)(\\.php?|\\/).+$/;\nconst MATCH_URL_FACEBOOK_WATCH = /^https?:\\/\\/fb\\.watch\\/.+$/;\nconst MATCH_URL_STREAMABLE = /streamable\\.com\\/([a-z0-9]+)$/;\nconst MATCH_URL_WISTIA = /(?:wistia\\.(?:com|net)|wi\\.st)\\/(?:medias|embed)\\/(?:iframe\\/)?([^?]+)/;\nconst MATCH_URL_TWITCH_VIDEO = /(?:www\\.|go\\.)?twitch\\.tv\\/videos\\/(\\d+)($|\\?)/;\nconst MATCH_URL_TWITCH_CHANNEL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-zA-Z0-9_]+)($|\\?)/;\nconst MATCH_URL_DAILYMOTION = /^(?:(?:https?):)?(?:\\/\\/)?(?:www\\.)?(?:(?:dailymotion\\.com(?:\\/embed)?\\/video)|dai\\.ly)\\/([a-zA-Z0-9]+)(?:_[\\w_-]+)?(?:[\\w.#_-]+)?/;\nconst MATCH_URL_MIXCLOUD = /mixcloud\\.com\\/([^/]+\\/[^/]+)/;\nconst MATCH_URL_VIDYARD = /vidyard.com\\/(?:watch\\/)?([a-zA-Z0-9-_]+)/;\nconst MATCH_URL_KALTURA = /^https?:\\/\\/[a-zA-Z]+\\.kaltura.(com|org)\\/p\\/([0-9]+)\\/sp\\/([0-9]+)00\\/embedIframeJs\\/uiconf_id\\/([0-9]+)\\/partner_id\\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_].*)$/;\nconst AUDIO_EXTENSIONS = /\\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\\?)/i;\nconst VIDEO_EXTENSIONS = /\\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\\d+]+)?($|\\?)/i;\nconst HLS_EXTENSIONS = /\\.(m3u8)($|\\?)/i;\nconst DASH_EXTENSIONS = /\\.(mpd)($|\\?)/i;\nconst FLV_EXTENSIONS = /\\.(flv)($|\\?)/i;\nconst canPlayFile = (url) => {\n if (url instanceof Array) {\n for (const item of url) {\n if (typeof item === \"string\" && canPlayFile(item)) {\n return true;\n }\n if (canPlayFile(item.src)) {\n return true;\n }\n }\n return false;\n }\n if ((0, import_utils.isMediaStream)(url) || (0, import_utils.isBlobUrl)(url)) {\n return true;\n }\n return AUDIO_EXTENSIONS.test(url) || VIDEO_EXTENSIONS.test(url) || HLS_EXTENSIONS.test(url) || DASH_EXTENSIONS.test(url) || FLV_EXTENSIONS.test(url);\n};\nconst canPlay = {\n youtube: (url) => {\n if (url instanceof Array) {\n return url.every((item) => MATCH_URL_YOUTUBE.test(item));\n }\n return MATCH_URL_YOUTUBE.test(url);\n },\n soundcloud: (url) => MATCH_URL_SOUNDCLOUD.test(url) && !AUDIO_EXTENSIONS.test(url),\n vimeo: (url) => MATCH_URL_VIMEO.test(url) && !VIDEO_EXTENSIONS.test(url) && !HLS_EXTENSIONS.test(url),\n mux: (url) => MATCH_URL_MUX.test(url),\n facebook: (url) => MATCH_URL_FACEBOOK.test(url) || MATCH_URL_FACEBOOK_WATCH.test(url),\n streamable: (url) => MATCH_URL_STREAMABLE.test(url),\n wistia: (url) => MATCH_URL_WISTIA.test(url),\n twitch: (url) => MATCH_URL_TWITCH_VIDEO.test(url) || MATCH_URL_TWITCH_CHANNEL.test(url),\n dailymotion: (url) => MATCH_URL_DAILYMOTION.test(url),\n mixcloud: (url) => MATCH_URL_MIXCLOUD.test(url),\n vidyard: (url) => MATCH_URL_VIDYARD.test(url),\n kaltura: (url) => MATCH_URL_KALTURA.test(url),\n file: canPlayFile\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar players_exports = {};\n__export(players_exports, {\n default: () => players_default\n});\nmodule.exports = __toCommonJS(players_exports);\nvar import_utils = require(\"../utils\");\nvar import_patterns = require(\"../patterns\");\nvar players_default = [\n {\n key: \"youtube\",\n name: \"YouTube\",\n canPlay: import_patterns.canPlay.youtube,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerYouTube' */\n \"./YouTube\"\n ))\n },\n {\n key: \"soundcloud\",\n name: \"SoundCloud\",\n canPlay: import_patterns.canPlay.soundcloud,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerSoundCloud' */\n \"./SoundCloud\"\n ))\n },\n {\n key: \"vimeo\",\n name: \"Vimeo\",\n canPlay: import_patterns.canPlay.vimeo,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerVimeo' */\n \"./Vimeo\"\n ))\n },\n {\n key: \"mux\",\n name: \"Mux\",\n canPlay: import_patterns.canPlay.mux,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerMux' */\n \"./Mux\"\n ))\n },\n {\n key: \"facebook\",\n name: \"Facebook\",\n canPlay: import_patterns.canPlay.facebook,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerFacebook' */\n \"./Facebook\"\n ))\n },\n {\n key: \"streamable\",\n name: \"Streamable\",\n canPlay: import_patterns.canPlay.streamable,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerStreamable' */\n \"./Streamable\"\n ))\n },\n {\n key: \"wistia\",\n name: \"Wistia\",\n canPlay: import_patterns.canPlay.wistia,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerWistia' */\n \"./Wistia\"\n ))\n },\n {\n key: \"twitch\",\n name: \"Twitch\",\n canPlay: import_patterns.canPlay.twitch,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerTwitch' */\n \"./Twitch\"\n ))\n },\n {\n key: \"dailymotion\",\n name: \"DailyMotion\",\n canPlay: import_patterns.canPlay.dailymotion,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerDailyMotion' */\n \"./DailyMotion\"\n ))\n },\n {\n key: \"mixcloud\",\n name: \"Mixcloud\",\n canPlay: import_patterns.canPlay.mixcloud,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerMixcloud' */\n \"./Mixcloud\"\n ))\n },\n {\n key: \"vidyard\",\n name: \"Vidyard\",\n canPlay: import_patterns.canPlay.vidyard,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerVidyard' */\n \"./Vidyard\"\n ))\n },\n {\n key: \"kaltura\",\n name: \"Kaltura\",\n canPlay: import_patterns.canPlay.kaltura,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerKaltura' */\n \"./Kaltura\"\n ))\n },\n {\n key: \"file\",\n name: \"FilePlayer\",\n canPlay: import_patterns.canPlay.file,\n canEnablePIP: (url) => {\n return import_patterns.canPlay.file(url) && (document.pictureInPictureEnabled || (0, import_utils.supportsWebKitPresentationMode)()) && !import_patterns.AUDIO_EXTENSIONS.test(url);\n },\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerFilePlayer' */\n \"./FilePlayer\"\n ))\n }\n];\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar props_exports = {};\n__export(props_exports, {\n defaultProps: () => defaultProps,\n propTypes: () => propTypes\n});\nmodule.exports = __toCommonJS(props_exports);\nvar import_prop_types = __toESM(require(\"prop-types\"));\nconst { string, bool, number, array, oneOfType, shape, object, func, node } = import_prop_types.default;\nconst propTypes = {\n url: oneOfType([string, array, object]),\n playing: bool,\n loop: bool,\n controls: bool,\n volume: number,\n muted: bool,\n playbackRate: number,\n width: oneOfType([string, number]),\n height: oneOfType([string, number]),\n style: object,\n progressInterval: number,\n playsinline: bool,\n pip: bool,\n stopOnUnmount: bool,\n light: oneOfType([bool, string, object]),\n playIcon: node,\n previewTabIndex: number,\n previewAriaLabel: string,\n fallback: node,\n oEmbedUrl: string,\n wrapper: oneOfType([\n string,\n func,\n shape({ render: func.isRequired })\n ]),\n config: shape({\n soundcloud: shape({\n options: object\n }),\n youtube: shape({\n playerVars: object,\n embedOptions: object,\n onUnstarted: func\n }),\n facebook: shape({\n appId: string,\n version: string,\n playerId: string,\n attributes: object\n }),\n dailymotion: shape({\n params: object\n }),\n vimeo: shape({\n playerOptions: object,\n title: string\n }),\n mux: shape({\n attributes: object,\n version: string\n }),\n file: shape({\n attributes: object,\n tracks: array,\n forceVideo: bool,\n forceAudio: bool,\n forceHLS: bool,\n forceSafariHLS: bool,\n forceDisableHls: bool,\n forceDASH: bool,\n forceFLV: bool,\n hlsOptions: object,\n hlsVersion: string,\n dashVersion: string,\n flvVersion: string\n }),\n wistia: shape({\n options: object,\n playerId: string,\n customControls: array\n }),\n mixcloud: shape({\n options: object\n }),\n twitch: shape({\n options: object,\n playerId: string\n }),\n vidyard: shape({\n options: object\n })\n }),\n onReady: func,\n onStart: func,\n onPlay: func,\n onPause: func,\n onBuffer: func,\n onBufferEnd: func,\n onEnded: func,\n onError: func,\n onDuration: func,\n onSeek: func,\n onPlaybackRateChange: func,\n onPlaybackQualityChange: func,\n onProgress: func,\n onClickPreview: func,\n onEnablePIP: func,\n onDisablePIP: func\n};\nconst noop = () => {\n};\nconst defaultProps = {\n playing: false,\n loop: false,\n controls: false,\n volume: null,\n muted: false,\n playbackRate: 1,\n width: \"640px\",\n height: \"360px\",\n style: {},\n progressInterval: 1e3,\n playsinline: false,\n pip: false,\n stopOnUnmount: true,\n light: false,\n fallback: null,\n wrapper: \"div\",\n previewTabIndex: 0,\n previewAriaLabel: \"\",\n oEmbedUrl: \"https://noembed.com/embed?url={url}\",\n config: {\n soundcloud: {\n options: {\n visual: true,\n // Undocumented, but makes player fill container and look better\n buying: false,\n liking: false,\n download: false,\n sharing: false,\n show_comments: false,\n show_playcount: false\n }\n },\n youtube: {\n playerVars: {\n playsinline: 1,\n showinfo: 0,\n rel: 0,\n iv_load_policy: 3,\n modestbranding: 1\n },\n embedOptions: {},\n onUnstarted: noop\n },\n facebook: {\n appId: \"1309697205772819\",\n version: \"v3.3\",\n playerId: null,\n attributes: {}\n },\n dailymotion: {\n params: {\n api: 1,\n \"endscreen-enable\": false\n }\n },\n vimeo: {\n playerOptions: {\n autopause: false,\n byline: false,\n portrait: false,\n title: false\n },\n title: null\n },\n mux: {\n attributes: {},\n version: \"2\"\n },\n file: {\n attributes: {},\n tracks: [],\n forceVideo: false,\n forceAudio: false,\n forceHLS: false,\n forceDASH: false,\n forceFLV: false,\n hlsOptions: {},\n hlsVersion: \"1.1.4\",\n dashVersion: \"3.1.3\",\n flvVersion: \"1.5.0\",\n forceDisableHls: false\n },\n wistia: {\n options: {},\n playerId: null,\n customControls: null\n },\n mixcloud: {\n options: {\n hide_cover: 1\n }\n },\n twitch: {\n options: {},\n playerId: null\n },\n vidyard: {\n options: {}\n }\n },\n onReady: noop,\n onStart: noop,\n onPlay: noop,\n onPause: noop,\n onBuffer: noop,\n onBufferEnd: noop,\n onEnded: noop,\n onError: noop,\n onDuration: noop,\n onSeek: noop,\n onPlaybackRateChange: noop,\n onPlaybackQualityChange: noop,\n onProgress: noop,\n onClickPreview: noop,\n onEnablePIP: noop,\n onDisablePIP: noop\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar utils_exports = {};\n__export(utils_exports, {\n callPlayer: () => callPlayer,\n getConfig: () => getConfig,\n getSDK: () => getSDK,\n isBlobUrl: () => isBlobUrl,\n isMediaStream: () => isMediaStream,\n lazy: () => lazy,\n omit: () => omit,\n parseEndTime: () => parseEndTime,\n parseStartTime: () => parseStartTime,\n queryString: () => queryString,\n randomString: () => randomString,\n supportsWebKitPresentationMode: () => supportsWebKitPresentationMode\n});\nmodule.exports = __toCommonJS(utils_exports);\nvar import_react = __toESM(require(\"react\"));\nvar import_load_script = __toESM(require(\"load-script\"));\nvar import_deepmerge = __toESM(require(\"deepmerge\"));\nconst lazy = (componentImportFn) => import_react.default.lazy(async () => {\n const obj = await componentImportFn();\n return typeof obj.default === \"function\" ? obj : obj.default;\n});\nconst MATCH_START_QUERY = /[?&#](?:start|t)=([0-9hms]+)/;\nconst MATCH_END_QUERY = /[?&#]end=([0-9hms]+)/;\nconst MATCH_START_STAMP = /(\\d+)(h|m|s)/g;\nconst MATCH_NUMERIC = /^\\d+$/;\nfunction parseTimeParam(url, pattern) {\n if (url instanceof Array) {\n return void 0;\n }\n const match = url.match(pattern);\n if (match) {\n const stamp = match[1];\n if (stamp.match(MATCH_START_STAMP)) {\n return parseTimeString(stamp);\n }\n if (MATCH_NUMERIC.test(stamp)) {\n return parseInt(stamp);\n }\n }\n return void 0;\n}\nfunction parseTimeString(stamp) {\n let seconds = 0;\n let array = MATCH_START_STAMP.exec(stamp);\n while (array !== null) {\n const [, count, period] = array;\n if (period === \"h\")\n seconds += parseInt(count, 10) * 60 * 60;\n if (period === \"m\")\n seconds += parseInt(count, 10) * 60;\n if (period === \"s\")\n seconds += parseInt(count, 10);\n array = MATCH_START_STAMP.exec(stamp);\n }\n return seconds;\n}\nfunction parseStartTime(url) {\n return parseTimeParam(url, MATCH_START_QUERY);\n}\nfunction parseEndTime(url) {\n return parseTimeParam(url, MATCH_END_QUERY);\n}\nfunction randomString() {\n return Math.random().toString(36).substr(2, 5);\n}\nfunction queryString(object) {\n return Object.keys(object).map((key) => `${key}=${object[key]}`).join(\"&\");\n}\nfunction getGlobal(key) {\n if (window[key]) {\n return window[key];\n }\n if (window.exports && window.exports[key]) {\n return window.exports[key];\n }\n if (window.module && window.module.exports && window.module.exports[key]) {\n return window.module.exports[key];\n }\n return null;\n}\nconst requests = {};\nconst getSDK = enableStubOn(function getSDK2(url, sdkGlobal, sdkReady = null, isLoaded = () => true, fetchScript = import_load_script.default) {\n const existingGlobal = getGlobal(sdkGlobal);\n if (existingGlobal && isLoaded(existingGlobal)) {\n return Promise.resolve(existingGlobal);\n }\n return new Promise((resolve, reject) => {\n if (requests[url]) {\n requests[url].push({ resolve, reject });\n return;\n }\n requests[url] = [{ resolve, reject }];\n const onLoaded = (sdk) => {\n requests[url].forEach((request) => request.resolve(sdk));\n };\n if (sdkReady) {\n const previousOnReady = window[sdkReady];\n window[sdkReady] = function() {\n if (previousOnReady)\n previousOnReady();\n onLoaded(getGlobal(sdkGlobal));\n };\n }\n fetchScript(url, (err) => {\n if (err) {\n requests[url].forEach((request) => request.reject(err));\n requests[url] = null;\n } else if (!sdkReady) {\n onLoaded(getGlobal(sdkGlobal));\n }\n });\n });\n});\nfunction getConfig(props, defaultProps) {\n return (0, import_deepmerge.default)(defaultProps.config, props.config);\n}\nfunction omit(object, ...arrays) {\n const omitKeys = [].concat(...arrays);\n const output = {};\n const keys = Object.keys(object);\n for (const key of keys) {\n if (omitKeys.indexOf(key) === -1) {\n output[key] = object[key];\n }\n }\n return output;\n}\nfunction callPlayer(method, ...args) {\n if (!this.player || !this.player[method]) {\n let message = `ReactPlayer: ${this.constructor.displayName} player could not call %c${method}%c \\u2013 `;\n if (!this.player) {\n message += \"The player was not available\";\n } else if (!this.player[method]) {\n message += \"The method was not available\";\n }\n console.warn(message, \"font-weight: bold\", \"\");\n return null;\n }\n return this.player[method](...args);\n}\nfunction isMediaStream(url) {\n return typeof window !== \"undefined\" && typeof window.MediaStream !== \"undefined\" && url instanceof window.MediaStream;\n}\nfunction isBlobUrl(url) {\n return /^blob:/.test(url);\n}\nfunction supportsWebKitPresentationMode(video = document.createElement(\"video\")) {\n const notMobile = /iPhone|iPod/.test(navigator.userAgent) === false;\n return video.webkitSupportsPresentationMode && typeof video.webkitSetPresentationMode === \"function\" && notMobile;\n}\nfunction enableStubOn(fn) {\n if (false) {\n const wrap = (...args) => wrap.stub(...args);\n wrap.stub = fn;\n return wrap;\n }\n return fn;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _default = function _default(position, metric, axis) {\n var positionPercent = position === 0 ? position : position + metric;\n var positionCss = axis === 'horizontal' ? [positionPercent, 0, 0] : [0, positionPercent, 0];\n var transitionProp = 'translate3d';\n var translatedPosition = '(' + positionCss.join(',') + ')';\n return transitionProp + translatedPosition;\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fadeAnimationHandler = exports.slideStopSwipingHandler = exports.slideSwipeAnimationHandler = exports.slideAnimationHandler = void 0;\n\nvar _react = require(\"react\");\n\nvar _CSSTranslate = _interopRequireDefault(require(\"../../CSSTranslate\"));\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Main animation handler for the default 'sliding' style animation\n * @param props\n * @param state\n */\nvar slideAnimationHandler = function slideAnimationHandler(props, state) {\n var returnStyles = {};\n var selectedItem = state.selectedItem;\n var previousItem = selectedItem;\n var lastPosition = _react.Children.count(props.children) - 1;\n var needClonedSlide = props.infiniteLoop && (selectedItem < 0 || selectedItem > lastPosition); // Handle list position if it needs a clone\n\n if (needClonedSlide) {\n if (previousItem < 0) {\n if (props.centerMode && props.centerSlidePercentage && props.axis === 'horizontal') {\n returnStyles.itemListStyle = (0, _utils.setPosition)(-(lastPosition + 2) * props.centerSlidePercentage - (100 - props.centerSlidePercentage) / 2, props.axis);\n } else {\n returnStyles.itemListStyle = (0, _utils.setPosition)(-(lastPosition + 2) * 100, props.axis);\n }\n } else if (previousItem > lastPosition) {\n returnStyles.itemListStyle = (0, _utils.setPosition)(0, props.axis);\n }\n\n return returnStyles;\n }\n\n var currentPosition = (0, _utils.getPosition)(selectedItem, props); // if 3d is available, let's take advantage of the performance of transform\n\n var transformProp = (0, _CSSTranslate.default)(currentPosition, '%', props.axis);\n var transitionTime = props.transitionTime + 'ms';\n returnStyles.itemListStyle = {\n WebkitTransform: transformProp,\n msTransform: transformProp,\n OTransform: transformProp,\n transform: transformProp\n };\n\n if (!state.swiping) {\n returnStyles.itemListStyle = _objectSpread(_objectSpread({}, returnStyles.itemListStyle), {}, {\n WebkitTransitionDuration: transitionTime,\n MozTransitionDuration: transitionTime,\n OTransitionDuration: transitionTime,\n transitionDuration: transitionTime,\n msTransitionDuration: transitionTime\n });\n }\n\n return returnStyles;\n};\n/**\n * Swiping animation handler for the default 'sliding' style animation\n * @param delta\n * @param props\n * @param state\n * @param setState\n */\n\n\nexports.slideAnimationHandler = slideAnimationHandler;\n\nvar slideSwipeAnimationHandler = function slideSwipeAnimationHandler(delta, props, state, setState) {\n var returnStyles = {};\n var isHorizontal = props.axis === 'horizontal';\n\n var childrenLength = _react.Children.count(props.children);\n\n var initialBoundry = 0;\n var currentPosition = (0, _utils.getPosition)(state.selectedItem, props);\n var finalBoundry = props.infiniteLoop ? (0, _utils.getPosition)(childrenLength - 1, props) - 100 : (0, _utils.getPosition)(childrenLength - 1, props);\n var axisDelta = isHorizontal ? delta.x : delta.y;\n var handledDelta = axisDelta; // prevent user from swiping left out of boundaries\n\n if (currentPosition === initialBoundry && axisDelta > 0) {\n handledDelta = 0;\n } // prevent user from swiping right out of boundaries\n\n\n if (currentPosition === finalBoundry && axisDelta < 0) {\n handledDelta = 0;\n }\n\n var position = currentPosition + 100 / (state.itemSize / handledDelta);\n var hasMoved = Math.abs(axisDelta) > props.swipeScrollTolerance;\n\n if (props.infiniteLoop && hasMoved) {\n // When allowing infinite loop, if we slide left from position 0 we reveal the cloned last slide that appears before it\n // if we slide even further we need to jump to other side so it can continue - and vice versa for the last slide\n if (state.selectedItem === 0 && position > -100) {\n position -= childrenLength * 100;\n } else if (state.selectedItem === childrenLength - 1 && position < -childrenLength * 100) {\n position += childrenLength * 100;\n }\n }\n\n if (!props.preventMovementUntilSwipeScrollTolerance || hasMoved || state.swipeMovementStarted) {\n if (!state.swipeMovementStarted) {\n setState({\n swipeMovementStarted: true\n });\n }\n\n returnStyles.itemListStyle = (0, _utils.setPosition)(position, props.axis);\n } //allows scroll if the swipe was within the tolerance\n\n\n if (hasMoved && !state.cancelClick) {\n setState({\n cancelClick: true\n });\n }\n\n return returnStyles;\n};\n/**\n * Default 'sliding' style animination handler for when a swipe action stops.\n * @param props\n * @param state\n */\n\n\nexports.slideSwipeAnimationHandler = slideSwipeAnimationHandler;\n\nvar slideStopSwipingHandler = function slideStopSwipingHandler(props, state) {\n var currentPosition = (0, _utils.getPosition)(state.selectedItem, props);\n var itemListStyle = (0, _utils.setPosition)(currentPosition, props.axis);\n return {\n itemListStyle: itemListStyle\n };\n};\n/**\n * Main animation handler for the default 'fade' style animation\n * @param props\n * @param state\n */\n\n\nexports.slideStopSwipingHandler = slideStopSwipingHandler;\n\nvar fadeAnimationHandler = function fadeAnimationHandler(props, state) {\n var transitionTime = props.transitionTime + 'ms';\n var transitionTimingFunction = 'ease-in-out';\n var slideStyle = {\n position: 'absolute',\n display: 'block',\n zIndex: -2,\n minHeight: '100%',\n opacity: 0,\n top: 0,\n right: 0,\n left: 0,\n bottom: 0,\n transitionTimingFunction: transitionTimingFunction,\n msTransitionTimingFunction: transitionTimingFunction,\n MozTransitionTimingFunction: transitionTimingFunction,\n WebkitTransitionTimingFunction: transitionTimingFunction,\n OTransitionTimingFunction: transitionTimingFunction\n };\n\n if (!state.swiping) {\n slideStyle = _objectSpread(_objectSpread({}, slideStyle), {}, {\n WebkitTransitionDuration: transitionTime,\n MozTransitionDuration: transitionTime,\n OTransitionDuration: transitionTime,\n transitionDuration: transitionTime,\n msTransitionDuration: transitionTime\n });\n }\n\n return {\n slideStyle: slideStyle,\n selectedStyle: _objectSpread(_objectSpread({}, slideStyle), {}, {\n opacity: 1,\n position: 'relative'\n }),\n prevStyle: _objectSpread({}, slideStyle)\n };\n};\n\nexports.fadeAnimationHandler = fadeAnimationHandler;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactEasySwipe = _interopRequireDefault(require(\"react-easy-swipe\"));\n\nvar _cssClasses = _interopRequireDefault(require(\"../../cssClasses\"));\n\nvar _Thumbs = _interopRequireDefault(require(\"../Thumbs\"));\n\nvar _document = _interopRequireDefault(require(\"../../shims/document\"));\n\nvar _window = _interopRequireDefault(require(\"../../shims/window\"));\n\nvar _utils = require(\"./utils\");\n\nvar _animations = require(\"./animations\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Carousel = /*#__PURE__*/function (_React$Component) {\n _inherits(Carousel, _React$Component);\n\n var _super = _createSuper(Carousel);\n\n // @ts-ignore\n function Carousel(props) {\n var _this;\n\n _classCallCheck(this, Carousel);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"thumbsRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"carouselWrapperRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"listRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"itemsRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"timer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"animationHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setThumbsRef\", function (node) {\n _this.thumbsRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setCarouselWrapperRef\", function (node) {\n _this.carouselWrapperRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setListRef\", function (node) {\n _this.listRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setItemsRef\", function (node, index) {\n if (!_this.itemsRef) {\n _this.itemsRef = [];\n }\n\n _this.itemsRef[index] = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function () {\n if (_react.Children.count(_this.props.children) <= 1) {\n return;\n }\n\n _this.clearAutoPlay();\n\n if (!_this.props.autoPlay) {\n return;\n }\n\n _this.timer = setTimeout(function () {\n _this.increment();\n }, _this.props.interval);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clearAutoPlay\", function () {\n if (_this.timer) clearTimeout(_this.timer);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resetAutoPlay\", function () {\n _this.clearAutoPlay();\n\n _this.autoPlay();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"stopOnHover\", function () {\n _this.setState({\n isMouseEntered: true\n }, _this.clearAutoPlay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"startOnLeave\", function () {\n _this.setState({\n isMouseEntered: false\n }, _this.autoPlay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"isFocusWithinTheCarousel\", function () {\n if (!_this.carouselWrapperRef) {\n return false;\n }\n\n if ((0, _document.default)().activeElement === _this.carouselWrapperRef || _this.carouselWrapperRef.contains((0, _document.default)().activeElement)) {\n return true;\n }\n\n return false;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"navigateWithKeyboard\", function (e) {\n if (!_this.isFocusWithinTheCarousel()) {\n return;\n }\n\n var axis = _this.props.axis;\n var isHorizontal = axis === 'horizontal';\n var keyNames = {\n ArrowUp: 38,\n ArrowRight: 39,\n ArrowDown: 40,\n ArrowLeft: 37\n };\n var nextKey = isHorizontal ? keyNames.ArrowRight : keyNames.ArrowDown;\n var prevKey = isHorizontal ? keyNames.ArrowLeft : keyNames.ArrowUp;\n\n if (nextKey === e.keyCode) {\n _this.increment();\n } else if (prevKey === e.keyCode) {\n _this.decrement();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateSizes\", function () {\n if (!_this.state.initialized || !_this.itemsRef || _this.itemsRef.length === 0) {\n return;\n }\n\n var isHorizontal = _this.props.axis === 'horizontal';\n var firstItem = _this.itemsRef[0];\n\n if (!firstItem) {\n return;\n }\n\n var itemSize = isHorizontal ? firstItem.clientWidth : firstItem.clientHeight;\n\n _this.setState({\n itemSize: itemSize\n });\n\n if (_this.thumbsRef) {\n _this.thumbsRef.updateSizes();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setMountState\", function () {\n _this.setState({\n hasMount: true\n });\n\n _this.updateSizes();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickItem\", function (index, item) {\n if (_react.Children.count(_this.props.children) === 0) {\n return;\n }\n\n if (_this.state.cancelClick) {\n _this.setState({\n cancelClick: false\n });\n\n return;\n }\n\n _this.props.onClickItem(index, item);\n\n if (index !== _this.state.selectedItem) {\n _this.setState({\n selectedItem: index\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleOnChange\", function (index, item) {\n if (_react.Children.count(_this.props.children) <= 1) {\n return;\n }\n\n _this.props.onChange(index, item);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickThumb\", function (index, item) {\n _this.props.onClickThumb(index, item);\n\n _this.moveTo(index);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeStart\", function (event) {\n _this.setState({\n swiping: true\n });\n\n _this.props.onSwipeStart(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeEnd\", function (event) {\n _this.setState({\n swiping: false,\n cancelClick: false,\n swipeMovementStarted: false\n });\n\n _this.props.onSwipeEnd(event);\n\n _this.clearAutoPlay();\n\n if (_this.state.autoPlay) {\n _this.autoPlay();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeMove\", function (delta, event) {\n _this.props.onSwipeMove(event);\n\n var animationHandlerResponse = _this.props.swipeAnimationHandler(delta, _this.props, _this.state, _this.setState.bind(_assertThisInitialized(_this)));\n\n _this.setState(_objectSpread({}, animationHandlerResponse)); // If we have not moved, we should have an empty object returned\n // Return false to allow scrolling when not swiping\n\n\n return !!Object.keys(animationHandlerResponse).length;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"decrement\", function () {\n var positions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n _this.moveTo(_this.state.selectedItem - (typeof positions === 'number' ? positions : 1));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"increment\", function () {\n var positions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n _this.moveTo(_this.state.selectedItem + (typeof positions === 'number' ? positions : 1));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"moveTo\", function (position) {\n if (typeof position !== 'number') {\n return;\n }\n\n var lastPosition = _react.Children.count(_this.props.children) - 1;\n\n if (position < 0) {\n position = _this.props.infiniteLoop ? lastPosition : 0;\n }\n\n if (position > lastPosition) {\n position = _this.props.infiniteLoop ? 0 : lastPosition;\n }\n\n _this.selectItem({\n // if it's not a slider, we don't need to set position here\n selectedItem: position\n }); // don't reset auto play when stop on hover is enabled, doing so will trigger a call to auto play more than once\n // and will result in the interval function not being cleared correctly.\n\n\n if (_this.state.autoPlay && _this.state.isMouseEntered === false) {\n _this.resetAutoPlay();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClickNext\", function () {\n _this.increment(1);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClickPrev\", function () {\n _this.decrement(1);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeForward\", function () {\n _this.increment(1);\n\n if (_this.props.emulateTouch) {\n _this.setState({\n cancelClick: true\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeBackwards\", function () {\n _this.decrement(1);\n\n if (_this.props.emulateTouch) {\n _this.setState({\n cancelClick: true\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeItem\", function (newIndex) {\n return function (e) {\n if (!(0, _utils.isKeyboardEvent)(e) || e.key === 'Enter') {\n _this.moveTo(newIndex);\n }\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectItem\", function (state) {\n // Merge in the new state while updating updating previous item\n _this.setState(_objectSpread({\n previousItem: _this.state.selectedItem\n }, state), function () {\n // Run animation handler and update styles based on it\n _this.setState(_this.animationHandler(_this.props, _this.state));\n });\n\n _this.handleOnChange(state.selectedItem, _react.Children.toArray(_this.props.children)[state.selectedItem]);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInitialImage\", function () {\n var selectedItem = _this.props.selectedItem;\n var item = _this.itemsRef && _this.itemsRef[selectedItem];\n var images = item && item.getElementsByTagName('img') || [];\n return images[0];\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getVariableItemHeight\", function (position) {\n var item = _this.itemsRef && _this.itemsRef[position];\n\n if (_this.state.hasMount && item && item.children.length) {\n var slideImages = item.children[0].getElementsByTagName('img') || [];\n\n if (slideImages.length > 0) {\n var image = slideImages[0];\n\n if (!image.complete) {\n // if the image is still loading, the size won't be available so we trigger a new render after it's done\n var onImageLoad = function onImageLoad() {\n _this.forceUpdate();\n\n image.removeEventListener('load', onImageLoad);\n };\n\n image.addEventListener('load', onImageLoad);\n }\n } // try to get img first, if img not there find first display tag\n\n\n var displayItem = slideImages[0] || item.children[0];\n var height = displayItem.clientHeight;\n return height > 0 ? height : null;\n }\n\n return null;\n });\n\n var initState = {\n initialized: false,\n previousItem: props.selectedItem,\n selectedItem: props.selectedItem,\n hasMount: false,\n isMouseEntered: false,\n autoPlay: props.autoPlay,\n swiping: false,\n swipeMovementStarted: false,\n cancelClick: false,\n itemSize: 1,\n itemListStyle: {},\n slideStyle: {},\n selectedStyle: {},\n prevStyle: {}\n };\n _this.animationHandler = typeof props.animationHandler === 'function' && props.animationHandler || props.animationHandler === 'fade' && _animations.fadeAnimationHandler || _animations.slideAnimationHandler;\n _this.state = _objectSpread(_objectSpread({}, initState), _this.animationHandler(props, initState));\n return _this;\n }\n\n _createClass(Carousel, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.children) {\n return;\n }\n\n this.setupCarousel();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (!prevProps.children && this.props.children && !this.state.initialized) {\n this.setupCarousel();\n }\n\n if (!prevProps.autoFocus && this.props.autoFocus) {\n this.forceFocus();\n }\n\n if (prevState.swiping && !this.state.swiping) {\n // We stopped swiping, ensure we are heading to the new/current slide and not stuck\n this.setState(_objectSpread({}, this.props.stopSwipingHandler(this.props, this.state)));\n }\n\n if (prevProps.selectedItem !== this.props.selectedItem || prevProps.centerMode !== this.props.centerMode) {\n this.updateSizes();\n this.moveTo(this.props.selectedItem);\n }\n\n if (prevProps.autoPlay !== this.props.autoPlay) {\n if (this.props.autoPlay) {\n this.setupAutoPlay();\n } else {\n this.destroyAutoPlay();\n }\n\n this.setState({\n autoPlay: this.props.autoPlay\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyCarousel();\n }\n }, {\n key: \"setupCarousel\",\n value: function setupCarousel() {\n var _this2 = this;\n\n this.bindEvents();\n\n if (this.state.autoPlay && _react.Children.count(this.props.children) > 1) {\n this.setupAutoPlay();\n }\n\n if (this.props.autoFocus) {\n this.forceFocus();\n }\n\n this.setState({\n initialized: true\n }, function () {\n var initialImage = _this2.getInitialImage();\n\n if (initialImage && !initialImage.complete) {\n // if it's a carousel of images, we set the mount state after the first image is loaded\n initialImage.addEventListener('load', _this2.setMountState);\n } else {\n _this2.setMountState();\n }\n });\n }\n }, {\n key: \"destroyCarousel\",\n value: function destroyCarousel() {\n if (this.state.initialized) {\n this.unbindEvents();\n this.destroyAutoPlay();\n }\n }\n }, {\n key: \"setupAutoPlay\",\n value: function setupAutoPlay() {\n this.autoPlay();\n var carouselWrapper = this.carouselWrapperRef;\n\n if (this.props.stopOnHover && carouselWrapper) {\n carouselWrapper.addEventListener('mouseenter', this.stopOnHover);\n carouselWrapper.addEventListener('mouseleave', this.startOnLeave);\n }\n }\n }, {\n key: \"destroyAutoPlay\",\n value: function destroyAutoPlay() {\n this.clearAutoPlay();\n var carouselWrapper = this.carouselWrapperRef;\n\n if (this.props.stopOnHover && carouselWrapper) {\n carouselWrapper.removeEventListener('mouseenter', this.stopOnHover);\n carouselWrapper.removeEventListener('mouseleave', this.startOnLeave);\n }\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n // as the widths are calculated, we need to resize\n // the carousel when the window is resized\n (0, _window.default)().addEventListener('resize', this.updateSizes); // issue #2 - image loading smaller\n\n (0, _window.default)().addEventListener('DOMContentLoaded', this.updateSizes);\n\n if (this.props.useKeyboardArrows) {\n (0, _document.default)().addEventListener('keydown', this.navigateWithKeyboard);\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n // removing listeners\n (0, _window.default)().removeEventListener('resize', this.updateSizes);\n (0, _window.default)().removeEventListener('DOMContentLoaded', this.updateSizes);\n var initialImage = this.getInitialImage();\n\n if (initialImage) {\n initialImage.removeEventListener('load', this.setMountState);\n }\n\n if (this.props.useKeyboardArrows) {\n (0, _document.default)().removeEventListener('keydown', this.navigateWithKeyboard);\n }\n }\n }, {\n key: \"forceFocus\",\n value: function forceFocus() {\n var _this$carouselWrapper;\n\n (_this$carouselWrapper = this.carouselWrapperRef) === null || _this$carouselWrapper === void 0 ? void 0 : _this$carouselWrapper.focus();\n }\n }, {\n key: \"renderItems\",\n value: function renderItems(isClone) {\n var _this3 = this;\n\n if (!this.props.children) {\n return [];\n }\n\n return _react.Children.map(this.props.children, function (item, index) {\n var isSelected = index === _this3.state.selectedItem;\n var isPrevious = index === _this3.state.previousItem;\n var style = isSelected && _this3.state.selectedStyle || isPrevious && _this3.state.prevStyle || _this3.state.slideStyle || {};\n\n if (_this3.props.centerMode && _this3.props.axis === 'horizontal') {\n style = _objectSpread(_objectSpread({}, style), {}, {\n minWidth: _this3.props.centerSlidePercentage + '%'\n });\n }\n\n if (_this3.state.swiping && _this3.state.swipeMovementStarted) {\n style = _objectSpread(_objectSpread({}, style), {}, {\n pointerEvents: 'none'\n });\n }\n\n var slideProps = {\n ref: function ref(e) {\n return _this3.setItemsRef(e, index);\n },\n key: 'itemKey' + index + (isClone ? 'clone' : ''),\n className: _cssClasses.default.ITEM(true, index === _this3.state.selectedItem, index === _this3.state.previousItem),\n onClick: _this3.handleClickItem.bind(_this3, index, item),\n style: style\n };\n return /*#__PURE__*/_react.default.createElement(\"li\", slideProps, _this3.props.renderItem(item, {\n isSelected: index === _this3.state.selectedItem,\n isPrevious: index === _this3.state.previousItem\n }));\n });\n }\n }, {\n key: \"renderControls\",\n value: function renderControls() {\n var _this4 = this;\n\n var _this$props = this.props,\n showIndicators = _this$props.showIndicators,\n labels = _this$props.labels,\n renderIndicator = _this$props.renderIndicator,\n children = _this$props.children;\n\n if (!showIndicators) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"ul\", {\n className: \"control-dots\"\n }, _react.Children.map(children, function (_, index) {\n return renderIndicator && renderIndicator(_this4.changeItem(index), index === _this4.state.selectedItem, index, labels.item);\n }));\n }\n }, {\n key: \"renderStatus\",\n value: function renderStatus() {\n if (!this.props.showStatus) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"p\", {\n className: \"carousel-status\"\n }, this.props.statusFormatter(this.state.selectedItem + 1, _react.Children.count(this.props.children)));\n }\n }, {\n key: \"renderThumbs\",\n value: function renderThumbs() {\n if (!this.props.showThumbs || !this.props.children || _react.Children.count(this.props.children) === 0) {\n return null;\n }\n\n return /*#__PURE__*/_react.default.createElement(_Thumbs.default, {\n ref: this.setThumbsRef,\n onSelectItem: this.handleClickThumb,\n selectedItem: this.state.selectedItem,\n transitionTime: this.props.transitionTime,\n thumbWidth: this.props.thumbWidth,\n labels: this.props.labels,\n emulateTouch: this.props.emulateTouch\n }, this.props.renderThumbs(this.props.children));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n if (!this.props.children || _react.Children.count(this.props.children) === 0) {\n return null;\n }\n\n var isSwipeable = this.props.swipeable && _react.Children.count(this.props.children) > 1;\n var isHorizontal = this.props.axis === 'horizontal';\n var canShowArrows = this.props.showArrows && _react.Children.count(this.props.children) > 1; // show left arrow?\n\n var hasPrev = canShowArrows && (this.state.selectedItem > 0 || this.props.infiniteLoop) || false; // show right arrow\n\n var hasNext = canShowArrows && (this.state.selectedItem < _react.Children.count(this.props.children) - 1 || this.props.infiniteLoop) || false;\n var itemsClone = this.renderItems(true);\n var firstClone = itemsClone.shift();\n var lastClone = itemsClone.pop();\n var swiperProps = {\n className: _cssClasses.default.SLIDER(true, this.state.swiping),\n onSwipeMove: this.onSwipeMove,\n onSwipeStart: this.onSwipeStart,\n onSwipeEnd: this.onSwipeEnd,\n style: this.state.itemListStyle,\n tolerance: this.props.swipeScrollTolerance\n };\n var containerStyles = {};\n\n if (isHorizontal) {\n swiperProps.onSwipeLeft = this.onSwipeForward;\n swiperProps.onSwipeRight = this.onSwipeBackwards;\n\n if (this.props.dynamicHeight) {\n var itemHeight = this.getVariableItemHeight(this.state.selectedItem); // swiperProps.style.height = itemHeight || 'auto';\n\n containerStyles.height = itemHeight || 'auto';\n }\n } else {\n swiperProps.onSwipeUp = this.props.verticalSwipe === 'natural' ? this.onSwipeBackwards : this.onSwipeForward;\n swiperProps.onSwipeDown = this.props.verticalSwipe === 'natural' ? this.onSwipeForward : this.onSwipeBackwards;\n swiperProps.style = _objectSpread(_objectSpread({}, swiperProps.style), {}, {\n height: this.state.itemSize\n });\n containerStyles.height = this.state.itemSize;\n }\n\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n \"aria-label\": this.props.ariaLabel,\n className: _cssClasses.default.ROOT(this.props.className),\n ref: this.setCarouselWrapperRef,\n tabIndex: this.props.useKeyboardArrows ? 0 : undefined\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.CAROUSEL(true),\n style: {\n width: this.props.width\n }\n }, this.renderControls(), this.props.renderArrowPrev(this.onClickPrev, hasPrev, this.props.labels.leftArrow), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.WRAPPER(true, this.props.axis),\n style: containerStyles\n }, isSwipeable ? /*#__PURE__*/_react.default.createElement(_reactEasySwipe.default, _extends({\n tagName: \"ul\",\n innerRef: this.setListRef\n }, swiperProps, {\n allowMouseEvents: this.props.emulateTouch\n }), this.props.infiniteLoop && lastClone, this.renderItems(), this.props.infiniteLoop && firstClone) : /*#__PURE__*/_react.default.createElement(\"ul\", {\n className: _cssClasses.default.SLIDER(true, this.state.swiping),\n ref: function ref(node) {\n return _this5.setListRef(node);\n },\n style: this.state.itemListStyle || {}\n }, this.props.infiniteLoop && lastClone, this.renderItems(), this.props.infiniteLoop && firstClone)), this.props.renderArrowNext(this.onClickNext, hasNext, this.props.labels.rightArrow), this.renderStatus()), this.renderThumbs());\n }\n }]);\n\n return Carousel;\n}(_react.default.Component);\n\nexports.default = Carousel;\n\n_defineProperty(Carousel, \"displayName\", 'Carousel');\n\n_defineProperty(Carousel, \"defaultProps\", {\n ariaLabel: undefined,\n axis: 'horizontal',\n centerSlidePercentage: 80,\n interval: 3000,\n labels: {\n leftArrow: 'previous slide / item',\n rightArrow: 'next slide / item',\n item: 'slide item'\n },\n onClickItem: _utils.noop,\n onClickThumb: _utils.noop,\n onChange: _utils.noop,\n onSwipeStart: function onSwipeStart() {},\n onSwipeEnd: function onSwipeEnd() {},\n onSwipeMove: function onSwipeMove() {\n return false;\n },\n preventMovementUntilSwipeScrollTolerance: false,\n renderArrowPrev: function renderArrowPrev(onClickHandler, hasPrev, label) {\n return /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: _cssClasses.default.ARROW_PREV(!hasPrev),\n onClick: onClickHandler\n });\n },\n renderArrowNext: function renderArrowNext(onClickHandler, hasNext, label) {\n return /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: _cssClasses.default.ARROW_NEXT(!hasNext),\n onClick: onClickHandler\n });\n },\n renderIndicator: function renderIndicator(onClickHandler, isSelected, index, label) {\n return /*#__PURE__*/_react.default.createElement(\"li\", {\n className: _cssClasses.default.DOT(isSelected),\n onClick: onClickHandler,\n onKeyDown: onClickHandler,\n value: index,\n key: index,\n role: \"button\",\n tabIndex: 0,\n \"aria-label\": \"\".concat(label, \" \").concat(index + 1)\n });\n },\n renderItem: function renderItem(item) {\n return item;\n },\n renderThumbs: function renderThumbs(children) {\n var images = _react.Children.map(children, function (item) {\n var img = item; // if the item is not an image, try to find the first image in the item's children.\n\n if (item.type !== 'img') {\n img = _react.Children.toArray(item.props.children).find(function (children) {\n return children.type === 'img';\n });\n }\n\n if (!img) {\n return undefined;\n }\n\n return img;\n });\n\n if (images.filter(function (image) {\n return image;\n }).length === 0) {\n console.warn(\"No images found! Can't build the thumb list without images. If you don't need thumbs, set showThumbs={false} in the Carousel. Note that it's not possible to get images rendered inside custom components. More info at https://github.com/leandrowd/react-responsive-carousel/blob/master/TROUBLESHOOTING.md\");\n return [];\n }\n\n return images;\n },\n statusFormatter: _utils.defaultStatusFormatter,\n selectedItem: 0,\n showArrows: true,\n showIndicators: true,\n showStatus: true,\n showThumbs: true,\n stopOnHover: true,\n swipeScrollTolerance: 5,\n swipeable: true,\n transitionTime: 350,\n verticalSwipe: 'standard',\n width: '100%',\n animationHandler: 'slide',\n swipeAnimationHandler: _animations.slideSwipeAnimationHandler,\n stopSwipingHandler: _animations.slideStopSwipingHandler\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setPosition = exports.getPosition = exports.isKeyboardEvent = exports.defaultStatusFormatter = exports.noop = void 0;\n\nvar _react = require(\"react\");\n\nvar _CSSTranslate = _interopRequireDefault(require(\"../../CSSTranslate\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar noop = function noop() {};\n\nexports.noop = noop;\n\nvar defaultStatusFormatter = function defaultStatusFormatter(current, total) {\n return \"\".concat(current, \" of \").concat(total);\n};\n\nexports.defaultStatusFormatter = defaultStatusFormatter;\n\nvar isKeyboardEvent = function isKeyboardEvent(e) {\n return e ? e.hasOwnProperty('key') : false;\n};\n/**\n * Gets the list 'position' relative to a current index\n * @param index\n */\n\n\nexports.isKeyboardEvent = isKeyboardEvent;\n\nvar getPosition = function getPosition(index, props) {\n if (props.infiniteLoop) {\n // index has to be added by 1 because of the first cloned slide\n ++index;\n }\n\n if (index === 0) {\n return 0;\n }\n\n var childrenLength = _react.Children.count(props.children);\n\n if (props.centerMode && props.axis === 'horizontal') {\n var currentPosition = -index * props.centerSlidePercentage;\n var lastPosition = childrenLength - 1;\n\n if (index && (index !== lastPosition || props.infiniteLoop)) {\n currentPosition += (100 - props.centerSlidePercentage) / 2;\n } else if (index === lastPosition) {\n currentPosition += 100 - props.centerSlidePercentage;\n }\n\n return currentPosition;\n }\n\n return -index * 100;\n};\n/**\n * Sets the 'position' transform for sliding animations\n * @param position\n * @param forceReflow\n */\n\n\nexports.getPosition = getPosition;\n\nvar setPosition = function setPosition(position, axis) {\n var style = {};\n ['WebkitTransform', 'MozTransform', 'MsTransform', 'OTransform', 'transform', 'msTransform'].forEach(function (prop) {\n // @ts-ignore\n style[prop] = (0, _CSSTranslate.default)(position, '%', axis);\n });\n return style;\n};\n\nexports.setPosition = setPosition;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _cssClasses = _interopRequireDefault(require(\"../cssClasses\"));\n\nvar _dimensions = require(\"../dimensions\");\n\nvar _CSSTranslate = _interopRequireDefault(require(\"../CSSTranslate\"));\n\nvar _reactEasySwipe = _interopRequireDefault(require(\"react-easy-swipe\"));\n\nvar _window = _interopRequireDefault(require(\"../shims/window\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar isKeyboardEvent = function isKeyboardEvent(e) {\n return e.hasOwnProperty('key');\n};\n\nvar Thumbs = /*#__PURE__*/function (_Component) {\n _inherits(Thumbs, _Component);\n\n var _super = _createSuper(Thumbs);\n\n function Thumbs(_props) {\n var _this;\n\n _classCallCheck(this, Thumbs);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), \"itemsWrapperRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"itemsListRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"thumbsRef\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"setItemsWrapperRef\", function (node) {\n _this.itemsWrapperRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setItemsListRef\", function (node) {\n _this.itemsListRef = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setThumbsRef\", function (node, index) {\n if (!_this.thumbsRef) {\n _this.thumbsRef = [];\n }\n\n _this.thumbsRef[index] = node;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateSizes\", function () {\n if (!_this.props.children || !_this.itemsWrapperRef || !_this.thumbsRef) {\n return;\n }\n\n var total = _react.Children.count(_this.props.children);\n\n var wrapperSize = _this.itemsWrapperRef.clientWidth;\n var itemSize = _this.props.thumbWidth ? _this.props.thumbWidth : (0, _dimensions.outerWidth)(_this.thumbsRef[0]);\n var visibleItems = Math.floor(wrapperSize / itemSize);\n var showArrows = visibleItems < total;\n var lastPosition = showArrows ? total - visibleItems : 0;\n\n _this.setState(function (_state, props) {\n return {\n itemSize: itemSize,\n visibleItems: visibleItems,\n firstItem: showArrows ? _this.getFirstItem(props.selectedItem) : 0,\n lastPosition: lastPosition,\n showArrows: showArrows\n };\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleClickItem\", function (index, item, e) {\n if (!isKeyboardEvent(e) || e.key === 'Enter') {\n var handler = _this.props.onSelectItem;\n\n if (typeof handler === 'function') {\n handler(index, item);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeStart\", function () {\n _this.setState({\n swiping: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeEnd\", function () {\n _this.setState({\n swiping: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSwipeMove\", function (delta) {\n var deltaX = delta.x;\n\n if (!_this.state.itemSize || !_this.itemsWrapperRef || !_this.state.visibleItems) {\n return false;\n }\n\n var leftBoundary = 0;\n\n var childrenLength = _react.Children.count(_this.props.children);\n\n var currentPosition = -(_this.state.firstItem * 100) / _this.state.visibleItems;\n var lastLeftItem = Math.max(childrenLength - _this.state.visibleItems, 0);\n var lastLeftBoundary = -lastLeftItem * 100 / _this.state.visibleItems; // prevent user from swiping left out of boundaries\n\n if (currentPosition === leftBoundary && deltaX > 0) {\n deltaX = 0;\n } // prevent user from swiping right out of boundaries\n\n\n if (currentPosition === lastLeftBoundary && deltaX < 0) {\n deltaX = 0;\n }\n\n var wrapperSize = _this.itemsWrapperRef.clientWidth;\n var position = currentPosition + 100 / (wrapperSize / deltaX); // if 3d isn't available we will use left to move\n\n if (_this.itemsListRef) {\n ['WebkitTransform', 'MozTransform', 'MsTransform', 'OTransform', 'transform', 'msTransform'].forEach(function (prop) {\n _this.itemsListRef.style[prop] = (0, _CSSTranslate.default)(position, '%', _this.props.axis);\n });\n }\n\n return true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideRight\", function (positions) {\n _this.moveTo(_this.state.firstItem - (typeof positions === 'number' ? positions : 1));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideLeft\", function (positions) {\n _this.moveTo(_this.state.firstItem + (typeof positions === 'number' ? positions : 1));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"moveTo\", function (position) {\n // position can't be lower than 0\n position = position < 0 ? 0 : position; // position can't be higher than last postion\n\n position = position >= _this.state.lastPosition ? _this.state.lastPosition : position;\n\n _this.setState({\n firstItem: position\n });\n });\n\n _this.state = {\n selectedItem: _props.selectedItem,\n swiping: false,\n showArrows: false,\n firstItem: 0,\n visibleItems: 0,\n lastPosition: 0\n };\n return _this;\n }\n\n _createClass(Thumbs, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setupThumbs();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.props.selectedItem !== this.state.selectedItem) {\n this.setState({\n selectedItem: this.props.selectedItem,\n firstItem: this.getFirstItem(this.props.selectedItem)\n });\n }\n\n if (this.props.children === prevProps.children) {\n return;\n } // This will capture any size changes for arrow adjustments etc.\n // usually in the same render cycle so we don't see any flickers\n\n\n this.updateSizes();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyThumbs();\n }\n }, {\n key: \"setupThumbs\",\n value: function setupThumbs() {\n // as the widths are calculated, we need to resize\n // the carousel when the window is resized\n (0, _window.default)().addEventListener('resize', this.updateSizes); // issue #2 - image loading smaller\n\n (0, _window.default)().addEventListener('DOMContentLoaded', this.updateSizes); // when the component is rendered we need to calculate\n // the container size to adjust the responsive behaviour\n\n this.updateSizes();\n }\n }, {\n key: \"destroyThumbs\",\n value: function destroyThumbs() {\n // removing listeners\n (0, _window.default)().removeEventListener('resize', this.updateSizes);\n (0, _window.default)().removeEventListener('DOMContentLoaded', this.updateSizes);\n }\n }, {\n key: \"getFirstItem\",\n value: function getFirstItem(selectedItem) {\n var firstItem = selectedItem;\n\n if (selectedItem >= this.state.lastPosition) {\n firstItem = this.state.lastPosition;\n }\n\n if (selectedItem < this.state.firstItem + this.state.visibleItems) {\n firstItem = this.state.firstItem;\n }\n\n if (selectedItem < this.state.firstItem) {\n firstItem = selectedItem;\n }\n\n return firstItem;\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this2 = this;\n\n return this.props.children.map(function (img, index) {\n var itemClass = _cssClasses.default.ITEM(false, index === _this2.state.selectedItem);\n\n var thumbProps = {\n key: index,\n ref: function ref(e) {\n return _this2.setThumbsRef(e, index);\n },\n className: itemClass,\n onClick: _this2.handleClickItem.bind(_this2, index, _this2.props.children[index]),\n onKeyDown: _this2.handleClickItem.bind(_this2, index, _this2.props.children[index]),\n 'aria-label': \"\".concat(_this2.props.labels.item, \" \").concat(index + 1),\n style: {\n width: _this2.props.thumbWidth\n }\n };\n return /*#__PURE__*/_react.default.createElement(\"li\", _extends({}, thumbProps, {\n role: \"button\",\n tabIndex: 0\n }), img);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n if (!this.props.children) {\n return null;\n }\n\n var isSwipeable = _react.Children.count(this.props.children) > 1; // show left arrow?\n\n var hasPrev = this.state.showArrows && this.state.firstItem > 0; // show right arrow\n\n var hasNext = this.state.showArrows && this.state.firstItem < this.state.lastPosition; // obj to hold the transformations and styles\n\n var itemListStyles = {};\n var currentPosition = -this.state.firstItem * (this.state.itemSize || 0);\n var transformProp = (0, _CSSTranslate.default)(currentPosition, 'px', this.props.axis);\n var transitionTime = this.props.transitionTime + 'ms';\n itemListStyles = {\n WebkitTransform: transformProp,\n MozTransform: transformProp,\n MsTransform: transformProp,\n OTransform: transformProp,\n transform: transformProp,\n msTransform: transformProp,\n WebkitTransitionDuration: transitionTime,\n MozTransitionDuration: transitionTime,\n MsTransitionDuration: transitionTime,\n OTransitionDuration: transitionTime,\n transitionDuration: transitionTime,\n msTransitionDuration: transitionTime\n };\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.CAROUSEL(false)\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _cssClasses.default.WRAPPER(false),\n ref: this.setItemsWrapperRef\n }, /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: _cssClasses.default.ARROW_PREV(!hasPrev),\n onClick: function onClick() {\n return _this3.slideRight();\n },\n \"aria-label\": this.props.labels.leftArrow\n }), isSwipeable ? /*#__PURE__*/_react.default.createElement(_reactEasySwipe.default, {\n tagName: \"ul\",\n className: _cssClasses.default.SLIDER(false, this.state.swiping),\n onSwipeLeft: this.slideLeft,\n onSwipeRight: this.slideRight,\n onSwipeMove: this.onSwipeMove,\n onSwipeStart: this.onSwipeStart,\n onSwipeEnd: this.onSwipeEnd,\n style: itemListStyles,\n innerRef: this.setItemsListRef,\n allowMouseEvents: this.props.emulateTouch\n }, this.renderItems()) : /*#__PURE__*/_react.default.createElement(\"ul\", {\n className: _cssClasses.default.SLIDER(false, this.state.swiping),\n ref: function ref(node) {\n return _this3.setItemsListRef(node);\n },\n style: itemListStyles\n }, this.renderItems()), /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: _cssClasses.default.ARROW_NEXT(!hasNext),\n onClick: function onClick() {\n return _this3.slideLeft();\n },\n \"aria-label\": this.props.labels.rightArrow\n })));\n }\n }]);\n\n return Thumbs;\n}(_react.Component);\n\nexports.default = Thumbs;\n\n_defineProperty(Thumbs, \"displayName\", 'Thumbs');\n\n_defineProperty(Thumbs, \"defaultProps\", {\n axis: 'horizontal',\n labels: {\n leftArrow: 'previous slide / item',\n rightArrow: 'next slide / item',\n item: 'slide item'\n },\n selectedItem: 0,\n thumbWidth: 80,\n transitionTime: 350\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar _default = {\n ROOT: function ROOT(customClassName) {\n return (0, _classnames.default)(_defineProperty({\n 'carousel-root': true\n }, customClassName || '', !!customClassName));\n },\n CAROUSEL: function CAROUSEL(isSlider) {\n return (0, _classnames.default)({\n carousel: true,\n 'carousel-slider': isSlider\n });\n },\n WRAPPER: function WRAPPER(isSlider, axis) {\n return (0, _classnames.default)({\n 'thumbs-wrapper': !isSlider,\n 'slider-wrapper': isSlider,\n 'axis-horizontal': axis === 'horizontal',\n 'axis-vertical': axis !== 'horizontal'\n });\n },\n SLIDER: function SLIDER(isSlider, isSwiping) {\n return (0, _classnames.default)({\n thumbs: !isSlider,\n slider: isSlider,\n animated: !isSwiping\n });\n },\n ITEM: function ITEM(isSlider, selected, previous) {\n return (0, _classnames.default)({\n thumb: !isSlider,\n slide: isSlider,\n selected: selected,\n previous: previous\n });\n },\n ARROW_PREV: function ARROW_PREV(disabled) {\n return (0, _classnames.default)({\n 'control-arrow control-prev': true,\n 'control-disabled': disabled\n });\n },\n ARROW_NEXT: function ARROW_NEXT(disabled) {\n return (0, _classnames.default)({\n 'control-arrow control-next': true,\n 'control-disabled': disabled\n });\n },\n DOT: function DOT(selected) {\n return (0, _classnames.default)({\n dot: true,\n selected: selected\n });\n }\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.outerWidth = void 0;\n\nvar outerWidth = function outerWidth(el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width += parseInt(style.marginLeft) + parseInt(style.marginRight);\n return width;\n};\n\nexports.outerWidth = outerWidth;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Carousel\", {\n enumerable: true,\n get: function get() {\n return _Carousel.default;\n }\n});\nObject.defineProperty(exports, \"CarouselProps\", {\n enumerable: true,\n get: function get() {\n return _types.CarouselProps;\n }\n});\nObject.defineProperty(exports, \"Thumbs\", {\n enumerable: true,\n get: function get() {\n return _Thumbs.default;\n }\n});\n\nvar _Carousel = _interopRequireDefault(require(\"./components/Carousel\"));\n\nvar _types = require(\"./components/Carousel/types\");\n\nvar _Thumbs = _interopRequireDefault(require(\"./components/Thumbs\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _default = function _default() {\n return document;\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _default = function _default() {\n return window;\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _raf = require(\"raf\");\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_PureComponent) {\n _inherits(Container, _PureComponent);\n\n function Container() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Container);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Container.__proto__ || Object.getPrototypeOf(Container)).call.apply(_ref, [this].concat(args))), _this), _this.events = [\"resize\", \"scroll\", \"touchstart\", \"touchmove\", \"touchend\", \"pageshow\", \"load\"], _this.subscribers = [], _this.rafHandle = null, _this.subscribe = function (handler) {\n _this.subscribers = _this.subscribers.concat(handler);\n }, _this.unsubscribe = function (handler) {\n _this.subscribers = _this.subscribers.filter(function (current) {\n return current !== handler;\n });\n }, _this.notifySubscribers = function (evt) {\n if (!_this.framePending) {\n var currentTarget = evt.currentTarget;\n\n\n _this.rafHandle = (0, _raf2.default)(function () {\n _this.framePending = false;\n\n var _this$node$getBoundin = _this.node.getBoundingClientRect(),\n top = _this$node$getBoundin.top,\n bottom = _this$node$getBoundin.bottom;\n\n _this.subscribers.forEach(function (handler) {\n return handler({\n distanceFromTop: top,\n distanceFromBottom: bottom,\n eventSource: currentTarget === window ? document.body : _this.node\n });\n });\n });\n _this.framePending = true;\n }\n }, _this.getParent = function () {\n return _this.node;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Container, [{\n key: \"getChildContext\",\n value: function getChildContext() {\n return {\n subscribe: this.subscribe,\n unsubscribe: this.unsubscribe,\n getParent: this.getParent\n };\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n this.events.forEach(function (event) {\n return window.addEventListener(event, _this2.notifySubscribers);\n });\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this3 = this;\n\n if (this.rafHandle) {\n _raf2.default.cancel(this.rafHandle);\n this.rafHandle = null;\n }\n\n this.events.forEach(function (event) {\n return window.removeEventListener(event, _this3.notifySubscribers);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n return _react2.default.createElement(\"div\", _extends({}, this.props, {\n ref: function ref(node) {\n return _this4.node = node;\n },\n onScroll: this.notifySubscribers,\n onTouchStart: this.notifySubscribers,\n onTouchMove: this.notifySubscribers,\n onTouchEnd: this.notifySubscribers\n }));\n }\n }]);\n\n return Container;\n}(_react.PureComponent);\n\nContainer.childContextTypes = {\n subscribe: _propTypes2.default.func,\n unsubscribe: _propTypes2.default.func,\n getParent: _propTypes2.default.func\n};\nexports.default = Container;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Sticky = function (_Component) {\n _inherits(Sticky, _Component);\n\n function Sticky() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Sticky);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Sticky.__proto__ || Object.getPrototypeOf(Sticky)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n isSticky: false,\n wasSticky: false,\n style: {}\n }, _this.handleContainerEvent = function (_ref2) {\n var distanceFromTop = _ref2.distanceFromTop,\n distanceFromBottom = _ref2.distanceFromBottom,\n eventSource = _ref2.eventSource;\n\n var parent = _this.context.getParent();\n\n var preventingStickyStateChanges = false;\n if (_this.props.relative) {\n preventingStickyStateChanges = eventSource !== parent;\n distanceFromTop = -(eventSource.scrollTop + eventSource.offsetTop) + _this.placeholder.offsetTop;\n }\n\n var placeholderClientRect = _this.placeholder.getBoundingClientRect();\n var contentClientRect = _this.content.getBoundingClientRect();\n var calculatedHeight = contentClientRect.height;\n\n var bottomDifference = distanceFromBottom - _this.props.bottomOffset - calculatedHeight;\n\n var wasSticky = !!_this.state.isSticky;\n var isSticky = preventingStickyStateChanges ? wasSticky : distanceFromTop <= -_this.props.topOffset && distanceFromBottom > -_this.props.bottomOffset;\n\n distanceFromBottom = (_this.props.relative ? parent.scrollHeight - parent.scrollTop : distanceFromBottom) - calculatedHeight;\n\n var style = !isSticky ? {} : {\n position: \"fixed\",\n top: bottomDifference > 0 ? _this.props.relative ? parent.offsetTop - parent.offsetParent.scrollTop : 0 : bottomDifference,\n left: placeholderClientRect.left,\n width: placeholderClientRect.width\n };\n\n if (!_this.props.disableHardwareAcceleration) {\n style.transform = \"translateZ(0)\";\n }\n\n _this.setState({\n isSticky: isSticky,\n wasSticky: wasSticky,\n distanceFromTop: distanceFromTop,\n distanceFromBottom: distanceFromBottom,\n calculatedHeight: calculatedHeight,\n style: style\n });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Sticky, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n if (!this.context.subscribe) throw new TypeError(\"Expected Sticky to be mounted within StickyContainer\");\n\n this.context.subscribe(this.handleContainerEvent);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.context.unsubscribe(this.handleContainerEvent);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.placeholder.style.paddingBottom = this.props.disableCompensation ? 0 : (this.state.isSticky ? this.state.calculatedHeight : 0) + \"px\";\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var element = _react2.default.cloneElement(this.props.children({\n isSticky: this.state.isSticky,\n wasSticky: this.state.wasSticky,\n distanceFromTop: this.state.distanceFromTop,\n distanceFromBottom: this.state.distanceFromBottom,\n calculatedHeight: this.state.calculatedHeight,\n style: this.state.style\n }), {\n ref: function ref(content) {\n _this2.content = _reactDom2.default.findDOMNode(content);\n }\n });\n\n return _react2.default.createElement(\n \"div\",\n null,\n _react2.default.createElement(\"div\", { ref: function ref(placeholder) {\n return _this2.placeholder = placeholder;\n } }),\n element\n );\n }\n }]);\n\n return Sticky;\n}(_react.Component);\n\nSticky.propTypes = {\n topOffset: _propTypes2.default.number,\n bottomOffset: _propTypes2.default.number,\n relative: _propTypes2.default.bool,\n children: _propTypes2.default.func.isRequired\n};\nSticky.defaultProps = {\n relative: false,\n topOffset: 0,\n bottomOffset: 0,\n disableCompensation: false,\n disableHardwareAcceleration: false\n};\nSticky.contextTypes = {\n subscribe: _propTypes2.default.func,\n unsubscribe: _propTypes2.default.func,\n getParent: _propTypes2.default.func\n};\nexports.default = Sticky;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.StickyContainer = exports.Sticky = undefined;\n\nvar _Sticky = require(\"./Sticky\");\n\nvar _Sticky2 = _interopRequireDefault(_Sticky);\n\nvar _Container = require(\"./Container\");\n\nvar _Container2 = _interopRequireDefault(_Container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Sticky = _Sticky2.default;\nexports.StickyContainer = _Container2.default;\nexports.default = _Sticky2.default;","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n}\nfunction _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n \"default\": e\n };\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null\n },\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n[\"default\"] = e, t && t.set(e, n), n;\n}\nmodule.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + {\"42\":\"reactPlayerTwitch\",\"173\":\"reactPlayerVimeo\",\"328\":\"reactPlayerDailyMotion\",\"340\":\"reactPlayerWistia\",\"353\":\"reactPlayerPreview\",\"392\":\"reactPlayerVidyard\",\"446\":\"reactPlayerYouTube\",\"458\":\"reactPlayerFilePlayer\",\"463\":\"reactPlayerKaltura\",\"570\":\"reactPlayerMixcloud\",\"627\":\"reactPlayerStreamable\",\"723\":\"reactPlayerMux\",\"887\":\"reactPlayerFacebook\",\"979\":\"reactPlayerSoundCloud\"}[chunkId] + \".\" + {\"42\":\"fb5052a1\",\"173\":\"56ff9e1a\",\"328\":\"38e40594\",\"340\":\"d3e095ec\",\"353\":\"8e44651e\",\"392\":\"de65a734\",\"446\":\"82958262\",\"458\":\"caaa5613\",\"463\":\"151a630a\",\"570\":\"6de1c087\",\"627\":\"b6ce0e26\",\"723\":\"d2343e37\",\"887\":\"20257f8a\",\"979\":\"53dd8bdf\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"bomdiarural:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkbomdiarural\"] = self[\"webpackChunkbomdiarural\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@material-ui/utils';\nimport ThemeContext from '../useTheme/ThemeContext';\nimport useTheme from '../useTheme';\nimport nested from './nested'; // To support composition of theme.\n\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n if (typeof localTheme === 'function') {\n var mergedTheme = localTheme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n if (!mergedTheme) {\n console.error(['Material-UI: You should return an object from your theme function, i.e.', ' ({})} />'].join('\\n'));\n }\n }\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, localTheme);\n}\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\n\n\nfunction ThemeProvider(props) {\n var children = props.children,\n localTheme = props.theme;\n var outerTheme = useTheme();\n\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme === null && typeof localTheme === 'function') {\n console.error(['Material-UI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n\n var theme = React.useMemo(function () {\n var output = outerTheme === null ? localTheme : mergeOuterLocalTheme(outerTheme, localTheme);\n\n if (output != null) {\n output[nested] = outerTheme !== null;\n }\n\n return output;\n }, [localTheme, outerTheme]);\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, children);\n}\n\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node.isRequired,\n\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\n\nexport default ThemeProvider;","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType\n >,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnNavigationImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnNavigation()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\n }\n );\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a \n\n {\n isHome ?\n \n :\n !isSubDomainMater() &&\n \n }\n\n {/* {isMaterias &&\n dataMovie?.map((e, key) => (\n \n ))\n } */}\n\n\n\n \n )\n}","import { Box } from \"@material-ui/core\";\nimport styled from \"styled-components\";\n\nexport const ContentBg = styled(Box)(({ theme }) => ({\n backgroundColor: theme.palette.background.default\n}));\n\nexport const Content = styled(Box)(({ theme }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n minHeight: \"60vh\",\n paddingTop: 84,\n paddingBottom: 60,\n [theme.breakpoints.down(\"sm\")]: {\n paddingTop: 66\n },\n}));\n\nexport const ContentDescPrinc = styled(Box)(({ theme }) => ({\n width: \"100%\"\n}));\n\nexport const ContentTitle = styled(Box)(({ theme }) => ({\n borderRadius: 9,\n marginTop: 10,\n marginBottom: 10,\n minHeight: 45,\n transition: \"ease-in-out .2s\",\n [theme.breakpoints.down(\"sm\")]: {\n minHeight: 40,\n },\n}));\n\nexport const ContentDesc = styled(Box)(({ theme }) => ({\n paddingTop: 5,\n backgroundColor: \"#ffffff1a\",\n borderRadius: 9,\n padding: 10,\n // height: 300,\n // overflow: \"hidden\"\n}));\n\nexport const ContentMovie = styled(Box)(({ theme }) => ({\n backgroundColor: theme.palette.background.paper,\n height: \"100%\",\n width: \"100%\",\n borderRadius: 9\n}));\n\n\n\n","import React from \"react\";\n\nimport { Routes, BrowserRouter, Route, Navigate } from \"react-router-dom\";\n\nimport Foot from \"../Components/Foot\";\n\nimport Principal from \"../Components/Principal\";\n\nimport GridMater from \"../Components/GridMater\";\n\nimport GridColab from \"../Components/GridColab\";\nimport ColabItem from \"../Components/GridColab/ColabItem\";\n\nimport GridEquipe from \"../Components/GridEquipe\";\nimport EquipeItem from \"../Components/GridColab/ColabItem\";\n\nimport { dataColab } from \"../Components/GridColab/data.js\";\nimport dataEquip from \"../Components/GridEquipe/data.js\";\n\nimport About from \"../Components/About\";\nimport MyNavbar from \"../Components/MyNavbar\";\nimport { MainProvider } from \"../Contexts/main\";\nimport MySwipeableDrawer from \"../Components/MySwipeableDrawer\";\nimport Contato from \"../Components/Contact\";\nimport MyLoading from \"../Components/MyLoading\";\nimport MyHelmet from \"../Components/MyHelmet\";\nimport MateriasYou from \"../Components/MateriasYou\";\n\n// const router = createBrowserRouter([\n// { path: \"/\", element: },\n// // { path: \"/materias/:id\", element: },\n// { path: \"/materias\", element: },\n// { path: \"/patrocinadores/:id\", element: },\n// { path: \"/patrocinadores\", element: },\n// { path: \"/equipe/:id\", element: },\n// { path: \"/equipe\", element: },\n// { path: \"/sobre\", element: },\n// { path: \"*\", element: }\n// ]);\n\nexport default function ReactRouter() {\n return (\n\n \n \n \n \n \n \n \n \n }\n />\n }\n />\n \n }\n />\n }\n />\n \n \n }\n />\n }\n />\n }\n />\n } />\n \n \n \n \n )\n}\n","import React, { useEffect } from \"react\";\nimport { ThemeProvider } from \"@material-ui/core\";\nimport ReactRouter from \"./Router\";\n\nimport Aos from \"aos\";\nimport \"./styles.css\";\nimport \"aos/dist/aos.css\"; // You can also use for styles\nimport { theme } from \"./theme\";\nimport { HelmetProvider } from \"react-helmet-async\";\n\nexport default function App() {\n\n useEffect(() => {\n document.addEventListener('touchstart', () => { }, { passive: true });\n document.addEventListener('touchmove', () => { }, { passive: true });\n document.addEventListener('mousewheel', () => { }, { passive: true });\n\n Aos.init({ once: true });\n }, []);\n\n return (\n \n \n \n \n \n );\n}\n","import App from \"./App\";\n\nimport { createRoot } from 'react-dom/client';\nconst container = document.getElementById('root');\nconst root = createRoot(container);\nroot.render();"],"names":["clamp","value","min","arguments","length","undefined","max","Math","decomposeColor","color","type","charAt","substr","re","RegExp","concat","colors","match","map","n","index","parseInt","round","join","hexToRgb","marker","indexOf","substring","Error","_formatMuiErrorMessage","values","split","parseFloat","recomposeColor","i","getContrastRatio","foreground","background","lumA","getLuminance","lumB","rgb","h","s","l","a","f","k","push","hslToRgb","val","pow","Number","toFixed","alpha","darken","coefficient","lighten","keys","createMixins","breakpoints","spacing","mixins","_toolbar","_extends","gutters","styles","console","warn","paddingLeft","paddingRight","_defineProperty","up","toolbar","minHeight","black","white","A100","A200","A400","A700","light","text","primary","secondary","disabled","hint","divider","paper","common","default","grey","action","active","hover","hoverOpacity","selected","selectedOpacity","disabledBackground","disabledOpacity","focus","focusOpacity","activatedOpacity","dark","icon","addLightOrDark","intent","direction","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","hasOwnProperty","main","roundWithDeprecationWarning","caseAllCaps","textTransform","defaultFontFamily","createTypography","palette","typography","_ref","_ref$fontFamily","fontFamily","_ref$fontSize","fontSize","_ref$fontWeightLight","fontWeightLight","_ref$fontWeightRegula","fontWeightRegular","_ref$fontWeightMedium","fontWeightMedium","_ref$fontWeightBold","fontWeightBold","_ref$htmlFontSize","htmlFontSize","allVariants","pxToRem2","pxToRem","other","_objectWithoutProperties","coef","size","buildVariant","fontWeight","lineHeight","letterSpacing","casing","variants","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","deepmerge","clone","createShadow","borderRadius","createTheme","options","_options$breakpoints","breakpointsInput","_options$mixins","mixinsInput","_options$palette","paletteInput","spacingInput","_options$typography","typographyInput","_palette$primary","indigo","_palette$secondary","pink","_palette$error","error","red","_palette$warning","warning","orange","_palette$info","info","blue","_palette$success","success","green","_palette$type","_palette$contrastThre","contrastThreshold","_palette$tonalOffset","getContrastText","augmentColor","mainShade","lightShade","darkShade","JSON","stringify","contrastText","types","createPalette","_breakpoints$values","xs","sm","md","lg","xl","_breakpoints$unit","unit","_breakpoints$step","step","key","between","start","end","endIndex","down","upperbound","only","width","createBreakpoints","mui","transform","createUnarySpacing","_len","args","Array","_key","argument","output","Object","defineProperty","get","createSpacing","muiTheme","overrides","props","shadows","shape","transitions","zIndex","reduce","acc","easing","easeInOut","easeOut","easeIn","sharp","duration","shortest","shorter","short","standard","complex","enteringScreen","leavingScreen","formatMs","milliseconds","create","_options$duration","durationOption","_options$easing","easingOption","_options$delay","delay","isArray","animatedProp","getAutoHeightDuration","height","constant","stylesOrCreator","Component","defaultTheme","_options$withTheme","withTheme","name","stylesOptions","classNamePrefix","useStyles","makeStyles","displayName","WithStyles","React","ref","classes","theme","innerRef","defaultProps","more","useTheme","getThemeProps","hoistNonReactStatics","withStylesWithoutDefault","mobileStepper","speedDial","appBar","drawer","modal","snackbar","tooltip","capitalize","string","toUpperCase","slice","createChainedFunction","funcs","func","_len2","_key2","apply","this","SvgIcon","children","className","_props$color","_props$component","component","_props$fontSize","htmlColor","titleAccess","_props$viewBox","viewBox","clsx","root","focusable","role","muiName","withStyles","userSelect","display","fill","flexShrink","transition","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeLarge","createSvgIcon","path","debounce","timeout","wait","debounced","that","clearTimeout","setTimeout","clear","deprecatedPropType","validator","reason","isMuiElement","element","muiNames","requirePropFactory","componentNameInError","unsupportedProp","propName","componentName","location","propFullName","useControlled","controlled","defaultProp","isControlled","state","current","_React$useState","valueState","setValue","newValue","useId","idOverride","defaultId","setDefaultId","id","random","ownerDocument","node","document","ownerWindow","defaultView","window","setRef","useEnhancedEffect","useEventCallback","fn","useForkRef","refA","refB","refValue","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","search","url","tel","email","password","number","date","month","week","time","datetime","handleKeyDown","event","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","visibilityState","isFocusVisible","target","matches","tagName","readOnly","isContentEditable","focusTriggersKeyboardModality","handleBlurVisible","useIsFocusVisible","onBlurVisible","instance","doc","ReactDOM","addEventListener","_interopRequireDefault","require","_interopRequireWildcard","exports","_default","createElement","d","enumerable","_utils","Symbol","for","params","_typeof","iterator","obj","constructor","prototype","nodeType","plainObjectConstrurctor","cloneStyle","style","newStyle","createRule","decl","jss","declCopy","rule","plugins","onCreateRule","by","result","toCssValue","cssValue","getWhitespaceSymbols","format","linebreak","space","indentStr","str","indent","toCss","selector","_options$indent","fallbacks","Infinity","_getWhitespaceSymbols","fallback","prop","_prop","_value","_prop2","_value2","allowEmpty","escapeRegex","nativeEscape","CSS","escape","replace","BaseStyleRule","isProcessed","sheet","Renderer","renderer","force","process","onChangeValue","isEmpty","isDefined","remove","renderable","removeProperty","setProperty","attached","StyleRule","_BaseStyleRule","_this","call","scoped","generateId","selectorText","_assertThisInitialized","_inheritsLoose","_proto2","applyTo","json","toJSON","toString","opts","link","_createClass","set","setSelector","replaceRule","pluginStyleRule","parent","defaultToStringOptions","atRegExp","ConditionalRule","atMatch","at","query","rules","RuleList","add","_proto","getRule","addRule","onProcessRule","newRule","keyRegExp","pluginConditionalRule","test","defaultToStringOptions$1","nameRegExp","KeyframesRule","frames","nameMatch","keyRegExp$1","refRegExp","findReferencedKeyframe","keyframes","replaceRef","refKeyframe","pluginKeyframesRule","onProcessStyle","KeyframeRule","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","pluginSimpleRule","defaultUpdateOptions","forceUpdateOptions","raw","counter","ruleOptions","_this$options","register","splice","oldRule","oldIndex","nameOrSelector","unregister","forEach","update","data","updateOne","_this$options2","onUpdate","nextValue","_nextValue","_prevValue","css","StyleSheet","deployed","attach","deploy","detach","queue","insertRule","deleteRule","addRules","added","_this$rules","PluginsRegistry","internal","external","registry","onProcessSheet","processedValue","use","newPlugin","plugin","SheetsRegistry","reset","_temp","_objectWithoutPropertiesLoose","sheets","globalThis$1","globalThis","self","Function","ns","moduleId","createGenerateId","ruleCounter","jssId","prefix","String","minify","memoize","getPropertyValue","cssRule","attributeStyleMap","err","indexOfImportantFlag","cssValueWithoutImportantFlag","delete","getHead","querySelector","findPrevNode","insertionPoint","findHigherSheet","parentNode","findHighestSheet","nextSibling","comment","head","childNodes","nodeValue","trim","findCommentNode","getNonce","getAttribute","_insertRule","container","appendRule","cssRules","getValidRuleInsertionIndex","maxIndex","DomRenderer","hasInsertedRules","media","meta","el","textContent","createStyle","setAttribute","nonce","nextNode","insertBefore","insertionPointElement","appendChild","insertStyle","Boolean","removeChild","insertRules","nativeParent","latestNativeParent","_insertionIndex","refCssRule","ruleStr","insertionIndex","nativeRule","getRules","instanceCounter","Jss","version","isInBrowser","setup","createStyleSheet","removeStyleSheet","createJss","hasCSSTOMSupport","getDynamicStyles","to","extracted","mergeClasses","baseClasses","newClasses","nextClasses","multiKeyStore","cache","key1","key2","subCache","Map","pseudoClasses","now","Date","fnValuesNs","fnRuleNs","fnValues","styleRule","fnRule","atPrefix","GlobalContainerRule","GlobalPrefixedRule","separatorRegExp","addScope","scope","parts","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","parentRegExp","getReplaceRef","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","j","nested","getOptions","prevOptions","nestingLevel","isNested","isNestedConditional","uppercasePattern","msPattern","toHyphenLower","toLowerCase","hName","convertCase","converted","hyphenate","hyphenatedProp","px","ms","percent","addCamelCasedVersion","regExp","newObj","units","border","margin","padding","bottom","left","top","right","inset","motion","outline","perspective","gap","grid","iterate","innerProp","_innerProp","isNaN","camelCasedOptions","js","vendor","browser","isTouch","documentElement","jsCssMap","Moz","O","Webkit","appearence","noPrefill","supportedProperty","colorAdjust","toUpper","c","camelize","pascalize","mask","longhand","textOrientation","writingMode","breakPropsOld","inlineLogicalOld","newProp","unprefixed","prefixed","pascalized","scrollSnap","overscrollBehavior","propMap","order","flex2012","propMap$1","flex","propKeys","prefixCss","p","flex2009","multiple","propertyDetectors","filter","_toConsumableArray","computed","getComputedStyle","key$1","x","el$1","cache$1","transitionProperties","transPropsRegExp","prefixTransitionCallback","p1","p2","prefixedValue","supportedValue","property","cacheKey","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$1","atRule","supportedKeyframes","sort","prop0","prop1","functions","global","camelCase","defaultUnit","vendorPrefixer","propsSort","generateClassName","_options$disableGloba","disableGlobal","_options$productionPr","productionPrefix","_options$seed","seed","seedPrefix","getNextCounterId","styleSheet","createGenerateClassName","defaultOptions","disableGeneration","sheetsCache","sheetsManager","sheetsRegistry","StylesContext","indexCounter","_ref2","stylesCreator","sheetManager","refs","staticSheet","dynamicStyles","flip","serverGenerateClassName","dynamicSheet","classNamePrefixOption","_options$defaultTheme","noopTheme","stylesOptions2","themingEnabled","stylesWithOverrides","getStylesCreator","shouldUpdate","currentKey","useSynchronousEffect","_ref4","_ref3","cacheClasses","lastProp","lastJSS","generate","getClasses","ThemeContext","defaultBreakpoints","handleBreakpoints","propValue","styleFromPropValue","themeBreakpoints","item","_themeBreakpoints","breakpoint","properties","m","directions","t","r","b","y","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","arg","_prop$split","_prop$split2","_slicedToArray","dir","spacingKeys","themeSpacing","abs","getStyleFromPropValue","cssProperties","transformer","cssProperty","transformed","getValue","merge","propTypes","filterProps","isPlainObject","source","formatMuiErrorMessage","code","encodeURIComponent","module","e","o","loaded","__esModule","assign","u","w","offset","disable","once","startEvent","throttleDelay","debounceDelay","disableMutationObserver","M","removeAttribute","S","mobile","phone","tablet","_","all","atob","isSupported","readyState","ready","init","refresh","refreshHard","v","g","TypeError","leading","maxWait","trailing","cancel","flush","valueOf","NaN","dataset","aos","MutationObserver","WebKitMutationObserver","MozMutationObserver","observe","childList","subtree","removedNodes","addedNodes","navigator","userAgent","opera","configurable","writable","position","classList","pageYOffset","innerHeight","anchor","anchorPlacement","querySelectorAll","offsetHeight","offsetLeft","offsetTop","scrollLeft","scrollTop","offsetParent","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","cloneUnlessOtherwiseSpecified","defaultArrayMerge","getKeys","getOwnPropertySymbols","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","mergeObject","destination","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","array","prev","next","deepmerge_1","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","q","z","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","condition","argIndex","framesToPop","stdOnEnd","script","cb","onload","onerror","src","ieOnEnd","onreadystatechange","getElementsByTagName","charset","async","attrs","attr","setAttributes","useLottie","animationData","loop","autoplay","initialSegment","onComplete","onLoopComplete","onEnterFrame","onSegmentStart","onConfigReady","onDataReady","onDataFailed","onLoadedImages","onDOMLoaded","onDestroy","lottieRef","assetsPath","rendererSettings","rest","_excluded$1","_useState2","useState","animationLoaded","setAnimationLoaded","animationInstanceRef","useRef","animationContainer","play","_a","stop","pause","setSpeed","speed","goToAndPlay","isFrame","goToAndStop","setDirection","playSegments","segments","forceFlag","setSubframe","useSubFrames","getDuration","inFrames","destroy","loadAnimation","forcedConfigs","config","_objectSpread2","lottie__default","useEffect","onUnmount","currentRawFrame","setSegment","resetSegments","listeners","handler","listener","deregisterList","removeEventListener","deregister","View","React__default","animationContainerRef","animationItem","getContainerVisibility","_container$getBoundin","getBoundingClientRect","getContainerCursorPosition","cursorX","cursorY","_container$getBoundin2","useInitInteractivity","wrapperRef","mode","actions","wrapper","scrollModeHandler","assignedSegment","scrollHandler","currentPercent","find","visibility","frameToGo","ceil","firstFrame","isPaused","cursorModeHandler","handleCursor","_x","_y","pos","xPercent","yPercent","mouseMoveHandler","ev","clientX","clientY","mouseOutHandler","useLottieInteractivity","lottieObj","Lottie","_b","_c","interactivity","lottieProps","_excluded","_useLottie","factory","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","sourcePrototype","len","getDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","_shouldRoundValues","bmPow","bmSqrt","sqrt","bmFloor","floor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","styleDiv","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","_workerSelf","setupWorker","Worker","Blob","blob","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","jLen","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","comp","findComp","__used","parse","ks","it","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","assets","checkChars","chars","charData","ip","op","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","responseText","load","fullPath","callback","errorCallback","XMLHttpRequest","status","open","send","completeData","payload","animation","onError","createProcess","processId","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","ctx","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","originalPath","imagePath","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","bind","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","append","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","markerParser","parsePayloadLines","line","lines","keysCount","_markers","markers","_marker","markerData","tm","dr","cm","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","frameRate","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","animType","RendererClass","globalData","defs","setProjectInterface","autoloadSegments","setupAnimation","lastIndexOf","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","renderFrame","resetFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","numValue","frameModifier","advanceTime","_isComplete","checkSegments","adjustSegment","pendingFrame","setLoop","isLooping","getPath","getAssetData","hide","show","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","body","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","point","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","initFrame","mathAbs","interpolateValue","frameNum","caching","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframesMetadata","endValue","nextKeyTime","keyTime","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","out","ax","ay","az","aw","bx","bz","bw","acos","sin","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","translate","tx","tz","a2","b2","d2","e2","f2","g2","i2","j2","k2","l2","m2","n2","o2","_identityCalculated","a1","b1","d1","e1","f1","g1","i1","j1","k1","l1","m1","n1","o1","multiply","matrix","matrixProps","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","href","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","define","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","pop","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","delta","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","depth","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","mid","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","denom","tcusp","square","p10","p11","p20","p21","bounds","shapeSegmentInverted","pointsType","count","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","combinedCharacters","BLACK_FLAG_CODE_POINT","surrogateModifiers","setUpNode","font","family","fontVariant","fontStyle","offsetWidth","familyArray","enabledFamilies","trimFontOptions","createHelper","def","helper","engine","fontProps","tHelper","fFamily","fClass","tCanvasHelper","OffscreenCanvas","measureText","getComputedTextLength","getCodePoint","codePoint","charCodeAt","second","isRegionalCode","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","charCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","fontPrototype","found","ch","list","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","monoCase","sansCase","fPath","fOrigin","rel","sc","getCharData","_char","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","SlotManager","slotFactory","RenderableElement","slots","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","content","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","layerId","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","lmat","localOp","opacity","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","of","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","filterSize","runExpressions","destroyed","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","fromCharCode","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","setElements","getElements","destroyElements","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","stroke","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","CanvasContext","strokeStyle","lineCap","CVContextData","stack","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","CanvasRenderer","clearCanvas","context","dpr","devicePixelRatio","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","getTransform","exitLayer","buffer","forceRealStack","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","grd","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","globalAlpha","actionFlag","containerStyle","mozTransformOrigin","setContext","isDashed","elementWidth","elementHeight","elementRel","animationRel","fillType","duplicate","newLength","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","strokeWidth","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","svgTransform","perspectiveStyle","perspectiveElem","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","_typeof$2","seedRandom","rngname","startdenom","significance","ARC4","keylen","me","copy","flatten","typ","mixkey","smear","stringseed","tostring","shortseed","entropy","Uint8Array","crypto","msCrypto","getRandomValues","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","initialize$2","SHAPE","_typeof$1","ExpressionManager","fetch","_lottieGlobal","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","val1","val2","applyEase","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","posterizeTime","framesPerSecond","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","anchorPointDescriptor","defineProperties","anchor_point","startTime","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_sourceText","sourceText","fillColor","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","pathMasker","dasharrayValue","getTotalLength","lineLength","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","TransformEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","sigma","dimensions","sigmaX","sigmaY","edgeMode","forceFrame","isUniformScale","scaleHeight","scaleWidth","safeIsNaN","areInputsEqual","newInputs","lastInputs","resultFn","isEqual","lastThis","lastResult","lastArgs","calledOnce","newArgs","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","hr","uptime","getTime","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","secret","getShim","isRequired","ReactPropTypes","bigint","bool","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","vendors","suffix","raf","caf","last","_now","cancelled","handle","polyfill","cancelAnimationFrame","aa","ca","Set","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","ta","pa","qa","oa","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","Reflect","construct","includes","Pa","tag","Qa","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","ab","bb","db","eb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","innerHTML","firstChild","MSApp","execUnsafeLocalFunction","lastChild","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","qb","rb","sb","tb","menuitem","area","base","br","embed","input","keygen","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","oc","clz32","pc","qc","log","LN2","rc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","fd","gd","Uc","stopPropagation","jd","kd","ld","nd","od","keyCode","pd","qd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","detail","vd","Ad","screenX","screenY","pageX","pageY","shiftKey","getModifierState","zd","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","range","oe","qe","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ff","hf","lf","mf","nf","Ub","D","has","pf","qf","rf","sf","capture","passive","J","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","mg","ng","og","pg","qg","rg","sg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","_owner","_stringRef","Mg","Ng","Og","Pg","Qg","Rg","implementation","Sg","Tg","done","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","_currentValue","bh","childLanes","dependencies","firstContext","lanes","dh","eh","memoizedValue","gh","hh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","mh","eventTime","lane","nh","K","oh","ph","qh","rh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","L","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","N","Ih","Jh","Kh","Lh","P","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","Uh","Vh","Wh","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","Q","di","lastEffect","stores","ei","fi","gi","hi","ii","deps","ji","ki","li","mi","ni","oi","qi","ri","si","ui","vi","xi","yi","zi","Ai","R","Bi","readContext","useCallback","useContext","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","unstable_isNewReconciler","identifierPrefix","Ci","Di","Ei","isMounted","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","Fi","shouldComponentUpdate","isPureReactComponent","Gi","updater","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Ji","message","digest","Ki","Li","Mi","WeakMap","Ni","Oi","Pi","Qi","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","ReactCurrentOwner","Xi","Yi","Zi","$i","aj","bj","cj","dj","baseLanes","cachePool","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","jj","kj","pendingContext","zj","Aj","Bj","Cj","mj","nj","oj","pj","qj","sj","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","tail","tailMode","xj","Dj","Ej","Fj","wasMultiple","suppressHydrationWarning","onClick","onclick","autoFocus","createTextNode","T","Gj","Hj","Ij","Jj","U","Kj","WeakSet","V","Lj","W","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","_reactRootContainer","Wj","X","Xj","Yj","Zj","onCommitFiberUnmount","componentWillUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","Vk","lk","mk","nk","ok","Y","Z","pk","qk","rk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","isReactComponent","pendingChildren","al","mutableSourceEagerHydrationData","bl","pendingSuspenseBoundaries","dl","fl","gl","hl","il","yj","Zk","kl","reportError","ll","_internalRoot","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","form","sl","usingClientEntryPoint","Events","tl","findFiberByHostInstance","bundleType","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","vl","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","_reactSwipe","_reactSwipe2","_react","_propTypes","setHasSupportToCaptureOption","_react2","_propTypes2","_classCallCheck","Constructor","protoProps","staticProps","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","supportsCaptureOption","hasSupport","getSafeEventHandlerOpts","getPosition","_event$touches$","ReactSwipe","_Component","_handleSwipeStart","_handleSwipeMove","_handleSwipeEnd","_onMouseDown","_onMouseMove","_onMouseUp","_setSwiperRef","swiper","allowMouseEvents","mouseDown","_getPosition","moveStart","onSwipeStart","_getPosition2","moving","onSwipeMove","movePosition","onSwipeEnd","onSwipeLeft","onSwipeRight","onSwipeUp","onSwipeDown","_props","onMouseDown","onTouchStart","onTouchEnd","hasElementType","hasMap","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","entries","__create","__defProp","__getOwnPropDesc","__getOwnPropNames","__getProtoOf","__hasOwnProp","__copyProps","from","except","desc","__toESM","isNodeMode","__publicField","__defNormalProp","Player_exports","__export","Player","import_react","import_react_fast_compare","import_props","import_utils","super","player","progress","isReady","playedSeconds","getCurrentTime","loadedSeconds","getSecondsLoaded","played","prevPlayed","prevLoaded","onProgress","progressTimeout","progressFrequency","progressInterval","mounted","isLoading","onReady","muted","loadOnReady","handleDurationCheck","onStart","onPlay","playbackRate","startOnPlay","setPlaybackRate","seekOnPlay","seekTo","onPause","activePlayer","onEnded","loopOnEnded","durationCheckTimeout","onDurationCalled","onDuration","stopOnUnmount","disablePIP","prevProps","pip","disableDeferredLoading","forceLoad","isMediaStream","enablePIP","keepPlaying","Player2","onMount","handlePlayerMount","handleReady","handlePlay","handlePause","handleEnded","onLoaded","handleLoaded","handleError","ReactPlayer_exports","createReactPlayer","import_deepmerge","import_memoize_one","import_Player","Preview","lazy","IS_BROWSER","IS_GLOBAL","SUPPORTED_PROPS","UniversalSuspense","customPlayers","players","showPreview","setState","onClickPreview","getInternalPlayer","fraction","canPlay","omit","getActivePlayer","getConfig","references","lazyPlayer","nextProps","nextState","renderPreview","playIcon","previewTabIndex","oEmbedUrl","previewAriaLabel","handleClickPreview","fallback2","Wrapper","getAttributes","renderActivePlayer","canEnablePIP","src_exports","src_default","import_players","import_ReactPlayer","patterns_exports","AUDIO_EXTENSIONS","DASH_EXTENSIONS","FLV_EXTENSIONS","HLS_EXTENSIONS","MATCH_URL_DAILYMOTION","MATCH_URL_FACEBOOK","MATCH_URL_FACEBOOK_WATCH","MATCH_URL_KALTURA","MATCH_URL_MIXCLOUD","MATCH_URL_MUX","MATCH_URL_SOUNDCLOUD","MATCH_URL_STREAMABLE","MATCH_URL_TWITCH_CHANNEL","MATCH_URL_TWITCH_VIDEO","MATCH_URL_VIDYARD","MATCH_URL_VIMEO","MATCH_URL_WISTIA","MATCH_URL_YOUTUBE","VIDEO_EXTENSIONS","canPlayFile","isBlobUrl","youtube","every","soundcloud","vimeo","mux","facebook","streamable","wistia","twitch","dailymotion","mixcloud","vidyard","kaltura","file","players_exports","players_default","import_patterns","pictureInPictureEnabled","supportsWebKitPresentationMode","props_exports","import_prop_types","controls","playsinline","playerVars","embedOptions","onUnstarted","appId","playerId","playerOptions","tracks","forceVideo","forceAudio","forceHLS","forceSafariHLS","forceDisableHls","forceDASH","forceFLV","hlsOptions","hlsVersion","dashVersion","flvVersion","customControls","onBuffer","onBufferEnd","onSeek","onPlaybackRateChange","onPlaybackQualityChange","onEnablePIP","onDisablePIP","noop","visual","buying","liking","download","sharing","show_comments","show_playcount","showinfo","iv_load_policy","modestbranding","api","autopause","byline","portrait","hide_cover","utils_exports","callPlayer","getSDK","parseEndTime","parseStartTime","randomString","import_load_script","componentImportFn","MATCH_START_QUERY","MATCH_END_QUERY","MATCH_START_STAMP","MATCH_NUMERIC","parseTimeParam","pattern","stamp","seconds","exec","period","parseTimeString","getGlobal","requests","enableStubOn","sdkGlobal","sdkReady","fetchScript","existingGlobal","reject","sdk","request","previousOnReady","arrays","omitKeys","method","MediaStream","video","notMobile","webkitSupportsPresentationMode","webkitSetPresentationMode","metric","axis","positionPercent","fadeAnimationHandler","slideStopSwipingHandler","slideSwipeAnimationHandler","slideAnimationHandler","_CSSTranslate","ownKeys","enumerableOnly","symbols","sym","_objectSpread","getOwnPropertyDescriptors","returnStyles","selectedItem","previousItem","lastPosition","Children","infiniteLoop","centerMode","centerSlidePercentage","itemListStyle","setPosition","currentPosition","transformProp","transitionTime","WebkitTransform","msTransform","OTransform","swiping","WebkitTransitionDuration","MozTransitionDuration","OTransitionDuration","transitionDuration","msTransitionDuration","isHorizontal","childrenLength","finalBoundry","axisDelta","handledDelta","itemSize","hasMoved","swipeScrollTolerance","preventMovementUntilSwipeScrollTolerance","swipeMovementStarted","cancelClick","transitionTimingFunction","slideStyle","msTransitionTimingFunction","MozTransitionTimingFunction","WebkitTransitionTimingFunction","OTransitionTimingFunction","selectedStyle","prevStyle","_getRequireWildcardCache","hasPropertyDescriptor","_reactEasySwipe","_cssClasses","_Thumbs","_document","_window","_animations","_defineProperties","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","sham","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","Carousel","_React$Component","_super","thumbsRef","carouselWrapperRef","listRef","itemsRef","clearAutoPlay","autoPlay","timer","increment","interval","isMouseEntered","isFocusWithinTheCarousel","prevKey","decrement","firstItem","clientWidth","clientHeight","updateSizes","hasMount","onClickItem","onChange","onClickThumb","animationHandlerResponse","swipeAnimationHandler","positions","selectItem","resetAutoPlay","emulateTouch","newIndex","isKeyboardEvent","animationHandler","handleOnChange","toArray","slideImages","image","complete","onImageLoad","forceUpdate","initState","setupCarousel","prevState","forceFocus","stopSwipingHandler","setupAutoPlay","destroyAutoPlay","destroyCarousel","_this2","bindEvents","initialImage","getInitialImage","setMountState","unbindEvents","carouselWrapper","stopOnHover","startOnLeave","useKeyboardArrows","navigateWithKeyboard","_this$carouselWrapper","isClone","_this3","isSelected","isPrevious","minWidth","pointerEvents","slideProps","setItemsRef","ITEM","handleClickItem","renderItem","_this4","_this$props","showIndicators","labels","renderIndicator","changeItem","showStatus","statusFormatter","showThumbs","setThumbsRef","onSelectItem","handleClickThumb","thumbWidth","renderThumbs","_this5","isSwipeable","swipeable","canShowArrows","showArrows","hasPrev","hasNext","itemsClone","renderItems","firstClone","lastClone","swiperProps","SLIDER","containerStyles","onSwipeForward","onSwipeBackwards","dynamicHeight","itemHeight","getVariableItemHeight","verticalSwipe","ROOT","setCarouselWrapperRef","tabIndex","CAROUSEL","renderControls","renderArrowPrev","onClickPrev","leftArrow","WRAPPER","setListRef","renderArrowNext","onClickNext","rightArrow","renderStatus","onClickHandler","label","ARROW_PREV","ARROW_NEXT","DOT","onKeyDown","defaultStatusFormatter","total","_dimensions","Thumbs","itemsWrapperRef","itemsListRef","wrapperSize","outerWidth","visibleItems","_state","getFirstItem","setupThumbs","destroyThumbs","itemClass","thumbProps","itemListStyles","MozTransform","MsTransform","MsTransitionDuration","setItemsWrapperRef","slideRight","slideLeft","setItemsListRef","_classnames","customClassName","isSlider","carousel","isSwiping","thumbs","slider","animated","previous","thumb","slide","dot","marginLeft","marginRight","_Carousel","_types","_raf2","Container","_PureComponent","events","subscribers","rafHandle","subscribe","unsubscribe","notifySubscribers","evt","framePending","_this$node$getBoundin","distanceFromTop","distanceFromBottom","eventSource","getParent","onScroll","onTouchMove","PureComponent","_reactDom2","Sticky","isSticky","wasSticky","handleContainerEvent","preventingStickyStateChanges","relative","placeholder","placeholderClientRect","calculatedHeight","bottomDifference","bottomOffset","topOffset","scrollHeight","disableHardwareAcceleration","paddingBottom","disableCompensation","cloneElement","_Sticky2","_Container2","__self","__source","jsx","jsxs","_status","_result","act","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","memo","startTransition","unstable_act","sortIndex","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","objA","objB","compareContext","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","hasOwn","classNames","appendClass","parseValue","newClass","_arrayLikeToArray","unsupportedIterableToArray","arrayLikeToArray","toPropertyKey","toPrimitive","_unsupportedIterableToArray","__webpack_module_cache__","__webpack_require__","cachedModule","__webpack_modules__","amdO","getter","leafPrototypes","getProto","definition","chunkId","promises","miniCssF","inProgress","dataWebpackPrefix","needAttach","nc","onScriptComplete","doneFns","toStringTag","installedChunks","installedChunkData","promise","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","localTheme","outerTheme","mergeOuterLocalTheme","Action","PopStateEventType","invariant","cond","getHistoryState","usr","createLocation","hash","parsePath","parsedPath","hashIndex","searchIndex","getUrlBasedHistory","getLocation","createHref","validateLocation","v5Compat","globalHistory","history","Pop","getIndex","handlePop","createURL","replaceState","listen","encodeLocation","Push","historyState","pushState","DOMException","Replace","go","ResultType","matchRoutes","routes","locationArg","basename","matchRoutesImpl","allowPartial","stripBasename","branches","flattenRoutes","score","siblings","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","decoded","decodePath","matchRouteBranch","parentsMeta","parentPath","flattenRoute","route","relativePath","caseSensitive","startsWith","joinPaths","computeScore","_route$path","exploded","explodeOptionalSegments","isOptional","endsWith","required","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","matcher","compiledParams","regexpSource","paramName","compilePath","captureGroups","splatValue","startIndex","nextChar","getInvalidPathError","field","dest","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","isRouteErrorResponse","statusText","validMutationMethodsArr","validRequestMethodsArr","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useInRouterContext","useLocation","UNSAFE_invariant","useIsomorphicLayoutEffect","static","useNavigate","router","useDataRouterContext","DataRouterHook","UseNavigateStable","useCurrentRouteId","DataRouterStateHook","activeRef","navigate","fromRouteId","useNavigateStable","dataRouterContext","future","routePathnamesJson","UNSAFE_getResolveToMatches","useNavigateUnstable","useRoutesImpl","dataRouterState","parentMatches","routeMatch","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","parentSegments","renderedMatches","_renderMatches","navigationType","DefaultErrorComponent","_state$errors","useDataRouterState","UseRouteError","routeId","errors","useRouteError","lightgrey","preStyles","defaultErrorElement","RenderErrorBoundary","revalidation","errorInfo","routeContext","RenderedRoute","staticContext","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","_dataRouterState","_future","v7_partialHydration","errorIndex","findIndex","renderFallback","fallbackIndex","HydrateFallback","hydrateFallbackElement","loaderData","needsToRunLoader","loader","reduceRight","shouldRenderHydrateFallback","alreadyWarned","getChildren","hookName","useRouteContext","thisRoute","Navigate","isStatic","jsonPath","Route","Router","_ref5","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","_ref6","createRoutesFromChildren","treePath","hasErrorBoundary","shouldRevalidate","__reactRouterVersion","startTransitionImpl","BrowserRouter","historyRef","setStateImpl","v7_startTransition","newState","useThemeWithoutDefault","useMediaQuery","queryInput","supportMatchMedia","matchMedia","_props$options","_props$options$defaul","defaultMatches","_props$options$matchM","_props$options$noSsr","noSsr","_props$options$ssrMat","ssrMatchMedia","setMatch","queryList","updateMatch","addListener","removeListener","_props$disableGutters","disableGutters","_props$fixed","fixed","_props$maxWidth","maxWidth","boxSizing","maxWidthXs","maxWidthSm","maxWidthMd","maxWidthLg","maxWidthXl","fields","styleFunctionSx","styleFunction","newStyleFunction","_options$cssProperty","themeKey","themeMapping","propValueFinal","getBorder","compose","maxHeight","styled","StyledComponent","classNameProp","ComponentProp","spread","FinalComponent","componentCreator","styledWithoutDefault","borders","flexbox","sizing","getChildMapping","mapFn","mapper","getNextChildMapping","prevChildMapping","onExited","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","childMapping","nextKey","pendingNextKey","mergeChildMappings","prevChild","isLeaving","in","exit","enter","TransitionGroup","handleExited","contextValue","isMounting","firstRender","appear","currentChildMapping","childFactory","TransitionGroupContext","_props$pulsate","pulsate","rippleX","rippleY","rippleSize","inProp","_props$onExited","leaving","setLeaving","rippleClassName","ripple","rippleVisible","ripplePulsate","rippleStyles","childClassName","childLeaving","childPulsate","timeoutId","TouchRipple","_props$center","centerProp","ripples","setRipples","rippleCallback","ignoringMouseDown","startTimer","startTimerCommit","startCommit","oldRipples","Ripple","_options$pulsate","_options$center","_options$fakeElement","fakeElement","sizeX","sizeY","animationDuration","ButtonBase","buttonRefProp","buttonRef","_props$centerRipple","centerRipple","_props$disabled","_props$disableRipple","disableRipple","_props$disableTouchRi","disableTouchRipple","_props$focusRipple","focusRipple","focusVisibleClassName","onBlur","onFocus","onFocusVisible","onKeyUp","onMouseLeave","onMouseUp","onDragLeave","_props$tabIndex","TouchRippleProps","_props$type","rippleRef","focusVisible","setFocusVisible","_useIsFocusVisible","focusVisibleRef","useRippleHandler","rippleAction","eventCallback","skipRippleAction","handleMouseDown","handleDragLeave","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","handleFocus","isNonNativeButton","keydownRef","handleKeyUp","buttonProps","handleUserRef","handleOwnRef","handleRef","_React$useState2","mountedState","setMountedState","enableTouchRipple","alignItems","justifyContent","WebkitTapHighlightColor","cursor","verticalAlign","textDecoration","borderStyle","Button","_props$disableElevati","disableElevation","_props$disableFocusRi","disableFocusRipple","endIconProp","endIcon","_props$fullWidth","fullWidth","_props$size","startIconProp","startIcon","_props$variant","variant","colorInherit","textPrimary","textSecondary","outlined","outlinedPrimary","outlinedSecondary","contained","boxShadow","containedPrimary","containedSecondary","borderColor","textSizeSmall","textSizeLarge","outlinedSizeSmall","outlinedSizeLarge","containedSizeSmall","containedSizeLarge","sizeSmall","sizeLarge","iconSizeSmall","iconSizeMedium","iconSizeLarge","defaultVariantMapping","Typography","_props$align","align","_props$display","_props$gutterBottom","gutterBottom","_props$noWrap","noWrap","_props$paragraph","paragraph","_props$variantMapping","variantMapping","srOnly","alignLeft","textAlign","alignCenter","alignRight","alignJustify","textOverflow","whiteSpace","marginBottom","colorTextPrimary","colorTextSecondary","displayInline","displayBlock","Link","TypographyClasses","_props$underline","underline","handlerRef","underlineNone","underlineHover","underlineAlways","IconButton","_props$edge","edge","edgeStart","edgeEnd","transitionMotion","loadImage","onLoad","bgImg","CAN_USE_DOM","memoized","canUsePassiveEventListeners","supportsPassiveOption","testPassiveEventListeners","ensureCanMutateNextEventHandlers","eventHandlers","handlers","nextHandlers","TargetEventHandlers","getEventHandlers","normalizedEventOptions","handleEvent","isSubscribed","EVENT_HANDLERS_KEY","eventOptions","normalizeEventOptions","computeOffsetPixels","contextHeight","pixelOffset","isFinite","percentOffset","parseOffsetAsPercentage","ABOVE","INSIDE","BELOW","INVISIBLE","isDOMElement","timeoutQueue","onNextTick","hasWindow","debug","scrollableAncestor","horizontal","onEnter","onLeave","onPositionChange","fireOnRapidScroll","Waypoint","_React$PureComponent","refElement","cancelOnNextTick","_this2$props","ensureRefIsProvidedByChild","_handleScroll","_findScrollableAncestor","scrollEventListenerUnsubscribe","resizeEventListenerUnsubscribe","resolveScrollableAncestorProp","_getBounds","viewportBottom","viewportTop","waypointTop","waypointBottom","getCurrentPosition","previousPosition","_previousPosition","_this$props2","callbackArg","contextScrollTop","_this$props3","_this$_ref$getBoundin","innerWidth","_this$props4","above","below","inside","invisible","isKeyframesTarget","resolveFinalValueInKeyframes","addUniqueItem","removeItem","SubscriptionManager","subscriptions","notify","numSubscriptions","getSize","velocityPerSecond","MotionGlobalConfig","stepsOrder","createRenderBatcher","scheduleNextBatch","allowKeepAlive","runNextFrame","useDefaultElapsed","timestamp","isProcessing","flagRunNextFrame","steps","thisFrame","nextFrame","flushNextFrame","toKeepAlive","latestFrameData","triggerCallback","schedule","frameData","createRenderStep","read","resolveKeyframes","preRender","postRender","processBatch","keepAlive","immediate","frame","cancelFrame","frameSteps","clearTime","newTime","collectMotionValues","MotionValue","canTrackVelocity","updateAndNotify","updatedAt","setPrevFrameValue","setCurrent","change","renderRequest","hasAnimated","owner","prevFrameValue","prevUpdatedAt","subscription","on","clearListeners","eventManagers","passiveEffect","stopPassiveEffect","setWithVelocity","jump","endAnimation","getPrevious","getVelocity","startAnimation","animationStart","animationComplete","clearAnimation","animationCancel","isAnimating","motionValue","getValueState","visualElement","resolveVariantFromProps","custom","resolveVariant","getProps","setMotionValue","hasValue","addValue","setTarget","resolved","transitionEnd","transformPropOrder","transformProps","secondsToMilliseconds","millisecondsToSeconds","underDampedSpring","stiffness","damping","restSpeed","keyframesTransition","getDefaultTransition","valueKey","getValueTransition","instantAnimationState","isNotNull","getFinalKeyframe","finalKeyframe","repeatType","resolvedKeyframes","cubicBezier","getTForX","lowerBound","upperBound","mirrorEasing","reverseEasing","backOut","backIn","backInOut","anticipate","circIn","circOut","circInOut","isZeroValueString","isNumericalString","checkStringStartsWith","token","isCSSVariableName","startsAsVariableToken","isCSSVariableToken","singleCssVariableRegex","splitCSSVariableRegex","getVariableValue","token1","token2","parseCSSVariable","trimmed","createUnitType","degrees","vw","progressPercentage","positionalKeys","isNumOrPxType","getPosFromMatrix","getTranslateFromMatrix","pos2","pos3","_bbox","matrix3d","transformKeys","nonTranslationalTransformKeys","positionalValues","paddingTop","_ref7","_ref8","_ref9","_ref10","_ref11","translateX","translateY","testValueType","dimensionValueTypes","findDimensionValueType","toResolve","isScheduled","anyNeedsMeasurement","measureAllKeyframes","resolversToMeasure","resolver","needsMeasurement","elementsToMeasure","transformsToRestore","removedTransforms","removeNonTranslationalTransform","measureInitialState","measureEndState","suspendedScrollY","scrollTo","readAllKeyframes","readKeyframes","KeyframeResolver","unresolvedKeyframes","isAsync","isComplete","scheduleResolve","valueAsRead","readValue","setFinalKeyframe","renderEndStyles","sanitize","floatRegex","singleColorRegex","isColorString","testProp","isNullish","splitColor","aName","bName","cName","rgbUnit","clampRgbUnit","rgba","alpha$1","hsla","hue","saturation","lightness","colorRegex","NUMBER_TOKEN","COLOR_TOKEN","complexRegex","analyseComplexValue","originalValue","var","parsedValue","parseComplexValue","createTransformer","numSections","convertNumbersToZero","getAnimatableNone","parsed","maxDefaults","applyDefaultFilter","functionRegex","browserNumberValueTypes","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","marginTop","backgroundPositionX","backgroundPositionY","transformValueTypes","scaleZ","skewX","skewY","translateZ","transformPerspective","originX","originY","originZ","int","numberValueTypes","numOctaves","defaultValueTypes","outlineColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","WebkitFilter","getDefaultValueType","defaultValueType","invalidTemplates","DOMKeyframesResolver","keyframe","resolveNoneKeyframes","originType","targetType","noneKeyframeIndexes","animatableTemplate","noneIndex","makeNoneKeyframesAnimatable","measuredOrigin","measureViewportBox","measureKeyframe","finalKeyframeIndex","unsetTransformName","unsetTransformValue","isGenerator","isAnimatable","canAnimate","originKeyframe","targetKeyframe","isOriginAnimatable","isTargetAnimatable","hasKeyframesChanged","BaseAnimation","repeatDelay","isStopped","hasAttemptedResolve","createdAt","updateFinishedPromise","calcStartTime","resolvedAt","_resolved","onKeyframesResolved","resolveFinishedPromise","resolvedAnimation","initPlayback","onPostResolved","currentFinishedPromise","calcGeneratorVelocity","resolveValue","prevT","safeMin","findSpring","envelope","bounce","mass","dampingRatio","undampedFreq","exponentialDecay","calcAngularFreq","exp","initialGuess","rootIterations","approximateRoot","durationKeys","physicsKeys","isSpringType","spring","restDelta","isResolvedFromDuration","springOptions","derived","getSpringOptions","initialVelocity","initialDelta","undampedAngularFreq","isGranularScale","resolveSpring","angularFreq","dampedAngularFreq","freqForT","sinh","cosh","calculatedDuration","currentVelocity","isBelowVelocityThreshold","isBelowDisplacementThreshold","inertia","power","timeConstant","bounceDamping","bounceStiffness","modifyTarget","nearestBoundary","ideal","calcDelta","calcLatest","applyFriction","latest","timeReachedBoundary","spring$1","checkCatchBoundary","isOutOfBounds","hasUpdatedFrame","easingLookup","easingDefinitionToFunction","combineFunctions","pipe","toFromDifference","mixNumber","hueToRgb","mixImmediate","mixLinearColor","fromExpo","expo","colorTypes","asRGBA","getColorType","model","hslaToRgba","mixColor","fromRGBA","toRGBA","blended","invisibleValues","mixNumber$1","getMixer","mixComplex","mixArray","mixObject","numValues","blendValue","template","originStats","targetStats","mixVisibility","orderedOrigin","pointers","originIndex","originValue","matchOrder","mix","mixer","interpolate","isClamp","inputLength","mixers","customMixer","mixerFactory","numMixers","easingFunction","createMixers","interpolator","progressInRange","defaultOffset","remaining","offsetProgress","fillOffset","defaultEasing","keyframeValues","times","easingFunctions","isEasingArray","absoluteTimes","convertOffsetToTimes","mapTimeToKeyframe","frameloopDriver","passTimestamp","generators","decay","tween","percentToProgress","MainThreadAnimation","holdTime","cancelTime","playbackSpeed","pendingPlayState","teardown","onStop","KeyframeResolver$1","onResolved","keyframes$1","generatorFactory","mapPercentToKeyframes","mirroredGenerator","generator","calcGeneratorDuration","resolvedDuration","totalDuration","tick","sample","timeWithoutDelay","isInDelayPhase","elapsed","frameGenerator","currentIteration","iterationProgress","isAnimationFinished","finish","driver","newSpeed","hasChanged","stopDriver","acceleratedValues","isBezierDefinition","supportsFlags","linearEasing","memoSupports","supportsFlag","supportsLinearEasing","animate","isWaapiSupportedEasing","supportedWaapiEasing","cubicBezierAsString","mapEasingToNativeEasing","generateLinearEasing","numPoints","segmentEasing","attachTimeline","timeline","onfinish","supportsWaapi","unsupportedEasingFunctions","AcceleratedAnimation","pregeneratedAnimation","sampleAnimation","pregeneratedKeyframes","pregenerateKeyframes","valueName","keyframeOptions","startWaapiAnimation","pendingTimeline","playState","sampleTime","supports","HTMLElement","supportsScrollTimeline","ScrollTimeline","GroupPlaybackControls","runAll","onResolve","onReject","getAll","setAll","methodName","animateMotionValue","isHandoff","valueTransition","when","_delay","delayChildren","staggerChildren","staggerDirection","isTransitionDefined","shouldSkip","camelToDash","optimizedAppearDataAttribute","getOptimisedAppearId","isMotionValue","getWillChangeName","addValueToWillChange","applyWillChange","willChange","setStaticValue","shouldBlockAnimation","protectedKeys","needsAnimating","shouldBlock","animateTarget","targetAndTransition","transitionOverride","animationTypeState","animationState","getState","latestValues","valueTarget","MotionHandoffAnimation","appearId","shouldReduceMotion","animateVariant","presenceContext","getAnimation","getChildAnimations","variantChildren","forwardDelay","maxStaggerDuration","generateStaggerDuration","sortByTreeOrder","animateChildren","sortNodePosition","animateVisualElement","resolvedDefinition","setVariants","variantLabels","getVariant","animationControls","hasMounted","setValues","stopAnimation","mount","useConstant","isBrowser","useAnimationControls","useAnimation","createDOMMotionComponentProxy","componentFactory","componentCache","_target","isAnimationControls","shallowCompare","prevLength","isVariantLabel","variantPriorityOrder","variantProps","numVariantProps","getVariantContext","isControllingVariants","initial","reversePriorityOrder","numAnimationTypes","createAnimationState","animateList","createState","isInitialRender","buildResolvedTypeValues","animateChanges","changedActiveType","removedKeys","encounteredKeys","removedVariantIndex","typeState","propIsVariant","activeDelta","isActive","isInherited","manuallyAnimateOnMount","prevProp","variantDidChange","checkVariantsDidChange","shouldAnimateType","handledRemovedValues","definitionList","resolvedValues","prevResolvedValues","allKeys","markToAnimate","liveStyle","valueHasChanged","blockInitialAnimation","fallbackAnimation","fallbackTarget","getBaseTarget","shouldAnimate","setActive","setAnimateFunction","makeAnimator","createTypeState","whileInView","whileHover","whileTap","whileDrag","whileFocus","Feature","updateAnimationControlsSubscription","unmountControls","prevAnimate","isPresent","onExitComplete","prevIsPresent","prevPresenceContext","exitAnimation","isPrimaryPointer","extractEventInfo","addDomEvent","addPointerEvent","addPointerInfo","PanSession","transformPagePoint","contextWindow","dragSnapToOrigin","lastMoveEvent","lastMoveEventInfo","updatePoint","getPanInfo","isPanStarted","isDistancePastThreshold","xDelta","yDelta","distance2D","onMove","handlePointerMove","transformPoint","handlePointerUp","onEnd","onSessionEnd","resumeAnimation","panInfo","initialInfo","onSessionStart","removeListeners","updateHandlers","subtractPoint","lastDevicePoint","startDevicePoint","timeDelta","timestampedPoint","createLock","openLock","globalHorizontalLock","globalVerticalLock","getGlobalLock","drag","openHorizontal","openVertical","isDragActive","openGestureLock","isRefObject","calcLength","calcAxisDelta","originPoint","calcBoxDelta","calcRelativeAxis","calcRelativeAxisPosition","layout","calcRelativePosition","calcRelativeAxisConstraints","calcViewportAxisConstraints","layoutAxis","constraintsAxis","defaultElastic","resolveAxisElastic","dragElastic","minLabel","maxLabel","resolvePointElastic","createBox","eachAxis","convertBoundingBoxToBox","isIdentityScale","hasScale","hasTransform","has2DTranslate","is2DTranslate","scalePoint","applyPointDelta","boxScale","applyAxisDelta","applyBoxDelta","TREE_SCALE_SNAP_MIN","TREE_SCALE_SNAP_MAX","translateAxis","transformAxis","axisTranslate","axisScale","axisOrigin","transformBox","topLeft","bottomRight","transformBoxPoints","getContextWindow","elementDragControls","VisualElementDragControls","openGlobalLock","isDragging","currentDirection","constraints","hasMutatedConstraints","elastic","originEvent","snapToCursor","panSession","pauseAnimation","dragPropagation","onDragStart","resolveConstraints","projection","isAnimationBlocked","getAxisMotionValue","measuredAxis","layoutBox","dragDirectionLock","onDirectionLock","onDrag","lockThreshold","getCurrentDirection","updateAxis","getAnimationState","getTransformPagePoint","onDragEnd","_point","shouldDrag","axisValue","applyConstraints","dragConstraints","measure","prevConstraints","resolveRefConstraints","calcRelativeConstraints","resolveDragElastic","relativeConstraints","rebaseAxisConstraints","onMeasureDragConstraints","constraintsElement","constraintsBox","rootProjectionNode","viewportBox","scroll","measurePageBox","measuredConstraints","calcViewportConstraints","userConstraints","convertBoxToBoundingBox","dragMomentum","dragTransition","onDragTransitionEnd","momentumAnimations","startAxisValueAnimation","dragKey","externalMotionValue","scalePositionWithinConstraints","boxProgress","sourceLength","targetLength","calcOrigin","transformTemplate","updateScroll","updateLayout","addListeners","stopPointerListener","dragListener","measureDragConstraints","stopMeasureLayoutListener","stopResizeListener","stopLayoutUpdateListener","hasLayoutChanged","asyncHandler","PresenceContext","LayoutGroupContext","SwitchLayoutGroupContext","globalProjectionState","hasAnimatedSinceResize","hasEverUpdated","pixelsToPercent","pixels","correctBorderRadius","correct","correctBoxShadow","treeScale","projectionDelta","original","shadow","xScale","yScale","averageScale","scaleCorrectors","microtask","cancelMicrotask","MeasureLayoutWithContext","layoutGroup","switchLayoutGroup","layoutId","correctors","defaultScaleCorrectors","didUpdate","safeToRemove","setOptions","layoutDependency","willUpdate","promote","relegate","getStack","members","currentAnimation","isLead","promoteContext","scheduleCheckAfterUnmount","MeasureLayout","usePresence","numBorders","asNumber","isPx","getRadius","radiusName","easeCrossfadeIn","compress","easeCrossfadeOut","copyAxisInto","originAxis","copyBoxInto","originBox","copyAxisDeltaInto","originDelta","removePointDelta","removeAxisTransforms","sourceAxis","scaleKey","originKey","removeAxisDelta","xKeys","yKeys","removeBoxTransforms","sourceBox","isAxisDeltaZero","isDeltaZero","axisEquals","axisEqualsRounded","boxEqualsRounded","axisDeltaEquals","NodeStack","scheduleRender","prevLead","lead","indexOfNode","member","preserveFollowOpacity","resumeFrom","preserveOpacity","snapshot","animationValues","isUpdating","isLayoutDirty","crossfade","exitAnimationComplete","resumingFrom","removeLeadSnapshot","compareByDepth","FlatTree","isDirty","resolveMotionValue","unwrappedValue","toValue","isCustomValue","checkElapsed","metrics","totalNodes","resolvedTargetDeltas","recalculatedProjection","isDebug","MotionDebug","transformAxes","hiddenVisibility","resetDistortingTransform","sharedAnimationValues","cancelTreeOptimisedTransformAnimations","projectionNode","hasCheckedOptimisedAppear","MotionHasOptimisedAnimation","MotionCancelOptimisedAnimation","createProjectionNode","attachResizeListener","defaultParent","measureScroll","checkIsScrollRoot","resetTransform","animationId","isTreeAnimating","isProjectionDirty","isSharedProjectionDirty","isTransformDirty","updateManuallyBlocked","updateBlockedByResize","isSVG","needsReset","shouldResetTransform","hasTreeAnimated","updateScheduled","projectionUpdateScheduled","checkUpdateFailed","clearAllSnapshots","updateProjection","propagateDirtyNodes","resolveTargetDelta","calcProjection","cleanDirtyNodes","record","resolvedRelativeTargetAt","hasProjected","animationProgress","sharedNodes","notifyListeners","subscriptionManager","hasListeners","SVGElement","cancelDelay","resizeUnblockUpdate","finishAnimation","registerSharedNode","hasRelativeTargetChanged","newLayout","isTreeAnimationBlocked","relativeTarget","layoutTransition","defaultLayoutTransition","onLayoutAnimationStart","onLayoutAnimationComplete","targetChanged","targetLayout","hasOnlyRelativeTargetChanged","layoutRoot","setAnimationOrigin","animationOptions","blockUpdate","unblockUpdate","isUpdateBlocked","startUpdate","resetSkewAndRotation","getTransformTemplate","shouldNotifyListeners","prevTransformTemplateValue","updateSnapshot","clearMeasurements","clearIsLayoutDirty","resetTransformStyle","notifyLayoutUpdate","clearSnapshot","removeLeadSnapshots","scheduleUpdateProjection","alwaysMeasureLayout","prevLayout","layoutCorrected","phase","layoutScroll","isRoot","wasRoot","isResetRequested","hasProjection","transformTemplateValue","transformTemplateHasChanged","removeTransform","pageBox","removeElementScroll","roundAxis","measuredBox","checkNodeWasScrollRoot","boxWithoutScroll","applyTransform","transformOnly","withTransforms","boxWithoutTransform","setTargetDelta","targetDelta","forceRelativeParentToResolveTarget","relativeParent","forceRecalculation","getLead","isShared","attemptToResolveRelativeTarget","getClosestProjectingParent","relativeTargetOrigin","targetWithTransforms","isProjecting","canSkip","pendingAnimation","prevTreeScaleX","prevTreeScaleY","isSharedTransition","treeLength","applyTreeDeltas","prevProjectionDelta","createProjectionDeltas","notifyAll","projectionDeltaWithTransform","snapshotLatestValues","mixedValues","relativeLayout","isSharedLayoutAnimation","isOnlyMember","shouldCrossfadeOpacity","hasOpacityCrossfade","prevRelativeTarget","mixTargetDelta","mixAxisDelta","mixAxis","mixBox","boxEquals","follow","opacityExit","borderLabel","followRadius","leadRadius","mixValues","motionValue$1","animateSingleValue","applyTransformsToTarget","shouldAnimatePositionOnly","animationType","initialPromotionConfig","shouldPreserveFollowOpacity","getPrevLead","hasDistortingTransform","resetValues","getProjectionStyles","styleProp","emptyStyles","valuesToRender","latestTransform","xTranslate","yTranslate","zTranslate","elementScaleX","elementScaleY","buildProjectionTransform","corrected","resetTree","measuredLayout","axisSnapshot","layoutDelta","visualDelta","parentSnapshot","parentLayout","relativeSnapshot","onBeforeLayoutMeasure","userAgentContains","roundPoint","maxDistance","DocumentProjectionNode","HTMLProjectionNode","documentNode","pan","removePointerDownListener","onPointerDown","pointerDownEvent","session","createPanHandlers","onPanSessionStart","onPanStart","onPan","onPanEnd","removeGroupControls","dragControls","ProjectionNode","addHoverEvent","callbackName","isNodeOrChild","parentElement","fireSyntheticPointerEvent","syntheticPointerEvent","PointerEvent","observerCallbacks","observers","fireObserverCallback","entry","fireAllObserverCallbacks","observeIntersection","rootInteresectionObserver","lookupRoot","rootObservers","IntersectionObserver","initIntersectionObserver","unobserve","thresholdNames","gestureAnimations","inView","hasEnteredView","isInView","startObserver","viewport","rootMargin","isIntersecting","onViewportEnter","onViewportLeave","hasOptionsChanged","prevViewport","hasViewportOptionChanged","tap","removeStartListeners","removeEndListeners","removeAccessibleListeners","startPointerPress","startInfo","isPressing","removePointerUpListener","endPointerPress","endEvent","endInfo","checkPressEnd","onTap","onTapCancel","globalTapTarget","removePointerCancelListener","cancelEvent","cancelInfo","cancelPress","startPress","startAccessiblePress","removeKeydownListener","keydownEvent","keyupEvent","removeBlurListener","onTapStart","removePointerListener","removeFocusListener","MotionConfigContext","reducedMotion","MotionContext","LazyContext","strict","scheduleHandoffComplete","useVisualElement","visualState","createVisualElement","ProjectionNodeConstructor","lazyContext","reducedMotionConfig","visualElementRef","initialLayoutGroupConfig","getClosestProjectingNode","optimisedAppearId","wantsHandoff","MotionHandoffIsComplete","updateFeatures","completeHandoff","allowProjection","useMotionRef","externalRef","isVariantNode","useCreateMotionContext","inherit","getCurrentTreeVariants","variantLabelsAsDependency","featureProps","featureDefinitions","isEnabled","motionComponentSymbol","createRendererMotionComponent","preloadedFeatures","useRender","useVisualState","features","loadFeatures","ForwardRefMotionComponent","configAndProps","useLayoutId","useStrictMode","layoutProjection","combined","getProjectionFunctionality","layoutGroupId","lowercaseSVGElements","isSVGComponent","renderHTML","camelCaseAttributes","renderSVG","renderState","_styleProp","isForcedMotionValue","scrapeMotionValuesFromProps","newValues","scrapeMotionValuesFromProps$1","makeUseVisualState","make","createRenderState","makeLatestValues","makeState","forEachDefinition","shouldApplyWillChange","scrapeMotionValues","motionValues","isControllingVariants$1","isVariantNode$1","isInitialAnimationBlocked","variantToSet","createHtmlRenderState","createSvgRenderState","getValueAsType","translateAlias","numTransforms","buildHTMLStyles","hasTransformOrigin","valueAsType","transformString","transformIsDefault","valueIsDefault","buildTransform","dashKeys","camelKeys","buildSVGAttrs","isSVGTag","attrX","attrY","attrScale","pathSpacing","pathOffset","calcSVGTransformOrigin","useDashCase","buildSVGPath","svgMotionConfig","htmlMotionConfig","copyRawValuesOnly","useStyle","useInitialMotionValues","useHTMLProps","htmlProps","draggable","WebkitUserSelect","WebkitTouchCallout","touchAction","validMotionProps","isValidMotionProp","shouldForward","isValidProp","useSVGProps","_isStatic","visualProps","rawStyles","createUseRender","forwardMotionProps","filteredProps","isDom","elementProps","renderedChildren","createMotionComponentFactory","prefersReducedMotion","hasReducedMotionListener","visualElementStore","valueTypes","propEventHandlers","VisualElement","_prevProps","_visualElement","valueSubscriptions","prevMotionValues","propEventSubscriptions","notifyUpdate","triggerBuild","renderInstance","renderScheduledAt","baseTarget","initialValues","initialMotionValues","removeFromVariantTree","addVariantChild","bindToMotionValue","motionMediaQuery","setReducedMotionPreferences","initPrefersReducedMotion","feature","valueIsTransform","removeOnChange","latestValue","removeOnRenderRequest","removeSyncCheck","MotionCheckAppearSync","sortInstanceNodePosition","featureDefinition","FeatureConstructor","build","measureInstanceViewportBox","getStaticValue","prevValue","existingValue","removeValue","updateMotionValuesFromProps","handleChildMotionValue","getClosestVariantNode","closestVariantNode","removeValueFromRenderState","getBaseTargetFromProps","readValueFromInstance","findValueType","setBaseTarget","valueFromInitial","DOMVisualElement","HTMLVisualElement","defaultType","computedStyle","childSubscription","SVGVisualElement","createDomVisualElement","__assign","__spreadArray","pack","ar","SuppressedError","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","KEYFRAMES","replacement","indexof","charat","begin","strlen","sizeof","column","character","characters","lift","peek","caret","alloc","dealloc","delimit","delimiter","whitespace","escaping","commenter","identifier","serialize","prefixer","combine","compile","rulesets","pseudo","declarations","atrule","scanning","ampersand","reference","declaration","ruleset","post","unitlessKeys","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","WebkitLineClamp","REACT_APP_SC_ATTR","SC_ATTR","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","$","groupSizes","Uint32Array","indexOfGroup","clearGroup","getGroup","registerName","getTag","_e","__webpack_nonce__","styleSheets","ownerNode","cssText","isServer","useCSSOMInjection","gs","names","server","registerId","rehydrate","reconstructWithOptions","allocateGSInstance","hasNameForId","clearNames","clearRules","clearTag","replaceAll","namespace","collection","shouldForwardProp","stylis","Ge","stylisPlugins","disableCSSOMInjection","enableVendorPrefixes","getName","isCss","styledComponentId","staticRulesId","componentId","baseHash","baseStyle","generateAndInjectStyles","et","rt","parentComponentId","componentStyle","foldedComponentIds","as","forwardedAs","_foldedDefaultProps","ct","lt","ut","withConfig","dt","createStyles","removeStyles","renderStyles","_emitSheetCSS","getStyleTags","sealed","getStyleElement","seal","collectStyles","interleaveWithNodeStream","ContentAnim","isequipe","ContentBgColor","$backgroundcolor","$borderradius","$isnavbottom","MyImageLazzy","brightness","backgrondLinear","disableBackgroundLinear","isEquipe","isnavbottom","backgroundPosition","isEnteringGif","setImg","animContent","animShadow","animO","AOpacity","_jsx","hanldeEnter","Box","backgroundImage","backgroundSize","backgroundRepeat","_jsxs","_Fragment","ContentComp","LinkComp","MyLink","MyLogo","setarRouter","logo","MainContext","openSwipe","setOpenSwipe","openContact","setContact","setLoad","animIntroComplete","setAnimIntroComplete","MainProvider","onLoadPage","setLoadPage","behavior","useMain","MyFadeUp","fade","fontMazzartR","TypographyDesc","fontlg","fontmd","fontsm","fontxl","fontxs","returnFontFamily","retornFontSize","AFontSize","AFontFamilyT","MyTypographyDesc","ImagemMaterias","makeStylesWithoutDefault","legalLink","newsletter","navMenu","flexWrap","boxNavManu","flexDirection","boxNavTermos","itemSobre","fontBtn","btnFooter","btnSocial","contentSm","contentSecSm","contentTSm","contentLogo","contentSocialSm","contentSocial","contentSmUp","contentSecSmUp","boxNavTermosSec","contentBtn","logoBDRHoriz","isSm","APath","myBtnText","ADesc","mt","my","FacebookIcon","InstagramIcon","YouTubeIcon","SPACINGS","GRID_SIZES","getOffset","Grid","_props$alignContent","alignContent","_props$alignItems","_props$container","_props$direction","_props$item","_props$justifyContent","_props$lg","_props$md","_props$sm","_props$spacing","_props$wrap","wrap","_props$xl","_props$xs","_props$zeroMinWidth","zeroMinWidth","StyledGrid","generateGutter","accumulator","globalStyles","flexBasis","generateGrid","ContentPrinc","GridPrinc","ContentDesc","ContentName","ContentSocial","ContentLogo","ContentSecLogo","ContentGrid","PaperComp","$bgcolor","AspasComp","Aspas","ContentMaxWidth","PatrocItem","isSmDown","animationScale","page","social","styleLogo","IconeCresol","logoCresolVertical200","master","ContentMw","ContentFlexCenter","MyFlexCenter","Patroc","objData","ButtonComp","ContentImgLeft","borderright","ContentButton","ContentHover","CardActionArea","focusHighlight","CardActionAreaComp","isleft","ismid","DescContent","DescTitle","itemBtnControls","itemDescControls","sequenceUp","setImage","onHoverStart","onHoverEnd","sequenceDown","pathName","btnDesc","ContentShadow","ContentImg","Content","MyMotionImgLazzy","animOpacity","animS","handleOpLoad","ContentSm","ContentSec","ContentFade","ContentDescAlign","ContainerMw","ContainerTextLast","TextLast","ContentItemDesc","DescCard","datacard","buttonDesc","MyPressMotion","CardComponent","ContentDescCard","CardComp","DivScreenshot","BottomBar","Style","Card","linkHref","hexa","imgCresolItem","descCresol1","descCresol2","imgGuabiju","vitralLogo","imgRedeVemViverLogo","imgDiferLogo","imgSolPrime","dataColab","nome","sobreNome","cargo","descricao1","descricao2","imgItem","instagram","propStyleGrid","LottiePlayerContext","openLottie","setOpenLottie","isMovieDesk","setIsMovieDesk","isImageDesk","setIsImageDesk","isGif","setIsGif","setComplete","LottiePlayerProvider","isMovie","useLottiePlayer","MyLottie","setOpen","BoxPrinc","BgImage","ContentLottie","ContentNoMaxWidth","MyLottieScroll","animateOpacity","animOp","scrollAnim","MyScrollAnim","setShow","ReactPlayer","ContentScale","IFrameIntro","isMovieIntro","movie","setPlay","setLoaded","setUrl","ContentMotion","MyImage","setSrc","handleSetLoad","setLoadImg","ALoading","AOp","hanldeExit","MyMediaIntro","MyLottieImage","maxwidth","H2Hidden","ItensLottieHtmlDescPrincHome","ItensLottieHtmlDescPrincColabHome","ItensLottieHtmlDescOpiniaoHome","ItensHomeChave","ItensLottieHtmlHome","ItensLottieHtmlNossoProgramaHome","ItensLottieHtmlPrincMaterias","ItensLottieHtmlDescPrincMaterias","ItensHtmlLottieMainPatroc","ItensHtmlLottieDescColabPatroc","ItensHtmlLottieMainEquipe","ItensHtmlLottieEquipeCapaEquipe","ItensHtmlLottieMainAbout","MyAnimTextMain","animM","isMd","ContainerData","ContainerLottieDesc","GridItemColab","ImgBgColab","isXs","onSetColabItem","UNSAFE_decodePath","useMatch","animColaboradores","animColaboradoresM","descPrincColab","ColabCapaPrinc","setarColabItem","desc1","desc2","Avatar","alt","childrenProp","imgProps","sizes","srcSet","useLoaded","hasImg","hasImgNotFailing","Person","system","colorDefault","circle","circular","rounded","objectFit","textIndent","ContentAvatarPrinc","ContentAvatar","ContentCircle","ContentItem","FacebookIconComp","InstagramIconComp","LinkedInIcon","EquipeCapa","ContentRelative","ContentDescLottie","styleGrid","ImgEquipeBdr","GridEquipe","animEquipe","animEquipeM","descPrincEquipeCapa","dataEquipe","GridContainer","Griditem","DoubleCard","dataCard","setDataCard","objCard","C_FIRST_DESC","DescComp","ContentMap","ContentMwMap","IFrameGoogleMaps","iframe","MyMap","loading","referrerPolicy","ContentDescLeftFlex","ContentDescLeft","ContentImage","ContentTitle","ImageTextSticky","StickyContainer","TypographySticky","TextCenter","ContainerPrinc","ImageText","StickyComp","ContentPadding","ImgBdrSobre","AboutComp","animSobre","animSobreM","descNossaLocaliz","descFirst","descSec","titleLeft","descLeft","btnLeft","pathNameLeft","titleMid","descMid","btnMid","pathNameMid","titleRight","descRight","btnRight","pathNameRight","CardHover","setImageChange","IsSmUp","CardUp","isRight","Paper","_props$square","_props$elevation","elevation","elevations","DescName","DescCargo","ContentSocialInfo","Star","CardCrSel","indicatorStyles","arrowStyles","CrSelMaterial","onIndex","setOnIndex","setAutoPlay","handleEnter","handleLeave","intem","ArrowLeft","ArrowRight","Opinion","ContentDescNossoPrograma","ContentCardInformation","ContentBoxCardInformation","ContainerLottieM","AnimationSecComp","descPrincNossoPrograma","animationSecM1","animationSecM2","animationSecM3","AnimationSec","ContentCardHover","ContentPatroc","ContentValues","ContentOpinion","ContentMh","ContentFlex","ContentDescMq","CardItem","handleHover","titleSec","titleFirst","ContentbgImageItem","GridComp","GridItem","ContainerComp","CardInformation","setBackgroundPosition","APos","Principal","mainAnimation","mainAnimationM","descPrincEquipe","descPrincOpiniao","thisArg","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","findKey","_global","isContextDefined","isTypedArray","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","reducedDescriptors","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","_setImmediate","setImmediateSupported","postMessageSupported","asap","nextTick","isBuffer","isFormData","kind","FormData","isArrayBufferView","isBoolean","isStream","caseless","assignValue","targetKey","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","searchString","forEachEntry","matchAll","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","toCamelCase","toFiniteNumber","generateString","alphabet","isSpecCompliantForm","toJSONObject","visit","reducedValue","isThenable","AxiosError","captureStackTrace","utils","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","predicates","formData","metaTokens","option","visitor","defaultVisitor","useBlob","convertValue","toISOString","Buffer","isFlatArray","exposedHelpers","encode","charMap","AxiosURLSearchParams","_pairs","toFormData","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","platform","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","defaults","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","parseHeaders","tokens","tokensRE","parseTokens","deleted","deleteHeader","normalized","formatHeader","targets","asStrings","accessor","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","samplesCount","bytes","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","speedometer","throttle","lengthComputable","progressBytes","estimated","progressEventDecorator","throttled","asyncDecorator","msie","urlParsingNode","originURL","resolveURL","protocol","host","hostname","port","requestURL","write","expires","domain","secure","cookie","toGMTString","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","newConfig","auth","btoa","username","unescape","isURLSameOrigin","xsrfValue","cookies","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","signal","onloadend","responseHeaders","getAllResponseHeaders","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","abort","aborted","parseProtocol","composeSignals","signals","controller","AbortController","streamChunk","chunk","chunkSize","byteLength","readStream","stream","asyncIterator","reader","getReader","trackStream","onFinish","iterable","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","highWaterMark","isFetchSupported","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","res","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","_request","getBodyLength","fetchOptions","composedSignal","toAbortSignal","requestContentLength","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","responseData","knownAdapters","http","xhrAdapter","fetchAdapter","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","formatMessage","opt","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","Cancel","isAxiosError","formToJSON","getAdapter","rootClassName","separatorString","separatorClassName","itemClassName","scrollContainerClassName","wrapperClassName","innerWrapperClassName","headerClassName","arrowLeftClassName","arrowRightClassName","footerClassName","dataKeyAttribute","dataIndexAttribute","scrollRef","scrollWidth","overflowY","overflowX","frameElement","scrollMode","block","inline","boundary","skipOverflowHiddenElements","scrollingElement","getRootNode","visualViewport","scrollX","pageXOffset","scrollY","isConnected","startX","startY","scrollable","scrollIntoView","itemsChanged","visible","intersectionRatio","ratio","getVisible","disconnect","toArr","toItems","toItemsWithoutSeparators","toItemsKeys","getCurrentPos","getVisibleElements","LeftArrow","RightArrow","Header","Footer","transitionEase","transitionBehavior","onInit","onMouseMove","onWheel","apiRef","RTL","noPolyfill","getItemById","getItemElementById","getItemByIndex","getItemElementByIndex","getNextItem","getNextElement","getPrevItem","getPrevElement","isFirstItemVisible","isItemVisible","isLastItem","isLastItemVisible","scrollNext","scrollPrev","scrollToItem","visibleElements","visibleElementsWithSeparators","visibleItemsWithoutSeparators","initComplete","scrollContainer","_ref12","_ref13","_props$disablePortal","disablePortal","onRendered","mountNode","setMountNode","getContainer","ariaHidden","getPaddingRight","ariaHiddenSiblings","currentNode","nodesToExclude","blacklistTagNames","findIndexOf","handleContainer","fixedNodes","restoreStyle","restorePaddings","disableScrollLock","isOverflowing","scrollbarSize","scrollDiv","getScrollbarSize","ModalManager","modals","containers","modalIndex","modalRef","hiddenSiblingNodes","hiddenSiblings","getHiddenSiblings","containerIndex","nextTop","_props$disableAutoFoc","disableAutoFocus","_props$disableEnforce","disableEnforceFocus","_props$disableRestore","disableRestoreFocus","getDoc","ignoreNextEnforceFocus","sentinelStart","sentinelEnd","nodeToRestore","rootRef","prevOpenRef","hasAttribute","contain","hasFocus","loopFocus","_props$invisible","defaultManager","Modal","inProps","_props$BackdropCompon","BackdropComponent","SimpleBackdrop","BackdropProps","_props$closeAfterTran","closeAfterTransition","_props$disableBackdro","disableBackdropClick","_props$disableEscapeK","disableEscapeKeyDown","_props$disableScrollL","_props$hideBackdrop","hideBackdrop","_props$keepMounted","keepMounted","_props$manager","manager","onBackdropClick","onClose","onEscapeKeyDown","exited","setExited","mountNodeRef","hasTransition","getHasTransition","getModal","handleMounted","handleOpen","resolvedContainer","isTopModal","handlePortalRef","handleClose","inlineStyle","childProps","TrapFocus","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appearStatus","unmountOnExit","mountOnEnter","nextCallback","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","nodeRef","forceReflow","performEnter","performExit","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEntering","onTransitionEnd","onExit","onExiting","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","reflow","getTransitionProps","_props$style","transitionDelay","entering","entered","defaultTimeout","Fade","_props$disableStrictM","disableStrictModeCompat","_props$TransitionComp","TransitionComponent","_props$timeout","enableStrictModeCompat","foreignRef","normalizedTransitionCallback","nodeOrAppearing","isAppearing","handleEntering","transitionProps","webkitTransition","handleEntered","handleExiting","handleExit","Backdrop","defaultTransitionDuration","Dialog","_props$fullScreen","fullScreen","_props$PaperComponent","PaperComponent","_props$PaperProps","PaperProps","_props$scroll","_props$transitionDura","TransitionProps","ariaDescribedby","ariaLabelledby","mouseDownTarget","paperFullScreen","paperFullWidth","scrollPaper","scrollBody","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","ContentFrameColab","MyFrameColab","animOpIntro","MyOverlayMovie","setClose","videoId","C_WIDTH_CARD_MATERIA","C_HEIGHT_CARD_MATERIA","ContentCardMateria","ContentShadowHov","PlayIcon","PauseIcon","ContentTypography","PauseIconMaterial","opacityicon","PlayArrowIcon","ContentPlayIcon","istitle","ContentMediaImg","blockSize","objectPosition","ContentMediaPrinc","Skeleton","_props$animation","hasChildren","withChildren","fitContent","heightAuto","pulse","wave","MediaCard","openMovie","setOpenMovie","animShadowEnter","isPan","setPan","boxRef","myImg","setMyImg","visibilityC","VisibilityContext","visibleItemPrev","visibleItem","visibleItemNext","setIsVisible","hanldeSetOp","handleLoadImg","MyCard","AOpen","ContentArrow","ContentArrowIcon","Arrow","isLeft","handleAnimO","clickHandler","ArrowBack","ArrowForward","lenght","ContentMinHeight","returnImgResolution","AThumbnails","maxres","hight","medium","dataEmpty","Materias","dataMater","setDataMater","setIsLoading","mountedRef","dragStart","dragStop","dragMove","dragging","clicked","setClicked","setDragging","newDiff","movedEnough","useDrag","handleLoad","snippet","thumbnails","resourceId","ScrollMenu","posDiff","playListMaterData","emphasis","MateriasItem","ContainerSecComp","cardMedia","cardPrinc","GridMater","animMateria","animMateriaM","descPrincMaterias","CardActions","_props$disableSpacing","disableSpacing","ContentMediaQ","CardMediaComp","ContentDescription","BoxImage","ColabItem","useParams","setLoading","setDataColab","dataReturn","retornarState","returnSrcImg","ItensHtmlSemantic","ADataColab","descButton","setTranslateValue","fakeTransform","offsetX","offsetY","transformValues","getTranslateValue","Slide","childrenRef","handleRefIntermediary","updatePosition","handleResize","Toolbar","regular","dense","AppBar","_props$position","backgroundColorDefault","positionFixed","positionAbsolute","positionSticky","positionStatic","positionRelative","colorTransparent","StackComp","IconButtonMenu","AppBarComp","pages","returnBgColor","APage","onPage","ABgColor","ABgColorNoSelect","inicio","materias","patrocinadores","equipe","sobre","MyButton","bgcolorhover","colorhover","bgcolorselect","colortypo","fontweighthover","myfontweight","MyNavbar","setPage","handleClick","MenuIcon","oppositeDirection","getAnchor","Drawer","_props$anchor","anchorProp","_props$ModalProps","ModalProps","BackdropPropsProp","_props$open","SlideProps","docked","slidingDrawer","WebkitOverflowScrolling","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","borderRight","paperAnchorDockedTop","borderBottom","paperAnchorDockedRight","borderLeft","paperAnchorDockedBottom","borderTop","_props$defer","defer","_props$fallback","SwipeArea","anchorLeft","anchorRight","anchorTop","anchorBottom","nodeThatClaimedTheSwipe","calculateCurrentX","calculateCurrentY","getMaxTranslate","horizontalSwipe","paperInstance","getTranslate","currentTranslate","startLocation","maxTranslate","iOS","transitionDurationDefault","SwipeableDrawer","disableBackdropTransition","_props$disableDiscove","disableDiscovery","_props$disableSwipeTo","disableSwipeToOpen","_props$hysteresis","hysteresis","_props$minFlingVeloci","minFlingVelocity","ModalPropsProp","onOpen","SwipeAreaProps","_props$swipeAreaWidth","swipeAreaWidth","maybeSwiping","setMaybeSwiping","swipeInstance","swipeAreaRef","backdropRef","paperRef","touchDetected","calculatedDurationRef","_options$mode","_options$changeTransi","changeTransition","anchorRtl","rtlTranslateMultiplier","drawerStyle","backdropStyle","handleBodyTouchEnd","translateRatio","handleBodyTouchMove","currentY","domTreeShapes","rootNode","getDomTreeShapes","nativeHandler","axisProperties","goingForward","scrollPosition","areNotAtStart","areNotAtEnd","findNativeHandler","dx","dy","definitelySwiping","paperHit","lastTranslate","handleBodyTouchStart","muiHandled","handleBackdropRef","NoSsr","Root","Puller","ContentPuller","$openmodal","MySwipeableDrawer","Contact","contactAnim","LinearProgress","valueBuffer","rootProps","inlineStyles","bar1","bar2","_transform","determinate","indeterminate","dashed","bar","bar1Indeterminate","bar1Determinate","bar1Buffer","bar2Indeterminate","bar2Buffer","getColor","backgroundPrimary","backgroundSecondary","dashedColorPrimary","dashedColorSecondary","barColorPrimary","barColorSecondary","MyLoading","TAG_NAMES","TAG_NAMES2","SEO_PRIORITY_TAGS","VALID_TAG_NAMES","REACT_TAG_MAP","accesskey","class","contenteditable","contextmenu","itemprop","tabindex","HTML_TAG_MAP","carry","HELMET_ATTRIBUTE","HELMET_PROPS","getInnermostProperty","propsList","getTitleFromPropsList","innermostTitle","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","msg","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","keys2","attributeKey","tagUnion","getAnyTrueFromPropsList","checkedTag","flattenArray","possibleArray","prioritizer","elementsList","propsToMatch","elementAttrs","checkIfPropsMatch","toMatch","without","SELF_CLOSING_TAGS","encodeSpecialCharacters","generateElementAttributesAsString","convertElementAttributesToReactProps","initProps","generateTagsAsReactComponent","tags","mappedTag","attribute","mappedAttribute","getMethodsForTag","toComponent","generateTitleAsReactComponent","_type","titleAttributes","generateTitleAsString","attributeString","flattenedTitle","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","server_default","baseTag","bodyAttributes","htmlAttributes","noscriptTags","styleTags","prioritizeSeoTags","linkTags","metaTags","scriptTags","priorityMethods","getPriorityMethods","noscript","instances","isDocument","HelmetData","canUseDOM","setHelmet","serverState","helmet","helmetInstances","Context","React2","HelmetProvider","_HelmetProvider","helmetData","updateTags","headElement","tagNodes","oldTags","newTags","indexToDelete","existingTag","isEqualNode","updateAttributes","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","commitTagChanges","onChangeClientState","updateTitle","tagUpdates","addedTags","removedTags","_helmetCallback","client_default","HelmetDispatcher","Component2","rendered","shallowEqual","emitChange","Helmet","Component3","fastCompare","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","arrayTypeChildren","newChildProps","mapObjectTypeChildren","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","warnOnInvalidChildren","nestedChild","mapChildrenToProps","React3","dataHelmet","ldJsonOrganization","MyHelmet","linkWebsite","isHome","isMaterias","dataMovie","setDataMovie","hanldeLoad","hanldeLoadMovie","verifyAndPushMovie","AData","ANewData","publishedAt","returnDescTitle","returnDataEquipe","returnDataColab","isSubDomainEquipe","returnSubDomain","ldJsonWebSite","ldJsonBreadcrumb","ldJsonBreadcrumbSubDomain","isSubdomain","ReactRouter","Contato","namePath","GridColab","EquipeItem","dataEquip","About","Foot","App","Aos","ThemeProvider"],"sourceRoot":""}