{"version":3,"file":"static/chunks/pages/_app-ab5b60c5faf93905.js","mappings":"4FACA,qCAA6C,CAAE,SAAa,EAC5D,kBAAwB,QACxB,MAAqB,EAAQ,KAAc,CAC3C,SACA,EAF4B,UAE5B,GAGA,OAFA,cACA,2CACA,KAEA,OACA,iCACA,IAAoB,oCAA2D,EAC/E,KACA,eACA,MACA,QACA,IACA,YACA,GACA,mBAAyD,EAAW,SAAmB,EAAW,GAAG,EAAQ,IAG7G,QACA,EACA,gBACA,8CAAmG,eAAqB,UACxH,IACA,WACA,SAEA,MACA,WACA,QACA,iCAAiE,eAAqB,UACtF,YACA,GAAmC,kBACnC,QACA,CAAiB,EAEjB,GACA,kBAAkD,oBAA8B,WAEhF,WACA,EAFA,EAEA,MAKA,OAFA,UAA2B,uBAC3B,2DACA,CACA,CAAS,EAAI,SAAU,SAAY,CACnC,CACA,CACA,kBAAwB,uCCpDxB,8CACA,0BAA6C,UAC7C,EACA,qCAA6C,CAAE,SAAa,EAC5D,YAAkB,QAClB,QAAmC,EAAQ,KAAgB,GAC3D,EAAkB,EAAQ,IAAe,CADC,CAE1C,IAAmD,EAAQ,KADlC,GAEzB,IAAqC,EAAQ,GADa,EACQ,GAClE,IAAiC,EAAQ,GADG,EACc,GAC1D,IAAkC,EAAQ,GADF,EACoB,GAC5D,IAAgC,EAAQ,GADC,EACe,GACxD,IAA8B,EAAQ,GADC,EACa,GACpD,IAAyC,EAAQ,GADZ,EACwC,GAC7E,IAAkC,EAAQ,GADM,EACG,GACnD,EAAgB,EAAQ,KADiB,EAEzC,UADuB,KACvB,EACA,CAAM,yBAA6B,4CAAqD,CACxF,CAAM,2BAA+B,mDAA8D,CACnG,CAAM,8BAAkC,4CAAqD,CAC7F,CAAM,oCAAwC,0BAA+B,CAC7E,EAEA,mGACA,gDACA,iBACA,gBACA,UACA,CAAC,EAID,gBACA,qBACA,oCACA,gBAcA,KACA,iBACA,MACA,EACA,YAA4B,WAAqC,MACjE,WACA,kCACA,iBACA,yBACA,wBApCA,OAoCA,WACA,KACA,CACA,CACA,QACA,qBAEA,CAEA,EAhCA,KAEA,OACA,UAEA,OACA,QAEA,CACA,SACA,QAGA,CAiDA,sBACA,qEACA,oBACA,0CAEA,aADA,CAIA,CAoDA,QACA,eAEA,OADA,YACA,KAEA,OACA,OAvBA,gBAEA,SACA,kBAEA,SACA,8BAEA,SACA,6BAEA,IAAY,2BAAwB,EAIpC,OAjDA,gBACA,UACA,uBACA,yBAzCA,cACA,gBACA,iCACA,mDACA,mBACA,gBAIA,OAHA,GACA,4CAEA,CACA,CAAS,KACT,iBACA,qBACA,CACA,QACA,EA0BA,YACA,0BACA,aACA,0BACA,gBA7BA,KACA,gBACA,YACA,SACA,mDACA,+CACA,OACA,GAA0B,eAE1B,OADA,kBACA,gBACA,CACA,QACA,EAiBA,oBACA,uBACA,iBACA,6BACA,iBACA,sCACA,gBACA,oBACA,aACA,0BACA,kBACA,mCACA,gBACA,qBACA,OAjGA,MAiGA,CACA,4BACA,8CACA,uBACA,4CACA,wBACA,SACA,0BACA,6CACA,SACA,QACA,CACA,EAgBA,EAHA,KACA,kCACA,EAEA,EAOA,uBACA,CACA,CACA,YAAkB,uCCtKlB,mEACA,kBACA,2BAAmC,6BAAoC,aAAgB,CACvF,CAAC,mBACD,kBACA,SACA,CAAC,EACD,yCACA,iFACA,EACA,qCAA6C,CAAE,SAAa,EAAC,EAChD,EAAQ,KAAoB,KACzC,EAAa,EAAQ,GADD,EACe,KACnC,EAAa,EAAQ,GADD,EACU,YAAV,qBCbpB,qCAA6C,CAAE,SAAa,EAAC,EAC7D,QAAgB,QAEhB,YACA,kBACA,sBACA,sBACA,gBACA,4BACA,8CACA,UACA,sBACA,wCACA,YACA,0BACA,gBACA,kBACA,qBACA,CAAC,cAAkC,UAAgB,IAAK,gCClBxD,qCAA6C,CAAE,SAAa,EAAC,IAC7D,EAAkB,EAAQ,KAAiB,EAgF3C,UAhFyB,CAgFzB,OACA,QACA,yDACA,0BAEA,yBAAyC,WAAiB,OAC1D,cACA,UACA,UACA,UAGA,GAFA,qCACA,2CAEA,SAEA,gBACA,6BAEA,MAEA,CACA,QACA,CAhCA,SAAe,CA1Cf,gBAGA,GAFA,YAA8B,OAE9B,GACA,iCAEA,MACA,mCAEA,oBACA,eACA,SACA,SACA,gBAEA,YAqEA,KArEA,CAqEA,KArEA,CAsEA,KAtEA,CAsEA,KACA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,qBACA,qCAEA,8BACA,uDAEA,sBACA,SACA,6CAEA,CAAK,CACL,EA+BA,YAAkB,CARlB,YACA,MACA,8BAEA,8CACA,8CAEA,gCCjtBA,qCAA6C,CAAE,SAAa,EAAC,IAC7D,EAAgB,EAAQ,KAAe,EAmCvC,UAnCuB,CAavB,YACA,MACA,iCAEA,sBACA,uBACA,mBACA,0BACA,8BAEA,oBACA,qBAGA,qBACA,aACA,sBACA,qBACA,QAEA,kEACA,EAgCA,WAAiB,CAlBjB,YACA,oBACA,SAGA,sBACA,sBACA,6BACA,MAIA,iBACA,oBAGA,2EACA,EAoBA,gBAAsB,CAXtB,cACA,eACA,kBACA,iBACA,SAEA,oCACA,cAEA,qDACA,EAwBA,aAAmB,CAbnB,gBACA,UACA,sCAEA,kBACA,gCACA,EACA,eACA,EACA,WACA,OAEA,EA+BA,WAAiB,CAnBjB,gBACA,MACA,iCAEA,MACA,4CAEA,uCACA,sEAEA,oCACA,gCACA,EACA,eACA,EACA,WACA,gBAEA,EAqCA,cAAoB,CAzBpB,gBACA,MACA,2CAEA,MACA,+CAEA,oCACA,kEAEA,yBAAsD,WAAgB,KACtE,WACA,uCACA,sEAEA,oCACA,gCACA,EACA,eACA,EACA,WACA,gBAEA,CACA,EA0BA,SAAe,CANf,kBACA,mBACA,WAEA,CACA,EAgCA,SAAe,CAZf,oBACA,6BACA,oBAEA,8BACA,qBAEA,sCACA,gBAEA,oCCpOA,YAAkB,CAuClB,YACA,WACA,OACA,OACA,iBACA,EA3CA,aAAmB,CAiDnB,YAEA,IADA,EAcA,EAbA,OACA,OACA,OAEA,QATA,CASA,GATA,MASA,GAEA,IAGA,MACA,IACA,EAGA,QAAc,IAAS,KACvB,EACA,uBACA,yBACA,wBACA,qBACA,iBACA,gBACA,aAmBA,OAhBA,QACA,EACA,sBACA,wBACA,cAGA,QACA,EACA,uBACA,wBACA,wBACA,gBACA,cAGA,CACA,EA5FA,eAAqB,CAkHrB,YAQA,QAPA,EACA,WACA,MACA,KAIA,UAA2C,IAAU,GAHrD,MAIA,gBAtBA,OAGA,QAFA,EACA,KACA,IAAsB,IAAS,KA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A,eACA,IAAyB,KAAQ,KAEjC,QADA,KACA,IAAsB,IAAe,IACrC,sBACA,KACA,KACA,CAEA,aACA,CAGA,SACA,CA2IA,kBACA,uBAIA,IAHA,SAEA,IACA,MACA,IAWA,QAXA,OACA,OACA,QACA,EACA,MACA,EACA,MACA,EACA,EAEA,UAGA,UACA,OACA,OACA,MAEA,KACA,QAEA,KADA,UACA,QACA,mBACA,KACA,MAGA,KACA,QACA,SACA,SACA,4BACA,8BACA,0BACA,MAGA,KACA,QACA,SACA,SACA,SACA,0CACA,yCACA,kBACA,KAGA,CAGA,UAGA,QACA,KACM,UAEN,SACA,0BACA,gBAGA,UACA,IACA,CAEA,gBAQA,GACA,eACA,MAJA,KAKA,2CAMA,IAFA,SACA,IACA,KACA,6BACA,OACA,aAdA,OAiBA,QACA,EAxBA,EACA,CAmGA,kBACA,sDACA,kEACA,CAmLA,wBACA,iFACA,kEACA,sDACA,CA+LA,wBACA,iBACA,IADA,sCAEA,CAEA,sBAOA,OANA,KACA,OACA,GACA,sDAEA,sBACA,GACA,CAUA,sBAOA,OANA,KACA,OACA,GACA,wDAEA,sBACA,GACA,CA3+CA,IAAc,GAEd,IAAyB,IAmBzB,iCAYA,IACA,wBACA,GAAkB,eAAmB,YAGrC,OAFA,8CACA,2BACA,YACA,CAAI,SACJ,QACA,CACA,IAnBA,oDACA,kCACA,cACA,iJAkBA,4CACA,cACA,eACA,oBACA,mBAEA,CAAC,EAED,4CACA,cACA,eACA,oBACA,uBAEA,CAAC,EAmCD,gBAgEA,uBACA,eACA,EAIA,wDACA,oCA8BA,wBACA,OApBA,EAoBA,MAnBA,GACA,EAkBA,GAhBA,SAgBA,EAZA,iBAYA,EAXA,EAWA,GAXA,KAWA,KAVA,EAUA,GAVA,KAUA,GARA,EAQA,EACA,EAUA,0BACA,WACA,EAIA,8BACA,WACA,EA6GA,uBACA,kCACA,iBAGA,wBAGA,GAFA,qDACA,qDACA,+BACA,gBACA,yEAIA,kBAKA,QAHA,WACA,WAEA,oBAAwC,IAAS,IACjD,gBACA,OACA,OACA,KACA,QAGA,OACA,MACA,CACA,EAEA,yBACA,gCACA,UACA,WACA,YACA,YACA,aACA,aACA,aACA,WACA,YACA,cACA,eACA,QACA,SACA,QACA,CACA,EAEA,uBACA,qBACA,+DAGA,gBACA,kBAIA,cAEA,QADA,IACgB,WAAiB,IACjC,eAIA,IARA,EAQA,mBACA,IACA,QAAc,WAAiB,KAC/B,WACA,mBACA,oBACA,oBAEA,8BACA,EACA,EACA,QAGM,iBAGN,iBAFA,+DAIA,YAEA,QACA,EAiDA,eA8EA,yBAQA,8BACA,kBACA,UACA,8DAEA,YAAkB,IAAS,KAC3B,cAEA,aAGA,8BACA,kBACA,UACA,8DAEA,YAAkB,IAAS,KAC3B,cACA,gBAEA,aAGA,8BACA,kBACA,UACA,8DAEA,YAAkB,IAAS,KAC3B,cACA,gBACA,gBACA,gBAEA,aAGA,gCACA,yBACA,SACA,gCACA,uBACA,EAEA,gDAEA,+BACA,sEACA,UACA,qBACA,EAEA,+BACA,SACA,EAAY,IAAyB,CAGrC,OAFA,uCAAiD,EAAE,kBACnD,4BACA,gBACA,EACA,GACA,qCAGA,wCAIA,GAHA,iBACA,oCAEA,eACA,gBACA,iFACA,UAiBA,GAbA,YACA,MAEA,YACA,iBAEA,YACA,MAEA,YACA,gBAGA,oCACA,uCAGA,cACA,SAEA,QACA,UAEA,QACA,SAQA,GALA,OACA,OACA,OACA,OAEA,kBASA,QAPA,MACA,MACA,gBAEA,kBACA,eAEA,IAAkB,IAAS,IAC3B,gBACA,OACA,OACA,KACA,QAGA,OACA,MACA,CACA,EA2HA,qCACA,+BACA,EAEA,oCACA,uBACA,EAEA,wCACA,uBACA,EA2CA,oCAEA,cACA,SACA,cACA,SAEI,kCACJ,IACA,cACA,SAEI,eACJ,OACA,aACA,OACA,yBAEA,IACA,eAGA,YACA,2EAIA,IA3CA,IAIA,IAIA,IAIA,IA+BA,gBAGA,GAFA,yBAEA,sCACA,2DAGA,cAGA,IADA,GACS,CADT,OAEA,UACA,UACA,gBAjFA,SACA,eACA,iBACA,EAGA,cACA,GACA,MAJA,IAQA,eAEA,OACA,QAEA,YAAkB,IAAY,KAC9B,mCACA,aACA,SACA,CACA,QACA,EA0DA,WAEA,YACA,YACA,OA5DA,EA4DA,EA5DA,EA4DA,EA3DA,IA2DA,OA3DA,UA2DA,KA3DA,IA6DA,aACA,aACA,aACA,OA7DA,EA6DA,EA7DA,EA6DA,EA5DA,EAk4BA,YAEA,QADA,KACA,IAAkB,WAAgB,IAElC,4BAEA,QACA,EA70BA,QA5DA,IA8DA,cAEA,OA7DA,EA6DA,EA7DA,EA6DA,EA5DA,IA4DA,QA5DA,IA8DA,YACA,YACA,cACA,eACA,OA/DA,EA+DA,EA/DA,EA+DA,EA9DA,WAm4BA,KAGA,QAFA,IACA,KACA,IAAkB,aAClB,WADkC,IAIlC,GADA,oBACA,EAEA,OADA,OAEA,UAGA,QACA,EAn1BA,OA9DA,UA8DA,KA9DA,IAgEA,SACA,6CACA,uBACA,IACA,CAEA,EAEA,8BACA,OACA,cACA,kDACA,CACA,EAwJA,gCACA,kBACA,MACA,mBAEA,IACA,OACA,SACI,KACJ,MAGA,IACA,OACA,SACI,KACJ,MAGA,WAEA,yBAIA,OAFA,qCAEA,CACA,EAUA,uBACA,uCACA,OACA,OACA,sBAKA,IAHA,cACA,IACA,IACA,iBACA,eAGA,QACA,EAEA,uBACA,uCACA,OACA,OACA,GACA,mBAKA,IAFA,kBACA,IACA,eACA,iBAGA,QACA,EAEA,sBACA,oCAGA,OAFA,OACA,sBACA,OACA,EAEA,yBACA,uCAGA,OAFA,OACA,sBACA,oBACA,EAEA,yBACA,uCAGA,OAFA,OACA,sBACA,sBAGA,yBACA,uCAIA,OAHA,OACA,sBAEA,SACA,aACA,eACA,qBAGA,yBACA,uCAIA,OAHA,OACA,sBAEA,kBACA,eACA,aACA,UACA,EAEA,sCACA,OACA,OACA,sBAKA,IAHA,cACA,IACA,IACA,iBACA,eAMA,OAFA,GAFA,UAEA,qBAEA,CACA,EAEA,sCACA,OACA,OACA,sBAKA,IAHA,QACA,IACA,cACA,eACA,iBAMA,OAFA,GAFA,UAEA,qBAEA,CACA,EAEA,yCAGA,CAFA,OACA,sBACA,aACA,qBADA,SAIA,sCACA,OACA,sBACA,2BACA,6BACA,EAEA,sCACA,OACA,sBACA,2BACA,6BACA,EAEA,sCAIA,OAHA,OACA,sBAEA,QACA,aACA,cACA,aACA,EAEA,sCAIA,OAHA,OACA,sBAEA,YACA,cACA,aACA,WAGA,sCAGA,OAFA,OACA,sBACA,sBACA,EAEA,sCAGA,OAFA,OACA,sBACA,sBACA,EAEA,uCAGA,OAFA,OACA,sBACA,sBACA,EAEA,uCAGA,OAFA,OACA,sBACA,sBACA,EAQA,wBACA,0CAIA,GAHA,KACA,OACA,OACA,IACA,wBACA,iBACA,CAEA,QACA,IAEA,IADA,cACA,iBACA,kBAGA,UACA,EAEA,wBACA,0CAIA,GAHA,KACA,OACA,OACA,IACA,wBACA,iBACA,CAEA,UACA,IAEA,IADA,gBACA,kBACA,kBAGA,UACA,EAEA,uBACA,uCAKA,OAJA,KACA,OACA,uBACA,cACA,GACA,EAEA,0BACA,0CAMA,OALA,KACA,OACA,yBACA,cACA,gBACA,GACA,EAEA,0BACA,0CAMA,OALA,KACA,OACA,yBACA,cACA,gBACA,GACA,EAEA,0BACA,0CAQA,OAPA,KACA,OACA,8BACA,iBACA,iBACA,gBACA,cACA,GACA,EAEA,0BACA,0CAQA,OAPA,KACA,OACA,8BACA,eACA,iBACA,gBACA,gBACA,GACA,EAEA,yCAGA,GAFA,KACA,OACA,IACA,wBAEA,oBACA,CAEA,QACA,IACA,IAEA,IADA,cACA,iBACA,6BACA,MAEA,yBAGA,UACA,EAEA,yCAGA,GAFA,KACA,OACA,IACA,wBAEA,oBACA,CAEA,UACA,IACA,IAEA,IADA,gBACA,kBACA,6BACA,MAEA,yBAGA,UACA,EAEA,sCAMA,OALA,KACA,OACA,0BACA,iBACA,cACA,GACA,EAEA,yCAMA,OALA,KACA,OACA,8BACA,cACA,gBACA,GACA,EAEA,yCAMA,OALA,KACA,OACA,8BACA,cACA,gBACA,GACA,EAEA,yCAQA,OAPA,KACA,OACA,wCACA,cACA,gBACA,iBACA,iBACA,GACA,EAEA,yCASA,OARA,KACA,OACA,wCACA,wBACA,eACA,iBACA,gBACA,gBACA,GACA,EAiBA,yCACA,uBACA,EAEA,yCACA,uBACA,EAYA,0CACA,uBACA,EAEA,0CACA,uBACA,EAGA,mCACA,iEAQA,GAPA,SACA,0BACA,0BACA,SACA,gBAGA,OACA,8BADA,SAIA,OACA,8CAEA,8DACA,mDAGA,+BACA,gBACA,iBAGA,UAaA,OAXA,6DAEA,uBAEA,8BACA,EACA,mBACA,GAIA,CACA,EAMA,mCAEA,uBASA,GARA,oBACA,IACA,IACA,eACM,qBACN,IACA,eAEA,+BACA,6CAEA,wCACA,wCAEA,iBACA,IA2BA,EA3BA,kBACA,oBACA,eAEA,KAEA,CACA,EAAI,sBACJ,OACI,qBACJ,cAIA,qCACA,uCAGA,QACA,YASA,GANA,OACA,+BAEA,SAGA,mBACA,QAAoB,IAAS,IAC7B,cAEI,CACJ,oBACA,EACA,YACA,WACA,SACA,gCACA,qCAEA,QAAgB,MAAiB,IACjC,gBAEA,CAEA,aAMA,0BAgBA,gBACA,SAMA,QALA,EACA,WACA,OACA,KAEA,IAAkB,IAAY,KAI9B,IAHA,mBAGA,gBAEA,OAEA,YAIU,QAJV,CAEA,+BACA,QACA,CAOA,CAPU,CAOV,EAEA,QACA,CAGA,YACA,+BACA,IACA,QACA,CAGA,6BACA,EAAM,OAEN,+BAMA,GAHA,OAGA,OACA,kBACA,SACA,EAAM,eACN,kBACA,OACA,SACA,SAEA,EAAM,gBACN,kBACA,OACA,UACA,YACA,SAEA,EAAM,kBACN,kBACA,OACA,UACA,aACA,YACA,SAEA,EAAM,IACN,iCAEA,CAEA,QACA,CA2BA,cACA,qBAxHA,YAMA,IAFA,EAFA,oBAEA,sBAEA,kBAEA,oBACA,OAEA,QACA,EA4GA,GACA,CAEA,oBACA,YAAkB,MAClB,gCAD8B,IAE9B,YAEA,QACA,CAKA,gBACA,uBACA,wDACA,4BASA,iBAGA,QAFA,qBACA,aACA,IAAkB,KAAQ,IAE1B,QADA,OACA,IAAoB,KAAQ,IAC5B,iBAGA,QACA,CAAC,+BC1wDD,GAAa,CAiCb,cACA,sBACA,iDAQA,QALA,KAEA,YAA0B,GAC1B,EAFA,QAEA,UAEA,IAAkB,WAAkB,KACpC,WACA,iBAGA,WAIA,8BAGA,iBACA,sCAGA,aACA,kBAGA,KAsHA,cACA,IACA,WACA,CAAI,SACJ,QACA,CACA,EA5HA,IACA,EACA,CAEA,QACA,EAnEA,GAAiB,CAqFjB,gBACA,YACA,cAEA,wBACA,4CAGA,cACA,4CAGA,WAEA,iBACA,2CAGA,cAEA,mBACA,iBAEA,0BACA,4CAGA,MAAc,uBACd,CAEA,aACA,qBACA,4CAGA,MAAc,kBAGd,WACA,mBACA,0CAGA,MAAc,cAGd,cACA,4CACA,6CAGA,MAAc,iCACd,CAUA,GARA,YACA,OAAc,WAGd,UACA,OAAc,SAGd,WAIA,OAHA,4BACA,qCAGA,OAMA,aALA,MAAkB,iBAClB,KACA,WACA,MAAkB,cAClB,KAIA,YACA,MAAkB,eAClB,KACA,SACA,6CACA,CAGA,QACA,EAnKA,yBACA,qBAUA,+DCjCA,yCACA,aACA,aACA,cACA,iCAGA,OADA,cACA,KACA,CAAC,GAGD,aAEA,OACA,iCA8gBC,EA7gBD,oBA6gBC,GA7gBD,oBACA,KACA,eA2gBC,GA1gBD,SA0gBC,GAzgBD,WACA,IAEA,OADA,SACA,EACA,CAAU,SACV,QACA,CACA,CAAO,GACP,sBAigBC,EAhgBD,4BAggBC,CA/fD,EAMA,iBACA,OACA,qBACA,sBACA,6BACA,sBACA,uBACA,sBACA,uBACA,wBACA,wBACA,CAEA,EACA,oBACA,YACA,yDACA,EAGA,cAIA,GAHA,oBACA,cAEA,oCACA,0DAEA,sBACA,CAEA,cAIA,MAHA,oBACA,cAEA,CACA,CAGA,cACA,OACA,gBACA,gBACA,OAAgB,wBAChB,CACA,EAQA,OANA,YACA,+BACA,QACA,GAGA,CACA,CAEA,cACA,YAEA,eACA,wBACA,gBACA,CAAO,OACD,iBACN,sBACA,sBACA,CAAO,OACD,GACN,kDACA,mBACA,CAAO,MAEP,CA8DA,cACA,cACA,gDAEA,cACA,CAEA,cACA,iCACA,oBACA,WACA,EACA,qBACA,UACA,CACA,CAAK,CACL,CAEA,cACA,qBACA,OAEA,OADA,uBACA,CACA,CAmBA,cACA,WAC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AuC,KAAQ,IAC/C,4BAIA,aAoBA,kCACA,mBACA,EAEA,qCACA,mBACA,EAEA,oCACA,mCACA,mBAEA,WAEA,EAEA,4BAiBA,kCACA,6CACA,aCxaA,2FCCA,MAAc,EAAQ,KAAU,EAMhC,GACA,OAPqB,WAOrB,GACA,eACA,gBACA,gBACA,eACA,mBACA,4BACA,4BACA,UACA,aACA,OACA,EACA,GACA,QACA,UACA,aACA,UACA,UACA,aACA,QACA,EAQA,GACA,YACA,WACA,gBACA,eACA,aACA,OACA,EACA,KAIA,qBAEA,YACA,EAIA,gBACA,CAXA,gBAhBA,CACA,YACA,UACA,gBACA,eACA,YACA,EAWA,YAYA,4BACA,6BACA,+BACA,kCACA,wBACA,mBAsCA,UArCA,kBACA,uBAEA,MACA,WAEA,UACA,QAEA,CAEA,WAEA,GACA,mBAMA,QAHA,OACA,OAEA,IAAoB,WAAiB,KACrC,WAEA,8CACA,aAEA,IAEA,QACA,CAAU,UACV,CACA,CACA,CAEA,QACA,iBCnGA,MAAY,qBAEZ,IADA,IACA,UACA,WACA,OACA,KACA,UACA,SACA,SAOA,IALA,KAEA,cACA,OACA,KACS,IAAW,0BAKpB,IAHA,cACA,OACA,KACS,IAAW,0BAEpB,SACA,WACI,SACJ,0BAEA,iBACA,KAEA,gCACA,EAEA,OAAa,uBAEb,IADA,MACA,UACA,WACA,OACA,gCACA,UACA,SACA,wBAmCA,IA/BA,MAFA,gBAEA,SACA,eACA,MAEA,mCACA,yBACA,IACA,MAEA,OACA,OAEA,qBAEA,SACA,IACA,MAGA,QACA,IACA,KACM,QACN,wBACA,OAEA,kCACA,MAIS,KAAW,+BAIpB,IAFA,SACA,KACS,IAAU,+BAEnB,eACA,gCCnFA,MAA2B,EAAQ,KAAsB,EAEzD,UAEA,gBACA,qBACA,iBACA,aACA,MACA,KACA,iBACA,KACA,KACA,SACA,6BAAqC,EAAU,mDAAmD,SAAa,GAC/G,CAGA,oBACA,uBACA,cACA,QAGA,8BAAoC,EAAU,oDAAoD,SAAc,gBAChH,CAEA,QACA,CAAE,CACF,CAEA,gBAMA,uBALA,GACA,iB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AE7K,CAAG,EACH,CACA,EAmJA,KACA,iCACA,CACA,eACA,CAAI,EACJ,qBACA,+EACA,+BACA,KACA,6CACM,CACN,4CACA,EAEA,qCACA,eACA,mBACA,aACA,YACA,CACA,EACA,GACA,KACA,QACA,KACA,KACA,eACA,IACA,EACA,aACA,GACA,2BACA,UACA,yDAA6G,EAA7G,aAA2G,EAAE,MAAsC,EAAtC,aAAmC,GAAG,MAInJ,MAAsB,mBAAa,CAHnC,WACA,MAAe,mBAAa,CAAC,UAAQ,QACrC,EACmC,CACnC,CAAK,EAEL,eA1LA,aACA,mBACA,uCACA,6BAA6F,EAAK,sBAClG,wBACA,UACA,cACA,KACA,YACA,qBACA,aAA0D,oBAAuC,oBAAc,wBAC/G,CAAK,CACL,EACA,GACA,MAAc,EAAI,YAAa,EAAa,OAC5C,GACA,CAFkB,EAElB,EACA,MAEA,kBACA,WACA,oBACA,yBA/EA,+BA+EA,IA9EA,WAAiC,oBAAc,MA8E/C,oDACA,CACA,sBACA,SACA,aACA,OAAe,kBAAY,IAC3B,KACA,CAAO,eAEP,UAAkB,UAAQ,aAC1B,OACA,UACA,EAEA,OADA,2BACe,mBAAa,SAC5B,KACA,MACA,UACS,UACT,CAAO,EAEP,CACA,kBACA,WAEA,SADA,GACA,iBACA,gIACA,mBACA,6BACA,kCACA,UACA,+CAxGA,KACA,OACA,IACA,EAEA,OADA,uCACA,CACA,EAkGA,CACA,cACS,MACT,EAA0B,oBAAc,IACxC,6BACA,qCACA,qEACA,uBACA,0DACA,SACA,EAAU,gBACV,eACA,UACA,EAAU,SAEV,IADA,kBACA,UACU,qCACV,MACA,eACA,wBACA,EAAY,2DACZ,iBACA,OAAuB,mBAAa,SACpC,OAAwB,OAAU,GAAG,EAAE,EACxB,OACD,CACd,wBACA,OAAuB,mBAAa,SACpC,OAAwB,OAAU,GAAG,EAAE,EACxB,IACf,OACY,iBACZ,WAAyB,QAAW,SACxB,CACZ,wBACA,WAAyB,OAAU,GAAG,EAAM,IAAI,OAAU,GAC1D,OACU,yBAIV,yCAJU,CACV,2BACA,YACA,CAGA,CAHU,CAGF,wBA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AAsD,OAAe,WAAe,mIAAmJ,gEAAqE,EAAK,SAG5a,8BACO,cAEP,0CACA,2DAMA,IARA,MAQA,SACA,EAAyB,EAAwB,KACjD,EAAoB,EAAa,KAEjC,MAFiC,EADgB,EAGjD,EAAiF,CADrD,EAAyB,EAAa,IACe,OADf,EAElE,OAFoD,MAEpD,CACA,QACA,oBACA,eACA,6BACA,+BACA,mBACA,CAAG,EAMH,gBACA,SAEA,4BACA,8BACA,4BACA,MAAqB,EAAc,IACnC,QADmC,MACnC,MAGA,sEACA,kEACA,eAA8E,EAC9E,eAA8E,CAC9E,6DACA,8EAEA,oBACA,oBACA,MACA,oBACA,IAEA,EADoB,EADpB,YACkC,GAClC,IAEA,OADA,SACA,CACA,EACA,sBACA,2CACA,sBACA,CAAO,YACP,YACO,OACD,oBACN,2CACA,sBACA,CAAO,YACP,SACA,CAAO,OACD,GAAgB,WAAP,OAAO,IACtB,iEACA,MAAoB,EAAc,KAClC,OADkC,EAElC,KAEA,OADA,qBDjEA,ECiEmC,IDjEnC,ECiEyC,EDjEzC,SCiEyC,yBZrFzC,YACA,MIG0B,GJH1B,cYoFqF,IZpFtD,EAAgB,EAC/C,EYmFqF,IXtFrF,ODE+C,ECF/C,GACA,IGIgD,YHJhD,mFACA,EWoFqF,IRjF9B,EQiF8B,ITtFrF,WACA,OCIyG,GAAxB,MDJjF,uIACA,OSoFqF,EACrF,CACA,CAAO,SACD,wBACN,4FAEA,CA0JA,MAzJA,iEACA,wBACA,EAAG,IA0HH,mBACA,WACA,yDACA,iDACA,EACQ,sBACR,YACA,sBACA,gBACA,CAAW,CACX,uBACA,gBACA,CACA,IAGA,4CACA,WAOA,sBACA,MACA,YAA0D,aAE1D,CAAG,EACH,CACA,ECvPA,OACA,cACA,OACA,oBACA,CAAG,CACH,QACA,qBACA,CAAG,CACH,SACA,sBACA,CAAG,CACH,YACA,gDACA,CACA,CACA,SACA,eACA,gEACA,cACA,CACA,QACA,+DACA,kCACA,iBACA,eACA,mBAEA,MACA,0CAAwE,IAAa,IACrF,kBAEA,kCACA,CACA,OACA,0CAA2E,IAAe,IAC1F,kBAEA,mCACA,CACA,QACA,0CAA2E,IAAe,IAC1F,kBAEA,iCACA,CACA,YACA,0CAA2E,IAAe,IAC1F,kBAEA,uDACA,CACA,wBACA,qBACA,gCAAkD,EAAO,EAAE,aAAa,EAAE,KAAQ,GAClF,kBACA,CACA,UACA,0BAEA,UAAmB,YAAY,GAAG,EAAW,GAE7C,gBACK,CACL,CACA,SAGA,MAFA,oBACA,6BACA,oBACA,CACA,CACA,WAEA,UACA,cACA,iBACA,CACA,QAMA,OALA,yBACA,+CACA,kCACA,4BACA,CAAK,EACL,KAEA,SACA,sBACA,OACA,yBACA,MACA,CACA,4BACA,CACA,QACA,kDAA2F,IAAa,IACxG,oBAEA,mBACA,wCACA,YACA,WACA,YAAwB,IAAmB,IAC3C,OAEA,CAAO,EAEP,qBACA,0CACA,YACA,WACA,YAAwB,IAAmB,IAC3C,mBAEA,CAAO,CAEP,CACA,CAEA,kBACA,EACA,EACA,0BACA,IACA,GACA,CAAG,EAGH,OAFA,YACA,WACA,CACA,CACA,sBACA,WACA,IACA,CAMA,cACA,mBACA,cACA,iDACA,CACA,aACA,4BACA,CACA,wCACA,IACA,oBACA,gBACA,aACA,wBAEA,EADA,0CACA,KAEA,GAEA,GACA,QACA,OACA,CACA,MACA,SACA,CACA,CACA,mBACA,IACA,MACA,IACA,CAAI,eACJ,6BACA,OACA,MACA,CACA,oBACA,wBACA,iBACA,+BACA,KAAW,cAAgB,GAAG,EAAE,EAEhC,QADA,wBACA,UACA,YAA2D,IAA3D,SAA+C,IAAO,GAAG,EAAE,IAC3D,cAGA,UAAc,IAAO,GAAG,EAAE,IAC1B,CAUA,iBACA,IACA,MACA,IACA,CAAI,QACJ,KACA,WACA,CAwBA,eACA,6BAAiC,EAAE,+BACnC,CACA,QACA,UAAa,EACb,SAAY,EACZ,SAAY,EACZ,WAAc,EACd,UAAa,EACb,WAAc,CACd,EACA,SAAS,GAAM,SACf,EADe,QACf,SACA,iCAEA,CACA,CACA,SACA,eACA,gBACA,uBACA,oBAEA,aACA,4BACA,cACA,SAEA,oBAMA,OALA,yCACA,gDAEA,wBACA,yBACA,CACA,CACA,CACA,0BAAqC,GACrC,cAgBA,iBACA,iEACA,aACA,oBACA,iBACA,IACA,YAAkB,WAAkB,MAIpC,EAHA,0BACA,OAGA,SACA,YAAoB,WAAmB,IAMvC,GALA,OACA,OAEA,QAEA,SADA,SACA,CACA,oEACA,SAEA,SACA,KACA,CAEA,GACA,CACA,QACA,CACA,sBACA,uCACA,CACA,CAEA,oBACA,eACA,8DACA,mBACA,uBACA,EACA,QACA,gBACA,eACA,oCACA,gCAEA,2CACA,qCAEA,CACA,iBACA,8BACA,uBAEA,CACA,oBACA,iCACA,MACA,2BAEA,CACA,mBACA,IAGA,EAHA,4DACA,mEACA,wFAEA,kBACA,gBAEA,QACA,IACA,iBACA,aACU,sBACV,sBAEA,YAIA,4BAMA,CALA,gCACA,OACA,OACA,wBAEA,6BACA,gDACA,CACA,qBACA,8DACA,SACA,EACA,mEACA,QACA,gCACA,oBACA,eACA,IACA,QAEA,sBACA,kBACA,oCACA,CACA,oBACA,8DACA,SACA,EACA,eACA,gHACA,SACA,CAAO,CAEP,mCACA,CACA,6BACA,8DACA,UACA,WACA,EACA,QACA,oBACA,eACA,IACA,IACA,QAEA,sBACA,yBACA,+CACA,EACA,SA3MA,SACA,eACA,qCACA,OACA,2FACA,eAEA,eAGA,WAIA,QACA,EA4LA,OAEA,GACA,KACA,MAGA,kBACA,kCACA,CACA,0BACA,6BACA,uBAEA,yBACA,wBACA,CACA,uBACA,qCACA,CACA,6BAEA,CADA,8BACA,uCAEA,wBACA,EACA,qBACA,CACA,qBACA,oBAEA,+BACA,gCAEA,SADA,uBACA,yCACA,CACA,SACA,iBAEA,CAEA,QACA,aAAgB,CAChB,oBACA,yBACA,CAAG,CACH,kBAIA,OAHA,cACA,2DACA,CAAK,EACL,CACA,CACA,EAEA,SACA,qBACA,eACA,gEACA,QAnVA,gBACA,cACA,iBACA,CAAG,CACH,EAgVA,kHACA,eACA,oCACA,gCAEA,kCACA,CACA,kBACA,oBACA,CACA,UACA,8DACA,gBACA,EACA,WACA,SAEA,wBACA,yBAEA,oBACA,yEACA,eACA,uEACA,mCACA,qBACA,iHAzOA,gBACA,QACA,QACA,mDACA,yBACA,uBAAyD,oCAAwD,IACjH,aACA,OACA,mBACA,gCACA,MAEA,CACA,QACA,EA2NA,OACA,UACA,+CACA,iBACA,OACA,MACA,YACA,EAEA,iBACA,gEACA,WACA,CAEA,MADA,4BACA,CACA,MACA,YACA,CACA,CACA,iBAQA,GAPA,mEACA,6DAEA,wBACA,KACA,EACA,UACA,iBACA,kCACA,0EACA,mEACA,CACA,MACA,aACA,CAAM,qCACN,gBACA,uBACA,kEACA,kCACA,MACA,qDACA,EACA,CACA,OAAoB,EAAU,EAAE,EAAY,EAAE,EAAI,EAClD,UACA,eACA,UACA,SACA,uCACA,EAEA,GAAkB,EAAU,EAAE,EAAY,EAAE,EAAI,SAEhD,EACA,CACA,MACA,UACA,eACA,UACA,SACA,uCACA,EAEA,CACA,CACA,wBACA,WACA,kBACA,uBACA,qCAEA,6DACA,mDACA,8DACA,eAJA,yDAIA,yDACA,kDACA,oCACA,oFAEA,iFACA,KACA,IACA,CAAS,UAAY,GAAK,GAAG,cAAc,iDAC3C,GACA,QACA,0CACA,GAEA,CACA,CACA,MACA,2BACA,UACA,QACA,eACA,8CACA,SAA+B,EAAY,EAAE,EAAa,EAAE,EAAE,EAC9D,uBACA,KAEA,cACA,IAEA,CAAa,EACb,qBACA,CAEA,GACA,CACA,EAAM,mDACN,eACA,wCACM,CACN,SACA,KACA,6CACA,wBACA,kDACA,wDACA,UACA,CAAO,KACP,qEACA,sBAA2E,6BAA6B,yBAAiC,EAAmB,qBAA6B,EAAkC,oBAC3N,2BACA,KACA,KAEA,wBACA,KACA,KAGA,OADA,gFACA,WACA,uCACA,YAEA,GADA,wDACA,GACA,sBACA,KACA,eACA,CAAW,EACX,6MACA,CACA,SACA,qFACA,oDACA,YAA0B,WAAyB,IACnD,iBAEU,mCACV,8DAEA,6BAEA,gBACA,kBACA,gCACA,4CACY,0DACZ,+CAEA,+BACA,CACA,4BACA,mCACA,cACA,2CACA,oBAAkE,6BAA6B,QAA2D,EAA3D,aAA8B,6BAA6B,QAC1J,UAAiC,6BAA6B,OAE9D,cACA,2BAAsE,EAAO,MAC7E,CAAe,CACf,CAAa,EAEb,SAGA,CACA,oCACA,0DAAuF,EAAU,GAAG,GAAI,EACxG,8CAEA,EADA,qCACA,gFAAkG,EAAU,GAAG,EAAI,gBAEnH,uCAGA,QACA,GACA,QACA,0CACA,GAEA,CACA,CACA,6BACA,WACA,0CACA,2BACA,+CACA,KACO,qDACP,UACA,CAAO,OACD,6BAWN,CAVA,0CACA,KAEA,eACA,8BACA,mBAGA,CAAO,EACP,oKAEA,MACA,+CACA,cAEA,wDAMA,GALA,iDACA,+CACA,KACA,EACA,4DACA,GACA,+CAEA,EADA,eACA,WACA,CACA,0EACA,oDACA,0CAA4E,IAAa,IACzF,yBAEA,4BACA,2DAAyE,MAAS,UAAU,KAAO,GACnG,MAEA,mBACA,CAAO,KACP,0CACA,CACA,8CACA,2BAUA,aATA,2CACA,uEACA,cACA,KACA,uCACA,CAAS,CACT,IACA,EAAQ,SAER,CACA,CACA,WACA,IACA,EACA,EACA,EACA,EACA,EALA,4DAqEA,MA/DA,4BACA,cACA,gCACA,+BACA,QACA,IACA,mBACA,+DACA,iDACA,qEACA,+FACA,0FACA,cACA,wBACA,IACA,OAAiC,KAAS,GAAG,EAAG,mFAChD,MAA8B,KAAS,GAAG,EAAG,MAC7C,yBAAmC,EAAQ,mBAAmB,aAAiB,qCAAqC,EAAO,mPAE3H,kBAkCA,EAjCA,gCACA,IACA,UACA,kDACA,6CACY,KACZ,EACA,kDACA,SAAkC,6BAA6B,MAC/D,KAAqC,6BAA6B,SAAS,6BAA6B,EAUxG,GATA,IACA,YACA,6BACA,oDAEA,GACA,aAGA,GACA,SAAoC,EAAI,EAAE,8BAA8B,EAAE,UAAgB,EAC1F,UACA,IACA,YACA,6BACA,oDAEA,GACA,YAGA,CACA,CAEA,gBACA,wBACA,IACA,4BAGA,CAAS,EACT,CAAO,CACP,CAAK,EACL,CACA,MACA,UACA,eACA,UACA,QACA,CACA,CACA,iBACA,oGACA,CACA,mBACA,uEACA,kFACA,uCACA,CACA,uBACA,gEAEA,wCACA,gBAUA,GATA,qBACA,kBAEA,6CACA,IACA,+CACA,KACA,EAEA,GAIA,aAHA,GACA,MAdA,wLAiBA,YAGA,QACA,CACA,0BACA,qBACA,eACA,yFACA,SAGA,QACA,CACA,CAEA,eACA,2CACA,CACA,SACA,eACA,eACA,kDACA,qCACA,CACA,yBAEA,IADA,WACA,6BACA,0BACA,mBACA,QACA,wCACA,oCACA,CACA,2BAEA,IADA,WACA,0BACA,mBACA,oCACA,CACA,sBACA,0CACA,yDACA,eAcA,OAbA,0BACA,4BACQ,cACR,wBACA,wBACA,iEACQ,eACR,wBACA,2CACA,yDACA,gEACA,iEAEA,WACA,CACA,0EACA,CACA,mBAIA,MAHA,6EACA,oCAEA,iFACA,CACA,6BAEA,SADA,GAEA,cACA,YACA,iCACA,6DACA,CAAK,EACL,gCACA,cACA,YACA,sCACA,sCACA,sCACA,WACA,sCACA,iBAFA,QAGA,CAAS,CACT,CAAO,EAEP,0DACA,GApBA,IAqBA,CACA,sBACA,eAGA,GAFA,+BACA,4BACA,+DACA,2BACA,WAKA,OAJA,wCACA,qCACA,0CACA,iBACA,MAEA,wBACA,+DACA,KACA,MACA,IACA,wBACA,UAEA,wEAAgF,EAAE,GAElF,EAWA,MAVA,4DACA,kEACA,wGACA,uEACM,oBACN,8BAEA,cACA,6CACA,CAAK,EACL,CACA,CACA,CAEA,SACA,mHACA,SACA,IACA,CAAC,EACD,gVACA,SACA,IACA,CAAC,EACD,wHACA,OACA,IACA,CAAC,EACD,gDACA,WACA,IACA,CAAC,EACD,YACA,oBACA,IACA,CAAC,EACD,iBACA,WACA,IACA,CAAC,EACD,kBACA,WACA,IACA,CAAC,EACD,YACA,aACA,IACA,CAAC,EACD,YACA,SACA,IACA,CAAC,EACD,YACA,gBACA,KACA,CAAC,EACD,YACA,cACA,KACA,CAAC,EACD,YACA,SACA,KACA,CAAC,EACD,YACA,SACA,KACA,CAAC,EACD,YACA,aACA,KACA,CAAC,EACD,YACA,YACA,KACA,CAAC,EACD,YACA,WACA,KACA,CAAC,EACD,YACA,SACA,KACA,CAAC,EACD,aACA,WACA,KACA,CAAC,EACD,YACA,eACA,KACA,CAAC,EACD,YACA,SACA,IACA,CAAC,EACD,YACA,YACA,KACA,CAAC,EACD,YACA,aACA,KACA,CAAC,EACD,iBACA,eACA,KACA,CAAC,EACD,IACA,cACA,kBACA,CAAG,CACH,cACA,mBACA,CAAG,CACH,cACA,QACA,CAAG,CACH,cACA,+EACA,CAAG,CACH,cACA,uEACA,CAAG,CACH,cACA,oCACA,CAAG,CACH,cACA,iEACA,CAAG,CACH,cACA,4CACA,CAAG,CACH,cACA,mBACA,CAAG,CACH,eACA,2CACA,CAAG,CACH,eACA,wDACA,CAAG,CACH,eACA,iCACA,CAAG,CACH,eACA,oBACA,CAAG,CACH,eACA,qCACA,CAAG,CACH,eACA,sEACA,CAAG,CACH,eACA,6CACA,CAAG,CACH,eACA,2CACA,CAAG,CACH,eACA,8BACA,CAAG,CACH,eACA,sEACA,CAAG,CACH,eACA,iDACA,CAAG,CACH,eACA,2DACA,CAAG,CACH,eACA,qDACA,CACA,EACA,oBACA,UACA,IACA,OACA,MACA,MACA,MACA,OACA,OACA,CAaA,UACA,eACA,+DACA,sBACA,eACA,uCACA,gIACA,oCACA,yKAEA,WAtBA,WACA,SASA,OARA,eACA,mBACA,MACA,aACA,gBACA,CACA,CAAK,CACL,CAAG,EACH,CACA,GAYA,CACA,aACA,eACA,CACA,WACA,gEACA,2BACA,IACA,kDACA,mCACA,CAAS,CACT,CAAQ,SACR,MACA,CAEA,gFAEA,eACA,gEACA,2BACA,wBACA,iDAEA,qBACA,CACA,yBACA,gEACA,uCAA4D,EAAI,EAAE,EAAO,EACzE,CACA,eACA,gEACA,2BACA,EAGA,wBACA,wEAA0L,qBAAqB,EAAE,oBAA4B,qBAAqB,KAAO,EAAE,EAAe,GAE1R,wCALA,EAMA,CACA,eACA,gEACA,2BACA,EACA,wBACA,GAAkB,qBAAqB,EAAE,oBAA4B,qBAAqB,KAAO,EAAE,YAAmB,EAEtH,oCAEA,8CAAkD,EAAK,GACvD,GACA,CACA,8BACA,kDACA,eACA,4EACA,MACA,WACQ,OACR,QAGA,kGACA,sCACA,SACA,8BAAwD,aAAkB,EAC1E,IACM,uCAEA,0EADN,IAIA,iFACA,CACA,mBACA,kDACA,CACA,CAEA,mBACA,iEACA,6DACA,EAtiCA,gBACA,qBACA,WACA,EAEA,OACA,EAgiCA,OAKA,MAJA,2BAEA,SADA,eACA,cAEA,CACA,CACA,SACA,cACA,+DACA,sCACA,eACA,4DACA,YACA,CACA,OACA,+DACA,oCACA,cACA,GACA,sBACA,uCAA8D,GAC9D,WADoE,KACpE,uCACA,+EACA,sDAAuF,EACvF,sDAAuF,EACvF,gFACA,8DACA,gEACA,yFACA,uFACA,gHACA,iDACA,0DACA,kBACA,CACA,QACA,qCACA,CACA,cACA,aACA,iBACA,cACA,GAEA,aAEA,8BAAmD,YAAY,OAAO,YAAY,GAClF,6CAAmE,YAAY,EAAE,oBAAoB,OAAO,oBAAoB,EAAE,YAAY,GAC9I,2CAAiE,mBAAmB,OAAO,mBAAmB,EAC9G,CACA,yBACA,EACA,EACA,EACA,gGACA,cACA,8BACA,CACA,UACA,sCACA,2EACA,iDACA,KACA,KACA,kBACA,CAAS,GACT,CACA,oCACA,mBACA,sCACA,6FACA,KACA,KACA,kBACA,CAAO,CACP,EACA,mBACA,iFACA,0IA2CA,MA1CA,EACA,0BACA,iBACA,CAAK,EACL,kBACA,oDACA,CAAK,EACL,YAEA,IADA,IACA,oBACA,kBAEA,YADA,UAEA,yBACA,eACA,yBACA,EAAY,oDACZ,UACY,MACZ,OACA,QACA,EAAY,IACZ,+CAA2D,GAAY,oBAAoB,EAAI,GAC/F,SAEU,8CACV,UAEA,qBASA,GARA,oBACA,GACA,4BACA,gCAEA,oBAGA,sBACA,KAEA,CACA,CAAK,EACL,CACA,CACA,UACA,IACA,EACA,EACA,EAHA,4DAIA,gBACA,mCACA,2BACA,wBAAwC,EAAI,KAAK,IACjD,IAA4B,EAAE,KAAK,EACnC,OAEA,MADA,0BACA,YACA,gBACA,uCACA,wBAEA,IACA,gBACA,OACA,KACA,KACA,CACA,CAAQ,SAER,OADA,qEAA6E,EAAI,KACjF,GAAkB,EAAI,EAAE,EAAI,EAAE,EAAc,EAG5C,OADA,sBACA,CACA,CACA,oCACA,QAKA,CADA,IAHA,GACA,KACA,EACA,iDACA,sBACA,sBACA,SACA,+CAA8D,GAAG,cACjE,uDACA,gBACA,IACA,IACA,CAEA,GADA,qCACA,qCACA,+BACA,IACA,sCAA8C,MAAU,cAAc,EAAI,GAC1E,MAEA,GACA,0CACA,KACA,4BACA,CAAS,aAET,oBACA,uBACA,CACA,QACA,CACA,CA+BA,eACA,SACA,uBACA,0BACA,OAKA,OAJA,IACA,aACA,QAEA,IACA,CACA,CACA,SACA,cACA,+DACA,mCACA,eACA,cACA,kBACA,+BACA,KACS,EACT,qBACA,CAAO,EACP,oBACA,+BACA,KACA,gBACA,CAAS,EACT,qBACA,CAAO,EACP,oBACA,iCACA,IACA,CAAS,EACT,qBACA,CAAO,EACP,wBACA,qCACA,KACS,EACT,oCACA,CAAO,EACP,gBACA,6BACA,KACS,EACT,qBACA,CAAO,CACP,EACA,YACA,CACA,QACA,8DACA,gBACA,EACA,kBACA,+EACA,CACA,SACA,sCACA,CACA,eACA,0CACA,CACA,cACA,gEA0BA,OAzBA,8BACA,eACA,IACA,aACA,gBACA,CAAQ,SArGR,GACA,6BACA,KACA,sBACA,mBACA,4BACA,qCACA,kCACA,kCACM,qCACN,4BAEA,UAAkC,GAClC,YACA,aACA,yBACA,2CACA,8BACA,8BACA,6BACA,sCACA,CAAO,CAEP,CACA,OACA,aACA,eACA,CACA,EAyEQ,GACR,oBACA,QACA,IACA,gEACA,sCACA,uBACA,KACA,KACA,KACW,CACX,CAAU,SACV,mBACA,CACA,QACA,EAAQ,MACR,qDAA6D,EAAW,GAExE,CACA,CAAK,GAEL,CACA,CAQA,oBACA,mBACA,gEACA,QACA,eACA,aACA,gBACA,mCACA,eACA,yCACA,qBACA,6CACA,oBACA,+CACA,uDACA,cACA,cACA,iCACA,gCAEA,CACA,mBACA,SACA,KACA,KACA,KA4BA,OA3BA,cACA,SACA,cACA,SAAwB,EAAI,GAAG,EAAG,GAClC,4CACA,gBACU,kBAAiC,kBAC3C,0BAEA,gBACA,KACA,yBACA,yBACA,0BAEA,CAAO,EACP,YACA,CAAK,EACL,gDACA,iBACA,UACA,mCACA,SAAkB,CAClB,UACA,UACA,CAAO,EAEP,CACA,sBACA,uBACA,+BACA,+BACA,CACA,CACA,cACA,mBACA,OACA,OACA,oCACA,GACA,kDACA,WACA,CAAO,EAEP,qBACA,SACA,uBACA,CAh8CA,kBACA,IACA,MACA,IACA,CAAI,cACJ,eAEA,YACA,GAw7CA,gBA9EA,mBA+EA,EA/EA,GACA,OA8EA,EA9EA,QA8EA,EA9EA,CACA,kBA8EA,oBACA,6BACA,kCACA,gBACA,kBACA,UACA,cACA,8BACA,CAAa,CAEb,CAAS,EACT,UACA,gBACA,qBAEA,aAGA,CAAK,EACL,sBACA,wCACA,CACA,YACA,+DACA,2EACA,yCACA,6BAA6C,EAC7C,6CACA,wBACA,MACA,KACA,SACA,QACA,OACA,UACA,CAAO,EACP,MACA,CACA,oBACA,cAEA,GADA,oBACA,4BACA,gCACA,wDACA,CACA,4BACA,gBACA,oCACA,CAAS,IACT,MACA,CACA,MACA,EACA,qCACA,iBACA,IACA,YACA,8BACA,8BAEA,SAEA,CAAQ,SACR,IACA,CACA,MACA,CACA,eACA,CACA,oBACA,gEACA,yCACA,iBAEA,OADA,mFACA,MAEA,kEACA,4BACA,8BACA,oBAEA,OADA,sBACA,KAEA,qBACA,eACA,CAAK,CACL,CACA,YACA,0BAAiD,GACjD,CACA,cACA,yBACA,SACA,CAAK,GACL,CACA,WACA,gEACA,eACA,OACA,OACA,2CACA,uBAAmC,EAAO,oBAAoB,GAAI,eAAe,GAAK,WACtF,0BAA2C,EAAO,mBAAmB,GAAI,eAAe,EAAI,KAC5F,kBACA,CAAK,CACL,CACA,uBACA,gEACA,gEACA,4GACA,sCAA4C,EAAI,sBAAsB,EAAU,kPAChF,MACA,CACA,oBACA,sCACA,OACA,KACA,UACA,EACA,yCACA,cACA,IACA,KAMA,EAJA,EADA,aACA,aAEA,aAEA,0BACA,8BAEA,SAEA,CAAU,SACV,IACA,MAEA,cAEA,CACA,SACA,mCACA,CACA,CAEA,cACA,OACA,SACA,iBACA,mBACA,0BACA,oBACA,cACA,iBACA,4BACA,WACA,WACA,wBACA,iBACA,gBACA,oBACA,qBACA,2BACA,eACA,iBACA,yBACA,sBACA,qBACA,+BACA,eACA,2BACA,cACA,qBACA,iBACA,cACA,yBACA,0BACA,+BACA,2BACA,6CACA,SAIA,GAHA,gCACA,6CACA,6CACA,8CACA,iBACA,2BACA,UACS,CACT,CACA,QACA,CAAK,CACL,eACA,eACA,YACA,UAAiB,EACjB,UAAiB,EACjB,oBACA,mBACA,oBACA,kBACA,4BACA,gBACA,kBACA,CACA,CACA,CACA,eAOA,MANA,qCACA,gEACA,6DACA,sDACA,qDAEA,CACA,CAEA,eASA,oBACA,cACA,gEACA,yCASA,GARA,QACA,mBACA,iBACA,cACA,cACA,WACA,GAlBA,YACA,qDACA,YACA,yBACA,mBAEA,CAAG,CACH,EAYA,MACA,oCACA,+BAEA,OADA,eACA,KAEA,gBACA,cACA,CAAO,GACP,CACA,CACA,OACA,WACA,gEACA,wCACA,wBACA,IACA,MAEA,uCACA,sBACA,iBACQ,+BACR,uBAGA,WAkBA,qBACA,EACA,2BACA,EAFA,IAGA,CACA,GAtBA,cACA,KACA,gBACA,UAEA,sCACA,6BACA,mBACA,8BACA,EAEA,yBACA,sDAEA,wBACA,oDAOA,2BAMA,CALA,qBACA,4CAEA,0BAGA,uBACA,yBACQ,0BACR,OAEA,0BACA,wDACA,oBACA,WACA,2BACA,kBACA,2BACA,qCACA,iDACA,uDACO,EACP,sGACA,iBACA,iCACA,wEAEA,oCACA,SACA,qDACA,EACA,kFACA,sCACA,kDAA+F,IAAa,IAC5G,oBAEA,cACA,CAAO,EACP,gCACA,oDACA,yFAEA,0BACA,wCACA,4CAEA,mDACA,mCACA,kDAAmG,IAAe,IAClH,oBAEA,cACA,CAAO,EACP,kCACA,oBACA,CAAO,CACP,CAGA,GAFA,8CACA,UACA,8EACA,4EACA,kDACA,CACA,kDACA,4EAEA,4EACA,YACA,mBACA,+BACA,CACA,CAAK,EAEL,CADA,yEACA,YACA,mBAEA,OADA,yBACA,CACA,CACA,CAAK,EACL,WACA,OACA,cACA,0IACA,sBACA,kEACA,sCACA,aACA,MACA,EACA,8GACA,uCACA,EAMA,OALA,oDACA,IAEA,gBAEA,CACA,CACA,iBACA,gEACA,IACA,qCAEA,GADA,4BACA,+DACA,sGACA,SACA,MACA,GACA,cACA,kDACA,YACA,cACA,yBACA,CAAS,CACT,EACA,EAIA,KAHA,uEACA,iBAIA,sBACA,sCAEA,0DACA,kFACA,IACA,CAAO,CACP,EAAM,IACN,OAEA,CACA,uBACA,WAQA,OAPA,sBACA,uBACA,UACA,8CACA,YACA,IACA,CAAK,EACL,CACA,CACA,OACA,mHACA,mHAsBA,MArBA,oBACA,yBAEA,6CACA,wBAEA,6BACA,kCAEA,uBACA,4BAEA,0BACA,uBAEA,sBACA,2BAEA,qBACA,8BAEA,KAEA,uBACA,uBACA,iCACA,YAAqB,wBAA4B,KACjD,wBACA,sCACA,2CACA,wBACA,KACA,CACA,CACA,CACA,oBACA,WACA,4BACA,WACA,gCACA,UACA,gBACA,iEACA,6BACA,2BACA,EACA,UACA,GACA,KACA,kCACA,iCACA,+BACA,sCAEA,iCAEA,qBACA,wBACA,CAAO,EACP,kBACA,wBACA,CAAO,CACP,EACA,MACA,8CACA,gFACA,IACA,eACA,KAEA,4DACA,uIAEA,yBACA,MACA,CAAO,CACP,EAYA,OAXA,yEAEM,yEACN,iDACA,gDAEA,yCAGA,KARA,2CAUA,CACA,CACA,iBACA,WACA,wBACA,EAgBA,EAfA,uBACA,kDAAmG,IAAe,IAClH,oBAEA,6DACA,EAAQ,IACR,GACA,KAGA,oBACA,sBACA,gBACA,wCACA,kCAOA,OAJA,EADA,8BACA,YAAoC,YAAkB,EAAE,EAAa,EAAE,EAAE,GAEzE,eAA2C,YAAkB,EAAE,EAAa,EAAE,EAAI,IAElF,QACA,EAQA,MAPA,mBACA,QAEA,SAEA,OACA,cACA,CACA,CACA,IACA,+DACA,CACA,SACA,4DACA,CACA,uBACA,wBACA,CACA,sBACA,gEACA,uBAEA,OADA,mFACA,GAEA,2CAEA,OADA,8FACA,GAEA,sDACA,2CACA,0CACA,uCACA,cACA,8CAAgE,EAAE,GAAG,EAAE,GACvE,oBACA,EACA,eACA,yBACA,sBACA,UACA,6BACA,wGACA,qBAEA,CACA,oBACA,kBACA,iBAIA,4BACA,cACA,qDACA,CAAK,EACL,uBACA,YACA,OACA,CAAK,EACL,IAXA,OACA,kBAWA,CACA,mBACA,UACA,6BACA,+BACA,qCACA,UAIA,iCACA,uBACA,YACA,OACA,CAAK,EACL,IARA,OACA,kBAQA,CACA,aAEA,CADA,wGACA,GAGA,CAFA,2WAEA,QADA,2DACA,+EAHA,KAIA,CACA,wBACA,gEACA,yCACA,kBACA,CACA,gBACA,gEACA,4DACA,sBACA,8BACA,OACA,gBACA,KAEA,UAEA,EACA,kBACA,uCACA,6BAEA,gCACA,YACA,aACK,EACL,YACA,kBAEA,kBACA,+CACA,EACA,IACA,kCACA,kCAEA,kCACA,gCACA,kDAAiG,IAAe,IAChH,oBAEA,cACA,CAAK,EACL,YACA,uBACA,8CACA,+CACA,EACA,CACA,CACA,SACA,OACA,qBACA,iBACA,uBACA,yBACA,uCAEA,CACA,CACA,IAAM,GAAQ,oBACd,GAAQ,iCAEe,GAAQ,eACnB,GAAQ,IACP,GAAQ,KACC,CAFF,EAEU,KADT,QACS,CACN,GAAQ,gBACpB,GAAQ,IACG,GAAQ,MADX,OACW,EACb,GAAQ,UAChB,GAAQ,EACH,GAAQ,OACK,CAFV,EAEkB,GADb,UACa,OACT,GAAQ,mBACZ,GAAQ,eACT,GAAQ,cCj0E9B,OAAgB,YAChB,yBACA,IACA,EAEA,EAHA,EAAiB,iBAAmB,IAcpC,OAZA,gBAUA,kBAAkC,IAAM,GARxC,6DACA,eACA,CA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,CAA+C,QACrE,UAA+B,OAApBA,EACFA,EAELA,aAAiBuO,MACZvO,CADmB,CACbuM,OAAO,CAEflF,KAAKC,SAAS,CAACtH,EACxB,gCGtIO,SAASqJ,EACdxB,CAAc,CACd2G,CAEC,EAED,GAAIA,GAAcA,EAAWC,gBAAgB,CAAE,CAC7C,IAAM1L,EAAkC,CAAC,EACzC8E,EAAK9E,OAAO,CAACyB,OAAO,CAAC,SAACkK,CAAAA,CAAa3E,CAAAA,EACjChH,CAAO,CAACgH,EAAI,CAAG2E,CACjB,GACAF,EAAWC,gBAAgB,CAAC1L,EAC9B,CACF,uMCTA,gBAA+B,GAAY,CAC3C,gBAAyB,EACzB,QACA,cACA,eACA,CACA,GACA,aACA,iBACA,eAA2C,QAAqB,MAChE,cAYA,OAXA,IACA,MAAkB,GAAK,EACvB,WACA,WACA,YACA,iCACA,QACA,oCACA,CAAO,EACP,aAEA,CACA,CACA,OACA,2BACA,2BACA,aACA,aACA,OACA,CAAO,EAEP,CACA,UACA,+BACA,IACA,YACA,OACA,4BAEA,aAAoB,uBAAwB,EAE5C,CACA,QACI,GAAa,YACjB,0BACA,cACA,CAAO,CACP,CAAK,CACL,CACA,OACA,qBACA,CACA,SACA,4BAEA,QACA,OAA+B,eAC/B,0BACA,GAAiB,QAAU,MAE3B,CACA,YAAsB,EACtB,oBACA,2CAAuE,QAAU,QACjF,CACA,UACI,GAAa,YACjB,2BACA,IACA,CAAO,CACP,CAAK,CACL,CACA,UACI,GAAa,YACjB,0BACA,WACA,CAAO,CACP,CAAK,CACL,CACA,WACI,GAAa,YACjB,0BACA,YACA,CAAO,CACP,CAAK,CACL,CACA,aCvFA,gBAAkC,GAAY,CAC9C,gBAAyB,EACzB,QACA,cACA,gBACA,kBACA,CACA,IACA,EACA,aACA,UAAyB,GAAQ,EACjC,mBACA,qBACA,oCACA,OACA,CAAK,EAEL,OADA,YACA,CACA,CACA,OACA,WACA,qBACA,UACA,iBACA,aAAkB,wBAAyB,CAC3C,CACA,UACA,WACA,mBACA,uCACA,IACA,aACA,kBAEA,iBAGA,CACA,aAAkB,0BAA2B,CAC7C,CACA,UACA,6DACA,eACA,CACA,WACA,0DACA,uCACA,CACA,QACI,GAAa,YACjB,0BACA,cACA,CAAO,CACP,CAAK,CACL,CACA,SACA,kCACA,CACA,QACA,OAA+B,eAC/B,0BACA,GAAoB,QAAa,MAEjC,CACA,YAAsB,EACtB,+BAA8C,QAAa,MAC3D,CACA,UACI,GAAa,YACjB,2BACA,IACA,CAAO,CACP,CAAK,CACL,CACA,wBACA,gDACA,OAAW,GAAa,OACxB,gBACA,4BAAoE,IAAI,IAGxE,CACA,EACA,cACA,gDACA,2BCxFA,cACA,OACA,gBACA,gBACA,6CACA,0BACA,+BACA,GAAqB,wBACrB,IACA,YACA,SACA,MACA,kCACA,cACA,SACA,iBACA,KAEA,uCACA,IACA,CAAiB,EAEjB,SAEA,CAAW,CACX,EACA,EAAwB,QAAa,2BACrC,iBACA,KACA,wBAEA,2BACA,0BAEA,OACA,oBACA,YACA,iCACA,qBAEA,KACA,cACA,GAEA,UAAkB,GAAW,UAC7B,IAAmC,IAAU,CAAG,IAAQ,CACxD,OACA,qBACA,8BACA,CACA,EACA,gBACA,qBAEA,GACA,QACA,YACA,EACA,GALA,EA+CA,kBAAyC,eAAmB,EAC5D,gEACA,EAjDA,GAKA,KACA,gBACA,EAAU,IACV,kBACA,GACA,4CACA,gBACA,MAEA,eACA,GACA,EAAY,UAEZ,QACA,CACA,qBACA,cACA,sBACA,EACA,CACA,oBACA,oBACA,gBACa,CACb,GAIA,WAEA,CACA,CACA,CACA,oBAAqC,eAAmB,EACxD,iBACA,qCACA,KACA,EACA,KACA,GACA,MACA,CCrFA,YACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,CACA,iBAAyB,EACzB,0BAAgD,EAChD,QAD0D,EAC1D,mBAAsD,EACtD,WADmE,aACnE,KACA,gBACA,gBACA,SACA,CACA,QACA,UACA,cAEA,QAA6B,GAAY,qBACzC,IACA,mCACA,kBAEA,CAAK,EACL,QAA8B,GAAa,qBAC3C,IACA,mCACA,mBAEA,CAAK,EACL,CACA,UACA,UACA,cAEA,YACA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,mBAEvC,QACA,EACA,gCACA,KACA,qBACA,sBAEA,mBAA2C,sBAAyB,UACpE,0BACA,iBAA8B,GAAgB,SAE9C,kBAA2B,yBAA4C,CACvE,EACA,iCACA,cAA0D,KAAc,0CAAmD,CAC3H,kBAAkC,eAClC,uBACA,0BACA,iBAA8B,GAAgB,UAE9C,kBAA2B,8BAAgD,CAC3E,EACA,0CACA,4BACA,EACA,6CACA,sCACA,MACA,gCAEA,EACA,CACA,CAAC,cEzED,WACA,QACA,QACA,MACA,OACA,SACA,MACA,OACA,SACA,QACA,QACA,SACA,UACA,SACA,MACA,mBCpBA,MASA,GARA,CAQI,KAA8B,MARlC,eACA,KAAmB,IAAN,GAAM,EAAoB,GAAM,OAC7C,EAAe,GAAM,OACjB,0CACJ,kBAIkC,sDAClC,SAAsB,EAAQ,KAAa,CAC3C,WAD6B,CAC7B,cACE,SAAe,GACjB,mFGZA,kBDEA,MCDA,ODCA,EDFA,WCEqB,CDFrB,EACA,aAAkB,OAAO,iBACzB,4BACA,eACA,6BACA,aAAoB,OAAO,YAC3B,gEACA,CACA,qCACA,EER2B,EDCN,UCDrB,GDEA,ECFc,QDEO,OAAO,UCFD,kCAC3B,QACA,cACA,gBACA,WACA,CAAG,UACH,+BCRA,aACA,wDACA,YAAoB,mBAAsB,KAC1C,mBACA,mBAA0B,sCAC1B,CACA,QACA,EAAG,sBACH,gDCRA,gBACA,oBACA,SACA,sBAAyB,2BACzB,yBACA,WAEA,QACA,gDCRA,cAGA,iFACA,eACA,EAAI,YACJ,mGACA,EAAG,GACH,2FCsDA,MA3DA,cAAiC,GAAY,CAC7C,IACA,GACA,CACA,eACA,QACA,YACA,IAAW,IAAQ,2BACnB,cAEA,OADA,iDACA,KACA,gDACA,CACA,CAEA,CACA,CACA,cACA,SACA,8BAEA,CACA,gBACA,sBACA,YACA,eAEA,CACA,oBACA,UACA,YACA,cACA,oBACA,mBAEA,cAEA,CAAK,CACL,CACA,cACA,cAEA,UACA,eAEA,CACA,UACA,uBACA,2BACA,IACA,CAAK,CACL,CACA,kBACA,0BACA,QAEA,+CACA,CACA,8FCzDA,gBAA6B,GAAS,CACtC,IACA,CACA,gBACA,GACA,QACA,6BACA,wBACA,WACA,wBACA,2BACA,iBACA,CACA,cACA,eACA,sCACA,CACA,WACA,yBAEA,eACA,sBACA,gBACA,sBACA,gBACA,qBACA,cACA,UACA,CAAO,EAEP,CACA,kBACA,iCACA,kBACA,gBACA,uBACA,cACA,UACA,CAAK,CACL,CACA,iBACA,iBACA,8BACA,kBAEA,qBAGA,CACA,WACA,4BACA,kCACA,CACA,iBACA,QAAoB,QAAa,EACjC,OACA,wBAGA,2BAFA,6CAIA,eACA,SAAyB,qCAAqC,CAC9D,CAAO,CACP,aACA,SAAyB,aAAe,CACxC,CAAO,CACP,gBACA,SAAyB,gBAAkB,CAC3C,CAAO,CACP,4BACA,mCACA,qCACA,+BACA,CAAK,EACL,oCACA,sBACA,IACA,OACA,SAAyB,sCAAsC,EAC/D,gCACA,EACA,MAEA,uCACA,wBACA,SACA,eACA,UACA,YACA,UACA,CAAW,CAEX,CACA,4BAiBA,OAhBA,iCACA,EACA,EACA,mBACA,MAEA,uDACA,iCACA,EACA,KACA,qBACA,mBACA,MAEA,4DACA,SAAuB,sBAAuB,EAC9C,CACA,CAAM,SACN,IAyBA,MAxBA,+BACA,EACA,EACA,mBACA,MAEA,6BACA,EACA,EACA,oBAEA,iCACA,OACA,EACA,qBACA,mBACA,MAEA,+BACA,OACA,EACA,EACA,oBAEA,CACA,EAAQ,OACR,SAAyB,qBAAsB,CAC/C,CACA,EAAM,OACN,qBACA,CACA,CACA,MAsDA,WArDA,KACA,eACA,aACA,OACA,KACA,4BACA,sBAEA,aACA,OACA,KACA,WACA,CACA,gBACA,OACA,KACA,WACA,CACA,eACA,OACA,KACA,kBACA,YACA,eACA,mBACA,WACA,oBACA,iBACA,sBACA,sBACA,CACA,eACA,OACA,KACA,YACA,eACA,mBACA,WACA,iBACA,WACA,CACA,aACA,OACA,KACA,YACA,cACA,8BACA,sBACA,YACA,cACA,CACA,CACA,GACA,YACI,GAAa,YACjB,oBACA,qBACA,CAAO,EACP,gBACA,cACA,eACA,QACA,CAAO,CACP,CAAK,CACL,CACA,EACA,aACA,OACA,eACA,YACA,WACA,eACA,mBACA,YACA,cACA,iBACA,aACA,CACA,iDCxJA,MA5EA,WACA,SACA,IACA,MACA,GACA,EACA,MACA,GACA,EACA,qBACA,MACA,EACA,UAEA,OACA,IACA,CAAO,CAEP,EACA,OACA,QACA,KACA,UACA,OACA,OACA,cACA,IACA,CAAW,CACX,CAAS,CACT,CAAO,CAEP,EACA,OACA,UACA,KACA,KACA,IACA,KACA,EAAQ,SAER,GACA,GAEA,CACA,QACA,CAAK,CAIL,cACA,SACA,OACA,OACA,CAAS,CACT,EAEA,WAKA,sBACA,GACA,CAAK,CAKL,2BACA,GACA,CAAK,CACL,iBACA,GACA,CACA,CACA,6ECxBA,MAjDA,cAAkC,GAAY,CAC9C,OACA,GACA,eACA,CACA,QACA,YACA,IAAW,IAAQ,2BACnB,gBACA,YAGA,OAFA,uCACA,wCACA,KACA,uCACA,uCACA,CACA,CAEA,CACA,CACA,cACA,SACA,8BAEA,CACA,gBACA,sBACA,YACA,eAEA,CACA,oBACA,UACA,YACA,oCACA,CACA,aACA,cAEA,UACA,2BACA,IACA,CAAO,EAEP,CACA,WACA,eAEA,yGCxCA,gBAA0B,GAAS,CACnC,EACA,KACA,GACA,GACA,GACA,cACA,GACA,QACA,WACA,yBACA,2BACA,kBACA,gBACA,yBACA,2BACA,iBA8UA,GACA,qEACA,aACA,gGACA,OACA,OACA,kBACA,gCACA,WACA,mBACA,iBACA,oBACA,wBACA,eACA,iBACA,6BACA,kBACA,CACA,EAhWA,cACA,4BACA,iBACA,CACA,WACA,yBAEA,cACA,uBACA,CACA,cACA,cAAqB,iBACrB,sCACA,CACA,iBACA,wDACA,oBAEA,CACA,aACA,MAAiB,QAAW,iCAO5B,OANA,SACA,OACA,eACA,2BACA,gBACA,CAAK,EACL,CACA,CACA,cACA,SAAqB,0CAA0C,CAC/D,CACA,UACA,uBAEA,OADA,mBACA,SAAkC,IAAI,QAAQ,IAAI,mBAClD,CACA,UACA,gBACA,aAAkB,UAAc,CAChC,CACA,QACA,eACA,sBACA,CACA,WACA,2BACA,GAAkC,KAAd,QAAc,yBAElC,CACA,aACA,mDACA,CACA,gBACA,6BAGA,2BACA,oBACA,iCAGA,yBACA,CACA,mBACA,4DAAsE,QAAc,4BACpF,CACA,UACA,2DACA,YAAwB,iBAAsB,EAC9C,mBACA,CACA,WACA,yDACA,YAAwB,iBAAsB,EAC9C,mBACA,CACA,eACA,6BACA,uBACA,sBACA,gBAA2B,2CAA8C,EAEzE,CACA,kBACA,6BACA,+CACA,wBACA,UACA,QACA,gBAAmC,UAAc,EAEjD,uBAGA,mBAEA,gBAA2B,6CAAgD,EAE3E,CACA,oBACA,6BAEA,aACA,0BACA,SAAuB,kBAAoB,CAE3C,CACA,WACA,oCACA,8CACA,aAAsB,UAAc,OAC5B,WAER,OADA,wBACA,gBAMA,GAHA,GACA,mBAEA,uBACA,gDACA,GACA,0BAEA,CAQA,0BACA,MACA,kCACA,cACA,SACA,WACA,SAEA,CAAO,CACP,EAkBA,GACA,eACA,qBACA,uBACA,iBACA,QAtBA,KACA,MAAsB,QAAa,iBACnC,GACA,uBACA,sBAIA,CAFA,KACA,WACA,wBACA,uBACA,EACA,EACA,MAGA,IACA,CAOA,EACA,KACA,+BACA,EACA,MAEA,mBACA,gFACA,SAAuB,uCAAiD,EAExE,UACY,QAAgB,eAC5B,SACA,aACA,OACA,CAAS,EAEE,QAAgB,MAC3B,yBACA,EACA,MAEA,2BACA,gBACA,EACA,OAGA,2BACA,kBAEA,4BACA,EA+CA,OA9CA,QAAoB,QAAa,EACjC,iCACA,aACA,sBACA,cACA,eAMA,WAA+B,gBAAgB,qBAC/C,MACA,CACA,IACA,eACA,CAAU,SACV,KACA,MACA,CACA,mCACA,2BACA,EACA,iBACA,MAEA,2BACA,kBAEA,4BACA,CAAO,CACP,UACA,eACA,SAAyB,qCAAqC,CAC9D,CAAO,CACP,aACA,SAAyB,aAAe,CACxC,CAAO,CACP,gBACA,SAAyB,gBAAkB,CAC3C,CAAO,CACP,sBACA,gCACA,kCACA,aACA,CAAK,EACL,eACA,CACA,MAmEA,YAlEA,IACA,eACA,aACA,OACA,KACA,iCACA,2BAEA,aACA,OACA,KACA,oBACA,CACA,gBACA,OACA,KACA,sBACA,CACA,aACA,OACA,KACA,0BACA,sBACA,CACA,eACA,OACA,KACA,YACA,oCACA,0CACA,WACA,iBACA,iBACA,eACA,mBACA,oBACA,uBACA,EAEA,aACA,cACA,GAAc,QAAgB,uBAC9B,OAAqB,+BAErB,OACA,KACA,QACA,sCACA,0BACA,wCACA,qBACA,mBACA,cACA,CACA,kBACA,OACA,KACA,gBACA,CACA,gBACA,OACA,KACA,WAEA,CACA,GACA,YACI,GAAa,YACjB,2BACA,iBACA,CAAO,EACP,gBAA2B,mCAAsC,CACjE,CAAK,CACL,CACA,EACA,gBACA,OACA,oBACA,wBACA,YAAiB,QAAQ,oCACzB,gBACA,WACA,gBACA,EAEA,gECtWA,QACA,EACA,WACA,qBACA,CACA,aACA,sBACQ,QAAc,eACtB,yBACA,qBACA,CAAO,cAEP,CACA,gBACA,qBACA,eACA,IAAoB,IAAQ,UAE5B,CACA,iBACA,UACA,sBACA,eAEA,CACA,yGCvBA,cACA,6BACA,CACA,cACA,gCAAkD,GAAa,WAC/D,CACA,0BACA,eACA,wBACA,sBACA,qBACA,CACA,EACA,cACA,qBACA,CACA,cACA,IAGA,EACA,EACA,EALA,KACA,IACA,KAIA,sBACA,IACA,GACA,CAAG,EAaH,MAA4B,GAAY,yCAAoD,GAAa,yBACzG,mCACA,MACA,IACA,KACA,iBACA,MACA,KAEA,EACA,MACA,IACA,KACA,eACA,MACA,KAEA,EACA,MACA,gBACA,MACA,UACA,IAEA,EACA,aACA,CAAK,YACL,SACA,GACA,gBAEA,CAAK,EAEL,WAIA,EAHA,KACA,OAGA,oCACA,IACA,WACA,CAAM,SACN,mBACA,CACA,qCACA,KACA,OAEA,eAAqC,KAAQ,MAC7C,kBACA,gCACA,gEACA,UACA,KACA,MACA,CACA,IACA,gBACM,QAAK,aACX,gBACO,UACP,EACA,KAEA,GAEA,CAAO,CACP,CAAK,CACL,EACA,OACA,UACA,OAnFA,IACA,IACA,YACA,YAEA,EA+EA,cACA,MACA,GAEA,YAlFA,KACA,IACA,EAiFA,cAhFA,KACA,IACA,EA+EA,WACA,WACA,IACA,IAEA,YAEA,EAEA,CACA,iDClIA,YACA,cACA,uBACA,wCACA,CACA,aAGA,OAFA,sBACA,mBACA,KACA,yBACA,oBACA,CACA,CACA,eACA,4BACA,CACA,cACA,CACA,gBACA,CACA,6NCpBA,sDACA,aAEA,CACA,gBACA,iCACA,CACA,cACA,uCACA,CACA,gBACA,sCACA,CACA,gBACA,iCACA,CACA,gBACA,iCACA,CACA,gBACA,IACA,aACA,QACA,cACA,YACA,WACA,QACA,CAAI,EACJ,MACA,KACA,iCACA,QACA,MACM,oBACN,SAGA,cACA,mBACA,qBAGA,kBAFA,QAKA,OACA,wCAGA,+BAGA,YAIA,CACA,gBACA,IAAU,4CAAwC,EAClD,MACA,0BACA,SAEA,KACA,oCACA,QACA,MACM,+BACN,QAEA,OACA,0BAGA,YAIA,CACA,gBAEA,MADA,uBACA,EACA,CACA,cACA,sBACA,EACA,iDACA,UACA,GACK,EAAI,IAET,CACA,uBACA,OAGA,oBAGA,kDACA,sCAGA,CA6BA,gBACA,qDACA,SAEA,eACA,eACA,SAGA,QACA,CACA,cACA,0DAEA,cACA,SACA,SAEA,oBACA,cACA,SAEA,2BACA,MAGA,oCAGA,4CAKA,cACA,2DACA,CACA,cACA,uBACA,eACA,CAAG,CACH,CACA,wBACA,uCACA,yBACI,yBAUJ,SAnFA,OACA,SACA,SAEA,iBACA,kBACA,yBACA,WACA,qBACA,WACA,UACA,IACA,YAAoB,IAAW,KAC/B,eACA,sDACA,YACA,MAEA,kBACA,4BACA,IAGA,CACA,uBACA,CACA,QACA,EAwDA,KAEA,CACA,CACA,cACA,QACA,CACA,oBACA,eACA,iCACA,CACA,oBACA,eACA,oCACA,CACA,eACA,sBAQA,8BACA,qBAEA,yBAGA,UAFA,8CAA+D,YAAkB,IAGjF,iDCtNA,MAAgE,WAChE,SAD0B,EAE1B,EAAE,CAF8D,CAE5D,CAA2B,gFCF/B,EAAyB,eAAmB,CAC5C,QAEA,MACA,MAAiB,YAAgB,IACjC,KACA,SAEA,MACA,sEAEA,QACA,EACA,IACA,SACA,WACC,IACC,WAAe,MACjB,UACA,KACA,WACA,GACG,KACsB,SAAG,aAAgC,mBAAyB,gvBCzB9E,gBAKA,GACP,OANO,UAOP,OAPO,UAQP,wBACA,wBACA,uBACA,uBACA,qBACA,qBACA,wBACA,6BACA,0BACA,uBACA,qBACA,UACA,QApBO,UAoBP,MACA,EAKO,GACP,SACA,SACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,iBACA,qBACA,aACA,eACA,aACA,8BACA,gBACA,EAKO,GACP,SACA,SACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,aACA,kBACA,kBACA,qBACA,EAsBO,kBAGP,MADA,SACA,kCACA,aACA,OAGA,kDACA,yEACA,QACA,eAGA,OAAgB,gBAKhB,MAJA,qBACA,cACA,mBACA,aACA,CACA,CAoBO,kBAGP,MADA,SACA,kCACA,IASA,EATA,SAGA,sCACA,6CACA,iEAKA,OAJA,QAIA,GACA,4BAAsD,KACtD,kCAAgE,KAChE,+BAA0D,KAC1D,kCAAgE,KAChE,uCAA0E,KAC1E,oCAAoE,KACpE,qCACA,CAEA,OADA,cACA,CACA,CAiBO,kBACP,6CACA,iEACA,yEACA,sEAEA,UACA,aACA,aACA,CAAK,KACL,CAqBO,kBACP,6CACA,iEAEA,2BACA,aACA,CAAK,IACL,CAiBO,kBACP,6CAEA,YAAoB,WAAwB,KAC5C,WACA,cACA,2EAEA,YAAwB,uBAAkC,KAE1D,0FACA,8BACA,0DAEA,CACA,CAEA,UACA,eACA,aACA,CAAK,KACL,CAoBO,kBACP,6CACA,iEAEA,2BACA,aACA,CAAK,IACL,CAmBO,kBACP,6CACA,mFAEA,4EAEA,UACA,kBACA,aACA,CAAK,KACL,CAoBO,kBACP,6CACA,iEAEA,2BACA,aACA,CAAK,IACL,CAwBO,gBAGP,MADA,SACA,kCACA,aACA,OAGA,wCACA,8DACA,QACA,QAGA,OAAc,0BAId,OAHA,YACA,cACA,aACA,CACA,CAmBO,kBACP,6CAEA,UACA,uBACA,aACA,CAAK,KACL,CAmBO,kBACP,6CAEA,UACA,kBACA,aACA,CAAK,KACL,CAoBO,kBACP,6CAEA,UACA,oBACA,aACA,CAAK,KACL,CA0BO,kBACP,4CACA,gEAEA,UACA,0BACA,YACA,CAAK,KACL,CAeO,gBACP,oDACA,iEACA,wBACA,wBACA,CAWO,gBACP,8CAEA,+DACA,yBACA,yCACA,UACA,CAWO,gBACP,+CAEA,+DACA,yBACA,yCACA,UACA,CAWO,gBACP,gBACA,CAUO,cACP,8CAEA,YAEA,OADA,cACA,CACA,CASO,cACP,8CAGA,OADA,cACA,WACA,CASO,cACP,8CAGA,OADA,MACA,WACA,CAWO,kBACP,6CACA,2DAEA,gCACA,CAUO,kBACP,2CACA,yDAEA,qBACA,4CAEA,yBACA,yCAEA,YACA,CAaO,cACP,4CACA,CAaO,cACP,iCACA,CAuBO,cACP,sCACA,0DACA,qFACA,sBACA,sDACA,CAAK,CACL,CAuBO,cACP,oCACA,4FACA,CAGO,aACP,4DACA,CAEO,aACP,4DACA,CAEO,aACP,2DACA,CAEO,aACP,2DACA,CAEO,aACP,2DACA,CAEO,aACP,4DACA,CAEO,aACP,yDACA,0EC/sBO,SAAS7G,EAAQ8F,CAAI,CAAE2W,CAAM,CAAExnB,CAAO,EAC3C,IAAMiX,EAAQ5E,CAAAA,EAAAA,EAAAA,CAAAA,CAAMA,CAACxB,EAAM7Q,QAAAA,KAAAA,EAAAA,EAAS4nB,EAAE,CAAX5nB,EAAS4nB,MACpC,MAAUJ,GAAgBK,CAAAA,EAAAA,EAAAA,CAAP,CAAoBA,CAAC7nB,OAAAA,EAAAA,KAAAA,EAAAA,EAAS4nB,EAAE,GAAFA,EAAYhW,EAArB5R,IAGnCwnB,GAELvQ,EAAMgQ,GAFO,IAEA,CAAChQ,EAAMwP,OAAO,GAAKe,GAFZvQ,EAItB,sFCsCO,IAAM6Q,EAAqB,OAOrBC,EAAoB,CAPW,KAc/BC,EAAuB,CAPM,GAc7BC,EAP6B,KA6H7BC,EAAsBC,CAtHO,KAsHAC,CAAAA,GAAG,CAAC,qBAAqB,yEClL5D,SAASP,EAAchX,CAAI,CAAE3Y,CAAK,QACvC,YAAI,OAAO2Y,EAA4BA,EAAK3Y,GAExC2Y,GAAQ,CAAOA,KAAAA,IAAAA,EAAAA,YAAP,QAAOA,EAAAA,CAAG,GAAM,UAAYqX,EAAAA,EAAmBA,IAAIrX,EACtDA,CAAI,CAACqX,EAAZ,EAA+BA,CAAC,CAAChwB,GAE/B2Y,aAAgBrX,KAAa,CAAP,GAAWqX,EAAKzE,WAAW,CAAClU,GAE/C,IAAIsB,KAAKtB,EAClB,+DClBO,SAASmwB,EAAWxX,CAAI,CAAE7Q,CAAO,EACtC,IAAMiX,EAAQ5E,CAAAA,EAAAA,EAAAA,CAAAA,CAAMA,CAACxB,QAAM7Q,EAAAA,KAAAA,EAAAA,EAAS4nB,EAAE,EAEtC,CAFoCA,IAAT5nB,EAC3BiX,EAAMiP,QAAQ,CAAC,EAAG,EAAG,EAAG,GACjBjP,CACT,gECNO,SAASjM,EAAahL,CAAO,EAClC,MAAOqoB,CAAAA,EAAAA,EAAAA,CAAAA,CAAUA,CAAC7uB,KAAKC,GAAG,GAAIuG,EAChC,+DCYO,SAASqS,EAAOoV,CAAQ,CAAEnvB,CAAO,EAEtC,MAAOuvB,CAAAA,EAAAA,EAAAA,CAAAA,CAAaA,CAACvvB,GAAWmvB,EAAUA,EAC5C","sources":["webpack://_N_E/../../node_modules/.pnpm/@dx-shared+rule-engine@0.0.9/node_modules/@dx-shared/rule-engine/dist/ConfigRuleEngine.js","webpack://_N_E/../../node_modules/.pnpm/@dx-shared+rule-engine@0.0.9/node_modules/@dx-shared/rule-engine/dist/RuleEngine.js","webpack://_N_E/../../node_modules/.pnpm/@dx-shared+rule-engine@0.0.9/node_modules/@dx-shared/rule-engine/dist/index.js","webpack://_N_E/../../node_modules/.pnpm/@dx-shared+rule-engine@0.0.9/node_modules/@dx-shared/rule-engine/dist/types.js","webpack://_N_E/../../node_modules/.pnpm/@turf+boolean-point-in-polygon@6.0.1/node_modules/@turf/boolean-point-in-polygon/index.js","webpack://_N_E/../../node_modules/.pnpm/@turf+distance@6.0.1/node_modules/@turf/distance/index.js","webpack://_N_E/../../node_modules/.pnpm/@turf+helpers@6.5.0/node_modules/@turf/helpers/dist/js/index.js","webpack://_N_E/../../node_modules/.pnpm/@turf+invariant@6.5.0/node_modules/@turf/invariant/dist/js/index.js","webpack://_N_E/../../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js","webpack://_N_E/../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.js","webpack://_N_E/../../node_modules/.pnpm/cookie@0.4.2/node_modules/cookie/index.js","webpack://_N_E/../../node_modules/.pnpm/cross-fetch@3.1.4/node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://_N_E/../../node_modules/.pnpm/date-fns-tz@1.0.10_date-fns@2.14.0/node_modules/date-fns-tz/esm/_lib/tzTokenizeDate/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns-tz@1.0.10_date-fns@2.14.0/node_modules/date-fns-tz/esm/_lib/tzParseTimezone/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns-tz@1.0.10_date-fns@2.14.0/node_modules/date-fns-tz/esm/toDate/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns-tz@1.0.10_date-fns@2.14.0/node_modules/date-fns-tz/esm/utcToZonedTime/index.js","webpack://_N_E/../../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js","webpack://_N_E/../../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js","webpack://_N_E/../../node_modules/.pnpm/form-data@4.0.1/node_modules/form-data/lib/browser.js","webpack://_N_E/../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://_N_E/../../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js","webpack://_N_E/../../node_modules/.pnpm/matcher@4.0.0/node_modules/matcher/index.js","webpack://_N_E/../../node_modules/.pnpm/html-parse-stringify@3.0.1/node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/utils.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/unescape.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/defaults.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/i18nInstance.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/TransWithoutContext.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/initReactI18next.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/context.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/Trans.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/useTranslation.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/withTranslation.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/Translation.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/I18nextProvider.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/useSSR.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/withSSR.js","webpack://_N_E/../../node_modules/.pnpm/react-i18next@14.0.5_i18next@23.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/index.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_3dac069b78b76cc9ab3038e4a5e4956f/node_modules/next-i18next/dist/esm/config/defaultConfig.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_3dac069b78b76cc9ab3038e4a5e4956f/node_modules/next-i18next/dist/esm/utils.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_3dac069b78b76cc9ab3038e4a5e4956f/node_modules/next-i18next/dist/esm/config/createConfig.js","webpack://_N_E/../../node_modules/.pnpm/i18next@23.9.0/node_modules/i18next/dist/esm/i18next.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_3dac069b78b76cc9ab3038e4a5e4956f/node_modules/next-i18next/dist/esm/createClient/browser.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_3dac069b78b76cc9ab3038e4a5e4956f/node_modules/next-i18next/dist/esm/appWithTranslation.js","webpack://_N_E/../../node_modules/.pnpm/next-i18next@15.2.0_i18next@23.9.0_next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3_3dac069b78b76cc9ab3038e4a5e4956f/node_modules/next-i18next/dist/esm/index.js","webpack://_N_E/","webpack://_N_E/./pages/_app.tsx","webpack://_N_E/../../libs/framework/react-query-env-vars/src/lib/react-query-env-vars.ts","webpack://_N_E/../../libs/framework/react-query-env-vars/src/index.ts","webpack://_N_E/./utils/env-vars.ts","webpack://_N_E/../../libs/framework/auth-provider/src/lib/auth-context.ts","webpack://_N_E/../../libs/framework/auth-provider/src/lib/auth-provider.tsx","webpack://_N_E/../../libs/framework/auth-provider/src/lib/cookie-utils.ts","webpack://_N_E/../../libs/framework/auth-provider/src/lib/gql/queries.ts","webpack://_N_E/../../libs/framework/auth-provider/src/lib/auth-client.ts","webpack://_N_E/../../libs/framework/auth-provider/src/lib/make-auth-client.ts","webpack://_N_E/../../libs/framework/auth-provider/src/lib/index.ts","webpack://_N_E/../../libs/framework/auth-provider/src/index.ts","webpack://_N_E/../../libs/framework/env/src/lib/helpers.ts","webpack://_N_E/../../libs/framework/env/src/lib/index.ts","webpack://_N_E/../../libs/framework/env/src/index.ts","webpack://_N_E/../../node_modules/.pnpm/i18next-http-backend@1.2.4/node_modules/i18next-http-backend/esm/utils.js","webpack://_N_E/../../node_modules/.pnpm/i18next-http-backend@1.2.4/node_modules/i18next-http-backend/esm/request.js","webpack://_N_E/../../node_modules/.pnpm/i18next-http-backend@1.2.4/node_modules/i18next-http-backend/esm/index.js","webpack://_N_E/../../libs/framework/i18n/src/lib/app-with-translation.tsx","webpack://_N_E/../../libs/framework/i18n/src/lib/locale-utils.ts","webpack://_N_E/../../libs/framework/i18n/src/generated/queries.ts","webpack://_N_E/../../libs/framework/i18n/src/lib/translated-url.ts","webpack://_N_E/../../libs/framework/i18n/src/lib/util.ts","webpack://_N_E/../../libs/framework/i18n/src/lib/index.ts","webpack://_N_E/../../libs/framework/i18n/src/index.ts","webpack://_N_E/../../libs/framework/incomplete-event/src/lib/incomplete-event.ts","webpack://_N_E/../../libs/framework/logger/src/lib/logger.ts","webpack://_N_E/../../libs/framework/logger/src/lib/helpers.ts","webpack://_N_E/../../libs/framework/logger/src/lib/index.ts","webpack://_N_E/../../libs/framework/logger/src/index.ts","webpack://_N_E/../../libs/framework/merge-cache-control/src/lib/framework-merge-cache-control.ts","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/queryCache.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/mutationCache.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/queryClient.js","webpack://_N_E/../../libs/utilities/cookies/src/lib/index.ts","webpack://_N_E/../../libs/types/graphql/src/lib/graphql.ts","webpack://_N_E/../../libs/types/graphql/src/lib/index.ts","webpack://_N_E/../../libs/types/graphql/src/index.ts","webpack://_N_E/../../libs/framework/react-query/src/lib/default-fetch-fn-utils.ts","webpack://_N_E/../../libs/framework/react-query/src/lib/extract-files/isExtractableFile.ts","webpack://_N_E/../../libs/framework/react-query/src/lib/extract-files/extractFiles.ts","webpack://_N_E/../../libs/utilities/generate-error/src/lib/generate-error.ts","webpack://_N_E/../../libs/utilities/generate-error/src/lib/index.ts","webpack://_N_E/../../libs/utilities/generate-error/src/index.ts","webpack://_N_E/../../libs/framework/react-query/src/lib/default-fetch-fn.ts","webpack://_N_E/../../libs/framework/react-query/src/lib/make-query-client.ts","webpack://_N_E/../../libs/framework/react-query/src/lib/use-clients.tsx","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/hydration.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query@5.56.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/HydrationBoundary.js","webpack://_N_E/../../libs/framework/react-query/src/lib/use-query-incomplete.tsx","webpack://_N_E/../../libs/framework/react-query/src/lib/query-provider.tsx","webpack://_N_E/../../libs/framework/react-query/src/lib/index.ts","webpack://_N_E/../../libs/framework/react-query/src/index.ts","webpack://_N_E/../../libs/utilities/is-browser/src/lib/is-browser.ts","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/compareAsc/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/isDate/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/isValid/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/locale/en-US/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/assign/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/setUTCDay/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/setUTCISODay/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/_lib/setUTCWeek/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/parse/_lib/parsers/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/parse/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/getDaysInMonth/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/setMonth/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/set/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/addMilliseconds/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/subMilliseconds/index.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@2.14.0/node_modules/date-fns/esm/toDate/index.js","webpack://_N_E/./styles/global.css","webpack://_N_E/../../node_modules/.pnpm/next@15.1.6_@babel+core@7.26.0_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.84.0/node_modules/next/router.js","webpack://_N_E/../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","webpack://_N_E/../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","webpack://_N_E/../../node_modules/.pnpm/universal-cookie@4.0.4/node_modules/universal-cookie/es6/utils.js","webpack://_N_E/../../node_modules/.pnpm/universal-cookie@4.0.4/node_modules/universal-cookie/es6/Cookies.js","webpack://_N_E/../../node_modules/.pnpm/universal-cookie@4.0.4/node_modules/universal-cookie/es6/index.js","webpack://_N_E/../../node_modules/.pnpm/void-elements@3.1.0/node_modules/void-elements/index.js","webpack://_N_E/../../node_modules/.pnpm/i18next-http-backend@1.2.4/node_modules/i18next-http-backend/esm/getFetch.cjs","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://_N_E/../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/focusManager.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/mutation.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/notifyManager.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/onlineManager.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/query.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/removable.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/retryer.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/subscribable.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/utils.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query-devtools@5.58.0_@tanstack+react-query@5.56.2_react@18.3.1__react@18.3.1/node_modules/@tanstack/react-query-devtools/build/modern/index.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query@5.56.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","webpack://_N_E/../../node_modules/.pnpm/@turf+helpers@6.0.1/node_modules/@turf/helpers/index.mjs","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addDays.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDay.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfToday.js","webpack://_N_E/../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigRuleEngine = void 0;\nconst RuleEngine_1 = require(\"./RuleEngine\");\nclass ConfigRuleEngine {\n constructor(rules) {\n this.rules = [];\n this.rules.push(...(Array.isArray(rules) ? rules : [rules]));\n return this;\n }\n run(facts) {\n return this.rules.reduce((acc, rule) => {\n const { name, conditions, config: defaultConfig, tag: defaultTag } = rule;\n let ruleConfig = {};\n const ruleTags = new Set([defaultTag]);\n const addConditionsRuleTag = (ruleTag) => {\n let cRuleTag = ruleTag;\n if (defaultTag) {\n ruleTags.delete(defaultTag);\n if (ruleTag) {\n cRuleTag = ruleTag.startsWith(`${defaultTag}-`) ? ruleTag : `${defaultTag}-${ruleTag}`;\n }\n }\n ruleTags.add(cRuleTag);\n };\n if (conditions && conditions.single) {\n const validCondition = conditions.single.find((c) => new RuleEngine_1.RuleEngine({ name, conditions: c }).run(facts));\n if (validCondition) {\n ruleConfig = validCondition.config;\n addConditionsRuleTag(validCondition.tag);\n }\n }\n else if (conditions && conditions.multi) {\n conditions.multi\n .filter((c) => new RuleEngine_1.RuleEngine({ name, conditions: c }).run(facts))\n .forEach((c) => {\n ruleConfig = { ...ruleConfig, ...c.config };\n addConditionsRuleTag(c.tag);\n });\n }\n else if (conditions) {\n if (new RuleEngine_1.RuleEngine({ name, conditions: conditions }).run(facts)) {\n const c = conditions;\n ruleConfig = c.config;\n addConditionsRuleTag(c.tag);\n }\n }\n acc.config = { ...acc.config, ...defaultConfig, ...ruleConfig };\n acc.tags = [...acc.tags, ...Array.from(ruleTags)].filter(Boolean).sort();\n return acc;\n }, { config: {}, tags: [] });\n }\n}\nexports.ConfigRuleEngine = ConfigRuleEngine;\n//# sourceMappingURL=ConfigRuleEngine.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RuleEngine = void 0;\nconst distance_1 = __importDefault(require(\"@turf/distance\"));\nconst helpers_1 = require(\"@turf/helpers\");\nconst boolean_point_in_polygon_1 = __importDefault(require(\"@turf/boolean-point-in-polygon\"));\nconst compareAsc_1 = __importDefault(require(\"date-fns/compareAsc\"));\nconst isDate_1 = __importDefault(require(\"date-fns/isDate\"));\nconst isValid_1 = __importDefault(require(\"date-fns/isValid\"));\nconst parse_1 = __importDefault(require(\"date-fns/parse\"));\nconst set_1 = __importDefault(require(\"date-fns/set\"));\nconst utcToZonedTime_1 = __importDefault(require(\"date-fns-tz/utcToZonedTime\"));\nconst matcher_1 = __importDefault(require(\"matcher\"));\nconst types_1 = require(\"./types\");\nconst DATE_PATTERN_CONFIGS = Object.freeze([\n { pattern: 'MM-dd', default: { hours: 0, minutes: 0, seconds: 0, milliseconds: 0 } },\n { pattern: 'yyyy-MM', default: { date: 1, hours: 0, minutes: 0, seconds: 0, milliseconds: 0 } },\n { pattern: 'yyyy-MM-dd', default: { hours: 0, minutes: 0, seconds: 0, milliseconds: 0 } },\n { pattern: 'yyyy-MM-dd HH:mm', default: { seconds: 0, milliseconds: 0 } },\n]);\nconst TIMEZONE_UTC = 'UTC';\nconst DISTANCE_FROM_REGEX = new RegExp('^([\\\\d\\\\.]+)[ ]*(kilometers|km|miles|mi)[ ]+from[ ]+([-\\\\d\\\\.]+)[ ]*,[ ]*([-\\\\d\\\\.]+)$');\nconst COORDINATE_POINT_REGEX = new RegExp('^([-\\\\d\\\\.]+)[ ]*,[ ]*([-\\\\d\\\\.]+)$');\nconst DISTANCE_UNIT_MAPPING = Object.freeze({\n km: 'kilometers',\n mi: 'miles',\n});\nfunction isNil(val) {\n return val === undefined || val === null;\n}\nfunction compare(factValue, operatorValue) {\n if (!isNil(factValue) && !isNil(operatorValue)) {\n if (isDate_1.default(factValue) && typeof operatorValue === 'string') {\n return compareDate(factValue, operatorValue);\n }\n if (factValue < operatorValue) {\n return -1;\n }\n if (factValue > operatorValue) {\n return 1;\n }\n }\n if (factValue === operatorValue) {\n return 0;\n }\n return undefined;\n}\nfunction compareDate(factDate, operatorDateStr) {\n if (isValid_1.default(factDate)) {\n let trunFactDate;\n let utcOperatorDate;\n for (let index = 0; index < DATE_PATTERN_CONFIGS.length; index += 1) {\n const datePatternConfig = DATE_PATTERN_CONFIGS[index];\n const parsedDate = parse_1.default(operatorDateStr, datePatternConfig.pattern, new Date());\n if (isValid_1.default(parsedDate)) {\n trunFactDate = set_1.default(factDate, datePatternConfig.default);\n utcOperatorDate = set_1.default(utcToZonedTime_1.default(parsedDate, TIMEZONE_UTC), datePatternConfig.default);\n break;\n }\n }\n if (trunFactDate && utcOperatorDate) {\n return compareAsc_1.default(trunFactDate, utcOperatorDate);\n }\n }\n return undefined;\n}\nfunction evalBounds(factValue, operatorValue) {\n const coordinatePointExec = COORDINATE_POINT_REGEX.exec(factValue);\n if (coordinatePointExec && (operatorValue === null || operatorValue === void 0 ? void 0 : operatorValue.length)) {\n const point = helpers_1.point([parseFloat(coordinatePointExec[2]), parseFloat(coordinatePointExec[1])]);\n const polygonCoordinates = operatorValue.reduce((acc, polygonCoordinate) => {\n const polygonCoordinateExec = COORDINATE_POINT_REGEX.exec(polygonCoordinate);\n if (polygonCoordinateExec) {\n acc.push([parseFloat(polygonCoordinateExec[2]), parseFloat(polygonCoordinateExec[1])]);\n }\n return acc;\n }, []);\n const polygon = helpers_1.polygon([polygonCoordinates]);\n return boolean_point_in_polygon_1.default(point, polygon);\n }\n return false;\n}\nfunction evalDistance(factValue, operatorValue) {\n const distanceFromExec = DISTANCE_FROM_REGEX.exec(operatorValue);\n const coordinatePointExec = COORDINATE_POINT_REGEX.exec(factValue);\n if (coordinatePointExec && distanceFromExec) {\n const point = helpers_1.point([parseFloat(coordinatePointExec[2]), parseFloat(coordinatePointExec[1])]);\n const fromPoint = helpers_1.point([parseFloat(distanceFromExec[4]), parseFloat(distanceFromExec[3])]);\n const units = distanceFromExec[2];\n const options = { units: DISTANCE_UNIT_MAPPING[units] || units };\n const distance = distance_1.default(fromPoint, point, options);\n return distance <= parseFloat(distanceFromExec[1]);\n }\n return false;\n}\nfunction evalContains(values, value) {\n if (Array.isArray(values) && (values === null || values === void 0 ? void 0 : values.length) && !isNil(value) && !Array.isArray(value)) {\n if (typeof value === 'string') {\n return values.some((pattern) => matcher_1.default.isMatch(value, String(pattern)));\n }\n return values.includes(value);\n }\n return false;\n}\nfunction evalOperation(operator, factValue, operatorValue) {\n switch (operator) {\n case types_1.Operator.bounds:\n return Array.isArray(operatorValue) && evalBounds(String(factValue), operatorValue);\n case types_1.Operator.contains:\n return evalContains(factValue, operatorValue);\n case types_1.Operator.distance:\n return evalDistance(String(factValue), String(operatorValue));\n case types_1.Operator.equal:\n return compare(factValue, operatorValue) === 0;\n case types_1.Operator.greaterThan:\n return compare(factValue, operatorValue) === 1;\n case types_1.Operator.greaterThanInclusive:\n return compare(factValue, operatorValue) >= 0;\n case types_1.Operator.in:\n return evalContains(operatorValue, factValue);\n case types_1.Operator.lessThan:\n return compare(factValue, operatorValue) === -1;\n case types_1.Operator.lessThanInclusive:\n return compare(factValue, operatorValue) <= 0;\n case types_1.Operator.nil:\n return isNil(factValue);\n case types_1.Operator.percentage:\n return !!(operatorValue && operatorValue <= Math.round(Math.random() * (100 - 1) + 1));\n case types_1.Operator.regex:\n return new RegExp(String(operatorValue)).test(String(factValue));\n case types_1.Operator.truthy:\n return !!factValue;\n case types_1.Operator.wildcard:\n return matcher_1.default.isMatch(String(factValue), String(operatorValue));\n default:\n return false;\n }\n}\nfunction evalConditions(condition, facts) {\n var _a;\n if (condition.not) {\n return !evalConditions(condition.not, facts);\n }\n if (condition.all) {\n return condition.all.every((c) => evalConditions(c, facts));\n }\n if (condition.any) {\n return condition.any.some((c) => evalConditions(c, facts));\n }\n const { fact, operator, value } = condition;\n const factValue = facts[fact];\n const operatorValue = ((_a = value) === null || _a === void 0 ? void 0 : _a.fact) ? facts[value.fact]\n : value;\n return evalOperation(operator, factValue, operatorValue);\n}\nclass RuleEngine {\n constructor(rule) {\n this.rule = rule;\n return this;\n }\n run(facts) {\n return evalConditions(this.rule.conditions, facts);\n }\n}\nexports.RuleEngine = RuleEngine;\n//# sourceMappingURL=RuleEngine.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ConfigRuleEngine\"), exports);\n__exportStar(require(\"./RuleEngine\"), exports);\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Operator = void 0;\nvar Operator;\n(function (Operator) {\n Operator[\"bounds\"] = \"bounds\";\n Operator[\"contains\"] = \"contains\";\n Operator[\"distance\"] = \"distance\";\n Operator[\"equal\"] = \"equal\";\n Operator[\"greaterThan\"] = \"greaterThan\";\n Operator[\"greaterThanInclusive\"] = \"greaterThanInclusive\";\n Operator[\"in\"] = \"in\";\n Operator[\"lessThan\"] = \"lessThan\";\n Operator[\"lessThanInclusive\"] = \"lessThanInclusive\";\n Operator[\"nil\"] = \"nil\";\n Operator[\"percentage\"] = \"percentage\";\n Operator[\"regex\"] = \"regex\";\n Operator[\"truthy\"] = \"truthy\";\n Operator[\"wildcard\"] = \"wildcard\";\n})(Operator = exports.Operator || (exports.Operator = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar invariant_1 = require(\"@turf/invariant\");\n// http://en.wikipedia.org/wiki/Even%E2%80%93odd_rule\n// modified from: https://github.com/substack/point-in-polygon/blob/master/index.js\n// which was modified from http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html\n/**\n * Takes a {@link Point} and a {@link Polygon} or {@link MultiPolygon} and determines if the point\n * resides inside the polygon. The polygon can be convex or concave. The function accounts for holes.\n *\n * @name booleanPointInPolygon\n * @param {Coord} point input point\n * @param {Feature<Polygon|MultiPolygon>} polygon input polygon or multipolygon\n * @param {Object} [options={}] Optional parameters\n * @param {boolean} [options.ignoreBoundary=false] True if polygon boundary should be ignored when determining if\n * the point is inside the polygon otherwise false.\n * @returns {boolean} `true` if the Point is inside the Polygon; `false` if the Point is not inside the Polygon\n * @example\n * var pt = turf.point([-77, 44]);\n * var poly = turf.polygon([[\n * [-81, 41],\n * [-81, 47],\n * [-72, 47],\n * [-72, 41],\n * [-81, 41]\n * ]]);\n *\n * turf.booleanPointInPolygon(pt, poly);\n * //= true\n */\nfunction booleanPointInPolygon(point, polygon, options) {\n if (options === void 0) { options = {}; }\n // validation\n if (!point) {\n throw new Error(\"point is required\");\n }\n if (!polygon) {\n throw new Error(\"polygon is required\");\n }\n var pt = invariant_1.getCoord(point);\n var geom = invariant_1.getGeom(polygon);\n var type = geom.type;\n var bbox = polygon.bbox;\n var polys = geom.coordinates;\n // Quick elimination if point is not inside bbox\n if (bbox && inBBox(pt, bbox) === false) {\n return false;\n }\n // normalize to multipolygon\n if (type === \"Polygon\") {\n polys = [polys];\n }\n var insidePoly = false;\n for (var i = 0; i < polys.length && !insidePoly; i++) {\n // check if it is in the outer ring first\n if (inRing(pt, polys[i][0], options.ignoreBoundary)) {\n var inHole = false;\n var k = 1;\n // check for the point in any of the holes\n while (k < polys[i].length && !inHole) {\n if (inRing(pt, polys[i][k], !options.ignoreBoundary)) {\n inHole = true;\n }\n k++;\n }\n if (!inHole) {\n insidePoly = true;\n }\n }\n }\n return insidePoly;\n}\nexports.default = booleanPointInPolygon;\n/**\n * inRing\n *\n * @private\n * @param {Array<number>} pt [x,y]\n * @param {Array<Array<number>>} ring [[x,y], [x,y],..]\n * @param {boolean} ignoreBoundary ignoreBoundary\n * @returns {boolean} inRing\n */\nfunction inRing(pt, ring, ignoreBoundary) {\n var isInside = false;\n if (ring[0][0] === ring[ring.length - 1][0] && ring[0][1] === ring[ring.length - 1][1]) {\n ring = ring.slice(0, ring.length - 1);\n }\n for (var i = 0, j = ring.length - 1; i < ring.length; j = i++) {\n var xi = ring[i][0];\n var yi = ring[i][1];\n var xj = ring[j][0];\n var yj = ring[j][1];\n var onBoundary = (pt[1] * (xi - xj) + yi * (xj - pt[0]) + yj * (pt[0] - xi) === 0) &&\n ((xi - pt[0]) * (xj - pt[0]) <= 0) && ((yi - pt[1]) * (yj - pt[1]) <= 0);\n if (onBoundary) {\n return !ignoreBoundary;\n }\n var intersect = ((yi > pt[1]) !== (yj > pt[1])) &&\n (pt[0] < (xj - xi) * (pt[1] - yi) / (yj - yi) + xi);\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\n/**\n * inBBox\n *\n * @private\n * @param {Position} pt point [x,y]\n * @param {BBox} bbox BBox [west, south, east, north]\n * @returns {boolean} true/false if point is inside BBox\n */\nfunction inBBox(pt, bbox) {\n return bbox[0] <= pt[0] &&\n bbox[1] <= pt[1] &&\n bbox[2] >= pt[0] &&\n bbox[3] >= pt[1];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar invariant_1 = require(\"@turf/invariant\");\nvar helpers_1 = require(\"@turf/helpers\");\n//http://en.wikipedia.org/wiki/Haversine_formula\n//http://www.movable-type.co.uk/scripts/latlong.html\n/**\n * Calculates the distance between two {@link Point|points} in degrees, radians, miles, or kilometers.\n * This uses the [Haversine formula](http://en.wikipedia.org/wiki/Haversine_formula) to account for global curvature.\n *\n * @name distance\n * @param {Coord} from origin point\n * @param {Coord} to destination point\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units='kilometers'] can be degrees, radians, miles, or kilometers\n * @returns {number} distance between the two points\n * @example\n * var from = turf.point([-75.343, 39.984]);\n * var to = turf.point([-75.534, 39.123]);\n * var options = {units: 'miles'};\n *\n * var distance = turf.distance(from, to, options);\n *\n * //addToMap\n * var addToMap = [from, to];\n * from.properties.distance = distance;\n * to.properties.distance = distance;\n */\nfunction distance(from, to, options) {\n if (options === void 0) { options = {}; }\n var coordinates1 = invariant_1.getCoord(from);\n var coordinates2 = invariant_1.getCoord(to);\n var dLat = helpers_1.degreesToRadians((coordinates2[1] - coordinates1[1]));\n var dLon = helpers_1.degreesToRadians((coordinates2[0] - coordinates1[0]));\n var lat1 = helpers_1.degreesToRadians(coordinates1[1]);\n var lat2 = helpers_1.degreesToRadians(coordinates2[1]);\n var a = Math.pow(Math.sin(dLat / 2), 2) +\n Math.pow(Math.sin(dLon / 2), 2) * Math.cos(lat1) * Math.cos(lat2);\n return helpers_1.radiansToLength(2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)), options.units);\n}\nexports.default = distance;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * @module helpers\n */\n/**\n * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.\n *\n * @memberof helpers\n * @type {number}\n */\nexports.earthRadius = 6371008.8;\n/**\n * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.\n *\n * @memberof helpers\n * @type {Object}\n */\nexports.factors = {\n centimeters: exports.earthRadius * 100,\n centimetres: exports.earthRadius * 100,\n degrees: exports.earthRadius / 111325,\n feet: exports.earthRadius * 3.28084,\n inches: exports.earthRadius * 39.37,\n kilometers: exports.earthRadius / 1000,\n kilometres: exports.earthRadius / 1000,\n meters: exports.earthRadius,\n metres: exports.earthRadius,\n miles: exports.earthRadius / 1609.344,\n millimeters: exports.earthRadius * 1000,\n millimetres: exports.earthRadius * 1000,\n nauticalmiles: exports.earthRadius / 1852,\n radians: 1,\n yards: exports.earthRadius * 1.0936,\n};\n/**\n * Units of measurement factors based on 1 meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexports.unitsFactors = {\n centimeters: 100,\n centimetres: 100,\n degrees: 1 / 111325,\n feet: 3.28084,\n inches: 39.37,\n kilometers: 1 / 1000,\n kilometres: 1 / 1000,\n meters: 1,\n metres: 1,\n miles: 1 / 1609.344,\n millimeters: 1000,\n millimetres: 1000,\n nauticalmiles: 1 / 1852,\n radians: 1 / exports.earthRadius,\n yards: 1.0936133,\n};\n/**\n * Area of measurement factors based on 1 square meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexports.areaFactors = {\n acres: 0.000247105,\n centimeters: 10000,\n centimetres: 10000,\n feet: 10.763910417,\n hectares: 0.0001,\n inches: 1550.003100006,\n kilometers: 0.000001,\n kilometres: 0.000001,\n meters: 1,\n metres: 1,\n miles: 3.86e-7,\n millimeters: 1000000,\n millimetres: 1000000,\n yards: 1.195990046,\n};\n/**\n * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.\n *\n * @name feature\n * @param {Geometry} geometry input geometry\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON Feature\n * @example\n * var geometry = {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 50]\n * };\n *\n * var feature = turf.feature(geometry);\n *\n * //=feature\n */\nfunction feature(geom, properties, options) {\n if (options === void 0) { options = {}; }\n var feat = { type: \"Feature\" };\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n}\nexports.feature = feature;\n/**\n * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.\n * For GeometryCollection type use `helpers.geometryCollection`\n *\n * @name geometry\n * @param {string} type Geometry Type\n * @param {Array<any>} coordinates Coordinates\n * @param {Object} [options={}] Optional Parameters\n * @returns {Geometry} a GeoJSON Geometry\n * @example\n * var type = \"Point\";\n * var coordinates = [110, 50];\n * var geometry = turf.geometry(type, coordinates);\n * // => geometry\n */\nfunction geometry(type, coordinates, _options) {\n if (_options === void 0) { _options = {}; }\n switch (type) {\n case \"Point\":\n return point(coordinates).geometry;\n case \"LineString\":\n return lineString(coordinates).geometry;\n case \"Polygon\":\n return polygon(coordinates).geometry;\n case \"MultiPoint\":\n return multiPoint(coordinates).geometry;\n case \"MultiLineString\":\n return multiLineString(coordinates).geometry;\n case \"MultiPolygon\":\n return multiPolygon(coordinates).geometry;\n default:\n throw new Error(type + \" is invalid\");\n }\n}\nexports.geometry = geometry;\n/**\n * Creates a {@link Point} {@link Feature} from a Position.\n *\n * @name point\n * @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Point>} a Point feature\n * @example\n * var point = turf.point([-75.343, 39.984]);\n *\n * //=point\n */\nfunction point(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (!coordinates) {\n throw new Error(\"coordinates is required\");\n }\n if (!Array.isArray(coordinates)) {\n throw new Error(\"coordinates must be an Array\");\n }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be at least 2 numbers long\");\n }\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {\n throw new Error(\"coordinates must contain numbers\");\n }\n var geom = {\n type: \"Point\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.point = point;\n/**\n * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.\n *\n * @name points\n * @param {Array<Array<number>>} coordinates an array of Points\n * @param {Object} [properties={}] Translate these properties to each Feature\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Point>} Point Feature\n * @example\n * var points = turf.points([\n * [-75, 39],\n * [-80, 45],\n * [-78, 50]\n * ]);\n *\n * //=points\n */\nfunction points(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return point(coords, properties);\n }), options);\n}\nexports.points = points;\n/**\n * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.\n *\n * @name polygon\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Polygon>} Polygon Feature\n * @example\n * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });\n *\n * //=polygon\n */\nfunction polygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) {\n var ring = coordinates_1[_i];\n if (ring.length < 4) {\n throw new Error(\"Each LinearRing of a Polygon must have 4 or more Positions.\");\n }\n for (var j = 0; j < ring[ring.length - 1].length; j++) {\n // Check if first point of Polygon contains two numbers\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n }\n }\n var geom = {\n type: \"Polygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.polygon = polygon;\n/**\n * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.\n *\n * @name polygons\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygon coordinates\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Polygon>} Polygon FeatureCollection\n * @example\n * var polygons = turf.polygons([\n * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],\n * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],\n * ]);\n *\n * //=polygons\n */\nfunction polygons(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return polygon(coords, properties);\n }), options);\n}\nexports.polygons = polygons;\n/**\n * Creates a {@link LineString} {@link Feature} from an Array of Positions.\n *\n * @name lineString\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<LineString>} LineString Feature\n * @example\n * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});\n * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});\n *\n * //=linestring1\n * //=linestring2\n */\nfunction lineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be an array of two or more positions\");\n }\n var geom = {\n type: \"LineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.lineString = lineString;\n/**\n * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.\n *\n * @name lineStrings\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<LineString>} LineString FeatureCollection\n * @example\n * var linestrings = turf.lineStrings([\n * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],\n * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]\n * ]);\n *\n * //=linestrings\n */\nfunction lineStrings(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return lineString(coords, properties);\n }), options);\n}\nexports.lineStrings = lineStrings;\n/**\n * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.\n *\n * @name featureCollection\n * @param {Feature[]} features input features\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {FeatureCollection} FeatureCollection of Features\n * @example\n * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});\n * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});\n * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});\n *\n * var collection = turf.featureCollection([\n * locationA,\n * locationB,\n * locationC\n * ]);\n *\n * //=collection\n */\nfunction featureCollection(features, options) {\n if (options === void 0) { options = {}; }\n var fc = { type: \"FeatureCollection\" };\n if (options.id) {\n fc.id = options.id;\n }\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n fc.features = features;\n return fc;\n}\nexports.featureCollection = featureCollection;\n/**\n * Creates a {@link Feature<MultiLineString>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiLineString\n * @param {Array<Array<Array<number>>>} coordinates an array of LineStrings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiLineString>} a MultiLineString feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiLine = turf.multiLineString([[[0,0],[10,10]]]);\n *\n * //=multiLine\n */\nfunction multiLineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiLineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.multiLineString = multiLineString;\n/**\n * Creates a {@link Feature<MultiPoint>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPoint\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPoint>} a MultiPoint feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPt = turf.multiPoint([[0,0],[10,10]]);\n *\n * //=multiPt\n */\nfunction multiPoint(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPoint\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.multiPoint = multiPoint;\n/**\n * Creates a {@link Feature<MultiPolygon>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPolygon\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygons\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPolygon>} a multipolygon feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);\n *\n * //=multiPoly\n *\n */\nfunction multiPolygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPolygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\nexports.multiPolygon = multiPolygon;\n/**\n * Creates a {@link Feature<GeometryCollection>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name geometryCollection\n * @param {Array<Geometry>} geometries an array of GeoJSON Geometries\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<GeometryCollection>} a GeoJSON GeometryCollection Feature\n * @example\n * var pt = turf.geometry(\"Point\", [100, 0]);\n * var line = turf.geometry(\"LineString\", [[101, 0], [102, 1]]);\n * var collection = turf.geometryCollection([pt, line]);\n *\n * // => collection\n */\nfunction geometryCollection(geometries, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"GeometryCollection\",\n geometries: geometries,\n };\n return feature(geom, properties, options);\n}\nexports.geometryCollection = geometryCollection;\n/**\n * Round number to precision\n *\n * @param {number} num Number\n * @param {number} [precision=0] Precision\n * @returns {number} rounded number\n * @example\n * turf.round(120.4321)\n * //=120\n *\n * turf.round(120.4321, 2)\n * //=120.43\n */\nfunction round(num, precision) {\n if (precision === void 0) { precision = 0; }\n if (precision && !(precision >= 0)) {\n throw new Error(\"precision must be a positive number\");\n }\n var multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n}\nexports.round = round;\n/**\n * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name radiansToLength\n * @param {number} radians in radians across the sphere\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} distance\n */\nfunction radiansToLength(radians, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = exports.factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return radians * factor;\n}\nexports.radiansToLength = radiansToLength;\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name lengthToRadians\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} radians\n */\nfunction lengthToRadians(distance, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = exports.factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return distance / factor;\n}\nexports.lengthToRadians = lengthToRadians;\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet\n *\n * @name lengthToDegrees\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} degrees\n */\nfunction lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n}\nexports.lengthToDegrees = lengthToDegrees;\n/**\n * Converts any bearing angle from the north line direction (positive clockwise)\n * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line\n *\n * @name bearingToAzimuth\n * @param {number} bearing angle, between -180 and +180 degrees\n * @returns {number} angle between 0 and 360 degrees\n */\nfunction bearingToAzimuth(bearing) {\n var angle = bearing % 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n}\nexports.bearingToAzimuth = bearingToAzimuth;\n/**\n * Converts an angle in radians to degrees\n *\n * @name radiansToDegrees\n * @param {number} radians angle in radians\n * @returns {number} degrees between 0 and 360 degrees\n */\nfunction radiansToDegrees(radians) {\n var degrees = radians % (2 * Math.PI);\n return (degrees * 180) / Math.PI;\n}\nexports.radiansToDegrees = radiansToDegrees;\n/**\n * Converts an angle in degrees to radians\n *\n * @name degreesToRadians\n * @param {number} degrees angle between 0 and 360 degrees\n * @returns {number} angle in radians\n */\nfunction degreesToRadians(degrees) {\n var radians = degrees % 360;\n return (radians * Math.PI) / 180;\n}\nexports.degreesToRadians = degreesToRadians;\n/**\n * Converts a length to the requested unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @param {number} length to be converted\n * @param {Units} [originalUnit=\"kilometers\"] of the length\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted length\n */\nfunction convertLength(length, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"kilometers\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(length >= 0)) {\n throw new Error(\"length must be a positive number\");\n }\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n}\nexports.convertLength = convertLength;\n/**\n * Converts a area to the requested unit.\n * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches, hectares\n * @param {number} area to be converted\n * @param {Units} [originalUnit=\"meters\"] of the distance\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted area\n */\nfunction convertArea(area, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"meters\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(area >= 0)) {\n throw new Error(\"area must be a positive number\");\n }\n var startFactor = exports.areaFactors[originalUnit];\n if (!startFactor) {\n throw new Error(\"invalid original units\");\n }\n var finalFactor = exports.areaFactors[finalUnit];\n if (!finalFactor) {\n throw new Error(\"invalid final units\");\n }\n return (area / startFactor) * finalFactor;\n}\nexports.convertArea = convertArea;\n/**\n * isNumber\n *\n * @param {*} num Number to validate\n * @returns {boolean} true/false\n * @example\n * turf.isNumber(123)\n * //=true\n * turf.isNumber('foo')\n * //=false\n */\nfunction isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n}\nexports.isNumber = isNumber;\n/**\n * isObject\n *\n * @param {*} input variable to validate\n * @returns {boolean} true/false\n * @example\n * turf.isObject({elevation: 10})\n * //=true\n * turf.isObject('foo')\n * //=false\n */\nfunction isObject(input) {\n return !!input && input.constructor === Object;\n}\nexports.isObject = isObject;\n/**\n * Validate BBox\n *\n * @private\n * @param {Array<number>} bbox BBox to validate\n * @returns {void}\n * @throws Error if BBox is not valid\n * @example\n * validateBBox([-180, -40, 110, 50])\n * //=OK\n * validateBBox([-180, -40])\n * //=Error\n * validateBBox('Foo')\n * //=Error\n * validateBBox(5)\n * //=Error\n * validateBBox(null)\n * //=Error\n * validateBBox(undefined)\n * //=Error\n */\nfunction validateBBox(bbox) {\n if (!bbox) {\n throw new Error(\"bbox is required\");\n }\n if (!Array.isArray(bbox)) {\n throw new Error(\"bbox must be an Array\");\n }\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n }\n bbox.forEach(function (num) {\n if (!isNumber(num)) {\n throw new Error(\"bbox must only contain numbers\");\n }\n });\n}\nexports.validateBBox = validateBBox;\n/**\n * Validate Id\n *\n * @private\n * @param {string|number} id Id to validate\n * @returns {void}\n * @throws Error if Id is not valid\n * @example\n * validateId([-180, -40, 110, 50])\n * //=Error\n * validateId([-180, -40])\n * //=Error\n * validateId('Foo')\n * //=OK\n * validateId(5)\n * //=OK\n * validateId(null)\n * //=Error\n * validateId(undefined)\n * //=Error\n */\nfunction validateId(id) {\n if (!id) {\n throw new Error(\"id is required\");\n }\n if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n throw new Error(\"id must be a number or a string\");\n }\n}\nexports.validateId = validateId;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar helpers_1 = require(\"@turf/helpers\");\n/**\n * Unwrap a coordinate from a Point Feature, Geometry or a single coordinate.\n *\n * @name getCoord\n * @param {Array<number>|Geometry<Point>|Feature<Point>} coord GeoJSON Point or an Array of numbers\n * @returns {Array<number>} coordinates\n * @example\n * var pt = turf.point([10, 10]);\n *\n * var coord = turf.getCoord(pt);\n * //= [10, 10]\n */\nfunction getCoord(coord) {\n if (!coord) {\n throw new Error(\"coord is required\");\n }\n if (!Array.isArray(coord)) {\n if (coord.type === \"Feature\" &&\n coord.geometry !== null &&\n coord.geometry.type === \"Point\") {\n return coord.geometry.coordinates;\n }\n if (coord.type === \"Point\") {\n return coord.coordinates;\n }\n }\n if (Array.isArray(coord) &&\n coord.length >= 2 &&\n !Array.isArray(coord[0]) &&\n !Array.isArray(coord[1])) {\n return coord;\n }\n throw new Error(\"coord must be GeoJSON Point or an Array of numbers\");\n}\nexports.getCoord = getCoord;\n/**\n * Unwrap coordinates from a Feature, Geometry Object or an Array\n *\n * @name getCoords\n * @param {Array<any>|Geometry|Feature} coords Feature, Geometry Object or an Array\n * @returns {Array<any>} coordinates\n * @example\n * var poly = turf.polygon([[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]);\n *\n * var coords = turf.getCoords(poly);\n * //= [[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]\n */\nfunction getCoords(coords) {\n if (Array.isArray(coords)) {\n return coords;\n }\n // Feature\n if (coords.type === \"Feature\") {\n if (coords.geometry !== null) {\n return coords.geometry.coordinates;\n }\n }\n else {\n // Geometry\n if (coords.coordinates) {\n return coords.coordinates;\n }\n }\n throw new Error(\"coords must be GeoJSON Feature, Geometry Object or an Array\");\n}\nexports.getCoords = getCoords;\n/**\n * Checks if coordinates contains a number\n *\n * @name containsNumber\n * @param {Array<any>} coordinates GeoJSON Coordinates\n * @returns {boolean} true if Array contains a number\n */\nfunction containsNumber(coordinates) {\n if (coordinates.length > 1 &&\n helpers_1.isNumber(coordinates[0]) &&\n helpers_1.isNumber(coordinates[1])) {\n return true;\n }\n if (Array.isArray(coordinates[0]) && coordinates[0].length) {\n return containsNumber(coordinates[0]);\n }\n throw new Error(\"coordinates must only contain numbers\");\n}\nexports.containsNumber = containsNumber;\n/**\n * Enforce expectations about types of GeoJSON objects for Turf.\n *\n * @name geojsonType\n * @param {GeoJSON} value any GeoJSON object\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nfunction geojsonType(value, type, name) {\n if (!type || !name) {\n throw new Error(\"type and name required\");\n }\n if (!value || value.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n value.type);\n }\n}\nexports.geojsonType = geojsonType;\n/**\n * Enforce expectations about types of {@link Feature} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name featureOf\n * @param {Feature} feature a feature with an expected geometry type\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} error if value is not the expected type.\n */\nfunction featureOf(feature, type, name) {\n if (!feature) {\n throw new Error(\"No feature passed\");\n }\n if (!name) {\n throw new Error(\".featureOf() requires a name\");\n }\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n feature.geometry.type);\n }\n}\nexports.featureOf = featureOf;\n/**\n * Enforce expectations about types of {@link FeatureCollection} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name collectionOf\n * @param {FeatureCollection} featureCollection a FeatureCollection for which features will be judged\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nfunction collectionOf(featureCollection, type, name) {\n if (!featureCollection) {\n throw new Error(\"No featureCollection passed\");\n }\n if (!name) {\n throw new Error(\".collectionOf() requires a name\");\n }\n if (!featureCollection || featureCollection.type !== \"FeatureCollection\") {\n throw new Error(\"Invalid input to \" + name + \", FeatureCollection required\");\n }\n for (var _i = 0, _a = featureCollection.features; _i < _a.length; _i++) {\n var feature = _a[_i];\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n feature.geometry.type);\n }\n }\n}\nexports.collectionOf = collectionOf;\n/**\n * Get Geometry from Feature or Geometry Object\n *\n * @param {Feature|Geometry} geojson GeoJSON Feature or Geometry Object\n * @returns {Geometry|null} GeoJSON Geometry Object\n * @throws {Error} if geojson is not a Feature or Geometry Object\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getGeom(point)\n * //={\"type\": \"Point\", \"coordinates\": [110, 40]}\n */\nfunction getGeom(geojson) {\n if (geojson.type === \"Feature\") {\n return geojson.geometry;\n }\n return geojson;\n}\nexports.getGeom = getGeom;\n/**\n * Get GeoJSON object's type, Geometry type is prioritize.\n *\n * @param {GeoJSON} geojson GeoJSON object\n * @param {string} [name=\"geojson\"] name of the variable to display in error message (unused)\n * @returns {string} GeoJSON type\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getType(point)\n * //=\"Point\"\n */\nfunction getType(geojson, _name) {\n if (geojson.type === \"FeatureCollection\") {\n return \"FeatureCollection\";\n }\n if (geojson.type === \"GeometryCollection\") {\n return \"GeometryCollection\";\n }\n if (geojson.type === \"Feature\" && geojson.geometry !== null) {\n return geojson.geometry.type;\n }\n return geojson.type;\n}\nexports.getType = getType;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n}({}));\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","/**\n * Returns the [year, month, day, hour, minute, seconds] tokens of the provided\n * `date` as it will be rendered in the `timeZone`.\n */\nexport default function tzTokenizeDate(date, timeZone) {\n var dtf = getDateTimeFormat(timeZone)\n return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date)\n}\n\nvar typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n}\n\nfunction partsOffset(dtf, date) {\n var formatted = dtf.formatToParts(date)\n var filled = []\n for (var i = 0; i < formatted.length; i++) {\n var pos = typeToPos[formatted[i].type]\n\n if (pos >= 0) {\n filled[pos] = parseInt(formatted[i].value, 10)\n }\n }\n return filled\n}\n\nfunction hackyOffset(dtf, date) {\n var formatted = dtf.format(date).replace(/\\u200E/g, '')\n var parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted)\n // var [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed\n // return [fYear, fMonth, fDay, fHour, fMinute, fSecond]\n return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]]\n}\n\n// Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used\n// to get deterministic local date/time output according to the `en-US` locale which\n// can be used to extract local time parts as necessary.\nvar dtfCache = {}\nfunction getDateTimeFormat(timeZone) {\n if (!dtfCache[timeZone]) {\n // New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12`\n var testDateFormatted = new Intl.DateTimeFormat('en-US', {\n hour12: false,\n timeZone: 'America/New_York',\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit'\n }).format(new Date('2014-06-25T04:00:00.123Z'))\n var hourCycleSupported =\n testDateFormatted === '06/25/2014, 00:00:00' ||\n testDateFormatted === '‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00'\n\n dtfCache[timeZone] = hourCycleSupported\n ? new Intl.DateTimeFormat('en-US', {\n hour12: false,\n timeZone: timeZone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit'\n })\n : new Intl.DateTimeFormat('en-US', {\n hourCycle: 'h23',\n timeZone: timeZone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit'\n })\n }\n return dtfCache[timeZone]\n}\n","import tzTokenizeDate from '../tzTokenizeDate/index.js'\n\nvar MILLISECONDS_IN_HOUR = 3600000\nvar MILLISECONDS_IN_MINUTE = 60000\n\nvar patterns = {\n timezone: /([Z+-].*)$/,\n timezoneZ: /^(Z)$/,\n timezoneHH: /^([+-])(\\d{2})$/,\n timezoneHHMM: /^([+-])(\\d{2}):?(\\d{2})$/,\n timezoneIANA: /(UTC|(?:[a-zA-Z]+\\/[a-zA-Z_]+(?:\\/[a-zA-Z_]+)?))$/\n}\n\n// Parse various time zone offset formats to an offset in milliseconds\nexport default function tzParseTimezone(timezoneString, date) {\n var token\n var absoluteOffset\n\n // Z\n token = patterns.timezoneZ.exec(timezoneString)\n if (token) {\n return 0\n }\n\n var hours\n\n // ±hh\n token = patterns.timezoneHH.exec(timezoneString)\n if (token) {\n hours = parseInt(token[2], 10)\n\n if (!validateTimezone(hours)) {\n return NaN\n }\n\n absoluteOffset = hours * MILLISECONDS_IN_HOUR\n return token[1] === '+' ? -absoluteOffset : absoluteOffset\n }\n\n // ±hh:mm or ±hhmm\n token = patterns.timezoneHHMM.exec(timezoneString)\n if (token) {\n hours = parseInt(token[2], 10)\n var minutes = parseInt(token[3], 10)\n\n if (!validateTimezone(hours, minutes)) {\n return NaN\n }\n\n absoluteOffset =\n hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE\n return token[1] === '+' ? -absoluteOffset : absoluteOffset\n }\n\n // IANA time zone\n token = patterns.timezoneIANA.exec(timezoneString)\n if (token) {\n // var [fYear, fMonth, fDay, fHour, fMinute, fSecond] = tzTokenizeDate(date, timezoneString)\n var tokens = tzTokenizeDate(date, timezoneString)\n var asUTC = Date.UTC(\n tokens[0],\n tokens[1] - 1,\n tokens[2],\n tokens[3],\n tokens[4],\n tokens[5]\n )\n var timestampWithMsZeroed = date.getTime() - (date.getTime() % 1000)\n return -(asUTC - timestampWithMsZeroed)\n }\n\n return 0\n}\n\nfunction validateTimezone(hours, minutes) {\n if (minutes != null && (minutes < 0 || minutes > 59)) {\n return false\n }\n\n return true\n}\n","import toInteger from 'date-fns/esm/_lib/toInteger/index.js'\nimport getTimezoneOffsetInMilliseconds from 'date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js'\nimport tzParseTimezone from '../_lib/tzParseTimezone'\n\nvar MILLISECONDS_IN_HOUR = 3600000\nvar MILLISECONDS_IN_MINUTE = 60000\nvar DEFAULT_ADDITIONAL_DIGITS = 2\n\nvar patterns = {\n dateTimeDelimeter: /[T ]/,\n plainTime: /:/,\n timeZoneDelimeter: /[Z ]/i,\n\n // year tokens\n YY: /^(\\d{2})$/,\n YYY: [\n /^([+-]\\d{2})$/, // 0 additional digits\n /^([+-]\\d{3})$/, // 1 additional digit\n /^([+-]\\d{4})$/ // 2 additional digits\n ],\n YYYY: /^(\\d{4})/,\n YYYYY: [\n /^([+-]\\d{4})/, // 0 additional digits\n /^([+-]\\d{5})/, // 1 additional digit\n /^([+-]\\d{6})/ // 2 additional digits\n ],\n\n // date tokens\n MM: /^-(\\d{2})$/,\n DDD: /^-?(\\d{3})$/,\n MMDD: /^-?(\\d{2})-?(\\d{2})$/,\n Www: /^-?W(\\d{2})$/,\n WwwD: /^-?W(\\d{2})-?(\\d{1})$/,\n\n HH: /^(\\d{2}([.,]\\d*)?)$/,\n HHMM: /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n HHMMSS: /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n\n // timezone tokens (to identify the presence of a tz)\n timezone: /([Z+-].*| UTC|(?:[a-zA-Z]+\\/[a-zA-Z_]+(?:\\/[a-zA-Z_]+)?))$/\n}\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n * If the function cannot parse the string or the values are invalid, it returns Invalid Date.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n * All *date-fns* functions will throw `RangeError` if `options.additionalDigits` is not 0, 1, 2 or undefined.\n *\n * @param {Date|String|Number} argument - the value to convert\n * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = toDate('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = toDate('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport default function toDate(argument, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError(\n '1 argument required, but only ' + arguments.length + ' present'\n )\n }\n\n if (argument === null) {\n return new Date(NaN)\n }\n\n var options = dirtyOptions || {}\n\n var additionalDigits =\n options.additionalDigits == null\n ? DEFAULT_ADDITIONAL_DIGITS\n : toInteger(options.additionalDigits)\n if (\n additionalDigits !== 2 &&\n additionalDigits !== 1 &&\n additionalDigits !== 0\n ) {\n throw new RangeError('additionalDigits must be 0, 1 or 2')\n }\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === 'object' &&\n Object.prototype.toString.call(argument) === '[object Date]')\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime())\n } else if (\n typeof argument === 'number' ||\n Object.prototype.toString.call(argument) === '[object Number]'\n ) {\n return new Date(argument)\n } else if (\n !(\n typeof argument === 'string' ||\n Object.prototype.toString.call(argument) === '[object String]'\n )\n ) {\n return new Date(NaN)\n }\n\n var dateStrings = splitDateString(argument)\n\n var parseYearResult = parseYear(dateStrings.date, additionalDigits)\n var year = parseYearResult.year\n var restDateString = parseYearResult.restDateString\n\n var date = parseDate(restDateString, year)\n\n if (isNaN(date)) {\n return new Date(NaN)\n }\n\n if (date) {\n var timestamp = date.getTime()\n var time = 0\n var offset\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time)\n\n if (isNaN(time)) {\n return new Date(NaN)\n }\n }\n\n if (dateStrings.timezone || options.timeZone) {\n offset = tzParseTimezone(\n dateStrings.timezone || options.timeZone,\n new Date(timestamp + time)\n )\n if (isNaN(offset)) {\n return new Date(NaN)\n }\n } else {\n // get offset accurate to hour in timezones that change offset\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time))\n offset = getTimezoneOffsetInMilliseconds(\n new Date(timestamp + time + offset)\n )\n }\n\n return new Date(timestamp + time + offset)\n } else {\n return new Date(NaN)\n }\n}\n\nfunction splitDateString(dateString) {\n var dateStrings = {}\n var array = dateString.split(patterns.dateTimeDelimeter)\n var timeString\n\n if (patterns.plainTime.test(array[0])) {\n dateStrings.date = null\n timeString = array[0]\n } else {\n dateStrings.date = array[0]\n timeString = array[1]\n dateStrings.timezone = array[2]\n if (patterns.timeZoneDelimeter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimeter)[0]\n timeString = dateString.substr(dateStrings.date.length, dateString.length)\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString)\n if (token) {\n dateStrings.time = timeString.replace(token[1], '')\n dateStrings.timezone = token[1]\n } else {\n dateStrings.time = timeString\n }\n }\n\n return dateStrings\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var patternYYY = patterns.YYY[additionalDigits]\n var patternYYYYY = patterns.YYYYY[additionalDigits]\n\n var token\n\n // YYYY or ±YYYYY\n token = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString)\n if (token) {\n var yearString = token[1]\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length)\n }\n }\n\n // YY or ±YYY\n token = patterns.YY.exec(dateString) || patternYYY.exec(dateString)\n if (token) {\n var centuryString = token[1]\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length)\n }\n }\n\n // Invalid ISO-formatted year\n return {\n year: null\n }\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) {\n return null\n }\n\n var token\n var date\n var month\n var week\n\n // YYYY\n if (dateString.length === 0) {\n date = new Date(0)\n date.setUTCFullYear(year)\n return date\n }\n\n // YYYY-MM\n token = patterns.MM.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n\n if (!validateDate(year, month)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, month)\n return date\n }\n\n // YYYY-DDD or YYYYDDD\n token = patterns.DDD.exec(dateString)\n if (token) {\n date = new Date(0)\n var dayOfYear = parseInt(token[1], 10)\n\n if (!validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, 0, dayOfYear)\n return date\n }\n\n // yyyy-MM-dd or YYYYMMDD\n token = patterns.MMDD.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n var day = parseInt(token[2], 10)\n\n if (!validateDate(year, month, day)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, month, day)\n return date\n }\n\n // YYYY-Www or YYYYWww\n token = patterns.Www.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n\n if (!validateWeekDate(year, week)) {\n return new Date(NaN)\n }\n\n return dayOfISOWeekYear(year, week)\n }\n\n // YYYY-Www-D or YYYYWwwD\n token = patterns.WwwD.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n var dayOfWeek = parseInt(token[2], 10) - 1\n\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN)\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek)\n }\n\n // Invalid ISO-formatted date\n return null\n}\n\nfunction parseTime(timeString) {\n var token\n var hours\n var minutes\n\n // hh\n token = patterns.HH.exec(timeString)\n if (token) {\n hours = parseFloat(token[1].replace(',', '.'))\n\n if (!validateTime(hours)) {\n return NaN\n }\n\n return (hours % 24) * MILLISECONDS_IN_HOUR\n }\n\n // hh:mm or hhmm\n token = patterns.HHMM.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseFloat(token[2].replace(',', '.'))\n\n if (!validateTime(hours, minutes)) {\n return NaN\n }\n\n return (\n (hours % 24) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE\n )\n }\n\n // hh:mm:ss or hhmmss\n token = patterns.HHMMSS.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseInt(token[2], 10)\n var seconds = parseFloat(token[3].replace(',', '.'))\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN\n }\n\n return (\n (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE +\n seconds * 1000\n )\n }\n\n // Invalid ISO-formatted time\n return null\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n week = week || 0\n day = day || 0\n var date = new Date(0)\n date.setUTCFullYear(isoWeekYear, 0, 4)\n var fourthOfJanuaryDay = date.getUTCDay() || 7\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay\n date.setUTCDate(date.getUTCDate() + diff)\n return date\n}\n\n// Validation functions\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0)\n}\n\nfunction validateDate(year, month, date) {\n if (month < 0 || month > 11) {\n return false\n }\n\n if (date != null) {\n if (date < 1) {\n return false\n }\n\n var isLeapYear = isLeapYearIndex(year)\n if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {\n return false\n }\n if (!isLeapYear && date > DAYS_IN_MONTH[month]) {\n return false\n }\n }\n\n return true\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n if (dayOfYear < 1) {\n return false\n }\n\n var isLeapYear = isLeapYearIndex(year)\n if (isLeapYear && dayOfYear > 366) {\n return false\n }\n if (!isLeapYear && dayOfYear > 365) {\n return false\n }\n\n return true\n}\n\nfunction validateWeekDate(year, week, day) {\n if (week < 0 || week > 52) {\n return false\n }\n\n if (day != null && (day < 0 || day > 6)) {\n return false\n }\n\n return true\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours != null && (hours < 0 || hours >= 25)) {\n return false\n }\n\n if (minutes != null && (minutes < 0 || minutes >= 60)) {\n return false\n }\n\n if (seconds != null && (seconds < 0 || seconds >= 60)) {\n return false\n }\n\n return true\n}\n","import tzParseTimezone from '../_lib/tzParseTimezone'\nimport subMilliseconds from 'date-fns/esm/subMilliseconds'\nimport toDate from '../toDate'\n\n/**\n * @name utcToZonedTime\n * @category Time Zone Helpers\n * @summary Get a date/time representing local time in a given time zone from the UTC date\n *\n * @description\n * Returns a date instance with values representing the local time in the time zone\n * specified of the UTC time from the date provided. In other words, when the new date\n * is formatted it will show the equivalent hours in the target time zone regardless\n * of the current system time zone.\n *\n * @param {Date|String|Number} date - the date with the relevant UTC time\n * @param {String} timeZone - the time zone to get local time for, can be an offset or IANA time zone\n * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Date} the new date with the equivalent time in the time zone\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // In June 10am UTC is 6am in New York (-04:00)\n * const result = utcToZonedTime('2014-06-25T10:00:00.000Z', 'America/New_York')\n * //=> Jun 25 2014 06:00:00\n */\nexport default function utcToZonedTime(dirtyDate, timeZone, options) {\n var date = toDate(dirtyDate, options)\n\n // This date has the UTC time values of the input date at the system time zone\n var utcDate = new Date(\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds()\n )\n // We just need to apply the offset indicated by the time zone to this localized date\n var offsetMilliseconds = tzParseTimezone(timeZone, date)\n\n return offsetMilliseconds\n ? subMilliseconds(utcDate, offsetMilliseconds)\n : utcDate\n}\n","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","'use strict';\nconst escapeStringRegexp = require('escape-string-regexp');\n\nconst regexpCache = new Map();\n\nfunction sanitizeArray(input, inputName) {\n\tif (!Array.isArray(input)) {\n\t\tswitch (typeof input) {\n\t\t\tcase 'string':\n\t\t\t\tinput = [input];\n\t\t\t\tbreak;\n\t\t\tcase 'undefined':\n\t\t\t\tinput = [];\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new TypeError(`Expected '${inputName}' to be a string or an array, but got a type of '${typeof input}'`);\n\t\t}\n\t}\n\n\treturn input.filter(string => {\n\t\tif (typeof string !== 'string') {\n\t\t\tif (typeof string === 'undefined') {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthrow new TypeError(`Expected '${inputName}' to be an array of strings, but found a type of '${typeof string}' in the array`);\n\t\t}\n\n\t\treturn true;\n\t});\n}\n\nfunction makeRegexp(pattern, options) {\n\toptions = {\n\t\tcaseSensitive: false,\n\t\t...options\n\t};\n\n\tconst cacheKey = pattern + JSON.stringify(options);\n\n\tif (regexpCache.has(cacheKey)) {\n\t\treturn regexpCache.get(cacheKey);\n\t}\n\n\tconst negated = pattern[0] === '!';\n\n\tif (negated) {\n\t\tpattern = pattern.slice(1);\n\t}\n\n\tpattern = escapeStringRegexp(pattern).replace(/\\\\\\*/g, '[\\\\s\\\\S]*');\n\n\tconst regexp = new RegExp(`^${pattern}$`, options.caseSensitive ? '' : 'i');\n\tregexp.negated = negated;\n\tregexpCache.set(cacheKey, regexp);\n\n\treturn regexp;\n}\n\nmodule.exports = (inputs, patterns, options) => {\n\tinputs = sanitizeArray(inputs, 'inputs');\n\tpatterns = sanitizeArray(patterns, 'patterns');\n\n\tif (patterns.length === 0) {\n\t\treturn [];\n\t}\n\n\tconst isFirstPatternNegated = patterns[0][0] === '!';\n\n\tpatterns = patterns.map(pattern => makeRegexp(pattern, options));\n\n\tconst result = [];\n\n\tfor (const input of inputs) {\n\t\t// If first pattern is negated we include everything to match user expectation.\n\t\tlet matches = isFirstPatternNegated;\n\n\t\tfor (const pattern of patterns) {\n\t\t\tif (pattern.test(input)) {\n\t\t\t\tmatches = !pattern.negated;\n\t\t\t}\n\t\t}\n\n\t\tif (matches) {\n\t\t\tresult.push(input);\n\t\t}\n\t}\n\n\treturn result;\n};\n\nmodule.exports.isMatch = (inputs, patterns, options) => {\n\tinputs = sanitizeArray(inputs, 'inputs');\n\tpatterns = sanitizeArray(patterns, 'patterns');\n\n\tif (patterns.length === 0) {\n\t\treturn false;\n\t}\n\n\treturn inputs.some(input => {\n\t\treturn patterns.every(pattern => {\n\t\t\tconst regexp = makeRegexp(pattern, options);\n\t\t\tconst matches = regexp.test(input);\n\t\t\treturn regexp.negated ? !matches : matches;\n\t\t});\n\t});\n};\n","import e from\"void-elements\";var t=/\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g;function n(n){var r={type:\"tag\",name:\"\",voidElement:!1,attrs:{},children:[]},i=n.match(/<\\/?([^\\s]+?)[/\\s>]/);if(i&&(r.name=i[1],(e[i[1]]||\"/\"===n.charAt(n.length-2))&&(r.voidElement=!0),r.name.startsWith(\"!--\"))){var s=n.indexOf(\"--\\x3e\");return{type:\"comment\",comment:-1!==s?n.slice(4,s):\"\"}}for(var a=new RegExp(t),c=null;null!==(c=a.exec(n));)if(c[0].trim())if(c[1]){var o=c[1].trim(),l=[o,\"\"];o.indexOf(\"=\")>-1&&(l=o.split(\"=\")),r.attrs[l[0]]=l[1],a.lastIndex--}else c[2]&&(r.attrs[c[2]]=c[3].trim().substring(1,c[3].length-1));return r}var r=/<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g,i=/^\\s*$/,s=Object.create(null);function a(e,t){switch(t.type){case\"text\":return e+t.content;case\"tag\":return e+=\"<\"+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+'=\"'+e[n]+'\"');return t.length?\" \"+t.join(\" \"):\"\"}(t.attrs):\"\")+(t.voidElement?\"/>\":\">\"),t.voidElement?e:e+t.children.reduce(a,\"\")+\"</\"+t.name+\">\";case\"comment\":return e+\"\\x3c!--\"+t.comment+\"--\\x3e\"}}var c={parse:function(e,t){t||(t={}),t.components||(t.components=s);var a,c=[],o=[],l=-1,m=!1;if(0!==e.indexOf(\"<\")){var u=e.indexOf(\"<\");c.push({type:\"text\",content:-1===u?e:e.substring(0,u)})}return e.replace(r,function(r,s){if(m){if(r!==\"</\"+a.name+\">\")return;m=!1}var u,f=\"/\"!==r.charAt(1),h=r.startsWith(\"\\x3c!--\"),p=s+r.length,d=e.charAt(p);if(h){var v=n(r);return l<0?(c.push(v),c):((u=o[l]).children.push(v),c)}if(f&&(l++,\"tag\"===(a=n(r)).type&&t.components[a.name]&&(a.type=\"component\",m=!0),a.voidElement||m||!d||\"<\"===d||a.children.push({type:\"text\",content:e.slice(p,e.indexOf(\"<\",p))}),0===l&&c.push(a),(u=o[l-1])&&u.children.push(a),o[l]=a),(!f||a.voidElement)&&(l>-1&&(a.voidElement||a.name===r.slice(2,-1))&&(l--,a=-1===l?c:o[l]),!m&&\"<\"!==d&&d)){u=-1===l?c:o[l].children;var x=e.indexOf(\"<\",p),g=e.slice(p,-1===x?void 0:x);i.test(g)&&(g=\" \"),(x>-1&&l+u.length>=0||\" \"!==g)&&u.push({type:\"text\",content:g})}}),c},stringify:function(e){return e.reduce(function(e,t){return e+a(\"\",t)},\"\")}};export default c;\n//# sourceMappingURL=html-parse-stringify.module.js.map\n","export function warn() {\n if (console && console.warn) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[0] === 'string') args[0] = `react-i18next:: ${args[0]}`;\n console.warn(...args);\n }\n}\nconst alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn(...args);\n}\nconst loadedClb = (i18n, cb) => () => {\n if (i18n.isInitialized) {\n cb();\n } else {\n const initialized = () => {\n setTimeout(() => {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n i18n.on('initialized', initialized);\n }\n};\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n}\nexport function loadLanguages(i18n, lng, ns, cb) {\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n}\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const lng = i18n.languages[0];\n const fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n const lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = i18n.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\nexport function hasLoadedNamespace(ns, i18n) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n const isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: (i18nInstance, loadNotPending) => {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nconst htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\nconst unescapeHtmlEntity = m => htmlEntities[m];\nexport const unescape = text => text.replace(matchHtmlEntity, unescapeHtmlEntity);","import { unescape } from './unescape.js';\nlet defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape\n};\nexport function setDefaults() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = {\n ...defaultOptions,\n ...options\n };\n}\nexport function getDefaults() {\n return defaultOptions;\n}","let i18nInstance;\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}","import { Fragment, isValidElement, cloneElement, createElement, Children } from 'react';\nimport HTML from 'html-parse-stringify';\nimport { warn, warnOnce } from './utils.js';\nimport { getDefaults } from './defaults.js';\nimport { getI18n } from './i18nInstance.js';\nfunction hasChildren(node, checkLength) {\n if (!node) return false;\n const base = node.props ? node.props.children : node.children;\n if (checkLength) return base.length > 0;\n return !!base;\n}\nfunction getChildren(node) {\n if (!node) return [];\n const children = node.props ? node.props.children : node.children;\n return node.props && node.props.i18nIsDynamicList ? getAsArray(children) : children;\n}\nfunction hasValidReactChildren(children) {\n if (Object.prototype.toString.call(children) !== '[object Array]') return false;\n return children.every(child => isValidElement(child));\n}\nfunction getAsArray(data) {\n return Array.isArray(data) ? data : [data];\n}\nfunction mergeProps(source, target) {\n const newTarget = {\n ...target\n };\n newTarget.props = Object.assign(source.props, target.props);\n return newTarget;\n}\nexport function nodesToString(children, i18nOptions) {\n if (!children) return '';\n let stringNode = '';\n const childrenArray = getAsArray(children);\n const keepArray = i18nOptions.transSupportBasicHtmlNodes && i18nOptions.transKeepBasicHtmlNodesFor ? i18nOptions.transKeepBasicHtmlNodesFor : [];\n childrenArray.forEach((child, childIndex) => {\n if (typeof child === 'string') {\n stringNode += `${child}`;\n } else if (isValidElement(child)) {\n const childPropsCount = Object.keys(child.props).length;\n const shouldKeepChild = keepArray.indexOf(child.type) > -1;\n const childChildren = child.props.children;\n if (!childChildren && shouldKeepChild && childPropsCount === 0) {\n stringNode += `<${child.type}/>`;\n } else if (!childChildren && (!shouldKeepChild || childPropsCount !== 0)) {\n stringNode += `<${childIndex}></${childIndex}>`;\n } else if (child.props.i18nIsDynamicList) {\n stringNode += `<${childIndex}></${childIndex}>`;\n } else if (shouldKeepChild && childPropsCount === 1 && typeof childChildren === 'string') {\n stringNode += `<${child.type}>${childChildren}</${child.type}>`;\n } else {\n const content = nodesToString(childChildren, i18nOptions);\n stringNode += `<${childIndex}>${content}</${childIndex}>`;\n }\n } else if (child === null) {\n warn(`Trans: the passed in value is invalid - seems you passed in a null child.`);\n } else if (typeof child === 'object') {\n const {\n format,\n ...clone\n } = child;\n const keys = Object.keys(clone);\n if (keys.length === 1) {\n const value = format ? `${keys[0]}, ${format}` : keys[0];\n stringNode += `{{${value}}}`;\n } else {\n warn(`react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.`, child);\n }\n } else {\n warn(`Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.`, child);\n }\n });\n return stringNode;\n}\nfunction renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {\n if (targetString === '') return [];\n const keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n const emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.map(keep => `<${keep}`).join('|')).test(targetString);\n if (!children && !emptyChildrenButNeedsHandling && !shouldUnescape) return [targetString];\n const data = {};\n function getData(childs) {\n const childrenArray = getAsArray(childs);\n childrenArray.forEach(child => {\n if (typeof child === 'string') return;\n if (hasChildren(child)) getData(getChildren(child));else if (typeof child === 'object' && !isValidElement(child)) Object.assign(data, child);\n });\n }\n getData(children);\n const ast = HTML.parse(`<0>${targetString}</0>`);\n const opts = {\n ...data,\n ...combinedTOpts\n };\n function renderInner(child, node, rootReactNode) {\n const childs = getChildren(child);\n const mappedChildren = mapAST(childs, node.children, rootReactNode);\n return hasValidReactChildren(childs) && mappedChildren.length === 0 || child.props && child.props.i18nIsDynamicList ? childs : mappedChildren;\n }\n function pushTranslatedJSX(child, inner, mem, i, isVoid) {\n if (child.dummy) {\n child.children = inner;\n mem.push(cloneElement(child, {\n key: i\n }, isVoid ? undefined : inner));\n } else {\n mem.push(...Children.map([child], c => {\n const props = {\n ...c.props\n };\n delete props.i18nIsDynamicList;\n return createElement(c.type, {\n ...props,\n key: i,\n ref: c.ref\n }, isVoid ? null : inner);\n }));\n }\n }\n function mapAST(reactNode, astNode, rootReactNode) {\n const reactNodes = getAsArray(reactNode);\n const astNodes = getAsArray(astNode);\n return astNodes.reduce((mem, node, i) => {\n const translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);\n if (node.type === 'tag') {\n let tmp = reactNodes[parseInt(node.name, 10)];\n if (rootReactNode.length === 1 && !tmp) tmp = rootReactNode[0][node.name];\n if (!tmp) tmp = {};\n const child = Object.keys(node.attrs).length !== 0 ? mergeProps({\n props: node.attrs\n }, tmp) : tmp;\n const isElement = isValidElement(child);\n const isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;\n const isEmptyTransWithHTML = emptyChildrenButNeedsHandling && typeof child === 'object' && child.dummy && !isElement;\n const isKnownComponent = typeof children === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);\n if (typeof child === 'string') {\n const value = i18n.services.interpolator.interpolate(child, opts, i18n.language);\n mem.push(value);\n } else if (hasChildren(child) || isValidTranslationWithChildren) {\n const inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (isEmptyTransWithHTML) {\n const inner = mapAST(reactNodes, node.children, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (Number.isNaN(parseFloat(node.name))) {\n if (isKnownComponent) {\n const inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i, node.voidElement);\n } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {\n if (node.voidElement) {\n mem.push(createElement(node.name, {\n key: `${node.name}-${i}`\n }));\n } else {\n const inner = mapAST(reactNodes, node.children, rootReactNode);\n mem.push(createElement(node.name, {\n key: `${node.name}-${i}`\n }, inner));\n }\n } else if (node.voidElement) {\n mem.push(`<${node.name} />`);\n } else {\n const inner = mapAST(reactNodes, node.children, rootReactNode);\n mem.push(`<${node.name}>${inner}</${node.name}>`);\n }\n } else if (typeof child === 'object' && !isElement) {\n const content = node.children[0] ? translationContent : null;\n if (content) mem.push(content);\n } else {\n pushTranslatedJSX(child, translationContent, mem, i, node.children.length !== 1 || !translationContent);\n }\n } else if (node.type === 'text') {\n const wrapTextNodes = i18nOptions.transWrapTextNodes;\n const content = shouldUnescape ? i18nOptions.unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);\n if (wrapTextNodes) {\n mem.push(createElement(wrapTextNodes, {\n key: `${node.name}-${i}`\n }, content));\n } else {\n mem.push(content);\n }\n }\n return mem;\n }, []);\n }\n const result = mapAST([{\n dummy: true,\n children: children || []\n }], ast, getAsArray(children || []));\n return getChildren(result[0]);\n}\nexport function Trans(_ref) {\n let {\n children,\n count,\n parent,\n i18nKey,\n context,\n tOptions = {},\n values,\n defaults,\n components,\n ns,\n i18n: i18nFromProps,\n t: tFromProps,\n shouldUnescape,\n ...additionalProps\n } = _ref;\n const i18n = i18nFromProps || getI18n();\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using i18nextReactModule');\n return children;\n }\n const t = tFromProps || i18n.t.bind(i18n) || (k => k);\n if (context) tOptions.context = context;\n const reactI18nextOptions = {\n ...getDefaults(),\n ...(i18n.options && i18n.options.react)\n };\n let namespaces = ns || t.ns || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n const nodeAsString = nodesToString(children, reactI18nextOptions);\n const defaultValue = defaults || nodeAsString || reactI18nextOptions.transEmptyNodeValue || i18nKey;\n const {\n hashTransKey\n } = reactI18nextOptions;\n const key = i18nKey || (hashTransKey ? hashTransKey(nodeAsString || defaultValue) : nodeAsString || defaultValue);\n if (i18n.options && i18n.options.interpolation && i18n.options.interpolation.defaultVariables) {\n values = values && Object.keys(values).length > 0 ? {\n ...values,\n ...i18n.options.interpolation.defaultVariables\n } : {\n ...i18n.options.interpolation.defaultVariables\n };\n }\n const interpolationOverride = values || count !== undefined ? tOptions.interpolation : {\n interpolation: {\n ...tOptions.interpolation,\n prefix: '#$?',\n suffix: '?$#'\n }\n };\n const combinedTOpts = {\n ...tOptions,\n count,\n ...values,\n ...interpolationOverride,\n defaultValue,\n ns: namespaces\n };\n const translation = key ? t(key, combinedTOpts) : defaultValue;\n if (components) {\n Object.keys(components).forEach(c => {\n const comp = components[c];\n if (typeof comp.type === 'function' || !comp.props || !comp.props.children || translation.indexOf(`${c}/>`) < 0 && translation.indexOf(`${c} />`) < 0) return;\n function Componentized() {\n return createElement(Fragment, null, comp);\n }\n components[c] = createElement(Componentized);\n });\n }\n const content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);\n const useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;\n return useAsParent ? createElement(useAsParent, additionalProps, content) : content;\n}","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport const initReactI18next = {\n type: '3rdParty',\n init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","import { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport const I18nContext = createContext();\nexport class ReportNamespaces {\n constructor() {\n this.usedNamespaces = {};\n }\n addUsedNamespaces(namespaces) {\n namespaces.forEach(ns => {\n if (!this.usedNamespaces[ns]) this.usedNamespaces[ns] = true;\n });\n }\n getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n}\nexport function composeInitialProps(ForComponent) {\n return ctx => new Promise(resolve => {\n const i18nInitialProps = getInitialProps();\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(componentsInitialProps => {\n resolve({\n ...componentsInitialProps,\n ...i18nInitialProps\n });\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n}\nexport function getInitialProps() {\n const i18n = getI18n();\n const namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n const ret = {};\n const initialI18nStore = {};\n i18n.languages.forEach(l => {\n initialI18nStore[l] = {};\n namespaces.forEach(ns => {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","import { useContext } from 'react';\nimport { nodesToString, Trans as TransWithoutContext } from './TransWithoutContext.js';\nimport { getI18n, I18nContext } from './context.js';\nexport { nodesToString };\nexport function Trans(_ref) {\n let {\n children,\n count,\n parent,\n i18nKey,\n context,\n tOptions = {},\n values,\n defaults,\n components,\n ns,\n i18n: i18nFromProps,\n t: tFromProps,\n shouldUnescape,\n ...additionalProps\n } = _ref;\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n const t = tFromProps || i18n && i18n.t.bind(i18n);\n return TransWithoutContext({\n children,\n count,\n parent,\n i18nKey,\n context,\n tOptions,\n values,\n defaults,\n components,\n ns: ns || t && t.ns || defaultNSFromContext || i18n && i18n.options && i18n.options.defaultNS,\n i18n,\n t: tFromProps,\n shouldUnescape,\n ...additionalProps\n });\n}","import { useState, useEffect, useContext, useRef, useCallback } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace } from './utils.js';\nconst usePrevious = (value, ignore) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\nfunction alwaysNewT(i18n, language, namespace, keyPrefix) {\n return i18n.getFixedT(language, namespace, keyPrefix);\n}\nfunction useMemoizedT(i18n, language, namespace, keyPrefix) {\n return useCallback(alwaysNewT(i18n, language, namespace, keyPrefix), [i18n, language, namespace, keyPrefix]);\n}\nexport function useTranslation(ns) {\n let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n const notReadyT = (k, optsOrDefaultValue) => {\n if (typeof optsOrDefaultValue === 'string') return optsOrDefaultValue;\n if (optsOrDefaultValue && typeof optsOrDefaultValue === 'object' && typeof optsOrDefaultValue.defaultValue === 'string') return optsOrDefaultValue.defaultValue;\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n const retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n const i18nOptions = {\n ...getDefaults(),\n ...i18n.options.react,\n ...props\n };\n const {\n useSuspense,\n keyPrefix\n } = i18nOptions;\n let namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n const ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(n => hasLoadedNamespace(n, i18n, i18nOptions));\n const memoGetT = useMemoizedT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const getT = () => memoGetT;\n const getNewT = () => alwaysNewT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const [t, setT] = useState(getT);\n let joinedNS = namespaces.join();\n if (props.lng) joinedNS = `${props.lng}${joinedNS}`;\n const previousJoinedNS = usePrevious(joinedNS);\n const isMounted = useRef(true);\n useEffect(() => {\n const {\n bindI18n,\n bindI18nStore\n } = i18nOptions;\n isMounted.current = true;\n if (!ready && !useSuspense) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n } else {\n loadNamespaces(i18n, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n }\n }\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getNewT);\n }\n function boundReset() {\n if (isMounted.current) setT(getNewT);\n }\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return () => {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(e => i18n.off(e, boundReset));\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(e => i18n.store.off(e, boundReset));\n };\n }, [i18n, joinedNS]);\n const isInitial = useRef(true);\n useEffect(() => {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n isInitial.current = false;\n }, [i18n, keyPrefix]);\n const ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(resolve => {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => resolve());\n } else {\n loadNamespaces(i18n, namespaces, () => resolve());\n }\n });\n}","import { createElement, forwardRef as forwardRefReact } from 'react';\nimport { useTranslation } from './useTranslation.js';\nimport { getDisplayName } from './utils.js';\nexport function withTranslation(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function Extend(WrappedComponent) {\n function I18nextWithTranslation(_ref) {\n let {\n forwardedRef,\n ...rest\n } = _ref;\n const [t, i18n, ready] = useTranslation(ns, {\n ...rest,\n keyPrefix: options.keyPrefix\n });\n const passDownProps = {\n ...rest,\n t,\n i18n,\n tReady: ready\n };\n if (options.withRef && forwardedRef) {\n passDownProps.ref = forwardedRef;\n } else if (!options.withRef && forwardedRef) {\n passDownProps.forwardedRef = forwardedRef;\n }\n return createElement(WrappedComponent, passDownProps);\n }\n I18nextWithTranslation.displayName = `withI18nextTranslation(${getDisplayName(WrappedComponent)})`;\n I18nextWithTranslation.WrappedComponent = WrappedComponent;\n const forwardRef = (props, ref) => createElement(I18nextWithTranslation, Object.assign({}, props, {\n forwardedRef: ref\n }));\n return options.withRef ? forwardRefReact(forwardRef) : I18nextWithTranslation;\n };\n}","import { useTranslation } from './useTranslation.js';\nexport function Translation(props) {\n const {\n ns,\n children,\n ...options\n } = props;\n const [t, i18n, ready] = useTranslation(ns, options);\n return children(t, {\n i18n,\n lng: i18n.language\n }, ready);\n}","import { createElement, useMemo } from 'react';\nimport { I18nContext } from './context.js';\nexport function I18nextProvider(_ref) {\n let {\n i18n,\n defaultNS,\n children\n } = _ref;\n const value = useMemo(() => ({\n i18n,\n defaultNS\n }), [i18n, defaultNS]);\n return createElement(I18nContext.Provider, {\n value\n }, children);\n}","import { useContext } from 'react';\nimport { getI18n, I18nContext } from './context.js';\nexport function useSSR(initialI18nStore, initialLanguage) {\n let props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n.options && i18n.options.isClone) return;\n if (initialI18nStore && !i18n.initializedStoreOnce) {\n i18n.services.resourceStore.data = initialI18nStore;\n i18n.options.ns = Object.values(initialI18nStore).reduce((mem, lngResources) => {\n Object.keys(lngResources).forEach(ns => {\n if (mem.indexOf(ns) < 0) mem.push(ns);\n });\n return mem;\n }, i18n.options.ns);\n i18n.initializedStoreOnce = true;\n i18n.isInitialized = true;\n }\n if (initialLanguage && !i18n.initializedLanguageOnce) {\n i18n.changeLanguage(initialLanguage);\n i18n.initializedLanguageOnce = true;\n }\n}","import { createElement } from 'react';\nimport { useSSR } from './useSSR.js';\nimport { composeInitialProps } from './context.js';\nimport { getDisplayName } from './utils.js';\nexport function withSSR() {\n return function Extend(WrappedComponent) {\n function I18nextWithSSR(_ref) {\n let {\n initialI18nStore,\n initialLanguage,\n ...rest\n } = _ref;\n useSSR(initialI18nStore, initialLanguage);\n return createElement(WrappedComponent, {\n ...rest\n });\n }\n I18nextWithSSR.getInitialProps = composeInitialProps(WrappedComponent);\n I18nextWithSSR.displayName = `withI18nextSSR(${getDisplayName(WrappedComponent)})`;\n I18nextWithSSR.WrappedComponent = WrappedComponent;\n return I18nextWithSSR;\n };\n}","export { Trans } from './Trans.js';\nexport { Trans as TransWithoutContext } from './TransWithoutContext.js';\nexport { useTranslation } from './useTranslation.js';\nexport { withTranslation } from './withTranslation.js';\nexport { Translation } from './Translation.js';\nexport { I18nextProvider } from './I18nextProvider.js';\nexport { withSSR } from './withSSR.js';\nexport { useSSR } from './useSSR.js';\nexport { initReactI18next } from './initReactI18next.js';\nexport { setDefaults, getDefaults } from './defaults.js';\nexport { setI18n, getI18n } from './i18nInstance.js';\nexport { I18nContext, composeInitialProps, getInitialProps } from './context.js';\nexport const date = () => '';\nexport const time = () => '';\nexport const number = () => '';\nexport const select = () => '';\nexport const plural = () => '';\nexport const selectOrdinal = () => '';","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 };","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 };","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 };","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 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 };","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 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 };","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 };","var DEFAULT_LOCALE = 'en';\nvar LOCALES = ['en'];\nvar DEFAULT_NAMESPACE = 'common';\nvar LOCALE_PATH = './public/locales';\nvar LOCALE_STRUCTURE = '{{lng}}/{{ns}}';\nvar LOCALE_EXTENSION = 'json';\nexport var defaultConfig = {\n defaultNS: DEFAULT_NAMESPACE,\n errorStackTraceLimit: 0,\n i18n: {\n defaultLocale: DEFAULT_LOCALE,\n locales: LOCALES\n },\n get initImmediate() {\n return process.browser && typeof window !== 'undefined';\n },\n interpolation: {\n escapeValue: false\n },\n load: 'currentOnly',\n localeExtension: LOCALE_EXTENSION,\n localePath: LOCALE_PATH,\n localeStructure: LOCALE_STRUCTURE,\n react: {\n useSuspense: false\n },\n reloadOnPrerender: false,\n serializeConfig: true,\n use: []\n};","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport { useLayoutEffect, useEffect } from 'react';\nexport var getFallbackForLng = function getFallbackForLng(lng, fallbackLng) {\n if (typeof fallbackLng === 'string') {\n return [fallbackLng];\n }\n if (Array.isArray(fallbackLng)) {\n return fallbackLng;\n }\n if (_typeof(fallbackLng) === 'object') {\n var fallbackList = fallbackLng[lng];\n var fallbackDefault = fallbackLng[\"default\"];\n return [].concat(_toConsumableArray(fallbackList !== null && fallbackList !== void 0 ? fallbackList : []), _toConsumableArray(fallbackDefault !== null && fallbackDefault !== void 0 ? fallbackDefault : []));\n }\n if (typeof fallbackLng === 'function') {\n return getFallbackForLng(lng, fallbackLng(lng));\n }\n return [];\n};\nexport var unique = function unique(list) {\n return Array.from(new Set(list));\n};\n\n/**\n * This hook behaves like `useLayoutEffect` on the client,\n * and `useEffect` on the server(no effect).\n *\n * Since using `useLayoutEffect` on the server cause warning messages in nextjs,\n * this hook is workaround for that.\n */\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"i18n\"],\n _excluded2 = [\"i18n\"];\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { defaultConfig } from './defaultConfig';\nimport { getFallbackForLng, unique } from '../utils';\nvar deepMergeObjects = ['backend', 'detection'];\nexport var createConfig = function createConfig(userConfig) {\n var _userConfig$interpola, _userConfig$interpola2, _userConfig$use;\n if (typeof (userConfig === null || userConfig === void 0 ? void 0 : userConfig.lng) !== 'string') {\n throw new Error('config.lng was not passed into createConfig');\n }\n\n //\n // Initial merge of default and user-provided config\n //\n var userI18n = userConfig.i18n,\n userConfigStripped = _objectWithoutProperties(userConfig, _excluded);\n var defaultI18n = defaultConfig.i18n,\n defaultConfigStripped = _objectWithoutProperties(defaultConfig, _excluded2);\n var combinedConfig = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, defaultConfigStripped), userConfigStripped), defaultI18n), userI18n);\n var defaultNS = combinedConfig.defaultNS,\n lng = combinedConfig.lng,\n localeExtension = combinedConfig.localeExtension,\n localePath = combinedConfig.localePath,\n nonExplicitSupportedLngs = combinedConfig.nonExplicitSupportedLngs;\n var locales = combinedConfig.locales.filter(function (l) {\n return l !== 'default';\n });\n\n /**\n * Skips translation file resolution while in cimode\n * https://github.com/i18next/next-i18next/pull/851#discussion_r503113620\n */\n if (lng === 'cimode') {\n return combinedConfig;\n }\n if (typeof combinedConfig.fallbackLng === 'undefined') {\n combinedConfig.fallbackLng = combinedConfig.defaultLocale;\n if (combinedConfig.fallbackLng === 'default') {\n var _locales = _slicedToArray(locales, 1);\n combinedConfig.fallbackLng = _locales[0];\n }\n }\n var userPrefix = userConfig === null || userConfig === void 0 || (_userConfig$interpola = userConfig.interpolation) === null || _userConfig$interpola === void 0 ? void 0 : _userConfig$interpola.prefix;\n var userSuffix = userConfig === null || userConfig === void 0 || (_userConfig$interpola2 = userConfig.interpolation) === null || _userConfig$interpola2 === void 0 ? void 0 : _userConfig$interpola2.suffix;\n var prefix = userPrefix !== null && userPrefix !== void 0 ? userPrefix : '{{';\n var suffix = userSuffix !== null && userSuffix !== void 0 ? userSuffix : '}}';\n if (typeof (userConfig === null || userConfig === void 0 ? void 0 : userConfig.localeStructure) !== 'string' && (userPrefix || userSuffix)) {\n combinedConfig.localeStructure = \"\".concat(prefix, \"lng\").concat(suffix, \"/\").concat(prefix, \"ns\").concat(suffix);\n }\n var fallbackLng = combinedConfig.fallbackLng,\n localeStructure = combinedConfig.localeStructure;\n if (nonExplicitSupportedLngs) {\n var createFallbackObject = function createFallbackObject(acc, l) {\n var _l$split = l.split('-'),\n _l$split2 = _slicedToArray(_l$split, 1),\n locale = _l$split2[0];\n acc[l] = [locale];\n return acc;\n };\n if (typeof fallbackLng === 'string') {\n combinedConfig.fallbackLng = combinedConfig.locales.filter(function (l) {\n return l.includes('-');\n }).reduce(createFallbackObject, {\n \"default\": [fallbackLng]\n });\n } else if (Array.isArray(fallbackLng)) {\n combinedConfig.fallbackLng = combinedConfig.locales.filter(function (l) {\n return l.includes('-');\n }).reduce(createFallbackObject, {\n \"default\": fallbackLng\n });\n } else if (_typeof(fallbackLng) === 'object') {\n combinedConfig.fallbackLng = Object.entries(combinedConfig.fallbackLng).reduce(function (acc, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n l = _ref2[0],\n f = _ref2[1];\n acc[l] = l.includes('-') ? unique([l.split('-')[0]].concat(_toConsumableArray(f))) : f;\n return acc;\n }, fallbackLng);\n } else if (typeof fallbackLng === 'function') {\n throw new Error('If nonExplicitSupportedLngs is true, no functions are allowed for fallbackLng');\n }\n }\n var hasCustomBackend = userConfig === null || userConfig === void 0 || (_userConfig$use = userConfig.use) === null || _userConfig$use === void 0 ? void 0 : _userConfig$use.some(function (b) {\n return b.type === 'backend';\n });\n if (!process.browser && typeof window === 'undefined') {\n combinedConfig.preload = locales;\n if (!hasCustomBackend) {\n var fs = require('fs');\n var path = require('path');\n\n //\n // Validate defaultNS\n // https://github.com/i18next/next-i18next/issues/358\n //\n if (typeof defaultNS === 'string' && typeof lng !== 'undefined') {\n if (typeof localePath === 'string') {\n var defaultLocaleStructure = localeStructure.replace(\"\".concat(prefix, \"lng\").concat(suffix), lng).replace(\"\".concat(prefix, \"ns\").concat(suffix), defaultNS);\n var defaultFile = \"/\".concat(defaultLocaleStructure, \".\").concat(localeExtension);\n var defaultNSPath = path.join(localePath, defaultFile);\n var defaultNSExists = fs.existsSync(defaultNSPath);\n var fallback = getFallbackForLng(lng, combinedConfig.fallbackLng);\n var defaultFallbackNSExists = fallback.some(function (f) {\n var fallbackFile = defaultFile.replace(lng, f);\n var defaultNSPath = path.join(localePath, fallbackFile);\n return fs.existsSync(defaultNSPath);\n });\n if (!defaultNSExists && !defaultFallbackNSExists && process.env.NODE_ENV !== 'production') {\n throw new Error(\"Default namespace not found at \".concat(defaultNSPath));\n }\n } else if (typeof localePath === 'function') {\n var _defaultNSPath = localePath(lng, defaultNS, false);\n var _defaultNSExists = fs.existsSync(_defaultNSPath);\n var _fallback = getFallbackForLng(lng, combinedConfig.fallbackLng);\n var _defaultFallbackNSExists = _fallback.some(function (f) {\n var defaultNSPath = localePath(f, defaultNS, false);\n return fs.existsSync(defaultNSPath);\n });\n if (!_defaultNSExists && !_defaultFallbackNSExists && process.env.NODE_ENV !== 'production') {\n throw new Error(\"Default namespace not found at \".concat(_defaultNSPath));\n }\n }\n }\n\n //\n // Set server side backend\n //\n if (typeof localePath === 'string') {\n combinedConfig.backend = {\n addPath: path.resolve(process.cwd(), \"\".concat(localePath, \"/\").concat(localeStructure, \".missing.\").concat(localeExtension)),\n loadPath: path.resolve(process.cwd(), \"\".concat(localePath, \"/\").concat(localeStructure, \".\").concat(localeExtension))\n };\n } else if (typeof localePath === 'function') {\n combinedConfig.backend = {\n addPath: function addPath(locale, namespace) {\n return localePath(locale, namespace, true);\n },\n loadPath: function loadPath(locale, namespace) {\n return localePath(locale, namespace, false);\n }\n };\n } else if (localePath) {\n throw new Error(\"Unsupported localePath type: \".concat(_typeof(localePath)));\n }\n\n //\n // Set server side preload (namespaces)\n //\n if (!combinedConfig.ns && typeof lng !== 'undefined') {\n if (typeof localePath === 'function') {\n throw new Error('Must provide all namespaces in ns option if using a function as localePath');\n }\n var getNamespaces = function getNamespaces(locales) {\n var getLocaleNamespaces = function getLocaleNamespaces(p) {\n var ret = [];\n if (!fs.existsSync(p)) return ret;\n fs.readdirSync(p).map(function (file) {\n var joinedP = path.join(p, file);\n if (fs.statSync(joinedP).isDirectory()) {\n var subRet = getLocaleNamespaces(joinedP).map(function (n) {\n return \"\".concat(file, \"/\").concat(n);\n });\n ret = ret.concat(subRet);\n return;\n }\n ret.push(file.replace(\".\".concat(localeExtension), ''));\n });\n return ret;\n };\n var namespacesByLocale;\n var r = combinedConfig.resources;\n if (!localePath && r) {\n namespacesByLocale = locales.map(function (locale) {\n return Object.keys(r[locale]);\n });\n } else {\n namespacesByLocale = locales.map(function (locale) {\n return getLocaleNamespaces(path.resolve(process.cwd(), \"\".concat(localePath, \"/\").concat(locale)));\n });\n }\n var allNamespaces = [];\n var _iterator = _createForOfIteratorHelper(namespacesByLocale),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var localNamespaces = _step.value;\n allNamespaces.push.apply(allNamespaces, _toConsumableArray(localNamespaces));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return unique(allNamespaces);\n };\n if (localeStructure.indexOf(\"\".concat(prefix, \"lng\").concat(suffix)) > localeStructure.indexOf(\"\".concat(prefix, \"ns\").concat(suffix))) {\n throw new Error('Must provide all namespaces in ns option if using a localeStructure that is not namespace-listable like lng/ns');\n }\n combinedConfig.ns = getNamespaces(unique([lng].concat(_toConsumableArray(getFallbackForLng(lng, combinedConfig.fallbackLng)))));\n }\n }\n } else {\n //\n // Set client side backend, if there is no custom backend\n //\n if (!hasCustomBackend) {\n if (typeof localePath === 'string') {\n combinedConfig.backend = {\n addPath: \"\".concat(localePath, \"/\").concat(localeStructure, \".missing.\").concat(localeExtension),\n loadPath: \"\".concat(localePath, \"/\").concat(localeStructure, \".\").concat(localeExtension)\n };\n } else if (typeof localePath === 'function') {\n combinedConfig.backend = {\n addPath: function addPath(locale, namespace) {\n return localePath(locale, namespace, true);\n },\n loadPath: function loadPath(locale, namespace) {\n return localePath(locale, namespace, false);\n }\n };\n }\n }\n if (typeof combinedConfig.ns !== 'string' && !Array.isArray(combinedConfig.ns)) {\n combinedConfig.ns = [defaultNS];\n }\n }\n\n //\n // Deep merge with overwrite - goes last\n //\n deepMergeObjects.forEach(function (obj) {\n if (userConfig[obj]) {\n combinedConfig[obj] = _objectSpread(_objectSpread({}, combinedConfig[obj]), userConfig[obj]);\n }\n });\n return combinedConfig;\n};","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\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 if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nconst lastOfPathSeparatorRegExp = /###/g;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code === 'dev' ? 'en' : code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (!opt) return;\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\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 _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0);\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import i18n from 'i18next';\nexport default (function (config) {\n if (config.ns === undefined) config.ns = [];\n var instance = i18n.createInstance(config);\n var initPromise;\n if (!instance.isInitialized) {\n var _config$use;\n config === null || config === void 0 || (_config$use = config.use) === null || _config$use === void 0 || _config$use.forEach(function (x) {\n return instance.use(x);\n });\n if (typeof config.onPreInitI18next === 'function') {\n config.onPreInitI18next(instance);\n }\n initPromise = instance.init(config);\n } else {\n initPromise = Promise.resolve(i18n.t);\n }\n return {\n i18n: instance,\n initPromise: initPromise\n };\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar __jsx = React.createElement;\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport React, { useMemo, useRef } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { I18nextProvider } from 'react-i18next';\nimport { createConfig } from './config/createConfig';\nimport createClient from './createClient';\nimport { useIsomorphicLayoutEffect } from './utils';\nexport { Trans, useTranslation, withTranslation } from 'react-i18next';\nexport var globalI18n = null;\nvar addResourcesToI18next = function addResourcesToI18next(instance, resources) {\n if (resources && instance.isInitialized) {\n for (var _i = 0, _Object$keys = Object.keys(resources); _i < _Object$keys.length; _i++) {\n var locale = _Object$keys[_i];\n for (var _i2 = 0, _Object$keys2 = Object.keys(resources[locale]); _i2 < _Object$keys2.length; _i2++) {\n var _instance$store;\n var ns = _Object$keys2[_i2];\n if (!(instance !== null && instance !== void 0 && (_instance$store = instance.store) !== null && _instance$store !== void 0 && _instance$store.data) || !instance.store.data[locale] || !instance.store.data[locale][ns]) {\n instance.addResourceBundle(locale, ns, resources[locale][ns], true, true);\n }\n }\n }\n }\n};\nexport var appWithTranslation = function appWithTranslation(WrappedComponent) {\n var configOverride = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var AppWithTranslation = function AppWithTranslation(props) {\n var _nextI18Next$initialL, _props$router;\n var _ref = props.pageProps || {},\n _nextI18Next = _ref._nextI18Next; // pageProps may be undefined on strange setups, i.e. https://github.com/i18next/next-i18next/issues/2109\n var locale = (_nextI18Next$initialL = _nextI18Next === null || _nextI18Next === void 0 ? void 0 : _nextI18Next.initialLocale) !== null && _nextI18Next$initialL !== void 0 ? _nextI18Next$initialL : props === null || props === void 0 || (_props$router = props.router) === null || _props$router === void 0 ? void 0 : _props$router.locale;\n var ns = _nextI18Next === null || _nextI18Next === void 0 ? void 0 : _nextI18Next.ns;\n var instanceRef = useRef(null);\n\n /**\n * Memoize i18n instance and reuse it rather than creating new instance.\n * When the locale or resources are changed after instance was created,\n * we will update the instance by calling addResourceBundle method on it.\n */\n var i18n = useMemo(function () {\n var _userConfig$i18n;\n if (!_nextI18Next && !configOverride) return null;\n var userConfig = configOverride !== null && configOverride !== void 0 ? configOverride : _nextI18Next === null || _nextI18Next === void 0 ? void 0 : _nextI18Next.userConfig;\n if (!userConfig) {\n throw new Error('appWithTranslation was called without a next-i18next config');\n }\n if (!(userConfig !== null && userConfig !== void 0 && userConfig.i18n)) {\n throw new Error('appWithTranslation was called without config.i18n');\n }\n if (!(userConfig !== null && userConfig !== void 0 && (_userConfig$i18n = userConfig.i18n) !== null && _userConfig$i18n !== void 0 && _userConfig$i18n.defaultLocale)) {\n throw new Error('config.i18n does not include a defaultLocale property');\n }\n var _ref2 = _nextI18Next || {},\n initialI18nStore = _ref2.initialI18nStore;\n var resources = configOverride !== null && configOverride !== void 0 && configOverride.resources ? configOverride.resources : initialI18nStore;\n if (!locale) locale = userConfig.i18n.defaultLocale;\n var instance = instanceRef.current;\n if (instance) {\n addResourcesToI18next(instance, resources);\n } else {\n instance = createClient(_objectSpread(_objectSpread({}, createConfig(_objectSpread(_objectSpread({}, userConfig), {}, {\n lng: locale\n }))), {}, {\n lng: locale,\n ns: ns,\n resources: resources\n })).i18n;\n addResourcesToI18next(instance, resources);\n globalI18n = instance;\n instanceRef.current = instance;\n }\n return instance;\n }, [_nextI18Next, locale, ns]);\n\n /**\n * Since calling changeLanguage method on existing i18n instance cause state update in react,\n * we need to call the method in `useLayoutEffect` to prevent state update in render phase.\n */\n useIsomorphicLayoutEffect(function () {\n if (!i18n || !locale) return;\n i18n.changeLanguage(locale);\n }, [i18n, locale]);\n return i18n !== null ? __jsx(I18nextProvider, {\n i18n: i18n\n }, __jsx(WrappedComponent, props)) : __jsx(WrappedComponent, _extends({\n key: locale\n }, props));\n };\n return hoistNonReactStatics(AppWithTranslation, WrappedComponent);\n};","export { I18nContext, Trans, Translation, useTranslation, withTranslation } from 'react-i18next';\nexport { appWithTranslation, globalI18n as i18n } from './appWithTranslation';","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_app\",\n function () {\n return require(\"private-next-pages/_app.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_app\"])\n });\n }\n ","import '../styles/global.css';\nimport { ReactQueryDevtools } from '@tanstack/react-query-devtools';\nimport { appWithTranslation } from '@dx-ui/framework-i18n';\nimport { QueryProvider } from '@dx-ui/framework-react-query';\nimport { APP_NAME, queryClientProps } from '../utils/env-vars';\nimport type { AppProps as NextAppProps } from 'next/app';\nimport { useManualPageLogger } from '@dx-ui/framework-logger';\nimport { useRouter } from 'next/router';\nimport type { CommonProps } from '../utils/serverSideProps';\n\ntype AppProps = NextAppProps<CommonProps>;\n\nfunction App({ Component, pageProps, router }: AppProps) {\n useManualPageLogger(router.pathname, APP_NAME);\n const routerLocale = useRouter().locale || router.locale || 'en';\n\n return (\n <QueryProvider\n {...queryClientProps}\n appName={APP_NAME}\n dehydratedQueryState={pageProps.dehydratedQueryState}\n oneLinkConfig={pageProps.oneLinkConfig}\n routerLocale={routerLocale}\n >\n <Component {...pageProps} />\n <ReactQueryDevtools initialIsOpen={false} />\n </QueryProvider>\n );\n}\n\nexport default appWithTranslation<AppProps>(App);\n","import { allEnv } from '@dx-ui/framework-env';\n\nexport function getQueryProviderProps() {\n const env = allEnv();\n return {\n appId: env.DX_AUTH_API_CUSTOMER_APP_ID,\n incompleteLoggingEnabled: env.RUMCS_CAPTURE_CUSTOM_ERRORS === 'enabled',\n gqlEndpoints: {\n browser: env.DX_GRAPHQL_CLIENT_URI,\n server: process.env.DX_GRAPHQL_SERVER_URI as string,\n },\n authEndpoints: {\n browser: env.DX_AUTH_API_CLIENT_URI,\n server: process.env.DX_AUTH_API_SERVER_URI as string,\n },\n };\n}\n","export * from './lib/react-query-env-vars';\n","import { env } from '@dx-ui/framework-env';\nimport { getQueryProviderProps } from '@dx-ui/framework-react-query-env-vars';\nimport type { FlatNamespace } from 'i18next';\n\nexport const queryClientProps = getQueryProviderProps();\nexport const ASSETS_URI = env('ASSETS_URI');\nexport const AUTOCOMPLETE_URL = env('AUTOCOMPLETE_URL');\nexport const CONDUCTRICS_URI = env('CONDUCTRICS_URI');\nexport const OHW_BASE_URL_TRIMMED = env('OHW_BASE_URL').replace(/\\/$/, '') || '';\nexport const DX_AUTH_UI = env('DX_AUTH_UI');\nexport const APP_NAME = env('APP_NAME', 'dx-offers-ui');\n\nexport const GLOBAL_RESOURCE_BUNDLES = [\n 'common',\n 'offers',\n 'osc-breadcrumbs',\n 'osc-footer',\n 'osc-header',\n 'osc-link',\n 'osc-login',\n 'osc-speedbump',\n] as const satisfies FlatNamespace[];\n","import { createContext } from 'react';\nimport type { AuthClient } from './auth-client';\nimport type { GuestQuery } from './gql/types';\nimport type { LoginResponse } from './types';\n\nexport type AuthInfo = Record<string, unknown>;\n\nexport type AuthState = {\n authClient: AuthClient | null;\n /** whether or not the current session is authenticated */\n isAuthenticated: boolean;\n authInfo?: AuthInfo;\n login: (response: LoginResponse) => Promise<void>;\n logout: () => Promise<void>;\n refreshGuestInfo: () => Promise<void>;\n guestInfo: GuestQuery['guest'] | null;\n guestId: number | null;\n isLoading: boolean;\n isCorpUser: boolean;\n};\n\nexport const initialContext: AuthState = {\n authClient: null,\n isAuthenticated: false,\n logout: () => Promise.resolve(),\n login: () => Promise.resolve(),\n refreshGuestInfo: () => Promise.resolve(),\n guestInfo: null,\n guestId: null,\n isLoading: false,\n isCorpUser: false,\n};\n\nconst AuthContext = createContext<AuthState>(initialContext);\nAuthContext.displayName = 'AuthContext';\n\nexport { AuthContext };\n","/* eslint-disable no-console */\nimport { useCallback, useEffect, useReducer, useRef } from 'react';\n\nimport * as React from 'react';\nimport type { AuthClient } from './auth-client';\nimport type { AuthInfo } from './auth-context';\nimport { AuthContext } from './auth-context';\nimport type { GuestQuery } from './gql/types';\nimport type { LoginResponse } from './types';\nimport { flushSync } from 'react-dom';\nimport { logWarning } from '@dx-ui/framework-logger';\n\ntype State = {\n loggedIn: boolean;\n guestInfo: GuestQuery['guest'] | null;\n isLoading: boolean;\n authInfo: AuthInfo | undefined;\n authClient: AuthClient;\n};\n\ntype LogoutAction = {\n type: 'logout';\n};\n\ntype GetGuestInfoAction = {\n type: 'GuestInfo';\n data: GuestQuery['guest'];\n};\n\ntype StartFetchingGuestInfo = {\n type: 'StartFetchingGuestInfo';\n};\n\ntype SetAuthInfo = {\n type: 'SetAuthInfo';\n data: AuthInfo;\n};\n\nfunction reducer(\n state: State,\n action: LogoutAction | GetGuestInfoAction | StartFetchingGuestInfo | SetAuthInfo\n) {\n if (action.type === 'logout') {\n return {\n ...state,\n loggedIn: false,\n isLoading: false,\n guestInfo: null,\n };\n }\n if (action.type === 'StartFetchingGuestInfo') {\n return {\n ...state,\n loggedIn: true,\n isLoading: true,\n guestInfo: null,\n };\n }\n if (action.type === 'GuestInfo') {\n return {\n ...state,\n loggedIn: true,\n isLoading: false,\n guestInfo: action.data,\n };\n }\n if (action.type === 'SetAuthInfo') {\n return {\n ...state,\n authInfo: action.data,\n };\n }\n return state;\n}\n\nexport function AuthProvider({\n authClient,\n children,\n onLoginAttempt,\n onLogout,\n initialState,\n}: {\n authClient: AuthClient;\n children: React.ReactNode;\n onLoginAttempt?: (response: LoginResponse) => Promise<AuthInfo>;\n onLogout?: () => Promise<AuthInfo>;\n initialState?: AuthInfo;\n}) {\n const [state, dispatch] = useReducer<typeof reducer>(reducer, {\n authClient,\n loggedIn: !!authClient.getIsLoggedIn(),\n isLoading: authClient.getIsLoggedIn(),\n guestInfo: null,\n authInfo: initialState,\n });\n\n const mounted = useRef<boolean>(false);\n const safeDispatch = useCallback(function (v: Parameters<typeof dispatch>[0]) {\n if (mounted.current) {\n dispatch(v);\n }\n }, []);\n useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n }, []);\n\n useEffect(() => {\n function logoutCb() {\n safeDispatch({\n type: 'logout',\n });\n onLogout?.()\n .then((info) => safeDispatch({ type: 'SetAuthInfo', data: info }))\n .catch((error: Error) => logWarning('AUTH_ON_LOGOUT', error));\n }\n function loginFaliureCb() {\n safeDispatch({\n type: 'logout',\n });\n }\n function loginSuccessCb(response: LoginResponse) {\n flushSync(() =>\n safeDispatch({\n type: 'StartFetchingGuestInfo',\n })\n );\n\n onLoginAttempt?.(response)\n .then((info) => safeDispatch({ type: 'SetAuthInfo', data: info }))\n .catch((error: Error) => logWarning('AUTH_ON_LOGIN_ATTEMPT', error));\n authClient\n .getGuestInfo()\n ?.then((info) => {\n if (info) {\n safeDispatch({\n type: 'GuestInfo',\n data: info?.guest,\n });\n } else {\n safeDispatch({\n type: 'logout',\n });\n }\n })\n .catch((error: Error) => logWarning('AUTH_GET_GUEST_INFO', error));\n }\n authClient.on('logout', logoutCb);\n authClient.on('loginSuccess', loginSuccessCb);\n authClient.on('loginFailure', loginFaliureCb);\n\n authClient\n .getGuestInfo()\n ?.then((info) => {\n if (info?.guest) {\n safeDispatch({\n type: 'GuestInfo',\n data: info?.guest,\n });\n } else {\n safeDispatch({\n type: 'logout',\n });\n }\n })\n .catch((error: Error) => logWarning('AUTH_GET_GUEST_INFO', error));\n\n return () => {\n authClient.off('logout', logoutCb);\n authClient.off('loginSuccess', loginSuccessCb);\n authClient.off('loginFailure', loginFaliureCb);\n };\n }, [authClient, onLoginAttempt, onLogout, safeDispatch]);\n\n const value = {\n authClient,\n isAuthenticated: state.loggedIn,\n logout: () => authClient.logout(),\n login: (response: LoginResponse) => authClient.login(response),\n refreshGuestInfo: () => authClient.refreshGuestInfo(),\n guestInfo: state.guestInfo,\n authInfo: state.authInfo,\n guestId: authClient.getGuestId() || null,\n isLoading: state.isLoading,\n isCorpUser: authClient.isCorpUser(),\n };\n\n return <AuthContext.Provider value={value}>{children}</AuthContext.Provider>;\n}\n\nexport function useAuth() {\n const context = React.useContext(AuthContext);\n if (context === undefined) {\n throw new Error(`useAuth must be used within a AuthProvider`);\n }\n return context;\n}\n","const VALID_SAME_SITES = ['none', 'lax', 'strict'];\n\nfunction getDefaultDomain() {\n // eslint-disable-next-line no-restricted-globals\n return location.hostname === 'localhost' ? 'localhost' : '.hilton.com';\n}\n\nexport const setCookie = (\n name: string,\n value: string,\n expires: number | null,\n path = '',\n domain = 'hilton.com',\n secure = true,\n escape = true,\n sameSite = 'lax'\n) => {\n if (undefined === domain) {\n domain = getDefaultDomain();\n }\n\n if (sameSite !== 'lax' && sameSite !== null) {\n sameSite = sameSite.toLowerCase();\n\n if (!VALID_SAME_SITES.includes(sameSite)) {\n throw new TypeError(`sameSite must be one of the following: ${VALID_SAME_SITES}`);\n }\n }\n\n // set time, it's in milliseconds\n const today = new Date(Date.now());\n\n /*\n if the expires variable is set, make the correct\n expires time, the current script below will set\n it for x number of days, to make it for hours,\n delete * 24, for minutes, delete * 60 * 24\n */\n if (expires) {\n expires = expires * 1000 * 60 * 60 * 24;\n }\n const expires_date = new Date(today.getTime() + (expires ?? 0));\n\n const cookieValue = escape ? encodeURIComponent(value) : value;\n\n document.cookie =\n name +\n '=' +\n cookieValue +\n (expires ? ';expires=' + expires_date.toUTCString() : '') +\n (path ? ';path=' + path : '') +\n (domain ? ';domain=' + domain : '') +\n (secure ? ';secure' : '') +\n (sameSite ? ';sameSite=' + sameSite : '');\n};\n\nexport const getCookie = (cname: string) => {\n const name = cname + '=';\n const ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c?.charAt(0) === ' ') {\n c = c?.substring(1);\n }\n if (c?.indexOf(name) === 0) {\n return decodeURIComponent(c.substring(name.length, c.length));\n }\n }\n return '';\n};\n\nexport const deleteCookie = (name: string, path: string, domain?: string) => {\n if (undefined === domain) {\n domain = getDefaultDomain();\n }\n if (getCookie(name))\n document.cookie =\n name +\n '=' +\n (path ? ';path=' + path : '') +\n (domain ? ';domain=' + domain : '') +\n ';expires=Thu, 01-Jan-1970 00:00:01 GMT';\n};\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const GuestDocument = {\n operationName: 'guest',\n operationString: `query guest($guestId: BigInt!, $language: String!) {\n guest(guestId: $guestId, language: $language) {\n guestId\n userName\n hhonors {\n hhonorsNumber\n isFamilyAndFriends\n isLongTenure10\n isSMBMember\n isTeamMember\n isTeamMemberSpouse\n isOwner\n isLongTenure20\n isOwnerHGV\n isOwnerHGVNew\n programAccountSummary(filter: {accountStatus: \"active\"}) {\n accountId\n accountName\n }\n summary {\n points: totalPointsFmt\n tier\n tierName\n totalPoints\n totalPointsFmt\n }\n packages {\n packageName\n }\n }\n personalinfo {\n name {\n firstName @toTitleCase\n lastName @toTitleCase\n nameFmt @toTitleCase\n nameLocalizations {\n firstName\n lastName\n nameFmt\n }\n }\n emails(filter: {preferred: true}) {\n emailAddressHashed\n }\n }\n }\n}`,\n originalOpName: 'guest',\n};\nexport function useGuestQuery<TData = Types.GuestQuery, TError = DXError>(\n variables: Types.GuestQueryVariables,\n options?: Omit<UseQueryOptions<Types.GuestQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.GuestQuery, TError, TData>({\n queryKey: [GuestDocument, variables],\n ...options,\n });\n}\nexport function serverSideGuestQuery(\n queryClient: QueryClient,\n variables: Types.GuestQueryVariables,\n options?: FetchQueryOptions<Types.GuestQuery>\n) {\n return queryClient.fetchQuery<Types.GuestQuery>({\n queryKey: [GuestDocument, variables],\n ...options,\n });\n}\n","import { EventEmitter } from 'events';\nimport type { CookieSetOptions } from 'universal-cookie';\nimport Cookies from 'universal-cookie';\nimport { setCookie } from './cookie-utils';\nimport type { GuestQuery, GuestQueryVariables } from './gql/types';\nimport { GuestDocument } from './gql/queries';\nimport type { AuthResponse, LoginResponse, WSO2TokenCookie, WebGuestMetadataCookie } from './types';\nimport type { IncomingMessage, OutgoingMessage } from 'http';\nimport { mergeCacheControl } from '@dx-ui/framework-merge-cache-control';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\nimport { logError, logInfo } from '@dx-ui/framework-logger';\nimport { triggerInCompleteEvent, isQueryIncomplete } from '@dx-ui/framework-incomplete-event';\n\ntype AuthArgs = {\n authEndpoint: string;\n gqlEndpoint: string;\n request?: IncomingMessage;\n response?: OutgoingMessage | null;\n minExpiresTTL?: number;\n appId: string;\n restore?: Extract;\n ssr?: boolean;\n appName: string;\n language?: string;\n};\n\nexport type Extract = {\n guestInfo?: GuestQuery | null;\n authenticationCookie: WSO2TokenCookie | null;\n};\n\ntype SessionHeaders = 'hltClientMessageId' | 'referer' | 'dx-platform' | 'hltClientSessionId';\n\nexport class AuthClient extends EventEmitter {\n private cookies: Cookies;\n\n public authEndpoint = '';\n\n public gqlEndpoint = '';\n\n public webGuestMetadataCookie: WebGuestMetadataCookie | null = null;\n\n private authenticationCookie: WSO2TokenCookie | null = null;\n\n private userRefreshTokenPromise: null | Promise<WSO2TokenCookie | null> = null;\n\n private minExpiresTTL: number;\n\n private requestTimeoutMs = 30000;\n\n private appTokenPromise: null | Promise<WSO2TokenCookie | null> = null;\n\n private appId = '';\n\n private guestInfoPromise: Promise<null | GuestQuery> | null = null;\n\n private serverResponse: null | OutgoingMessage | undefined;\n\n private ssrMode = false;\n\n private headers: Partial<Record<SessionHeaders, string>> | null = null;\n\n private appName: string | null;\n\n private language = 'en';\n\n private attemptsToGetGuestInfo = 0;\n\n public constructor({\n authEndpoint,\n gqlEndpoint,\n minExpiresTTL,\n appId,\n request,\n response,\n restore,\n ssr,\n appName,\n language,\n }: AuthArgs) {\n super();\n\n this.cookies = new Cookies(request?.headers?.cookie);\n // Force refresh Cookies.cookies private property\n this.cookies.getAll();\n this.authEndpoint = authEndpoint;\n this.gqlEndpoint = gqlEndpoint;\n this.minExpiresTTL = minExpiresTTL || 5 * 60;\n this.appId = appId;\n this.ssrMode = ssr ?? false;\n this.serverResponse = response;\n this.appName = appName || null;\n this.language = language || 'en';\n // check for refresh and do it if necessary\n this.authenticationCookie = restore?.authenticationCookie ?? this.getTokensFromCookie();\n this.webGuestMetadataCookie = this.cookies.get('webGuestMetadata');\n this.headers = this.getRequestHeaders(request);\n\n if (!this.webGuestMetadataCookie && this.authenticationCookie?.guestId) {\n try {\n if (this.shouldRefreshToken()) {\n this.guestInfoPromise = this.refreshLoggedInUserToken().then(() => this.fetchGuestInfo());\n } else {\n this.guestInfoPromise = restore?.guestInfo\n ? Promise.resolve(restore?.guestInfo)\n : this.fetchGuestInfo();\n }\n } catch {\n this.fetchAppToken().catch((error: Error) =>\n logError(\n 'FRAMEWORK_AUTH_PROVIDER',\n error,\n 'Calling fetchAppToken() when guestId exists on authenticationCookie.'\n )\n );\n }\n } else if (!this.webGuestMetadataCookie && this.isCorpUser()) {\n // this is a corp user\n if (this.shouldRefreshToken()) {\n this.refreshLoggedInUserToken().catch((error: Error) =>\n logError(\n 'FRAMEWORK_AUTH_PROVIDER',\n error,\n 'Calling refreshLoggedInUserToken() when shouldRefreshToken returns true and isCorpUser() is true.'\n )\n );\n }\n } else {\n this.fetchAppToken().catch((error: Error) =>\n logError(\n 'FRAMEWORK_AUTH_PROVIDER',\n error,\n 'Calling fetchAppToken() when guestId does not exist on authenticationCookie.'\n )\n );\n }\n }\n\n /**\n * @description is the user logged in (not anon user)\n */\n public getIsLoggedIn() {\n if (this.webGuestMetadataCookie) {\n return this.isCorpUser() || !!this.webGuestMetadataCookie.guestId;\n }\n return this.isCorpUser() || !!this.authenticationCookie?.guestId;\n }\n\n /**\n * @description returns the guest endpoint\n */\n public getGqlEndpoint() {\n return this.gqlEndpoint;\n }\n\n /**\n * @description returns the auth endpoint\n */\n public getAuthEndpoint() {\n return this.authEndpoint;\n }\n\n /**\n * @description take all server side info, convert to json for later restore\n */\n public async extract(): Promise<Extract> {\n if (this.getIsLoggedIn()) {\n const guestInfo = await this.getGuestInfo();\n return {\n guestInfo,\n authenticationCookie: this.authenticationCookie,\n };\n }\n\n return {\n authenticationCookie:\n this.authenticationCookie?.tokenType === 'Bearer' ? this.authenticationCookie : null,\n };\n }\n\n /**\n * @description refresh the user (or app token), makes API calls to dx-auth-ui and stores a new token\n */\n public refreshToken(): Promise<null> {\n if (this.webGuestMetadataCookie) {\n return Promise.resolve(null);\n }\n // if logged in refresh the user token,\n if (this.getAuthenticationCookie()?.guestId || this.isCorpUser()) {\n return this.refreshLoggedInUserToken().then(() => null);\n }\n // otherwise fetch app token\n return this.fetchAppToken().then(() => null);\n }\n\n /**\n * @description get authorization header that should be sent along with all graphql requests. If logged in guest it will use guest's token, otherwise will use anon app token\n */\n public async getAuthorizationHeader() {\n if (this.webGuestMetadataCookie) {\n return Promise.resolve('');\n }\n // if refreshes are in flight wait\n if (this.userRefreshTokenPromise) {\n await this.userRefreshTokenPromise;\n }\n if (this.appTokenPromise) {\n await this.appTokenPromise;\n }\n const token = this.getAuthenticationCookie();\n if (token?.tokenType && token?.accessToken) {\n return `${token?.tokenType} ${token?.accessToken}`;\n }\n // there is no token set, fallback to auth token\n const apptoken = await this.fetchAppToken();\n if (apptoken) {\n return `${apptoken?.tokenType} ${apptoken?.accessToken}`;\n }\n // todo: figure out what to return if we can't get user token or auth token\n return '';\n }\n\n /**\n * @description get hltClientMessageId, referer, dx-platform, and hltClientSessionId headers\n */\n public getRequestHeaders(request?: IncomingMessage) {\n const headers = {} as Partial<Record<SessionHeaders, string>>;\n request?.rawHeaders?.forEach((value, index, array) => {\n if (/^(hltClientMessageId|referer|dx-platform|hltClientSessionId)$/i.test(value)) {\n headers[value as SessionHeaders] = array[index + 1];\n }\n });\n return headers;\n }\n\n /**\n * @description resulting promise for guest information\n */\n public getGuestInfo() {\n return this.guestInfoPromise;\n }\n\n /**\n * @description get guestId\n */\n public getGuestId() {\n if (this.webGuestMetadataCookie) {\n return this.webGuestMetadataCookie.guestId;\n }\n return this.authenticationCookie?.guestId;\n }\n\n private getAuthenticationCookie() {\n return this.authenticationCookie;\n }\n\n public isCorpUser() {\n if (this.webGuestMetadataCookie) {\n return this.webGuestMetadataCookie.userRealm === 'corp';\n }\n return this.authenticationCookie?.userRealm === 'corp';\n }\n\n private getAppNameParam() {\n return this.appId ? `?appName=${this.appName}` : '';\n }\n\n private refreshLoggedInUserToken() {\n const guestId = this.getAuthenticationCookie()?.guestId;\n // no guestId, nothing to refresh\n if (!guestId && !this.isCorpUser()) {\n return Promise.resolve(null);\n }\n if (this.userRefreshTokenPromise) {\n return this.userRefreshTokenPromise;\n }\n const currentToken = this.getAuthenticationCookie();\n this.userRefreshTokenPromise = fetch(\n `${this.authEndpoint}/dx-customer/auth/${\n this.isCorpUser() ? 'corp' : 'guests'\n }/refresh${this.getAppNameParam()}`,\n {\n method: 'POST',\n cache: 'no-cache',\n headers: {\n ...this.headers,\n 'Content-type': 'application/json; charset=utf-8',\n Accept: 'application/json; charset=utf-8',\n Authorization: `${currentToken?.tokenType} ${currentToken?.accessToken}`,\n },\n }\n ).then(async (res) => {\n if (!res.ok) {\n // logout\n this.invalidateSession();\n\n return this.getAuthenticationCookie();\n }\n\n const json = await res.json();\n\n if (json.error) {\n this.invalidateSession();\n return this.getAuthenticationCookie();\n }\n const { UserClaims, ...rest } = json;\n\n // save to cookies\n this.setUserSessionData({\n userInfo: UserClaims,\n tokenInfo: { ...rest },\n });\n // save to this instance\n this.authenticationCookie = {\n guestId: this.authenticationCookie?.guestId || null,\n accessToken: rest.access_token,\n expiresIn: rest.expires_in,\n tokenType: rest.token_type,\n timestamp: Date.now(),\n userRealm: UserClaims?.userRealm,\n };\n this.userRefreshTokenPromise = null;\n return this.getAuthenticationCookie();\n });\n return this.userRefreshTokenPromise;\n }\n\n public updateAccessToken(accessToken: string) {\n if (this.webGuestMetadataCookie) {\n return;\n }\n const currentAuthenticationCookie = this.getAuthenticationCookie();\n if (currentAuthenticationCookie) {\n const updatedWso2AuthTokenCookie = { ...currentAuthenticationCookie, accessToken };\n if (isBrowser) this.setwso2AuthTokenCookie(updatedWso2AuthTokenCookie);\n this.authenticationCookie = updatedWso2AuthTokenCookie;\n }\n }\n\n public async login({ data, error }: LoginResponse) {\n // let the appToken finish processing, if necessary, so that appTokenPromise, doesn't resolve and overwrite the authentication token\n if (this.appTokenPromise) {\n await this.appTokenPromise;\n }\n if (data) {\n this.setUserSessionData(data);\n\n if (!this.webGuestMetadataCookie) {\n this.authenticationCookie = this.authResponseToAuthCookie(data);\n }\n\n this.guestInfoPromise = this.fetchGuestInfo();\n await this.guestInfoPromise;\n\n this.emit('loginSuccess', data);\n }\n if (error) {\n this.emit('loginFailure', error);\n }\n }\n\n public async logout({ redirectToLoginPage }: { redirectToLoginPage?: boolean } = {}) {\n const logoutUrl = `${this.authEndpoint}/dx-customer/auth/${\n this.isCorpUser() ? 'corp' : 'guests'\n }/logout${this.getAppNameParam()}`;\n const authorization = await this.getAuthorizationHeader();\n\n await fetch(logoutUrl, {\n method: 'POST',\n cache: 'no-cache',\n headers: {\n ...this.headers,\n 'Content-type': 'application/json; charset=utf-8',\n Accept: 'application/json; charset=utf-8',\n ...(!this.webGuestMetadataCookie && { Authorization: authorization }),\n credentials: 'include',\n },\n });\n\n // In anonymous session user cannot be part of SMB program. Clear out value from localStorage if it exists\n if (isBrowser) {\n window.localStorage.removeItem('smbContext');\n window.localStorage.removeItem('smbProgramId');\n }\n\n this.invalidateSession();\n if (redirectToLoginPage) {\n this.redirectToLoginPage();\n }\n }\n\n private redirectToLoginPage() {\n if (typeof window !== 'undefined') {\n const url = `/${this.language}/${\n this.isCorpUser() ? `auth2/api/saml/logout/${this.appName}/` : 'hilton-honors/login/'\n }`;\n window.location.assign(url);\n }\n }\n\n private invalidateSession() {\n this.guestInfoPromise = null;\n this.cookies.remove('wso2AuthToken', {\n path: '/',\n domain: '.hilton.com',\n secure: false,\n sameSite: 'lax',\n });\n this.cookies.remove('authentication', {\n path: '/',\n domain: '.hilton.com',\n secure: true,\n });\n this.cookies.remove('loggedIn', {\n path: '/',\n domain: '.hilton.com',\n secure: true,\n });\n this.cookies.remove('fname', {\n path: '/',\n domain: '.hilton.com',\n secure: true,\n });\n\n this.webGuestMetadataCookie = null;\n this.authenticationCookie = null;\n this.emit('logout');\n }\n\n private authResponseToAuthCookie(data: AuthResponse) {\n const authenticationCookie: WSO2TokenCookie = {\n accessToken: data?.tokenInfo?.access_token,\n expiresIn: data?.tokenInfo?.expires_in,\n tokenType: data?.tokenInfo?.token_type,\n timestamp: Date.now(),\n guestId: data?.userInfo?.guestId || null,\n };\n\n return authenticationCookie;\n }\n\n /**\n * For backwards compatability and to keep our header size small we're using wso2Cookie,\n * even though it actually contains a dx-auth-api token\n * @param data\n */\n private setWso2Cookie(data: AuthResponse) {\n if (typeof window !== 'undefined') {\n const wso2Cookie: WSO2TokenCookie = {\n accessToken: data.tokenInfo.access_token,\n expiresIn: data.tokenInfo.expires_in,\n tokenType: data.tokenInfo.token_type,\n timestamp: Date.now(),\n guestId: data.userInfo?.guestId || null,\n };\n this.setwso2AuthTokenCookie(wso2Cookie);\n // - end of the madness\n }\n }\n\n private setwso2AuthTokenCookie(wso2Cookie: WSO2TokenCookie) {\n // using this cookie package because we do NOT want to use encodeURIComponent when setting\n setCookie(\n 'wso2AuthToken',\n JSON.stringify(wso2Cookie),\n null,\n '/',\n '.hilton.com',\n true,\n false,\n 'lax'\n );\n }\n\n private setUserSessionData(data: AuthResponse) {\n this.webGuestMetadataCookie = this.cookies.get('webGuestMetadata');\n\n if (!this.webGuestMetadataCookie) {\n this.setWso2Cookie(data);\n }\n\n this.setCookie('loggedIn', true, {\n path: '/',\n domain: '.hilton.com',\n secure: true,\n });\n }\n\n private shouldRefreshToken() {\n const token = this.getAuthenticationCookie();\n if (!token) {\n return true;\n }\n const timeout = token?.expiresIn + token?.timestamp;\n return timeout ? timeout - Date.now() / 1000 <= this.minExpiresTTL : true;\n }\n\n private getTokensFromCookie() {\n // first read from authentication if it exists and use that\n const authenticationCookie: AuthResponse = this.cookies.get('authentication');\n if (authenticationCookie && authenticationCookie?.userInfo?.guestId) {\n const wso2AuthShape: WSO2TokenCookie = {\n accessToken: authenticationCookie.tokenInfo?.access_token,\n expiresIn: authenticationCookie?.tokenInfo?.expires_in,\n timestamp: Date.now(),\n tokenType: authenticationCookie?.tokenInfo?.token_type,\n guestId: authenticationCookie?.userInfo?.guestId,\n };\n return wso2AuthShape;\n }\n\n // otherwise fallback to reading wso2AuthToken\n const wso2AuthToken: WSO2TokenCookie = this.cookies.get('wso2AuthToken');\n if (wso2AuthToken) {\n return wso2AuthToken;\n }\n return null;\n }\n\n private fetchAppToken() {\n if (this.ssrMode) {\n // resolve basic auth\n this.appTokenPromise = Promise.resolve({\n accessToken: Buffer.from(`${this.appId}:${this.appId}`).toString('base64'),\n expiresIn: Date.now() / 1000 + 3600,\n tokenType: 'Basic',\n timestamp: Date.now(),\n guestId: null,\n });\n }\n if (this.appTokenPromise) {\n return this.appTokenPromise;\n }\n\n this.appTokenPromise = fetch(\n `${this.authEndpoint}/dx-customer/auth/applications/token${this.getAppNameParam()}`,\n {\n method: 'POST',\n cache: 'no-cache',\n headers: {\n ...this.headers,\n 'Content-type': 'application/json; charset=utf-8',\n Accept: 'application/json; charset=utf-8',\n credentials: 'include',\n },\n body: JSON.stringify({\n app_id: this.appId,\n }),\n }\n ).then(async (resp) => {\n if (resp.ok) {\n if (this.cookies.get('webGuestMetadata')) {\n this.webGuestMetadataCookie = this.cookies.get('webGuestMetadata');\n return null;\n }\n const json = await resp.json();\n this.authenticationCookie = {\n accessToken: json.access_token,\n expiresIn: json.expires_in,\n tokenType: json.token_type,\n timestamp: Date.now(),\n guestId: null,\n };\n\n this.appTokenPromise = null;\n return this.authenticationCookie;\n }\n this.appTokenPromise = null;\n return null;\n });\n return this.appTokenPromise;\n }\n\n private setCookie(\n name: string,\n value: unknown,\n options: CookieSetOptions = {\n path: '/',\n domain: '.hilton.com',\n secure: true,\n }\n ) {\n try {\n this.cookies.set(name, value, options);\n // eslint-disable-next-line no-empty\n } catch {}\n }\n\n public async refreshGuestInfo(): Promise<void> {\n if (this.webGuestMetadataCookie) {\n return;\n }\n this.guestInfoPromise = this.fetchGuestInfo();\n await this.guestInfoPromise;\n }\n\n private async fetchGuestInfo(): Promise<GuestQuery | null> {\n if (this.attemptsToGetGuestInfo > 2) {\n if (this.webGuestMetadataCookie) {\n await this.logout();\n return null;\n }\n this.invalidateSession();\n return null;\n }\n const userAuth = this.getAuthenticationCookie();\n const guestId = userAuth?.guestId || this.webGuestMetadataCookie?.guestId;\n const authHeader = await this.getAuthorizationHeader();\n if (!this.getIsLoggedIn() || !guestId) {\n return null;\n }\n const variables: GuestQueryVariables = {\n guestId,\n language: this.language,\n };\n const requestInit = {\n headers: {\n ...this.headers,\n 'Content-type': 'application/json; charset=utf-8',\n Accept: 'application/json; charset=utf-8',\n ...(!this.webGuestMetadataCookie && { Authorization: authHeader }),\n credentials: 'include',\n },\n };\n this.attemptsToGetGuestInfo++;\n\n const controller = new AbortController();\n const abortTimeout = setTimeout(() => controller.abort(), this.requestTimeoutMs);\n const requestUrl = `${this.gqlEndpoint}${this.getAppNameParam()}&operationName=guest`;\n const res = await fetch(requestUrl, {\n method: 'POST',\n ...requestInit,\n body: JSON.stringify({\n query: GuestDocument.operationString,\n variables,\n operationName: 'guest',\n }),\n signal: controller.signal,\n }).catch((error: Error) => {\n logInfo('AUTH_CLIENT_FETCH_GUEST_INFO', error, `fetchGuestInfo() requestUrl: ${requestUrl}`);\n return null;\n });\n clearTimeout(abortTimeout);\n\n if (!res) {\n return null;\n }\n\n if (isQueryIncomplete(res)) {\n triggerInCompleteEvent({\n requestBody: {\n operationName: 'guest-authClient',\n originalOpName: 'guest',\n },\n });\n }\n\n if (!res.ok) {\n if (!this.webGuestMetadataCookie && res.status === 401) {\n if (this.attemptsToGetGuestInfo <= 1) {\n await this.refreshToken().catch((error: Error) => {\n logInfo('AUTH_CLIENT_FETCH_GUEST_INFO', error, 'fetchGuestInfo()');\n return null;\n });\n } else {\n return null;\n }\n }\n if (this.webGuestMetadataCookie) {\n await this.logout();\n return null;\n }\n return this.fetchGuestInfo();\n }\n mergeCacheControl(res, this.serverResponse || undefined);\n\n const json = await res.json();\n if (json.errors) {\n await this.refreshToken();\n }\n this.attemptsToGetGuestInfo = 0;\n\n return json.data;\n }\n}\n","import type { IncomingMessage, OutgoingMessage } from 'http';\nimport type { Extract } from './auth-client';\nimport { AuthClient } from './auth-client';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\n\nexport interface GqlEndpoints {\n browser: string;\n server: string;\n}\n\nexport interface AuthEndpoints {\n browser: string;\n server: string;\n}\n\nexport type MakeAuthClientArgs = {\n appId: string;\n appName: string;\n authEndpoints: AuthEndpoints;\n gqlEndpoints: GqlEndpoints;\n request?: IncomingMessage;\n response?: OutgoingMessage;\n restore?: Extract;\n ssrMode?: boolean;\n};\n\nexport function makeAuthClient({\n appName,\n request,\n restore,\n ssrMode,\n response,\n authEndpoints,\n gqlEndpoints,\n appId,\n}: MakeAuthClientArgs) {\n return new AuthClient({\n appName,\n request,\n restore,\n authEndpoint: isBrowser ? authEndpoints?.browser : authEndpoints?.server,\n appId,\n gqlEndpoint: isBrowser ? gqlEndpoints?.browser : gqlEndpoints?.server,\n ssr: ssrMode,\n response,\n });\n}\n","/* istanbul ignore file */\nexport * from './auth-provider';\nexport * from './auth-context';\nexport * from './auth-client';\nexport * from './cookie-utils';\nexport * from './types';\nexport * from './gql/types';\nexport * from './gql/queries';\nexport * from './make-auth-client';\nexport * from './guest-utils';\n","/* istanbul ignore file */\nexport * from './lib';\n","import { isBrowser } from '@dx-ui/utilities-is-browser';\nimport type { EnvKeys, PublicEnv } from './types';\n\n/**\n * Isomorphic function that returns all environment variables.\n * @note This is only available on the client when the `EnvScript` component is used.\n */\nexport function allEnv() {\n return isBrowser ? getClientEnv() : getServerEnv();\n}\n\n/**\n * Isomorphic getter that returns a specific environment variable.\n * @note This is only available on the client when the `EnvScript` component is used.\n * @param key\n */\nexport function env(key: EnvKeys, defaultValue?: string) {\n return allEnv()[key] || defaultValue || '';\n}\n\nfunction getClientEnv() {\n if (!window.__ENV && window.__NEXT_DATA__?.buildId === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n 'Environment variables are not available. Did you forget to include the `EnvScript` component?'\n );\n }\n return window.__ENV || {};\n}\n\nfunction getServerEnv() {\n return process.env as unknown as PublicEnv;\n}\n","export * from './default-public-vars';\nexport * from './helpers';\nexport * from './types';\n","export * from './lib';\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\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function hasXMLHttpRequest() {\n return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object';\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\nimport { defaults, hasXMLHttpRequest } from './utils.js';\nimport * as fetchNode from './getFetch.cjs';\nvar fetchApi;\n\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n }\n}\n\nvar XmlHttpRequestApi;\n\nif (hasXMLHttpRequest) {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\n\nvar ActiveXObjectApi;\n\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\n\nif (!fetchApi && fetchNode && !XmlHttpRequestApi && !ActiveXObjectApi) fetchApi = fetchNode.default || fetchNode;\nif (typeof fetchApi !== 'function') fetchApi = undefined;\n\nvar addQueryString = function addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '';\n\n for (var paramName in params) {\n queryString += '&' + encodeURIComponent(paramName) + '=' + encodeURIComponent(params[paramName]);\n }\n\n if (!queryString) return url;\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n\n return url;\n};\n\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n\n var headers = defaults({}, typeof options.customHeaders === 'function' ? options.customHeaders() : options.customHeaders);\n if (payload) headers['Content-Type'] = 'application/json';\n fetchApi(url, defaults({\n method: payload ? 'POST' : 'GET',\n body: payload ? options.stringify(payload) : undefined,\n headers: headers\n }, typeof options.requestOptions === 'function' ? options.requestOptions(payload) : options.requestOptions)).then(function (response) {\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data\n });\n }).catch(callback);\n }).catch(callback);\n};\n\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n if (payload && _typeof(payload) === 'object') {\n payload = addQueryString('', payload).slice(1);\n }\n\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n\n try {\n var x;\n\n if (XmlHttpRequestApi) {\n x = new XmlHttpRequestApi();\n } else {\n x = new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n }\n\n x.open(payload ? 'POST' : 'GET', url, 1);\n\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n x.withCredentials = !!options.withCredentials;\n\n if (payload) {\n x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n\n if (x.overrideMimeType) {\n x.overrideMimeType('application/json');\n }\n\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n\n x.onreadystatechange = function () {\n x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText\n });\n };\n\n x.send(payload);\n } catch (e) {\n console && console.log(e);\n }\n};\n\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n\n callback = callback || function () {};\n\n if (fetchApi) {\n return requestWithFetch(options, url, payload, callback);\n }\n\n if (hasXMLHttpRequest || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n};\n\nexport default request;","function _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 _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\nimport { defaults } from './utils.js';\nimport request from './request.js';\n\nvar getDefaults = function getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n allowMultiLoading: false,\n parse: function parse(data) {\n return JSON.parse(data);\n },\n stringify: JSON.stringify,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n request: request,\n reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n customHeaders: {},\n queryStringParams: {},\n crossDomain: false,\n withCredentials: false,\n overrideMimeType: false,\n requestOptions: {\n mode: 'cors',\n credentials: 'same-origin',\n cache: 'default'\n }\n };\n};\n\nvar Backend = function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, Backend);\n\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n this.init(services, options, allOptions);\n }\n\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n this.allOptions = allOptions;\n\n if (this.services && this.options.reloadInterval) {\n setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n }\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n this.loadUrl(url, callback, languages, namespaces);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath([language], [namespace]);\n }\n\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: language,\n ns: namespace\n });\n this.loadUrl(url, callback, language, namespace);\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback, languages, namespaces) {\n var _this2 = this;\n\n this.options.request(this.options, url, undefined, function (err, res) {\n if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + url + '; status code: ' + res.status, true);\n if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false);\n if (!res && err && err.message && err.message.indexOf('Failed to fetch') > -1) return callback('failed loading ' + url + ': ' + err.message, true);\n if (err) return callback(err, false);\n var ret, parseErr;\n\n try {\n if (typeof res.data === 'string') {\n ret = _this2.options.parse(res.data, languages, namespaces);\n } else {\n ret = res.data;\n }\n } catch (e) {\n parseErr = 'failed parsing ' + url + ' to json';\n }\n\n if (parseErr) return callback(parseErr, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback) {\n var _this3 = this;\n\n if (!this.options.addPath) return;\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n var finished = 0;\n var dataArray = [];\n var resArray = [];\n languages.forEach(function (lng) {\n var addPath = _this3.options.addPath;\n\n if (typeof _this3.options.addPath === 'function') {\n addPath = _this3.options.addPath(lng, namespace);\n }\n\n var url = _this3.services.interpolator.interpolate(addPath, {\n lng: lng,\n ns: namespace\n });\n\n _this3.options.request(_this3.options, url, payload, function (data, res) {\n finished += 1;\n dataArray.push(data);\n resArray.push(res);\n\n if (finished === languages.length) {\n if (callback) callback(dataArray, resArray);\n }\n });\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this4 = this;\n\n var _this$services = this.services,\n backendConnector = _this$services.backendConnector,\n languageUtils = _this$services.languageUtils,\n logger = _this$services.logger;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n var toLoad = [];\n\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this4.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }]);\n\n return Backend;\n}();\n\nBackend.type = 'backend';\nexport default Backend;","import type { SSRConfig, UserConfig } from 'next-i18next';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { appWithTranslation as nextI18NextAppWithTranslation } from 'next-i18next';\nimport type { AppProps } from 'next/app';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\nimport i18nextHttpBackend from 'i18next-http-backend';\nimport type { OneLinkPageProps } from './util';\n\nexport function appWithTranslation<Props extends AppProps<SSRConfig & OneLinkPageProps>>(\n ...[WrappedComponent, rest]: Parameters<typeof nextI18NextAppWithTranslation<Props>>\n) {\n const I18nFrameworkAppWithTranslation = (props: Props) => {\n const language = props.router.locale || 'en';\n const { _nextI18Next, appName, isOneLink, oneLinkConfig } = props.pageProps || {};\n\n if (isBrowser && appName && _nextI18Next?.userConfig && oneLinkConfig) {\n const appPath = oneLinkConfig?.appPaths?.[appName];\n if (appPath) {\n if (isOneLink) {\n const browserLocalePrefix = !!language && language !== 'en' ? `/${language}` : '';\n const browserLocalePath = `${browserLocalePrefix}/${appPath}/locales`;\n _nextI18Next.userConfig = {\n ..._nextI18Next.userConfig,\n use: [i18nextHttpBackend],\n backend: {\n loadPath: `${browserLocalePath}/en/{{ns}}.json`,\n addPath: `${browserLocalePath}/en/{{ns}}.missing.json`,\n },\n };\n } else {\n _nextI18Next.userConfig = {\n ..._nextI18Next.userConfig,\n use: [i18nextHttpBackend],\n backend: {\n loadPath: `/${appPath}/locales/{{lng}}/{{ns}}.json`,\n addPath: `/${appPath}/locales/{{lng}}/{{ns}}.missing.json`,\n },\n };\n }\n }\n }\n\n const userConfig =\n rest || _nextI18Next?.userConfig?.i18n\n ? { ...rest, ...(_nextI18Next?.userConfig as UserConfig) }\n : undefined;\n\n return nextI18NextAppWithTranslation(WrappedComponent, userConfig)(props);\n };\n\n return hoistNonReactStatics(I18nFrameworkAppWithTranslation, WrappedComponent);\n}\n","const commaOverrides = {\n ar: 'ØŒ',\n ja: 'ã€',\n 'zh-hans': 'ã€',\n 'zh-hant': 'ã€',\n};\n\nexport function getLocaleComma({ locale }: { locale: string }) {\n return commaOverrides[locale as keyof typeof commaOverrides] || ',';\n}\n\nexport const getIntlNumberLocale = (locale: string) => {\n if (locale === 'ar') {\n return 'ar-ae';\n }\n return locale;\n};\n\nexport function getLocaleFormattedNumber(\n value: number | null | undefined,\n { locale, options }: { locale: string; options?: Intl.NumberFormatOptions }\n) {\n return typeof value === 'number'\n ? Intl.NumberFormat(getIntlNumberLocale(locale), options).format(value)\n : '';\n}\n","import type * as Types from './types';\n\nimport {\n useQuery,\n type QueryClient,\n type FetchQueryOptions,\n type UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { DXError } from '@dx-ui/types-graphql';\n\nexport const FeatureConfigsDocument = {\n operationName: 'featureConfigs',\n operationString: `query featureConfigs($names: [String!]) {\n featureConfigs(names: $names) {\n name\n conditions\n config\n }\n}`,\n originalOpName: 'featureConfigs',\n};\nexport function useFeatureConfigsQuery<TData = Types.FeatureConfigsQuery, TError = DXError>(\n variables?: Types.FeatureConfigsQueryVariables,\n options?: Omit<UseQueryOptions<Types.FeatureConfigsQuery, TError, TData>, 'queryKey'>\n) {\n return useQuery<Types.FeatureConfigsQuery, TError, TData>({\n queryKey: [FeatureConfigsDocument, variables],\n ...options,\n });\n}\nexport function serverSideFeatureConfigsQuery(\n queryClient: QueryClient,\n variables?: Types.FeatureConfigsQueryVariables,\n options?: FetchQueryOptions<Types.FeatureConfigsQuery>\n) {\n return queryClient.fetchQuery<Types.FeatureConfigsQuery>({\n queryKey: [FeatureConfigsDocument, variables],\n ...options,\n });\n}\n","import type { Rule } from '@dx-shared/rule-engine';\nimport { RuleEngine } from '@dx-shared/rule-engine';\nimport type { QueryClient } from '@tanstack/react-query';\nimport { serverSideFeatureConfigsQuery } from '../generated/queries';\nimport type { SupportedLanguage } from './types';\n\nexport type TranslatedUrlProps = {\n /** path of the url to evaluate in the RuleEngine. */\n path: string;\n /** Langauge to be used for evaluating whether the `path` is translated or not. */\n locale: SupportedLanguage;\n /** name of the feature config rule used to obtain the rule conditions. */\n rule: string;\n /** The default language. if the `locale` and the `defaultLocale` are the same returns true. */\n defaultLocale?: SupportedLanguage;\n /** react-query client used to perform the query to get the conditions */\n queryClient: QueryClient;\n};\n\nexport type LegacyTranslatedUrlProps = Omit<TranslatedUrlProps, 'queryClient'> & {\n endpoint: string;\n appName: string;\n};\n\n/**\n * Determines if a url has been translated. This determination is performed by the [RuleEngine](https://gitlab.svc-m.hhc.hilton.com/pac/hiw/dx-shared/-/tree/develop/packages/rule-engine) and is run with two facts:\n * - url - @see path\n * - language - @see locale\n *\n * @returns boolean - whether the `path` has been translated for `locale`\n */\nexport async function isTranslatedUrl({\n path,\n locale,\n rule,\n queryClient,\n defaultLocale = 'en',\n}: TranslatedUrlProps) {\n if (locale === defaultLocale) {\n return true;\n }\n // Prevent errant 404s on client-side transitions. See https://jira.hilton.com/confluence/x/CYiECg for details\n if (/^\\/_next\\/data\\//.test(path)) {\n return true;\n }\n\n const { featureConfigs } = await serverSideFeatureConfigsQuery(queryClient, { names: [rule] });\n const engine = new RuleEngine(featureConfigs[0] as Rule);\n const facts = {\n url: path,\n language: locale,\n };\n const isTranslated = engine.run(facts);\n return isTranslated;\n}\n\n/**\n * @deprecated - Performs same function as `isTranslatedUrl` but with a straight `fetch` and not `react-query`\n * @returns boolean - whether the `path` has been translated for `locale`\n */\nexport async function isLegacyTranslatedUrl({\n path,\n locale,\n rule,\n endpoint,\n appName,\n defaultLocale = 'en',\n}: LegacyTranslatedUrlProps) {\n if (locale === defaultLocale) {\n return true;\n }\n // Prevent errant 404s on client-side transitions. See https://jira.hilton.com/confluence/x/CYiECg for details\n if (/^\\/_next\\/data\\//.test(path)) {\n return true;\n }\n\n const modifiedEndpoint = `${endpoint}?appName=${appName}&operationName=featureConfigs`;\n const query = `query featureConfigs { \n featureConfigs(names: ${JSON.stringify([rule])}) {\n name\n conditions\n config\n } \n }`;\n const options: RequestInit = {\n method: 'post',\n credentials: 'same-origin',\n headers: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify({\n operationName: 'featureConfigs',\n query,\n }),\n };\n const response = await fetch(modifiedEndpoint, options);\n\n const { data } = await response.json();\n const engine = new RuleEngine(data?.featureConfigs[0] as Rule);\n const facts = {\n url: path,\n language: locale,\n };\n const isTranslated = engine.run(facts);\n return isTranslated;\n}\n\nexport default isTranslatedUrl;\n","import type { QueryClient } from '@tanstack/react-query';\nimport { serverSideFeatureConfigsQuery } from '../generated/queries';\nimport type { Conditions } from '@dx-shared/rule-engine';\nimport { RuleEngine } from '@dx-shared/rule-engine';\nimport type { SupportedLanguage } from './types';\n\ntype AppName = string;\ntype AkamaiName = string;\ntype Ctyhocn = string;\n\nexport type OneLinkConfig =\n | {\n appPaths: Record<AppName, AkamaiName>;\n languages?: Partial<Record<SupportedLanguage, AppName[]>>;\n whitelist?: Record<AppName, Record<SupportedLanguage, Ctyhocn>>;\n conditions: Conditions;\n supportedLanguages: SupportedLanguage[];\n }\n | undefined;\nexport type OneLinkPageProps = Partial<\n Pick<ReturnType<typeof getOneLinkProps>, 'appName' | 'oneLinkConfig' | 'isOneLink'>\n>;\n\nexport function shouldIncludeLanguageParam(\n locale: string,\n appName: string,\n url: string,\n oneLinkConfig?: OneLinkConfig | null\n) {\n try {\n if (oneLinkConfig && locale) {\n const configLocale = locale.match(/^(zh-hans|zh-hant|[a-z]+)/)?.[0] || 'en';\n const conditions = oneLinkConfig.conditions;\n const urlObj = /^https?/.test(url) ? new URL(url) : new URL(url, 'https://www.hilton.com');\n const pathName = urlObj.pathname;\n const ruleEngineResult = conditions\n ? new RuleEngine({\n name: 'onelink-conditions',\n conditions,\n }).run({ language: configLocale, url: pathName, appName })\n : false;\n return ruleEngineResult;\n }\n return false;\n } catch {\n return false;\n }\n}\n\nexport function getOneLinkProps(\n ...[locale, appName, url, oneLinkConfig]: Parameters<typeof shouldIncludeLanguageParam>\n) {\n const isOneLink = shouldIncludeLanguageParam(locale, appName, url, oneLinkConfig);\n const sstLocale = isOneLink ? 'en' : locale;\n return {\n appName,\n oneLinkConfig,\n sstLocale,\n isOneLink,\n };\n}\n\nconst CONFIG_NAME = 'config-ui-translate-onelink';\n\nexport async function serverSideOneLinkConfig(queryClient: QueryClient) {\n return serverSideFeatureConfigsQuery(queryClient, {\n names: [CONFIG_NAME],\n })?.then((data) => {\n return (\n (data.featureConfigs.find((config) => config.name === CONFIG_NAME)\n ?.config as OneLinkConfig) || null\n );\n });\n}\n\nexport const replaceLang = (stringValue: string, lang: string) =>\n stringValue.replace('__LANG__', lang);\n","/* istanbul ignore file */\nexport * from './app-with-translation';\nexport * from './locale-utils';\nexport * from './translated-url';\nexport * from './types';\nexport * from './util';\n","export * from './lib';\nexport * from './generated/queries';\n","import type { DXExecutionResult, QueryDebugInfo } from '@dx-ui/types-graphql';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\n\nexport type IncompleteQueryEvent = QueryDebugInfo & {\n message: string;\n};\n\nexport function triggerInCompleteEvent({\n requestBody,\n}: {\n requestBody: Partial<DXExecutionResult['__info__']>;\n}) {\n if (isBrowser) {\n const event = new CustomEvent<IncompleteQueryEvent>('dx-incomplete', {\n detail: {\n message: 'Incomplete data received from server',\n operationName: requestBody?.operationName || '',\n originalOpName: requestBody?.originalOpName || '',\n dxCompleteness: '0',\n isSSR: false,\n },\n });\n window.dispatchEvent(event);\n }\n}\n\nexport function isQueryIncomplete(response: Response) {\n return response.headers.get('dx-completeness') === '0';\n}\n","import { isBrowser } from '@dx-ui/utilities-is-browser';\nimport type { DtrumApi } from '@dynatrace/dtrum-api-types';\n\ndeclare global {\n interface Window {\n dtrum?: DtrumApi;\n }\n}\n\n/**\n * Simple wrapper around the Dynatrace RUM API.\n * {@link https://www.dynatrace.com/support/doc/javascriptapi/interfaces/dtrum_types.DtrumApi.html}\n */\nexport const dynatrace = isBrowser ? window.dtrum : undefined;\n","/* eslint-disable no-console */\nimport { env } from '@dx-ui/framework-env';\nimport { dynatrace } from './logger';\nimport * as React from 'react';\n\nconst ERROR_PAGE = 418;\n\nexport const LOG_LEVELS = {\n ERROR: 'ERROR',\n INFO: 'INFO',\n WARN: 'WARN',\n} as const;\n\ntype LOG_KEYS = StringWithAutocompleteOptions<\n | 'APPLICATION_ERROR'\n | 'AUTHENTICATION_ERROR'\n | 'BOOKING_ERROR'\n | 'BOOKING_INFO'\n | 'EVENT_INFO'\n | 'EXTERNAL_ERROR'\n | 'FATAL_ERROR'\n | 'FETCH_ERROR'\n | 'ROUTING_ERROR'\n | 'VALIDATION_ERROR'\n>;\n\n/**\n * Wrapper for {@link https://www.dynatrace.com/support/doc/javascriptapi/interfaces/dtrum_types.DtrumApi.html#reportCustomError | reportCustomError}.\n *\n * Specifies client-side `LOG_LEVEL` of `ERROR` which extends 'WARN' and also enables alerting in Dynatrace if the error rate is high. @see {@link https://docs.dynatrace.com/docs/platform/davis-ai/basics/terminology#alert | Davis AI Basics - Alerting}\n * For server-side, it will leverage `console.error`.\n *\n * @param key The key of the error. For example: 'Booking Error'\n * @param value The error value. For example: 'Payment failed to process.'\n * @param hint A hint to pinpoint the problem.\n * - By default this includes the app version.\n * - Anything over 100 characters will be truncated.\n * - The hint will appear as pipe delimited. For example: `dx-res-ui:234327|hint`\n */\nexport function logError(key: LogArgs[0], value: LogArgs[1], hint = '') {\n log(key, value, LOG_LEVELS.ERROR, hint);\n}\n\n/**\n * Wrapper for {@link https://www.dynatrace.com/support/doc/javascriptapi/interfaces/dtrum_types.DtrumApi.html#reportCustomError | reportCustomError}.\n *\n * Specifies client-side `LOG_LEVEL` of `WARN` which extends 'INFO' and also measures \"Apdex\" performance in Dynatrace. @see {@link https://docs.dynatrace.com/docs/shortlink/apdex | Apdex Ratings}\n * For server-side, it will leverage `console.warn`.\n *\n * @param key The key of the error. For example: 'Hotel Not Found'\n * @param value The error value. For example: 'ctyhocn or propCode not found.'\n * @param hint A hint to pinpoint the problem.\n * - By default this includes the app version.\n * - Anything over 100 characters will be truncated.\n * - The hint will appear as pipe delimited. For example: `dx-res-ui:234327|hint`\n */\nexport function logWarning(key: LogArgs[0], value: LogArgs[1], hint = '') {\n log(key, value, LOG_LEVELS.WARN, hint);\n}\n\n/**\n * Wrapper for {@link https://www.dynatrace.com/support/doc/javascriptapi/interfaces/dtrum_types.DtrumApi.html#reportCustomError | reportCustomError}.\n *\n * Specifies client-side `LOG_LEVEL` of `INFO` which captures the error in Dynatrace. @see {@link https://docs.dynatrace.com/docs/shortlink/application-performance#top-errors | Top Errors} and {@link https://docs.dynatrace.com/docs/shortlink/configure-application-errors | Configure Application Errors}\n * For server-side, it will leverage `console.info`.\n *\n * @param key The key of the error. For example: 'Validation Error'\n * @param value The error value. For example: 'First name does not match the regular expression.'\n * @param hint A hint to pinpoint the problem.\n * - By default this includes the app version.\n * - Anything over 100 characters will be truncated.\n * - The hint will appear as pipe delimited. For example: `dx-res-ui:234327|hint`\n */\nexport function logInfo(key: LogArgs[0], value: LogArgs[1], hint = '') {\n log(key, value, LOG_LEVELS.INFO, hint);\n}\n\n/**\n * Custom hook to enable manual page detection.\n *\n * @param {string} name - New view name. Usually it matches the location.pathname.\n * @param {string} group - The group associated with the page. The app name.\n */\nexport const useManualPageLogger = (name: string, group: string): void => {\n React.useEffect(() => {\n if (!dynatrace) {\n return console.warn('Dynatrace is not available.');\n }\n dynatrace.enableManualPageDetection();\n const modifiedGroup = window.location.pathname.startsWith('/en/') ? group : `${group}-NonEN`;\n const pageResult = dynatrace.setPage({ name, group: modifiedGroup });\n if (pageResult < 0) {\n console.warn('Error setting page group in Dynatrace');\n }\n });\n};\n\ntype LogArgs = Parameters<typeof log>;\n\nfunction log(\n key: LOG_KEYS,\n value: Parameters<typeof stringifyValue>[0],\n level: keyof typeof LOG_LEVELS,\n hint: string\n) {\n if (dynatrace) {\n const errorKey = `${level}:${key}` as const;\n dynatrace.markAsErrorPage(ERROR_PAGE, `DX-UI Logger ${level}`);\n dynatrace.reportCustomError(errorKey, stringifyValue(value), buildHint(hint), true);\n dynatrace.sendBeacon(true, true, true);\n\n if (!env('DISABLE_LOGGER_CONSOLE_ERROR') || env('DISABLE_LOGGER_CONSOLE_ERROR') === 'false') {\n const customError = new Error(stringifyValue(value), { cause: hint });\n customError.name = errorKey;\n console.error(customError);\n return;\n }\n }\n const fn = level.toLowerCase() as Lowercase<typeof level>;\n console[fn](key, value, hint);\n}\n\nfunction buildHint(hint: string) {\n const version = env('APP_VER');\n return [version, hint].filter(Boolean).join('|');\n}\n\nfunction stringifyValue(value: string | Error | Record<string, unknown>) {\n if (typeof value === 'string') {\n return value;\n }\n if (value instanceof Error) {\n return value.message;\n }\n return JSON.stringify(value);\n}\n","export * from './logger';\nexport * from './helpers';\n","export * from './lib';\n","import type { OutgoingMessage } from 'http';\nexport function mergeCacheControl(\n resp: Response,\n serverResp?: OutgoingMessage & {\n mergeHttpHeaders?: (headers: Record<string, string>) => void;\n }\n) {\n if (serverResp && serverResp.mergeHttpHeaders) {\n const headers: Record<string, string> = {};\n resp.headers.forEach((val: string, key: string) => {\n headers[key] = val;\n });\n serverResp.mergeHttpHeaders(headers);\n }\n}\n","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n cache: this,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Map();\n this.#mutationId = Date.now();\n }\n #mutations;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n const scope = scopeFor(mutation);\n const mutations = this.#mutations.get(scope) ?? [];\n mutations.push(mutation);\n this.#mutations.set(scope, mutations);\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n const scope = scopeFor(mutation);\n if (this.#mutations.has(scope)) {\n const mutations = this.#mutations.get(scope)?.filter((x) => x !== mutation);\n if (mutations) {\n if (mutations.length === 0) {\n this.#mutations.delete(scope);\n } else {\n this.#mutations.set(scope, mutations);\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const firstPendingMutation = this.#mutations.get(scopeFor(mutation))?.find((m) => m.state.status === \"pending\");\n return !firstPendingMutation || firstPendingMutation === mutation;\n }\n runNext(mutation) {\n const foundMutation = this.#mutations.get(scopeFor(mutation))?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((mutation) => {\n this.remove(mutation);\n });\n });\n }\n getAll() {\n return [...this.#mutations.values()].flat();\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id ?? String(mutation.mutationId);\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/infiniteQueryBehavior.ts\nimport { addToEnd, addToStart, ensureQueryFn } from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n if (context.signal.aborted) {\n cancelled = true;\n } else {\n context.signal.addEventListener(\"abort\", () => {\n cancelled = true;\n });\n }\n return context.signal;\n }\n });\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const page = await queryFn(\n queryFnContext\n );\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data)\n return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam)\n return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1)\n return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0)\n return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const cachedData = this.getQueryData(options.queryKey);\n if (cachedData === void 0)\n return this.fetchQuery(options);\n else {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n const refetchFilters = {\n type: \"active\",\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n cancelQueries(filters = {}, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters = {}, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters.refetchType === \"none\") {\n return Promise.resolve();\n }\n const refetchFilters = {\n ...filters,\n type: filters.refetchType ?? filters.type ?? \"active\"\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n refetchQueries(filters = {}, options) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options?.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n let result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n result = { ...result, ...queryDefault.defaultOptions };\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n let result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n result = { ...result, ...queryDefault.defaultOptions };\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.enabled !== true && defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","import type { Cookie, CookieSetOptions } from 'universal-cookie';\nimport Cookies from 'universal-cookie';\n\n/**\n * Returns a cookie for a given name. Takes an optional server cookie param if it's from server side.\n * @param name - name of cookie being looked up\n * @param serverCookies - cookie (typically from req.headers)\n */\nexport function getCookie(name: string, serverCookies?: string) {\n const cookie = new Cookies(serverCookies);\n return cookie.get(name);\n}\n\n/**\n * Sets a cookie for a given name/value. Takes an optional cookie options.\n * @param name - name of cookie being set\n * @param value - Cookie\n * @param options - CookieSetOptions\n */\nexport function setCookie(name: string, value: Cookie, options?: CookieSetOptions) {\n const cookie = new Cookies();\n cookie.set(name, value, {\n domain: '.hilton.com',\n sameSite: 'lax',\n path: '/',\n ...options,\n });\n}\n\n/**\n * Deletes a cookie with a given name. Takes an optional cookie options.\n * @param name - name of cookie being deleted\n * @param options - CookieSetOptions\n */\nexport function deleteCookie(name: string, options?: CookieSetOptions) {\n const cookie = new Cookies();\n cookie.remove(name, {\n domain: '.hilton.com',\n path: '/',\n ...options,\n });\n}\n","import type { ExecutionResult, GraphQLError, NamedTypeNode } from 'graphql';\n\nexport type DXErrorNotification = {\n code: number;\n fields: string[];\n message: string;\n};\n\nexport type DXExtension = {\n logSearch: string;\n operationName: string;\n code?: string;\n notifications?: DXErrorNotification[];\n};\n\nexport type DXGraphQLError = Omit<GraphQLError, 'extensions'> & {\n code: number;\n context: string;\n notifications: DXErrorNotification[];\n extensions: DXExtension;\n 'reference-error'?: string;\n};\n\nexport type DXError = GraphError | ServerAuthError;\n\nexport type DXExecutionResult = Omit<ExecutionResult, 'errors'> & {\n extensions?: DXExtension;\n errors?: ReadonlyArray<DXGraphQLError>;\n __info__?: QueryDebugInfo;\n};\nexport type DXNamedNode = NamedTypeNode & { value: string };\n\nexport type OperationErrors = 'Unauthorized' | 'Forbidden' | 'Not Found';\n\nexport class GraphError extends Error {\n data: DXExecutionResult['data'];\n graphQLErrors: DXGraphQLError[];\n\n public constructor(result: DXExecutionResult) {\n const graphQLErrors = result.errors as DXGraphQLError[];\n super(graphQLErrors?.[0]?.message || 'Unknown Error');\n this.data = result.data;\n this.graphQLErrors = graphQLErrors;\n }\n}\n\nexport class ServerAuthError extends Error {\n statusCode: number;\n\n public constructor(statusCode: number, message?: string) {\n super(message || 'Authorization Error');\n this.statusCode = statusCode;\n }\n}\n\nexport interface QueryDebugInfo {\n dxCompleteness: '0' | '1';\n isSSR: boolean;\n operationName: QueryDocument['operationName'];\n originalOpName: QueryDocument['originalOpName'];\n}\n\nexport type QueryDocument = {\n operationString: string;\n operationName: string;\n originalOpName: string;\n};\n\nexport type QueryVariables = Record<string, unknown> | undefined;\nexport type QueryKeyArgs = [QueryDocument, QueryVariables];\n\nexport type QueryRequestArgs = {\n document: QueryDocument;\n variables?: QueryVariables;\n};\n","export * from './graphql';\n","export * from './lib';\n","import { getCookie, setCookie } from '@dx-ui/utilities-cookies';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\nimport { addDays, startOfToday } from 'date-fns';\nimport type { IncomingMessage } from 'http';\nimport { isServer } from '@tanstack/react-query';\nimport type { GetServerSidePropsContext } from 'next';\nimport type { DXError } from '@dx-ui/types-graphql';\nimport { ServerAuthError, GraphError } from '@dx-ui/types-graphql';\n\nexport function causedByUnauthorized(error?: DXError) {\n if (error) {\n if (error instanceof ServerAuthError) {\n return error.statusCode === 401;\n }\n if (error instanceof GraphError) {\n return (\n error.graphQLErrors?.some(\n (error) => error?.message === 'Unauthorized' || error?.code === 401\n ) || false\n );\n }\n }\n return false;\n}\n\nexport function causedByForbidden(error?: DXError) {\n if (error) {\n if (error instanceof ServerAuthError) {\n return error.statusCode === 403;\n }\n if (error instanceof GraphError) {\n return (\n error.graphQLErrors?.some(\n (error) => error?.message === 'Forbidden' || error?.code === 403\n ) || false\n );\n }\n }\n return false;\n}\n\nexport function causedByNotFound(error?: DXError) {\n if (error) {\n if (error instanceof ServerAuthError) {\n return error.statusCode === 404;\n }\n if (error instanceof GraphError) {\n return (\n error.graphQLErrors?.some(\n (error) => error?.message === 'Not Found' || error?.code === 404\n ) || false\n );\n }\n }\n return false;\n}\n\nexport function getVisitorId() {\n if (!isBrowser) {\n return null;\n }\n const visitorId: string = getCookie('visitorId');\n return visitorId || setVisitorId();\n}\n\nexport function setVisitorId() {\n if (isBrowser) {\n const uuid = crypto.randomUUID();\n setCookie('visitorId', uuid, {\n expires: addDays(startOfToday(), 90),\n domain: window.location.hostname,\n });\n return uuid;\n }\n return null;\n}\n\nexport function generateReferrer(origin: string, language: string, request?: IncomingMessage) {\n try {\n const pathname = isServer ? `/${language}${request?.url}` : window.location.pathname;\n const url = new URL(pathname, origin);\n return `${url.origin}${url.pathname}`;\n } catch {\n return undefined;\n }\n}\n\nexport function getSafeLanguage(language: string) {\n const zhMapping: { [key: string]: string } = {\n 'zh-cn': 'zh-hans',\n 'zh-hk': 'zh-hant',\n };\n const mappedLang = zhMapping[language] || language;\n const splitLanguage = mappedLang.split('-') as [string, string | undefined];\n return language.includes('zh-') ? splitLanguage.slice(0, 2).join('-') : splitLanguage[0];\n}\n\nexport function getServerSideSafeLanguage(context: GetServerSidePropsContext) {\n const queryContentLocale = Array.isArray(context.query.content)\n ? context.query.content[0]\n : context.query.content;\n const headerOriginalLocale =\n (context?.req.headers?.['x-originallocale'] as string)?.toLowerCase() || undefined;\n const language = queryContentLocale || headerOriginalLocale || context.locale || 'en';\n return getSafeLanguage(language);\n}\n","export function isExtractableFile(value: File | Blob | undefined) {\n return (\n (typeof File !== 'undefined' && value instanceof File) ||\n (typeof Blob !== 'undefined' && value instanceof Blob)\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isExtractableFile as defaultIsExtractableFile } from './isExtractableFile';\n\nexport function extractFiles(value: any, path = '', isExtractableFile = defaultIsExtractableFile) {\n // Map of extracted files and their object paths within the input value.\n const files = new Map();\n\n // Map of arrays and objects recursed within the input value and their clones,\n // for reusing clones of values that are referenced multiple times within the\n // input value.\n const clones = new Map();\n\n /**\n * Recursively clones the value, extracting files.\n * @kind function\n * @name extractFiles~recurse\n * @param {*} value Value to extract files from.\n * @param {ObjectPath} path Prefix for object paths for extracted files.\n * @param {Set} recursed Recursed arrays and objects for avoiding infinite recursion of circular references within the input value.\n * @returns {*} Clone of the value with files replaced with `null`.\n * @ignore\n */\n function recurse(value: any, path = '', recursed: Set<unknown>) {\n let clone = value;\n\n if (isExtractableFile(value)) {\n clone = null;\n\n const filePaths = files.get(value);\n\n filePaths ? filePaths.push(path) : files.set(value, [path]);\n } else {\n const isList =\n Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList);\n const isObject = value && value.constructor === Object;\n\n if (isList || isObject) {\n const hasClone = clones.has(value);\n\n if (hasClone) clone = clones.get(value);\n else {\n clone = isList ? [] : {};\n\n clones.set(value, clone);\n }\n\n if (!recursed.has(value)) {\n const pathPrefix = path ? `${path}.` : '';\n const recursedDeeper = new Set(recursed).add(value);\n\n if (isList) {\n let index = 0;\n\n for (const item of value as any) {\n const itemClone = recurse(item, pathPrefix + index++, recursedDeeper);\n\n if (!hasClone) clone.push(itemClone);\n }\n } else\n for (const key of Object.keys(value)) {\n const propertyClone = recurse(value[key], pathPrefix + key, recursedDeeper);\n\n if (!hasClone) clone[key] = propertyClone;\n }\n }\n }\n }\n\n return clone;\n }\n\n return {\n clone: recurse(value, path, new Set()),\n files,\n };\n}\n","import { GraphError, ServerAuthError } from '@dx-ui/types-graphql';\n\n/**\n *\n * @returns a new Error object based on the input argument\n */\nexport function generateError(arg: unknown) {\n const UNKNOWN_ERROR_MSG = 'An unknown error occurred.';\n if (arg instanceof ServerAuthError || arg instanceof Error || arg instanceof GraphError) {\n return arg;\n }\n if (typeof arg === 'string') {\n return new Error(arg);\n }\n return new Error(UNKNOWN_ERROR_MSG);\n}\n","export * from './generate-error';\n","export * from './lib';\n","import type { IncomingMessage, OutgoingMessage } from 'http';\nimport type { AuthClient } from '@dx-ui/framework-auth-provider';\nimport { mergeCacheControl } from '@dx-ui/framework-merge-cache-control';\nimport type {\n MutationFunction,\n QueryFunction,\n QueryFunctionContext,\n QueryKey,\n} from '@tanstack/react-query';\nimport type { OneLinkConfig } from '@dx-ui/framework-i18n';\nimport { shouldIncludeLanguageParam } from '@dx-ui/framework-i18n';\nimport {\n causedByForbidden,\n causedByUnauthorized,\n generateReferrer,\n getSafeLanguage,\n getVisitorId,\n} from './default-fetch-fn-utils';\nimport { extractFiles, isExtractableFile } from './extract-files';\nimport FormData from 'form-data';\nimport { logWarning } from '@dx-ui/framework-logger';\nimport { isBrowser } from '@dx-ui/utilities-is-browser';\nimport type {\n QueryRequestArgs,\n DXExecutionResult,\n QueryDebugInfo,\n QueryKeyArgs,\n} from '@dx-ui/types-graphql';\nimport { ServerAuthError, GraphError } from '@dx-ui/types-graphql';\nimport { generateError } from '@dx-ui/utilities-generate-error';\nimport type { errors } from 'undici';\nimport { isQueryIncomplete, triggerInCompleteEvent } from '@dx-ui/framework-incomplete-event';\n\ntype QueryRequest = QueryRequestArgs & MakeDefaultFnArgs;\n\ntype QueryResult = DXExecutionResult['data'];\n\nconst forwardHeaders = ['dx-preview', 'dx-toggles'];\n\nexport async function makeRequest(\n queryRequest: QueryRequest,\n signal?: AbortSignal,\n retries = 0,\n undiciErrorSocketRetries = 0\n): Promise<QueryResult> {\n const {\n appName,\n authClient,\n authenticatedOperationNames,\n handleAuthenticatedOperationError,\n handleRequestEndpoint,\n handleRequestHeaders,\n customHeaders,\n document,\n oneLinkConfig,\n referrer: referrerArg,\n referrerPolicy,\n routerLocale = '',\n serverRequest: serverRequestArg,\n serverResponse,\n ssrMode = false,\n variables,\n variablesToIncludeInParams,\n } = queryRequest;\n\n if (!authClient) {\n throw new Error('auth client not provided');\n }\n const serverRequest = serverRequestArg || serverResponse?.req;\n const { operationString: query, operationName, originalOpName } = document;\n const requestBody = { query, operationName, variables };\n const authenticatedOperation = authenticatedOperationNames?.includes(operationName);\n const endpoint = handleRequestEndpoint?.(serverRequest) || authClient.getGqlEndpoint();\n let authHeader: string | null = null;\n\n if (authenticatedOperation && !authClient.getIsLoggedIn()) {\n const accessToken = await handleAuthenticatedOperationError?.().catch(() => null);\n authHeader = accessToken ? `Bearer ${accessToken}` : await authClient.getAuthorizationHeader();\n } else {\n authHeader = await authClient.getAuthorizationHeader();\n }\n\n const visitoridHeader = serverResponse?.req?.headers['visitorid'] as string | undefined;\n const hltClientMessageIdHeader = serverResponse?.req?.headers['hltclientmessageid'] as\n | string\n | undefined;\n\n const headers: HeadersInit = {\n 'Content-Type': 'application/json',\n ...(!authClient.webGuestMetadataCookie && { Authorization: authHeader }),\n 'dx-platform': (serverResponse?.req?.headers['dx-platform'] as string) ?? 'web',\n ...(visitoridHeader && { visitorid: visitoridHeader }),\n ...(hltClientMessageIdHeader && { hltclientmessageid: hltClientMessageIdHeader }),\n ...customHeaders,\n ...handleRequestHeaders?.(serverRequest),\n };\n\n const bodyLanguage =\n (variables?.language as string | undefined) || (variables?.lang as string | undefined) || 'en';\n const browserUrl = isBrowser ? window.location.href : '';\n const includeLanguageParam = shouldIncludeLanguageParam(\n routerLocale,\n appName || '',\n browserUrl,\n oneLinkConfig\n );\n\n if (ssrMode) {\n headers['dx-trusted-app'] = 'true';\n }\n\n // Always forward these headers from the incoming request\n forwardHeaders.forEach((header) => {\n if (serverResponse?.req?.headers[header]) {\n headers[header] = serverResponse.req.headers[header] as string;\n }\n });\n\n // Add generated visitorId & messsageId\n const visitorId = getVisitorId();\n if (visitorId || visitoridHeader) {\n const requestId = crypto.randomUUID().replace(/-/g, '');\n const hltClientMessageId = `${visitorId}-${requestId}`;\n //If custom header for visitorid or hltClientMessageid are set, use that instead of the generated one\n headers['visitorid'] = visitoridHeader || visitorId || '';\n headers['hltclientmessageid'] = hltClientMessageIdHeader || hltClientMessageId || '';\n }\n\n // Add referrer\n const referrer = referrerArg || generateReferrer(endpoint, routerLocale, serverRequest);\n\n // Create params from variables\n const paramsFromVariables: Record<string, unknown> = {};\n if (variablesToIncludeInParams?.length) {\n variablesToIncludeInParams.forEach((variable) => {\n const value = variables?.[variable];\n if (value) {\n paramsFromVariables[variable] = value;\n }\n });\n }\n\n // Add params\n const params = new URLSearchParams({\n appName,\n operationName,\n originalOpName,\n bl: bodyLanguage,\n ...paramsFromVariables,\n ...(includeLanguageParam && { language: getSafeLanguage(routerLocale) }),\n }).toString();\n\n // Append files\n // https://github.com/jaydenseric/apollo-upload-client/blob/master/public/createUploadLink.js\n const { clone, files } = extractFiles(requestBody, '', isExtractableFile);\n const form = new FormData();\n if (files.size) {\n // Automatically set by `fetch` when the `body` is a `FormData` instance.\n delete headers['Content-Type'];\n\n // GraphQL multipart request spec:\n // https://github.com/jaydenseric/graphql-multipart-request-spec\n form.append('operations', JSON.stringify(clone));\n\n const map: Record<number, string[]> = {};\n let i = 0;\n files.forEach((paths) => {\n map[++i] = paths;\n });\n form.append('map', JSON.stringify(map));\n\n i = 0;\n files.forEach((_, file: File) => {\n formDataAppendFile(form, ++i, file);\n });\n }\n\n const finalUrl = `${endpoint}?${params}`;\n\n const response = await fetch(finalUrl, {\n method: 'POST',\n headers,\n referrer,\n referrerPolicy,\n body: files.size ? (form as unknown as BodyInit) : JSON.stringify(requestBody),\n signal,\n }).catch((error) => {\n const safeError = generateError(error);\n if (\n (safeError as errors.SocketError).code === 'UND_ERR_SOCKET' &&\n undiciErrorSocketRetries < 1\n ) {\n return makeRequest(queryRequest, signal, retries, undiciErrorSocketRetries + 1);\n }\n throw error;\n });\n\n const refreshAndRetry = async () => {\n await authClient.refreshToken();\n return makeRequest(queryRequest, signal, retries + 1, undiciErrorSocketRetries);\n };\n if (!response?.ok) {\n const responseText = await response?.text();\n let jsonResult: DXExecutionResult | undefined;\n try {\n jsonResult = JSON.parse(responseText);\n } catch {\n // ignore failed to parse json\n }\n\n const isForbidden = response?.status === 403;\n\n const referenceError = jsonResult?.errors?.map((er) => er['reference-error']);\n referenceError?.forEach((ref) => {\n if (ref) {\n logWarning('403', '403 reference', ref);\n }\n });\n\n if (authenticatedOperation) {\n if (!isForbidden && authClient.getIsLoggedIn() && retries < 1) {\n return refreshAndRetry();\n }\n const errorMessage = jsonResult?.errors?.[0]?.message || '';\n throw new ServerAuthError(response?.status, errorMessage);\n }\n\n const isUnauthorized = response?.status === 401;\n if (isUnauthorized && retries < 1) {\n return refreshAndRetry();\n }\n // handle errors if response is not ok\n const shouldRetry =\n jsonResult && handleResultErrors(jsonResult, authClient, authenticatedOperation, retries);\n if (shouldRetry) return refreshAndRetry();\n\n // request failed for unknown reason\n throw new Error(`request failed ${response?.status} ${responseText}`);\n }\n\n // merge cache headers if server\n if (response instanceof Response) {\n mergeCacheControl(response, serverResponse);\n }\n\n const result: DXExecutionResult = await response.json();\n\n // handle errors if response is ok\n const shouldRetry = handleResultErrors(result, authClient, authenticatedOperation, retries);\n if (shouldRetry) return refreshAndRetry();\n\n if (isQueryIncomplete(response as Response)) {\n triggerInCompleteEvent({\n requestBody: {\n operationName,\n originalOpName,\n },\n });\n }\n\n return {\n ...result.data,\n __info__: {\n dxCompleteness: response.headers.get('dx-completeness'),\n isSSR: typeof window === 'undefined',\n operationName,\n originalOpName,\n },\n };\n}\n\nexport type IncompleteQueryEvent = QueryDebugInfo & {\n message: string;\n};\n\nexport type MakeDefaultFnOneLinkArgs =\n | {\n oneLinkConfig?: never;\n routerLocale?: never;\n }\n | {\n oneLinkConfig: OneLinkConfig | null;\n routerLocale: string;\n };\n\nexport type MakeDefaultFnAuthenticatedOperationErrorArgs =\n | {\n handleAuthenticatedOperationError: () => Promise<string | null>;\n authenticatedOperationNames: string[];\n }\n | {\n handleAuthenticatedOperationError?: never;\n authenticatedOperationNames?: never;\n };\n\nexport type MakeDefaultFnOptionalArgs = MakeDefaultFnOneLinkArgs &\n MakeDefaultFnAuthenticatedOperationErrorArgs;\n\nexport type MakeDefaultFnArgs = {\n appName: string;\n authClient: AuthClient;\n customHeaders?: Record<string, string>;\n customParams?: Record<string, string>;\n handleRequestEndpoint?: (req?: IncomingMessage) => string;\n handleRequestHeaders?: (req?: IncomingMessage) => Record<string, string> | undefined;\n referrer?: string;\n referrerPolicy?: ReferrerPolicy;\n serverRequest?: IncomingMessage;\n serverResponse?: OutgoingMessage;\n ssrMode?: boolean;\n variablesToIncludeInParams?: string[];\n} & MakeDefaultFnOptionalArgs;\n\nexport function makeDefaultQueryFn(args: MakeDefaultFnArgs): QueryFunction<QueryResult, QueryKey> {\n return ({ queryKey, signal }: QueryFunctionContext<QueryKey>): Promise<QueryResult> => {\n const [query, variables] = queryKey as QueryKeyArgs;\n return makeRequest(\n {\n ...args,\n document: query,\n variables,\n },\n signal\n );\n };\n}\n\nexport function makeDefaultMutationFn(args: MakeDefaultFnArgs): MutationFunction {\n return (params): Promise<unknown> => {\n const [mutation, variables] = params as QueryKeyArgs;\n return makeRequest({\n ...args,\n document: mutation,\n variables,\n });\n };\n}\n\nfunction formDataAppendFile(formData: FormData, fieldName: number, file: File) {\n formData.append(fieldName.toString(), file, file.name);\n}\n\nfunction handleResultErrors(\n result: DXExecutionResult,\n authClient: AuthClient,\n authenticatedOperation = false,\n retries: number\n) {\n if (result.errors) {\n const error = new GraphError(result);\n\n if (authenticatedOperation) {\n if (\n (causedByUnauthorized(error) || causedByForbidden(error)) &&\n authClient.getIsLoggedIn() &&\n retries < 1\n ) {\n // return true to retry\n return true;\n }\n }\n throw error;\n }\n return false;\n}\n","import type { AuthClient } from '@dx-ui/framework-auth-provider';\nimport { makeAuthClient } from '@dx-ui/framework-auth-provider';\nimport type { IncomingMessage, OutgoingMessage } from 'http';\nimport type { DefaultOptions } from '@tanstack/react-query';\nimport { dehydrate, QueryClient } from '@tanstack/react-query';\nimport type { MakeDefaultFnArgs } from './default-fetch-fn';\nimport { makeDefaultMutationFn, makeDefaultQueryFn } from './default-fetch-fn';\nimport type { QueryDocument, QueryVariables } from '@dx-ui/types-graphql';\nimport { GraphError, ServerAuthError } from '@dx-ui/types-graphql';\n\nexport type MakeQueryClientArgs = MakeDefaultFnArgs & {\n reactQueryClientOverrideOptions?: DefaultOptions['queries'];\n};\n\nexport const CDN_STALE_TIME = 1000 * 60 * 60 * 6; // 6 hours\n\nfunction retry(failureCount: number, error: unknown) {\n // If there error was a GraphError or ServerAuthError (401/403), then do not retry, we manually retry or handle in the UI\n if (error instanceof ServerAuthError || error instanceof GraphError) {\n return false;\n }\n return failureCount < 2;\n}\n\nexport function makeQueryClient({\n reactQueryClientOverrideOptions = {},\n ssrMode = false,\n ...makeDefaultFnArgs\n}: MakeQueryClientArgs) {\n return new QueryClient({\n defaultOptions: {\n queries: {\n queryFn: makeDefaultQueryFn({\n ...makeDefaultFnArgs,\n ssrMode,\n }),\n ...(!ssrMode\n ? {\n refetchOnWindowFocus: false,\n cacheTime: Infinity,\n retry,\n staleTime: 60 * 60 * 1000, // 1 hour\n ...reactQueryClientOverrideOptions,\n }\n : { ...reactQueryClientOverrideOptions }),\n },\n mutations: {\n mutationFn: makeDefaultMutationFn({\n ...makeDefaultFnArgs,\n ssrMode,\n }),\n retry,\n },\n },\n });\n}\n\nexport function makeServerQueryClient({\n appName,\n authClient,\n customHeaders,\n referrer,\n serverResponse,\n}: {\n appName: string;\n authClient: AuthClient;\n customHeaders?: Record<string, string>;\n referrer?: string;\n serverResponse: OutgoingMessage;\n}) {\n return makeQueryClient({\n appName,\n authClient,\n customHeaders,\n referrer,\n serverResponse,\n ssrMode: true,\n });\n}\n\nexport function getServerSideClients({\n appName,\n customHeaders,\n request,\n response,\n appId,\n authEndpoints,\n gqlEndpoints,\n referrer,\n}: {\n appName: string;\n request?: IncomingMessage;\n response: OutgoingMessage;\n appId: string;\n authEndpoints: {\n browser: string;\n server: string;\n };\n customHeaders?: Record<string, string>;\n referrer?: string;\n gqlEndpoints: {\n browser: string;\n server: string;\n };\n}) {\n const authClient = makeAuthClient({\n appName,\n request,\n ssrMode: true,\n response,\n appId,\n authEndpoints,\n gqlEndpoints,\n });\n const queryClient = makeServerQueryClient({\n appName,\n authClient,\n customHeaders,\n referrer,\n serverResponse: response,\n });\n return { queryClient, authClient };\n}\n\nexport async function makeServerSideGql({\n appName,\n queries,\n request,\n response,\n appId,\n authEndpoints,\n customHeaders,\n gqlEndpoints,\n referrer,\n}: {\n appName: string;\n queries: [QueryDocument, QueryVariables][];\n request?: IncomingMessage;\n response: OutgoingMessage;\n appId: string;\n authEndpoints: {\n browser: string;\n server: string;\n };\n customHeaders?: Record<string, string>;\n gqlEndpoints: {\n browser: string;\n server: string;\n };\n referrer?: string;\n}) {\n const authClient = makeAuthClient({\n appName,\n request,\n ssrMode: true,\n response,\n appId,\n authEndpoints,\n gqlEndpoints,\n });\n const queryClient = makeServerQueryClient({\n appName,\n authClient,\n customHeaders,\n referrer,\n serverResponse: response,\n });\n\n const promises = queries.map((queryKey) => {\n return queryClient.prefetchQuery({ queryKey });\n });\n\n await Promise.all(promises);\n return {\n queryClient,\n authClient,\n dehydratedState: dehydrate(queryClient),\n };\n}\n","import { useRef } from 'react';\nimport type { QueryClient } from '@tanstack/react-query';\nimport { isServer } from '@tanstack/react-query';\nimport type { AuthClient, MakeAuthClientArgs } from '@dx-ui/framework-auth-provider';\nimport { makeAuthClient } from '@dx-ui/framework-auth-provider';\nimport type { MakeQueryClientArgs } from './make-query-client';\nimport { makeQueryClient } from './make-query-client';\nimport type { MakeDefaultFnOptionalArgs } from './default-fetch-fn';\n\nexport type PagePropsUseClients = Pick<\n MakeAuthClientArgs,\n 'appId' | 'appName' | 'authEndpoints' | 'gqlEndpoints'\n> & {\n authClientState?: MakeAuthClientArgs['restore'];\n} & Omit<MakeQueryClientArgs, 'authClient'> &\n MakeDefaultFnOptionalArgs;\n\nexport function useClients(pageProps: PagePropsUseClients) {\n const { appId, appName, authEndpoints, gqlEndpoints, authClientState, ...queryClientProps } =\n pageProps;\n const queryClientRef = useRef<QueryClient | null>(null);\n const authClientRef = useRef<AuthClient | null>(null);\n if (!authClientRef.current) {\n authClientRef.current = makeAuthClient({\n appId,\n appName,\n authEndpoints,\n gqlEndpoints,\n restore: authClientState,\n ssrMode: isServer,\n });\n }\n if (!queryClientRef.current) {\n queryClientRef.current = makeQueryClient({\n ...queryClientProps,\n appName,\n authClient: authClientRef.current,\n ssrMode: isServer,\n });\n }\n return {\n queryClient: queryClientRef.current,\n authClient: authClientRef.current,\n };\n}\n","// src/hydration.ts\nfunction defaultTransformerFn(data) {\n return data;\n}\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state,\n ...mutation.options.scope && { scope: mutation.options.scope },\n ...mutation.meta && { meta: mutation.meta }\n };\n}\nfunction dehydrateQuery(query, serializeData) {\n return {\n state: {\n ...query.state,\n ...query.state.data !== void 0 && {\n data: serializeData(query.state.data)\n }\n },\n queryKey: query.queryKey,\n queryHash: query.queryHash,\n ...query.state.status === \"pending\" && {\n promise: query.promise?.then(serializeData).catch((error) => {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `A query that was dehydrated as pending ended up rejecting. [${query.queryHash}]: ${error}; The error will be redacted in production builds`\n );\n }\n return Promise.reject(new Error(\"redacted\"));\n })\n },\n ...query.meta && { meta: query.meta }\n };\n}\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === \"success\";\n}\nfunction dehydrate(client, options = {}) {\n const filterMutation = options.shouldDehydrateMutation ?? client.getDefaultOptions().dehydrate?.shouldDehydrateMutation ?? defaultShouldDehydrateMutation;\n const mutations = client.getMutationCache().getAll().flatMap(\n (mutation) => filterMutation(mutation) ? [dehydrateMutation(mutation)] : []\n );\n const filterQuery = options.shouldDehydrateQuery ?? client.getDefaultOptions().dehydrate?.shouldDehydrateQuery ?? defaultShouldDehydrateQuery;\n const serializeData = options.serializeData ?? client.getDefaultOptions().dehydrate?.serializeData ?? defaultTransformerFn;\n const queries = client.getQueryCache().getAll().flatMap(\n (query) => filterQuery(query) ? [dehydrateQuery(query, serializeData)] : []\n );\n return { mutations, queries };\n}\nfunction hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== \"object\" || dehydratedState === null) {\n return;\n }\n const mutationCache = client.getMutationCache();\n const queryCache = client.getQueryCache();\n const deserializeData = options?.defaultOptions?.deserializeData ?? client.getDefaultOptions().hydrate?.deserializeData ?? defaultTransformerFn;\n const mutations = dehydratedState.mutations || [];\n const queries = dehydratedState.queries || [];\n mutations.forEach(({ state, ...mutationOptions }) => {\n mutationCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.mutations,\n ...options?.defaultOptions?.mutations,\n ...mutationOptions\n },\n state\n );\n });\n queries.forEach(({ queryKey, state, queryHash, meta, promise }) => {\n let query = queryCache.get(queryHash);\n const data = state.data === void 0 ? state.data : deserializeData(state.data);\n if (query) {\n if (query.state.dataUpdatedAt < state.dataUpdatedAt) {\n const { fetchStatus: _ignored, ...serializedState } = state;\n query.setState({\n ...serializedState,\n data\n });\n }\n } else {\n query = queryCache.build(\n client,\n {\n ...client.getDefaultOptions().hydrate?.queries,\n ...options?.defaultOptions?.queries,\n queryKey,\n queryHash,\n meta\n },\n // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n {\n ...state,\n data,\n fetchStatus: \"idle\"\n }\n );\n }\n if (promise) {\n const initialPromise = Promise.resolve(promise).then(deserializeData);\n void query.fetch(void 0, { initialPromise });\n }\n });\n}\nexport {\n defaultShouldDehydrateMutation,\n defaultShouldDehydrateQuery,\n dehydrate,\n hydrate\n};\n//# sourceMappingURL=hydration.js.map","\"use client\";\n\n// src/HydrationBoundary.tsx\nimport * as React from \"react\";\nimport { hydrate } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nvar HydrationBoundary = ({\n children,\n options = {},\n state,\n queryClient\n}) => {\n const client = useQueryClient(queryClient);\n const [hydrationQueue, setHydrationQueue] = React.useState();\n const optionsRef = React.useRef(options);\n optionsRef.current = options;\n React.useMemo(() => {\n if (state) {\n if (typeof state !== \"object\") {\n return;\n }\n const queryCache = client.getQueryCache();\n const queries = state.queries || [];\n const newQueries = [];\n const existingQueries = [];\n for (const dehydratedQuery of queries) {\n const existingQuery = queryCache.get(dehydratedQuery.queryHash);\n if (!existingQuery) {\n newQueries.push(dehydratedQuery);\n } else {\n const hydrationIsNewer = dehydratedQuery.state.dataUpdatedAt > existingQuery.state.dataUpdatedAt;\n const queryAlreadyQueued = hydrationQueue?.find(\n (query) => query.queryHash === dehydratedQuery.queryHash\n );\n if (hydrationIsNewer && (!queryAlreadyQueued || dehydratedQuery.state.dataUpdatedAt > queryAlreadyQueued.state.dataUpdatedAt)) {\n existingQueries.push(dehydratedQuery);\n }\n }\n }\n if (newQueries.length > 0) {\n hydrate(client, { queries: newQueries }, optionsRef.current);\n }\n if (existingQueries.length > 0) {\n setHydrationQueue(\n (prev) => prev ? [...prev, ...existingQueries] : existingQueries\n );\n }\n }\n }, [client, hydrationQueue, state]);\n React.useEffect(() => {\n if (hydrationQueue) {\n hydrate(client, { queries: hydrationQueue }, optionsRef.current);\n setHydrationQueue(void 0);\n }\n }, [client, hydrationQueue]);\n return children;\n};\nexport {\n HydrationBoundary\n};\n//# sourceMappingURL=HydrationBoundary.js.map","import type { QueryClient } from '@tanstack/react-query';\nimport { useEffect } from 'react';\nimport type { IncompleteQueryEvent } from './default-fetch-fn';\nimport { logError } from '@dx-ui/framework-logger';\nimport type { DXExecutionResult, QueryDebugInfo } from '@dx-ui/types-graphql';\n\nexport function useQueryIncomplete({\n queryClient,\n onIncompleteQuery,\n incompleteLoggingEnabled,\n}: {\n queryClient: QueryClient;\n onIncompleteQuery:\n | ((query: QueryDebugInfo) => {\n reportIncomplete: boolean;\n })\n | undefined;\n incompleteLoggingEnabled: boolean | undefined;\n}) {\n useEffect(() => {\n const ssrResults = queryClient.getQueriesData<DXExecutionResult>({\n predicate: (query) => (query.state.data as DXExecutionResult)?.__info__?.isSSR === true,\n });\n const incompleteSSRQueries = ssrResults.filter(([, data]) => {\n return data && data.__info__?.dxCompleteness !== '1';\n });\n\n if (incompleteSSRQueries.length > 0) {\n incompleteSSRQueries.forEach(([, data]) => {\n if (data && data.__info__) {\n const { reportIncomplete } = onIncompleteQuery?.(data.__info__) || {\n reportIncomplete: true,\n };\n if (reportIncomplete && incompleteLoggingEnabled) {\n logError(\n 'SSR_INCOMPLETE',\n `${data?.__info__.operationName} / ${data.__info__?.originalOpName}`\n );\n }\n }\n });\n }\n\n if (typeof window !== 'undefined') {\n const listener = (event: CustomEvent<IncompleteQueryEvent>) => {\n // at this point we have a client side query that had a header dx-completeness: 0\n // log that to logger, after letting callers determine if they should report (report by default)\n const { reportIncomplete } = onIncompleteQuery?.(event.detail) || {\n reportIncomplete: true,\n };\n if (reportIncomplete && incompleteLoggingEnabled) {\n // report to logger if the value is on\n logError(\n 'CLIENT_INCOMPLETE',\n `${event.detail.operationName} / ${event.detail.originalOpName}`\n );\n }\n };\n window.addEventListener('dx-incomplete', listener as EventListener);\n return () => {\n window.removeEventListener('dx-incomplete', listener as EventListener);\n };\n }\n return () => undefined;\n }, [queryClient, onIncompleteQuery, incompleteLoggingEnabled]);\n}\n","import type { PagePropsUseClients } from './use-clients';\nimport { useClients } from './use-clients';\nimport { AuthProvider } from '@dx-ui/framework-auth-provider';\nimport type { DehydratedState } from '@tanstack/react-query';\nimport { HydrationBoundary, QueryClientProvider } from '@tanstack/react-query';\nimport { ReactQueryDevtools } from '@tanstack/react-query-devtools';\nimport { useQueryIncomplete } from './use-query-incomplete';\nimport type { QueryDebugInfo } from '@dx-ui/types-graphql';\n\nexport type QueryProviderProps = {\n devtoolsOptions?: React.ComponentProps<typeof ReactQueryDevtools>;\n dehydratedQueryState?: DehydratedState;\n onIncompleteQuery?: (query: QueryDebugInfo) => {\n reportIncomplete: boolean;\n };\n incompleteLoggingEnabled?: boolean;\n} & PagePropsUseClients;\n\nexport function QueryProvider({\n children,\n dehydratedQueryState,\n devtoolsOptions,\n onIncompleteQuery,\n incompleteLoggingEnabled,\n ...useClientProps\n}: React.PropsWithChildren<QueryProviderProps>) {\n const { queryClient, authClient } = useClients(useClientProps);\n\n useQueryIncomplete({ queryClient, onIncompleteQuery, incompleteLoggingEnabled });\n\n return (\n <AuthProvider authClient={authClient}>\n <QueryClientProvider client={queryClient}>\n <HydrationBoundary state={dehydratedQueryState}>{children}</HydrationBoundary>\n <ReactQueryDevtools initialIsOpen={false} {...devtoolsOptions} />\n </QueryClientProvider>\n </AuthProvider>\n );\n}\n","export * from './query-provider';\nexport * from './make-query-client';\nexport * from './default-fetch-fn';\nexport * from './default-fetch-fn-utils';\n","export * from './lib';\n","/**\n * Checks window object to determine whether app is running on client or not.\n */\nexport const isBrowser = typeof window !== 'undefined';\n","var MILLISECONDS_IN_MINUTE = 60000;\n\nfunction getDateMillisecondsPart(date) {\n return date.getTime() % MILLISECONDS_IN_MINUTE;\n}\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\n\n\nexport default function getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset());\n date.setSeconds(0, 0);\n var hasNegativeUTCOffset = baseTimezoneOffset > 0;\n var millisecondsPartOfTimezoneOffset = hasNegativeUTCOffset ? (MILLISECONDS_IN_MINUTE + getDateMillisecondsPart(date)) % MILLISECONDS_IN_MINUTE : getDateMillisecondsPart(date);\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * var result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * var result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * var result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * var result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * var result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","export default function buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index.js';\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}","import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index.js';\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}","export default function buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n}","import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index.js';\nimport buildMatchFn from '../../../_lib/buildMatchFn/index.js';\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from './_lib/formatDistance/index.js';\nimport formatLong from './_lib/formatLong/index.js';\nimport formatRelative from './_lib/formatRelative/index.js';\nimport localize from './_lib/localize/index.js';\nimport match from './_lib/match/index.js';\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (dirtyObject.hasOwnProperty(property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token) {\n if (token === 'YYYY') {\n throw new RangeError('Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'YY') {\n throw new RangeError('Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'D') {\n throw new RangeError('Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr');\n } else if (token === 'DD') {\n throw new RangeError('Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr');\n }\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from '../getUTCISOWeekYear/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport startOfUTCISOWeekYear from '../startOfUTCISOWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCISOWeek from '../getUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport getUTCWeekYear from '../getUTCWeekYear/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport startOfUTCWeekYear from '../startOfUTCWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCWeek from '../getUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport setUTCDay from '../../../_lib/setUTCDay/index.js';\nimport setUTCISODay from '../../../_lib/setUTCISODay/index.js';\nimport setUTCISOWeek from '../../../_lib/setUTCISOWeek/index.js';\nimport setUTCWeek from '../../../_lib/setUTCWeek/index.js';\nimport startOfUTCISOWeek from '../../../_lib/startOfUTCISOWeek/index.js';\nimport startOfUTCWeek from '../../../_lib/startOfUTCWeek/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport assign from '../_lib/assign/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport parsers from './_lib/parsers/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Su | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Su | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * toDate('2016-01-01')\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, dirtyOptions) {\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale // If timezone isn't specified, it will be set to the system timezone\n\n };\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).reverse();\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * var result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\n\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport getDaysInMonth from '../getDaysInMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * var result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\n\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import toDate from '../toDate/index.js';\nimport setMonth from '../setMonth/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Object} values - an object with options\n * @param {Number} [values.year] - the number of years to be set\n * @param {Number} [values.month] - the number of months to be set\n * @param {Number} [values.date] - the number of days to be set\n * @param {Number} [values.hours] - the number of hours to be set\n * @param {Number} [values.minutes] - the number of minutes to be set\n * @param {Number} [values.seconds] - the number of seconds to be set\n * @param {Number} [values.milliseconds] - the number of milliseconds to be set\n * @returns {Date} the new date with options set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `values` must be an object\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * var result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * var result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\n\nexport default function set(dirtyDate, values) {\n requiredArgs(2, arguments);\n\n if (typeof values !== 'object' || values === null) {\n throw new RangeError('values parameter must be an object');\n }\n\n var date = toDate(dirtyDate); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date)) {\n return new Date(NaN);\n }\n\n if (values.year != null) {\n date.setFullYear(values.year);\n }\n\n if (values.month != null) {\n date = setMonth(date, values.month);\n }\n\n if (values.date != null) {\n date.setDate(toInteger(values.date));\n }\n\n if (values.hours != null) {\n date.setHours(toInteger(values.hours));\n }\n\n if (values.minutes != null) {\n date.setMinutes(toInteger(values.minutes));\n }\n\n if (values.seconds != null) {\n date.setSeconds(toInteger(values.seconds));\n }\n\n if (values.milliseconds != null) {\n date.setMilliseconds(toInteger(values.milliseconds));\n }\n\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","// extracted by mini-css-extract-plugin","module.exports = require('./dist/client/router')\n","/** @license React v16.13.1\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\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\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","import * as cookie from 'cookie';\r\nexport function hasDocumentCookie() {\r\n // Can we get/set cookies on document.cookie?\r\n return typeof document === 'object' && typeof document.cookie === 'string';\r\n}\r\nexport function cleanCookies() {\r\n document.cookie.split(';').forEach(function (c) {\r\n document.cookie = c\r\n .replace(/^ +/, '')\r\n .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\r\n });\r\n}\r\nexport function parseCookies(cookies, options) {\r\n if (typeof cookies === 'string') {\r\n return cookie.parse(cookies, options);\r\n }\r\n else if (typeof cookies === 'object' && cookies !== null) {\r\n return cookies;\r\n }\r\n else {\r\n return {};\r\n }\r\n}\r\nexport function isParsingCookie(value, doNotParse) {\r\n if (typeof doNotParse === 'undefined') {\r\n // We guess if the cookie start with { or [, it has been serialized\r\n doNotParse =\r\n !value || (value[0] !== '{' && value[0] !== '[' && value[0] !== '\"');\r\n }\r\n return !doNotParse;\r\n}\r\nexport function readCookie(value, options) {\r\n if (options === void 0) { options = {}; }\r\n var cleanValue = cleanupCookieValue(value);\r\n if (isParsingCookie(cleanValue, options.doNotParse)) {\r\n try {\r\n return JSON.parse(cleanValue);\r\n }\r\n catch (e) {\r\n // At least we tried\r\n }\r\n }\r\n // Ignore clean value if we failed the deserialization\r\n // It is not relevant anymore to trim those values\r\n return value;\r\n}\r\nfunction cleanupCookieValue(value) {\r\n // express prepend j: before serializing a cookie\r\n if (value && value[0] === 'j' && value[1] === ':') {\r\n return value.substr(2);\r\n }\r\n return value;\r\n}\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as cookie from 'cookie';\r\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\r\nvar Cookies = /** @class */ (function () {\r\n function Cookies(cookies, options) {\r\n var _this = this;\r\n this.changeListeners = [];\r\n this.HAS_DOCUMENT_COOKIE = false;\r\n this.cookies = parseCookies(cookies, options);\r\n new Promise(function () {\r\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\r\n }).catch(function () { });\r\n }\r\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\r\n if (!this.HAS_DOCUMENT_COOKIE) {\r\n return;\r\n }\r\n this.cookies = cookie.parse(document.cookie, parseOptions);\r\n };\r\n Cookies.prototype._emitChange = function (params) {\r\n for (var i = 0; i < this.changeListeners.length; ++i) {\r\n this.changeListeners[i](params);\r\n }\r\n };\r\n Cookies.prototype.get = function (name, options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n return readCookie(this.cookies[name], options);\r\n };\r\n Cookies.prototype.getAll = function (options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n var result = {};\r\n for (var name_1 in this.cookies) {\r\n result[name_1] = readCookie(this.cookies[name_1], options);\r\n }\r\n return result;\r\n };\r\n Cookies.prototype.set = function (name, value, options) {\r\n var _a;\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value);\r\n }\r\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, value, options);\r\n }\r\n this._emitChange({ name: name, value: value, options: options });\r\n };\r\n Cookies.prototype.remove = function (name, options) {\r\n var finalOptions = (options = __assign(__assign({}, options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\r\n this.cookies = __assign({}, this.cookies);\r\n delete this.cookies[name];\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, '', finalOptions);\r\n }\r\n this._emitChange({ name: name, value: undefined, options: options });\r\n };\r\n Cookies.prototype.addChangeListener = function (callback) {\r\n this.changeListeners.push(callback);\r\n };\r\n Cookies.prototype.removeChangeListener = function (callback) {\r\n var idx = this.changeListeners.indexOf(callback);\r\n if (idx >= 0) {\r\n this.changeListeners.splice(idx, 1);\r\n }\r\n };\r\n return Cookies;\r\n}());\r\nexport default Cookies;\r\n","import Cookies from './Cookies';\r\nexport default Cookies;\r\n","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","var fetchApi\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch\n }\n}\n\nif (typeof require !== 'undefined' && (typeof window === 'undefined' || typeof window.document === 'undefined')) {\n var f = fetchApi || require('cross-fetch')\n if (f.default) f = f.default\n exports.default = f\n module.exports = exports.default\n}\n","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 };","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 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 _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 };","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 };","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (!restored) {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n await this.#mutationCache.config.onMutate?.(\n variables,\n this\n );\n const context = await this.options.onMutate?.(variables);\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this\n );\n await this.options.onSuccess?.(data, variables, this.state.context);\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(data, null, variables, this.state.context);\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this\n );\n await this.options.onError?.(\n error,\n variables,\n this.state.context\n );\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context\n );\n throw error;\n } finally {\n this.#dispatch({ type: \"error\", error });\n }\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/notifyManager.ts\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = (cb) => setTimeout(cb, 0);\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (!isServer && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { canFetch, createRetryer, isCancelledError } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#cache = config.cache;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n isStale() {\n if (this.state.isInvalidated) {\n return true;\n }\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0;\n }\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || this.state.data === void 0 || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const queryFnContext = {\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext);\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n this.options.behavior?.onFetch(\n context,\n this\n );\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n const onError = (error) => {\n if (!(isCancelledError(error) && error.silent)) {\n this.#dispatch({\n type: \"error\",\n error\n });\n }\n if (!isCancelledError(error)) {\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n }\n if (!this.isFetchingOptimistic) {\n this.scheduleGc();\n }\n this.isFetchingOptimistic = false;\n };\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) => {\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n onError(new Error(`${this.queryHash} data is undefined`));\n return;\n }\n try {\n this.setData(data);\n } catch (error) {\n onError(error);\n return;\n }\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n if (!this.isFetchingOptimistic) {\n this.scheduleGc();\n }\n this.isFetchingOptimistic = false;\n },\n onError,\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n return this.#retryer.start();\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\",\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n case \"error\":\n const error = action.error;\n if (isCancelledError(error) && error.revert && this.#revertState) {\n return { ...this.#revertState, fetchStatus: \"idle\" };\n }\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\"\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/removable.ts\nimport { isServer, isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { isServer, sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n let promiseResolve;\n let promiseReject;\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n const cancel = (cancelOptions) => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort?.();\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess?.(value);\n continueFn?.();\n promiseResolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved) {\n isResolved = true;\n config.onError?.(value);\n continueFn?.();\n promiseReject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved) {\n return;\n }\n const retry = config.retry ?? (isServer ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise,\n cancel,\n continue: () => {\n continueFn?.();\n return promise;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return promise;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/utils.ts\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n return void 0;\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return !Object.keys(b).some((key) => !partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n const array = isPlainArray(a) && isPlainArray(b);\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n if ((!array && aItems.includes(key) || array) && a[key] === void 0 && b[key] === void 0) {\n copy[key] = void 0;\n equalItems++;\n } else {\n copy[key] = replaceEqualDeep(a[key], b[key]);\n if (copy[key] === a[key] && a[key] !== void 0) {\n equalItems++;\n }\n }\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n return b;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nexport {\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","\"use client\";\n\n// src/index.ts\nimport * as Devtools from \"./ReactQueryDevtools.js\";\nimport * as DevtoolsPanel from \"./ReactQueryDevtoolsPanel.js\";\nvar ReactQueryDevtools2 = process.env.NODE_ENV !== \"development\" ? function() {\n return null;\n} : Devtools.ReactQueryDevtools;\nvar ReactQueryDevtoolsPanel2 = process.env.NODE_ENV !== \"development\" ? function() {\n return null;\n} : DevtoolsPanel.ReactQueryDevtoolsPanel;\nexport {\n ReactQueryDevtools2 as ReactQueryDevtools,\n ReactQueryDevtoolsPanel2 as ReactQueryDevtoolsPanel\n};\n//# sourceMappingURL=index.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","/**\n * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.\n */\nexport var earthRadius = 6371008.8;\n\n/**\n * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.\n */\nexport var factors = {\n meters: earthRadius,\n metres: earthRadius,\n millimeters: earthRadius * 1000,\n millimetres: earthRadius * 1000,\n centimeters: earthRadius * 100,\n centimetres: earthRadius * 100,\n kilometers: earthRadius / 1000,\n kilometres: earthRadius / 1000,\n miles: earthRadius / 1609.344,\n nauticalmiles: earthRadius / 1852,\n inches: earthRadius * 39.370,\n yards: earthRadius / 1.0936,\n feet: earthRadius * 3.28084,\n radians: 1,\n degrees: earthRadius / 111325,\n};\n\n/**\n * Units of measurement factors based on 1 meter.\n */\nexport var unitsFactors = {\n meters: 1,\n metres: 1,\n millimeters: 1000,\n millimetres: 1000,\n centimeters: 100,\n centimetres: 100,\n kilometers: 1 / 1000,\n kilometres: 1 / 1000,\n miles: 1 / 1609.344,\n nauticalmiles: 1 / 1852,\n inches: 39.370,\n yards: 1 / 1.0936,\n feet: 3.28084,\n radians: 1 / earthRadius,\n degrees: 1 / 111325,\n};\n\n/**\n * Area of measurement factors based on 1 square meter.\n */\nexport var areaFactors = {\n meters: 1,\n metres: 1,\n millimeters: 1000000,\n millimetres: 1000000,\n centimeters: 10000,\n centimetres: 10000,\n kilometers: 0.000001,\n kilometres: 0.000001,\n acres: 0.000247105,\n miles: 3.86e-7,\n yards: 1.195990046,\n feet: 10.763910417,\n inches: 1550.003100006\n};\n\n/**\n * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.\n *\n * @name feature\n * @param {Geometry} geometry input geometry\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON Feature\n * @example\n * var geometry = {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 50]\n * };\n *\n * var feature = turf.feature(geometry);\n *\n * //=feature\n */\nexport function feature(geometry, properties, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error('options is invalid');\n var bbox = options.bbox;\n var id = options.id;\n\n // Validation\n if (geometry === undefined) throw new Error('geometry is required');\n if (properties && properties.constructor !== Object) throw new Error('properties must be an Object');\n if (bbox) validateBBox(bbox);\n if (id !== 0 && id) validateId(id);\n\n // Main\n var feat = {type: 'Feature'};\n if (id === 0 || id) feat.id = id;\n if (bbox) feat.bbox = bbox;\n feat.properties = properties || {};\n feat.geometry = geometry;\n return feat;\n}\n\n/**\n * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.\n * For GeometryCollection type use `helpers.geometryCollection`\n *\n * @name geometry\n * @param {string} type Geometry Type\n * @param {Array<number>} coordinates Coordinates\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Geometry\n * @returns {Geometry} a GeoJSON Geometry\n * @example\n * var type = 'Point';\n * var coordinates = [110, 50];\n *\n * var geometry = turf.geometry(type, coordinates);\n *\n * //=geometry\n */\nexport function geometry(type, coordinates, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error('options is invalid');\n var bbox = options.bbox;\n\n // Validation\n if (!type) throw new Error('type is required');\n if (!coordinates) throw new Error('coordinates is required');\n if (!Array.isArray(coordinates)) throw new Error('coordinates must be an Array');\n if (bbox) validateBBox(bbox);\n\n // Main\n var geom;\n switch (type) {\n case 'Point': geom = point(coordinates).geometry; break;\n case 'LineString': geom = lineString(coordinates).geometry; break;\n case 'Polygon': geom = polygon(coordinates).geometry; break;\n case 'MultiPoint': geom = multiPoint(coordinates).geometry; break;\n case 'MultiLineString': geom = multiLineString(coordinates).geometry; break;\n case 'MultiPolygon': geom = multiPolygon(coordinates).geometry; break;\n default: throw new Error(type + ' is invalid');\n }\n if (bbox) geom.bbox = bbox;\n return geom;\n}\n\n/**\n * Creates a {@link Point} {@link Feature} from a Position.\n *\n * @name point\n * @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Point>} a Point feature\n * @example\n * var point = turf.point([-75.343, 39.984]);\n *\n * //=point\n */\nexport function point(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n if (!Array.isArray(coordinates)) throw new Error('coordinates must be an Array');\n if (coordinates.length < 2) throw new Error('coordinates must be at least 2 numbers long');\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) throw new Error('coordinates must contain numbers');\n\n return feature({\n type: 'Point',\n coordinates: coordinates\n }, properties, options);\n}\n\n/**\n * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.\n *\n * @name points\n * @param {Array<Array<number>>} coordinates an array of Points\n * @param {Object} [properties={}] Translate these properties to each Feature\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Point>} Point Feature\n * @example\n * var points = turf.points([\n * [-75, 39],\n * [-80, 45],\n * [-78, 50]\n * ]);\n *\n * //=points\n */\nexport function points(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n if (!Array.isArray(coordinates)) throw new Error('coordinates must be an Array');\n\n return featureCollection(coordinates.map(function (coords) {\n return point(coords, properties);\n }), options);\n}\n\n/**\n * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.\n *\n * @name polygon\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Polygon>} Polygon Feature\n * @example\n * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });\n *\n * //=polygon\n */\nexport function polygon(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n\n for (var i = 0; i < coordinates.length; i++) {\n var ring = coordinates[i];\n if (ring.length < 4) {\n throw new Error('Each LinearRing of a Polygon must have 4 or more Positions.');\n }\n for (var j = 0; j < ring[ring.length - 1].length; j++) {\n // Check if first point of Polygon contains two numbers\n if (i === 0 && j === 0 && !isNumber(ring[0][0]) || !isNumber(ring[0][1])) throw new Error('coordinates must contain numbers');\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error('First and last Position are not equivalent.');\n }\n }\n }\n\n return feature({\n type: 'Polygon',\n coordinates: coordinates\n }, properties, options);\n}\n\n/**\n * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.\n *\n * @name polygons\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygon coordinates\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Polygon>} Polygon FeatureCollection\n * @example\n * var polygons = turf.polygons([\n * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],\n * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],\n * ]);\n *\n * //=polygons\n */\nexport function polygons(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n if (!Array.isArray(coordinates)) throw new Error('coordinates must be an Array');\n\n return featureCollection(coordinates.map(function (coords) {\n return polygon(coords, properties);\n }), options);\n}\n\n/**\n * Creates a {@link LineString} {@link Feature} from an Array of Positions.\n *\n * @name lineString\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<LineString>} LineString Feature\n * @example\n * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});\n * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});\n *\n * //=linestring1\n * //=linestring2\n */\nexport function lineString(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n if (coordinates.length < 2) throw new Error('coordinates must be an array of two or more positions');\n // Check if first point of LineString contains two numbers\n if (!isNumber(coordinates[0][1]) || !isNumber(coordinates[0][1])) throw new Error('coordinates must contain numbers');\n\n return feature({\n type: 'LineString',\n coordinates: coordinates\n }, properties, options);\n}\n\n/**\n * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.\n *\n * @name lineStrings\n * @param {Array<Array<number>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<LineString>} LineString FeatureCollection\n * @example\n * var linestrings = turf.lineStrings([\n * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],\n * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]\n * ]);\n *\n * //=linestrings\n */\nexport function lineStrings(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n if (!Array.isArray(coordinates)) throw new Error('coordinates must be an Array');\n\n return featureCollection(coordinates.map(function (coords) {\n return lineString(coords, properties);\n }), options);\n}\n\n/**\n * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.\n *\n * @name featureCollection\n * @param {Feature[]} features input features\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {FeatureCollection} FeatureCollection of Features\n * @example\n * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});\n * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});\n * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});\n *\n * var collection = turf.featureCollection([\n * locationA,\n * locationB,\n * locationC\n * ]);\n *\n * //=collection\n */\nexport function featureCollection(features, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error('options is invalid');\n var bbox = options.bbox;\n var id = options.id;\n\n // Validation\n if (!features) throw new Error('No features passed');\n if (!Array.isArray(features)) throw new Error('features must be an Array');\n if (bbox) validateBBox(bbox);\n if (id) validateId(id);\n\n // Main\n var fc = {type: 'FeatureCollection'};\n if (id) fc.id = id;\n if (bbox) fc.bbox = bbox;\n fc.features = features;\n return fc;\n}\n\n/**\n * Creates a {@link Feature<MultiLineString>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiLineString\n * @param {Array<Array<Array<number>>>} coordinates an array of LineStrings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiLineString>} a MultiLineString feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiLine = turf.multiLineString([[[0,0],[10,10]]]);\n *\n * //=multiLine\n */\nexport function multiLineString(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n\n return feature({\n type: 'MultiLineString',\n coordinates: coordinates\n }, properties, options);\n}\n\n/**\n * Creates a {@link Feature<MultiPoint>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPoint\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPoint>} a MultiPoint feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPt = turf.multiPoint([[0,0],[10,10]]);\n *\n * //=multiPt\n */\nexport function multiPoint(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n\n return feature({\n type: 'MultiPoint',\n coordinates: coordinates\n }, properties, options);\n}\n\n/**\n * Creates a {@link Feature<MultiPolygon>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPolygon\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygons\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPolygon>} a multipolygon feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);\n *\n * //=multiPoly\n *\n */\nexport function multiPolygon(coordinates, properties, options) {\n if (!coordinates) throw new Error('coordinates is required');\n\n return feature({\n type: 'MultiPolygon',\n coordinates: coordinates\n }, properties, options);\n}\n\n/**\n * Creates a {@link Feature<GeometryCollection>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name geometryCollection\n * @param {Array<Geometry>} geometries an array of GeoJSON Geometries\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<GeometryCollection>} a GeoJSON GeometryCollection Feature\n * @example\n * var pt = {\n * \"type\": \"Point\",\n * \"coordinates\": [100, 0]\n * };\n * var line = {\n * \"type\": \"LineString\",\n * \"coordinates\": [ [101, 0], [102, 1] ]\n * };\n * var collection = turf.geometryCollection([pt, line]);\n *\n * //=collection\n */\nexport function geometryCollection(geometries, properties, options) {\n if (!geometries) throw new Error('geometries is required');\n if (!Array.isArray(geometries)) throw new Error('geometries must be an Array');\n\n return feature({\n type: 'GeometryCollection',\n geometries: geometries\n }, properties, options);\n}\n\n/**\n * Round number to precision\n *\n * @param {number} num Number\n * @param {number} [precision=0] Precision\n * @returns {number} rounded number\n * @example\n * turf.round(120.4321)\n * //=120\n *\n * turf.round(120.4321, 2)\n * //=120.43\n */\nexport function round(num, precision) {\n if (num === undefined || num === null || isNaN(num)) throw new Error('num is required');\n if (precision && !(precision >= 0)) throw new Error('precision must be a positive number');\n var multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n}\n\n/**\n * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name radiansToLength\n * @param {number} radians in radians across the sphere\n * @param {string} [units='kilometers'] can be degrees, radians, miles, or kilometers inches, yards, metres, meters, kilometres, kilometers.\n * @returns {number} distance\n */\nexport function radiansToLength(radians, units) {\n if (radians === undefined || radians === null) throw new Error('radians is required');\n\n if (units && typeof units !== 'string') throw new Error('units must be a string');\n var factor = factors[units || 'kilometers'];\n if (!factor) throw new Error(units + ' units is invalid');\n return radians * factor;\n}\n\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name lengthToRadians\n * @param {number} distance in real units\n * @param {string} [units='kilometers'] can be degrees, radians, miles, or kilometers inches, yards, metres, meters, kilometres, kilometers.\n * @returns {number} radians\n */\nexport function lengthToRadians(distance, units) {\n if (distance === undefined || distance === null) throw new Error('distance is required');\n\n if (units && typeof units !== 'string') throw new Error('units must be a string');\n var factor = factors[units || 'kilometers'];\n if (!factor) throw new Error(units + ' units is invalid');\n return distance / factor;\n}\n\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet\n *\n * @name lengthToDegrees\n * @param {number} distance in real units\n * @param {string} [units='kilometers'] can be degrees, radians, miles, or kilometers inches, yards, metres, meters, kilometres, kilometers.\n * @returns {number} degrees\n */\nexport function lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n}\n\n/**\n * Converts any bearing angle from the north line direction (positive clockwise)\n * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line\n *\n * @name bearingToAzimuth\n * @param {number} bearing angle, between -180 and +180 degrees\n * @returns {number} angle between 0 and 360 degrees\n */\nexport function bearingToAzimuth(bearing) {\n if (bearing === null || bearing === undefined) throw new Error('bearing is required');\n\n var angle = bearing % 360;\n if (angle < 0) angle += 360;\n return angle;\n}\n\n/**\n * Converts an angle in radians to degrees\n *\n * @name radiansToDegrees\n * @param {number} radians angle in radians\n * @returns {number} degrees between 0 and 360 degrees\n */\nexport function radiansToDegrees(radians) {\n if (radians === null || radians === undefined) throw new Error('radians is required');\n\n var degrees = radians % (2 * Math.PI);\n return degrees * 180 / Math.PI;\n}\n\n/**\n * Converts an angle in degrees to radians\n *\n * @name degreesToRadians\n * @param {number} degrees angle between 0 and 360 degrees\n * @returns {number} angle in radians\n */\nexport function degreesToRadians(degrees) {\n if (degrees === null || degrees === undefined) throw new Error('degrees is required');\n\n var radians = degrees % 360;\n return radians * Math.PI / 180;\n}\n\n/**\n * Converts a length to the requested unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @param {number} length to be converted\n * @param {string} originalUnit of the length\n * @param {string} [finalUnit='kilometers'] returned unit\n * @returns {number} the converted length\n */\nexport function convertLength(length, originalUnit, finalUnit) {\n if (length === null || length === undefined) throw new Error('length is required');\n if (!(length >= 0)) throw new Error('length must be a positive number');\n\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit || 'kilometers');\n}\n\n/**\n * Converts a area to the requested unit.\n * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches\n * @param {number} area to be converted\n * @param {string} [originalUnit='meters'] of the distance\n * @param {string} [finalUnit='kilometers'] returned unit\n * @returns {number} the converted distance\n */\nexport function convertArea(area, originalUnit, finalUnit) {\n if (area === null || area === undefined) throw new Error('area is required');\n if (!(area >= 0)) throw new Error('area must be a positive number');\n\n var startFactor = areaFactors[originalUnit || 'meters'];\n if (!startFactor) throw new Error('invalid original units');\n\n var finalFactor = areaFactors[finalUnit || 'kilometers'];\n if (!finalFactor) throw new Error('invalid final units');\n\n return (area / startFactor) * finalFactor;\n}\n\n/**\n * isNumber\n *\n * @param {*} num Number to validate\n * @returns {boolean} true/false\n * @example\n * turf.isNumber(123)\n * //=true\n * turf.isNumber('foo')\n * //=false\n */\nexport function isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n}\n\n/**\n * isObject\n *\n * @param {*} input variable to validate\n * @returns {boolean} true/false\n * @example\n * turf.isObject({elevation: 10})\n * //=true\n * turf.isObject('foo')\n * //=false\n */\nexport function isObject(input) {\n return (!!input) && (input.constructor === Object);\n}\n\n/**\n * Validate BBox\n *\n * @private\n * @param {Array<number>} bbox BBox to validate\n * @returns {void}\n * @throws Error if BBox is not valid\n * @example\n * validateBBox([-180, -40, 110, 50])\n * //=OK\n * validateBBox([-180, -40])\n * //=Error\n * validateBBox('Foo')\n * //=Error\n * validateBBox(5)\n * //=Error\n * validateBBox(null)\n * //=Error\n * validateBBox(undefined)\n * //=Error\n */\nexport function validateBBox(bbox) {\n if (!bbox) throw new Error('bbox is required');\n if (!Array.isArray(bbox)) throw new Error('bbox must be an Array');\n if (bbox.length !== 4 && bbox.length !== 6) throw new Error('bbox must be an Array of 4 or 6 numbers');\n bbox.forEach(function (num) {\n if (!isNumber(num)) throw new Error('bbox must only contain numbers');\n });\n}\n\n/**\n * Validate Id\n *\n * @private\n * @param {string|number} id Id to validate\n * @returns {void}\n * @throws Error if Id is not valid\n * @example\n * validateId([-180, -40, 110, 50])\n * //=Error\n * validateId([-180, -40])\n * //=Error\n * validateId('Foo')\n * //=OK\n * validateId(5)\n * //=OK\n * validateId(null)\n * //=Error\n * validateId(undefined)\n * //=Error\n */\nexport function validateId(id) {\n if (!id) throw new Error('id is required');\n if (['string', 'number'].indexOf(typeof id) === -1) throw new Error('id must be a number or a string');\n}\n\n// Deprecated methods\nexport function radians2degrees() {\n throw new Error('method has been renamed to `radiansToDegrees`');\n}\n\nexport function degrees2radians() {\n throw new Error('method has been renamed to `degreesToRadians`');\n}\n\nexport function distanceToDegrees() {\n throw new Error('method has been renamed to `lengthToDegrees`');\n}\n\nexport function distanceToRadians() {\n throw new Error('method has been renamed to `lengthToRadians`');\n}\n\nexport function radiansToDistance() {\n throw new Error('method has been renamed to `radiansToLength`');\n}\n\nexport function bearingToAngle() {\n throw new Error('method has been renamed to `bearingToAzimuth`');\n}\n\nexport function convertDistance() {\n throw new Error('method has been renamed to `convertLength`');\n}\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link startOfToday} function options.\n */\n\n/**\n * @name startOfToday\n * @category Day Helpers\n * @summary Return the start of today.\n * @pure false\n *\n * @description\n * Return the start of today.\n *\n * @typeParam ContextDate - The `Date` type of the context function.\n *\n * @param options - An object with options\n *\n * @returns The start of today\n *\n * @example\n * // If today is 6 October 2014:\n * const result = startOfToday()\n * //=> Mon Oct 6 2014 00:00:00\n */\nexport function startOfToday(options) {\n return startOfDay(Date.now(), options);\n}\n\n// Fallback for modularized imports:\nexport default startOfToday;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n"],"names":["appWithTranslation","App","Component","pageProps","router","useManualPageLogger","pathname","APP_NAME","routerLocale","useRouter","locale","QueryProvider","queryClientProps","appName","dehydratedQueryState","oneLinkConfig","ReactQueryDevtools","initialIsOpen","getQueryProviderProps","env","allEnv","appId","DX_AUTH_API_CUSTOMER_APP_ID","incompleteLoggingEnabled","RUMCS_CAPTURE_CUSTOM_ERRORS","gqlEndpoints","browser","DX_GRAPHQL_CLIENT_URI","server","process","DX_GRAPHQL_SERVER_URI","authEndpoints","DX_AUTH_API_CLIENT_URI","DX_AUTH_API_SERVER_URI","ASSETS_URI","OHW_BASE_URL_TRIMMED","replace","AuthContext","createContext","authClient","isAuthenticated","logout","Promise","resolve","login","refreshGuestInfo","guestInfo","guestId","isLoading","isCorpUser","displayName","reducer","state","action","type","loggedIn","data","authInfo","AuthProvider","children","onLoginAttempt","onLogout","initialState","useReducer","getIsLoggedIn","dispatch","mounted","useRef","safeDispatch","useCallback","v","current","useEffect","logoutCb","then","info","catch","error","logWarning","loginFaliureCb","loginSuccessCb","flushSync","response","getGuestInfo","guest","on","off","value","getGuestId","Provider","useAuth","context","React","VALID_SAME_SITES","setCookie","name","expires","path","domain","secure","escape","sameSite","undefined","getDefaultDomain","location","hostname","toLowerCase","includes","today","Date","now","expires_date","getTime","cookieValue","encodeURIComponent","document","cookie","toUTCString","operationString","AuthClient","request","restore","authEndpoint","gqlEndpoint","minExpiresTTL","ssr","language","webGuestMetadataCookie","authenticationCookie","userRefreshTokenPromise","requestTimeoutMs","appTokenPromise","guestInfoPromise","ssrMode","headers","attemptsToGetGuestInfo","cookies","Cookies","getAll","serverResponse","getTokensFromCookie","get","getRequestHeaders","shouldRefreshToken","refreshLoggedInUserToken","fetchGuestInfo","fetchAppToken","logError","getGqlEndpoint","getAuthEndpoint","extract","tokenType","refreshToken","getAuthenticationCookie","getAuthorizationHeader","token","apptoken","accessToken","rawHeaders","forEach","index","array","test","userRealm","getAppNameParam","currentToken","fetch","method","cache","Accept","Authorization","res","json","UserClaims","rest","ok","invalidateSession","setUserSessionData","userInfo","tokenInfo","access_token","expiresIn","expires_in","token_type","timestamp","updateAccessToken","currentAuthenticationCookie","updatedWso2AuthTokenCookie","isBrowser","setwso2AuthTokenCookie","authResponseToAuthCookie","emit","redirectToLoginPage","logoutUrl","authorization","credentials","window","localStorage","removeItem","url","assign","remove","setWso2Cookie","wso2Cookie","JSON","stringify","timeout","Buffer","from","toString","body","app_id","resp","options","set","userAuth","authHeader","variables","requestInit","controller","abortTimeout","requestUrl","AbortController","setTimeout","abort","query","GuestDocument","operationName","signal","logInfo","clearTimeout","isQueryIncomplete","triggerInCompleteEvent","requestBody","originalOpName","status","mergeCacheControl","errors","EventEmitter","makeAuthClient","getClientEnv","__ENV","getServerEnv","__NEXT_DATA__","buildId","warn","key","defaultValue","WrappedComponent","hoistNonReactStatics","props","I18nFrameworkAppWithTranslation","_nextI18Next","isOneLink","userConfig","appPath","appPaths","browserLocalePath","use","backend","loadPath","addPath","i18n","nextI18NextAppWithTranslation","getLocaleFormattedNumber","Intl","NumberFormat","format","shouldIncludeLanguageParam","configLocale","match","conditions","pathName","urlObj","URL","ruleEngineResult","RuleEngine","run","getOneLinkProps","sstLocale","CONFIG_NAME","stringValue","lang","event","CustomEvent","detail","message","dxCompleteness","isSSR","dispatchEvent","dynatrace","dtrum","LOG_LEVELS","ERROR","INFO","WARN","hint","log","group","enableManualPageDetection","modifiedGroup","startsWith","setPage","console","level","errorKey","markAsErrorPage","ERROR_PAGE","reportCustomError","stringifyValue","buildHint","filter","Boolean","join","sendBeacon","customError","cause","fn","Error","serverResp","mergeHttpHeaders","val","GraphError","result","graphQLErrors","ServerAuthError","statusCode","getSafeLanguage","splitLanguage","zhMapping","split","slice","isExtractableFile","File","Blob","forwardHeaders","makeRequest","queryRequest","retries","undiciErrorSocketRetries","authenticatedOperationNames","handleAuthenticatedOperationError","handleRequestEndpoint","handleRequestHeaders","customHeaders","referrerArg","referrerPolicy","serverRequestArg","variablesToIncludeInParams","serverRequest","authenticatedOperation","endpoint","visitoridHeader","hltClientMessageIdHeader","bodyLanguage","browserUrl","includeLanguageParam","visitorId","requestId","hltClientMessageId","referrer","paramsFromVariables","params","extractFiles","clone","files","form","map","i","refreshAndRetry","jsonResult","responseText","isForbidden","referenceError","errorMessage","shouldRetry","isUnauthorized","req","visitorid","hltclientmessageid","href","header","getVisitorId","serverCookies","setVisitorId","uuid","crypto","randomUUID","addDays","startOfToday","origin","generateReferrer","isServer","length","variable","URLSearchParams","bl","defaultIsExtractableFile","Map","clones","recurse","recursed","filePaths","push","isList","Array","isArray","FileList","isObject","constructor","Object","hasClone","has","pathPrefix","recursedDeeper","Set","add","item","itemClone","keys","propertyClone","FormData","size","append","paths","_","file","formDataAppendFile","fieldName","formData","arg","UNKNOWN_ERROR_MSG","code","text","parse","er","ref","handleResultErrors","Response","__info__","causedByUnauthorized","some","causedByForbidden","CDN_STALE_TIME","retry","args","makeDefaultFnArgs","queryClientRef","queryClient","onIncompleteQuery","devtoolsOptions","useClients","useClientProps","authClientState","authClientRef","reactQueryClientOverrideOptions","makeQueryClient","QueryClient","defaultOptions","queries","queryFn","makeDefaultQueryFn","queryKey","refetchOnWindowFocus","cacheTime","Infinity","staleTime","mutationFn","makeDefaultMutationFn","mutation","incompleteSSRQueries","ssrResults","getQueriesData","predicate","reportIncomplete","listener","addEventListener","removeEventListener","QueryClientProvider","client","HydrationBoundary","getDateMillisecondsPart","date","MILLISECONDS_IN_MINUTE","getTimezoneOffsetInMilliseconds","dirtyDate","baseTimezoneOffset","Math","ceil","getTimezoneOffset","setSeconds","millisecondsPartOfTimezoneOffset","requiredArgs","required","TypeError","toInteger","dirtyNumber","NaN","number","Number","floor","compareAsc","dirtyDateLeft","dirtyDateRight","arguments","dateLeft","toDate","dateRight","diff","isDate","prototype","call","isValid","isNaN","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","dirtyOptions","width","String","defaultWidth","formats","formatLong","dateFormats","long","medium","short","time","full","dateTime","dateTimeFormats","formatRelativeLocale","lastWeek","yesterday","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","values","argumentCallback","buildMatchFn","dirtyString","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findIndex","pattern","findKey","object","valueCallback","formatDistance","count","addSuffix","comparison","formatRelative","_date","_baseDate","_options","localize","ordinalNumber","_dirtyOptions","rem100","era","eraValues","abbreviated","wide","quarter","quarterValues","month","narrow","day","dayValues","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchPatternFn","parseResult","parsePattern","matchOrdinalNumberPattern","parseOrdinalNumberPattern","parseInt","matchEraPatterns","any","matchQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","weekStartsOn","firstWeekContainsDate","dateLongFormatter","timeLongFormatter","p","P","dateTimeLongFormatter","longFormatters","dateTimeFormat","datePattern","timePattern","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","startOfUTCWeek","localeWeekStartsOn","defaultWeekStartsOn","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCWeekYear","year","getUTCFullYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","setUTCFullYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","setUTCDay","dirtyDay","currentDay","remainder","startOfUTCISOWeek","numericPatterns","dayOfYear","week","hour23h","hour24h","hour11h","hour12h","minute","second","singleDigit","twoDigits","threeDigits","fourDigits","anyDigitsSigned","singleDigitSigned","twoDigitsSigned","threeDigitsSigned","fourDigitsSigned","timezonePatterns","basicOptionalMinutes","basic","basicOptionalSeconds","extended","extendedOptionalSeconds","parseNumericPattern","parseTimezonePattern","sign","hours","MILLISECONDS_IN_HOUR","minutes","MILLISECONDS_IN_SECOND","parseAnyDigitsSigned","parseNDigits","n","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","G","priority","parsers","flags","incompatibleTokens","y","isTwoDigitYear","unit","validate","normalizedTwoDigitYear","Y","R","_match","_flags","firstWeekOfYear","u","Q","setUTCMonth","q","M","L","w","setUTCWeek","dirtyWeek","getUTCWeek","round","MILLISECONDS_IN_WEEK","startOfUTCWeekYear","firstWeek","I","setUTCISOWeek","dirtyISOWeek","isoWeek","getUTCISOWeek","startOfUTCISOWeekYear","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","fourthOfJanuaryOfThisYear","fourthOfJanuary","d","isLeapYear","getUTCMonth","D","E","e","wholeWeekDays","c","setUTCISODay","dayIndex","a","b","B","h","isPM","getUTCHours","H","K","k","m","setUTCMinutes","s","setUTCSeconds","S","pow","setUTCMilliseconds","X","timestampIsSet","x","t","_token","T","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","notWhitespaceRegExp","unescapedLatinCharacterRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","dateString","formatString","defaultLocale","subFnOptions","setters","TIMEZONE_UNIT_PRIORITY","dateToSystemTimezone","tokens","substring","firstCharacter","longFormatter","usedTokens","useAdditionalWeekYearTokens","isProtectedWeekYearToken","indexOf","useAdditionalDayOfYearTokens","isProtectedDayOfYearToken","parser","incompatibleToken","_i","usedToken","concat","fullToken","cleanEscapedString","uniquePrioritySetters","setter","sort","reverse","setterArray","utcDate","subMilliseconds","dirtyObject","target","property","hasOwnProperty","convertedDate","setFullYear","setHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","setMonth","dirtyMonth","getFullYear","getDate","dateWithDesiredMonth","daysInMonth","getDaysInMonth","monthIndex","getMonth","lastDayOfMonth","min","setDate","setMinutes","seconds","milliseconds","setMilliseconds","dirtyAmount","addMilliseconds","amount","argument","argStr","stack","in","constructFrom","millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","constructFromSymbol","Symbol","for","startOfDay"],"sourceRoot":"","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,72,73,74,88,89,90,91,105,106,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183]}