{"version":3,"file":"static/chunks/3708-a92386e49bb1ba33.js","mappings":"oIAQO,IwBHPA,EMQAC,E+BNAC,EzDgBOC,EAAAC,EACPC,EFdAC,EaVAC,EIuEAC,EExDAC,EAyCAC,EGpDOV,EMQAC,EGHPU,EMHAC,EE6CAC,Ea3BAC,EOlBOZ,EMMPa,EONAC,ECDAC,EMuMAC,EAaAC,ECpEAC,EuBxIAC,EIZAC,EiBCAC,EACAC,EACAC,EsBJIC,EiBCJC,ErKOOC,EAAA,CACPC,IAAA,MACAC,MAAA,QACAC,KAAA,OACAC,KAAA,OACAC,MAAA,OACA,EAUOC,EAAAC,QACAC,EAAA,GACPC,OAAAC,IAAA,CAAAV,GAAAW,OAAA,UAAAnC,CAAA,EACAgC,CAAA,CAAAhC,EAAA,CAAA8B,CAAA,CAAA9B,EAAA,GAEA,IAAAoC,EAAA,uBACOC,EAAA,CACPX,MAAAM,EAAAN,KAAA,CAAAY,IAAA,CAAAR,EAAAM,GACAX,IAAAO,EAAAP,GAAA,CAAAa,IAAA,CAAAR,EAAAM,GACAT,KAAAK,EAAAL,IAAA,CAAAW,IAAA,CAAAR,EAAAM,GACAR,KAAAI,EAAAJ,IAAA,CAAAU,IAAA,CAAAR,EAAAM,GACAP,MAAAG,EAAAH,KAAA,CAAAS,IAAA,CAAAR,EAAAM,EACA,ECnCO,SAAAG,EAAAC,CAAA,CAAAC,CAAA,EACP,kBAEA,QADAC,EAAA,GACAC,EAAA,EAAyBA,EAAAC,UAAAC,MAAA,CAAuBF,IAChDD,CAAA,CAAAC,EAAA,CAAAC,SAAA,CAAAD,EAAA,CAEA,IACA,OAAAH,EAAAM,KAAA,QAAAJ,EACA,CACA,MAAAK,EAAA,CACYV,EAAOR,KAAA,CAAAY,EAAAM,EACnB,CACA,CACA,CCdA,IAAAC,EAAiC,SAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,EACjC,GAAAA,GAAAP,GAAAA,UAAAC,MAAA,SAAAO,EAAAC,EAAA,EAAAC,EAAAJ,EAAAL,MAAA,CAA6EQ,EAAAC,EAAOD,KACpFD,GAAAC,KAAAH,IACAE,GAAAA,CAAAA,EAAAG,MAAAC,SAAA,CAAAC,KAAA,CAAAC,IAAA,CAAAR,EAAA,EAAAG,EAAA,EACAD,CAAA,CAAAC,EAAA,CAAAH,CAAA,CAAAG,EAAA,EAGA,OAAAJ,EAAAU,MAAA,CAAAP,GAAAG,MAAAC,SAAA,CAAAC,KAAA,CAAAC,IAAA,CAAAR,GACA,EAGAU,EAAA,GAIO,SAAAC,EAAAC,CAAA,EACPF,EAAAE,CACA,CAgBO,SAAAC,EAAAvB,CAAA,EACP,kBAEA,OAAAwB,EAAAxB,EAAA,KAAAI,UACA,CACA,CACO,SAAAoB,EAAAxB,CAAA,CAAAyB,CAAA,CAAAvB,CAAA,EACP,IAEA,OAAAF,EAAAM,KAAA,CAAAmB,EAAAvB,EACA,CACA,MAAAwB,EAAA,CAEA,GADAC,EAAAD,GACAhE,EACA,IACAA,EAAAgE,EACA,CACA,MAAAA,EAAA,CACAC,EAAAD,EACA,CAEA,CACA,CACO,SAAAC,IAEP,QADAzB,EAAA,GACAC,EAAA,EAAqBA,EAAAC,UAAAC,MAAA,CAAuBF,IAC5CD,CAAA,CAAAC,EAAA,CAAAC,SAAA,CAAAD,EAAA,CAEAiB,GACQvB,EAAOR,KAAA,CAAAiB,KAAA,CAAaT,EAAOW,EAAA,cAAAN,EAAA,IAEnC,CChEO,SAAA0B,EAAAC,CAAA,CAAAC,CAAA,EACP,OAAAD,KAAAA,EAAAE,OAAA,CAAAD,EACA,CACO,SAAAE,EAAAC,CAAA,EACP,GAAAlB,MAAAL,IAAA,CACA,OAAAK,MAAAL,IAAA,CAAAuB,GAEA,IAAAC,EAAA,GACA,GAAAD,aAAAE,IACAF,EAAAtC,OAAA,UAAAyC,CAAA,EAA4C,OAAAF,EAAAG,IAAA,CAAAD,EAAA,QAG5C,QAAAvB,EAAA,EAAwBA,EAAAoB,EAAA5B,MAAA,CAAsBQ,IAC9CqB,EAAAG,IAAA,CAAAJ,CAAA,CAAApB,EAAA,EAGA,OAAAqB,CACA,CACO,SAAAI,EAAAJ,CAAA,CAAAK,CAAA,EACP,QAAA1B,EAAA,EAAoBA,EAAAqB,EAAA7B,MAAA,CAAkBQ,GAAA,GACtC,IAAAuB,EAAAF,CAAA,CAAArB,EAAA,CACA,GAAA0B,EAAAH,EAAAvB,GACA,OAAAuB,CAEA,CAEA,CAaO,SAAAI,EAAAC,CAAA,EACP,OAAAhD,OAAAC,IAAA,CAAA+C,GAAAC,GAAA,UAAAC,CAAA,EAAoD,OAAAF,CAAA,CAAAE,EAAA,EACpD,CACO,SAAAC,EAAAH,CAAA,EACP,OAAAhD,OAAAC,IAAA,CAAA+C,GAAAC,GAAA,UAAAC,CAAA,EAAoD,OAAAA,EAAAF,CAAA,CAAAE,EAAA,GACpD,CACO,SAAAE,EAAAhB,CAAA,CAAAC,CAAA,EACP,OAAAD,EAAAZ,KAAA,GAAAa,EAAAzB,MAAA,IAAAyB,CACA,CAeO,SAAAgB,EAAAC,CAAA,SACP,OAAAC,GAAA,EAAAC,OAAAD,GAAA,CAAAE,MAAA,CACAD,OAAAD,GAAA,CAAAE,MAAA,CAAAH,GAGAA,EAAAI,OAAA,yDAAAC,CAAA,CAAAC,CAAA,SACA,EAEA,OAAAD,EACA,IAGA,GAAAjC,MAAA,CAAAiC,EAAAnC,KAAA,aAAAE,MAAA,CAAAiC,EAAAE,UAAA,CAAAF,EAAA/C,MAAA,IAAAkD,QAAA,UAGA,KAAApC,MAAA,CAAAiC,EACA,EACA,CACO,SAASI,EAAMC,CAAA,EAEtB,QADAC,EAAA,GACAvD,EAAA,EAAqBA,EAAAC,UAAAC,MAAA,CAAuBF,IAC5CuD,CAAA,CAAAvD,EAAA,GAAAC,SAAA,CAAAD,EAAA,CASA,OAPAuD,EAAA/D,OAAA,UAAAgE,CAAA,EACA,QAAAhB,KAAAgB,EACAlE,OAAAuB,SAAA,CAAA4C,cAAA,CAAA1C,IAAA,CAAAyC,EAAAhB,IACAc,CAAAA,CAAA,CAAAd,EAAA,CAAAgB,CAAA,CAAAhB,EAAA,CAGA,GACAc,CACA,CE1FO,SAAAI,KACP,oBAAAC,WACA,OAAAA,WAEArE,OAAAsE,cAAA,CAAAtE,OAAAuB,SAAA,cACAgD,IAAA,WACA,aAEAC,aAAA,EACA,GAEA,IAAAC,EAAAC,UAgBA,OAdA,OAAA1E,OAAAuB,SAAA,CAAAmD,SAAA,CACA,iBAAAD,IAGA,iBAAAE,KACAF,EAAAE,KAGAF,EADA,iBAAAjB,OACAA,OAGA,IAGAiB,CACA,CC9BO,IAEPG,GAAA,mBACO,SAAAC,GAAAzC,CAAA,SAEP,GAAA0C,IAAA,CAAA1C,GAGAoB,KAAAuB,IAAAvB,OAAAwB,WAAA,CACA,IAAAA,cAAAC,MAAA,CAAA7C,GAAAxB,MAAA,CAEA,IAAAsE,KAAA,CAAA9C,EAAA,EAAA+C,IAAA,CALA/C,EAAAxB,MAAA,CCOO,SAAAwE,GAAApB,CAAA,CAAAjG,CAAA,EACP,IACAsH,EADAC,EAAwBlB,KAQxB,OANAkB,EAAAC,IAAA,qBAAAD,EAAAC,IAAA,CAAAC,UAAA,EACAH,CAAAA,EAAArB,CAAA,CAAAsB,EAAAC,IAAA,CAAAC,UAAA,CAAAzH,GAAA,EAEAsH,GACAA,CAAAA,EAAArB,CAAA,CAAAjG,EAAA,EAEAsH,CACA,CCrBO,SAASI,GAAUC,CAAA,CAAAC,CAAA,EAC1B,OAAWP,GAAuBhB,KAAe,cAAkBtC,EAAO4D,GAAAC,EAC1E,CACO,SAASC,GAAYC,CAAA,EACxBT,GAAuBhB,KAAe,gBAAAyB,EAC1C,CACO,SAASC,GAAWJ,CAAA,CAAAC,CAAA,EAC3B,OAAWP,GAAuBhB,KAAe,eAAmBtC,EAAO4D,GAAAC,EAC3E,CACO,SAASI,GAAaF,CAAA,EACzBT,GAAuBhB,KAAe,iBAAAyB,EAC1C,CCZO,SAAAG,GAAAzF,CAAA,CAAA0F,CAAA,CAAAC,CAAA,EACP,IAGAC,EACAC,EAJAC,EAAAH,CAAAA,GAAAA,KAAAnB,IAAAmB,EAAAI,OAAA,EAAAJ,EAAAI,OAAA,CACAC,EAAAL,CAAAA,GAAAA,KAAAnB,IAAAmB,EAAAM,QAAA,EAAAN,EAAAM,QAAA,CACAC,EAAA,GAGA,OACAC,UAAA,WAEA,QADAC,EAAA,GACAjG,EAAA,EAA6BA,EAAAC,UAAAC,MAAA,CAAuBF,IACpDiG,CAAA,CAAAjG,EAAA,CAAAC,SAAA,CAAAD,EAAA,CAEA,GAAA+F,EAAA,CACAN,EAAAQ,EACA,MACA,CACAN,EACA9F,EAAAM,KAAA,QAAA8F,GAGAR,EAAAQ,EAEAF,EAAA,GACAL,EAA+BX,GAAU,WACzCc,GAAAJ,GACA5F,EAAAM,KAAA,QAAAsF,GAEAM,EAAA,GACAN,EAAApB,KAAAA,CACA,EAAakB,EACb,EACAW,OAAA,WACYhB,GAAYQ,GACxBK,EAAA,GACAN,EAAApB,KAAAA,CACA,CACA,CACA,CAEO,SAAA8B,KAAA,CCtCA,SAAAC,GAAAC,CAAA,SACP,OAAAA,EACA,OAEAzF,MAAA0F,OAAA,CAAAD,GACA,QAEA,OAAAA,CACA,CCNO,SAAAE,GAAAC,CAAA,CAAAhD,CAAA,CAAAiD,CAAA,EAGP,GAFA,SAAAA,GAA+CA,CAAAA,EAAAC,WAqE/C,uBAAAC,QAAA,CACA,IAAAC,EAAA,IAAAD,QACA,OACAE,mBAAA,SAAAR,CAAA,EACA,IAAAS,EAAAF,EAAAE,GAAA,CAAAT,GAIA,OAHAS,GACAF,EAAAG,GAAA,CAAAV,GAEAS,CACA,CACA,CACA,CACA,IAAA/E,EAAA,GACA,OACA8E,mBAAA,SAAAR,CAAA,EACA,IAAAS,EAAA/E,EAAAH,OAAA,CAAAyE,IAAA,EAIA,OAHAS,GACA/E,EAAAG,IAAA,CAAAmE,GAEAS,CACA,CACA,CACA,GA3F+C,EAE/CtD,KAAAa,IAAAb,EACA,OAAAgD,EAEA,oBAAAhD,GAAAA,OAAAA,EAEA,OAAAA,EAEA,GAAAA,aAAAwD,KACA,WAAAA,KAAAxD,EAAAyD,OAAA,IAEA,GAAAzD,aAAA0D,OAAA,CACA,IAAAC,EAAA3D,EAAA2D,KAAA,EAEA,CACA3D,EAAApG,MAAA,QACAoG,EAAA4D,UAAA,QACA5D,EAAA6D,SAAA,QACA7D,EAAA8D,MAAA,QACA9D,EAAA+D,OAAA,QACA,CAAAC,IAAA,KACA,WAAAN,OAAA1D,EAAAA,MAAA,CAAA2D,EACA,CACA,IAAAV,EAAAI,kBAAA,CAAArD,IAIA,GAAA5C,MAAA0F,OAAA,CAAA9C,GAAA,CAEA,QADAiE,EAAA7G,MAAA0F,OAAA,CAAAE,GAAAA,EAAA,GACA9F,EAAA,EAAwBA,EAAA8C,EAAAtD,MAAA,CAAmB,EAAAQ,EAC3C+G,CAAA,CAAA/G,EAAA,CAAA6F,GAAAkB,CAAA,CAAA/G,EAAA,CAAA8C,CAAA,CAAA9C,EAAA,CAAA+F,GAEA,OAAAgB,CACA,CACA,IAAAC,EAAiBtB,WAAAA,GAAOI,GAAAA,EAAA,GACxB,QAAAhE,KAAAgB,EACAlE,OAAAuB,SAAA,CAAA4C,cAAA,CAAA1C,IAAA,CAAAyC,EAAAhB,IACAkF,CAAAA,CAAA,CAAAlF,EAAA,CAAA+D,GAAAmB,CAAA,CAAAlF,EAAA,CAAAgB,CAAA,CAAAhB,EAAA,CAAAiE,EAAA,EAGA,OAAAiB,EACA,CAOO,SAAAC,GAAAtB,CAAA,EACP,OAAAE,GAAAlC,KAAAA,EAAAgC,EACA,CACO,SAAAuB,KAEP,QAGApB,EAJAqB,EAAA,GACA7H,EAAA,EAAqBA,EAAAC,UAAAC,MAAA,CAAuBF,IAC5C6H,CAAA,CAAA7H,EAAA,CAAAC,SAAA,CAAAD,EAAA,CAGA,QAAAxC,EAAA,EAA0CA,EAAAsK,EAAA5H,MAAA,CAAuB1C,IAAA,CACjE,IAAAgG,EAAAsE,CAAA,CAAAtK,EAAA,OAEAgG,GAGAgD,CAAAA,EAAAD,GAAAC,EAAAhD,EAAA,CACA,CACA,OAAAgD,CACA,CChEO,SAAAuB,GAAA1B,CAAA,CAAA2B,CAAA,CAAAC,CAAA,EACP,oBAAA5B,GAAAA,OAAAA,EACA,OAAA6B,KAAAC,SAAA,CAAA9B,GAIA,IAAA+B,EAAAC,GAAA/I,OAAAuB,SAAA,EACAyH,EAAAD,GAAAzH,MAAAC,SAAA,EACA0H,EAAAF,GAAA/I,OAAAkJ,cAAA,CAAAnC,IACAoC,EAAAJ,GAAAhC,GACA,IACA,OAAA6B,KAAAC,SAAA,CAAA9B,EAAA2B,EAAAC,EACA,CACA,MAAAzK,EAAA,CACA,2CACA,QACA,CACA4K,IACAE,IACAC,IACAE,GACA,CACA,CACO,SAAAJ,GAAAhC,CAAA,EAEP,IAAAqC,EAAApG,EAAAqG,MAAA,QACA,GACA,OAAArG,EAAAqG,MAAA,CACA,WACArG,EAAAqG,MAAA,CAAAD,CACA,GAEWvC,EACX,CC/BO,SAAAyC,GAAApF,CAAA,CAAAqF,CAAA,EAEP,SAAAA,GAAwCA,CAAAA,EARxC,MAQwC,EAExC,IAHArL,EAGA4K,EAAuCC,GAAkB/I,OAAAuB,SAAA,EACzDyH,EAAsCD,GAAkBzH,MAAAC,SAAA,EAExDiI,EAAA,GACAC,EAAA,IAAAC,QACAC,EAAAC,GAAA1F,EAbA,IAaAa,KAAAA,EAAAyE,EAAAC,GACAI,EAAA,QAAA3L,CAAAA,EAAA0K,KAAAC,SAAA,CAAAc,EAAA,GAAAzL,KAAA,IAAAA,EAAA,OAAAA,EAAA0C,MAAA,KACA,GAAAiJ,EAAAN,EAAA,CACAO,GAAAP,EAAA,YAAArF,GACA,MACA,CACA,KAAAsF,EAAA5I,MAAA,IAAAiJ,EAAAN,GAAA,CACA,IAAAQ,EAAAP,EAAAQ,KAAA,GACAC,EAAA,EAGA,GAAA3I,MAAA0F,OAAA,CAAA+C,EAAA7F,MAAA,EACA,QAAAhB,EAAA,EAA8BA,EAAA6G,EAAA7F,MAAA,CAAAtD,MAAA,CAAwCsC,IAAA,CACtE,IAAAgH,EAAAN,GAAAG,EAAA7F,MAAA,CAAAhB,EAAA,CAAA6G,EAAAI,IAAA,CAAAjH,EAAAsG,EAAAC,GAWA,GAVAS,KAAAnF,IAAAmF,EACAL,GAAAjB,KAAAC,SAAA,CAAAqB,GAAAtJ,MAAA,CAKAiJ,GAAA,EAEAA,GAAAI,EACAA,EAAA,EACAJ,EAAAN,EAAA,CACAO,GAAAP,EAAA,YAAArF,GACA,KACA,CAEA6F,EAAA/F,MAAA,CAAAd,EAAA,CAAAgH,CACA,MAGA,QAAAhH,KAAA6G,EAAA7F,MAAA,CACA,GAAAlE,OAAAuB,SAAA,CAAA4C,cAAA,CAAA1C,IAAA,CAAAsI,EAAA7F,MAAA,CAAAhB,GAAA,CACA,IAAAgH,EAAAN,GAAAG,EAAA7F,MAAA,CAAAhB,EAAA,CAAA6G,EAAAI,IAAA,CAAAjH,EAAAsG,EAAAC,GAQA,GALA1E,KAAAA,IAAAmF,IACAL,GACAjB,KAAAC,SAAA,CAAAqB,GAAAtJ,MAAA,CAAAqJ,EAAA/G,EAAAtC,MAAA,CAlDA,EAmDAqJ,EAAA,GAEAJ,EAAAN,EAAA,CACAO,GAAAP,EAAA,YAAArF,GACA,KACA,CAEA6F,EAAA/F,MAAA,CAAAd,EAAA,CAAAgH,CACA,CAGA,CAIA,OAFApB,IACAE,IACAW,CACA,CAMA,SAAAC,GAAA1F,CAAA,CAAAkG,CAAA,CAAAlH,CAAA,CAAAmH,CAAA,CAAAZ,CAAA,EAEA,IAAAa,EAAAC,SA6EAxD,CAAA,EAEA,GAAA/D,GAAA,mBAAAA,EAAAqG,MAAA,CACA,IACA,OAAArG,EAAAqG,MAAA,EACA,CACA,MAAAnL,EAAA,CAEA,CAEA,OAAA6I,CACA,EAxFA7C,GACA,IAAAoG,GAAA,iBAAAA,EACA,MA0BA,iBA1BAA,EA2BA,YAAA5I,MAAA,CAAAqF,EAAAjD,QAAA,IAIA,mBA/BAwG,EAgCA,cAAA5I,MAAA,CAAAqF,EAAAhJ,IAAA,aAGA,iBAnCAuM,EAoCA,YAAA5I,MAAA,CAAAqF,EAAAyD,WAAA,EAAAzD,EAAAjD,QAAA,IApCAwG,EAEA,IAAAG,EAAAC,SAgDA3D,CAAA,EACA,IAEA,GAAAA,aAAA4D,MACA,OACAC,UAAA7D,EAAA6D,SAAA,EAKA,IAAAC,EAAAC,OADAvJ,SAAA,CAAAuC,QAAA,CAAArC,IAAA,CAAAsF,GACA8D,KAAA,oBACA,GAAAA,GAAAA,CAAA,IACA,UAAAnJ,MAAA,CAAAmJ,CAAA,QAEA,CACA,MAAA3M,EAAA,CAGA,CACA,wBACA,EApEAoM,GACA,GAAAG,aAAAA,GAAAA,YAAAA,GAAAA,YAAAA,EACA,OAAAA,EAMA,GAAAhB,EAAAjC,GAAA,CADAtD,GAEA,4BAAAxC,MAAA,CAAA+H,EAAAlF,GAAA,CAFAL,GAEA,KAGA,IAAA6G,EAAA7H,KAAA6B,IAAA7B,EAAA,GAAAxB,MAAA,CAAA0I,EAAA,KAAA1I,MAAA,CAAAwB,GAAAkH,EACApG,EAAA1C,MAAA0F,OAAA,CAAAsD,GAAA,MAGA,OAFAb,EAAAuB,GAAA,CAPA9G,EAOA6G,GACAV,EAAAzH,IAAA,EAAiBsB,OAAAoG,EAAAtG,OAAAA,EAAAmG,KAAAY,CAAA,GACjB/G,CACA,CAuEA,SAAA8F,GAAAP,CAAA,CAAA0B,CAAA,CAAA/G,CAAA,EACI9D,EAAOT,IAAA,+BAAA+B,MAAA,CAAAuJ,EAAA,gCAAAvJ,MAAA,CAAA6H,EAAA,gBAAArF,EACX,CCnLA,IAAAgH,GAAA,WACA,SAAAA,EAAAC,CAAA,EACA,KAAAA,gBAAA,CAAAA,EACA,KAAAC,SAAA,IAoBA,OAlBAF,EAAA3J,SAAA,CAAA8J,SAAA,UAAAC,CAAA,EACA,IAAAC,EAAA,KAKA,MAJA,MAAAH,SAAA,CAAAxK,MAAA,OAAAuK,gBAAA,EACA,MAAAK,iBAAA,MAAAL,gBAAA,IAAApG,KAAAA,CAAA,EAEA,KAAAqG,SAAA,CAAAxI,IAAA,CAAA0I,GACA,CACAG,YAAA,WACAF,EAAAH,SAAA,CAAAG,EAAAH,SAAA,CAAAM,MAAA,UAAAC,CAAA,EAA4E,OAAAL,IAAAK,CAAA,GAC5E,CAAAJ,EAAAH,SAAA,CAAAxK,MAAA,EAAA2K,EAAAC,iBAAA,EACAD,EAAAC,iBAAA,EAEA,CACA,CACA,EACAN,EAAA3J,SAAA,CAAAqK,MAAA,UAAAC,CAAA,EACA,KAAAT,SAAA,CAAAlL,OAAA,UAAAlB,CAAA,EAAqD,OAAAA,EAAA6M,EAAA,EACrD,EACAX,CACA,IAEO,SAAAY,KAEP,QADAC,EAAA,GACArL,EAAA,EAAqBA,EAAAC,UAAAC,MAAA,CAAuBF,IAC5CqL,CAAA,CAAArL,EAAA,CAAAC,SAAA,CAAAD,EAAA,CAFA,IAIAsL,EAAA,IAAAd,GAAA,WACA,IAAAe,EAAAF,EAAA9I,GAAA,UAAAiJ,CAAA,EACA,OAAAA,EAAAb,SAAA,UAAAQ,CAAA,EAA0D,OAAAG,EAAAJ,MAAA,CAAAC,EAAA,EAC1D,GACA,kBAA6B,OAAAI,EAAA/L,OAAA,UAAAiM,CAAA,EAAuD,OAAAA,EAAAV,WAAA,IAAoC,CACxH,GACA,OAAAO,CACA,CChCO,IACPI,GAAAlO,CAAAA,CAAAA,EAAA,GACA,8BACAA,CAAA,WACAA,CAAA,qBACAA,CAAA,qBACAA,CAAA,EACO,SAAAmO,GAAAC,CAAA,CAAAC,CAAA,SACP,EARO,OASCnM,EAAOT,IAAA,QAAA+B,MAAA,CAAA0K,EAAA,CAAAG,EAAA,mCAAA7K,MAAA,CAAA8K,EAA2I,6JAC1J,GAGA,CCVO,SAAAC,GAAAF,CAAA,CAAAG,CAAA,EACP,SAAAA,GAA4CA,CAAAA,EAAwB7H,EAAA,EACpE,IACA8H,EADA3K,EAAA,GAEA4K,EAAA,GACAC,EAAA,IAA+B3B,GAG/B4B,EAAqC9G,GAAQ,SAAAhE,CAAA,EAC7C2K,EAAAD,EAAgDjE,GAAazG,IAC7D4K,GACAA,CAAAA,EAA4BP,GAA8BM,EAAAJ,EAAA,CAE1D,EAdO,KAcF7F,SAAA,CACLqG,EAAA,CACAC,cAAA,WAAqC,OAAAL,CAAA,EACrCM,WAAA,WAAkC,OAAO5E,GAASrG,EAAA,EAClDkL,WAAA,SAAAC,CAAA,EACgBrG,WAAAA,GAAOqG,GAEvBL,EADA9K,EAA0BsH,GAAQ6D,IAIlCJ,EAAAK,YAAA,GAEAP,EAAAjB,MAAA,EACA,EACAyB,mBAAA,SAAAnK,CAAA,CAAAoK,CAAA,EACAtL,CAAA,CAAAkB,EAAA,CAA2BoG,GAAQgE,GACnCR,EAAA9K,GACA6K,EAAAjB,MAAA,EACA,EACA2B,sBAAA,SAAArK,CAAA,EACA,OAAAlB,CAAA,CAAAkB,EAAA,CACA4J,EAAA9K,GACA6K,EAAAjB,MAAA,EACA,EACAwB,aAAA,WACApL,EAAA,GACA2K,EAAA,EACAE,EAAAjB,MAAA,EACA,EACAiB,iBAAAA,CACA,EACA,OAAAE,CACA,CCrDA,IAAAS,GAAA,WACA,SAAAA,IACA,KAAAC,MAAA,IAYA,OAVAD,EAAAjM,SAAA,CAAAkG,GAAA,UAAA/B,CAAA,EACA,KAAA+H,MAAA,CAAA7K,IAAA,CAAA8C,GANA,KAQA,KAAA+H,MAAA,CAAAC,MAAA,KAEA,EACAF,EAAAjM,SAAA,CAAAoM,KAAA,YACA,KAAAF,MAAA,CAAAvN,OAAA,UAAAwF,CAAA,EAAkD,OAAAA,GAAA,GAClD,KAAA+H,MAAA,CAAA7M,MAAA,EACA,EACA4M,CACA,ICZO,SAAAI,GAAAC,CAAA,EACP,OAAAA,IAAAA,GAAAC,IAAAA,KAAAC,MAAA,IAAAF,CACA,CACO,SAAAG,GAAAC,CAAA,CAAAC,CAAA,EACP,OAAAD,EAAAE,OAAA,CAAAD,EACA,CACO,SAAAE,GAAArH,CAAA,EACP,OAAAsH,GAAAtH,IAAAA,GAAA,GAAAA,GAAA,GACA,CACO,SAAAsH,GAAAtH,CAAA,EACP,uBAAAA,CACA,CCTO,SAAAuH,GAAAC,CAAA,MAIPC,EAHA,OAAaD,SAAAA,EAAAE,UAKb,CAFAD,EAAAE,KAAAC,YAAAC,GAAA,IAEAC,KACAf,KAAAE,KAAA,CAqCAc,EA3CaP,GAwDbT,KAAAE,KAAA,CAbAc,KA3CaP,EAAA,CACb,CAYO,SAAAQ,GAAAC,CAAA,SACP,GAAiBA,GAGNhB,GAAKgB,IAAAA,EAAA,GAFhBA,CAGA,CACO,SAAAN,KAMP,WAAAhH,OAAAC,OAAA,EACA,CACO,SAAAsH,KACP,OAAAP,IACA,CACO,SAAAQ,KACP,OAAAP,YAAAC,GAAA,EACA,CACO,SAAAO,KACP,OAAaZ,SAAAW,KAAAT,UAAAQ,IAAA,CACb,CACO,SAAAG,KACP,OAAab,SAAA,EAAAE,UAAAI,IAAA,CACb,CA2BA,SAAAA,KAIA,OAHA9J,KAAAA,IAAA5G,GACAA,CAAAA,EAAAwQ,YAAAU,MAAA,CAAAlR,eAAA,EAEAA,CACA,CCzEO,SAAAmR,GAAAC,CAAA,EACP,OAAAA,EAEA,CAAAC,SAAAD,EAAA,OAAAzB,KAAAC,MAAA,IAAAyB,SAAAD,EAAA,OAAAzL,QAAA,KACA,GAAApC,MAAA,UAAAA,MAAA,UAAAA,MAAA,UAAAA,MAAA,UAAAA,MAAA,OAAAgC,OAAA,UAAA4L,GACA,CACA,IAAAG,GAAA,0BACO,SAAAC,GAAAC,CAAA,CAAA5R,CAAA,EAGP,IAFA0R,GAAAG,SAAA,KAEA,CACA,IAAA/E,EAAA4E,GAAAI,IAAA,CAAAF,GACA,GAAA9E,EACA,IAAAA,CAAA,MAAA9M,EACA,OAAA8M,CAAA,SAIA,KAEA,CACA,CAgBO,SAAAiF,GAAA1N,CAAA,CAAAxB,CAAA,CAAAmP,CAAA,EACP,SAAAA,GAA6BA,CAAAA,EAAA,IAC7B,IAAAC,EAAA5N,EAAAyB,UAAA,CAAAjD,EAAA,GAEAqP,EAAAC,GADA,OAAAF,GAAA,MACApP,EAAA,EAAAA,SACA,EAAAA,MAAA,EAAAqP,EACA7N,EAEA,GAAAV,MAAA,CAAAU,EAAAZ,KAAA,GAAAyO,IAAAvO,MAAA,CAAAqO,EACA,CC/CO,SAAAI,GAAApS,CAAA,CAAAgJ,CAAA,CAAAqJ,CAAA,CAAAlK,CAAA,EACP,IAAAmK,EAAA,IAAA3I,KACA2I,EAAAC,OAAA,CAAAD,EAAA1I,OAAA,GAAAyI,GACA,IAAAG,EAAA,WAAA7O,MAAA,CAAA2O,EAAAG,WAAA,IACAC,EAAAvK,GAAAA,EAAAwK,SAAA,iBACAC,EAAAzK,GAAAA,EAAAyK,MAAA,YAA+CjP,MAAA,CAAAwE,EAAAyK,MAAA,KAC/CC,EAAA1K,GAAAA,EAAA0K,MAAA,WAA+C,EAC/CC,CAAAA,SAAAC,MAAA,IAAApP,MAAA,CAAA3D,EAAA,KAAA2D,MAAA,CAAAqF,EAAA,KAA2DrF,MAAA,CAAA6O,EAAA,qBAA4B7O,MAAA,CAAA+O,GAAA/O,MAAA,CAAAiP,GAAAjP,MAAA,CAAAkP,EACvF,CACO,SAAAG,GAAAhT,CAAA,EACP,OAAW2R,GAAuBmB,SAAAC,MAAA,CAAA/S,EAClC,CAMO,SAAAiT,GAAAjT,CAAA,EAIP,OAHAK,GACAA,CAAAA,EAA2B6S,SDIpBtB,CAAA,EACP,IAAA7E,EAAA,IAAAoG,IAGA,IAFAzB,GAAAG,SAAA,KAEA,CACA,IAAA/E,EAAA4E,GAAAI,IAAA,CAAAF,GACA,GAAA9E,EACAC,EAAAE,GAAA,CAAAH,CAAA,IAAAA,CAAA,UAGA,KAEA,CACA,OAAAC,CACA,EClBmD+F,SAAAC,MAAA,GAEnD1S,EAAAmG,GAAA,CAAAxG,EACA,CAIO,SAAAoT,GAAApT,CAAA,CAAAmI,CAAA,EACPiK,GAAApS,EAAA,KAAAmI,EACA,CC3BO,SAAAkL,KACP,MAAAC,CAAAA,CAAA7N,CAAAA,OAAA8N,+BAAA,EAA6DN,GAFtD,iCAEmE,CAC1E,CCJO,SAAAO,KACP,IAAAC,EAuBWpN,KAAeqN,kBAAA,CAtB1B,GAAAD,EAGA,OACAE,uBAAA,WACA,OAAA9I,KAAA+I,KAAA,CAAAH,EAAAE,sBAAA,GACA,EACAE,KAAA,SAAAC,CAAA,CAAAC,CAAA,EACAN,EAAAI,IAAA,CAAAhJ,KAAAC,SAAA,EAAoDgJ,UAAAA,EAAAC,MAAAA,CAAA,GACpD,CACA,CACA,CACO,SAAAC,GAAAC,CAAA,EAEP,SAAAA,GAAkCA,CAAAA,EAAA,OAAA9T,CAAAA,EAAoBkG,KAAe6N,QAAA,GAAA/T,KAAA,IAAAA,EAAA,OAAAA,EAAAgU,QAAA,EACrE,IAFAhU,EAEAiU,EAAAZ,KACA,QAAAY,GACAA,EACAT,sBAAA,GACAU,IAAA,UAAAC,CAAA,MpByBOjQ,EAAAC,EoBzBoC,OAAA2P,IAAAK,IpByBpCjQ,EoBzBkF4P,EpByBlF3P,EoBzBkF,IAAAX,MAAA,CAAA2Q,GpB0BzFjQ,EAAAZ,KAAA,EAAAa,EAAAzB,MAAA,IAAAyB,EoB1ByF,EACzF,CC2BO,SAAAiQ,GAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAxM,CAAA,EACP,OAAAyM,GAAAJ,EAAAC,EAAA,CAAAC,EAAA,CAAAC,EAAAxM,EACA,CAaO,SAAAyM,GAAAJ,CAAA,CAAAC,CAAA,CAAAI,CAAA,CAAAF,CAAA,CAAAxU,CAAA,EACP,IAAA2U,EAAA3U,KAAA,IAAAA,EAAA,GAAgCA,EAAA4U,EAAAD,EAAAC,IAAA,CAAAC,EAAAF,EAAAE,OAAA,CAAAC,EAAAH,EAAAG,OAAA,CAChCC,EAA8BnR,EAAO,SAAAgQ,CAAA,EACrC,GAAAlH,SAAA,EAAAkH,EAAAoB,aAAA,EAAAX,EAAAY,oBAAA,IAGAL,GACAM,IAEAV,EAAAZ,GACA,GACA5L,EAAA8M,EAAA,CAA8BD,QAAAA,EAAAC,QAAAA,CAAA,EAAqCD,EACnEtL,EAAcrC,GAAsBoN,EAAA,oBAEpC,SAAAY,IACA,IAAAC,EAAqBjO,GAAsBoN,EAAA,uBAC3CI,EAAA1S,OAAA,UAAAuS,CAAA,EAAkD,OAAAY,EAAA5R,IAAA,CAAA+Q,EAAAC,EAAAQ,EAAA/M,EAAA,EAClD,CACA,OALA0M,EAAA1S,OAAA,UAAAuS,CAAA,EAA8C,OAAAhL,EAAAhG,IAAA,CAAA+Q,EAAAC,EAAAQ,EAAA/M,EAAA,GAK9C,CACAkN,KAAAA,CACA,CACA,CAjFAzV,CADAA,EAmCCA,GAAAA,CAAAA,EAAA,KAlCD,6BACAA,EAAA,cACAA,EAAA,qBACAA,EAAA,mBACAA,EAAA,YACAA,EAAA,qBACAA,EAAA,gBACAA,EAAA,yBACAA,EAAA,qBACAA,EAAA,uBACAA,EAAA,qCACAA,EAAA,qBACAA,EAAA,gBACAA,EAAA,gBACAA,EAAA,sCACAA,EAAA,2BACAA,EAAA,uBACAA,EAAA,+BACAA,EAAA,yBACAA,EAAA,qBACAA,EAAA,uBACAA,EAAA,mBACAA,EAAA,uBACAA,EAAA,cACAA,EAAA,YACAA,EAAA,2BACAA,EAAA,gBACAA,EAAA,gBACAA,EAAA,cACAA,EAAA,YACAA,EAAA,cACAA,EAAA,oDACAA,EAAA,mCACAA,EAAA,kBCnCA,IAAA2V,GAAA,GACO,SAAAC,GAAAhB,CAAA,CAAAiB,CAAA,CAAAjH,CAAA,CAAAG,CAAA,EACP,SAAAA,GAA4CA,CAAAA,EAAwB7H,EAAA,EACpE,IAAA4O,EAqBA,GAAA/R,MAAA,CAzBA,QAyBA,KAAAA,MAAA,CArBA8R,EAqBA,KAAA9R,MAAA,CArBA6K,GACAQ,EAAyBN,GAAoBF,EAAAG,GAS7C,OARAgH,IACAJ,GAAA1Q,IAAA,CAA0B0P,GAAgBC,EAAA/O,OAAwB7F,EAASgW,OAAA,UAAAzV,CAAA,EAE3EuV,IADAvV,EAAAgF,GAAA,EAEAwQ,GAEA,IACA3G,EAAAF,gBAAA,CAAAxB,SAAA,CAOA,WACAuI,aAAAC,OAAA,CAAAJ,EAAA7K,KAAAC,SAAA,CAAAkE,EAAAE,UAAA,IACA,GARAF,EACA,SAAA2G,IACA,IAAAI,EAAAF,aAAAG,OAAA,CAAAN,GACAzR,EAAA8R,OAAAA,EAAAlL,KAAA+I,KAAA,CAAAmC,GAAA,GACA/G,EAAAG,UAAA,CAAAlL,EACA,CAIA,CCzBO,SAAAgS,KACP,IAAAC,EAAA,GACAC,EAAA,EACA,OACAC,QAAA,GACA,IAAAC,SAAA,CACA,OAAAH,CACA,EACAI,MAAA,SAAAxI,CAAA,CAAAnG,CAAA,EACA,IAAA4O,EAA8CzP,GAAiBgH,GAC/DqI,GAAAI,EACAL,GAAApI,EACAnG,GACAA,EAAA4O,EAEA,EACAC,OAAA,SAAA7O,CAAA,EACAA,EAAA,KAAA8O,UAAA,GACA,EACAA,WAAA,WACA,IAAA1J,EAAA,CACAmJ,OAAAA,EACAC,iBAAAA,EACAO,cAAAP,EACAQ,YAAA,EACA,EAGA,OAFAT,EAAA,GACAC,EAAA,EACApJ,CACA,EACA6J,0BAAA,SAAA9I,CAAA,EACA,OAAAA,EAAAjL,MAAA,CAEA,CACA,CC5BO,SAAAgU,GAAAC,CAAA,EACP,IAAAC,EAAA,GACAC,EAAAC,GAAAH,EAAA,SACAI,EAAAC,OAAAL,GAeA,OAdAE,GAAyB3R,EAAU2R,EAAAE,IACnCF,CAAAA,EAAAA,EAAAvT,KAAA,CAAAyT,EAAArU,MAAA,GAEAmU,GACAA,EAAAI,KAAA,OAAAjV,OAAA,UAAAkV,CAAA,EACA,IAAAC,EAAAC,SAmBAF,CAAA,EACA,IAAAG,EAAAC,GAAA3F,IAAA,CAAAuF,GACA,GAAAG,GAGA,IAAAE,EAAAF,CAAA,KAAAA,IAAAA,CAAA,IAAAjT,OAAA,WACAoT,EAAAH,CAAA,KAAAA,IAAAA,CAAA,IAAAjT,OAAA,SACAqT,EAAAC,GAAA/F,IAAA,CAAA0F,CAAA,KAOA,OANAG,GAAAC,IAEAJ,CAAA,IAAAI,CAAA,IACAJ,CAAA,IAAAI,CAAA,IACAJ,CAAA,IAAAI,CAAA,KAEA,CACAlV,KAAAgV,EAAA,CAAAF,CAAA,QACAM,OAAAN,CAAA,KAAAA,CAAA,IAAAxQ,KAAAA,EACA+Q,KAAAP,CAAA,KA9CA,IA+CAH,KAAAG,CAAA,KAAAA,CAAA,IAAAxQ,KAAAA,EACAgR,IAAA,EAAAhR,KAAAA,EAAAwQ,CAAA,KAEA,EAxCAH,IAAAY,SA0CAZ,CAAA,EACA,IAAAG,EAAAU,GAAApG,IAAA,CAAAuF,GACA,GAAAG,EAGA,OACA9U,KAAA,GACAoV,OAAAN,CAAA,KAAAA,CAAA,IAAAxQ,KAAAA,EACA+Q,KA5DA,IA6DAV,KAAAG,CAAA,KAAAA,CAAA,IAAAxQ,KAAAA,EACAgR,IAAAR,CAAA,IAEA,EAtDAH,IAAAc,SAwDAd,CAAA,EACA,IAAAG,EAAAY,GAAAtG,IAAA,CAAAuF,GACA,GAAAG,EAGA,OACA9U,KAAA,GACAoV,OAAAN,CAAA,KAAAA,CAAA,IAAAxQ,KAAAA,EACA+Q,KAAAP,CAAA,KA1EA,IA2EAH,KAAA,CAAAG,CAAA,IACAQ,IAAAR,CAAA,IAEA,EApEAH,IAAAgB,SAuEAhB,CAAA,EACA,IAAAG,EAAAc,GAAAxG,IAAA,CAAAuF,GACA,GAAAG,GAGA,IAAAG,EAAAH,CAAA,KAAAA,CAAA,IAAAjT,OAAA,eACAqT,EAAAW,GAAAzG,IAAA,CAAA0F,CAAA,KAOA,OANAG,GAAAC,IAEAJ,CAAA,IAAAI,CAAA,IACAJ,CAAA,IAAAI,CAAA,IACAJ,CAAA,IAAAxQ,KAAAA,GAEA,CACAtE,KAAA8U,CAAA,IAAAA,CAAA,IAAAJ,KAAA,SACAU,OAAAN,CAAA,KAAAA,CAAA,IAAAxQ,KAAAA,EACA+Q,KAAAP,CAAA,KAjGA,IAkGAH,KAAAG,CAAA,KAAAA,CAAA,IAAAxQ,KAAAA,EACAgR,IAAAR,CAAA,KAEA,EA3FAH,GACAC,IACA,CAAAA,EAAAS,IAAA,EAAAT,EAAAD,IAAA,EACAC,CAAAA,EAAAS,IAAA,CAbA,GAaA,EAEAhB,EAAAlS,IAAA,CAAAyS,GAEA,GAEA,CACAkB,QAAAvB,GAAAH,EAAA,WACA9W,KAAAiX,GAAAH,EAAA,QACAC,MAAAA,CACA,CACA,CACA,IAAA0B,GAAA,iGACAC,GAAA,cACAjB,GAAA,4BAAA9T,MAAA,CAAA8U,IAAA9U,MAAA,CAAA+U,GAAA,KAAA/U,MAAA,CAAA+U,GAAA,mBACAb,GAAA,IAAAhO,OAAA,YAAAlG,MAAA,CAAA+U,IAAA/U,MAAA,CAAA+U,GAAA,QAuBAR,GAAA,mBAAAvU,MAAA,CAAA8U,IAAA9U,MAAA,CAAA+U,GAAA,KAAA/U,MAAA,CAAA+U,GAAA,gBAcAN,GAAA,gHAcAE,GAAA,4IACAC,GAAA,gDAsBA,SAAAtB,GAAA5S,CAAA,CAAAkL,CAAA,EACA,oBAAAlL,GAAAA,GAAAkL,KAAAlL,GAGA,IAAA2E,EAAA3E,CAAA,CAAAkL,EAAA,CACA,uBAAAvG,EAAAA,EAAAhC,KAAAA,EACA,CAWA,IAAA2R,GAAA,+GCxHOC,GAAA,gDACA,SAAAC,GAAA1Y,CAAA,EACP,IAAA2Y,EAAA3Y,EAAA2Y,UAAA,CAAAC,EAAA5Y,EAAA4Y,aAAA,CAAAC,EAAA7Y,EAAA6Y,aAAA,CAAAC,EAAA9Y,EAAA8Y,WAAA,CAAAC,EAAA/Y,EAAA+Y,cAAA,CAAA/S,EAAAhG,EAAAgG,MAAA,CAAAgT,EAAAhZ,EAAAgZ,QAAA,CACAC,EAAAL,aAAAM,MACAb,EAuBA,CAAAM,MAvBAA,EAuBA,OAAAA,EAAAN,OAAA,GAAAM,CAAAA,MAvBAA,EAuBA,OAAAA,EAAA9Y,IAAA,EACA8Y,EAAAN,OAAA,CACA,EAEA,gBADA,GAAA7U,MAAA,CA1BAuV,EA0BA,KAAAvV,MAAA,CAAoD+G,GAAca,GA1BlEwN,KACAhC,EAAAuC,KA6BAtS,IA7BA8R,IAAAM,GAqCAN,EAAA/B,KAAA,CAAAlU,MAAA,IAAAiW,CAAAA,EAAA/B,KAAA,CAAAlU,MAAA,IAAAiW,KAAA9R,IAAA8R,EAAA/B,KAAA,IAAAiB,GAAA,GApCAuB,GAAAT,GACAF,GACAY,EAAAJ,EAAAK,SA4FO5X,CAAA,CAAA6X,CAAA,EAGP,IAFA,IAAAC,EAAA9X,EACA2X,EAAA,GACA,CAAAG,MAAAA,EAAA,OAAAA,EAAAC,KAAA,YAAAP,OAAAG,EAAA3W,MAAA,MACA,IAAAiW,EAAyBjC,GAAiB8C,EAAAC,KAAA,EAC1CJ,EAAA3U,IAAA,EACA2T,QAAAmB,EAAAC,KAAA,CAAApB,OAAA,CACArS,OAAAuT,EACAG,KAAAf,MAAAA,EAAA,OAAAA,EAAA9Y,IAAA,CACA+W,MAAA+B,GAAAS,GAAAT,EACA,GACAa,EAAAA,EAAAC,KAAA,CAEA,OAAAJ,EAAA3W,MAAA,CAAA2W,EAAAxS,KAAAA,CACA,EA1GA+R,EAAA5S,GAAAa,KAAAA,EACA6S,EAAAf,MAAAA,EAAA,OAAAA,EAAA9Y,IAAA,CACA8Z,EAAAC,GAAAhB,GACA,OACAE,YAAAA,EACA9S,OAAAA,EACAgT,SAAAA,EACAH,cAAAA,EACAD,cAAAA,EACAc,KAAAA,EACArB,QAAAA,EACAzB,MAAAA,EACAyC,OAAAA,EACAM,YAAAA,CACA,CACA,CAqBO,SAAAC,GAAAhB,CAAA,EACP,OAAAA,aAAAM,OAAA,mBAAAN,EACA5B,OAAA4B,EAAAiB,cAAA,EACAhT,KAAAA,CACA,CACO,SAAAuS,GAAAxC,CAAA,EACP,IAAAhK,EAAAkN,GAAAlD,GAQA,OAPAA,EAAAA,KAAA,CAAA5U,OAAA,UAAA+X,CAAA,EACA,IAAAnC,EAAAmC,MAAAA,EAAAnC,IAAA,eAAAmC,EAAAnC,IAAA,CACArV,EAAAwX,EAAAxX,IAAA,EAAAwX,EAAAxX,IAAA,CAAAG,MAAA,OAAAc,MAAA,CAAAuW,EAAAxX,IAAA,CAAAyH,IAAA,eACAkN,EAAA6C,EAAA7C,IAAA,KAAA1T,MAAA,CAAAuW,EAAA7C,IAAA,KACAS,EAAAoC,EAAA7C,IAAA,EAAA6C,EAAApC,MAAA,KAAAnU,MAAA,CAAAuW,EAAApC,MAAA,KACA/K,GAAA,UAAApJ,MAAA,CAAAoU,GAAApU,MAAA,CAAAjB,EAAA,OAAAiB,MAAA,CAAAuW,EAAAlC,GAAA,EAAArU,MAAA,CAAA0T,GAAA1T,MAAA,CAAAmU,EACA,GACA/K,CACA,CAKO,SAAAkN,GAAAlD,CAAA,EACP,SAAApT,MAAA,CAAAoT,EAAA/W,IAAA,gBAAA2D,MAAA,CAAAoT,EAAAyB,OAAA,CACA,CAQO,SAAA2B,KAQP,IACAC,EADAvY,EAAA,QAGA,IAAAA,EAAAkV,KAAA,CACA,IACA,MAAAlV,CACA,CACA,MAAAqC,EAAA,CAEA,CAOA,OALIF,EAAa,WACjB,IAAA8U,EAAyBjC,GAAiBhV,EAC1CiX,CAAAA,EAAA/B,KAAA,CAAA+B,EAAA/B,KAAA,CAAAtT,KAAA,CAdA,GAeA2W,EAAAb,GAAAT,EACA,GACAsB,CACA,CChGO,SAAAC,GAAAC,CAAA,EAEP,IAAAC,EAAevU,EAAM,GAAGsU,GAOxB,MALApY,CADA,qBACAC,OAAA,UAAAgD,CAAA,EACAA,KAAAoV,GACAA,CAAAA,CAAA,CAAApV,EAAA,CAAAgS,OAAAoD,CAAA,CAAApV,EAAA,EAEA,GACAoV,CACA,CCJA1a,CADAA,EAOCA,GAAAA,CAAAA,EAAA,KAND,oBACAA,EAAA,8BACAA,EAAA,4CACAA,EAAA,4CACAA,EAAA,sBACAA,EAAA,sDAEA,IAAA2a,GAAA,IAAA7V,IAMO,SAAA8V,GAAAC,CAAA,EACP,OAAAF,GAAA/Q,GAAA,CAAAiR,EACA,CC5BO,SAAAC,GAAA1V,CAAA,EACP,OAAWe,EAAM,GAAGf,EACpB,CACO,SAAA2V,GAAA3V,CAAA,CAAA+D,CAAA,EACP,OAAA/G,OAAAC,IAAA,CAAA+C,GAAAoP,IAAA,UAAAlP,CAAA,EAAqD,OAAAF,CAAA,CAAAE,EAAA,GAAA6D,CAAA,EACrD,CACO,SAAA6R,GAAA5V,CAAA,EACP,OAAAhD,IAAAA,OAAAC,IAAA,CAAA+C,GAAApC,MAAA,CEEA,SAAAiY,SAIOvT,EACPpH,EAEA4a,EANA,OAAAxa,MAAAA,EAAAA,GAKA,SAAAgH,GAAoCA,CAAAA,EAAA9B,MAAA,EACpCsV,EAAAxT,EAAAyT,SAAA,CAAAD,SAAA,CANAxa,EAOA,EAAA0a,MAAA,mBAAAlU,IAAA,CAAAgU,GACA,EAMA,QAAA5a,CAAAA,EAAAoH,EAAAyT,SAAA,CAAAE,MAAA,GAAA/a,KAAA,IAAAA,EAAA,OAAAA,EAAAoE,OAAA,gBACA,UAAAwC,IAAA,CAAAgU,IAAA,mBAAAhU,IAAA,CAAAgU,GACA,EAEAxT,EAAAuL,QAAA,CAAAqI,YAAA,CACA,EAEA,EApBA,CCZO,IAAAC,GAAA,QCIPC,GAAA,0BAKO,SAAAC,GAAAC,CAAA,EACPA,EAAAC,MAAA,CAAArE,OAA4BxG,KHRrB,IGSP,CACO,SAAA8K,GAAAF,CAAA,EACP,OAAWnW,EAAamW,GACxBrW,GAAA,UAAA/E,CAAA,EACA,IAAAgF,EAAAhF,CAAA,IAAA6I,EAAA7I,CAAA,IACA,SAAAwD,MAAA,CAAAwB,EAAA,KAAAxB,MAAA,CAAAqF,EACA,GACAmB,IAAA,CAbA,IAcA,CACO,SAAAuR,GAAAC,CAAA,EACP,IAAAJ,EAAA,GAUA,OATAI,GAaAA,CAAAA,KAAAA,EAAApX,OAAA,CA9BA,MA8BA8W,GAAAtU,IAAA,CAbA4U,EAaA,GAZAA,EAAAvE,KAAA,CAlBA,KAkBAjV,OAAA,UAAAyZ,CAAA,EACA,IAAAC,EAAAR,GAAAvJ,IAAA,CAAA8J,GACA,GAAAC,OAAAA,EAAA,CACA,IAAA1W,EAAA0W,CAAA,IAAA7S,EAAA6S,CAAA,IACAN,CAAA,CAAApW,EAAA,CAAA6D,CACA,CACA,GAEAuS,CACA,CEHA,SAAAO,KAEA,OAAWJ,GADa1I,GAAUoI,IAElC,CCPA,SAAAW,GAAAC,CAAA,EACAnG,aAAAC,OAAA,CAAyBsF,GAAmBK,GAAeO,GAC3D,CACA,SAAAC,KAEA,OAAWP,GADX7F,aAAAG,OAAA,CAA6CoF,IAE7C,CACA,SAAAc,KACArG,aAAAsG,UAAA,CAA4Bf,GAC5B,CC7BA,IAAAgB,GAAA,GAEO,SAAAC,GAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,EAEP,SAAAA,GAAsCA,CAAAA,EAAA,GACtC,IAFArc,EAcAsc,EAZAC,EAAAH,EAAAG,aAAA,CAAAC,EAAAJ,EAAAI,eAAA,CAAAC,EAAAL,EAAAK,cAAA,CAAAC,EAAAN,EAAAM,YAAA,CAIA,GAHArc,GACAA,CAAAA,EAAA8b,CAAA,EAEAA,IAAA9b,EAAA,CACA4b,GAAAvX,IAAA,CAAAyX,GACA,MACA,CACA,GAAAI,GAAAF,GAdO,IAcP,CACAM,GAAAP,GACA,MACA,CAEA,IAAAQ,EAAAJ,IACA,GAAAD,IAEAK,EAAAC,IAAA,GAKAP,EAAsBlL,KACtBwL,EAAAC,IAAA,CAAAP,EACAG,EAAAG,GAGAA,CADAA,EAAAJ,GAAA,EACAK,IAAA,GAAAP,IAVA,CACAQ,GAAAX,EAAAC,EAAAC,GACA,MACA,CAYA,IAAAU,EAAAZ,EAAAa,OAAA,CAAAJ,GACA,GAAAL,GAGAK,CADAA,EAAAJ,GAAA,EACAK,IAAA,GAAAP,EAAA,CACAQ,GAAAX,EAAAC,EAAAC,GACA,MACA,CAWA,GATAU,IJ3CWrC,GI4CwBqC,GACnCL,KAGYvB,GAAkB4B,GAC9BN,EAAAM,KAGAR,GAGA,CAAAQ,CAAAA,GJvDWrC,GIuD8CqC,EAAA,GAGzD,GAAAH,CADAA,EAAAJ,GAAA,EACAK,IAAA,GAAAP,EAAA,CACAQ,GAAAX,EAAAC,EAAAC,GACA,MACA,CACA,OAAAO,EAAAC,IAAA,CACAJ,EAAAG,GACAG,EAAAH,CACA,CAIA,OAAA5c,CAAAA,EAAAmc,EAAAc,KAAA,GAAAjd,KAAA,IAAAA,GAAAA,EAAAuD,IAAA,CAAA4Y,EAAAY,GAAAH,GACAD,GAAAP,EACA,CACA,SAAAU,GAAAX,CAAA,CAAAe,CAAA,CAAAC,CAAA,EACI5V,GAAU,WACd2U,GAAAC,EAAAe,EAAAC,EAAA,EACA,EA/EO,GAgFP,CACA,SAAAR,GAAAO,CAAA,EACA7c,EAAAwG,KAAAA,EACA,IAAAuW,EAAAnB,GAAAnQ,KAAA,GACAsR,GACAlB,GAAAkB,EAAAF,EAEA,CEzFO,SAAAG,GAAAxF,CAAA,EACP,OAAAyF,GAAAzF,EA+DA0F,SAOOC,CAAA,EACP,GAAAA,EAAAC,MAAA,EAAAD,SAAAA,EAAAC,MAAA,CACA,OAAAD,EAAAC,MAAA,CAEA,IAAAC,EAAAF,EAAAG,IAAA,CAAAnY,OAAA,mBACA,SAAAhC,MAAA,CAAAga,EAAAI,QAAA,OAAApa,MAAA,CAAAka,EACA,EAbApY,OAAAyO,QAAA,GA/DA8J,IAAA,CAuBO,SAAAP,GAAAzF,CAAA,CAAAiG,CAAA,EACP,IAAAC,EAAAC,WA2BA,GAAA1d,KAAAuG,IAAAvG,EACA,IACA,IAAAuX,EAAA,IAAAoG,GAAA,oBACA3d,EAAAuX,qBAAAA,EAAAgG,IAAA,CAEA,MAAA7d,EAAA,CACAM,EAAA,EACA,CAEA,OAAAA,EAAA2d,GAAApX,KAAAA,CACA,IApCA,GAAAkX,EACA,IACA,OAAAD,KAAAjX,IAAAiX,EAAA,IAAAC,EAAAlG,EAAAiG,GAAA,IAAAC,EAAAlG,EACA,CACA,MAAAnW,EAAA,CACA,wCAAA8B,MAAA,CAAAwT,OAAAtV,GAAA,KAAA8B,MAAA,CAA0F+G,GAAa,CAAGsN,IAAAA,EAAAiG,KAAAA,CAAA,IAC1G,CAEA,GAAAA,KAAAjX,IAAAiX,GAAA,KAAAlX,IAAA,CAAAiR,GACA,6BAAArU,MAAA,CAAAqU,EAAA,MAEA,IAAAqG,EAAAvL,SACAwL,EAAAD,EAAAE,aAAA,MACA,GAAAN,KAAAjX,IAAAiX,EAAA,CAEA,IAAAO,EAAAH,CADAA,EAAAvL,SAAA2L,cAAA,CAAAC,kBAAA,MACAH,aAAA,QACAC,CAAAA,EAAAR,IAAA,CAAAC,EACAI,EAAAM,IAAA,CAAAC,WAAA,CAAAJ,GACAH,EAAAQ,IAAA,CAAAD,WAAA,CAAAN,EACA,CAEA,OADAA,EAAAN,IAAA,CAAAhG,EACAsG,CACA,CACA,IAAAF,GAAAU,IClDOC,GAAA,cACAC,GAAA,gBCIA,SAAAC,GAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,EACP,IAAAC,EAAAC,SAeAJ,CAAA,CAAAC,CAAA,EACA,IAAA/S,EAAA,WAAAzI,MAAA,CAAAwb,GACAI,EAAAL,EAAAK,KAAA,CACA,oBAAAA,EAAA,CACA,IAAAC,EAAmChC,GAAY+B,GAC/C,gBAAA3W,CAAA,EAAuC,SAAAjF,MAAA,CAAA6b,EAAA,eAAA7b,MAAA,CAAA8b,mBAAA,GAAA9b,MAAA,CAAAyI,EAAA,KAAAzI,MAAA,CAAAiF,IAAA,CACvC,CACA,sBAAA2W,EACA,gBAAA3W,CAAA,EAAuC,OAAA2W,EAAA,CAAenT,KAAAA,EAAAxD,WAAAA,CAAA,EAAoC,EAE1F,IAAAkV,EAAA4B,SAGAR,CAAA,EACA,IAAA/e,EAAA+e,EAAAS,IAAA,CAAAA,EAAAxf,KAAA,IAAAA,EAA4D6e,GAAe7e,EAAAyf,EAAAV,EAAAU,0BAAA,CAC3E,GAAAA,GAAAD,IAA+CX,GAC/C,SAAArb,MAAA,CAAAic,EAAA,KAAAjc,MAAA,CAAiEqb,IAEjE,IAAAa,EAAAF,EAAAvI,KAAA,MACA0I,EAAAD,EAAAE,GAAA,GACA,wBAAApc,MAAA,CAAAkc,EAAA1V,IAAA,WAAAxG,MAAA,CAAAmc,EACA,EAXAZ,GACA,gBAAAtW,CAAA,EAAmC,iBAAAjF,MAAA,CAAAma,GAAAna,MAAA,CAAAyI,EAAA,KAAAzI,MAAA,CAAAiF,EAAA,CACnC,EA3BAsW,EAAAC,GACA,OACAa,MAAA,SAAAC,CAAA,CAAAC,CAAA,MAwCAC,EAAAP,EACAQ,EAAAC,EAAAC,EACAC,EAOA3X,EA/CA,OAAAyW,GAsCAc,EAAAhgB,EAAAggB,WAAA,CAAAP,EAAAzf,EAAAyf,0BAAA,CACAQ,EAAAtL,EAAAsL,KAAA,CAAAC,EAAAvL,EAAAuL,WAAA,CAAAC,EAAAxL,EAAAwL,QAAA,CACAC,EAAA,gBAAA5c,MAAA,iBAAAA,MAAA,CAzCAsc,GAyCA,CAAAtc,MAAA,CAzCAyb,GA0CAiB,GAAuB5F,GAA6B5a,EAAmB2gB,oBAAA,GACvED,EAAA1b,IAAA,iBAAAlB,MAAA,CAAA0c,IAEAD,GACAG,EAAA1b,IAAA,gBAAAlB,MAAA,CAAAyc,EAAAK,KAAA,iBAAA9c,MAAA,CAAAyc,EAAAM,iBAAA,GAEA9X,EAAA,CACA,mBACA,UAAAjF,MAAA,CAAA8b,mBAAAc,EAAApW,IAAA,QACA,cAAAxG,MAAA,CAAAwc,GACA,yBAAAxc,MAAA,CAAA8b,mBAAA,UACA,wBACA,iBAAA9b,MAAA,CAAgC4N,MAChC,CACA+O,GACA1X,EAAA/D,IAAA,oBAAAlB,MAAA,CAAA2c,IAEA,QA3DAnB,GA4DAvW,EAAA/D,IAAA,eAAAlB,MAAA,CAA6CuN,OAE7C0O,GACAhX,EAAA+X,OAAA,GAEA/X,EAAAuB,IAAA,OA/DA,EACAyW,UAAAvB,EAAA,IACAF,UAAAA,CACA,CACA,CCIA,IAAA0B,GAAA,iBACO,SAAAC,GAAA3b,CAAA,CAAA4b,CAAA,EAIP,IAAAC,EAAAC,IAAA9b,EAAAtC,MAAA,GACAke,CAAAA,EAAAle,MAAA,CAAAme,GAAAH,GAAA9Z,IAAA,CAAAga,EAAA,GACQ1e,EAAOT,IAAA,IAAA+B,MAAA,CAAAwB,EAAA,+DAIf,IAAA+b,EAAAH,EAAApb,OAAA,WACA,SAAAhC,MAAA,CAAAwB,EAAA,KAAAxB,MAAA,CAAAud,EACA,CEtBO,IAAAC,GAAA,CACPC,MAAA,QACAC,KAAA,OACAC,gBAAA,iBACA,ECXO,SAAAC,GAAA3c,CAAA,EACP,IAAA4c,EAAmBzY,GAAOnE,GAC1B,MAAA4c,WAAAA,GAAAA,aAAAA,GAAA5c,aAAAiF,MACA,CAMO,SAAA4X,GAAAC,CAAA,CAAA1Y,CAAA,CAAA2Y,CAAA,EAEP,OADA,SAAAA,GAAoCA,CAAAA,EAAA,IACpCD,EAAArN,IAAA,UAAAzP,CAAA,EACA,IACA,sBAAAA,EACA,OAAAA,EAAAoE,GAEA,GAAApE,aAAAiF,OACA,OAAAjF,EAAAmC,IAAA,CAAAiC,GAEA,oBAAApE,EACA,OAAA+c,EAAuCtc,EAAU2D,EAAApE,GAAAA,IAAAoE,CAEjD,CACA,MAAA9E,EAAA,CACY7B,EAAOR,KAAA,CAAAqC,EACnB,CACA,QACA,EACA,CCPO,SAAA0d,GAAA3d,CAAA,EACP,IAAAA,EAAA4d,MAAA,EAAA5d,EAAA6d,SAAA,GACA7d,EAAA8d,OAAA,CAAA/a,KAAAA,EACA/C,EAAA+d,MAAA,CAAAhb,KAAAA,EACA/C,EAAAge,YAAA,CAAAjb,KAAAA,EAEA,CA6CA,SAAAkb,GAAA1N,CAAA,CAAAvQ,CAAA,CAAAke,CAAA,CAAAC,CAAA,EACA,QAeApb,IAAAqb,MAfAF,EAAAG,kBAAA,IAGA,IAqBAP,EAAAC,EAAAC,EAAAM,EACAC,EAtBAC,EAAwB3d,EAAI0P,EAAAkO,kBAAA,UAAAD,CAAA,EAC5B,OAAehB,GAAS,CAAAgB,EAAA3V,KAAA,EAAA7I,EAAA+T,GAAA,IACxB,GACAyK,IAGAxe,EAAA8d,OAAA,KAAAY,GACA1e,EAAA+d,MAAA,KAAAW,GACA1e,EAAAge,YAAA,EAA4B3R,GAAQkE,EAAAoO,eAAA,GAAmC/S,GAAW2E,EAAAoO,eAAA,EAClFR,GAYAL,EAZA9d,EAAA8d,OAAA,CAYAC,EAZA/d,EAAA+d,MAAA,CAYAC,EAZAhe,EAAAge,YAAA,CAYAM,EAZAE,EAAAF,eAAA,CAaAC,EAAA,GACAD,EAAApgB,OAAA,UAAA0gB,CAAA,EACA,OAAAA,GACA,cACgB7c,EAAMwc,EAAA,CACtB,yBACA,sBAAAR,EAAAc,eAAA,GACA,8BAAAb,EAAA,QACA,qBAAAF,EAAAe,eAAA,EACA,GACA,KAGA,oBACgB9c,EAAMwc,EAAA,CACtBO,YAAA,sBAAApf,MAAA,CAAAoe,EAAAiB,yBAAA,QAAArf,MAAA,CAAAqe,EAAAgB,yBAAA,SAAArf,MAAA,CAAAse,EAAA,QACA,GACA,KAGA,UACgBjc,EAAMwc,EAAA,CACtBS,GAAA,GAAAtf,MAAA,CAAAoe,EAAAiB,yBAAA,QAAArf,MAAA,CAAAqe,EAAAgB,yBAAA,QAAArf,MAAA,CAAAse,EAAA,QACA,GACA,KAEA,eACgBjc,EAAMwc,EAAA,CACtB,eAAAT,EAAAiB,yBAAA,GACA,cAAAhB,EAAAgB,yBAAA,GACA,eAAAf,EAAA,OACA,EAGA,CACA,GACAO,KAhDA,CAIA,SAAAH,KACA,OAAA5c,OAAAyd,MAAA,EAAAzd,OAAA0d,QAAA,CA8CA,IAAAR,GAAA,WACA,SAAAA,IACA,KAAAjT,MAAA,KAAA0T,WAAA,GACAf,KAAAgB,eAAA,MAAA3T,MAAA,EACA,KAAAA,MAAA,aAAAA,MAAA,IAiCA,OA/BAiT,EAAAnf,SAAA,CAAAuC,QAAA,UAAAud,CAAA,EACA,IAAAC,EAAA,KAAAC,SAAA,IACAC,EAAA,KAAAD,SAAA,IACAje,EAAA,GACA,GACA,IAAAme,EAAA,EAAAJ,EAAA,WAAAG,EACAF,EAAAxT,KAAA4T,KAAA,CAAAJ,EAAAD,GACAG,EAAA1T,KAAA4T,KAAA,CAAAD,EAAAJ,GACA/d,EAAA,CAAAme,EAAAJ,CAAA,EAAAvd,QAAA,CAAAud,GAAA/d,CACA,OAAUge,GAAAE,EAAA,CACV,OAAAle,CACA,EAIAod,EAAAnf,SAAA,CAAAsf,eAAA,YACA,YAAA/c,QAAA,IACA,EAIA4c,EAAAnf,SAAA,CAAAwf,yBAAA,YACA,IAAAjB,EAAA,KAAAhc,QAAA,KACA,OAAAxC,MAAA,GAAAwe,EAAAlf,MAAA,EAAAsH,IAAA,MAAA4X,CACA,EACAY,EAAAnf,SAAA,CAAAggB,SAAA,UAAAI,CAAA,EACA,qBAAAlU,MAAA,CAAAkU,EAAA,CACA,MAAAlU,MAAA,CAAAkU,EAAA,QACA,MAAAlU,MAAA,CAAAkU,EAAA,OACA,KAAAlU,MAAA,CAAAkU,EAAA,IAEAjB,CACA,IChLOkB,GAAA,2BCFA,SAAAC,GAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,EACP,OACAhgB,QAAA8f,EAAA7U,UAAA,GACAqL,KAAAyJ,EAAA9U,UAAA,GACAgV,UAAAD,EAAAA,EAAAE,WAAA,IAAAnd,KAAAA,CACA,CACA,CENO,SAAAod,GAAAvK,CAAA,CAAAqG,CAAA,EACP,IAAAvY,EAAAlC,OAAA4e,+BAAA,CACA1c,GACAA,EAAA,CAAmBkS,KAAAA,EAAAqG,QAAAA,CAAA,EAEnB,CCLO,IAAAoE,GAAA,CACP7iB,IAAA,MACA+S,cAAA,eACA,ECWA+P,GAAA,CACA,0CACA,wCACA,wCACA,wCACA,mBACA,cACA,CACAC,GAAA,CZnBO,eYmB4C,CACnDC,GAAA,CAA+BC,iBAAA,EAAAC,eAAA,EAAAC,iBAAA,GAAAC,8BAAA,IAyExB,SAAAC,GAAAtM,CAAA,CAAAvU,CAAA,EACHE,EAAsB3C,EAAcE,KAAA,CAAA8W,EAAAvU,GACxC8gB,GAAiB/e,EAAM,CACvB6T,KAAcyK,GAAa7iB,GAAA,CAC3B+W,QAAAA,EACAqJ,OAAA,OACA,EAAK5d,GACL,CACO,SAAA+gB,GAAA9gB,CAAA,CAAAD,CAAA,EACP8gB,GAAiB/e,EAAM,CACvB6T,KAAcyK,GAAa7iB,GAAA,CAC3BogB,OAAA,OACA,EAAKoD,SAgBE/gB,CAAA,EACP,GAAAA,aAAAmV,MAAA,CACA,IAAAP,EAAyBjC,GAAiB3S,GAC1C,OACArC,MAAA,CACAqjB,KAAApM,EAAA9Y,IAAA,CACA+W,MAAuBwC,IAavBT,EAAA/B,KAAA,CAAA+B,EAAA/B,KAAA,CAAApJ,MAAA,UAAAuM,CAAA,EAAkE,OAAAA,EAAAlC,GAAA,EAAAuM,GAAAlQ,IAAA,UAAA8Q,CAAA,EAA0E,OAAO9f,EAAU6U,EAAAlC,GAAA,CAAAmN,EAAA,EAA+B,GAbnJrM,GACzC,EACAN,QAAAM,EAAAN,OAAA,CAEA,CACA,OACA3W,MAAA,CACAkV,MAAmB6B,EACnB,EACAJ,QAAA,GAAA7U,MAAA,iBAAAA,MAAA,CAAiF+G,GAAaxG,GAC9F,CACA,EAjCKA,GAAAD,GACL,CASA,SAAA8gB,GAAAhR,CAAA,EACArT,GAAA+jB,GAAAE,cAAA,CAAAF,GAAAC,gBAAA,GACAD,GAAAE,cAAA,IACAjkB,EAAAqT,GAEA,CCtHO,IAAAqR,GAAA,CACPC,OAAA,oBACAC,UAAA,gBACAC,SAAA,YACAC,OAAA,aACA,ECQO,SAAAC,KAEP,IADAC,EACAne,EAAA9B,OAYA,GAAA8B,EAAAC,IAAA,GAIAke,EAAsBre,GAAsBE,EAAA,oBAC5CA,EAAAoe,gBAAA,EAAAD,IAAAne,EAAAoe,gBAAA,GAQA,IAAAC,EAAmCve,GADnC,IAAAE,EAAAoe,gBAAA,CAAqE7c,IACZ,oBACzD4c,EAAAE,GAAAA,EAAAF,WAAA,CAMA,OAHAA,GACAA,CAAAA,EAAAne,EAAAoe,gBAAA,EAEAD,CACA,CCpDO,SAAAG,GAAArR,CAAA,CAAAsR,CAAA,CAAAne,CAAA,EACPmL,SAAAiT,UAAA,GAAAD,GAAAhT,aAAAA,SAAAiT,UAAA,CACApe,IAIQ4M,GAAgBC,EAAA/O,OADxBqgB,aAAAA,EAA4DlmB,EAASomB,IAAA,CAAQpmB,EAASqmB,kBAAA,CAC9Dte,EAAA,CAA+CoN,KAAA,IAEvE,CCRO,IAAAmR,GAAA,mBACPC,GAAA,CACA,qBAAAC,CAAA,EAAwE,OAAAF,KAAAE,CAAA,EAAiD,CACzH,gBAAAA,CAAA,EAA8D,yBAAAA,CAAA,EAA4C,CAC1G,kBAAAA,CAAA,EAAkE,gBAAAA,CAAA,EAAmC,CACrG,mBAAAA,CAAA,EAAoE,iBAAAA,CAAA,EAAoC,CACxG,gBAAAC,CAAA,CAAAja,CAAA,EAAwD,gBAAArF,IAAA,CAAAqF,EAAA,EAA8B,CACtF,eAAAia,CAAA,CAAAja,CAAA,EAAsD,eAAArF,IAAA,CAAAqF,EAAA,EAA6B,CACnF,CACA,QACA,SAAAga,CAAA,CAAAha,CAAA,EACA,OAAmBhI,EAAQ,uBAAAgiB,IAAA,6CAAAtU,IAAA,CAAA1F,EAC3B,EACA,CACA,iBAAAia,CAAA,CAAAja,CAAA,EAA0D,yCAAA0F,IAAA,CAAA1F,EAAA,EAAwD,CAClH,CACA,QACA,SAAAga,CAAA,CAAAha,CAAA,EACA,OAAmBhI,EAAQ,kBAAAgiB,IAAA,uBAAAtU,IAAA,CAAA1F,EAC3B,EACA,CACA,CAgBA,SAAAka,KAEA,QADAC,EAAA,GACA5jB,EAAA,EAAqBA,EAAAC,UAAAC,MAAA,CAAuBF,IAC5C4jB,CAAA,CAAA5jB,EAAA,CAAAC,SAAA,CAAAD,EAAA,CAEA,QAAAU,EAAA,EAAoBA,EAAAkjB,EAAA1jB,MAAA,CAAoBQ,GAAA,EACxC,GAAAkjB,CAAA,CAAAljB,EAAA,GAAAkjB,CAAA,CAAAljB,EAAA,CACA,SAGA,QACA,CAuCO,SAAAmjB,GAAA5K,CAAA,EAKP,GAAA0K,GAAA1K,EAAA6K,SAAA,CAAA7K,EAAA8K,UAAA,CAAA9K,EAAA+K,iBAAA,CAAA/K,EAAAgL,eAAA,CAAAhL,EAAAiL,YAAA,CAAAjL,EAAAkL,UAAA,CAAAlL,EAAAmL,YAAA,CAAAnL,EAAAoL,aAAA,CAAApL,EAAAqL,WAAA,GAGA,IAAAC,GAAAtL,GACA,OAAAA,EAEA,IAAAuL,EAAAvL,EAAAuL,aAAA,CAAAC,EAAAxL,EAAAwL,WAAA,CAUA,GAPAD,EAAAvL,EAAA6K,SAAA,EACAU,CAAAA,EAAAvL,EAAA6K,SAAA,EAEAW,EAAAxL,EAAA6K,SAAA,EACAW,CAAAA,EAAAxL,EAAA8K,UAAA,EAGAJ,GAAA1K,EAAA6K,SAAA,CAAAU,EAAAC,EAAAxL,EAAA8K,UAAA,EAGA,OAAW1gB,EAAM,GAAG4V,EAAA,CACpBwL,YAAAA,EACAD,cAAAA,CACA,GACA,CACA,SAAAD,GAAAtL,CAAA,EAEA,OAAAA,EAAA8K,UAAA,GAAA9K,EAAA6K,SAAA,CAEA,SAAAY,GAAAzJ,CAAA,CAAA0J,CAAA,CAAAC,CAAA,EACA,OACAtW,SAAkBD,GvC5ElBuW,EuC4E0CD,GAC1CA,MAAetW,GvC7EfuW,EuC6EuC3J,EACvC,CACA,CAQO,SAAA4J,GAAAhT,CAAA,CAAAwD,CAAA,EACP,OAAAA,GAAA,CAAAxD,EAAAiT,WAAA,CAAAzP,EACA,CCxIO,SAAA0P,GAAAC,CAAA,EACP,OAAAA,EAAAC,QAAA,GAAAC,KAAAC,SAAA,CAKO,SAAAC,GAAAJ,CAAA,EACP,OAAAA,EAAAC,QAAA,GAAAC,KAAAG,YAAA,CAEO,SAAAC,GAAAN,CAAA,EACP,OAAAI,GAAAJ,IAAArU,CAAAA,CAAAqU,EAAAO,UAAA,CAEO,SAAAC,GAAAR,CAAA,EAEP,QAAAO,EAAApK,IAAA,EAAAoK,EAAAN,QAAA,GAAAC,KAAAO,sBAAA,EAAAL,GAAAG,EAAApK,IAAA,CACA,CAIO,SAAAuK,GAAAV,CAAA,CAAAhgB,CAAA,EACPggB,EAAAW,UAAA,CAAAnmB,OAAA,CAAAwF,GACAsgB,GAAAN,IACAhgB,EAAAggB,EAAAO,UAAA,CAEA,CAIO,SAAAK,GAAAZ,CAAA,EACP,OAAAQ,GAAAR,GAAAA,EAAA7J,IAAA,CAAA6J,EAAAa,UAAA,CCPO,SAAAC,GAAA1G,CAAA,CAAA2G,CAAA,EACP,IAAAC,EAAAD,GAAAE,OAAAF,GACA,MAAAC,EAGA,OACA5G,QAAAA,EACA4G,UAAAA,CACA,CACA,CA4BA,SAAAE,GAAAlB,CAAA,EACA,GAAAA,GDxDAA,EAAAC,QAAA,GAAAC,KAAAiB,YAAA,CCwD6B,CAC7B,IAAAhc,EAAA,wBAAiCgF,IAAA,CAAA6V,EAAA7Z,IAAA,EACjC,GAAAhB,EACA,OAAAA,CAAA,IAGA,CCjDA,SAAAic,KACA,OAAAtjB,KAAAuB,IAAAvB,OAAAmL,WAAA,iBAAAA,WACA,CACO,SAAAoY,GAAAC,CAAA,EACP,OAAAxjB,OAAAyjB,mBAAA,EACAA,KAAAliB,IAAAkiB,oBAAAC,mBAAA,EACAD,oBAAAC,mBAAA,CAAA/kB,QAAA,CAAA6kB,EACA,CAmKA,SAAAG,KACA,IAAArc,EAAA,GACAuE,EAAAV,YAAAU,MAAA,CACA,QAAAnM,KAAAmM,EACA,GAAYhB,GAAQgB,CAAA,CAAAnM,EAAA,GAEpB,IAAAkkB,EAAA/X,CAAA,CADAnM,EACA,CACA4H,CAAA,CAFA5H,EAEA,CAAAkkB,IAAAA,EAAA,E1CtIAC,EAAAxY,I0CuIA,CAEA,OAAA/D,CACA,CACA,SAAAwc,GAAAC,CAAA,CAAAhV,CAAA,CAAAiV,CAAA,EAIA,IAAAC,EAAAC,EAHAhc,MAAA,UAAAiO,CAAA,EACA,OAAehB,GAAc9a,EAAA8b,EAAAqN,SAAA,CAC7B,GACAtb,MAAA,UAAAiO,CAAA,EAAuF,OAMvFA,CAAAA,EAAAqN,SAAA,GAAAnpB,EAAA8pB,UAAA,EAAAhO,EAAAiO,YAAA,MAGAjO,CAAAA,EAAAqN,SAAA,GAAAnpB,EAAAgqB,QAAA,IAAoEtC,GATmBhT,EASAoH,EAAA5b,IAAA,EATA,EACvF0pB,CAAAA,EAAA7mB,MAAA,EACA2mB,EAAA3b,MAAA,GAAA6b,EAEA,CAvMA5pB,CADAA,EASCA,GAAAA,CAAAA,EAAA,KARD,cACAA,EAAA,0BACAA,EAAA,oDACAA,EAAA,4BACAA,EAAA,qBACAA,EAAA,wBACAA,EAAA,cACAA,EAAA,oBCfO,IAAAiqB,GAAA,CACPC,MAAA,QACAC,QAAA,UACAC,OAAA,SAGAC,OAAA,SACAC,OAAA,QACA,ECLO,SAAAC,GAAAvW,CAAA,CAAAwW,CAAA,CAAAC,CAAA,EACP,IAAAC,EAAA,EACAC,EAAA,GACA,OACAC,eAAA,WAOA,GANA,IAAAF,GACgB9iB,GAAU,WAC1B8iB,EAAA,CACA,E5CTO,K4CYPA,CADAA,GAAA,IACAF,GAAAG,EAEA,OADAA,EAAA,GACA,GAEA,GAAAD,IAAAF,EAAA,GACAG,EAAA,GACA,IACAF,EAAA,CACA/R,QAAA,yBAAA7U,MAAA,CAAAmQ,EAAA,iBAAAnQ,MAAA,CAAA2mB,GACAnkB,OAAgC4jB,GAAWC,KAAA,CAC3C/Q,YAAqC7H,IACrC,EACA,QACA,CACAqZ,EAAA,EACA,CACA,CACA,QACA,CACA,CACA,CGFA,SAAAxd,GAAAhI,CAAA,CAAAmH,CAAA,CAAApD,CAAA,EAGA,QAFA2hB,EAAA1lB,EACA2lB,EAAAxe,EAAAgL,KAAA,MACA/T,EAAA,EAAoBA,EAAAunB,EAAA/nB,MAAA,CAAmBQ,GAAA,GACvC,IAAAwnB,EAAAD,CAAA,CAAAvnB,EAAA,CACA,IAAAynB,GAAAH,GACA,MAEAtnB,CAAAA,IAAAunB,EAAA/nB,MAAA,GACA8nB,EAAAA,CAAA,CAAAE,EAAA,CAGAF,CAAA,CAAAE,EAAA,CAAA7hB,CAEA,CACA,CACA,SAAA8hB,GAAA7lB,CAAA,EACA,MAAW8D,WAAAA,GAAO9D,EAClB,CC9CA,IAAA8lB,GAAA,CACA,qBACA,oBACA,wBACA,EACAC,GAAA,CACA/mB,QAAA,QACA,EEXAgnB,GAAA,WACA,SAAAA,IACA,KAAAC,SAAA,GACA,CAmBA,OAlBAD,EAAAznB,SAAA,CAAAqK,MAAA,UAAAiG,CAAA,CAAAhG,CAAA,EACA,IAAAqd,EAAA,KAAAD,SAAA,CAAApX,EAAA,CACAqX,GACAA,EAAAhpB,OAAA,UAAAwF,CAAA,EAAyD,OAAAA,EAAAmG,EAAA,EAEzD,EACAmd,EAAAznB,SAAA,CAAA8J,SAAA,UAAAwG,CAAA,CAAAnM,CAAA,EACA,IAAA6F,EAAA,KAKA,OAJA,KAAA0d,SAAA,CAAApX,EAAA,EACA,MAAAoX,SAAA,CAAApX,EAAA,KAEA,KAAAoX,SAAA,CAAApX,EAAA,CAAAjP,IAAA,CAAA8C,GACA,CACA+F,YAAA,WACAF,EAAA0d,SAAA,CAAApX,EAAA,CAAAtG,EAAA0d,SAAA,CAAApX,EAAA,CAAAnG,MAAA,UAAAC,CAAA,EAAkG,OAAAjG,IAAAiG,CAAA,EAClG,CACA,CACA,EACAqd,CACA,IErBAG,GAAAC,IAMAC,GAAA,WACA,SAAAA,EAAAjZ,CAAA,CAAAkZ,CAAA,EACA,IAAA/d,EAAA,KACA,KAAA6E,WAAA,CAAAA,EACA,KAAAkZ,UAAA,CAAAA,EACA,KAAA9B,OAAA,IACA,KAAA+B,sBAAA,CAAsCzjB,GAAW,WAAe,OAAAyF,EAAAie,cAAA,IpDZzD,IoDaP,CAoFA,OA/EAH,EAAA9nB,SAAA,CAAAkG,GAAA,UAAAV,CAAA,CAAAyd,CAAA,EACA,IAAAjZ,EAAA,KACAoO,EAAA,CACA5S,MAAAA,EACAyd,UAAAA,EACAiF,QAAAN,GACA9V,OAAA,WACA,IAAAqW,EAAAne,EAAAic,OAAA,CAAAllB,OAAA,CAAAqX,GACA+P,GAAA,GACAne,EAAAic,OAAA,CAAA9Z,MAAA,CAAAgc,EAAA,EAEA,EACAC,MAAA,SAAAF,CAAA,EACA9P,EAAA8P,OAAA,CAAAA,CACA,CACA,EAKA,OAJA,KAAAH,UAAA,OAAA9B,OAAA,CAAA5mB,MAAA,OAAA0oB,UAAA,EACA,KAAA9B,OAAA,CAAA1J,GAAA,GAEA,KAAA0J,OAAA,CAAAoC,OAAA,CAAAjQ,GACAA,CACA,EAKA0P,EAAA9nB,SAAA,CAAAsB,IAAA,UAAA2hB,CAAA,EACA,SAAAA,GAAoCA,CAAAA,EAAA2E,EAAA,EACpC,QAAAzoB,EAAA,EAAAxC,EAAA,KAAAspB,OAAA,CAA4C9mB,EAAAxC,EAAA0C,MAAA,CAAgBF,IAAA,CAC5D,IAAAiZ,EAAAzb,CAAA,CAAAwC,EAAA,CACA,GAAAiZ,EAAA6K,SAAA,EAAAA,EAAA,CACA,GAAAA,GAAA7K,EAAA8P,OAAA,CACA,OAAA9P,EAAA5S,KAAA,CAEA,KACA,CACA,CACA,EAKAsiB,EAAA9nB,SAAA,CAAAsoB,WAAA,UAAAJ,CAAA,EACA,IAAAK,EAAA,KAAAtC,OAAA,IACAsC,GAAAA,EAAAL,OAAA,GAAAN,IACAW,EAAAH,KAAA,CAAAF,EAEA,EAMAJ,EAAA9nB,SAAA,CAAAwoB,OAAA,UAAAvF,CAAA,CAAAxV,CAAA,EACA,SAAAwV,GAAoCA,CAAAA,EAAA2E,EAAA,EACpC,SAAAna,GAAmCA,CAAAA,EAAA,GACnC,IAAAya,EpD1BA3a,EoD0BiCE,EACjC,YAAAwY,OAAA,CACA9b,MAAA,UAAAiO,CAAA,EAAuC,OAAAA,EAAA6K,SAAA,EAAAiF,GAAAjF,GAAA7K,EAAA8P,OAAA,GACvCxmB,GAAA,UAAA0W,CAAA,EAAoC,OAAAA,EAAA5S,KAAA,EACpC,EAIAsiB,EAAA9nB,SAAA,CAAAyoB,KAAA,YACA,KAAAxC,OAAA,KAKA6B,EAAA9nB,SAAA,CAAA6R,IAAA,YACQrN,GAAa,KAAAwjB,sBAAA,CACrB,EACAF,EAAA9nB,SAAA,CAAAioB,cAAA,YAEA,IADA,IAAAS,EAA+B/a,KAAW,KAAAkB,WAAA,CAC1C,KAAAoX,OAAA,CAAA5mB,MAAA,SAAA4mB,OAAA,MAAAA,OAAA,CAAA5mB,MAAA,IAAA6oB,OAAA,CAAAQ,GACA,KAAAzC,OAAA,CAAA1J,GAAA,EAEA,EACAuL,CACA,IEjGO,SAAAa,GAAAlnB,CAAA,CAAAmnB,CAAA,CAAAC,CAAA,EACP,IAAA/kB,EAAArC,CAAA,CAAAmnB,EAAA,CACAE,EAAAD,EAAA/kB,GACAilB,EAAA,WACA,sBAAAD,EAIA,OAAAA,EAAAxpB,KAAA,MAAAF,UACA,EAEA,OADAqC,CAAA,CAAAmnB,EAAA,CAAAG,EACA,CACAlX,KAAA,WACApQ,CAAA,CAAAmnB,EAAA,GAAAG,EACAtnB,CAAA,CAAAmnB,EAAA,CAAA9kB,EAGAglB,EAAAhlB,CAEA,CACA,CACA,CACO,SAAAklB,GAAAvnB,CAAA,CAAAmnB,CAAA,CAAAjsB,CAAA,EACP,IAAAssB,EAAAtsB,EAAAssB,MAAA,CAAArP,EAAAjd,EAAAid,KAAA,CACA,OAAA+O,GAAAlnB,EAAAmnB,EAAA,SAAA9kB,CAAA,EACA,kBACA,IACAyF,EADArK,EAAAE,UAaA,OAXA6pB,GACgBzoB,EAAayoB,EAAA,KAAA/pB,GAE7B,mBAAA4E,GAEAyF,CAAAA,EAAAzF,EAAAxE,KAAA,MAAAJ,EAAA,EAEA0a,GACgBpZ,EAAaoZ,EAAA,KAAA1a,GAG7BqK,CACA,CACA,EACA,CACO,SAAA2f,GAAAznB,CAAA,CAAAsK,CAAA,CAAA6N,CAAA,EACP,IAAAuP,EAAA1qB,OAAA2qB,wBAAA,CAAA3nB,EAAAsK,GACA,IAAAod,GAAA,CAAAA,EAAA1f,GAAA,GAAA0f,EAAAlmB,YAAA,CACA,OAAiB4O,KAAMvM,EAAI,EAE3B,IAAAwjB,EAAA,SAAAO,CAAA,CAAA7jB,CAAA,EAEQtB,GAAU,WAClB0V,EAAAyP,EAAA7jB,EACA,EAAS,EACT,EACAujB,EAAA,SAAAvjB,CAAA,EACA2jB,EAAA1f,GAAA,CAAAvJ,IAAA,MAAAsF,GACAsjB,EAAA,KAAAtjB,EACA,EAIA,OAHA/G,OAAAsE,cAAA,CAAAtB,EAAAsK,EAAA,CACAtC,IAAAsf,CACA,GACA,CACAlX,KAAA,WACA,IAAAlV,CACA,SAAAA,CAAAA,EAAA8B,OAAA2qB,wBAAA,CAAA3nB,EAAAsK,EAAA,GAAApP,KAAA,IAAAA,EAAA,OAAAA,EAAA8M,GAAA,IAAAsf,EACAtqB,OAAAsE,cAAA,CAAAtB,EAAAsK,EAAAod,GAGAL,EAAkCxjB,EAElC,CACA,CACA,CCpEA,IAAAgkB,GAAA,IAAAnhB,QA4BA,SAAAohB,GAAAX,CAAA,CAAApU,CAAA,EACA8U,GAAA7f,GAAA,OACA+f,MAAA,OACAZ,OAAAA,EAAAa,WAAA,GACAjV,IAAawF,GAAYrG,OAAAa,GACzB,EACA,CACA,SAAAkV,GAAA1Y,CAAA,CAAArG,CAAA,EACA,IAAAX,EAAA,KACAvJ,EAAA6oB,GAAAtmB,GAAA,OACA,GAAAvC,GAIAkpB,EAAAH,KAAA,SACAG,EAAAlU,WAAA,CAA+B7H,KAC/B+b,EAAArL,SAAA,IACAqL,EAAAC,GAAA,MACA,IAAAC,EAAA,GACAC,EAA8Cd,GAA+B,2BAC7EC,OAAA,WACA,KAAA1G,UAAA,GAAAwH,eAAAC,IAAA,EAKAC,GAEA,CACA,GAAKpY,IAAA,CACLoY,EAAA,evDnBOnG,EuDoBPoG,IACAJ,IACAD,IAGAA,EAAA,GAEAM,EAAAX,KAAA,YACAW,EAAA1c,QAAA,EvD5BOqW,EuD4BmC6F,EAAAlU,WAAA,CAAAvI,SAAA,CvD3B1C6W,KAAAD,GuD4BAqG,EAAA9L,MAAA,CAAArU,EAAAqU,MAAA,CACA1T,EAAAN,MAAA,CAA0B8M,GAJ1B1W,IAKA,EACAypB,EAAqCnZ,GAAgBC,EAAA,eAAAiZ,GAAApY,IAAA,CACrDlH,EAAAN,MAAA,CA/BA5J,GAgCA,CACA,SAAA2pB,KACA,IAAA3pB,EAAA6oB,GAAAtmB,GAAA,OACAvC,GACAA,CAAAA,EAAA6d,SAAA,IAEA,CCjDA,SAAA+L,GAAA1f,CAAA,CAAA2f,CAAA,CAAAC,CAAA,EACA,IAAAC,EAAA,GAAAD,EAAA3B,MAAA,EAAA0B,aAAAG,SAAAH,EAAA1B,MAAA,CACAA,EAAA4B,EAAAA,EAAAf,WAAA,SACAjV,EAAA8V,aAAAG,QAAAH,EAAA9V,GAAA,CAAqDwF,GAAYrG,OAAA2W,IAEjE7pB,EAAA,CACA+oB,MAAA,QACAe,KAAAA,EACAD,MAAAA,EACA1B,OAAAA,EACAnT,YANsB7H,KAOtB4G,IAAAA,CACA,EAEA,OADA7J,EAAAN,MAAA,CAAA5J,GACAA,CACA,CACA,SAAAiqB,GAAA/f,CAAA,CAAAggB,CAAA,CAAAhB,CAAA,EACA,IAAAiB,EAAA,SAAAC,CAAA,EAEApqB,EAAA+oB,KAAA,WACA,UAAAqB,GAAAA,aAAAhV,OACApV,EAAA4d,MAAA,GACA5d,EAAA6d,SAAA,CAAAuM,aAAAC,cAAAD,EAAAE,IAAA,GAAAD,aAAAE,SAAA,CACAvqB,EAAApC,KAAA,CAAAwsB,GAEA,WAAAA,IACApqB,EAAAoqB,QAAA,CAAAA,EACApqB,EAAAwqB,YAAA,CAAAJ,EAAAxU,IAAA,CACA5V,EAAA4d,MAAA,CAAAwM,EAAAxM,MAAA,CACA5d,EAAA6d,SAAA,KAEA3T,EAAAN,MAAA,CAbAsf,EAcA,EACAgB,EAAAO,IAAA,CAAyB3qB,EAAOqqB,GAAerqB,EAAOqqB,GACtD,CGpEA,IAAAO,GAAA,EAiFA,SAAAC,KACA,IAAA7hB,EAAA4hB,GAEA,OADAA,IAAA,EACA5hB,CACA,CCvFO,SAAA8hB,GAAA1uB,CAAA,EACP,IAAAqpB,EAAArpB,EAAAqpB,SAAA,CAAAsF,EAAA3uB,EAAA2uB,YAAA,CAAAha,EAAA3U,EAAA4uB,QAAA,CAAApnB,EAAAmN,KAAA,IAAAA,EAA+GhM,GAAIgM,EACnHka,EAAA,CACAC,WAAA,EACAC,cAAA,EACAC,cAAA,EACAC,YAAA,EACAC,iBAAA,CACA,EACAjhB,EAAAob,EAAAlc,SAAA,aAAAyG,CAAA,EACA,IAAA5T,EACA,GAAA4T,SAAAA,EAAA8F,IAAA,EAAAiV,EAAA/a,GAGA,OAAAA,EAAA8F,IAAA,EACA,YACAmV,EAAAC,UAAA,IACAtnB,IACA,KACA,cACAqnB,EAAAI,WAAA,IACArb,EAAAub,MAAA,CAAAC,WAAA,EACAP,CAAAA,EAAAK,gBAAA,EAAAtb,EAAAub,MAAA,CAAAC,WAAA,CAAA1V,IAAA,CAAAhX,MAAA,EAEA8E,IACA,KACA,iBACAqnB,EAAAE,aAAA,IACAvnB,IACA,KACA,gBACA,QAAAxH,CAAAA,EAAA4T,EAAAyb,GAAA,GAAArvB,KAAA,IAAAA,EAAA,OAAAA,EAAAsvB,SAAA,IACAT,EAAAG,aAAA,IACAxnB,IAGA,CACA,GACA,OACA0N,KAAA,WACAjH,EAAAV,WAAA,EACA,EACAshB,YAAAA,CACA,CACA,CCLO,SAAAU,GAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,EAEP,IADAC,EACAC,EAAA,GACAC,EAA8BtoB,GAAW3D,EAAO,WAAe,OAAAksB,EAAA,CAAkBC,YAAA,IAAoB,GAxC9F,KAyCPC,EAAAN,KAAA7oB,IAAA6oB,EACUnoB,GAAW3D,EAAO,WAAe,OAAAksB,EAAA,CAAkBC,YAAA,GAAA3I,IAAwBrW,IAAY,EAAI,GAAI2e,GACzG7oB,KAAAA,EACAopB,EAAAT,EAAAriB,SAAA,UAAAnN,CAAA,EACA,IAAAkwB,EAAAlwB,EAAAkwB,MAAA,CACQxoB,GAAYmoB,GACZnoB,GAAYioB,GACpB,IAAAQ,EAA6Bpf,KAC7Bmf,GACAP,CAAAA,EAAuCpoB,GAAW3D,EAAO,WAAe,OAAAksB,EAAA,CAAkBC,YAAA,GAAA3I,IAAA+I,CAAA,EAAwC,GAhD3H,IAgD+H,CAEtI,GACAjb,EAAA,WACA0a,EAAA,GACQloB,GAAYmoB,GACZnoB,GAAYioB,GACZjoB,GAAYsoB,GACpBC,EAAA1iB,WAAA,EACA,EACA,SAAAuiB,EAAAlc,CAAA,EACAgc,IAGA1a,IACAua,EAAA7b,GACA,CACA,OAAasB,KAAAA,CAAA,CACb,CACO,SAAAkb,GAAA/G,CAAA,CAAAgH,CAAA,CAAAhc,CAAA,EACP,IAAArG,EAAA,IAAyBhB,GAAU,WACnC,IACAsjB,EADAviB,EAAA,GAEAwiB,EAAA,EACAxiB,EAAArJ,IAAA,CAAA2rB,EAAAljB,SAAA,CAAAqjB,GAAAnH,EAAAlc,SAAA,YAAAmc,CAAA,EACAA,EAAApV,IAAA,UAAAuH,CAAA,EAAgD,OAAAA,EAAAqN,SAAA,GAA2BnpB,EAAuBgqB,QAAA,GAAA8G,GAAApc,EAAAoH,EAAA5b,IAAA,KAClG2wB,GAEA,GAASnH,EAAAlc,SAAA,YAAAujB,CAAA,EACTD,GAAApc,EAAAqc,EAAA7Y,GAAA,IAGAhR,KAAAA,IAAAypB,GACAA,CAAAA,EAAAI,EAAAC,YAAA,EAEAJ,GAAA,EACAC,IACA,GAASnH,EAAAlc,SAAA,YAAAyjB,CAAA,EACTH,GAAApc,EAAAuc,EAAA/Y,GAAA,GACAyY,KAAAzpB,IAAAypB,GAEAM,EAAAD,YAAA,CAAAL,IAGAC,GAAA,EACAC,IACA,IACA,IAAAK,EAAAC,GAe0CxrB,OAAA,QAAmBgnB,OAf7DkE,CAe6D,GAf7Dtb,IAAA,CACA,kBACA2b,IACA9iB,EAAA/L,OAAA,UAAA+uB,CAAA,EAAiD,OAAAA,EAAAxjB,WAAA,IACjD,EACA,SAAAijB,IACAxiB,EAAAN,MAAA,EAAgCwiB,OAAAK,EAAA,GAChC,CACA,GACA,OAAAviB,CACA,CACA,SAAAyiB,GAAApc,CAAA,CAAA2c,CAAA,EACA,OAAW1P,GAASjN,EAAA4c,oBAAA,CAAAD,EACpB,CC5GO,IAAAE,GAAA,sBAcP,SAAAC,GAAAC,CAAA,CAAAC,CAAA,EAMA,GAkMAxqB,KAAAA,IAAAjG,GACAA,CAAAA,EAAA,YAAA0wB,YAAAjuB,SAAA,EAEAzC,EApMA2wB,EAAAH,EAAAI,OAAA,KAAAhuB,MAAA,CAAA6tB,EAAA,WAIA,IADA,IATAE,EASA/T,EAAA4T,EACA5T,GAAA,CACA,GAAAA,EAAAiU,YAAA,CAAAJ,GAAA,CACAE,EAAA/T,EACA,KACA,CACAA,EAAAA,EAAAkU,aAAA,CAGA,GAAAH,EAIA,OAAAI,GAAAC,GAAA/xB,EADAgyB,YAAA,CAAAR,GACAS,IAAA,IACA,CACA,IAAAC,GAAA,CAEA,SAAAvU,CAAA,CAAAwU,CAAA,EAGA,GA6JAnrB,KAAAA,IAAAlG,GACAA,CAAAA,EAAA,WAAAsxB,iBAAA5uB,SAAA,EAEA1C,EA/JA,eAAA6c,GAAAA,EAAA0U,MAAA,EAAA1U,EAAA0U,MAAA,CAAAxvB,MAAA,GACA,OAAAyvB,GAAA3U,EAAA0U,MAAA,IAAAF,EACA,MAEA,GAAAxU,EAAA4U,EAAA,EACA,IAAAC,EAAA7U,EAAA8U,aAAA,EACgB3tB,EAAI6Y,EAAA8U,aAAA,CAAAC,gBAAA,mBAAAF,CAAA,EAAqE,OAAAA,EAAAG,OAAA,GAAAhV,EAAA4U,EAAA,GACzF,OAAAC,GAAAF,GAAAE,EAAAL,EACA,CACA,EAEA,SAAAxU,CAAA,EACA,GAAAA,UAAAA,EAAAiV,QAAA,EAEA,IAAA/Y,EAAAiU,EAAAkE,YAAA,SACA,GAAAnY,WAAAA,GAAAA,WAAAA,GAAAA,UAAAA,EACA,OAAAiU,EAAA9kB,KAAA,CAGA,EAEA,SAAA2U,CAAA,CAAAwU,CAAA,EACA,GAAAxU,WAAAA,EAAAiV,QAAA,EAAAjV,UAAAA,EAAAiV,QAAA,EAAAjV,WAAAA,EAAAqU,YAAA,SACA,OAAAM,GAAA3U,EAAAwU,EAEA,EACA,SAAAxU,CAAA,EAAyB,OAAAA,EAAAqU,YAAA,gBAEzB,SAAArU,CAAA,CAAAwU,CAAA,EACA,IAAAU,EAAAlV,EAAAqU,YAAA,oBACA,GAAAa,EACA,OAAAA,EACAzb,KAAA,QACAlS,GAAA,UAAAqtB,CAAA,EAAqC,OA6DrCO,EAAAL,aAAA,CAAAK,EAAAL,aAAA,CAAAM,cAAA,CA7DqCR,GA6DrC,IA7DqC,GACrC5kB,MAAA,UAAA6kB,CAAA,EAA2C,MAAAlf,CAAAA,CAAAkf,CAAA,GAC3CttB,GAAA,UAAAyY,CAAA,EAA0C,OAAA2U,GAAA3U,EAAAwU,EAAA,GAC1ChoB,IAAA,KAEA,EACA,SAAAwT,CAAA,EAAyB,OAAAA,EAAAqU,YAAA,SACzB,SAAArU,CAAA,EAAyB,OAAAA,EAAAqU,YAAA,UACzB,SAAArU,CAAA,EAAyB,OAAAA,EAAAqU,YAAA,WACzB,SAAArU,CAAA,EAAyB,OAAAA,EAAAqU,YAAA,iBAEzB,SAAArU,CAAA,CAAAwU,CAAA,EACA,eAAAxU,GAAAA,EAAAxV,OAAA,CAAAtF,MAAA,GACA,OAAAyvB,GAAA3U,EAAAxV,OAAA,IAAAgqB,EAEA,EACA,CACAa,GAAA,CACA,SAAArV,CAAA,CAAAwU,CAAA,EAAoD,OAAAG,GAAA3U,EAAAwU,EAAA,EACpD,CAMA,SAAAc,GAAA1B,CAAA,CAAAY,CAAA,CAAAe,CAAA,EAGA,IAFA,IAAAvV,EAAA4T,EACA4B,EAAA,EACAA,GAJA,IAKAxV,GACAA,SAAAA,EAAAiV,QAAA,EACAjV,SAAAA,EAAAiV,QAAA,EACAjV,SAAAA,EAAAiV,QAAA,GACA,QAAAjwB,EAAA,EAAoDA,EAAAywB,EAAAvwB,MAAA,CAA0BF,IAAA,CAE9E,IAAA0wB,EAAAC,CADAF,EAAAA,CAAA,CAAAzwB,EAAA,EACAgb,EAAAwU,GACA,oBAAAkB,EAAA,CACA,IAAAE,EAAAF,EAAApB,IAAA,GACA,GAAAsB,EACA,OAAAzB,GAAAC,GAAAwB,GAEA,CACA,CAGA,GAAA5V,SAAAA,EAAAiV,QAAA,CACA,MAEAjV,EAAAA,EAAAkU,aAAA,CACAsB,GAAA,CACA,CACA,CACA,SAAApB,GAAAb,CAAA,EACA,OAAAA,EAAAvrB,OAAA,YACA,CACA,SAAAmsB,GAAAZ,CAAA,EACA,OAAAA,EAAAruB,MAAA,QAAAc,MAAA,CAAsCoO,GAAYmf,EAAA,eAAAA,CAClD,CAMA,SAAAoB,GAAA3U,CAAA,CAAAwU,CAAA,EACA,IAAAxU,EAAA6V,iBAAA,EAGA,iBAAA7V,EAAA,CACA,IAAA8V,EAAA9V,EAAA+V,SAAA,CACAC,EAAA,SAAAC,CAAA,EAEA,QADAlS,EAAA/D,EAAA+U,gBAAA,CAAAkB,GACAjI,EAAA,EAAgCA,EAAAjK,EAAA7e,MAAA,CAAqB8oB,GAAA,GACrD,IAAAkI,EAAAnS,CAAA,CAAAiK,EAAA,CACA,iBAAAkI,EAAA,CACA,IAAAC,EAAAD,EAAAH,SAAA,CACAI,GAAAA,EAAA7B,IAAA,GAAApvB,MAAA,IACA4wB,CAAAA,EAAAA,EAAA9tB,OAAA,CAAAmuB,EAAA,IAEA,CACA,CACA,EAWA,OhD7KA,IAAAhZ,MgDsKA6Y,EAAA,iBAGAA,EAAA,IAAAhwB,MAAA,CAAA0tB,GAAA,MACAc,GACAwB,EAAA,IAAAhwB,MAAA,CAAAwuB,EAAA,MAEAsB,CACA,CACA,OAAA9V,EAAAoW,WAAA,CACA,CC1KO,IAAAC,GAAA,CACH3C,GAEJ,cACA,YACA,UACA,UACA,eACA,aACA,eAEA,iBACA,eACA,mBACA,CAIA4C,GAAA,CAAAC,GAmCA,SAAAvW,CAAA,EACA,GAAAA,EAAA4U,EAAA,GAAA4B,GAAAxW,EAAA4U,EAAA,EACA,UAAA5uB,MAAA,CAA0B2B,EAASqY,EAAA4U,EAAA,EAEnC,EAvCA,CAIA6B,GAAA,CACAF,GAmCA,SAAAvW,CAAA,EACA,GAAAA,SAAAA,EAAA0W,OAAA,EAGA1W,EAAA2W,SAAA,CAAAzxB,MAAA,GACA,QAAAQ,EAAA,EAAwBA,EAAAsa,EAAA2W,SAAA,CAAAzxB,MAAA,CAA8BQ,GAAA,GACtD,IAAAkxB,EAAA5W,EAAA2W,SAAA,CAAAjxB,EAAA,CACA,IAAA8wB,GAAAI,GAGA,SAAA5wB,MAAA,CAA6B2B,EAASqY,EAAA0W,OAAA,OAAA1wB,MAAA,CAA+B2B,EAASivB,GAC9E,CAEA,EACA,SAAA5W,CAAA,EACA,OAAWrY,EAASqY,EAAA0W,OAAA,CACpB,EAhDA,CACO,SAAAG,GAAAjD,CAAA,CAAAkD,CAAA,EAGP,IAFA,IAAAC,EAAA,GACA/W,EAAA4T,EACA5T,GAAAA,SAAAA,EAAAiV,QAAA,GACA,IAAA+B,EAAAC,GAAAjX,EAAAsW,GAAAY,GAAAJ,EAAAC,GACA,GAAAC,EACA,OAAAA,EAGAD,EACAI,GAFAnX,EAAAyW,GAAAW,GAAAN,EAAAC,IAEAM,GAAAC,SA0DAtX,CAAA,EAGA,IAFA,IAAAuX,EAAAvX,EAAAkU,aAAA,CAAAsD,iBAAA,CACAC,EAAA,EACAF,GAAAA,IAAAvX,GACAuX,EAAAb,OAAA,GAAA1W,EAAA0W,OAAA,EACAe,CAAAA,GAAA,GAEAF,EAAAA,EAAAG,kBAAA,CAEA,SAAA1xB,MAAA,CAAqB2B,EAASqY,EAAA0W,OAAA,mBAAA1wB,MAAA,CAAAyxB,EAAA,IAC9B,EApEAzX,GAAA+W,GACA/W,EAAAA,EAAAkU,aAAA,CAEA,OAAA6C,CACA,CACA,SAAAP,GAAAnrB,CAAA,EASA,cAAAjC,IAAA,CAAAiC,EACA,CAuBA,SAAAkrB,GAAAvW,CAAA,CAAA8W,CAAA,EACA,GAAAA,EAAA,CACA,IAAAa,EAAAC,EAAAd,GACA,GAAAa,EACA,OAAAA,CAEA,CACA,QAAA3yB,EAAA,EAA8DA,EAAA6yB,GAAA3yB,MAAA,CAAiCF,IAAA,CAE/F,IAAA2yB,EAAAC,EADAC,EAAA,CAAA7yB,EAAA,EAEA,GAAA2yB,EACA,OAAAA,CAEA,CACA,SAAAC,EAAAE,CAAA,EACA,GAAA9X,EAAAiU,YAAA,CAAA6D,GACA,SAAA9xB,MAAA,CAA6B2B,EAASqY,EAAA0W,OAAA,OAAA1wB,MAAA,CAAA8xB,EAAA,MAAA9xB,MAAA,CAA4D2B,EAASqY,EAAAqU,YAAA,CAAAyD,IAAA,KAE3G,CACA,CAYA,SAAAb,GAAAjX,CAAA,CAAA+X,CAAA,CAAA3wB,CAAA,CAAA0vB,CAAA,CAAAkB,CAAA,EACA,QAAAhzB,EAAA,EAA0DA,EAAAizB,EAAA/yB,MAAA,CAA+BF,IAAA,CAEzF,IAAAkzB,EAAAC,CADAF,EAAAA,CAAA,CAAAjzB,EAAA,EACAgb,EAAA8W,GACA,GAAAoB,GAGA,IAAAE,EAAAf,GAAAa,EAAAF,GACA,GAAA5wB,EAAA4Y,EAAAoY,GACA,OAAAA,EAEA,CACA,CAIA,SAAAlB,GAAAlX,CAAA,CAAA2X,CAAA,EACA,OAAA3X,IAAAA,EAAA8U,aAAA,CAAAC,gBAAA,CAAA4C,GAAAzyB,MAAA,CAYA,SAAAkyB,GAAApX,CAAA,CAAA2X,CAAA,EACA,OAAA3X,IAAAA,EAAAkU,aAAA,CAAAa,gBAAA,CAAAsD,CAAAA,WAQA,GAAAh1B,KAAAgG,IAAAhG,EACA,IACA8R,SAAAmjB,aAAA,WACAj1B,EAAA,EACA,CACA,MAAAb,EAAA,CACAa,EAAA,EACA,CAEA,OAAAA,CACA,IAlBAs0B,EAAAN,GAAA,SAAAM,IACAzyB,MAAA,CAEA,SAAAmyB,GAAAkB,CAAA,CAAAC,CAAA,EACA,OAAAA,EAAA,GAAAxyB,MAAA,CAAAuyB,EAAA,KAAAvyB,MAAA,CAAAwyB,GAAAD,CACA,CEzGA,SAAAE,KACA,IAAAC,EAAA5wB,OAAA6wB,YAAA,GACA,OAAAD,GAAAA,EAAAE,WAAA,CAEA,SAAAC,GAAAziB,CAAA,EACA,OAAAA,EAAA9N,MAAA,YAAAwwB,SAGA1iB,CAAA,IAAAA,EAAA2iB,SAAA,CCEO,SAAAC,GAAAC,CAAA,MlFFAjZ,EAAA2X,QkFGP,CAAAsB,EAAAC,eAAA,GAAAD,EAAAE,eAAA,GAAAhJ,KAAA,GlFHOnQ,EkFMmBiZ,EAAA7iB,KAAA,CAAA9N,MAAA,ClFNnBqvB,EkFVP,oNlFWA,EAAAzZ,OAAA,EACA8B,EAAA9B,OAAA,CAAAyZ,KAGA3X,EAAAoZ,iBAAA,EACApZ,EAAAoZ,iBAAA,CAAAzB,IkFCA,CEvCA,SAAA0B,GAAA1H,CAAA,CAAA2H,CAAA,EACA,IAAAC,EAAAC,GAAA7H,GACA,CACAA,OAAA,CACAiD,GAAAjD,EAAAiD,EAAA,CACA6E,aAA8BpmB,GAAgBse,EAAAre,QAAA,EAC9Cse,YAAA,CACA1V,KAAAyV,EAAA+H,gBAAA,EAEAx1B,MAAA,CACA4e,MAAA6O,EAAAgI,MAAA,CAAArI,UAAA,EAEAsI,UAAA,CACA9W,MAAA6O,EAAAgI,MAAA,CAAApI,aAAA,EAEAsI,SAAA,CACA/W,MAAA6O,EAAAgI,MAAA,CAAAnI,aAAA,CAEA,EACAK,IAAA,CACAF,OAAA,CACArpB,OAAAqpB,EAAArpB,MAAA,CACAwxB,SAAAnI,EAAAmI,QAAA,CAEA,CACA,EACAzwB,KAAAA,EAcA,OACA0wB,gBAdA,GAAApI,GAAAtoB,KAAAA,EAAAsoB,EAAArrB,OAAA,CAeA0zB,YAdsBptB,GAAO,CAC7B+kB,OAAA,CACAiD,GAAgBhhB,KAChBtL,OAAA,CACAjG,KAAAsvB,EAAAtvB,IAAA,EAEA6Z,KAAAyV,EAAAzV,IAAA,EAEAvH,KAAAgd,EAAArW,WAAA,CAAAvI,SAAA,CACAmJ,KAAA,SACA+d,KAAA,CAAgBC,cAAAZ,EAAAa,qBAAA,CAAAxI,EAAArW,WAAA,CAAAzI,QAAA,EAChB,EAAK0mB,GAILzQ,UAAA6I,EAAArW,WAAA,CAAAzI,QAAA,CACAunB,cAAAZ,GAAA7H,GAAA,CAAgD0I,OAAA1I,EAAA0I,MAAA,EAAwB,EACxE,CACA,CACA,SAAAb,GAAA7H,CAAA,EACA,MAAAA,WAAAA,EAAAzV,IAAA,CE3DA,IAAAoe,GAAA,MECA,gBAgEA,SAAAC,GAAAl4B,CAAA,CAAAwY,CAAA,CAAA2f,CAAA,CAAAC,CAAA,CAAAC,CAAA,EACA,OAAAF,EACU5e,GAAkB,CAC5BvZ,KAAAA,EACAwY,QAAAA,EACAzB,MAAA,CACA,CACAgB,KAAA,IACAC,IAAAmgB,EACA9gB,KAAA+gB,MAAAA,EAAAA,EAAApxB,KAAAA,EACA8Q,OAAAugB,MAAAA,EAAAA,EAAArxB,KAAAA,CACA,EACA,GAEAA,KAAAA,CACA,CIvDA,SAAA0kB,GAAApa,CAAA,EACA,O5EgBAP,E4EhBsB0V,SAAA,CAAAnV,EAAAL,QAAA,CC4DtB,SAAAqnB,GAAA9jB,CAAA,CAAA2N,CAAA,CAAAoW,CAAA,EACA,OAAA/jB,EAAAgkB,cAAA,EAAArW,EAAAG,kBAAA,CAAAiW,EAAA/nB,QAAA,CACA,CACA,SAAAioB,GAAAnnB,CAAA,MtC3CAL,EAAAwV,EAAAQ,EsC4CA,OACAuQ,SAAkBxxB,EAAM,CACxBiL,QAAA,EtC9CAA,EAAA2K,EAAA3K,QAAA,CAAAwV,EAAA7K,EAAA6K,SAAA,CAAAQ,EAAArL,EAAAqL,WAAA,CAEA,IAAAhW,GAAAwV,EAAAQ,EACejW,GvCVfuW,EuCUuCd,GAE5BzV,GAAgBC,IsC0C3B7J,KAAkBsxB,StC0BX9c,CAAA,EAEP,GAAAA,EAAA6K,SAAA,CAAA7K,EAAAoL,aAAA,CACA,OAAApL,EAAA+c,eAAA,EsC7B6BrnB,EAC7B,EAAWsnB,StCzCJhd,CAAA,EACP,IAAAid,EAAArS,GAAA5K,GACA,GAAAid,GAGA,IAAApS,EAAAoS,EAAApS,SAAA,CAAAC,EAAAmS,EAAAnS,UAAA,CAAAS,EAAA0R,EAAA1R,aAAA,CAAAC,EAAAyR,EAAAzR,WAAA,CAAAT,EAAAkS,EAAAlS,iBAAA,CAAAC,EAAAiS,EAAAjS,eAAA,CAAAC,EAAAgS,EAAAhS,YAAA,CAAAiS,EAAAD,EAAAC,qBAAA,CAAAhS,EAAA+R,EAAA/R,UAAA,CAAAC,EAAA8R,EAAA9R,YAAA,CAAAC,EAAA6R,EAAA7R,aAAA,CACA+R,EAAA,CACAC,SAAA3R,GAAAZ,EAAAO,EAFA6R,EAAA5R,WAAA,EAGAgS,WAAA5R,GAAAZ,EAAAM,EAAAC,EACA,EAgBA,OAdAF,IAAAJ,IACAqS,EAAAG,OAAA,CAAA7R,GAAAZ,EAAAI,EAAAC,GAEAR,GAAAO,EAAAiS,EAAAhS,IACAiS,CAAAA,EAAAI,GAAA,CAAA9R,GAAAZ,EAAAqS,EAAAhS,EAAA,GAIAF,IAAAF,GACAqS,CAAAA,EAAAK,GAAA,CAAA/R,GAAAZ,EAAAE,EAAAC,EAAA,EAEAM,GAAAtL,IACAmd,CAAAA,EAAAM,QAAA,CAAAhS,GAAAZ,EAAAU,EAAAC,EAAA,EAEA2R,EACA,EsCe4CznB,GAC5C,CACA,CA6BA,SAAAgoB,GAAA9kB,CAAA,EACA,OAAWlE,GAAQkE,EAAAoO,eAAA,EAAApO,EAAAoO,eAAA,KAAA5b,KAAAA,CACnB,CACA,SAAAuyB,GAAAtC,CAAA,CAAAhe,CAAA,CAAAhI,CAAA,EACA,GAASwJ,GAA6B5a,EAAmB25B,oBAAA,EAGzD,OACAhK,IAAA,CACAiK,YAAAxC,EAAAjL,OAAA,CAAA/S,EAAAzI,QAAA,CAAAS,GACAyoB,mBAAAviB,OAAArE,SAAA6mB,YAAA,CACA,CACA,CACA,CE9IO,IOUPC,GAAA,EACAC,GAAAxO,IACAyO,GAAA,EAqBOC,GAAA,WACP,OAAA94B,EAAA24B,GAAAn0B,OAAAmL,WAAA,CAAAopB,gBAAA,GACA,EGvCO,SAAAC,KAEP,IAAAC,EAAAz0B,OAAA00B,cAAA,CAUA,OAAApqB,KAAAE,KAAA,CATAiqB,EACAA,EAAAE,QAAA,CAAAF,EAAAG,UAAA,CAEA50B,KAAAuB,IAAAvB,OAAA60B,OAAA,CACA70B,OAAA60B,OAAA,CAGA70B,OAAA80B,WAAA,IAGA,CACO,SAAAC,KAEP,IAAAN,EAAAz0B,OAAA00B,cAAA,CAUA,OAAApqB,KAAAE,KAAA,CATAiqB,EACAA,EAAAO,OAAA,CAAAP,EAAAQ,SAAA,CAEAj1B,KAAAuB,IAAAvB,OAAAk1B,OAAA,CACAl1B,OAAAk1B,OAAA,CAGAl1B,OAAAm1B,WAAA,IAGA,CCzBO,SAAAC,GAAArmB,CAAA,MAOPrG,EAHA,OAHAjN,GACAA,CAAAA,EAKAiN,EAAA,IAAyBhB,GAAU,WACnC,IAAA2tB,EAA8B7yB,GAAQ,WACtCkG,EAAAN,MAAA,CAAAktB,KACA,EAAS,KAAApyB,SAAA,CACT,OAAe4L,GATfC,EAS+B/O,OAAwB7F,EAASo7B,MAAA,CAAAF,EAAA,CAA4B9lB,QAAA,GAAAC,QAAA,KAC5FI,IAAA,EAVA,EAEAnU,CACA,CAYO,SAAA65B,KACP,IAAAb,EAAAz0B,OAAA00B,cAAA,QACA,EACA,CACAc,MAAArS,OAAAsR,EAAAe,KAAA,CAAAf,EAAAgB,KAAA,EACAC,OAAAvS,OAAAsR,EAAAiB,MAAA,CAAAjB,EAAAgB,KAAA,CACA,EAEA,CACAD,MAAArS,OAAAnjB,OAAA21B,UAAA,KACAD,OAAAvS,OAAAnjB,OAAA41B,WAAA,IACA,CACA,CGkKA,SAAAC,GAAAC,CAAA,EACA,IAAA5P,EAAA4P,EAAAh3B,OAAA,MACA,OAAAonB,EAAA,EAAA4P,EAAAA,EAAA93B,KAAA,GAAAkoB,EACA,CE5LA,IAAA6P,GAAA,GCyDA,SAAAC,GAAAC,CAAA,EACA,MAAAA,MAAAA,GACAA,MAAAA,CACA,CC/DA,IAAAC,GAAA,WACA,SAAAA,EAAAC,CAAA,CAAA7K,CAAA,CAAA8K,CAAA,CAAAC,CAAA,EACA,IAAAtuB,EAAA,KACA,KAAAouB,OAAA,CAAAA,EACA,KAAA7K,OAAA,CAAAA,EACA,KAAA8K,eAAA,CAAAA,EACA,KAAAC,iBAAA,CAAAA,EACA,KAAAC,YAAA,IACA,KAAAC,iBAAA,MAAAH,eAAA,CAAAI,eAAA,CAAA3uB,SAAA,UAAAyG,CAAA,EAAmG,OAAAvG,EAAA0uB,KAAA,CAAAnoB,EAAA,EACnG,CA+EA,OA9EA4nB,EAAAn4B,SAAA,CAAAkG,GAAA,UAAA8O,CAAA,EACA,KAAA2jB,WAAA,CAAA3jB,EACA,EACAmjB,EAAAn4B,SAAA,CAAA44B,MAAA,UAAA5jB,CAAA,CAAArT,CAAA,EACA,KAAAg3B,WAAA,CAAA3jB,EAAArT,EACA,EACAw2B,EAAAn4B,SAAA,CAAA6R,IAAA,YACA,KAAA2mB,iBAAA,CAAAtuB,WAAA,EACA,EACAiuB,EAAAn4B,SAAA,CAAA04B,KAAA,UAAAnoB,CAAA,EACA,I7DwBOsoB,E6DxBPC,EAA6Bt3B,EAAY,KAAA+2B,YAAA,EAAA5xB,IAAA,MACzC,MAAA4xB,YAAA,IACA,IAAAQ,G7DsBOF,E6DtBkCtoB,EAAAsoB,MAAA,C7DuB9Bj4B,EAASY,EAAYogB,IAAAiX,I6DtBhCxoB,EAAA0oB,EAAA,KAAAxL,OAAA,CAAAyL,UAAA,MAAAzL,OAAA,CAAAld,IAAA,CACA,GAAA0oB,GAKA,KAAAX,OAAA,CAAAxlB,OAAA,EACA,IAAAqmB,EAAA,KAAAb,OAAA,CAAAnlB,UAAA,EAEAgmB,CAAAA,EAAAtmB,gBAAA,EACAtC,EAAA6oB,GAAAD,EAAA1oB,IAGA,IAAA4oB,EAAA,CAAAF,EAAA9lB,WAAA,CAAA2lB,EAAA,CAAA3uB,MAAA,CAAA2F,SAAAnJ,IAAA,OACAwyB,GACA9oB,EAAA,CACA/F,KAAA6uB,EACApuB,WAAgCzH,GAAiB61B,GACjDtc,YAAAtM,EAAAsoB,MAAA,EAGA,MAEAC,GACA,KAAAV,OAAA,CAAAtlB,KAAA,MAAAslB,OAAA,CAAAvlB,OAAA,CAAAimB,EAAA,KAAA34B,MAAA,CAAA24B,IAEA,KAAAV,OAAA,CAAAplB,MAAA,UAAAimB,CAAA,EACA5oB,EAAA6oB,GAAAD,EAAA1oB,GACA,EAEA,EACA4nB,EAAAn4B,SAAA,CAAA24B,WAAA,UAAA3jB,CAAA,CAAArT,CAAA,EACA,IAAAy3B,EAAgClyB,GAAa8N,GAC7CqkB,EAAA,KAAAjB,OAAA,CAAAhlB,yBAAA,CAAAgmB,GACA,GAAAC,GAAA,KAAAf,iBAAA,EACYz5B,EAAOT,IAAA,4EAAA+B,MAAA,MAAAm4B,iBAAA,SACnB,MACA,CACA,KAAAgB,aAAA,CAAA33B,IACA,KAAAmQ,MAAA,CAAAnQ,GAEA,KAAAN,IAAA,CAAA+3B,EAAAC,EAAA13B,EACA,EACAw2B,EAAAn4B,SAAA,CAAAqB,IAAA,UAAA+3B,CAAA,CAAAC,CAAA,CAAA13B,CAAA,EACA,IAAAqI,EAAA,KACA,KAAAquB,eAAA,CAAAkB,sBAAA,CAAAF,GACA13B,KAAA6B,IAAA7B,GACA,KAAA42B,YAAA,CAAA52B,EAAA,CAAAy3B,EACA,KAAAf,eAAA,CAAAmB,qBAAA,IAGA,KAAApB,OAAA,CAAAtlB,KAAA,MAAAslB,OAAA,CAAAvlB,OAAA,CAAAumB,EAAA,KAAAj5B,MAAA,CAAAi5B,GAAA,SAAAK,CAAA,EACAzvB,EAAAquB,eAAA,CAAAmB,qBAAA,CAAAC,EAAAJ,EACA,EAEA,EACAlB,EAAAn4B,SAAA,CAAA8R,MAAA,UAAAnQ,CAAA,EACA,IAAA+3B,EAAA,KAAAnB,YAAA,CAAA52B,EAAA,QACA,KAAA42B,YAAA,CAAA52B,EAAA,CACA,IAAAg4B,EAAA,KAAAvB,OAAA,CAAAhlB,yBAAA,CAAAsmB,GACA,KAAArB,eAAA,CAAAuB,wBAAA,CAAAD,EACA,EACAxB,EAAAn4B,SAAA,CAAAs5B,aAAA,UAAA33B,CAAA,EACA,OAAAA,KAAA6B,IAAA7B,GAAA,KAAA6B,IAAA,KAAA+0B,YAAA,CAAA52B,EAAA,EAEAw2B,CACA,IAEA,SAAAe,GAAAD,CAAA,CAAAY,CAAA,EAgBA,OACAvvB,IAAA,CAfA,iBAAA2uB,EAAAvmB,MAAA,CACAumB,EAAAvmB,MAAA,CAGA,IAAA/O,KAAA,CAAAs1B,EAAAvmB,MAAA,GAOA2D,KAAA,YACA,GAIAtL,WAAAkuB,EAAAtmB,gBAAA,CACAmK,SAAAmc,EAAAnc,QAAA,CACAD,YAAAgd,EAAAhB,MAAA,CAEA,CC5GO,SAAAiB,GAAApd,CAAA,CAAA8M,CAAA,CAAAuQ,CAAA,CAAApe,CAAA,CAAAqe,CAAA,EACPxQ,IAAAA,EAAAyQ,eAAA,EACAzQ,IAAAA,EAAA0Q,cAAA,CAAAt2B,IAAA,IACA4lB,EAAA2Q,gBAAA,CAAAC,SAAA,CAAA1d,GACArM,GAAAqM,EAAA8M,EAAAuQ,EAAA,CACAM,UAAA,WAAqC,OAAAC,GAAA,EAAA9Q,EAAAuQ,EAAApe,EAAAqe,EAAA,EACrCO,UAAA,WACA/Q,EAAA0Q,cAAA,CAAAM,OAAA,CAAA9d,GACA+d,SAQAA,EAAAjR,CAAA,CAAAuQ,CAAA,CAAApe,CAAA,CAAAqe,CAAA,EACA,IAAAxQ,EAAAyQ,eAAA,EAGI/1B,GAAU,WAEdmM,GADAmZ,EAAA0Q,cAAA,CAAAQ,KAAA,GACAlR,EAAAuQ,EAAA,CACAM,UAAA,WACA7Q,EAAA0Q,cAAA,CAAAS,OAAA,GACAnR,EAAAoR,kBAAA,ClGlCO,IkGmCPN,GAAA,EAAA9Q,EAAAuQ,EAAApe,EAAAqe,EACA,EACAO,UAAA,WACA/Q,EAAAoR,kBAAA,CAAAruB,KAAAsuB,GAAA,ClGrCO,IkGqCPrR,EAAAA,EAAAoR,kBAAA,EACAH,EAAAjR,EAAAuQ,EAAApe,EAAAqe,EACA,CACA,EACA,EAAKxQ,EAAAoR,kBAAA,CACL,EA1BApR,EAAAuQ,EAAApe,EAAAqe,EACA,CACA,GAGAxQ,EAAA0Q,cAAA,CAAAM,OAAA,CAAA9d,EAEA,CAoBA,SAAArM,GAAAqM,CAAA,CAAA8M,CAAA,CAAAuQ,CAAA,CAAAp9B,CAAA,EACA,IAAA09B,EAAA19B,EAAA09B,SAAA,CAAAE,EAAA59B,EAAA49B,SAAA,CACA/Q,EAAA2Q,gBAAA,CAAAj0B,GAAA,CAAAwW,GACAqd,EAAArd,EAAA,SAAAmO,CAAA,EACArB,EAAA2Q,gBAAA,CAAAroB,MAAA,CAAA4K,GAiCAmO,WAAAA,EAAAxU,IAAA,EACA,KAAAwU,EAAAxM,MAAA,GAAA7G,UAAAsjB,MAAA,EACAjQ,MAAAA,EAAAxM,MAAA,EACAwM,MAAAA,EAAAxM,MAAA,EzCpFAA,EyCqFyBA,MAAA,EzCrFzB,GyCqFyB,GA9BzBmL,EAAAyQ,eAAA,CACAzQ,EAAA2Q,gBAAA,CAAAY,mBAAA,OACAre,EAAAE,KAAA,EACAK,MAAAP,EAAAE,KAAA,CAAAF,EAAAE,KAAA,CAAAK,KAAA,KACAC,kBAAA2N,EAAAxM,MAAA,EAEAkc,MAXA/Q,EAAAyQ,eAAA,GACAI,IAYA,EACA,CACA,SAAAC,GAAAzB,CAAA,CAAArP,CAAA,CAAAuQ,CAAA,CAAApe,CAAA,CAAAqe,CAAA,EACA,IAAAnB,GAAArP,EAAA0Q,cAAA,CAAAc,MAAA,KAAAxR,EAAAyR,iBAAA,GACAjB,EAAA,CACAhlB,QAAA,eAAA7U,MAAA,CAAAwb,EAAA,oCAAAxb,MAAA,CAAA+6B,EAAsI,OACtIv4B,OAAoB4jB,GAAWC,KAAA,CAC/B/Q,YAAyB7H,IACzB,GACA4b,EAAAyR,iBAAA,KAEA,IAAAE,EAAA3R,EAAA0Q,cAAA,CAEA,IADA1Q,EAAA0Q,cAAA,CAAAkB,KACAD,EAAAv3B,IAAA,MACAk2B,GAAAqB,EAAAR,OAAA,GAAAnR,EAAAuQ,EAAApe,EAAAqe,EAEA,CAiBA,SAAAoB,KACA,IAAAtyB,EAAA,GACA,OACAiC,WAAA,EACAyvB,QAAA,SAAA9d,CAAA,EACA,KAAAse,MAAA,KAGAlyB,EAAAzH,IAAA,CAAAqb,GACA,KAAA3R,UAAA,EAAA2R,EAAA3R,UAAA,CACA,EACA2vB,MAAA,WACA,OAAA5xB,CAAA,KAEA6xB,QAAA,WACA,IAAAje,EAAA5T,EAAAL,KAAA,GAIA,OAHAiU,GACA,MAAA3R,UAAA,EAAA2R,EAAA3R,UAAA,EAEA2R,CACA,EACA9Y,KAAA,WACA,OAAAkF,EAAAzJ,MAAA,EAEA27B,OAAA,WACA,YAAAjwB,UAAA,EAnHO,OAoHP,CACA,CACA,CCzHO,SAAAswB,GAAArqB,CAAA,CAAAsqB,CAAA,CAAAC,CAAA,CAAAvB,CAAA,EACP,IAAAwB,EDoFA,CACAvB,gBAAA,EACAW,mBlG1FO,IkG2FPT,iBAmCA,CACAY,oBAAA,EACAU,iBAAA,EACArB,UAAA,SAAA1d,CAAA,EACA,gBAAAqe,mBAAA,EACA,KAAAU,gBAAA,CAAA/e,EAAA3R,UAAA,EA/HO,OAgIP,KAAAgwB,mBAAA,CA/HO,EAgIP,EACA70B,IAAA,SAAAwW,CAAA,EACA,KAAAqe,mBAAA,IACA,KAAAU,gBAAA,EAAA/e,EAAA3R,UAAA,EAEA+G,OAAA,SAAA4K,CAAA,EACA,KAAAqe,mBAAA,IACA,KAAAU,gBAAA,EAAA/e,EAAA3R,UAAA,CAEA,EAlDAmvB,eAAAkB,KACAH,kBAAA,EACA,ECzFAS,EAAA,SAAAhf,CAAA,CAAAif,CAAA,EAyCAC,CAcA,WAEA,IACA,OAAA35B,OAAAwoB,OAAA,oBAAAA,QAAA,WACA,CACA,MAAA9tB,EAAA,CACA,QACA,CACA,MAtBA+f,EAAA3R,UAAA,CAxCAwwB,EA2CAM,MADAP,EAAA9e,KAAA,SA1CAE,GA2CA,CAA0BkM,OAAA,OAAAvN,KAAAqB,EAAApS,IAAA,CAAAwxB,UAAA,GAAAC,KAAA,SAAmE7Q,IAAA,CAAO3qB,EAAO,SAAAsqB,CAAA,EAAuB,OAAA8Q,MA3ClIA,EA2CkI,OAAAA,EAAA,CAA4Etd,OAAAwM,EAAAxM,MAAA,CAAAhI,KAAAwU,EAAAxU,IAAA,EAA8C,GAAO9V,EAAO,WAG1Qy7B,GA9CAhrB,EA4CAsqB,EAAA9e,KAAA,OA5CAE,GA8CAA,EAAApS,IAAA,CA9CAqxB,EA+CA,IAIAK,GAnDAhrB,EAkDAsqB,EAAA9e,KAAA,OAlDAE,GAmDAA,EAAApS,IAAA,CAnDAqxB,EACA,EACA,OACAtrB,KAAA,SAAAqM,CAAA,EACYod,GAAqBpd,EAAA8e,EAAAE,EAAAJ,EAAA3f,SAAA,CAAAqe,EACjC,EAKAhB,WAAA,SAAAtc,CAAA,GACAuf,SAIAjrB,CAAA,CAAAsqB,CAAA,CAAAC,CAAA,CAAA7e,CAAA,EAEA,GADA,UAAAwf,UAAA,EAAAxf,EAAA3R,UAAA,CAAAwwB,EAEA,IACA,IAAAY,EAAAb,EAAA9e,KAAA,UAAAE,GAEA,GADAlF,UAAA0kB,UAAA,CAAAC,EAAAzf,EAAApS,IAAA,EAEA,MAEA,CACA,MAAA5J,EAAA,CASA07B,KACAA,GAAA,GACQ5a,GAVR9gB,GACA,CAGAs7B,GAAAhrB,EADAsqB,EAAA9e,KAAA,OAAAE,GACAA,EAAApS,IAAA,CACA,EApBA0G,EAAAsqB,EAAAC,EAAA7e,EACA,CACA,CACA,CAkBA,IAAA0f,GAAA,GA+BO,SAAAJ,GAAAhrB,CAAA,CAAAwD,CAAA,CAAAlK,CAAA,CAAAqxB,CAAA,EACP,IAAApO,EAAA,IAAAxD,eACAwD,EAAA8O,IAAA,QAAA7nB,EAAA,IACAlK,aAAA3G,MAIA4pB,EAAA+O,gBAAA,gBAAAhyB,EAAA+L,IAAA,EAEItF,GAAgBC,EAAAuc,EAAA,qBACpBoO,MAAAA,GAAAA,EAAA,CAA6Etd,OAAAkP,EAAAlP,MAAA,EAC7E,EAAK,CAGL9M,KAAA,EACA,GACAgc,EAAAld,IAAA,CAAA/F,EACA,CQ9CA,SAAAiyB,KACA,IAAA5+B,EAAA6+B,UAAA,GAGIlb,GAAiB,yBAAA3jB,GACrB8+B,KACA,CACA,SAAAC,KACA,OAAa7B,IAAAhT,IAAA8U,IAAA,EAAAC,IAAA,EACb,CACA,SAAAC,GAAAC,CAAA,CAAAt3B,CAAA,EACAs3B,EAAAF,GAAA,EAAAp3B,EACAs3B,EAAAjC,GAAA,CAAAtuB,KAAAsuB,GAAA,CAAAiC,EAAAjC,GAAA,CAAAr1B,GACAs3B,EAAAH,GAAA,CAAApwB,KAAAowB,GAAA,CAAAG,EAAAH,GAAA,CAAAn3B,EACA,CACA,SAAAu3B,GAAAt6B,CAAA,CAAAE,CAAA,EACAF,EAAAm6B,GAAA,EAAAj6B,EAAAi6B,GAAA,CACAn6B,EAAAo4B,GAAA,CAAAtuB,KAAAsuB,GAAA,CAAAp4B,EAAAo4B,GAAA,CAAAl4B,EAAAk4B,GAAA,EACAp4B,EAAAk6B,GAAA,CAAApwB,KAAAowB,GAAA,CAAAl6B,EAAAk6B,GAAA,CAAAh6B,EAAAg6B,GAAA,CACA,CACA,SAAAF,KACA9+B,EAAA,CACA6+B,WAAA,EACAQ,gBAAAN,KACAO,mBAAAP,KACAQ,mBAAAR,KACAS,iBAAAT,KACAU,iBAAAV,IACA,CACA,CACA,SAAAW,KACAx/B,EAAA,GACAD,EAAA,CACAs/B,mBAAAR,KACAS,iBAAAT,KACAU,iBAAAV,IACA,CACA,CCNA,SAAAY,WACA,WAAAhuB,SAAAiuB,eAAA,CACA,SAEAjuB,SAAAkuB,QAAA,GACA,SAEA,SACA,CKhFO,IAAAC,GAAA,CACPC,aAAA,EACAC,oBAAA,EACAC,KAAA,EACAC,MAAA,EACAC,QAAA,EACAC,eAAA,EACAC,kBAAA,CACA,EACOC,GAAA,CACPC,SAAA,EACAC,aAAA,EACAlL,QAAA,EACAmL,KAAA,EACAC,MAAA,EACAC,iBAAA,EACA,EACOC,GAAA,CACPC,SAAA,EACAC,UAAA,EACAC,iBAAA,EACAC,OAAA,EACAC,eAAA,EACAC,MAAA,EACAC,UAAA,EACAC,iBAAA,EACAC,eAAA,CAGA,EACOC,GAAA,CACPC,QAAA,EACAC,UAAA,EACAC,MAAA,EACAC,YAAA,EACAC,SAAA,EACAzB,MAAA,EACA0B,KAAA,EACAC,WAAA,EACAC,SAAA,CACA,EACOC,GAAA,CACPC,KAAA,EACAC,MAAA,CACA,EE1CO,SAAAC,GAAAl9B,CAAA,CAAA2H,CAAA,EACP,OACAA,KAAc9H,EAAM,CACpBG,OAAAA,CACA,EAAS2H,GACT+L,KAAconB,GAAUE,mBAAA,CACxB7X,UAAmBpY,IACnB,CACA,CCTO,IAAAoyB,GAAA,CACPC,OAAA,SACAle,OAAA,SACAjE,MAAWD,GAAmBC,KAAA,CAC9BC,KAAUF,GAAmBE,IAAA,CAC7BC,gBAAqBH,GAAmBG,eAAA,EAEjCkiB,GAAA,kBAKAC,GAAA,SASAC,GAAA,CACPC,MAAA,GACAC,OAAA,GACAC,SAAA,GACAC,OAAA,GACAC,OAAA,GACAC,SAAA,GACAC,SAAA,EACA,ECpBO,SAAAC,GAAAvc,CAAA,CAAAwc,CAAA,EACP,IAAA3b,EAAqBD,GAAaZ,GAClCyc,EAAA5b,EAAA0b,GAAA1b,EAAA2b,GAAAA,EAEA,OAAAE,GADAC,GAAA3c,GACAyc,EACA,CAIO,SAAAC,GAAAE,CAAA,CAAAH,CAAA,EACP,OAAAA,GAEA,KAAad,GAAgBje,MAAA,CAC7B,KAAaie,GAAgBC,MAAA,CAC7B,OAAAa,CACA,CACA,OAAAG,GACA,KAAajB,GAAgBliB,KAAA,CAC7B,KAAakiB,GAAgBjiB,IAAA,CAC7B,KAAaiiB,GAAgBhiB,eAAA,CAC7B,KAAagiB,GAAgBje,MAAA,CAC7B,KAAaie,GAAgBC,MAAA,CAC7B,OAAAgB,CACA,SACA,OAAAH,CACA,CACA,CAIO,SAAAE,GAAA3c,CAAA,EAEP,GAASI,GAAaJ,IAGtB,IAAA6c,EAAA7c,EAAAqK,YAAA,CAAqCwR,IAErC,GAAA7b,SAAAA,EAAA0M,OAAA,CACA,OAAeiP,GAAgBliB,KAAA,CAG/B,GAAAuG,UAAAA,EAAA0M,OAAA,EAEA,gBAAAoQ,EAAA5qB,IAAA,EAAA4qB,UAAAA,EAAA5qB,IAAA,EAAA4qB,QAAAA,EAAA5qB,IAAA,EAGA4qB,WAAAA,EAAA5qB,IAAA,CAFA,OAAmBypB,GAAgBjiB,IAAA,CAKnC,IAAAqjB,EAAAD,EAAAzS,YAAA,iBAEA,GAAA0S,GAAAA,IAAAA,EAAAngC,OAAA,QACA,OAAmB++B,GAAgBjiB,IAAA,QAInC,IAAqBoiB,IAAyB9b,EAAA2M,SAAA,CAAAqQ,QAAA,CDhDvC,qBCiDQrB,GAAgBje,MAAA,CAE/Bmf,SAAAA,GAA4C7c,EAAA2M,SAAA,CAAAqQ,QAAA,CDrDrC,mBCsDQrB,GAAgBjiB,IAAA,CAE/BmjB,oBAAAA,GAAuD7c,EAAA2M,SAAA,CAAAqQ,QAAA,CDvDhD,8BCwDQrB,GAAgBhiB,eAAA,CAE/BkjB,UAAAA,GAA6C7c,EAAA2M,SAAA,CAAAqQ,QAAA,CD5DtC,oBC6DQrB,GAAgBliB,KAAA,EAE/BwjB,SA6FOjnB,CAAA,EACP,GAAAA,WAAAA,EAAAiV,QAAA,CACA,SAEA,GAAAjV,SAAAA,EAAAiV,QAAA,EACA,IAAAiS,EAAAC,EAAA,OACA,MAEA,oBAAA/9B,IAAA,CAAA89B,IAAAC,WAAAA,EAAA,OAEAD,kBAAAA,GACAA,SAAAA,CACA,CACA,GAAAlnB,SAAAA,EAAAiV,QAAA,EACA,IAAAmS,EAAAD,EAAA,QACAD,EAAAC,EAAA,OACAE,EAAAF,EAAA,YACA,MAEA,oCAAA/9B,IAAA,CAAAg+B,IACAA,qBAAAA,GACAF,SAAAA,GACAA,qBAAAA,GACAA,kBAAAA,GAEAE,aAAAA,GACAA,gBAAAA,GAEA,oBAAAh+B,IAAA,CAAAi+B,IACA,iBAAAj+B,IAAA,CAAAg+B,IACAA,cAAAA,GAEAA,WAAAA,GACAA,cAAAA,GACAA,YAAAA,GAGApnB,EAAAiU,YAAA,gBAEAmT,WAAAA,GACAA,cAAAA,GACAA,cAAAA,GACAA,cAAAA,GACAA,WAAAA,GACA,YAAAh+B,IAAA,CAAAi+B,IACA,YAAAj+B,IAAA,CAAAi+B,IAEAD,6BAAAA,GACAA,wBAAAA,GACAA,eAAAA,GACAA,oBAAAA,GACAA,cAAAA,GACAA,iBAAAA,GACAA,+BAAAA,CACA,CACA,SAAAD,EAAA9kC,CAAA,EACA,OAAA2d,EAAAqU,YAAA,CAAAhyB,IAAA,IAAAilC,WAAA,EACA,CACA,QACA,EAxJAtd,UACe2b,GAAgBC,MAAA,CAE/B,CAYO,SAAA2B,GAAAvd,CAAA,CAAAwd,CAAA,EACP,OAAAA,GACA,KAAa7B,GAAgBjiB,IAAA,CAC7B,KAAaiiB,GAAgBje,MAAA,CAC7B,KAAaie,GAAgBC,MAAA,CAC7B,QACA,MAAaD,GAAgBhiB,eAAA,CAC7B,OAAmBoG,GAAUC,GAAAyd,GAAAzd,EAAAa,UAAA,EAAA4c,GAAAzd,EAC7B,SACA,QACA,CACA,CACA,SAAAyd,GAAAzd,CAAA,EACA,IAAAA,GAAAA,EAAAC,QAAA,GAAAD,EAAAK,YAAA,CACA,SAGA,GAAArK,UAAAA,EAAA0W,OAAA,CACA,OAAA1W,EAAA9D,IAAA,EACA,aACA,YACA,YACA,aACA,QACA,CAEA,QAAa6pB,EAAsB,CAAA/lB,EAAA0W,OAAA,EAO5B,SAAAgR,GAAAC,CAAA,CAAAC,CAAA,CAAAnB,CAAA,EAIP,IAHAjkC,EAGAqlC,EAAA,OAAArlC,CAAAA,EAAAmlC,EAAAzT,aAAA,GAAA1xB,KAAA,IAAAA,EAAA,OAAAA,EAAAk0B,OAAA,CACAN,EAAAuR,EAAAvR,WAAA,KACA,GAAAwR,CAAAA,GAAAxR,EAAA9B,IAAA,IAKA,GADAuT,WAAAA,EAGAzR,EDvHO,WCyHP,GAAA0R,IAAkCnC,GAAgBje,MAAA,CAElD0O,ED3HO,WC6HP,GAAAmR,GAAAI,EAVAlB,IAWA,GAEAoB,aAAAA,GACAA,WAAAA,GACAA,aAAAA,EACA,KAAAzR,EAAA9B,IAAA,GACA,MACA,MAIA8B,EAFAyR,WAAAA,EDvIO,MCyGmCE,EAAA//B,OAAA,OA1H1C,KAgKA,OAAAouB,EACA,CChKA,IAAA4R,GAAA,IAAAh6B,QACO,SAAAi6B,GAAAje,CAAA,EACP,OAAAge,GAAAl8B,GAAA,CAAAke,EACA,CAWO,SAAAke,GAAAle,CAAA,EACP,OAAAge,GAAAn/B,GAAA,CAAAmhB,EACA,CASO,SAAAme,GAAAnoB,CAAA,CAAA8nB,CAAA,EAOP,IAAApR,EAAA1W,EAAA0W,OAAA,CACArrB,EAAA2U,EAAA3U,KAAA,CACA,GAAQk8B,GAAcvnB,EAAA8nB,GAAA,CACtB,IAAA5rB,EAAA8D,EAAA9D,IAAA,CACA,GAAAwa,UAAAA,GAAAxa,CAAAA,WAAAA,GAAAA,WAAAA,GAAAA,UAAAA,CAAA,EAGA,OAAA7Q,EAEA,IAAAA,GAAAqrB,WAAAA,EAEA,OAEA,MF7BO,KE8BP,OACA,WAAAA,GAAAA,WAAAA,EACA1W,EAAA3U,KAAA,CAEAqrB,UAAAA,GAAAA,aAAAA,EAGArrB,QACA,CACO,IAAA+8B,GAAA,+CACAC,GAAA,oBACAC,GAAA,aAmBPC,GAAA,cACO,SAAAC,GAAA9R,CAAA,EACP,IAAA+R,EAAA/R,EAAA4Q,WAAA,GAAAhT,IAAA,UACA,GAAAlrB,IAAA,CAAAq/B,GAIA,MAEAA,CACA,CC1FO,SAAAC,GAAAC,CAAA,EACP,GAAAA,KAAAt/B,IAAAs/B,GAAAA,IAAAA,EAAAzjC,MAAA,CAGA,OAAAyjC,EAAAphC,GAAA,UAAAqhC,CAAA,EAQA,MALA,CACAC,SAFAjjC,MAAAL,IAAA,CADAqjC,EAAAC,QAAA,EAAAD,EAAAE,KAAA,CACA,SAAAC,CAAA,EAA8D,OAAAA,EAAAC,OAAA,GAG9DC,SAAAL,EAAAK,QAAA,EAAA5/B,KAAAA,EACA6/B,MAAAN,EAAAM,KAAA,CAAAhkC,MAAA,GAAAU,MAAAL,IAAA,CAAAqjC,EAAAM,KAAA,EAAA7/B,KAAAA,CACA,CAEA,EACA,CCVO,SAAA8/B,GAAAnpB,CAAA,CAAA8nB,CAAA,CAAAhQ,CAAA,CAAAjhB,CAAA,EACP,GAAAixB,IAA6BnC,GAAgBje,MAAA,CAE7C,YAEA,IAAA0hB,EAAAppB,EAAAqU,YAAA,CAAAyD,GACA,GAAAgQ,IAA6BnC,GAAgBjiB,IAAA,EAC7CoU,IAA0B+N,IAC1B,CAASxP,GAAiB5vB,QAAA,CAAAqxB,IAC1BA,IAAAjhB,EAAAigB,mBAAA,EACA,IAAAJ,EAAA1W,EAAA0W,OAAA,CACA,OAAAoB,GAEA,YACA,UACA,kBACA,MJAO,KICP,CAEA,GAAApB,CAAAA,QAAAA,GAAAA,WAAAA,CAAA,GACAoB,CAAAA,QAAAA,GAAAA,WAAAA,CAAA,EACA,MJJO,qFIQP,SAAApB,GAAAoB,SAAAA,GAIAsR,GAA8B1hC,EAAUowB,EAAA,SAHxC,MJVO,KIiBP,QACAsR,GAAA,iBAAAA,GAIAA,EAAAlkC,MAAA,CHxCO,KGwCwDkkC,UAAAA,EAAAtjC,KAAA,MAC/D,iBAEAsjC,CACA,CC4DO,SAAAC,GAAAT,CAAA,MAIPE,EHhDOE,EAAAM,EG6CP,IAAAV,EACA,YAGA,IACAE,EAAAF,EAAAE,KAAA,EAAAF,EAAAC,QAAA,CAEA,MAAArmC,EAAA,CAEA,QACA,GHvDOwmC,EG0DPpjC,MAAAL,IAAA,CAAAujC,EAA8CS,I3GjH9CpsB,K2GiHsDqsB,GAAAC,IAAAj9B,IAAA,KH1D/C88B,EG2DuBV,EAAAvoB,IAAA,CH1D9B2oB,EAAAhhC,OAAA,CAAAogC,GAAA,SAAAsB,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,EACA,IAAA1vB,EAAAuvB,GAAAE,GAAAC,EACA,IAAAT,GAAA,CAAAjvB,GAAAguB,GAAAj/B,IAAA,CAAAiR,IAAAiuB,GAAAl/B,IAAA,CAAAiR,GACA,OAAAqvB,EAEA,IAAAM,EAAAL,GAAAE,GAAA,GACA,aAAA7jC,MAAA,CAAAgkC,GAAAhkC,MAAA,CAAAikC,SAGO5vB,CAAA,CAAA6vB,CAAA,EACP,IACA,OAAepqB,GAAQzF,EAAA6vB,GAAA7pB,IAAA,CAEvB,MAAAqI,EAAA,CACA,OAAArO,CACA,CACA,EAVAA,EAAAivB,IAAAtjC,MAAA,CAAAgkC,EAAA,IACA,IGgDA,IAIA,CACA,SAAAR,GAAAW,CAAA,QAGA,iBAAAA,GAAAA,EAAAC,YAAA,CAAA3jC,QAAA,MAGA0jC,EAAAnB,OAAA,CAAAhhC,OAAA,CADA,8BACA,UAEAyhC,GAAAU,EACA,CACA,SAAAV,GAAAU,CAAA,EAIA,qBAAAA,GAAAd,GAAAc,EAAAE,UAAA,GAAAF,EAAAnB,OAAA,CCjIO,SAAAsB,GAAAtgB,CAAA,CAAAxf,CAAA,EACP,IAAA+/B,EAAAC,SA4BAxgB,CAAA,CAAAxf,CAAA,MAwBAigC,EAvBA,OAAAzgB,EAAAC,QAAA,EACA,KAAAD,EAAA0gB,aAAA,CACA,MAcA,CACAxuB,KAAc4nB,GAAQC,QAAA,CACtBpZ,WAAAggB,GAhBA3gB,EAAAxf,GAiBAogC,mBAA4BlC,GAAoBvzB,EAAAy1B,kBAAA,CAChD,CAjBA,MAAA5gB,EAAAS,sBAAA,CACA,OAmBAggB,EAAuBjgB,GAnBvBR,KAqBAxf,EAAAqgC,oBAAA,CAAAC,qBAAA,CAAAC,aAAA,CArBA/gB,GAuBA,CACA9N,KAAc4nB,GAAQK,gBAAA,CACtBxZ,WAAAggB,GAzBA3gB,EAAAxf,GA0BAigC,aAAAA,EACAG,mBAAAH,EAA2C/B,GAAoB1oB,EAAA4qB,kBAAA,EAAAvhC,KAAAA,CAC/D,CA3BA,MAAA2gB,EAAAghB,kBAAA,CACA,MA6BA,CACA9uB,KAAc4nB,GAAQE,YAAA,CACtB3hC,KAAA4oC,EAAA5oC,IAAA,CACA6oC,SAAAD,EAAAC,QAAA,CACAC,SAAAF,EAAAE,QAAA,CAhCA,MAAAnhB,EAAAK,YAAA,CACA,OAAA+gB,SAmDAprB,CAAA,CAAAxV,CAAA,EAEA,IADAhI,EACAk0B,EAAkB8R,GAAexoB,EAAA0W,OAAA,EACjC2U,EAAAC,QAoDAC,EAAA7U,OAAA,EAAA6U,aAAAC,YApDAniC,KAAAA,EAGAy+B,EAA2BpB,GAAmBC,GAAuB3mB,GAAAxV,EAAAi8B,sBAAA,EACrE,GAAAqB,IAA6BnC,GAAgBje,MAAA,EAC7C,IAAAvQ,EAAA6I,EAAAyrB,qBAAA,GAAAnO,EAAAnmB,EAAAmmB,KAAA,CAAAE,EAAArmB,EAAAqmB,MAAA,CACA,OACAthB,KAAkB4nB,GAAQhL,OAAA,CAC1BpC,QAAAA,EACAgV,WAAAlpC,CAAAA,CAAAA,EAAA,CACAmpC,SAAA,GAAA3lC,MAAA,CAAAs3B,EAAA,MACAsO,UAAA,GAAA5lC,MAAA,CAAAw3B,EAAA,KACA,EACA,CAAmBqI,GAAiB,CAAIC,GACxCtjC,CAAA,EACAmoB,WAAA,GACA0gB,MAAAA,CACA,CACA,CAEA,GAAAvD,IAA6BnC,GAAgBC,MAAA,EAG7C,IAAA8F,EAAqBG,SDtHd7rB,CAAA,CAAA8nB,CAAA,CAAAt9B,CAAA,EAEP,GAAAs9B,IAA6BnC,GAAgBje,MAAA,CAC7C,SAKA,QAPAllB,EA0EAspC,EACAC,EAvEAC,EAAA,GACAtV,EAAkB8R,GAAexoB,EAAA0W,OAAA,EACjChW,EAAAV,EAAA8U,aAAA,CACApvB,EAAA,EAAoBA,EAAAsa,EAAA0rB,UAAA,CAAAxmC,MAAA,CAA+BQ,GAAA,GAEnD,IAAAoyB,EAAAmU,EADAP,UAAA,CAAAzkC,IAAA,CAAAvB,GACArD,IAAA,CACA+mC,EAA6BD,GAAkBnpB,EAAA8nB,EAAAhQ,EAAAttB,EAAAqM,aAAA,CAC/C,QAAAuyB,GACA4C,CAAAA,CAAA,CAAAlU,EAAA,CAAAsR,CAAA,CAEA,CACA,GAAAppB,EAAA3U,KAAA,EACAqrB,CAAAA,aAAAA,GAAAA,WAAAA,GAAAA,WAAAA,GAAAA,UAAAA,CAAA,GACA,IAAAwV,EAAwB/D,GAAoBnoB,EAAA8nB,EAC5Cz+B,MAAAA,IAAA6iC,GACAF,CAAAA,EAAA3gC,KAAA,CAAA6gC,CAAA,CAEA,CAYA,GARA,WAAAxV,GAAAoR,IAAqDnC,GAAgBliB,KAAA,EAGrE0oB,EAAAC,QAAA,EACAJ,CAAAA,EAAAI,QAAA,CAAAD,EAAAC,QAAA,EAIA1V,SAAAA,EAAA,CACA,IAAA2V,EAAAzmC,MAAAL,IAAA,CAAAmb,EAAA4rB,WAAA,EAAAnlC,IAAA,UAAAosB,CAAA,EAAyE,OAAAA,EAAAlT,IAAA,GAAAL,EAAAK,IAAA,GACzE2oB,EAAAK,GAAAgD,GACArD,GAAAqD,GAAA,CAAsCvvB,GAA6B5a,EAAmBqqC,yBAAA,GACtFP,CAAAA,EAAAQ,QAAA,CAAAxD,CAAA,CAEA,CAEA,GAAAtS,UAAAA,GAAA1W,EAAAysB,KAAA,EACA,IAAAzD,EAAAK,GAAArpB,EAAAysB,KAAA,EACAzD,GACAgD,CAAAA,EAAAQ,QAAA,CAAAxD,CAAA,CAEA,CAUA,UAAAtS,GAAAoQ,CAAAA,UAAAA,EAAA5qB,IAAA,EAAA4qB,aAAAA,EAAA5qB,IAAA,IACA4rB,IAAiCnC,GAAgBliB,KAAA,CACjDuoB,EAAAU,OAAA,GAAA5F,EAAA4F,OAAA,CAEiBnF,GALjBvnB,EAK+B8nB,IAC/B,OAAAkE,EAAAU,OAAA,EAMAhW,CAAAA,UAAAA,GAAAA,UAAAA,CAAA,GAEAsV,CAAAA,EAAAW,aAAA,CAAAC,EAAAC,MAAA,oBAOA,IAAAhC,EAAArgC,EAAAqgC,oBAAA,CACA,OAAAA,EAAA3mB,MAAA,EACA,OACA4nB,EAAA15B,KAAAE,KAAA,CAAA0N,EAAA8rB,SAAA,EACAC,EAAA35B,KAAAE,KAAA,CAAA0N,EAAA+rB,UAAA,EACAD,CAAAA,GAAAC,CAAA,GACAlB,EAAAiC,uBAAA,CAAAx9B,GAAA,CAAA0Q,EAAA,CAA4E8rB,UAAAA,EAAAC,WAAAA,CAAA,GAE5E,KACA,QACAlB,EAAAiC,uBAAA,CAAAhhC,GAAA,CAAAkU,IAEAxd,CAAAA,EAAAA,CAAAA,EAAAqoC,EAAAiC,uBAAA,CAAAjkC,GAAA,CAAAmX,EAAA,EAAA8rB,SAAA,CAAAC,EAAAvpC,EAAAupC,UAAA,CAGA,CAOA,OANAA,GACAC,CAAAA,EAAAe,aAAA,CAAAhB,CAAA,EAEAD,GACAE,CAAAA,EAAAgB,YAAA,CAAAlB,CAAA,EAEAE,CACA,ECkBwChsB,EAAA8nB,EAAAt9B,GACxCmgB,EAAA,GAmBA,MlF9HAX,CAAAA,EAAAW,UAAA,CAAAzlB,MAAA,IAAAolB,GkF4GqBtK,ElF5GrB,GkF8GA0W,UAAAA,GAcA/L,CAAAA,EAAAggB,GAAA3qB,EATAxV,EAAAi8B,sBAAA,GAAAqB,GAAAt9B,EAAAo9B,gBAAA,GAAAlR,CAAAA,SAAAA,CAAA,EACAlsB,EAG6CnC,EAAM,GAAGmC,EAAA,CACtDi8B,uBAAAqB,EACAF,iBAAAlR,SAAAA,CACA,GAEA,EAEA,CACAxa,KAAc4nB,GAAQhL,OAAA,CACtBpC,QAAAA,EACAgV,WAAAA,EACA/gB,WAAAA,EACA0gB,MAAAA,CACA,EACA,EAxGArhB,EAAAxf,EACA,MAAAwf,EAAAG,SAAA,CACA,OAAA8iB,SA+GAtF,CAAA,CAAAn9B,CAAA,EACA,IAAA4rB,EAAsBsR,GAAcC,EAAAn9B,EAAAo9B,gBAAA,KAAAp9B,EAAAi8B,sBAAA,EACpC,GAAArQ,KAAA/sB,IAAA+sB,EAGA,OACAla,KAAc4nB,GAAQG,IAAA,CACtB7N,YAAAA,CACA,CACA,EAxHApM,EAAAxf,EACA,MAAAwf,EAAAkjB,kBAAA,CACA,MAwHA,CACAhxB,KAAc4nB,GAAQI,KAAA,CACtB9N,YAAA,EACA,CA1HA,CACA,EA3CApM,EAAAxf,GACA,IAAA+/B,EACA,YAGA,IAAA3V,EAAasT,GAAmBle,IAWhCmjB,KAJA,OALAC,EAAAxY,EAAA,CAAAA,EJMAoT,GAAA14B,GAAA,CILuB0a,EAAA4K,GACvBpqB,EAAAw9B,iBAAA,EACAx9B,EAAAw9B,iBAAA,CAAAj8B,GAAA,CAAA6oB,GAJA2V,CAOA,CACA,IAAA4C,GAAA,EAIO,SAAAxC,GAAA3gB,CAAA,CAAAxf,CAAA,EACP,IAAA4E,EAAA,GAOA,OANIsb,GAAiBV,EAAA,SAAAqjB,CAAA,EACrB,IAAAC,EAAAhD,GAAA+C,EAAA7iC,GACA8iC,GACAl+B,EAAAlI,IAAA,CAAAomC,EAEA,GACAl+B,CACA,CGnCO,SAAAm+B,GAAAn3B,CAAA,EACP,MAAAT,CAAAA,CAAAS,EAAAo3B,cAAA,CAEO,SAAAC,GAAAr3B,CAAA,QACP,KAAAA,EAAAs3B,QAAA,EAAmCpjB,GAAgBlU,EAAA9N,MAAA,EACnD8N,EAAAu3B,YAAA,MAEAv3B,EAAA9N,MAAA,CCaO,IAAAslC,GAAA,SAAAC,CAAA,CAAAC,CAAA,EACP,IAAAtR,EAAA10B,OAAA00B,cAAA,CACAuR,EAAA,CACAC,gBAAAH,EACAI,gBAAAH,EACAI,gBAAAL,EACAM,gBAAAL,CACA,EAeA,OAdAtR,IAXApqB,KAAAg8B,GAAA,CAAA5R,EAAAM,OAAA,CAAAN,EAAAO,SAAA,CAAAj1B,OAAAk1B,OAAA,EAPA,IAQA5qB,KAAAg8B,GAAA,CAAA5R,EAAAC,QAAA,CAAAD,EAAAE,UAAA,CAAA50B,OAAA60B,OAAA,EARA,IAwBAoR,EAAAC,eAAA,CAAA57B,KAAAE,KAAA,CAAAu7B,EAAArR,EAAAE,UAAA,EACAqR,EAAAE,eAAA,CAAA77B,KAAAE,KAAA,CAAAw7B,EAAAtR,EAAAO,SAAA,IAIAgR,EAAAG,eAAA,CAAA97B,KAAAE,KAAA,CAAAu7B,EAAArR,EAAAE,UAAA,EACAqR,EAAAI,eAAA,CAAA/7B,KAAAE,KAAA,CAAAw7B,EAAAtR,EAAAO,SAAA,IAEAgR,CACA,EACOM,GAAA,SAAA7R,CAAA,EAAoD,OAC3De,MAAAf,EAAAe,KAAA,CACAb,WAAAF,EAAAE,UAAA,CACAK,UAAAP,EAAAO,SAAA,CACAN,SAAAD,EAAAC,QAAA,CACAK,QAAAN,EAAAM,OAAA,CACAU,OAAAhB,EAAAgB,MAAA,CACAF,MAAAd,EAAAc,KAAA,CACC,ECvBM,SAAAgR,GAAAl4B,CAAA,EACP,IAAA5T,EAAa+qC,GAAYn3B,GAAAA,EAAAo3B,cAAA,IAAAp3B,EAAAm4B,EAAA/rC,EAAAqrC,OAAA,CAAAW,EAAAhsC,EAAAsrC,OAAA,CACzB,GAAAhmC,OAAA00B,cAAA,EACA,IAAArlB,EAAiBy2B,GAAoCW,EAAAC,GAAAN,EAAA/2B,EAAA+2B,eAAA,CAAAC,EAAAh3B,EAAAg3B,eAAA,CACrDI,EAAAL,EACAM,EAAAL,CACA,CACA,IAAAljB,OAAAwjB,QAAA,CAAAF,IAAA,CAAAtjB,OAAAwjB,QAAA,CAAAD,GAAA,CACAp4B,EAAAlH,SAAA,EACYiY,GAAiB,iCAE7B,MACA,CACA,OAAaonB,EAAAA,EAAAC,EAAAA,CAAA,CACb,CEnCA,IAAAE,GAAmC/qC,CAAAA,CAAAA,EAAE,GAS/B,CAAC1B,EAAS0sC,UAAA,EAAe7J,GAAoBC,OAAA,CAC/CphC,CAAE,CAAC1B,EAAS2sC,UAAA,EAAe9J,GAAoBE,SAAA,CAC/CrhC,CAAE,CAAC1B,EAAS4sC,KAAA,EAAU/J,GAAoBG,KAAA,CAC1CthC,CAAE,CAAC1B,EAAS6sC,YAAA,EAAiBhK,GAAoBI,WAAA,CACjDvhC,CAAE,CAAC1B,EAAS8sC,SAAA,EAAcjK,GAAoBK,QAAA,CAC9CxhC,CAAE,CAAC1B,EAAS+sC,KAAA,EAAUlK,GAAoBpB,KAAA,CAC1C//B,CAAE,CAAC1B,EAASgtC,IAAA,EAASnK,GAAoBM,IAAA,CACzCzhC,CAAE,CAAC1B,EAASitC,WAAA,EAAgBpK,GAAoBO,UAAA,CAChD1hC,CAAE,CAAC1B,EAASktC,SAAA,EAAcrK,GAAoBQ,QAAA,CAC9C3hC,CAAA,ECtBG,SAAAyrC,GAAAv4B,CAAA,CAAAw4B,CAAA,CAAA/mC,CAAA,EACP,SAAAA,GAA6BA,CAAAA,EAAA6M,QAAA,EAC7B,IAkBAm6B,EAlBA9I,EAAA3vB,EAAA2vB,mBAAA,CACA+I,EAAA,IAAAvhC,QACAy8B,EAAAniC,IAAA6M,SACAq6B,EAA6Bv4B,GAAiBJ,EAAAvO,EAI9CmiC,EAAA,CAAoBxoC,EAASwtC,MAAA,GAAYxtC,EAAS+jC,KAAA,CAAQ/jC,EAASwtC,MAAA,WAAAr5B,CAAA,EACnE,IAAA9N,EAAqBmlC,GAAcr3B,GACnC9N,CAAAA,aAAAmsB,kBACAnsB,aAAAonC,qBACApnC,aAAAqnC,iBAAA,GACAC,EAAAtnC,EAEA,EAAK,CACL+O,QAAA,GACAC,QAAA,EACA,GAAKI,IAAA,CAEL,GAAA+yB,EAaA6E,EAA4CnkC,OAb5C,CACA,IAAA0kC,EAAA,CACY9gB,GAAgB0F,iBAAA5uB,SAAA,SAAA+pC,GAChB7gB,GAAgB0F,iBAAA5uB,SAAA,WAAA+pC,GAChB7gB,GAAgB4gB,kBAAA9pC,SAAA,SAAA+pC,GAChB7gB,GAAgB2gB,oBAAA7pC,SAAA,SAAA+pC,GAChB7gB,GAAgB4gB,kBAAA9pC,SAAA,iBAAA+pC,GAC5B,CACAN,EAAA,WACAO,EAAArrC,OAAA,UAAAsrC,CAAA,EAAmE,OAAAA,EAAAp4B,IAAA,IACnE,CACA,CAIA,kBACA43B,IACAE,GACA,EACA,SAAAI,EAAAtnC,CAAA,EACA,IlJVOyb,EAAA/Z,EkJeP+lC,EALAjI,EAA+BvB,GAAmBj+B,EAAAk+B,GAClD,GAAAsB,IAAiCnC,GAAgBje,MAAA,EAGjD,IAAAxL,EAAA5T,EAAA4T,IAAA,CAEA,GAAAA,UAAAA,GAAAA,aAAAA,EAAA,CACA,GAAgBqrB,GAAcj/B,EAAAw/B,GAC9B,OAEAiI,EAAA,CAA2BC,UAAA1nC,EAAAokC,OAAA,CAC3B,KACA,CACA,IAAArhC,EAAwB88B,GAAoB7/B,EAAAw/B,GAC5C,GAAAz8B,KAAAhC,IAAAgC,EACA,OAEA0kC,EAAA,CAA2BhI,KAAA18B,CAAA,CAC3B,CAEA4kC,EAAA3nC,EAAAynC,GAEA,IAAA1tC,EAAAiG,EAAAjG,IAAA,CACA,UAAA6Z,GAAA7Z,GAAAiG,EAAAokC,OAAA,GlJjCO3oB,EkJkCY5O,SAAA4f,gBAAA,8BAAA/uB,MAAA,CAAkE2B,EAAStF,GAAA,OlJlCvF2H,EkJkCuF,SAAAuhC,CAAA,EAC9FA,IAAAjjC,GAEA2nC,EAAA1E,EAAA,CAAsCyE,UAAA,IAEtC,ElJtCApqC,MAAAC,SAAA,CAAArB,OAAA,CAAAuB,IAAA,CAAAge,EAAA/Z,IkJwCA,CAIA,SAAAimC,EAAA3nC,CAAA,CAAAynC,CAAA,EACA,GAAa9H,GAAiB3/B,IAG9B,IAAA4nC,EAAAX,EAAA1mC,GAAA,CAAAP,GACA4nC,GACAA,EAAAnI,IAAA,GAAAgI,EAAAhI,IAAA,EACAmI,EAAAF,SAAA,GAAAD,EAAAC,SAAA,GACAT,EAAAjgC,GAAA,CAAAhH,EAAAynC,GACAV,EAAehnC,EAAM,CACrBusB,GAAoBsT,GAAmB5/B,EACvC,EAAaynC,KAEb,CACA,CCzCO,SAAAI,GAAAhG,CAAA,EAGP,IAFA,IAAA17B,EAAA,GACA2hC,EAAAjG,EACAiG,EAAAC,UAAA,GAEA,IAAAC,EAAAC,MADAhrC,IAAA,CAAA6qC,EAAAC,UAAA,CAAAxH,QAAA,EACAjiC,OAAA,CAAAwpC,GACA3hC,EAAAyf,OAAA,CAAAoiB,GACAF,EAAAA,EAAAC,UAAA,CAGA,GAAAD,EAAAI,gBAAA,EAIA,IAAAxiB,EAAA8a,MADAvjC,IAAA,CAAA6qC,EAAAI,gBAAA,CAAA3H,QAAA,EACAjiC,OAAA,CAAAwpC,GAEA,OADA3hC,EAAAyf,OAAA,CAAAF,GACAvf,EACA,CK9DO,SAAAgiC,GAAAC,CAAA,CAAA75B,CAAA,CAAAi0B,CAAA,CAAAxiC,CAAA,EACP,IAAA0f,EAA2BF,KAC3B,IAAAE,EACA,OAAiBtQ,KAAMvM,GAAIozB,MAASpzB,EAAI,EAExC,IAAAwlC,EAAwBC,SDNjBC,CAAA,EACP,IAAAC,EAA+B3lC,GAC/B4lC,EAAA,GACA,SAAAxS,IACAuS,IACAD,EAAAE,GACAA,EAAA,GAEA,OACAC,aAAA,SAAAC,CAAA,EACA,IAAAF,EAAA7rC,MAAA,EACA4rC,CAAAA,EAAAI,SAkBAlnC,CAAA,CAAAmnC,CAAA,EACA,GAAArpC,OAAAopC,mBAAA,EAAAppC,OAAAspC,kBAAA,EACA,IAAAC,EAAAvpC,OAAAopC,mBAAA,CAA8C9qC,EAAO4D,GAAAmnC,GACrD,kBAA6B,OAAArpC,OAAAspC,kBAAA,CAAAC,EAAA,CAC7B,CACA,IAAAzc,EAAA9sB,OAAAwpC,qBAAA,CAA0ClrC,EAAO4D,IACjD,kBAAyB,OAAAlC,OAAAypC,oBAAA,CAAA3c,EAAA,CACzB,EAzBA2J,EAAA,CAAoEiT,QAZpE,GAYoE,EAAqC,EAEzGT,EAAA7pC,IAAA,CAAA/B,KAAA,CAAA4rC,EAAAE,EACA,EACA1S,MAAAA,EACA7mB,KAAA,WACAo5B,GACA,CACA,CACA,ECd2C,SAAAG,CAAA,GAC3CQ,SAqBAR,CAAA,CAAAP,CAAA,CAAA75B,CAAA,CAAAi0B,CAAA,EACAmG,EACAjhC,MAAA,UAAA0hC,CAAA,EAAsC,MAAAA,cAAAA,EAAAx1B,IAAA,GACtC1X,OAAA,UAAAktC,CAAA,EACAA,EAAAC,YAAA,CAAAntC,OAAA,UAAAotC,CAAA,GACAC,SAqOAA,EAAAD,CAAA,CAAAE,CAAA,EACQxnB,GAAgBsnB,IACxBE,EAAAF,EAAArnB,UAAA,EAEIG,GAAiBknB,EAAA,SAAAvE,CAAA,EAAqC,OAAAwE,EAAAxE,EAAAyE,EAAA,EAC1D,EA1OAF,EAAA9G,EAAAiH,gBAAA,CACA,EACA,GAKA,IAAAC,EAAAf,EAAAjhC,MAAA,UAAA0hC,CAAA,EACA,OAAAA,EAAAppC,MAAA,CAAA2pC,WAAA,EACYC,SlB1CLloB,CAAA,EAEP,IADA,IAAAgD,EAAAhD,EACAgD,GAAA,CACA,IAAAib,GAAAjb,IAAA,CAA4CxC,GAAgBwC,GAC5D,SAEAA,EAAkBpC,GAAaoC,EAC/B,CACA,QACA,EkBiC8C0kB,EAAAppC,MAAA,GAClCi+B,GAAmBmL,EAAAppC,MAAA,CAAAuO,EAAA2vB,mBAAA,IAAyDb,GAAgBje,MAAA,GAExGllB,EAAA2vC,SAiBAlB,CAAA,CAAAp6B,CAAA,CAAAi0B,CAAA,EAyBA,QAbAsH,EAAA,IAAAprC,IACA2qC,EAAA,IAAAn8B,IACA68B,EAAA,SAAAX,CAAA,EACAA,EAAAY,UAAA,CAAA9tC,OAAA,UAAAwlB,CAAA,EACAooB,EAAArmC,GAAA,CAAAie,EACA,GACA0nB,EAAAC,YAAA,CAAAntC,OAAA,UAAAwlB,CAAA,EACAooB,EAAAtmC,GAAA,CAAAke,IACA2nB,EAAAriC,GAAA,CAAA0a,EAAA0nB,EAAAppC,MAAA,EAEA8pC,EAAAG,MAAA,CAAAvoB,EACA,EACA,EACAhlB,EAAA,EAA8CA,EAAAwtC,EAAAttC,MAAA,CAAyBF,IAEvEqtC,EADAG,CAAA,CAAAxtC,EAAA,EAdA,IA2BAytC,EAAA7sC,MAAAL,IAAA,CAAA6sC,IACAM,SA4IOC,CAAA,EACPA,EAAAC,IAAA,UAAAx/B,CAAA,CAAAy/B,CAAA,EACA,IAAA/Y,EAAA1mB,EAAA0/B,uBAAA,CAAAD,UAEA,EAAA3oB,KAAA6oB,8BAAA,CACA,GAEAjZ,EAAA5P,KAAA8oB,0BAAA,CACA,EAEAlZ,EAAA5P,KAAA+oB,2BAAA,CACA,EAEAnZ,EAAA5P,KAAAgpB,2BAAA,CACA,GAGA,CACA,EACA,EA/JAT,GAKA,QAFAzK,EAAA,IAAAhhC,IACAmsC,EAAA,GACA3wC,EAAA,EAA4EA,EAAA4wC,EAAAluC,MAAA,CAAwC1C,IAAA,CACpH,IAAAwnB,EAAAopB,CAAA,CAAA5wC,EAAA,CACA,IAAA6wC,EAAArpB,IAGA,IAAAyc,EAAqCF,GAAmBvc,EAAAa,UAAA,CAAAhU,EAAA2vB,mBAAA,EACxD,GAAAC,IAAuCd,GAAgBje,MAAA,EAAA+e,IAAsCd,GAAgBC,MAAA,EAG7G,IAAA2E,EAA6BD,GAAmBtgB,EAAA,CAChDge,kBAAAA,EACAvB,uBAAAA,EACAoE,qBAAA,CAAoC3mB,OAAA,EAAA4mB,sBAAAA,CAAA,EACpCj0B,cAAAA,CACA,GACA,GAAA0zB,GAGA,IAAA1f,EAAyBD,GAAaZ,GACtCmpB,EAAAjsC,IAAA,EACAosC,OAAAC,SAmBAvpB,CAAA,EAEA,IADA,IAAAwpB,EAAAxpB,EAAAwpB,WAAA,CACAA,GAAA,CACA,GAAgBvL,GAAiBuL,GACjC,OAAuBtL,GAAmBsL,GAE1CA,EAAAA,EAAAA,WAAA,CAEA,WACA,EA5BAxpB,GACAypB,SAAsBvL,GAAmBrd,GACzCb,KAAAugB,CACA,KACA,CA1BA,IA4BAmJ,EAAA,GASA,OARA/B,EAAAntC,OAAA,UAAA+zB,CAAA,CAAAvO,CAAA,EACYie,GAAiBje,IAC7B0pB,EAAAxsC,IAAA,EACAusC,SAA0BvL,GAAmB3P,GAC7C3D,GAAoBsT,GAAmBle,EACvC,EAEA,GACA,CAAa2pB,KAAAR,EAAAS,QAAAF,EAAAL,kBAAAA,CAAA,EACb,SAAAA,EAAArpB,CAAA,EACA,OAAeie,GAAiBje,IAAAge,EAAAl8B,GAAA,CAAgCo8B,GAAmBle,GACnF,CAWA,EA/GAgoB,EAAAhiC,MAAA,UAAA0hC,CAAA,EAAsF,MAAAA,cAAAA,EAAAx1B,IAAA,GAAuCrF,EAAAi0B,GAAA6I,EAAAnxC,EAAAmxC,IAAA,CAAAC,EAAApxC,EAAAoxC,OAAA,CAAAP,EAAA7wC,EAAA6wC,iBAAA,CAC7HQ,EAAAC,SA+GA7C,CAAA,CAAAp6B,CAAA,EAaA,QAZArU,EACAuxC,EAAA,GAEAC,EAAA,IAAAhtC,IACAgrC,EAAAf,EAAAjhC,MAAA,UAAA0hC,CAAA,QACA,CAAAsC,EAAAloC,GAAA,CAAA4lC,EAAAppC,MAAA,IAGA0rC,EAAAjoC,GAAA,CAAA2lC,EAAAppC,MAAA,EACA,GACA,GAEAtD,EAAA,EAA8DA,EAAAivC,EAAA/uC,MAAA,CAAiCF,IAAA,CAC/F,IAAA0sC,EAAAuC,CAAA,CAAAjvC,EAAA,CAEA,GAAAqG,EADA/C,MAAA,CAAA8tB,WAAA,GACAsb,EAAAwC,QAAA,EAGA,IAAAzN,EAAqCF,GAAoB3b,GAAa8mB,EAAAppC,MAAA,EAAAuO,EAAA2vB,mBAAA,EACtEC,IAAuCd,GAAgBje,MAAA,EAAA+e,IAAsCd,GAAgBC,MAAA,EAG7GmO,EAAA7sC,IAAA,EACA0tB,GAAgBsT,GAAmBwJ,EAAAppC,MAAA,EAEnC+C,MAAA,OAAA7I,CAAAA,EAAyBklC,GAAcgK,EAAAppC,MAAA,IAAAm+B,EAAA,GAAAjkC,KAAA,IAAAA,EAAAA,EAAA,IACvC,GACA,CACA,OAAAuxC,CACA,EA7IA/B,EAAAhiC,MAAA,UAAA0hC,CAAA,EACA,MAAAA,kBAAAA,EAAAx1B,IAAA,GAAAm3B,EAAA3B,EAAAppC,MAAA,CACA,GAAKuO,GACL60B,EAAAyI,SA2IAlD,CAAA,CAAAp6B,CAAA,EAmBA,QAlBAu9B,EAAA,GAEAC,EAAA,IAAA7+B,IACAw8B,EAAAf,EAAAjhC,MAAA,UAAA0hC,CAAA,EACA,IAAA4C,EAAAD,EAAAxrC,GAAA,CAAA6oC,EAAAppC,MAAA,QACA,CAAAgsC,MAAAA,IAAAA,EAAAxoC,GAAA,CAAA4lC,EAAA5Z,aAAA,KAGAwc,EAIAA,EAAAvoC,GAAA,CAAA2lC,EAAA5Z,aAAA,EAHAuc,EAAA/kC,GAAA,CAAAoiC,EAAAppC,MAAA,KAAAtB,IAAA,CAAA0qC,EAAA5Z,aAAA,IAKA,GACA,GAEAyc,EAAA,IAAA/+B,IACAxQ,EAAA,EAA8DA,EAAAwvC,EAAAtvC,MAAA,CAAiCF,IAAA,CAC/F,IAAA0sC,EAAA8C,CAAA,CAAAxvC,EAAA,CAEA,GAAAyvC,EADAnsC,MAAA,CAAA+rB,YAAA,CAAAqd,EAAA5Z,aAAA,IACA4Z,EAAAwC,QAAA,EAGA,IAAA1M,EAA2BjB,GAAmBmL,EAAAppC,MAAA,CAAAuO,EAAA2vB,mBAAA,EAC9C4C,EAA6BD,GAAkBuI,EAAAppC,MAAA,CAAAk/B,EAAAkK,EAAA5Z,aAAA,CAAAjhB,GAC/C69B,EAAA,OACA,GAAAhD,UAAAA,EAAA5Z,aAAA,EACA,IAAA6c,EAA6BxM,GAAoBuJ,EAAAppC,MAAA,CAAAk/B,GACjD,GAAAmN,KAAAtrC,IAAAsrC,EACA,SAEAD,EAAAC,CACA,MAEAD,EADA,iBAAAtL,EACAA,EAGA,KAEA,IAAAwL,EAAAL,EAAA1rC,GAAA,CAAA6oC,EAAAppC,MAAA,EACAssC,IACAA,EAAA,CACAhgB,GAAoBsT,GAAmBwJ,EAAAppC,MAAA,EACvCojC,WAAA,EACA,EACA0I,EAAAltC,IAAA,CAAA0tC,GACAL,EAAAjlC,GAAA,CAAAoiC,EAAAppC,MAAA,CAAAssC,IAEAA,EAAAlJ,UAAA,CAAAgG,EAAA5Z,aAAA,EAAA4c,EACA,CACA,OAAAN,CACA,EAhMApC,EAAAhiC,MAAA,UAAA0hC,CAAA,EACA,MAAAA,eAAAA,EAAAx1B,IAAA,GAAAm3B,EAAA3B,EAAAppC,MAAA,CACA,GAAKuO,GACL,GAAA3R,MAAA,EAAAwmC,EAAAxmC,MAAA,EAAA0uC,EAAA1uC,MAAA,EAAAyuC,EAAAzuC,MAAA,GAGAwrC,EAAA,CACAiD,KAAAA,EACAC,QAAAA,EACAC,MAAAA,EACAnI,WAAAA,CACA,EACA,EAtDAuF,EAAAjrC,MAAA,CAAA1C,EAAAuxC,WAAA,IAAAnE,EAAA75B,EAAAi0B,EACA,GACAxnC,EAAA,IAAA0kB,EAAwC5hB,EAAOuqC,EAAAK,YAAA,GAS/C,OARA1tC,EAAAwxC,OAAA,CAAAxsC,EAAA,CACAysC,kBAAA,GACArJ,WAAA,GACAsJ,cAAA,GACAC,sBAAA,GACAC,UAAA,GACAC,QAAA,EACA,GACA,CACAz9B,KAAA,WACApU,EAAA8xC,UAAA,GACAzE,EAAAj5B,IAAA,EACA,EACA6mB,MAAA,WACAoS,EAAApS,KAAA,EACA,CACA,CACA,CMlCO,IAAA8W,GAAA,SAAAx+B,CAAA,CAAArU,CAAA,EACP,IAAA8yC,EAAA9yC,EAAA8yC,UAAA,CAAAC,EAAA/yC,EAAA+yC,OAAA,CACAC,EAAA,IAAAhgC,IACAs1B,EAAA,CACAC,cAAA,SAAAxgB,CAAA,EACA,IAAA/nB,EAAqBiuC,GAAoB6E,EAAAz+B,EAAAi0B,EAAAvgB,GAAAkrB,EAAAjzC,EAAAkV,IAAA,CAAA6mB,EAAA/7B,EAAA+7B,KAAA,CAEzCmX,EAAoCtG,GAAiBv4B,EAAA0+B,EAAAhrB,GACrDirB,EAAAlmC,GAAA,CAAAib,EAAA,CACAgU,MAAAA,EACA7mB,KAAA,WACA+9B,IACAC,GACA,CACA,EACA,EACA3D,iBAAA,SAAAxnB,CAAA,EACA,IAAAtM,EAAAu3B,EAAA3sC,GAAA,CAAA0hB,GACAtM,IAIAA,EAAAvG,IAAA,GACA89B,EAAAjD,MAAA,CAAAhoB,GACA,EACA7S,KAAA,WACA89B,EAAAhxC,OAAA,UAAAhC,CAAA,EAEA,MAAAkV,CADAlV,EAAAA,EAAAkV,IAAA,GAEA,EACA,EACA6mB,MAAA,WACAiX,EAAAhxC,OAAA,UAAAhC,CAAA,EAEA,MAAA+7B,CADA/7B,EAAAA,EAAA+7B,KAAA,GAEA,EACA,CACA,EACA,OAAAuM,CACA,EIpBA,SAAA6K,GAAAC,CAAA,MAIAC,EAeA,OAlBAjyC,GACAA,CAAAA,EAAA,IAAA4R,GAAA,EAGA5R,EAAAkI,GAAA,CAAA8pC,GACAC,EAAAjyC,EAAAiF,GAAA,CAAA+sC,IAGAC,EAAA,CACAC,cAAA,EACAC,eAAA,EACAC,wBAAA,CACA,EACApyC,EAAA0L,GAAA,CAAAsmC,EAAAC,GACAjyC,EAAA6F,IAAA,CAnCO,IAoCPwsC,WAMA,GAAAryC,GAGA,GAAAA,EAAAW,IAAA,CACAX,EAAA2uC,MAAA,CAAA3uC,EAAAW,IAAA,GAAA4a,IAAA,GAAA9T,KAAA,MAEA,CAEA,IAAA6qC,EAAA,GACAtyC,EAAAY,OAAA,UAAA2xC,CAAA,CAAA3uC,CAAA,EACA0uC,IACAtyC,EAAA2uC,MAAA,CAAA/qC,GACA0uC,EAAA,GAEA,EACA,EACA,KAnBAL,CACA,CCrCA,IAAAO,GAAA,WACA,SAAAA,EAAAnY,CAAA,CAAA33B,CAAA,CAAA+vC,CAAA,EACA,KAAApY,OAAA,CAAAA,EACA,KAAAqY,iBAAA,GACA,IAAAV,EAAAtvC,EAAA2zB,IAAA,CAAArF,EAAA,CACA,KAAA2hB,QAAA,CAAwBluC,EAAM,CAC9BshB,MAAA+D,IACA9D,IAAA,CAAA8D,IACA8oB,gBAAAH,EACAP,cAAA,EACAW,kBAAA,GACAC,cDXAf,GCWuDC,GDXvDG,cAAA,CCYAvtC,OAAA,SACA,EAASlC,GDVTqvC,GCW8BC,GDX9BG,cAAA,GCYA,CA2BA,OA1BAK,EAAAvwC,SAAA,CAAA8wC,SAAA,UAAAC,CAAA,CAAA5sC,CAAA,EACA,IDZO4rC,ECaPpzC,EADAqN,EAAA,KAEA,KAAA0mC,QAAA,CAAA5sB,KAAA,CAAAvX,KAAAsuB,GAAA,MAAA6V,QAAA,CAAA5sB,KAAA,CAAAitB,EAAAjrB,SAAA,EACA,KAAA4qB,QAAA,CAAA3sB,GAAA,CAAAxX,KAAAowB,GAAA,MAAA+T,QAAA,CAAA3sB,GAAA,CAAAgtB,EAAAjrB,SAAA,EACA,KAAA4qB,QAAA,CAAAT,aAAA,IACA,CAAAtzC,EAAA,KAAA+zC,QAAA,EAAAE,iBAAA,EAAAj0C,CAAAA,EAAAi0C,iBAAA,CAAAG,EAAA16B,IAAA,GAA0FonB,GAAUC,YAAA,EAC5F9c,GAAe,UAAamwB,OAAAA,EAAAC,QAAA,KAAAN,QAAA,GDlB7BX,ECmBsB,KAAAW,QAAA,CAAAtc,IAAA,CAAArF,EAAA,CDlB7B+gB,GAAAC,GAAAE,aAAA,ICmBA,IAAAgB,EAAA,KAAA7Y,OAAA,CAAAvlB,OAAA,gBAA8C,IAC9C,KAAAulB,OAAA,CAAAtlB,KAAA,CAAAm+B,EAAA5pC,KAAAC,SAAA,CAAAypC,GAAA,SAAAh+B,CAAA,EACA/I,EAAAymC,iBAAA,EAAA19B,EACA5O,EAAA6F,EAAAymC,iBAAA,CACA,EACA,EACAF,EAAAvwC,SAAA,CAAA04B,KAAA,UAAAv0B,CAAA,EACA,IAAA6F,EAAA,KACA,QAAAouB,OAAA,CAAAvlB,OAAA,CACA,qCAEA,KAAAulB,OAAA,CAAAtlB,KAAA,MAAA3S,MAAA,CAAAkH,KAAAC,SAAA,MAAAopC,QAAA,EAAAzwC,KAAA,WACA,KAAAm4B,OAAA,CAAAplB,MAAA,UAAAimB,CAAA,MD7BO8W,EAAAmB,EAAAnB,EC8B6B/lC,EAAA0mC,QAAA,CAAAtc,IAAA,CAAArF,EAAA,CD9B7BmiB,EC8B6BjY,EAAA/lB,aAAA,CD7BpC48B,GAAAC,GAAAI,uBAAA,EAAAe,EC8BA/sC,EAAA6F,EAAA0mC,QAAA,CAAAzX,EACA,EACA,EACAsX,CACA,II3CO,SAAAY,KACP,MAIA,mBAAApxC,MAAAL,IAAA,EACA,mBAAA0xC,iBACA,mBAAA91B,IAAA+1B,eAAA,EACA,YAAAC,SAAAtxC,SAAA,CEVO,SAAAuxC,GAAAvgC,CAAA,CAAAwgC,CAAA,CAAAC,CAAA,EACP,IAEAC,EAFAx+B,EAAA,EACAy+B,EAAA,GAEAC,EAAA,EACAC,EAAA,GACAC,EAAgC/gC,GAAgBC,EAAAwgC,EAAA,mBAAA70C,CAAA,EAChD,IAAAo1C,EAAAp1C,EAAA2N,IAAA,CACA,GAAAynC,UAAAA,EAAA17B,IAAA,EAAA07B,EAAAN,QAAA,GAAAA,GAGAv+B,GAAA6+B,EAAAb,oBAAA,CACAS,EAAAtwC,IAAA,CAAA0wC,EAAAxoC,MAAA,EACAmoC,EAAAK,EAAAC,OAAA,CACA,IAAAC,EAAAJ,EAAAppC,KAAA,EACAwpC,CAAAA,GAAAA,EAAAljB,EAAA,GAAAgjB,EAAAhjB,EAAA,CACAkjB,EAAAC,aAAA,CACAD,EAAAC,aAAA,CAAAH,EAAAxoC,MAAA,CAAA4oC,UAAA,EAEAF,EAAAG,cAAA,EACAH,EAAAG,cAAA,IAIAN,IACYxwB,GAAiB,4CAE7B,GAAKzP,IAAA,CACL,SAAAwgC,IACA,IAAA3/B,EAAAi/B,IAAAA,EAAAtyC,MAAA,KAAAugB,WAAA,GAAuE0yB,StKhBhEC,CAAA,EAIP,QAFAhpC,EAAA,IAAAqW,WADA2yB,EAAAC,MAAA,UAAAC,CAAA,CAAAvmC,CAAA,EAA2D,OAAAumC,EAAAvmC,EAAA7M,MAAA,EAA+B,IAE1F+gB,EAAA,EACAjhB,EAAA,EAA0CA,EAAAuzC,EAAArzC,MAAA,CAAuBF,IAAA,CACjE,IAAA+M,EAAAwmC,CAAA,CAAAvzC,EAAA,CACAoK,EAAAE,GAAA,CAAAyC,EAAAkU,GACAA,GAAAlU,EAAA7M,MAAA,CAEA,OAAAkK,CACA,EsKMoFooC,EAAAxxC,MAAA,CAAAuxC,IACpFnoC,EAAA,CACA2J,cAAAA,EACAR,OAAAA,EACAC,iBAAAD,EAAAy/B,UAAA,CACAr1B,SAAA,SACA,EAGA,OAFA5J,EAAA,EACAy+B,EAAA,GACApoC,CACA,CACA,SAAAopC,IACAf,EAAA,IACAJ,EAAAoB,WAAA,EACA9mB,OAAA,QACA2lB,SAAAA,CACA,GACAG,EAAA,EAEA,CACA,OACAh/B,QAAA,GACA,IAAAC,SAAA,CACA,OAAA++B,IAAAA,CACA,EACA9+B,MAAA,SAAAxI,CAAA,CAAAnG,CAAA,EACAqtC,EAAAoB,WAAA,EACA9mB,OAAA,QACAiD,GAAA6iB,EACAtnC,KAAAA,EACAmnC,SAAAA,CACA,GACAI,EAAAxwC,IAAA,EACA0tB,GAAA6iB,EACAM,cAAA/tC,EACAmG,KAAAA,CACA,GACAsnC,GAAA,CACA,EACA5+B,OAAA,SAAA7O,CAAA,EACAwuC,IACAd,EAAAxyC,MAAA,EAKAwyC,EAAAlzC,OAAA,UAAAk0C,CAAA,EACA,OAAAA,EAAAX,aAAA,GAGAL,CAAA,CAAAA,EAAAxyC,MAAA,IAAA+yC,cAAA,YAAmG,OAAAjuC,EAAAkuC,IAAA,GARnGluC,EAAAkuC,IAUA,EACAp/B,WAAA,WACA0/B,IACA,IAAAx/B,EAAA0+B,EACAnwC,GAAA,UAAAmxC,CAAA,EAIA,OAFA,OAAAA,EAAAX,aAAA,CACA,OAAAW,EAAAT,cAAA,CACAS,EAAAvoC,IAAA,GAEA3D,IAAA,KACA,OAAmBnE,EAAM6vC,IAAA,CACzBl/B,YAAAA,CACA,EACA,EACAC,0BAAA,SAAA9I,CAAA,EAKA,OAAAA,EAAAjL,MAAA,EACA,EACAwS,KAAA,WACAigC,GACA,CACA,CACA,CC1GA,SAAAgB,GAAA9hC,CAAA,EACA,WAAA+hC,OAAA/hC,EAAAgiC,SAAA,EAAA13B,IAAA+1B,eAAA,KAAA1tC,KAAA,ytyBAAq2yB,GACr2yB,CACA,IAAA6lB,GAAA,CAAcnL,OAAA,GACP,SAAA40B,GAAAjiC,CAAA,CAAArO,CAAA,CAAAuwC,CAAA,CAAAC,CAAA,EAMP,OALA,SAAAA,GAA8CA,CAAAA,EAAAL,EAAA,EAC9C,IAAAtpB,GAAAnL,MAAA,EAEA+0B,SA4BOpiC,CAAA,CAAArO,CAAA,CAAAwwC,CAAA,EACP,SAAAA,GAA8CA,CAAAA,EAAAL,EAAA,EAC9C,IACA,IAAAtB,EAAA2B,EAAAniC,GACAqiC,EAAoCtiC,GAAgBC,EAAAwgC,EAAA,iBAAAnzC,CAAA,EACpDi1C,GAAAtiC,EAAArO,EAAAtE,EACA,GAASwT,IAAA,CACT0hC,EAAsCxiC,GAAgBC,EAAAwgC,EAAA,mBAAA70C,CAAA,EACtD,IA2BA62C,EA3BAlpC,EAAA3N,EAAA2N,IAAA,CACA,YAAAA,EAAA+L,IAAA,CACAi9B,GAAAtiC,EAAArO,EAAA2H,EAAAjM,KAAA,CAAAiM,EAAAmnC,QAAA,EAEA,gBAAAnnC,EAAA+L,IAAA,GAuBAm9B,EAtBAlpC,EAAAkpC,OAAA,CAuBA,IAAAhqB,GAAAnL,MAAA,EACAmL,CAAAA,GAAA,CAAkBnL,OAAA,EAAAmzB,OAAAhoB,GAAAgoB,MAAA,CAAA3/B,KAAA2X,GAAA3X,IAAA,CAAA2hC,QAAAA,CAAA,GAtBlB,GAAS3hC,IAAA,CACT2/B,EAAAoB,WAAA,EAA6B9mB,OAAA,SACrB5nB,GAAU,WAYlB,IAAAslB,GAAAnL,MAAA,GACQxf,EAAOR,KAAA,IAAA8B,MAAA,CAbkBwC,EAalB,uEACf6mB,GAAAiqB,8BAAA,CAAA90C,OAAA,UAAAwF,CAAA,EAA2E,OAAAA,GAAA,GAC3EqlB,GAAA,CAAkBnL,OAAA,GAfe,EAtD1B,KA2DPmL,GAAA,CAAkBnL,OAAA,EAAAmzB,OAAAA,EAAA3/B,KAJlB,WACAwhC,IACAE,GACA,EACkBE,+BAAA,GAClB,CACA,MAAAp1C,EAAA,CACAi1C,GAAAtiC,EAAArO,EAAAtE,EACA,CACA,EAvDA2S,EAAArO,EAAAwwC,GAEA3pB,GAAAnL,MAAA,EACA,OAEA,OADAmL,GAAAiqB,8BAAA,CAAApyC,IAAA,CAAA6xC,GACA1pB,GAAAgoB,MAAA,MACA,EACA,OAAAhoB,GAAAgoB,MAAA,CAEA,CA2DA,SAAA8B,GAAAtiC,CAAA,CAAArO,CAAA,CAAAtE,CAAA,CAAAozC,CAAA,EACA,GAAAjoB,IAAAA,GAAAnL,MAAA,EAAAmL,IAAAA,GAAAnL,MAAA,MA2BArJ,EAzBA,GADQnW,EAAOR,KAAA,IAAA8B,MAAA,CAAAwC,EAAA,kEAAAtE,GACfA,aAAA+K,OAAA/K,aAAAwX,OA0BYjV,CAAAA,EADZoU,EAzBA3W,EAAA2W,OAAA,CA0BoB,4BAEZpU,EAAQoU,EAAA,gCA5BhB,CACA,IAAA0+B,EAAA,OAEAA,EADA1iC,EAAAgiC,SAAA,CACA,mCAAA7yC,MAAA,CAAA6Q,EAAAgiC,SAAA,iDAGA,gDAEYn0C,EAAOR,KAAA,IAAA8B,MAAA,CAAAuzC,EAAA,oJACnB,MAEYlyB,GAAiBnjB,EAE7B,KAAAmrB,GAAAnL,MAAA,EACAmL,GAAAiqB,8BAAA,CAAA90C,OAAA,UAAAwF,CAAA,EAA+E,OAAAA,GAAA,GAE/EqlB,GAAA,CAAkBnL,OAAA,EAClB,MAEQmD,GAAiBnjB,EAAA,CACzBs1C,eAAAnqB,IAAAA,GAAAnL,MAAA,EAAAmL,GAAAgqB,OAAA,CACAI,UAAAnC,CACA,EAEA,CGjGO,IAAAoC,GAAiBC,S7HJjBC,CAAA,CAAAtzB,CAAA,CAAA9jB,CAAA,EACP,I/CFOq3C,EACPC,E+CmCAC,EAlCA5iC,EAAA3U,KAAA,IAAAA,EAAA,GAAgCA,EAAAw3C,EAAA7iC,EAAA8iC,mCAAA,CAAAA,EAAAD,KAAA,IAAAA,GAAAA,EAAAlB,EAAA3hC,EAAA2hC,kBAAA,CAAA1B,EAAAjgC,EAAAigC,oBAAA,CAChC8C,EAAA,GACA9zB,EAA+BrV,GAAoB,GACnDsV,EAA6BtV,GAAoB,GACjDopC,EAAA,WAAmD,EACnDC,EAAA,WAAqD,EACrDC,EAA8BlvC,GAC9BmvC,EAAA,WAAqD,EACrDC,EAAA,IAA6BzoC,GAC7B0oC,EAAA,SAAAn4C,CAAA,CAAAo4C,CAAA,EACA,SAAAA,GAA+BA,CAAAA,EAAOlnC,IAAY,EAClDgnC,EAAAxuC,GAAA,YAAyC,OAAAyuC,EAAAn4C,EAAAo4C,EAAA,EACzC,EACAC,EAAA,SAAAlwC,CAAA,CAAA8Q,CAAA,EACA,SAAAA,GAAsCA,CAAAA,EAAc7H,IAAS,EAC7D8mC,EAAAxuC,GAAA,YAAyC,OAAA2uC,EAAAlwC,EAAA8Q,EAAA,EACzC,EACAq/B,EAAA,SAAAhpB,CAAA,CAAAipB,CAAA,EACA,SAAAA,GAAwCA,CAAAA,EAAgBz0B,GAAkBC,EAAAC,EAAAC,EAAA,EAC1Ei0B,EAAAxuC,GAAA,YAAyC,OAAA4uC,EAAAhpB,EAAAipB,EAAA,EACzC,EACAC,EAAA,SAAAC,CAAA,CAAAF,CAAA,EACA,SAAAA,GAAwCA,CAAAA,EAAgBz0B,GAAkBC,EAAAC,EAAAC,EAAA,EAC1Ei0B,EAAAxuC,GAAA,YAAyC,OAAA8uC,EAAAC,EAAAF,EAAA,EACzC,EACAG,EAAA,WACAR,EAAAxuC,GAAA,YAAyC,OAAAgvC,GAAA,EACzC,EACAC,EAAA,WACAT,EAAAxuC,GAAA,YAAyC,OAAAivC,GAAA,EACzC,EACAC,EAAA,SAAAzzC,CAAA,CAAA6D,CAAA,EACAkvC,EAAAxuC,GAAA,YAAyC,OAAAkvC,EAAAzzC,EAAA6D,EAAA,EACzC,EA0DA,SAAA6vC,EAAA35B,CAAA,CAAA1K,CAAA,CAAAskC,CAAA,EACA,GAAA55B,EAAA65B,wBAAA,EACA,IAAAC,EAAAj1B,EAAA7U,UAAA,GAEA6U,CADAA,EAAmCvO,GAA0BhB,EAhG7D,MAgG6D,IAC7DrF,UAAA,CAA4C5E,GAAOwZ,EAAA7U,UAAA,GAAA8pC,IACnD,IAAAC,EAAAj1B,EAAA9U,UAAA,GAEA8U,CADAA,EAAiCxO,GAA0BhB,EAnG3D,MAmG2D,IAC3DrF,UAAA,CAA0C5E,GAAOyZ,EAAA9U,UAAA,GAAA+pC,GACjD,CACA,IAAAC,EAAA3B,EAAAr4B,EAAA1K,EAAAyP,EAAAF,EAAAC,EAAA80B,EAAApB,GAAA3C,EACA,SAAAE,CAAA,EAAoC,OAAAF,EAAAvgC,EAAAkjC,EAAAzC,EAAA,EACtBh/B,IACdgiC,EAAA,WACA,OAAAh0B,EAAAk1B,oBAAA,CAAA3kC,EAAA0kC,EAAA39B,OAAA,CAAA29B,EAAAE,YAAA,CACA,EACAV,EAAAz0B,EAAAqD,KAAA,CACAqxB,EAAA10B,EAAA5O,IAAA,CACAgjC,EAAAa,EAAAG,SAAA,CAAAf,EAAAY,EAAAI,SAAA,CAAAd,EAAAU,EAAAK,QAAA,CAAApB,EAAAe,EAAAM,SAAA,CAAAZ,EAAAM,EAAAO,wBAAA,CAAA3B,EAAAoB,EAAAQ,kBAAA,CAAA1B,EAAAkB,EAAAS,WAAA,CACA11B,EAAA21B,UAAA,CAAAV,EAAA1vB,SAAA,CAAAhV,EAAA0kC,EAAA39B,OAAA,CAAA29B,EAAAE,YAAA,CAAA1B,GACAQ,EAAAtoC,KAAA,EACA,CACA,IAAAypC,EAAoBt1C,EAAO,SAAAoE,CAAA,EAE3BkwC,EADA,iBAAAlwC,EAAAA,EAAA,CAAyEnI,KAAAmI,CAAA,EAEzE,GA2DA,O/ChLOqvC,E+CsH6B,CACpCzpB,KAAchqB,EAlFd,SAAAmb,CAAA,EACA,IAAAA,EAAA,CACY7c,EAAOR,KAAA,0BACnB,MACA,CAOA,GALAk2C,EAAA,WAAqD,OAAOztC,GAAS4U,EAAA,GAKrE04B,CAAAA,GAAmDvkC,IAAuB,GAG1E,IA8HA6L,EA9HA26B,EAAmC7lC,KAInC,GAHA6lC,GACA36B,CAAAA,EAsIelZ,EAAM,GAtIrBkZ,EAsIwB,CACxB46B,cAAA,uCACA35B,YAAA,QACA45B,kBAAA,GACA,EA1IA,EA4HA76B,EA1HAA,EA2HA,CAAA24B,IACA34B,EAAA86B,kBAAA,EACgB33C,EAAOR,KAAA,uCA1HvB,IAAA2S,EAA4BylC,SF1DrB/6B,CAAA,EAEP,IAAAA,EAAA46B,aAAA,EACQz3C,EAAOR,KAAA,qEACf,MACA,CACA,GAAAqd,KAAAlY,IAAAkY,EAAAg7B,uBAAA,EACA,CAAS7pC,GAAY6O,EAAAg7B,uBAAA,GACb73C,EAAOR,KAAA,oEACf,MACA,CACA,GAAAqd,KAAAlY,IAAAkY,EAAA0D,eAAA,GAA4DvS,GAAY6O,EAAA0D,eAAA,GAChEvgB,EAAOR,KAAA,2DACf,MACA,CACA,GAAAqd,KAAAlY,IAAAkY,EAAAkS,oBAAA,GAAA7tB,MAAA0F,OAAA,CAAAiW,EAAAkS,oBAAA,GACQ/uB,EAAOR,KAAA,8CACf,MACA,CACA,IAlBA1B,EAAA2U,EAkBA4N,EAAAy3B,SAiCAj7B,CAAA,EACA,GAAAA,KAAAlY,IAAAkY,EAAAwD,kBAAA,EACA,IAAAnf,MAAA0F,OAAA,CAAAiW,EAAAwD,kBAAA,GACYrgB,EAAOR,KAAA,4CACnB,MACA,CACA,GAAAqd,IAAAA,EAAAwD,kBAAA,CAAA7f,MAAA,EAAAqc,KAAAlY,IAAAkY,EAAAk7B,OAAA,EACY/3C,EAAOR,KAAA,2DACnB,MACA,CAEA,IAAAw4C,EAAA,GAYA,OAXAn7B,EAAAwD,kBAAA,CAAAvgB,OAAA,UAAAm4C,CAAA,EACgB/4B,GAAa+4B,GAC7BD,EAAAx1C,IAAA,EAAwCiI,MAAAwtC,EAAA/3B,gBAAAsB,EAAA,GDlE5B9a,WAAAA,GCoEwBuxC,IDnE5B/4B,GAAag5B,EAAAztC,KAAA,GACrBvJ,MAAA0F,OAAA,CAAAsxC,EAAAh4B,eAAA,ECmEA83B,EAAAx1C,IAAA,CAAAy1C,GAGgBj4C,EAAOT,IAAA,0GAAA04C,EAEvB,GACAD,CACA,CACA,UA1DAn7B,GACA,GAAAwD,GAGA,IAAA83B,EAA4BC,SHXrBv7B,CAAA,MACP/e,EAAA2U,EAAA6iC,EFbA+C,EAAAN,EAAApD,EAAA2D,EACAp6B,ECEAq6B,EACAC,ERgCAC,EGnBAC,EMHA,IAAA77B,GAAA,CAAAA,EAAAiB,WAAA,EACQ9d,EAAOR,KAAA,+DACf,MACA,CACA,GAAAqd,KAAAlY,IAAAkY,EAAA66B,iBAAA,GAA8D1pC,GAAY6O,EAAA66B,iBAAA,GAClE13C,EAAOR,KAAA,6DACf,MACA,CACA,GAAAqd,KAAAlY,IAAAkY,EAAA87B,mBAAA,GAAgE3qC,GAAY6O,EAAA87B,mBAAA,GACpE34C,EAAOR,KAAA,+DACf,MACA,CACA,GAAAqd,KAAAlY,IAAAkY,EAAA+7B,gCAAA,EACA,CAAS5qC,GAAY6O,EAAA+7B,gCAAA,GACb54C,EAAOR,KAAA,6EACf,MACA,CAOA,OALA0B,MAAA0F,OAAA,CAAAiW,EAAAg8B,0BAAA,GACQC,ShBdDC,CAAA,EACPA,EAAAj5C,OAAA,UAAAk5C,CAAA,EACA7gC,GAAA9Q,GAAA,CAAA2xC,EACA,EACA,EgBU+Bn8B,EAAAg8B,0BAAA,CAAAvtC,MAAA,UAAA0tC,CAAA,EAC/B,OAAmBzgC,GAAe/a,EAAmBw7C,EACrD,IAEWr1C,EAAM,CACjB6nB,WAAA3O,EAAA2O,UAAA,EAAoDtrB,EAAe2c,EAAA2O,UAAA,+BACnEktB,wBAAA,GNtBAA,EHZWO,CAAAA,ShBwBJnzC,CAAA,EACP,GAAA2K,KAAA9L,IAAA8L,SAAAC,MAAA,EAAAD,OAAAA,SAAAC,MAAA,CACA,SAEA,IAGA,IAAAwoC,EAAA,kBAAA53C,MAAA,CAAsD4N,MACtDiqC,EAAA,OACAppC,GAAAmpC,EAAAC,EFvCO,IEuCsDrzC,GAC7D,IAAAszC,EAAAzoC,GAAAuoC,KAAAC,EAEA,OADApoC,GAAAmoC,EAAApzC,GACAszC,CACA,CACA,MAAA55C,EAAA,CAEA,OADQQ,EAAOR,KAAA,CAAAA,GACf,EACA,CACA,GgBVAi5C,CADAA,EAAA,IACAjoC,MAAA,GAAAqM,EAAAw8B,sBAAA,IAAAx8B,EAAAy8B,yBAAA,CACAb,EAAAnoC,SAAA,GAAAuM,EAAAy8B,yBAAA,CACAz8B,EAAA08B,4BAAA,EACAd,CAAAA,EAAAloC,MAAA,CAA+BipC,WhBe/B,GAAAv7C,KAAA0G,IAAA1G,EAAA,CAOA,IAJA,IAAAi7C,EAAA,gBAAA53C,MAAA,CAAoD4N,MAEpDuqC,EAAAr2C,OAAAyO,QAAA,CAAAC,QAAA,CAAAiD,KAAA,MACA2kC,EAAAD,EAAA/7B,GAAA,GACA+7B,EAAAj5C,MAAA,GAAAmQ,GAAAuoC,IAEAnpC,GAAAmpC,EALA,OF7DO,IEkE0D,CAAI3oC,OADrEmpC,EAAA,GAAAp4C,MAAA,CAAAm4C,EAAA/7B,GAAA,QAAApc,MAAA,CAAAo4C,EACqE,GAErE3oC,GAAAmoC,EAAA,CAAuC3oC,OAAAmpC,CAAA,GACvCz7C,EAAAy7C,CACA,CACA,OAAAz7C,CACA,GgB9B6C,EAE7Cw6C,IArCkG9zC,KAAAA,EAAnE,CAAoB6S,KAAA,SAAAihC,cAqCnDA,CArCmD,KGanD57B,EAAA88B,2BAAA,EACAjB,CAAAA,EAAmCkB,WFjBnC,IACA,IAAA1pB,EAAiBhhB,KACjB2qC,EAAA,GAAAv4C,MAAA,CAJA,aAIAA,MAAA,CAAA4uB,GACA1c,aAAAC,OAAA,CAAAomC,EAAA3pB,GACA,IAAA4pB,EAAAtmC,aAAAG,OAAA,CAAAkmC,GAEA,OADArmC,aAAAsG,UAAA,CAAA+/B,GACA3pB,IAAA4pB,EAAA,CAAsCtiC,KAAA,gBAAuB7S,KAAAA,CAC7D,CACA,MAAA9C,EAAA,CACA,MACA,CACA,GEM6D,EAE7D62C,GMmBAhB,kBAAA,OAAA55C,CAAAA,EAAA+e,EAAA66B,iBAAA,GAAA55C,KAAA,IAAAA,EAAAA,EAAA,IACA66C,oBAAA,OAAAlmC,CAAAA,EAAAoK,EAAA87B,mBAAA,GAAAlmC,KAAA,IAAAA,EAAAA,EAAA,GACAmmC,iCAAA,OAAAtD,CAAAA,EAAAz4B,EAAA+7B,gCAAA,GAAAtD,KAAA,IAAAA,EAAAA,EAAA,EACAyC,QAAAl7B,EAAAk7B,OAAA,CACAJ,mBAAA,EAAA96B,EAAA86B,kBAAA,CACA5kC,qBAAA,EAAA8J,EAAA9J,oBAAA,CAKAgnC,gBAAA,MACAC,0BAAA,IACAC,0BAAA,GAKAC,aAAA,IAIAC,mBAAA,GACA1gB,kBAAA,MACA,GF/DA4e,EAAAlmC,EAAAkmC,GAAA,CAAAN,EAAA5lC,EAAA4lC,OAAA,CAAApD,EAAAxiC,EAAAwiC,OAAA,CAAA2D,EAAAnmC,EAAAmmC,UAAA,CACAp6B,EAAA,GACAm6B,GACAn6B,EAAA1b,IAAA,CAAAic,GAAA,MAAA45B,IAEAN,GACA75B,EAAA1b,IAAA,CAAAic,GAAA,UAAAs5B,IAEApD,GACAz2B,EAAA1b,IAAA,CAAAic,GAAA,UAAAk2B,IAEA2D,GACAp6B,EAAA1b,IAAA,CAAAic,GAAA,aAAA65B,ICRAE,EAA4B71C,EAD5B41C,EAUA,CACA6B,oBAA6Bx9B,GCiDOC,EDjDc,ODAlDqB,GCCAm8B,mBAA4Bz9B,GCgDQC,EDhDa,MDDjDqB,GCEAo8B,6BAAsC19B,GC+CFC,ED/CuB,SDF3DqB,ECGA,GAbwCrb,GAAA,UAAA03C,CAAA,EAA4C,OAAAA,EAAAh8B,SAAA,GAEzE5a,EAAM,CACjByhB,YAAA,SAAAzP,CAAA,EAAsC,OAAA6iC,EAAAxmC,IAAA,UAAAwoC,CAAA,EAA0D,OAAA7kC,IAAAA,EAAAzT,OAAA,CAAAs4C,EAAA,EAA2C,EAC3IC,QAHAC,SAcA79B,CAAA,CAAA27B,CAAA,CAAAt6B,CAAA,EACA,GAAArB,EAAA49B,OAAA,EAGA,IAAAE,EAA+Bh3C,EAAM,GAAGkZ,EAAA,CACxCS,KAAcX,GACdmB,YAAAjB,EAAA49B,OAAA,CAAA38B,WAAA,GAEA88B,EAAA,CACAR,oBAA6Bx9B,GAAqB+9B,EAAA,OAAAz8B,GAClDm8B,mBAA4Bz9B,GAAqB+9B,EAAA,MAAAz8B,EACjD,EAEA,OADAs6B,EAAAh2C,IAAA,CAAA/B,KAAA,CAAA+3C,EAAoD71C,EAAYi4C,GAAA/3C,GAAA,UAAA03C,CAAA,EAAmD,OAAAA,EAAAh8B,SAAA,IACxG5a,EAAM,CAAG8zC,cAAA56B,EAAA49B,OAAA,CAAAhD,aAAA,EAAwDmD,GAC5E,EC8BoC/9B,ED1DpC27B,EDSAt6B,GCLAZ,KAAAT,EAAAS,IAAA,EAAwCX,EACxC,EAAK47B,ICsDL,EGzCyD17B,GACzD,GAAAs7B,EAGA,OAAWx0C,EAAM,CACjB8zC,cAAA56B,EAAA46B,aAAA,CACA9C,QAAA93B,EAAA83B,OAAA,CACAviB,oBAAAvV,EAAAuV,mBAAA,CACAylB,wBAAA,OAAA/5C,CAAAA,EAAA+e,EAAAg7B,uBAAA,GAAA/5C,KAAA,IAAAA,EAAAA,EAAA,EACA+8C,oCAAA,EAAAh+B,EAAAg+B,mCAAA,CACAt6B,gBAAA1D,EAAA0D,eAAA,CACAF,mBAAAA,EACA0O,qBAAA,OAAAtc,CAAAA,EAAAoK,EAAAkS,oBAAA,GAAAtc,KAAA,IAAAA,EAAAA,EAAA,GACA0hC,UAAAt3B,EAAAs3B,SAAA,CACA2G,uBAAA,EAAAj+B,EAAAi+B,sBAAA,CACAC,sBAAA,EAAAl+B,EAAAk+B,qBAAA,CACAC,mBAAA,EAAAn+B,EAAAm+B,kBAAA,CACA7kB,eAAA,EAAAtZ,EAAAsZ,cAAA,CACA8kB,eAAA,EAAAp+B,EAAAo+B,cAAA,CACAC,UAAAr+B,EAAAq+B,SAAA,CACApZ,oBAA6BvpB,GAAeuG,GAAmBjC,EAAAilB,mBAAA,EAC/DjlB,EAAAilB,mBAAA,CACchjB,GAAmBE,IAAA,CACjCm8B,gCAAA,CACA,EAAKhD,GACL,EEU4Dt7B,GAC5D,GAAA1K,GAGA,IAAAqlC,GAAA,CAAArlC,EAAAumC,wBAAA,EACY14C,EAAOT,IAAA,iEACnB,MACA,CACA,GAAA4S,CAAAA,EAAA2oC,sBAAA,EAAAtD,IAAApD,GACAiB,CAAAA,EAAAjB,EAAAjiC,EAAA,cAIY1L,GAAI,GAMhB,GAAA0L,EAAA6oC,kBAAA,CAGA,CAIA,IAAAI,EAAAvF,EACAA,EAAA,IAAiCzoC,GACjC4oC,EAAA,SAAAlwC,CAAA,EACA0wC,EAAA35B,EAAA1K,EAAArM,EACA,EACAs1C,EAAA7tC,KAAA,EACA,MAZAipC,EAAA35B,EAAA1K,GAaAqjC,EAAA,MACA,GA4BA6F,yBAAkC35C,EAAO,SAAAoB,CAAA,CAAA6D,CAAA,EAAyB,OAAA+a,EAAAzU,kBAAA,CAAAnK,EAAA6D,EAAA,GAClE20C,4BAAqC55C,EAAO,SAAAoB,CAAA,EAAkB,OAAA4e,EAAAvU,qBAAA,CAAArK,EAAA,GAC9Dy4C,iBAA0B75C,EAAO,WAAe,OAAAggB,EAAA7U,UAAA,KAChD2uC,iBAA0B95C,EAAO,SAAAE,CAAA,EAAsB,OAAA8f,EAAA5U,UAAA,CAAAlL,EAAA,GACvD65C,mBAA4B/5C,EAAO,WAAe,OAAAggB,EAAA1U,YAAA,KAClDqqC,mBAA4B31C,EAAO,SAAA0iB,CAAA,EAAwB,OAAAqxB,EAAArxB,EAAA,GAC3Ds3B,qBAA8Bh6C,EAAO,WAAe,OAAAg0C,GAAA,GACpDuB,UAAmBv1C,EAAO,SAAA/D,CAAA,CAAAiE,CAAA,EAC1Bq0C,EAAA,CACAt4C,KAAsBuL,GAAQvL,GAC9BiE,QAAyBsH,GAAQtH,GACjCgV,YAA6B7H,KAC7ByI,KAAA,QACA,EACA,GACA0/B,SAAA,SAAA13C,CAAA,CAAAoC,CAAA,EACA,IAAA+U,EAAgCmB,KACpBnW,EAAa,WACzBw0C,EAAA,CACA32C,MAAAA,EACAmX,cAAAA,EACA/U,QAA6BsH,GAAQtH,GACrCgV,YAAiC7H,IACjC,EACA,EACA,EACAooC,UAAmBz1C,EAAO,SAAA/D,CAAA,CAAAo4C,CAAA,EAC1BD,EAA8B5sC,GAAQvL,GAAAo4C,EACtC,GACA4F,QAAiBj6C,EAAO,SAAAuW,CAAA,MtBjIxB2jC,GAAAA,EAAkBl1C,WAAAA,GsBkIOuR,KtBhIjBjY,EAAOR,KAAA,qBsBgIUyY,GtB9HzB2jC,GsB+HAj6B,EAAA7U,UAAA,CAA8CkL,GAAYC,GAE1D,GACA4jC,QAAiBn6C,EAAO,WAAe,OAAAigB,EAAA9U,UAAA,KACvCivC,gBAAyBp6C,EAAO,SAAAoB,CAAA,CAAAoK,CAAA,EAEhC,IADApP,EACAi+C,EAAoC/jC,GAAYla,CAAAA,CAAAA,EAAA,GAAS,CAAAgF,EAAA,CAAAoK,EAAApP,CAAA,GAAAgF,EAAA,CACzD6e,EAAA1U,kBAAA,CAAAnK,EAAAi5C,EACA,GACAC,mBAA4Bt6C,EAAO,SAAAoB,CAAA,EAAkB,OAAA6e,EAAAxU,qBAAA,CAAArK,EAAA,GACrDm5C,UAAmBv6C,EAAO,WAAe,OAAAigB,EAAA3U,YAAA,KACzCgqC,UAAAA,EACAM,YAAqB51C,EAAO,WAC5Bi0C,GACA,GACAuG,4BAAqCx6C,EAAO,WAAe,OAAA20C,GAAA,GAC3D8F,2BAAoCz6C,EAAO,WAAe,OAAA40C,GAAA,GAI1Dc,yBAAkC11C,EAAO,SAAAoB,CAAA,CAAA6D,CAAA,EACzC4vC,EAA6CrtC,GAAQpG,GAAOoG,GAAQvC,GACpE,GACAmwC,qBAA8Bp1C,EAAO,WAAe,OAAAk0C,GAAA,EACpD,E/CnKAh2C,OAAAsE,cAAA,CAXAkxC,EAAoBzxC,EAAM,CAC1BgxC,QAAA,QAIAyH,QAAA,SAAA92C,CAAA,EACAA,GACA,CACA,EAAK6vC,GAGL,aACAhxC,IAAA,WACA,OAAmB3C,CACnB,EACA66C,WAAA,EACA,GACAjH,C+C+KA,E8E5KO,SAAAv4B,CAAA,CAAA1K,CAAA,CAAAyP,CAAA,CAAAF,CAAA,CAAAC,CAAA,CAAA80B,CAAA,CAAA6F,CAAA,EACP,IA6EOn1B,EAAAhV,EAAAN,EAAAiO,EAAAy8B,EAAApuB,EAAA1M,EAAA0Z,EzDnGPqhB,EwDDAC,ECqGA1F,EACA2F,EACA9nB,EACA92B,EAAkCm5C,EAAA0F,EAClCC,EvC1GOC,EDSPC,EDgBOx3C,EGkBPwG,EArBAA,EhBVAA,EnBXAwX,EACAxX,EPkGAixC,GAfAC,GKwBO7qC,G2D5GAN,GpBEPgrC,GLEAI,GGKOC,GACPvxC,GAIAwxC,GbXAC,GVDO3F,G6DqBP4F,GAAA,GACAl2B,GAAA,I3DzBwByB,G2D0BxBzB,GAAAlc,SAAA,aAAAyG,CAAA,EAA4F,OAAOqQ,GAAe,MAAArQ,EAAA,GAClH,IAAA4rC,GAAAC,SAkEAprC,CAAA,EACA,I3EtEOqrC,EACPC,EACA3xC,EAKA4xC,E2E+DAJ,G3EtEOE,E2EsE2B,kB3EpElC1xC,EAAA,IAAyBhB,GACzBsX,GAAAG,gBAAA,CACA,CAASxgB,EAAQogB,GAAAhQ,EAAAmL,IAAA,GAAkD9P,GAAW2E,EAAAwmC,mBAAA,EAC9Ev2B,GAAAI,6BAAA,CACAJ,GAAAG,gBAAA,EAAmD/U,GAAW2E,EAAAymC,gCAAA,EAC9D8E,EAsCA,CACAC,cAAAv6C,UAAAA,OAAAyO,QAAA,CAAA6J,QAAA,CACAkiC,UAAA,sBAAAr5C,IACA,EAxCAlG,EAAA,SAAAw/C,CAAA,EACA,GAAAz7B,GAAAG,gBAAA,EACA,IAAAu7B,EAWe51C,GAAO,CACtBsP,KAAA,YACAvH,KAAkBpB,KAClBkpC,QAdAyF,EAeA7I,QAAA,QACA7wC,OAAA,UACAqpB,IAAA,CACA4wB,eAAA,CACA,EACAT,UAAuBp1C,GApBvB21C,EAoB8B,CAC9BG,YArBAN,CAsBA,GACAO,sBAAmC97C,ExBxBnCgW,GwByBA,EAASslC,KAAA94C,IAAA84C,EAAAA,IAAA,IAvBT3xC,EAAAN,MAAA,CAAAsyC,GACY/7B,GAAe,YAAA+7B,EAC3B,CACA,EpD1BAjgD,EoD2B+B8kB,GAC3Bhf,EAAMye,GAAA,CACVC,iBAAAlQ,EAAA8nC,yBAAA,CACA33B,eAAA,CACA,GAiBA,CACA47B,mBAAA,SAAAC,CAAA,EACAV,EAAAU,CACA,EACAryC,WAAAA,EACAsyC,QAAAh8B,GAAAG,gBAAA,G2E8BA,GAAQ5Q,KAAiB,CACzB,IAAA0sC,EAAuBltC,KACvBmsC,EAAAxxC,UAAA,CAAAb,SAAA,UAAAyG,CAAA,EAA0D,OAAA2sC,EAAA7sC,IAAA,sBAAAE,EAAA,EAC1D,CACA,OAAA4rC,CACA,EAzEAnrC,GACAmrC,GAAAY,kBAAA,YACA,IAAApgD,EAAA2U,EACA,OACA6rC,YAAA,CACApuB,GAAA/d,EAAAslC,aAAA,EAEAv+B,QAAA,CACAgX,GAAA,OAAApyB,CAAAA,EAAAob,GAAA+G,kBAAA,KAAAniB,KAAA,IAAAA,EAAA,OAAAA,EAAAoyB,EAAA,EAEAqF,KAAA,CACArF,GAAA,OAAAzd,CAAAA,EAAAskC,GAAAwH,QAAA,KAAA9rC,KAAA,IAAAA,EAAA,OAAAA,EAAAyd,EAAA,EAEAjD,OAAA,CACAiD,GAAAysB,GAAA6B,YAAA,EACA,CACA,CACA,GACA,IAAArjB,GAAA,SAAA37B,CAAA,EACA2nB,GAAA3b,MAAA,KAA4EhM,MAAAA,CAAA,GACpEijB,GAAiB,8BAAiC,gBAAAjjB,EAAA2W,OAAA,EAC1D,EACAsoC,GAA8BC,SJvCvBv3B,CAAA,CAAA7a,CAAA,EAEP,GADA,SAAAA,GAA4CA,CAAAA,EAAwB7H,EAAA,EACpE,CAAS2T,GAA6B5a,EAAmBmhD,aAAA,EACzD,OACAC,2BAAA,WAAsD,EACtDC,yBAAA,WAAoD,UACpDzH,yBAAsC3wC,GACtCuM,KAAkBvM,EAClB,EAEA,IAAAg4C,EAAA,IAAkCx1B,G7FpB3B,O6FqBP1c,EAAA,EACAC,EAAA,GACA2a,EAAAlc,SAAA,YAAAnN,CAAA,EACA,IAAAghD,EAAAhhD,EAAAghD,SAAA,CACAL,EAAAh1B,WAAA,CAAAq1B,EAAA3wC,QAAA,CACA,GACAgZ,EAAAlc,SAAA,YAAAnN,CAAA,EACA,IAAA8Y,EAAA9Y,EAAA8Y,WAAA,CACA6nC,EAAAp3C,GAAA,IAAkCuP,EAAAzI,QAAA,EAClC5B,EAAA,CACA,GAGA,IAAAzO,EAAa8H,GAAQ,SAAAhE,CAAA,EACrB2K,EAAAD,EAAgDjE,GAAazG,IAC7D4K,GACAA,CAAAA,EAA4BP,GAA8BM,EAAA,GAE1D,EAtC6C,KAsCJG,EAAA5O,EAAAwI,SAAA,CACzC,OACAs4C,2BAAA,SAAAx6B,CAAA,EAA2D,OAAAq6B,EAAAh8C,IAAA,CAAA2hB,EAAA,EAC3Dy6B,yBAAA,kBAEA,EADAp8C,IAAA,GAIA8J,EAFA,CAGA,EACA6qC,yBAAA,SAAAt0C,CAAA,CAAA6D,CAAA,EACA,IAAAo4C,EAAAN,EAAAh8C,IAAA,GACAs8C,IACAA,CAAA,CAAAj8C,EAAA,CAAA6D,EACA+F,EAAAqyC,GAEA,EACA/rC,KAjByClV,EAAA0I,MAAA,CAmBzC,EITsD2gB,IACtD63B,G1EvCAlzC,GAAA,IAAyBhB,GAAU,WACnC,IAAAm0C,EAA8B7mC,GAA6B5a,EAAmB0lB,QAAA,EAC9Eg8B,EAA4B3sC,G0EqCyBJ,E1ErCR/O,OAAA,CAAyB7F,EAAS4hD,iBAAA,CAAoB5hD,EAAS6hD,MAAA,CAAS7hD,EAAS8hD,SAAA,WAAA3tC,CAAA,EAC9HA,EAAA8F,IAAA,GAA+Bja,EAAS8hD,SAAA,EAAAJ,EAIxCnzC,GAAAN,MAAA,EAAoCwuB,OAAAjX,GAAAG,QAAA,GAEpCxR,EAAA8F,IAAA,GAAoCja,EAAS4hD,iBAAA,EAAA1uC,WAAAA,SAAAiuB,eAAA,CAK7C5yB,GAAAN,MAAA,EAAoCwuB,OAAAjX,GAAAC,MAAA,GAEpCtR,EAAA8F,IAAA,GAAoCja,EAAS6hD,MAAA,EAK7CtzC,GAAAN,MAAA,EAAoCwuB,OAAAjX,GAAAI,MAAA,EAEpC,EAAS,CAAIxQ,QAAA,KAAeK,IAAA,CAC5BssC,EAAuC74C,GAMvC,OALAw4C,GACAK,CAAAA,EAAuCptC,G0EacC,E1EbE/O,OAAwB7F,EAASgiD,aAAA,YACxFzzC,GAAAN,MAAA,EAAoCwuB,OAAAjX,GAAAE,SAAA,EACpC,GAAajQ,IAAA,EAEb,WACAksC,IACAI,GACA,CACA,G0EMAE,GAAAR,GAAA/zC,SAAA,UAAAyG,CAAA,EACAyV,GAAA3b,MAAA,GAAAkG,EACA,GACA2rC,GAAA76C,IAAA,YAAoC,OAAAg9C,GAAAn0C,WAAA,KACpC,IAAA6N,GAAA,MdzBAA,GAAA,CACAgX,GAAA,uCACAuvB,qBAAA,EACA,EACA,CACAx/B,mBAAA,WAA0C,OAAA/G,EAAA,EAC1CC,OAAgB1S,GAChBi5C,iBAAA,IAA8B50C,EAC9B,IAjCAgV,CAHAA,GAAyB6/B,SDMlBxtC,CAAA,CAAAiB,CAAA,CAAAwsC,CAAA,EAEP,IA+BAC,EACA7sC,EAGA8sC,EACAC,EAKA/sC,EAEAgtC,EA3CAhlC,EAAuBilC,S1EqBhBvH,CAAA,CAAAtlC,CAAA,CAAAwsC,CAAA,EACP,IA8EA1mC,EHrGOu/B,EACPyH,EGsBAC,EAAA,IAA8Br1C,GAC9B40C,EAAA,IAA+B50C,GAC/BoP,EAAAw+B,WAAAA,EAAAlhC,IAAA,EHzBOihC,EG0BqBC,EAAAD,aAAA,CHfxB2H,SDRGC,CAAA,EAEP,IADwBzvC,GAAcmI,IACtC,CACA,IAAAunC,EAA2B1vC,GAbpB,OAcP2vC,EAAyB3vC,GAblB,SAcP4vC,EAA0B5vC,GAbnB,SAcPsI,EAAA,GACAonC,GACApnC,CAAAA,EAAAgX,EAAA,CAAAowB,CAAA,EAEAE,GAAA,SAAA97C,IAAA,CAAA87C,IACAtnC,CAAAA,EAhBO,IAgBP,CAAAsnC,CAAA,EAEAD,GAAA,UAAA77C,IAAA,CAAA67C,IACArnC,CAAAA,EApBO,GAoBP,CAAAqnC,CAAA,EDpBW/nC,GCsByBU,KACxBD,GAAkBC,GAC9BmnC,EAAA9lC,cAAA,CAAArB,GAEA,CACA,ECvBAgnC,EAAA,CAKA7lC,cJZA5B,IAAAA,KIaA8B,eAQA,SAAArB,CAAA,EACQnJ,GAAUgJ,GAAmBK,GAAeF,GLxB7C,IKePu/B,EAUA,EATAn+B,gBAAAb,GACAe,aAeA,WACQzJ,GAAagI,GAhBrB0/B,EAiBA,CAhBA,GAEAyH,GCJA,CACA7lC,cAAA,GACAE,eAAAb,GACAY,gBAAAV,GACAY,aAAAX,EACA,EEeAW,EAAAN,EAAAM,YAAA,CAAAF,EAAAJ,EAAAI,eAAA,CACAmmC,EAAgC/6C,GA4BhC,WACQsU,GAA6B,CACrCc,QAAA,SAAAnB,CAAA,EAA+C,SAAAA,GAA4ChV,KAAAA,EAA5C,EAA4C,EAC3FoW,MAAA2lC,CACA,EAASxmC,EACT,ErBvEO,KqBuCPymC,EAwEA,EADAznC,EAAAoB,KAEApB,EAEA,GA1CA,SAAAwnC,EAAA/mC,CAAA,MA0BAA,EAdA,OAXAinC,EAAAjnC,IACAA,CAAAA,EAAA,IAEAknC,OAsBAlnC,EArBAA,EAsBAgnC,EAAAzwB,EAAA,GAAAvW,EAAAuW,EAAA,EAAAywB,E2EnG0B,G3EmG1B,GAAAhnC,E2EnG0B,G3EmG1B,GAGAgnC,EAAA,GACAjB,EAAAl0C,MAAA,IAtBAm1C,EAAAhnC,GAGAA,CACA,CAUA,SAAAknC,IACA,OAAAF,KAAAh8C,IAAAg8C,CAAA,CAAAvtC,EAAA,CAoBA,SAAAwtC,EAAAjnC,CAAA,EAGA,OAAAA,KAAAhV,IAAAgV,EAAAmnC,OAAA,EAAuDxyC,KAAOiY,OAAA5M,EAAAmnC,OAAA,ERvHvD,KQuH2F,GAClGnnC,CAAAA,KAAAhV,IAAAgV,EAAAR,MAAA,EAAkD7K,KAAOiY,OAAA5M,EAAAR,MAAA,EACzD,CACA,OACA0mC,qBAA8Bj6C,GAnF9B,WACA,IAAAm7C,EACQ/mC,GAA6B,CACrCc,QAAA,SAAAnB,CAAA,EACA,IA2CA7b,EAAAkjD,EAAAD,EA3CAE,EAAAP,EAAA/mC,GAEA,OAyCAqnC,EAAAljD,CAAAA,EAAA8hD,EAAAjmC,CAAA,CAAAvG,EAAA,GAAA4tC,YAAA,CAAAD,EAAAjjD,EAAAijD,SAAA,CACApnC,CAAA,CAAAvG,EAAA,CAAA4tC,EACAD,GAAA,CAAApnC,EAAAuW,EAAA,GACAvW,EAAAuW,EAAA,CAA8BhhB,KAC9ByK,EAAAmnC,OAAA,CAAAhsC,OAA0CxG,OA9C1CyyC,EAgDAA,EA/CAE,CACA,EACAlmC,MAAA,SAAApB,CAAA,EACAonC,GAAA,CAAAF,MAyDAF,EAxDAhnC,EAyDAwmC,EAAA30C,MAAA,IAvDAm1C,EAAAhnC,CACA,CACA,EAASO,EACT,ErBvDO,KqB2H+B5T,SAAA,CACtCw5C,cApEA,WACQ9lC,GAA6B,CACrCc,QAAA,SAAAnB,CAAA,EAA+C,OAAAknC,IAAAH,EAAA/mC,GAAAhV,KAAAA,CAAA,CAC/C,EAASuV,EACT,EAiEAgnC,WAAA,WAAkC,OAAAP,CAAA,EAClCR,gBAAAA,EACAT,iBAAAA,EACAvmC,OAAA,WACAqB,IACAkmC,EAAA,GACA,EACA1tC,KAAA,WACYrN,GAAa86C,EACzB,CACA,CACA,E0E9HwCtuC,EAAAumC,wBAAA,CCVd,MDUckH,GACxCzmB,GAAA32B,IAAA,YAAqC,OAAAwY,EAAAhI,IAAA,KACrC,IAAAmuC,EAAA,IAAoCl4B,GlFZ7B,OkFwBP,SAAAm4B,IACA,OACAlxB,GAAAlV,EAAAkmC,UAAA,GAAAhxB,EAAA,CACA8wB,aAAAhmC,EAAAkmC,UAAA,GC3B0B,GD2B1B,CAEA,CACA,OAjBA/nB,GAAA32B,IAAA,YAAqC,OAAA2+C,EAAAnuC,IAAA,KACrCgI,EAAAmlC,eAAA,CAAAl1C,SAAA,YACAk2C,EAAA95C,GAAA,CAAA+5C,IAAyDtyC,KACzD,GACAkM,EAAA0kC,gBAAA,CAAAz0C,SAAA,YACAk2C,EAAA13B,WAAA,CAA0C3a,KAC1C,GACAkM,EAAA6kC,oBAAA,GACAsB,EAAA95C,GAAA,CAAA+5C,IAAqDpyC,KAAYb,QAAA,EAoBjE0xC,EAnBA,WAA+C,OAAA7kC,EAAA6kC,oBAAA,IAoB/C7sC,EAAeT,GApBfJ,EAoBgC/O,OAAA,CAAyB7F,EAAS4sC,KAAA,CAAQ5sC,EAASitC,WAAA,CAAcjtC,EAAS8jD,QAAA,CAAW9jD,EAAS+jD,MAAA,EAAAzB,EAAA,CAAkCltC,QAAA,GAAAC,QAAA,KAA8BI,IAAA,CAC9LmmB,GAAA32B,IAAA,CAAAwQ,GAEA8sC,EAtBA,WAAiD,OAAA9kC,EAAA8kC,aAAA,IAuBjDC,EAAA,WACA,YAAAtvC,SAAAiuB,eAAA,EACAohB,GAEA,EACA9sC,EAAed,GA5BfC,EA4B+B1B,SAA0BlT,EAAS4hD,iBAAA,CAAAY,GAAA/sC,IAAA,CAClEmmB,GAAA32B,IAAA,CAAAwQ,GACAgtC,EAAkCt6C,GAAWq6C,E/FpDtC,K+FqDP5mB,GAAA32B,IAAA,YACQmD,GAAaq6C,EACrB,GA1BA,CACAuB,kBAAA,SAAAn9B,CAAA,EAAkD,OAAA+8B,EAAA1+C,IAAA,CAAA2hB,EAAA,EAClD+7B,gBAAAnlC,EAAAmlC,eAAA,CACAT,iBAAA1kC,EAAA0kC,gBAAA,CACAvmC,OAAA6B,EAAA7B,MAAA,CAEA,EemB+DhH,EdvDrC,EAEiD,SAAAqvC,CAAA,MAuC3ER,EAtCA,MAmDA,CACAA,YAAA,CAZAA,EAiBAA,MAzDAQ,GA0DAR,MA1DAQ,GA2DAR,MA3DAQ,EAAAA,EA0Cch0C,GAAW2E,EAAAulC,iBAAA,EAGXlqC,GAAW2E,EAAA0lC,uBAAA,EAIzB,IAHA,IAHA,IAUAkJ,UAAA3nB,GAAA4nB,EACA,CArDA,IACAtB,gBAAA,CAAAz0C,SAAA,YACAkc,GAAA3b,MAAA,GACA,GACAsU,GAAAqgC,eAAA,CAAAl1C,SAAA,YACAkc,GAAA3b,MAAA,GACA,GACA,CACAyU,mBAAA,SAAAmE,CAAA,EACA,IAAAlL,EAAA4G,GAAAyhC,iBAAA,CAAAn9B,GACA,MAAAgV,GAAAlgB,EAAA8nC,YAAA,EAGA,OACA9wB,GAAAhX,EAAAgX,EAAA,CACAuvB,qBAAAvmC,MAAAA,EAAA8nC,YAAA,CAEA,EACA7nC,OAAA2G,GAAA3G,MAAA,CACAumC,iBAAA5/B,GAAA4/B,gBAAA,GciCA,GAAS/tC,MAMD8vC,SP9DDt6B,CAAA,EACP,IAAApV,EAAiBZ,KACjBgW,EAAAlc,SAAA,aAAAy2C,CAAA,EACA3vC,EAAAP,IAAA,OAAAkwC,EACA,EACA,EOyD2Bv6B,QAND,CAC1B,IHrDOw6B,GvEOP71C,G4DmBAoN,GA5BA4G,GMFO8hC,GAAAC,GACPpH,GACAqH,GQuDAC,IRzDOH,GQyD4BtE,GAAAxxC,UAAA,CRzD5B+1C,GQyD4B3oC,GAAAwmC,gBAAA,CRxDnCjF,GAAAtoC,EAAAsoC,OAAA,CACAqH,GAAgBE,SDAT7vC,CAAA,CAAA8vC,CAAA,CAAAxH,CAAA,CAAAtf,CAAA,CAAA6jB,CAAA,CAAA6C,CAAA,EACP,IAAAK,EAAAC,EAAAhwC,EAAA8vC,GACAG,EAAA3H,GAAA0H,EAAAhwC,EAAAsoC,GACA,SAAA0H,EAAAhwC,CAAA,CAAArU,CAAA,EACA,IAAAukD,EAAAvkD,EAAAukD,QAAA,CACA,WAAmB/oB,GADnBx7B,EAAAy7B,OAAA,CACkCiD,GAAiBrqB,EAAAkwC,EAAAlwC,EAAA4nC,eAAA,CAAA5e,GAAuEmnB,SDDnHxkD,CAAA,EACP,IAwBAykD,EAxBAC,EAAA1kD,EAAA0kD,aAAA,CAAA9lB,EAAA5+B,EAAA4+B,UAAA,CAAA+lB,EAAA3kD,EAAA2kD,aAAA,CAAAzD,EAAAlhD,EAAAkhD,kBAAA,CAAA6C,EAAA/jD,EAAA+jD,uBAAA,CACArC,EAAAR,EAAA/zC,SAAA,UAAAyG,CAAA,EAA+E,OAAAmoB,EAAAnoB,EAAAsoB,MAAA,IAC/E0oB,EAAAb,EAAA52C,SAAA,YAAoF,OAAA4uB,EAAA,oBACpFD,EAAA,IAA8B9uB,GAAU,WAAe,kBACvD00C,EAAAn0C,WAAA,GACAq3C,EAAAr3C,WAAA,EACA,IACAs3C,EAAA,EACAC,EAAA,EACA,SAAA/oB,EAAA7b,CAAA,EACA,GAAA4kC,IAAAA,GAGA,IAAAC,EAAAD,EACA12C,EAAAy2C,EACAC,EAAA,EACAD,EAAA,EACAG,IACAlpB,EAAApuB,MAAA,EACAwuB,OAAAhc,EACA6kC,cAAAA,EACA32C,WAAAA,CACA,GACA,CASA,SAAA42C,IACQt9C,GAAY+8C,GACpBA,EAAA59C,KAAAA,CACA,CACA,OACAi1B,gBAAAA,EACA,IAAAipB,eAAA,CACA,OAAAD,CACA,EAUAloB,uBAAA,SAAAF,CAAA,EACAmoB,EAAAnoB,GAAAkC,GACA7C,EAAA,eAKA+oB,GAAA,EACAD,GAAAnoB,EAhCA71B,KAAAA,IAAA49C,GACAA,CAAAA,EAAqCl9C,GAAU,WAC/Cw0B,EAAA,iBACA,EAAa4oB,EAAA,CA+Bb,EAUA9nB,sBAAA,SAAAooB,CAAA,EACA,SAAAA,GAAoDA,CAAAA,EAAA,GACpDJ,GAAAI,EACAH,GAAAJ,EACA3oB,EAAA,kBAEA8oB,GAAAjmB,GACA7C,EAAA,cAEA,EAWAkB,yBAAA,SAAAD,CAAA,EACA6nB,GAAA7nB,EAEA,GADA8nB,CAAAA,GAAA,IAEAE,GAEA,CACA,CACA,EClG+I,CAC/IN,cAAArwC,EAAAgoC,kBAAA,CACAzd,WAAAvqB,EAAA4nC,eAAA,CACA0I,cAAAtwC,EAAA+nC,YAAA,CACA8E,mBAAAA,EACA6C,wBAAAA,CACA,GAAS1vC,EAAAsnB,iBAAA,CACT,CACA,OACAG,gBAAAsoB,EAAA1oB,eAAA,CAAAI,eAAA,CACAvyB,IAAA,SAAA8O,CAAA,CAAA6sC,CAAA,EACA,SAAAA,GAAyCA,CAAAA,EAAA,IACzCd,EAAA76C,GAAA,CAAA8O,GACAisC,GAAAY,GACAZ,EAAA/6C,GAAA,CAAAozC,EAAAwI,gBAAA,CAAAxI,EAAAwI,gBAAA,CAAA9sC,GAAAA,EAEA,EACA4jB,OAAA,SAAA5jB,CAAA,CAAArT,CAAA,EACAo/C,EAAAnoB,MAAA,CAAA5jB,EAAArT,GACAs/C,GACAA,EAAAroB,MAAA,CAAA0gB,EAAAwI,gBAAA,CAAAxI,EAAAwI,gBAAA,CAAA9sC,GAAAA,EAAArT,EAEA,EACAkQ,KAAA,WACAkvC,EAAAlvC,IAAA,GACAovC,MAAAA,GAAAA,EAAApvC,IAAA,EACA,CACA,CACA,ESsBmCb,ERvDE,CACrCkwC,SAAAlwC,EAAAkoC,kBAAA,CACA9gB,QAAA+iB,EAAA,EACA,EAAK7B,IAAA,CACL4H,SAAA5H,GAAAJ,kBAAA,CACA4I,iBAAA,SAAA9sC,CAAA,EAA+C,OAAOjO,GAAOiO,EAAA,CAAYmoC,YAAA,CAAepuB,GAAAuqB,GAAAhD,aAAA,GAA6B,EACrHle,QAAA+iB,EAAA,EACA,EQgDmCnhB,GAAA6jB,GRhD9B6C,IACL16B,GAAAlc,SAAA,aAAAy2C,CAAA,EACAA,SAAAA,EAAAlqC,IAAA,CACAsqC,GAAA/nB,MAAA,CAAA2nB,EAAAA,EAAAnsB,IAAA,CAAArF,EAAA,EAGA4xB,GAAAz6C,GAAA,CAAAq6C,EAEA,GACAE,GAAA32C,SAAA,UAAAyG,CAAA,EAA0D,OAAAowC,GAAAz6C,GAAA,CAAAqK,EnE2E1DS,EAAAmL,IAAA,GAAkCZ,GmE3E6E,GAC/GolC,IQuCAzE,GAAA76C,IAAA,YAAwC,OAAAu/C,GAAA/uC,IAAA,KHtDjC2uC,GGuD2BI,GAAAnoB,eAAA,CHtDlC0jB,GAAAc,OAAA,EAA4D5wC,GAAW2E,EAAAgpC,+BAAA,IAIvEvd,KACAY,KAGArX,GAAAlc,SAAA,aAAAyG,CAAA,EACA1S,EAAA,GACAg/B,GAAAj/B,EAAAs/B,kBAAA,IAA6E3c,EAAA7U,UAAA,MAAA6U,EAAA9U,aAAA,IAC7EoxB,GAAAj/B,EAAAu/B,gBAAA,IAA2E3c,EAAA9U,UAAA,MAAA8U,EAAA/U,aAAA,IAC3E,IAAAs2C,EAAAzE,GAAAG,0BAAA,GACAuE,EAAoCphD,EAAQ,iBAAA2P,EAAA8F,IAAA,GAC5C0rC,GACA,CAAa1qC,GAAa0qC,GAC1BllB,GAAAj/B,EAAAw/B,gBAAA,CAAA4kB,EAAA1E,GAAAI,wBAAA,KACA,GACA8C,GAAA12C,SAAA,UAAAnN,CAAA,EACA,IAAAoO,EAAApO,EAAAoO,UAAA,CAAA22C,EAAA/kD,EAAA+kD,aAAA,CAGA7jD,IAGAF,EAAA6+B,UAAA,IACAK,GAAAl/B,EAAAq/B,eAAA,CAAAjyB,GACA8xB,GAAAl/B,EAAAs/B,kBAAA,CAAAykB,GACA3kB,GAAAp/B,EAAAu/B,kBAAA,CAAAt/B,EAAAs/B,kBAAA,EACAH,GAAAp/B,EAAAw/B,gBAAA,CAAAv/B,EAAAu/B,gBAAA,EACAJ,GAAAp/B,EAAAy/B,gBAAA,CAAAx/B,EAAAw/B,gBAAA,EACAC,KACA,GACI94B,GAAWg4B,GAtCR,KG4DP,CAIA,IAAAvP,IzE/DA7K,EAAAF,KACAtX,EAAA,IAAyBhB,GAAU,WACnC,GAAAwY,GAGA,IAAA1kB,EAAA,IAAA0kB,EAA4C5hB,EAAO,WAAe,OAAAoK,EAAAN,MAAA,MAOlE,OANA5M,EAAAwxC,OAAA,CAAA3/B,SAAA,CACAu2B,WAAA,GACAsJ,cAAA,GACAE,UAAA,GACAC,QAAA,EACA,GACA,WAA6B,OAAA7xC,EAAA8xC,UAAA,IAC7B,IyEmDA6L,GAAmC6G,SLjE5BjxC,CAAA,CAAAN,CAAA,EACP,IAAAwxC,EAA0B/qC,GAAYzG,GACtC/F,EAAA,IAAyBhB,GAAU,WACnC,IAqBAw4C,EAGAC,EAGAC,EA3BAC,EAAAC,CAqBAJ,EAAqCn5B,GAA+Bw5B,QAAA,aACpE5oC,MAtBA6oC,CAuBA,GAAK5wC,IAAA,CACLuwC,EAAwCp5B,GAA+Bw5B,QAAA,gBACvE5oC,MAzBA6oC,CA0BA,GAAK5wC,IAAA,CACLwwC,EAAyBtxC,GA3BzBC,EA2ByC/O,OAAwB7F,EAASsmD,SAAA,CA3B1ED,GA2B0E5wC,IAAA,CAC1E,CACAA,KAAA,WACAswC,IACAC,IACAC,GACA,CACA,GAlCAxwC,IAAA,CACA8wC,EAAAC,GAAA5xC,EAoC2B/O,OAAwB7F,EAASymD,WAAA,CApC5DJ,GAAA5wC,IAAA,CACA,kBACAywC,IACAK,GACA,CACA,GACA,SAAAF,IACA,GAAAP,EAAA1nC,IAAA,GAAA9J,EAAA8J,IAAA,EAGA,IAAAsoC,EAA0B3rC,GAAYzG,GACtC/F,EAAAN,MAAA,EACAy4C,YAAAA,EACAC,YAAAb,CACA,GACAA,EAAAY,EACA,CACA,OAAAn4C,CACA,EK2CiEqG,EAAAN,UACjE/T,IAmCOqpB,EAnCPA,GAmCOhV,EAnCPA,EAmCON,EAnCPA,SAmCOiO,EAnCP5G,GAmCOqjC,EAnCPA,GAmCOpuB,EAnCPA,GAmCO1M,EAnCP,WAAiJ,OAAOA,GAAkBC,EAAAC,EAAAC,EAAA,EAmCnKuZ,EAnC6NA,GAoCpO4b,GzDpGAyF,EAAA,IAAiCvzB,GxCF1B,OwCGP9B,EAAAlc,SAAA,YAAAsqB,CAAA,EACAinB,EAAAn1C,GAAA,CAUA,CACA0wC,QAAAxiB,EAAAwiB,OAAA,CACApD,QAAApf,EAAAof,OAAA,CACAzkB,GAAAqF,EAAArF,EAAA,CACAvyB,KAAA43B,EAAA53B,IAAA,CACAiZ,YAAA2e,EAAA3e,WAAA,EAfA2e,EAAA3e,WAAA,CAAAzI,QAAA,CACA,GACAgZ,EAAAlc,SAAA,YAAAnN,CAAA,EACA,IAAAghD,EAAAhhD,EAAAghD,SAAA,CACAtC,EAAA/yB,WAAA,CAAAq1B,EAAA3wC,QAAA,CACA,GACAgZ,EAAAlc,SAAA,cACAuxC,EAAA5yB,KAAA,EACA,GAUA,CACA20B,SAAA,SAAAn6B,CAAA,EAAyC,OAAAo4B,EAAA/5C,IAAA,CAAA2hB,EAAA,EACzCpR,KAAA,WACAwpC,EAAAxpC,IAAA,EACA,CACA,GyD4EA0pC,EAAsByH,SNjGfh9B,CAAA,CAAAo1B,CAAA,CAAA1qC,CAAA,EACP,IACAuyC,EADAC,EAAA,IAAgCp7B,G3FPzB,O2FSP9B,EAAAlc,SAAA,YAAAnN,CAAA,EACA,IAAAghD,EAAAhhD,EAAAghD,SAAA,CACAuF,EAAA56B,WAAA,CAAAq1B,EAAA3wC,QAAA,CACA,GACAgZ,EAAAlc,SAAA,YAAAnN,CAAA,EACA,IAAA8Y,EAAA9Y,EAAA8Y,WAAA,CACA0tC,EAAAzyC,EAAA8J,IAAA,CACA0oC,EAAAh9C,GAAA,CAAAk9C,EAAA,CACA5uC,IAAA2uC,EACAE,SAAA,GAAA/zC,SAAA+zC,QAAA,GACS5tC,EAAAzI,QAAA,EACTi2C,EAAAE,CACA,GACA,IAAAG,EAAAlI,EAAAtxC,SAAA,UAAAnN,CAAA,EACA,IAAAmmD,EAAAnmD,EAAAmmD,WAAA,CACA37B,EAAA+7B,EAAA5hD,IAAA,GACA,GAAA6lB,EAAA,CACA,IAAAo8B,EAA6B51C,KAC7Bu1C,EAAA56B,WAAA,CAAAi7B,GACAL,EAAAh9C,GAAA,CAAAk9C,EAAA,CACA5uC,IAAAsuC,EAAAtoC,IAAA,CACA6oC,SAAAl8B,EAAAk8B,QAAA,GACaE,EACb,CACA,GACA,SAAAH,EAAAzmD,CAAA,EAEA,OACA6X,IAFA7X,EAAA6X,GAAA,CAGA6uC,SAHA1mD,EAAA0mD,QAAA,CAKA,CACA,OACAG,QAAA,SAAAvgC,CAAA,EAAwC,OAAAigC,EAAA5hD,IAAA,CAAA2hB,EAAA,EACxCpR,KAAA,WACAyxC,EAAAp5C,WAAA,GACAg5C,EAAArxC,IAAA,EACA,CACA,CACA,EMuDsCmU,EAAAo1B,EAAA1qC,GACtC+iB,EAA2BgwB,SFnGpBzyC,CAAA,CAAA0yC,CAAA,EACP,SAAAA,GAAoDA,CAAAA,EAH7C,GAG6C,EACpD,IACAC,EADAlwB,EAAA,IAA+B3L,G/FPxB,M+FCA,KAQP87B,EAAAtmB,KAAiC3vB,MACjC,IAAAg8B,EAA6Bv4B,GAAiBJ,EAAA/O,OAAA,CACtC7F,EAASynD,SAAA,CACTznD,EAAS+sC,KAAA,CACT/sC,EAASgtC,IAAA,CACThtC,EAAS4hD,iBAAA,CACT5hD,EAAS0nD,MAAA,CACT1nD,EAAS6hD,MAAA,CACT7hD,EAAS8hD,SAAA,CACjB,UAAA3tC,CAAA,EACAqzC,EA4CA,EAAAvtC,IAAA,GAAuBja,EAAS6hD,MAAA,CAChC,SAEA1tC,EAAA8F,IAAA,GAA4Bja,EAAS8hD,SAAA,CACrC3tC,EAAAwzC,SAAA,uBAEAzmB,KAlDA/sB,EAAArD,SAAA,CACA,EAAK,CAAIsE,QAAA,KAAeK,IAAA,CACxB,SAAA+xC,EAAAI,CAAA,CAAA/gC,CAAA,EACA,SAAAA,GAAoCA,CAAAA,EAAYtV,IAAW,EAC3Dq2C,IAAAL,IAGAA,EAAAK,EACAvwB,EAAAnL,WAAA,CAAArF,GACAwQ,EAAAvtB,GAAA,EAA+BsjB,MAAAm6B,EAAA1gC,UAAAA,CAAA,EAA+CA,GAC9E,CACA,OACAuF,QAAA,SAAAy7B,CAAA,CAAAx2C,CAAA,EACA,IAAAy2C,EAAAzwB,EAAAjL,OAAA,CAAAy7B,EAAAx2C,GACA,GAAAy2C,IAAAA,EAAA7kD,MAAA,EAOA,QAJA8kD,EAAA,GAEAr9B,EAAAva,KAAAowB,GAAA,GAAAunB,EAAA7kD,MAAA,CAAAqkD,GAEAv7B,EAAA+7B,EAAA7kD,MAAA,GAA0D8oB,GAAArB,EAAgBqB,IAAA,CAC1E,IAAAi8B,EAAAF,CAAA,CAAA/7B,EAAA,CAEAk8B,E5GGAtgC,E4GH+Cd,SAAA,CAAAghC,EAC/CE,EAAA9iD,IAAA,EACAmoB,MAAA46B,EAAA56B,KAAA,CACA1F,MAA2BtW,GAAgB62C,EAC3C,EACA,CACA,OAAAF,EACA,EACA7vB,sBAAA,SAAArR,CAAA,EACA,IAAAqhC,EAAA7wB,EAAAnyB,IAAA,CAAA2hB,GACA,OAAAqhC,KAAA9gD,IAAA8gD,GAAAA,WAAAA,EAAA96B,KAAA,EAEAo6B,aAAAA,EACA/xC,KAAA,WACA83B,IACAlW,EAAA5hB,IAAA,EACA,CACA,CACA,EE2CgDb,GACd8kC,EAAAn5C,CAAlCA,EAAa4nD,S1CxGNv+B,CAAA,CAAAgH,CAAA,CAAAhc,CAAA,CAAAyiB,CAAA,EACPzN,EAAAlc,SAAA,YAAAgiB,CAAA,EACA,OAAA9F,EAAA3b,MAAA,IAAAmpB,GAAA1H,EAAA2H,GACA,GACA,IAAA+nB,EAAA,CAA2B6B,aAAc/3C,EAAI,EAI7C,OAHA0L,EAAA4oC,qBAAA,EACA4B,CAAAA,EAAyBgJ,SDGlBx+B,CAAA,CAAAgH,CAAA,CAAAhc,CAAA,EACP,IFXOrU,EAEP8nD,EAKAC,EANAC,EAAAC,EAEAC,EAKAC,EEKAC,EAFAvC,EAAA,IAAsB16B,GAFf,KAGPk9B,EAAA,IAA6Br7C,GAE7Bqc,EAAAlc,SAAA,cACA04C,EAAA/5B,KAAA,EACA,GACAzC,EAAAlc,SAAA,GAAAm7C,GACA,IAAAC,EAAmCC,CFjBnCR,EAAAhoD,CADOA,EEkB8C,CACrDgoD,cAAA,SAAAS,CAAA,MAiCAp0C,EAAAgV,EAAAgH,EA+CAzc,EAAA0gB,EL9FO9W,EK+FPkrC,ENjEOj5B,EMkBPk5B,EACAC,EAlCA,OAgCAv0C,EAhCAA,EAgCAgV,EAhCAA,EAgCAgH,EAhCAA,EAiCAs4B,GA8CA/0C,EA/EA60C,EA+EAn0B,EA9CAjgB,EAAAigB,mBAAA,CAgDA,CACA5a,KAAA,QACA5T,OAAA,CACAg1B,MAAAlrB,KAAAE,KAAA,CAAA44C,CAJAA,EAAA90C,EAAA9N,MAAA,CAAAmjC,qBAAA,IAIAnO,KAAA,EACAE,OAAAprB,KAAAE,KAAA,CAAA44C,EAAA1tB,MAAA,EACA7F,SAAsBd,GAAsBzgB,EAAA9N,MAAA,CAAAwuB,EAC5C,EACAgD,SAAA,CAEAyU,EAAAn8B,KAAAE,KAAA,CAAA8D,EAAAy3B,OAAA,CAAAqd,EAAAG,IAAA,EACA7c,EAAAp8B,KAAAE,KAAA,CAAA8D,EAAA03B,OAAA,CAAAod,EAAAI,GAAA,CACA,EACAjpD,KLrGAsxB,GAPO3T,EK4G+B5J,EAAA9N,MAAA,CLrGtCorB,KACAc,GAAAb,GAAA3T,EKoGsC8W,ILnGtCxB,GAAAtV,EKmGsC8W,ELnGtCvC,KACAe,GAAAtV,EKkGsC8W,ELlGtCzB,KACA,EKkGA,GA5DA+1B,EAAA,GNnBOn5B,EMoBgB,SAAAs5B,CAAA,EACvBH,EAAAG,EAAAh5B,WAAA,ENnBAR,GADAa,GMmBuB/G,EAAAgH,EAAAhc,GNlBvBob,EAnCO,KM2DP,CAAak5B,gBAAAA,EAAAC,yBAAA,WAA0E,OAAAA,CAAA,EAxCvF,EACAX,YAAA,SAAAjoD,CAAA,CAAA0wB,CAAA,CAAAiG,CAAA,MAyCAtiB,EAAAgV,EAAAgH,EAAAw1B,EAAAwC,EAAAW,EAAAL,EAAAj4B,EAAAiG,EAAAiyB,EN5BOn5B,EM6BPgH,EAEAwyB,EAoBAC,EAIAC,EAlEA,OAuCA90C,EAvCAA,EAuCAgV,EAvCAA,EAuCAgH,EAvCAA,EAuCAw1B,EAvCAA,EAuCAwC,EAvCAA,EAuCAW,EAvCAA,EAuCAL,EAxCA3oD,EAAA2oD,eAAA,CAwCAj4B,EAvCAA,EAuCAiG,EAvCAA,EAuCAiyB,EAxCA5oD,EAAA4oD,wBAAA,CA0CAI,EADAvyB,EAAA2yB,SAoDAA,EAAA//B,CAAA,CAAAw8B,CAAA,CAAAlvB,CAAA,CAAAgyB,CAAA,CAAAj4B,CAAA,EACA,IAWA24B,EAXAj3B,EAAahhB,KACb0H,EAAsB7H,KACtBq4C,EAAAzD,EAAAt8C,GAAA,CAAA6oB,EAAAtZ,EAAAzI,QAAA,EACAk5C,EAAkC76B,GAAgB,CAClDrF,UAAAA,EACAsF,aAAA,SAAA/a,CAAA,EACA,OAAAA,KAAA/M,IAAA+M,EAAAub,MAAA,EACA/rB,CAAAA,MAAA0F,OAAA,CAAA8K,EAAAub,MAAA,CAAAiD,EAAA,EAAkDnuB,EAAQ2P,EAAAub,MAAA,CAAAiD,EAAA,CAAAA,GAAAxe,EAAAub,MAAA,CAAAiD,EAAA,GAAAA,CAAA,CAC1D,CACA,GACA1Q,EAAA,EAEAwV,EAAA,GACAmxB,EAAA,IAA6Br7C,GAC7B,SAAAkI,EAAAs0C,CAAA,EACA,IAAA9nC,KAIAA,EAAA,EADA2nC,EAAAG,GAGAF,EAAA79B,KAAA,CnE/EAtC,EAAAxY,MmEkFA24C,EAAAn0C,MAAA,GAEAo0C,EAAAr0C,IAAA,GACAmzC,EAAA36C,MAAA,GACA,CACA,OACAkG,MAAA8c,EACAxb,KAAAA,EACAmzC,eAAAA,EACA,IAAAoB,UAAA,CACA,OAAAF,EAAA16B,WAAA,CAAAC,UAAA,EACA,EACA,IAAA4H,iBAAA,CACA,OAAA2yB,KAAAxiD,IAAAwiD,CACA,EACA1yB,gBAAAA,EACA+yB,eAAA,SAAAC,CAAA,EACAzyB,EAAAxyB,IAAA,CAAAilD,EACA,EACA7wC,YAAAA,EACA8wC,UAAA,WAAiC,OAAAloC,IAAAA,GAAAA,IAAAA,CAAA,EACjCmoC,MAAA,WAA6B,OAAAT,EAAA//B,EAAAw8B,EAAAlvB,EAAAgyB,EAAAj4B,EAAA,EAC7Bo5B,SAAA,SAAAC,CAAA,EAEA,GADA70C,IACAwM,IAAAA,GAGA,InE3HOyF,EmE2HPnnB,EAAAupD,EAAA16B,WAAA,CAAAG,EAAAhvB,EAAAgvB,aAAA,CAAAF,EAAA9uB,EAAA8uB,UAAA,CAAAC,EAAA/uB,EAAA+uB,aAAA,CACAi7B,EAA8BnkD,EAAM,CACpC6T,KAAA,QACA5I,SAAAu4C,InE9HOliC,EmE8H6CrO,EAAAvI,SAAA,CnE7HpD6W,EAAAD,GmE8HArO,YAAAA,EACAsZ,GAAAA,EACA8E,iBAAAA,EACAC,OAAA,CACAnI,cAAAA,EACAF,WAAAA,EACAC,cAAAA,CACA,EACA8I,OAAAkyB,MAAAA,EAAAA,EAAA,CAAAr5B,EAAA,CACA9c,MAAA8c,CACA,EAAai4B,GACbt/B,EAAA3b,MAAA,GAAAs8C,GACAtoC,EAAA,EACA,EACAuoC,QAAA,WACA/0C,IACAwM,EAAA,CACA,CACA,CACA,EA/HA2H,EAAAw8B,EAAAlvB,EAAAgyB,EAAAj4B,IAEAu4B,EAAkCiB,CN/B3Bz6B,EM+B8C,SAAAs5B,CAAA,EACrDA,EAAAh5B,WAAA,EAAAg5B,EAAA3hC,GAAA,CAAAqP,EAAA3d,WAAA,CAAAvI,SAAA,CAEAkmB,EAAAwzB,OAAA,GAGAlB,EAAAh5B,WAAA,CACA0G,EAAAvhB,IAAA,CAAA6zC,EAAA3hC,GAAA,EAEAwhC,IACAnyB,EAAAvhB,IAAA,CAGAuhB,EAAA3d,WAAA,CAAAvI,SAAA,EAGAkmB,EAAAvhB,IAAA,EAGA,ENhDAqa,GADAa,GM8BqD/G,EAAAgH,EAAAhc,GN7BrDob,EM7BO,MA6EFva,IAAA,CACLg0C,EAAA7/B,EAAAlc,SAAA,YAAAnN,CAAA,EACA,IAAAghD,EAAAhhD,EAAAghD,SAAA,CACAvqB,EAAAvhB,IAAA,CAAA8rC,EAAAzwC,SAAA,CACA,GACA44C,EAAAd,EAAAl7C,SAAA,YACAspB,EAAAvhB,IAAA,EACA,QACAuhB,EAAA4xB,cAAA,CAAAl7C,SAAA,YACA+7C,EAAA37C,WAAA,GACA07C,IACAE,EAAA57C,WAAA,EACA,EAxEA,CACA,GFzBAy6C,aAAA,CAAAC,EAAAjoD,EAAAioD,WAAA,CAEAC,EAAA,CACAhyB,UAAA,GACAvI,MAAA,EACA,EAEAw6B,EAAA,CACQ/zC,GES6CC,EFT7B/O,OAAwB7F,EAAS0qD,YAAA,UAAAv2C,CAAA,EACzDyiB,GAAAziB,KACAk0C,EAAA7xB,KACAiyB,EAAA,CACAhyB,UAAA,GACAvI,MAAA,EACA,EACAo6B,EAAAC,EAAAp0C,GAEA,EAAS,CAAIiB,QAAA,KACLT,GED6CC,EFC7B/O,OAAwB7F,EAAS2qD,gBAAA,YACzDtC,GAAA7xB,MACAiyB,CAAAA,EAAAhyB,SAAA,IAEA,EAAS,CAAIrhB,QAAA,KACLT,GEN6CC,EFM7B/O,OAAwB7F,EAAS0sC,UAAA,UAAAv4B,CAAA,EACzD,GAAAyiB,GAAAziB,IAAAm0C,EAAA,CAEA,IAAAsC,EAAAnC,EACAD,EAAAF,EAAAn0C,EAAA,WAA+D,OAAAy2C,CAAA,GAC/DtC,EAAAlhD,KAAAA,CACA,CACA,EAAS,CAAIgO,QAAA,KACLT,GEd6CC,EFc7B/O,OAAwB7F,EAAS+jC,KAAA,YACzD0kB,EAAAv6B,KAAA,GACA,EAAS,CAAI9Y,QAAA,KACb,CACA,CACAK,KAAA,WACAizC,EAAAnmD,OAAA,UAAAwS,CAAA,EAAoD,OAAAA,EAAAU,IAAA,IACpD,CACA,GEdKA,IAAA,CAIL,OACAA,KAAA,WACAozC,IACAD,EAAA36C,MAAA,GACA66C,GACA,EACA1J,eATA,CACA6B,aAAA,SAAAp6B,CAAA,EAA6C,OAAAu/B,EAAAh6B,OAAA,CAAAvF,EAAA,CAC7C,CAQA,EACA,SAAA0iC,EAAAvyB,CAAA,EACA,IAAA2xB,GAAA,CAAAA,EAAAkC,SAAA,CAAA7zB,GAAA,CACA,IAAA8zB,EAAA9zB,EAAAozB,KAAA,GACAzB,EAAgCoC,SHvCzBC,CAAA,CAAAC,CAAA,EACP,IAEAC,EAFAC,EAAA,GACAlpC,EAAA,EAGA,SAAAmpC,EAAAp0B,CAAA,EACAA,EAAA4xB,cAAA,CAAAl7C,SAAA,CAAA29C,GACAF,EAAAlmD,IAAA,CAAA+xB,GACQ/uB,GAAYijD,GACpBA,EAA4CpjD,GAAUwjD,EhEX/C,IgEYP,CACA,SAAAD,IACA,IAAAppC,GAAAkpC,EAAAI,KAAA,UAAAv0B,CAAA,EAAkH,OAAAA,EAAAmzB,SAAA,OAClHloC,EAAA,EACAgpC,EAAAE,GAEA,CACA,SAAAG,IACQrjD,GAAYijD,GACpB,IAAAjpC,IACAA,EAAA,EACAopC,IAEA,CACA,OApBAD,EAAAJ,GAoBA,CACAH,UAAA,SAAA7zB,CAAA,MAoBAsH,EAAAktB,SAnBA,IAAAvpC,IAGAkpC,CAAAA,CAAAA,EAAAloD,MAAA,MAgBAq7B,EAfA6sB,CAAA,CAAAA,EAAAloD,MAAA,IAAAkR,KAAA,CAeAq3C,EAfAx0B,EAAA7iB,KAAA,CAgBAmqB,EAAAj4B,MAAA,GAAAmlD,EAAAnlD,MAAA,EACAolD,KAIAt7C,KAAAu7C,IAAA,CAAAv7C,KAAAw7C,GAAA,CAAA3tC,EAAA4tB,OAAA,CAAA59B,EAAA49B,OAAA,IAAAz7B,KAAAw7C,GAAA,CAAA3tC,EAAA6tB,OAAA,CAAA79B,EAAA69B,OAAA,MAHAvN,EAAAxtB,SAAA,CAAA06C,EAAA16C,SAAA,EhElDO,MgEoCPs6C,EAAAp0B,GACA,KAJAs0B,IACA,IAIA,EACA71C,KAAA,WACA61C,GACA,CACA,CACA,EGFgDt0B,EAAA,SAAA40B,CAAA,EAwJ/BC,CDhMV,SAAAD,CAAA,CAAAE,CAAA,EACP,GAAAC,SAuBOH,CAAA,EACP,GAAAA,EAAAn3C,IAAA,UAAAuiB,CAAA,EAAuC,OAAAA,EAAAE,eAAA,GAAAT,SAAA,GACvC,SAEA,QAAAhzB,EAAA,EAAoBA,EAAAmoD,EAAA3oD,MAAA,CAAA+oD,EAAkEvoD,GAAA,EACtF,GAAAmoD,CAAA,CAAAnoD,EA9BA,EA8BA,GAAA0Q,KAAA,CAAArD,SAAA,CAAA86C,CAAA,CAAAnoD,EAAA,CAAA0Q,KAAA,CAAArD,SAAA,ElE9BO,IkEgCP,SAGA,QACA,EAlCA86C,GAQA,OAPAE,EAAA7B,cAAA,eACA2B,EAAAn3C,IAAA,CAAAsiB,KACA+0B,EAAA7B,cAAA,eAEA6B,EAAA9B,QAAA,EACA8B,EAAA7B,cAAA,gBAEA,CAAiB8B,OAAA,IAEjB,IAAAE,EAAAL,EAAAn3C,IAAA,UAAAuiB,CAAA,EAA6D,OAAAA,EAAAE,eAAA,GAAAT,SAAA,GAW7D,OAVAm1B,EAAArpD,OAAA,UAAAy0B,CAAA,EACAA,EAAAgzB,QAAA,EACAhzB,EAAAizB,cAAA,gBAEAlzB,GAAAC,IAEA,CAAAi1B,GACAj1B,EAAAizB,cAAA,cAEA,GACA,CAAa8B,OAAA,GACb,GCkBAH,EAAAd,GAuJmCiB,MAAA,EAEnCH,EAAArpD,OAAA,UAAAy0B,CAAA,EAA0C,OAAAA,EAAAwzB,OAAA,KAC1CsB,EAAAr2C,IAAA,CAAuBnE,MACvBw6C,EAAAzB,QAAA,CAAAuB,EAAAtmD,GAAA,UAAA0xB,CAAA,EAAyD,OAAAA,EAAA7iB,KAAA,MAGzD23C,EAAAtB,OAAA,GACAoB,EAAArpD,OAAA,UAAAy0B,CAAA,EAA0C,OAAAA,EAAAqzB,QAAA,KA9J1C,EACA,CACA,CACA,SAAAxB,IACAF,GACAA,EAAAlzC,IAAA,EAEA,CACA,EC5C0CmU,EAAAgH,EAAAhc,GAAAwqC,cAAA,EAE1C,CACA1F,UAAA,SAAAhqB,CAAA,CAAAw8B,CAAA,EACAtiC,EAAA3b,MAAA,IAAkF7H,EAAM,CACxF8lD,mBAAAA,CACA,EAAa90B,GAAA1H,EAAA2H,IACb,EACA+nB,eAAAA,CACA,CACA,E0CwFkCx1B,EAAAgH,EAAAhc,EAAAyiB,IAAAqiB,SAAA,CAAA0F,EAAA7+C,EAAA6+C,cAAA,CAClCC,GDzGAH,EAAmB/jB,KAInB,CACAv0B,IAAA,WAA2B,OAAUs4C,SAAAA,CAAA,CAAoB,EACzDzpC,KAL8BwlB,GCwGcrmB,GDxGQlH,SAAA,UAAAy+C,CAAA,EACpDjN,EAAAiN,CACA,GAAKr+C,WAAA,ICuGDs+C,S9D/FGx3C,CAAA,CAAAgV,CAAA,CAAArH,CAAA,CAAAi3B,CAAA,CAAA2F,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAn7B,CAAA,CAAA0Z,CAAA,EAEPr9B,CAAAA,EAAA,IACA,KAAA4qB,GACA5qB,EAAA,MAA+C6F,EAAM,CACrD,yBACA,uBACA,8BACA,4BACA,EAASglB,GAAAD,IACT5qB,EAAA,SAAqD6F,EAAM,CAC3D,uBACA,EAASglB,GAAAD,IACT5qB,EAAA,OAAiD6F,EAAM,CACvD,6BACA,EAASglB,GAAAD,IACT5qB,EAAA,UAAuD6F,EAAM,GAAGglB,GAAAD,IAdhEpqB,EAeAR,EACA,IAjBAA,EAAA2U,EAiBAm3C,EAAAn3C,CAAAA,CAAAA,EAAA,IACA,MAA+CuV,GAAsB,QAAA7V,EAAA6nC,yBAAA,CAAA7e,GACrE1oB,EAAA,OAAiDuV,GAAsB,SAAA7V,EAAA6nC,yBAAA,CAAA7e,GACvE1oB,CAAA,EACAo3C,EAA4BC,WHjC5B,I1CMAnjD,EAIAA,E0CVAojD,E1COA,iBADApjD,EAAAvD,OAAA4mD,6BAAA,EAAwDp5C,GAPjD,iCAQPjK,EAAAhC,KAAAA,E0CNAslD,E1CUA,iBADAtjD,EAAAvD,OAAA8mD,6BAAA,EAAwDt5C,GAVjD,iCAWPjK,EAAAhC,KAAAA,E0CTA,GAAAolD,GAAAE,EACA,OACAE,QAAAJ,EACAK,UAAAH,EACAI,SAAsBr5C,IACtB,CAEA,IGyBAs5C,EAAwBC,WFlCxB,IADAzsD,EACA0sD,EAAA,OAAA1sD,CAAAA,EAAAsF,OAAAqnD,OAAA,GAAA3sD,KAAA,IAAAA,EAAA,OAAAA,EAAAu6C,GAAA,YACA,oBAAAmS,EACA,OACAE,kBAAAF,CACA,CAEA,IE6BArjC,EAAAlc,SAAA,aAAAnN,CAAA,EACA,IAAAsmB,EAAAtmB,EAAAsmB,SAAA,CAAAkR,EAAAx3B,EAAAw3B,WAAA,CAAAI,EAAA53B,EAAA43B,aAAA,CAAA+zB,EAAA3rD,EAAA2rD,kBAAA,CAAAp0B,EAAAv3B,EAAAu3B,eAAA,CACAs1B,EAAA5T,EAAAwH,QAAA,CAAAn6B,GACAwmC,EAAAlO,EAAAiI,OAAA,CAAAvgC,GACAlL,EAAA4G,EAAAG,kBAAA,CAAAmE,GACA,GAAAlL,GAAAyxC,GAAAC,EAAA,CACA,IAAA1U,EAAAuT,GAAAhoC,IACAopC,EAAAlO,EAAA6B,YAAA,CAAAp6B,GAiCAs9B,EAAiCx5C,GAhCjC,CACAilB,IAAA,CACA4wB,eAAA,EACA+M,MhD9BAp9C,KAAAE,KAAA,CAAAU,KAgCAI,CAAAA,KAhCAH,YAAAC,GAAA,EAgCA2/B,GgDDAh8B,cAAA,CACA44C,oBAA6Cn9C,GAAKuE,EAAAulC,iBAAA,IAClDsT,2BAAoDp9C,GAAKuE,EAAA0lC,uBAAA,GACzD,EACAoT,oBAAyCt5C,KAAiB,QAAAhN,KAAAA,CAC1D,EACA25C,YAAA,CACApuB,GAAA/d,EAAAslC,aAAA,EAEAxnC,KAAsBpB,KACtBkpC,QAAA4S,EAAA5S,OAAA,EAAA5lC,EAAA4lC,OAAA,CACApD,QAAAgW,EAAAhW,OAAA,EAAAxiC,EAAAwiC,OAAA,CACA7wC,OAAA,UACAoV,QAAA,CACAgX,GAAAhX,EAAAgX,EAAA,CACA1Y,KAAAqyC,EAAA,aAAAS,EAAA,gBACA,EACA/0B,KAAA,CACArF,GAAAy6B,EAAAz6B,EAAA,CACAvyB,KAAAgtD,EAAAhtD,IAAA,CACAgY,IAAAi1C,EAAAj1C,GAAA,CACA6uC,SAAAoG,EAAApG,QAAA,EAEAv3B,OAAAi+B,KA6CA,iCAAAhpD,OAAA,CAAAwP,EAAA8F,IAAA,GA7CAqzC,EAAA,CAA8E36B,GAAA26B,CAAA,EAAelmD,KAAAA,EAC7FwmD,WAAAtB,EACAuB,QAAAd,EACAtqD,QAAA48C,EAAAz4C,GAAA,EACA,EACwCmxB,EACxCosB,CAAAA,EAAA9/C,OAAA,CAAqCsG,GAAOguC,EAAAt0C,OAAA,CAAAyzB,GAC5C,eAAAqsB,EAAAxoC,OAAA,EAEAwoC,CAAAA,EAAAxoC,OAAA,CAAAmyC,UAAA,CAAAnV,EAAAr0B,SAAA,EAEA,SAAA6/B,EAAAlqC,IAAA,EAEAkqC,CAAAA,EAAAxoC,OAAA,CAAAoyC,kBAAA,CAAApyC,EAAAumC,oBAAA,EAEiBjnC,GAAa09B,EAAAh+B,IAAA,GAE9BwpC,CAAAA,EAAA6J,GAAA,CAAArV,EAAAh+B,IAAA,EAEAszC,SASA95C,CAAA,CAAA8Z,CAAA,CAAAkK,CAAA,CAAAk0B,CAAA,EAEA,GAAAp+B,EAAA,CACA,IDlGOigC,EACP9D,EACAj9C,EC8FA5M,EAEA4M,GDlGO+gD,ECkG+BntD,CAAA,CAAAoT,EAAA8F,IAAA,EDhGtC9M,ECiGA8gB,EDlGAm8B,EAAgB1/C,GCiGsByJ,GACtCgkB,GDhGI3yB,EAAa0oD,GAAA3rD,OAAA,UAAAhC,CAAA,EACjB,IAAA4tD,EAAA5tD,CAAA,IAAA6tD,EAAA7tD,CAAA,IACA8tD,EAAAznD,SAWAvB,CAAA,CAAAmH,CAAA,EAEA,QADAue,EAAA1lB,EACAtC,EAAA,EAAAxC,EAAAiM,EAAAgL,KAAA,MAA2CzU,EAAAxC,EAAA0C,MAAA,CAAgBF,IAAA,CAC3D,IA2BAsC,EA3BA4lB,EAAA1qB,CAAA,CAAAwC,EAAA,CACA,IA2BAmoB,CAAAA,GADA7lB,EA1BA0lB,IA2BA1oB,OAAAuB,SAAA,CAAA4C,cAAA,CAAA1C,IAAA,CAAAuB,EA3BA4lB,EA2BA,EA1BA,OAEAF,EAAAA,CAAA,CAAAE,EAAA,CAEA,OAAAF,CACA,EArBAq/B,EAAA+D,GACAG,EAAsBnlD,GAAOklD,EAC7BC,CAAAA,IAAAF,EACA/gD,GC0FsC8G,ED1FtCg6C,EAAmCxiD,GAAQ0iD,IAE3C,WAAAD,GAAAE,CAAAA,cAAAA,GAAAA,SAAAA,CAAA,GACAjhD,GCuFsC8G,EDvFtCg6C,EAAA,GAEA,GACAhhD,GCuFA,GAAAA,CAAA,IAAAA,GAAAgH,SAAAA,EAAA8F,IAAA,CACA,QAEA,MAAA9M,GACY1K,EAAOT,IAAA,+CAEnB,CAEA,OADA,QAAAzB,CAAAA,EAAA8rD,CAAA,CAAAl4C,EAAA8F,IAAA,IAAA1Z,KAAA,IAAAA,EAAA,OAAAA,EAAAuqB,cAAA,GAEA,EAxBAq5B,EAAAvvC,EAAAqZ,UAAA,CAAAkK,EAAAk0B,KACoBpxC,GAAakpC,EAAA9/C,OAAA,GACjC,OAAA8/C,EAAA9/C,OAAA,CAEAulB,EAAA3b,MAAA,IAAAk2C,GAEA,CACA,EACA,E8DSoBvvC,EAAAgV,EAAArH,EAAAi3B,EAAA2F,EAAAC,EAAAC,EAAAn7B,EAAA0Z,GACpB,CACA4b,aAAAA,EACAniB,iBAAAA,EACA8nB,YAAAA,EACAzF,UAAAA,EACA0F,eAAAA,EACA3pC,KAAA,WACA4pC,EAAA5pC,IAAA,GACA4hB,EAAA5hB,IAAA,GACA0pC,EAAA1pC,IAAA,GACA+jC,EAAA/jC,IAAA,GACA4hB,EAAA5hB,IAAA,EACA,CACA,GAvDoO+jC,GAAAj5C,GAAAi5C,YAAA,CAAAniB,GAAA92B,GAAA82B,gBAAA,CAAA8nB,GAAA5+C,GAAA4+C,WAAA,CAAAC,GAAA7+C,GAAA6+C,cAAA,CAAA1F,GAAAn5C,GAAAm5C,SAAA,CAAA6U,GAAAhuD,GAAAkV,IAAA,CACpOqqC,GAAA76C,IAAA,CAAAspD,IhFiCA/O,GHhCA,CACAgO,oBAAAluC,EAAA66B,iBAAA,CACAqU,sBAAAlvC,EAAA87B,mBAAA,CACAqT,oCAAAnvC,EAAA+7B,gCAAA,CACAqT,gBAAA,EAAApvC,EAAA2O,UAAA,CACA0gC,8BAAArvC,EAAAy8B,yBAAA,CACA6S,0BAAAtvC,EAAAw8B,sBAAA,CACA+S,UAAA,EAAAvvC,EAAAK,KAAA,CACAmvC,qBAAAxvC,EAAA86B,kBAAA,CACA2U,gCAAAzvC,EAAA08B,4BAAA,CACAgT,gCAAA,EAAA1vC,EAAA88B,2BAAA,CACA6S,4BAAA,EAAA3vC,EAAA65B,wBAAA,CACA+V,uBAAA,EAAA5vC,EAAA9J,oBAAA,EQ6BOZ,GLRIxO,EAAM,CACjBqnD,2BAAA74C,EAAA0lC,uBAAA,CACA6U,wCAAAv6C,EAAA0oC,mCAAA,CACA8R,kBAAAx6C,EAAAoO,eAAA,CACAqsC,sBAAAz6C,EAAAigB,mBAAA,CACAy6B,yBAAA3rD,MAAA0F,OAAA,CAAAuL,EAAAkO,kBAAA,GAAAlO,EAAAkO,kBAAA,CAAA7f,MAAA,GACAssD,4BAAA,EAtBA9P,GAAA,IAAA16C,IACApB,MAAA0F,OAAA,CAAAuL,EAAAkO,kBAAA,GAAAlO,EAAAkO,kBAAA,CAAA7f,MAAA,IACA2R,EAAAkO,kBAAA,CAAAvgB,OAAA,UAAAm4C,CAAA,EACgB/4B,GAAa+4B,GAC7Bz2B,GAAA1hB,OAAA,UAAA0gB,CAAA,EAA6E,OAAAw8B,GAAA31C,GAAA,CAAAmZ,EAAA,GAEjD,WAAP9Z,GAAOuxC,IAAA/2C,MAAA0F,OAAA,CAAAqxC,EAAA/3B,eAAA,GAE5B+3B,EAAA/3B,eAAA,CAAApgB,OAAA,UAAA0gB,CAAA,EAA2E,OAAAw8B,GAAA31C,GAAA,CAAAmZ,EAAA,EAE3E,GAEWre,EAAS66C,KAWpB+P,sBAAA56C,EAAA2vB,mBAAA,CACAkrB,2BAAA9rD,MAAA0F,OAAA,CAAAuL,EAAA4c,oBAAA,GAAA5c,EAAA4c,oBAAA,CAAAvuB,MAAA,GACAysD,eAAA,EAAA96C,EAAAgiC,SAAA,CACA+Y,yBAAA/6C,EAAA2oC,sBAAA,CACAqS,qBAAAh7C,EAAA6oC,kBAAA,CACAoS,wBAAAj7C,EAAA4oC,qBAAA,CACAsS,gBAAAl7C,EAAAgkB,cAAA,CACAm3B,gBAAAn7C,EAAA8oC,cAAA,EACK8B,IKNL36B,GAAAI,6BAAA,EACAE,GAAA,CACAlL,KAAkByK,GAAa9P,aAAA,CAC/BA,cAAAA,EACA,G2E7CIo7C,SnCpEGpmC,CAAA,CAAAhV,CAAA,CAAA2N,CAAA,EACPqH,EAAAlc,SAAA,YAAAmc,CAAA,EACA,QAAA9mB,EAAA,EAA8CA,EAAAktD,EAAAhtD,MAAA,CAAuBF,IAAA,CACrE,IAAAiZ,EAAAi0C,CAAA,CAAAltD,EAAA,CACA,GAAAiZ,EAAAqN,SAAA,GAAoCnpB,EAAuBgwD,SAAA,EAI3D,CADA3tC,EAAAG,kBAAA,CAAA1G,EAAA6K,SAAA,GACA,CAAAjS,EAAA8oC,cAAA,CAHA,MAMA,IAAArkC,EAA8B1I,GAAgBqL,EAAA6K,SAAA,EAC9CkR,EAAA,CACArlB,KAAA2G,EAAAvI,SAAA,CACA6mB,UAAA,CACAhF,GAAwBhhB,KACxBN,SAA8BD,GAAgB4K,EAAA3K,QAAA,CAC9C,EACA4I,KAAA,YACA2V,IAAA,CACAC,UAAA,EACA,CACA,EACAjG,EAAA3b,MAAA,KACA8pB,YAAAA,EACAlR,UAAAxN,EAAAzI,QAAA,CACAunB,cAAA,CAAiCg4B,iBAAAn0C,CAAA,CACjC,EACA,CACA,EACA,EmCsC2B4N,GAAAhV,EAAA+G,IjCjE3BiO,GAAAlc,SAAA,YAAAyjB,CAAA,EACA,IAAAmvB,EAAA8P,SAiBAj/B,CAAA,CAAAvc,CAAA,CAAA2N,CAAA,CAAA8U,CAAA,EAEA,IADA92B,EACA8vD,EAAyBC,SDXlBn/B,CAAA,EACP,qCAAAngB,aAGA,IAAAu/C,EAAAv/C,YAAAw/C,gBAAA,CAAAr/B,EAAA/Y,GAAA,aACA,KAAAnV,MAAA,aAAAstD,CAAA,KAGA,IAAAE,EAAAF,EACAjrD,GAAA,UAAA0W,CAAA,EAAgC,OAAAA,EAAAtQ,MAAA,KAChCqC,MAAA,CAAgB6Y,IAChB7Y,MAAA,UAAAiO,CAAA,MAWA0L,EAAAC,EAVA,OAUAD,EAVAyJ,EAAA9X,WAAA,CAAAzI,QAAA,CAUA+W,EAVAmE,GAAA,CAAwEjF,UAAAsK,EAAA9X,WAAA,CAAAzI,QAAA,CAAAS,SAAA8f,EAAA9f,QAAA,GAYxEK,EAAAmV,SAAA,EAAAa,EADA,GACAoE,GAZA9P,I5EwBA7K,E4EbA,CAVA,GACA,GAAAs/C,IAAAA,EAAAxtD,MAAA,CACA,OAAAwtD,CAAA,KAGA,ECP2Ct/B,GAC3C9X,EAAAg3C,EAAuC1/C,GAAgB0/C,EAAAxpC,SAAA,EAAAsK,EAAA9X,WAAA,CACvDq3C,EAAAh4B,GAAA9jB,EAAA2N,EAAAlJ,GACAs3C,EAAAC,SA6EAz/B,CAAA,CAAAvc,CAAA,EAEA,GADAuc,EAAA9O,YAAA,EAAA8O,EAAAhP,OAAA,EAAAgP,EAAA/O,MAAA,CAIA,OACAwN,IAAA,CACAihC,QAAA1/B,EAAA/O,MAAA,CAAAc,eAAA,GACA4tC,SAAA3/B,EAAAhP,OAAA,CAAAe,eAAA,GACA6tC,SAAAr3B,GAAA9kB,EACA,CACA,CACA,EAzFAuc,EAAAvc,GACA,MAAA+7C,GAGA,IAmHAt/C,EACA9Q,EApHA0Z,EAAAkX,QAAAA,EAAAlX,IAAA,eACA+2C,EAAAX,EAAAx3B,GAAAw3B,GAAAjpD,KAAAA,EACAiK,GAiHAA,EAjHA8f,EAAA9f,QAAA,CAqHA,CAFA,OAAA9Q,CAAAA,EAAA82B,EACAjL,OAAA,CAAA/S,EAAAzI,QAAA,CAAAS,EAAA,GAAA9Q,KAAA,IAAAA,EAAA,OAAAA,EAAAkU,IAAA,UAAAuzC,CAAA,EAAsH,MAAAA,WAAAA,EAAA56B,KAAA,EAA6D,EAC3HhmB,KAAAA,EAAhBgK,GAAgBC,IApHxD4/C,EAAAt3B,GAAAtC,EAAAhe,EAAA,OAAA9Y,CAAAA,EAAA8vD,MAAAA,EAAA,OAAAA,EAAAh/C,QAAA,GAAA9Q,KAAA,IAAAA,EAAAA,EAAA4wB,EAAA9f,QAAA,EACA6/C,EAAwBvmD,GAAO,CAC/B+H,KAAA2G,EAAAvI,SAAA,CACA8mB,SAAA,CACAjF,GAAgBhhB,KAChBsI,KAAAA,EACA5I,SAAAA,EACAmb,OAAA2E,EAAA3E,MAAA,CACA2kC,YAAAhgC,EAAAlP,MAAA,CACA7J,IAAA+Y,EAAA/Y,GAAA,EAEA6B,KAAA,WACA2V,IAAA,CACAC,UAAA,CAAA6gC,CACA,CACA,EAAKC,EAAAK,EAAAC,GACL,OACApqC,UAAAxN,EAAAzI,QAAA,CACAmnB,YAAAm5B,EACA/4B,cAAA,CACAg4B,iBAAAE,EACA7iC,IAAA2D,EAAA3D,GAAA,CACAiB,SAAA0C,EAAA1C,QAAA,CACA2iC,aAAAjgC,EAAAjD,KAAA,CACAmjC,YAAAlgC,EAAAhD,IAAA,CACAlsB,MAAAkvB,EAAAlvB,KAAA,CAEA,EACA,EAzDAkvB,EiCiE2Bvc,EAAA+G,GAAA0b,IjChE3BipB,GACA12B,GAAA3b,MAAA,IAAAqyC,EAEA,GACA12B,GAAAlc,SAAA,YAAAmc,CAAA,EACA,QAAA9mB,EAAA,EAA8CA,EAAAktD,EAAAhtD,MAAA,CAAuBF,IAAA,CACrE,IAAAiZ,EAAAi0C,CAAA,CAAAltD,EAAA,CACA,GAAAiZ,EAAAqN,SAAA,GAAoCnpB,EAAuBgqB,QAAA,GtCqC3DxY,CAAAA,mBAAAA,EAAA8U,aAAA,EAAA9U,UAAAA,EAAA8U,aAAA,EsCrCsF,CACtF,IAAA85B,EAAAgR,SAiDAt1C,CAAA,CAAApH,CAAA,CAAA2N,CAAA,CAAA8U,CAAA,EACA,IAAAhe,EAAsB1I,GAAgBqL,EAAA6K,SAAA,EACtC6pC,EAAAh4B,GAAA9jB,EAAA2N,EAAAlJ,GACAs3C,EAAAY,SAmDAv1C,CAAA,CAAApH,CAAA,EAEA,GADAoH,EAAAmG,OAAA,CAIA,OACAyN,IAAA,CACAkhC,SAAA90C,EAAAmG,OAAA,CACA4uC,SAAAr3B,GAAA9kB,EACA,CACA,CACA,EA9DAoH,EAAApH,GACA,MAAA+7C,GAGA,IAAA12C,EAAeu3C,StChDR9/C,CAAA,EACP,IjBRA+/C,EiBQAr5C,EAAA1G,EAAAtR,IAAA,CACA,IAASsxD,SjBrBFt5C,CAAA,EACP,IACA,QAAAyF,GAAAzF,EACA,CACA,MAAA7X,EAAA,CACA,QACA,CACA,EiBcmB6X,GAEnB,OADQ8M,GAAiB,gCAAAnhB,MAAA,CAAA2N,EAAAtR,IAAA,OACzB,QAGA,QADAoM,EjBZAilD,MAAAA,CADAA,EAAA5zC,GiBa0BzF,GjBb1Bq5C,QAAA,CACA,IAAAA,EAAA,IAAA1tD,MAAA,CAAA0tD,GiBaA1uD,EAAA,EAAwDA,EAAA4uD,GAAA1uD,MAAA,CAA8BF,IAAA,CACtF,IAAAxC,EAAAoxD,EAAA,CAAA5uD,EAAA,CAAAkX,EAAA1Z,CAAA,IACA,GAAAqxD,CADArxD,EAAAA,CAAA,KACAmR,EAAA8U,aAAA,CAAAha,GACA,OAAAyN,CAEA,CACA,aACA,EsCkCkC+B,GAClC61C,EAAAh5B,GAAA7c,GACAi1C,EAAAt3B,GAAAtC,EAAAhe,EAAA2C,EAAA3K,QAAA,EACA6/C,EAAwBvmD,GAAO,CAC/B+H,KAAA2G,EAAAvI,SAAA,CACA8mB,SAAA,CACAjF,GAAgBhhB,KAChBsI,KAAAA,EACA7B,IAAA4D,EAAA5b,IAAA,EAEA6Z,KAAA,WACA2V,IAAA,CACAC,UAAA,CAAA6gC,CACA,CACA,EAAKC,EAAAkB,EAAAZ,GACL,OACApqC,UAAAxN,EAAAzI,QAAA,CACAmnB,YAAAm5B,EACA/4B,cAAA,CACAg4B,iBAAAn0C,CACA,CACA,EACA,EA9EAA,EiCwD2BpH,EAAA+G,GAAA0b,IjCvD3BipB,GACA12B,GAAA3b,MAAA,IAAAqyC,EAEA,CACA,CACA,GiCmDA,IAAAprC,IhBtEOZ,GgBsEyBA,ShBrEhCsV,GAAAlc,SAAA,YAAAsqB,CAAA,MAwFA3mB,EAlFA9Q,EAAA2U,EAAA6iC,EAAA+Z,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACA5e,EACA+R,EACA8M,EACAC,EATA,OAAA9oC,GAAA3b,MAAA,KAMA2lC,EAAAvvB,EAAAsuC,cAAA,CAAA36B,EAAArF,EAAA,EACAgzB,EAAAzE,GAAAG,0BAAA,CAAArpB,EAAA3e,WAAA,CAAAzI,QAAA,EACA6hD,EAAAp7B,GAAAjL,OAAA,CAAA4L,EAAA3e,WAAA,CAAAzI,QAAA,CAAAonB,EAAA3mB,QAAA,EACAqhD,EAAA,CACA9iC,IAAA,CACAgjC,iBAAA56B,EAAA66B,eAAA,CACAC,aAAAlf,EACA/Z,YAAA44B,EACA79C,cAAA,CACAu6C,wCAAAv6C,EAAA0oC,mCAAA,CAEA,EACA5qC,KAAAslB,EAAA3e,WAAA,CAAAvI,SAAA,CACAmJ,KAAA,OACA+d,KAAA,CACAtI,OAAA,CACA7O,MAAAmX,EAAA5I,WAAA,CAAAI,WAAA,EAEAG,YAAA,CACA9O,MAAAmX,EAAA5I,WAAA,CAAAK,gBAAA,EAEAsjC,wBAAA,OAAAxyD,CAAAA,EAAAy3B,EAAAg7B,iBAAA,CAAAC,qBAAA,GAAA1yD,KAAA,IAAAA,EAAA,OAAAA,EAAA6I,KAAA,CACA8pD,wCAAA,OAAAh+C,CAAAA,EAAA8iB,EAAAg7B,iBAAA,CAAAC,qBAAA,GAAA/9C,KAAA,IAAAA,EAAA,OAAAA,EAAAi+C,cAAA,CACA95B,WAAwBjoB,GAAgB,OAAA2mC,CAAAA,EAAA/f,EAAAo7B,kBAAA,CAAAC,iBAAA,GAAAtb,KAAA,IAAAA,EAAA,OAAAA,EAAAub,SAAA,EACxCC,aAA0BniD,GAAgB,OAAA0gD,CAAAA,EAAA95B,EAAAo7B,kBAAA,CAAAC,iBAAA,GAAAvB,KAAA,IAAAA,EAAA,OAAAA,EAAA0B,WAAA,EAC1CC,mBAAgCriD,GAAgB,OAAA2gD,CAAAA,EAAA/5B,EAAAo7B,kBAAA,CAAAC,iBAAA,GAAAtB,KAAA,IAAAA,EAAA,OAAAA,EAAA2B,gBAAA,EAChDC,gBAA6BviD,GAAgB,OAAA4gD,CAAAA,EAAAh6B,EAAAo7B,kBAAA,CAAAC,iBAAA,GAAArB,KAAA,IAAAA,EAAA,OAAAA,EAAA4B,cAAA,EAC7C3xD,MAAA,CACA4e,MAAAmX,EAAA5I,WAAA,CAAAC,UAAA,EAEAwkC,uBAAoCziD,GAAgB4mB,EAAAo7B,kBAAA,CAAAU,oBAAA,EACpDC,kBAA+B3iD,GAAgB,OAAA6gD,CAAAA,EAAAj6B,EAAAo7B,kBAAA,CAAAY,UAAA,GAAA/B,KAAA,IAAAA,EAAA,OAAAA,EAAAjqD,KAAA,EAC/CisD,iBAA8B7iD,GAAgB,OAAA8gD,CAAAA,EAAAl6B,EAAAo7B,kBAAA,CAAAY,UAAA,GAAA9B,KAAA,IAAAA,EAAA,OAAAA,EAAA1Z,IAAA,EAC9C0b,4BAAA,OAAA/B,CAAAA,EAAAn6B,EAAAo7B,kBAAA,CAAAY,UAAA,GAAA7B,KAAA,IAAAA,EAAA,OAAAA,EAAAgB,cAAA,CACAgB,0BAAuC/iD,GAAgB,OAAAghD,CAAAA,EAAAp6B,EAAAg7B,iBAAA,CAAAoB,sBAAA,GAAAhC,KAAA,IAAAA,EAAA,OAAAA,EAAAhpD,KAAA,EACvDirD,0CAAA,OAAAhC,CAAAA,EAAAr6B,EAAAg7B,iBAAA,CAAAoB,sBAAA,GAAA/B,KAAA,IAAAA,EAAA,OAAAA,EAAAc,cAAA,CACAmB,UAAAt8B,EAAAu8B,QAAA,CACAn0D,KAAA43B,EAAA53B,IAAA,CACAo0D,yBAAsCpjD,GAAgB,OAAAkhD,CAAAA,EAAAt6B,EAAAo7B,kBAAA,CAAAqB,sBAAA,GAAAnC,KAAA,IAAAA,EAAA,OAAAA,EAAAlpD,KAAA,EACtDsrD,yCAAA,OAAAnC,CAAAA,EAAAv6B,EAAAo7B,kBAAA,CAAAqB,sBAAA,GAAAlC,KAAA,IAAAA,EAAA,OAAAA,EAAAY,cAAA,CACAwB,WAAwBvjD,GAAgB,OAAAohD,CAAAA,EAAAx6B,EAAAo7B,kBAAA,CAAAC,iBAAA,GAAAb,KAAA,IAAAA,EAAA,OAAAA,EAAAoC,SAAA,EACxCp9B,aAyCW9mB,GADXW,EAxCkDD,GAAgB4mB,EAAAg7B,iBAAA,CAAA6B,WAAA,IAyC/CxjD,EAAA,EAAAjK,KAAAA,EAAAiK,EAxCnByjD,aAAA98B,EAAA+8B,WAAA,CACAp9B,UAAA,CACA9W,MAAAmX,EAAA5I,WAAA,CAAAE,aAAA,EAEAsI,SAAA,CACA/W,MAAAmX,EAAA5I,WAAA,CAAAG,aAAA,EAEAylC,WAAwB5jD,GAAgB4mB,EAAA3mB,QAAA,CACxC,EACA4jD,cAAAtP,GAAA,CAA8C1qC,GAAa0qC,GAAAA,EAAAv+C,KAAAA,EAC3D3E,QAAAu1B,EAAAg7B,iBAAA,CAAAkC,MAAA,CACA,CACAA,OAAA,CACAC,UAAAn9B,EAAAg7B,iBAAA,CAAAkC,MAAA,CAAAE,QAAA,CACAC,qBAAAr9B,EAAAg7B,iBAAA,CAAAkC,MAAA,CAAAI,iBAAA,CACAC,kBAAAv9B,EAAAg7B,iBAAA,CAAAkC,MAAA,CAAAM,eAAA,CACAC,uBAA4CrkD,GAAgB4mB,EAAAg7B,iBAAA,CAAAkC,MAAA,CAAAQ,mBAAA,CAC5D,CACA,EACAtuD,KAAAA,EACAuU,QAAA,CACAmyC,WAAAla,EAAAA,GAAAxsC,KAAAA,EACAktD,UAAAt8B,EAAAA,EAAA29B,eAAA,EAAAvuD,KAAAA,CACA,EACAwuD,QAAA,CACAC,aAAAjhD,EAAA2vB,mBAAA,CAEA,EACStpB,GAAa+c,EAAA89B,aAAA,GACtBpD,CAAAA,EAAA16B,IAAA,CAAA+9B,cAAA,CAAwCC,SlFvEjC3wD,CAAA,CAAAzC,CAAA,EAEP,QADAqzD,EAAA,GACAlzD,EAAA,EAAAxC,EAAA8B,OAAAC,IAAA,CAAA+C,GAA+CtC,EAAAxC,EAAA0C,MAAA,CAAgBF,IAAA,CAC/D,IAAAwC,EAAAhF,CAAA,CAAAwC,EAAA,CACAkzD,CAAA,CAAA1wD,EAAA,CAAA3C,EAAAyC,CAAA,CAAAE,EAAA,CACA,CACA,OAAA0wD,CACA,EkFgEiDj+B,EAAA89B,aAAA,CAAqB1kD,GAAgB,EAEtF,CACA2mB,YAAA26B,EACA7rC,UAAAmR,EAAA3e,WAAA,CAAAzI,QAAA,CACAunB,cAAA,CACA7jB,SAAA0jB,EAAA1jB,QAAA,CAEA,GApFA,GACW4hD,SDOJ5hD,CAAA,CAAAsV,CAAA,CAAAgH,CAAA,CAAAhc,CAAA,CAAAoqC,CAAA,CAAAmX,CAAA,CAAAjd,CAAA,EACP,IAGAgO,EAHAkP,EAAA,IAAArxD,IACAsxD,EAAAC,EAAA,eAAsF7kD,KAAYynC,GAMlG,SAAAod,EAAAvB,CAAA,CAAA17C,CAAA,CAAAk9C,CAAA,EACA,IAAAC,EAAAC,SAmDA7sC,CAAA,CAAAgH,CAAA,CAAAhc,CAAA,CAAA8hD,CAAA,CAAA3B,CAAA,CAAA17C,CAAA,CAAAk9C,CAAA,EACA,SAAAl9C,GAAkCA,CAAAA,EAAc7H,IAAS,EAEzD,IF7BOmlD,EAEPpoD,EC7COqoD,EACP5D,EACAzyD,EAGKs2D,EAAAC,EDJE/uD,EAAAgvD,EAEPC,EACAxB,EACAE,EACAlnD,ECAAyoD,EAGAC,EAIAhiD,EAAwCiiD,EAAAC,ERXxChE,EHJOrrD,EGKPsvD,EDNOxiD,EAEP/D,EACA6wC,ECQA2V,ELPOvvD,EKQPwvD,EFDO1iD,EAAA9M,EAIPyvD,EACAC,EAGAC,EEHAC,EJLO5vD,EISP6vD,ENnBAr3D,Ee8EAghD,EAGAnhD,EACAo6C,EACApD,EATAzkB,EAAahhB,KACbi3C,GAAA,IAA6Br7C,GAC7BuoD,GAAA,GACAjD,GAAA,EAEAv+C,GAAmByG,GAAY27C,GAC/Bf,GAAA,GAIAY,IACAn2D,EAAAm2D,EAAAn2D,IAAA,CACAo6C,EAAA+b,EAAA/b,OAAA,CACApD,EAAAmf,EAAAnf,OAAA,EAEAxtB,EAAA3b,MAAA,IACA0kB,GAAAA,EACAvyB,KAAAA,EACAiZ,YAAAA,EACAmhC,QAAAA,EACApD,QAAAA,CACA,GAEA,IAAA72C,GAAa8H,GAAQwvD,GA/Fd,IA+Fc,CACrBlvD,QAAA,EACA,GAAKmvD,GAAAv3D,GAAAwI,SAAA,CAAAgvD,GAAAx3D,GAAA0I,MAAA,CACLiM,IDjGA89C,EAAA,GAIK6D,EAAAt2D,CAHLA,EAAay3D,SJJNpuC,CAAA,CAAAgH,CAAA,CAAAhc,CAAA,CAAAqjD,CAAA,CAAArB,CAAA,CAAA7uD,CAAA,EACP,I3BiCOioB,E2BjCPkoC,EAAAD,iBAAAA,EACAE,EAAA,GACAC,EAAA,GACA,SAAAC,IACAF,GAAAD,IAAAE,CAAAA,EAAAn1D,MAAA,KACA8E,EAAAoI,KAAAowB,GAAA,CAAAr9B,KAAA,CAAAiN,KAAAioD,GAEA,CAUA,OACA3iD,KAVeg1C,C3ByBRz6B,E2BzB2B,SAAA7b,CAAA,EAClC,GAAAgkD,EAAA,CAEA,GADAA,EAAA,GACAhkD,EAAAmc,WAAA,MxFgCO5I,EwF/BP0wC,EAAAnzD,IAAA,ExF+BOyiB,EwF/B2CkvC,EAAA9lD,SAAA,CxFgClD6W,EwFhCkDA,GAAA,CxFgClDD,GwF/BA,CACA2wC,GACA,CACA,E3BmBAvoC,GADAa,G2B1BkC/G,EAAAgH,EAAAhc,G3B2BlCob,EAFOC,KAAAA,I2BjBFxa,IAAA,CAGLqhD,aAAA,SAAAlC,CAAA,EACAsD,IACAA,EAAA,GACAE,EAAAnzD,IAAA,CAAA2vD,GACAyD,IAEA,CACA,CACA,EKwEmCzuC,EAAAgH,EAAAhc,EAAAmgD,EDlG5B6B,ECkG4Bv9C,EDhGN,SAAAi/C,CAAA,EAC7BtF,EAAA6B,WAAA,CAAAyD,EACAR,IACA,IAAKriD,IAAA,CAAAqhD,EAAAv2D,EAAAu2D,YAAA,CACLG,EAAoCsB,CDL7BxwD,ECK+C,SAAAywD,CAAA,EACtDxF,EAAAkC,MAAA,CAAAsD,CACA,EDNA,SAAAzB,IA0CA,SAAAJ,GAAuCA,CAAAA,E3F/ChC,G2F+CgC,EA1CJI,EA2CnCxoD,EAAA,IAAyBhB,GAAU,WAInC,GAAA1H,OAAA4yD,cAAA,EACA,IAAAC,EAAoCrwD,GAJpC,eAbAwhC,EACAtO,EAaAhtB,EAAAN,MAAA,EAdA47B,EAAoBjP,KACpBW,EAAiBJ,KAAoBI,MAAA,CAGrC,CACAo9B,aAHAxoD,KAAAE,KAAA,EAAA6C,SAAA0lD,gBAAA,EAAA1lD,SAAA2lD,eAAA,EAAAF,YAAA,EAIAG,YAHA3oD,KAAAE,KAAA,CAAAkrB,EAAAsO,GAIAA,UAAAA,CACA,GAOA,EAE4C8sB,EAAA,CAC5ChuD,QAAA,GACAE,SAAA,EACA,GACAkwD,EAAA7lD,SAAA0lD,gBAAA,EAAA1lD,SAAA2lD,eAAA,CACAG,EAAA,IAAAP,eAAsDt0D,EAAOu0D,EAAA3vD,SAAA,GAC7DiwD,EAAAnmB,OAAA,CAAAkmB,GACA,IAAAE,EAAkCtkD,GEyCCC,EFzCe/O,OAAwB7F,EAAS+jD,MAAA,CAAA2U,EAAA3vD,SAAA,EACnFsM,QAAA,EACA,GACA,kBACAqjD,EAAAzvD,MAAA,GACA+vD,EAAAE,SAAA,CAAAH,GACAE,EAAAxjD,IAAA,EACA,CACA,CACA,IA/DAuhD,EAAA,EACAxB,EAAA,EACAE,EAAA,EACAlnD,EAAAuoD,EAAArpD,SAAA,UAAAnN,CAAA,EACA,IAAAu4D,EAAAv4D,EAAAu4D,WAAA,CAAAjvB,EAAAtpC,EAAAspC,SAAA,CAAA8uB,EAAAp4D,EAAAo4D,YAAA,CACAQ,EAAA,GACAL,EAAA9B,IACAA,EAAA8B,EACAK,EAAA,IAEAR,EAAAnD,IACAA,EAAAmD,EAEAjD,E3F2BA/tC,K2F3ByCivC,EAAAhmD,QAAA,CACzCuoD,EAAA,IAEAA,GACApxD,EAAA,CACAqtD,SAAAjlD,KAAAsuB,GAAA,CAAAu4B,EAAAxB,GACAF,kBAAAzrB,EACA2rB,gBAAAA,EACAE,oBAAAA,CACA,EAEA,GACA,CACAjgD,KAAA,WAA4B,OAAAjH,EAAAV,WAAA,GAC5B,GCtBK2H,IAAA,CACLyhD,EAA0BkC,SPQnBxkD,CAAA,CAAAgV,CAAA,CAAA7hB,CAAA,EACP,IAiFWqhB,GAA8BlpB,EAAuBm5D,YAAA,EAhFhE,OACA5jD,KAAkBvM,EAClB,EAEA,IAmCA2d,EACAiF,EAEAwtC,EACAC,EALAnwD,EAGAowD,EArCAC,EAAA,EAEA1xD,EAAA,CACAqB,MAAA,CACA,GACA,IAAAvD,GA6BAuD,EAAA,EAGAowD,EAAA,EAGA,CACAE,OAAA,SAAA19C,CAAA,EAEA,IADAzb,EAAA2U,CACA2R,MAAAzf,IAAAyf,GACA7K,EAAA6K,SAAA,CAAAiF,GrFtEO,KqFuEP9P,EAAA6K,SAAA,CAAAA,GAAA,KAEAA,EAAAiF,EAAA9P,EAAA6K,SAAA,CACAzd,EAAA4S,EAAA5S,KAAA,CACAowD,EAAA,EACAF,EAAAlyD,KAAAA,IAGAgC,GAAA4S,EAAA5S,KAAA,CACA0iB,EAAA9P,EAAA6K,SAAA,EAEA7K,EAAA5S,KAAA,CAAAowD,IACAA,EAAAx9C,EAAA5S,KAAA,CACAmwD,EAAAv9C,EAAA6K,SAAA,CAEAyyC,EADA,QAAA/4D,CAAAA,EAAAyb,EAAApR,OAAA,GAAArK,KAAA,IAAAA,EAAA,OAAAA,EAAA0C,MAAA,EACA,OAAAiS,CAAAA,EAAqDhQ,EAAI8W,EAAApR,OAAA,UAAA0mB,CAAA,EAA+B,QAAAA,EAAAvJ,IAAA,EAAmBI,GAAamJ,EAAAvJ,IAAA,GAAW,GAAA7S,KAAA,IAAAA,EAAA,OAAAA,EAAA6S,IAAA,CAGnI3gB,KAAAA,EAGA,EACAgC,MAAA,WAA6B,OAAAA,CAAA,EAC7BkwD,yBAAA,WAAgD,OAAAA,CAAA,EAChDC,uBAAA,WAA8C,OAAAA,CAAA,CAC9C,GAzCA,OACA9jD,KAxBAmU,EAAAlc,SAAA,YAAAmc,CAAA,EACA,QAAA9mB,EAAA,EAA8CA,EAAAktD,EAAAhtD,MAAA,CAAuBF,IAAA,CACrE,IAAAiZ,EAAAi0C,CAAA,CAAAltD,EAAA,CACA,GAAAiZ,EAAAqN,SAAA,GAAoCnpB,EAAuBm5D,YAAA,GAAAr9C,EAAA29C,cAAA,GAC3D9zD,EAAA6zD,MAAA,CAAA19C,GACAnW,EAAAuD,KAAA,GAAAqwD,GAAA,CAEA,IAAAG,EAA8BvpD,GAD9BopD,EAAA5zD,EAAAuD,KAAA,GACmC,GACnCywD,EAAAh0D,EAAAyzD,wBAAA,GACAQ,EAAA,OACAD,GAEAA,EAAA7pB,WAAA,EACA8pB,CAAAA,EAA4CllC,GAAsBilC,EAAAjlD,EAAAigB,mBAAA,GAElE9sB,EAAA,CACAqB,MAAAwwD,EACAzG,eAAA2G,CACA,EACA,CAEA,CACA,GAAKhsD,WAAA,CAIL,EQ2CmC8G,EAAAgV,EDzFiB,SAAAqpC,CAAA,EACpDD,EAAAC,qBAAA,CAAAA,EACA6E,IACA,GAAKriD,IAAA,CACmC0hD,EAAAjiD,CAAxCA,EAAa6kD,SLFNnlD,CAAA,CAAAgiD,CAAA,CAAAoD,CAAA,CAAApwC,CAAA,EACP,IAkHYR,CAAAA,GAA8BlpB,EAAuB+5D,KAAA,GACjEp0D,OAAAq0D,sBAAA,EACA,kBAAAA,uBAAAt2D,SAAA,EAnHA,OACAwzD,0BAAA,WAAqD,EACrD+C,WAAwBjxD,GACxBuM,KAAkBvM,EAClB,EAEA,IAyFAkxD,EACAhtC,EAtFAitC,EAJA95D,GDLA,qBAAAyQ,aAAA3P,GAaAA,CAVAA,EAAA,IAAAwE,OAAAyjB,mBAAA,CAA8CnlB,EAAO,SAAA0lB,CAAA,EACrDA,EAAAywC,UAAA,GAAA/3D,OAAA,UAAA+B,CAAA,EAEA0X,EAAAu+C,aAAA,GACAtgC,GAAA9pB,KAAAsuB,GAAA,CAAAxE,GAAAje,EAAAu+C,aAAA,EAEAvgC,GAAA,CAAAE,CADAA,GAAA/pB,KAAAowB,GAAA,CAAArG,GAAAle,EAAAu+C,aAAA,GACAtgC,EAAA,MAEA,EACA,GAAK,EACL4Y,OAAA,EAAuB54B,KAAA,QAAAugD,SAAA,GAAAC,kBAAA,ICiFvBL,EAAAJ,iBAzFAA,EAyFA,EAA+G7/B,KAC/G/M,EAAA,CAAkBstC,QAAA,IAIlB,CACAC,wBAAA,kBACA,EAAAD,OAAA,CACAttC,EAAAgN,gBAAA,CALeD,KAAmBigC,CAQlC,EACAQ,yBAAA,WACAxtC,EAAA,CAAsBstC,QAAA,GAAAtgC,iBAVPD,KAAmBigC,CAUZ,CACtB,CACA,GAxGAO,EAAAp6D,EAAAo6D,uBAAA,CAAAC,EAAAr6D,EAAAq6D,wBAAA,CACAC,EAAApvC,IACAqvC,EAAAC,SAiDAJ,CAAA,EACA,IAAAG,EAAA,GACA,SAAAE,IACAF,EAAAnqB,IAAA,UAAAx/B,CAAA,CAAAy/B,CAAA,EAAmD,OAAAA,EAAAv/B,QAAA,CAAAF,EAAAE,QAAA,GAAiCtB,MAAA,CAvEpF,GAwEA,CACA,OAMAwN,QAAA,SAAAvB,CAAA,EACA,IAAAi/C,EAAAH,EAAAI,SAAA,UAAAC,CAAA,EAA0F,OAAAn/C,EAAAu+C,aAAA,GAAAY,EAAAZ,aAAA,GAC1Fa,EAAAN,CAAA,CAAAA,EAAA73D,MAAA,IACA,KAAAg4D,EACAj/C,EAAA3K,QAAA,CAAAypD,CAAA,CAAAG,EAAA,CAAA5pD,QAAA,GACAypD,CAAA,CAAAG,EAAA,CAAAj/C,EACAg/C,KAGAF,CAAAA,EAAA73D,MAAA,CAxFA,IAyFA+Y,EAAA3K,QAAA,CAAA+pD,EAAA/pD,QAAA,IACAypD,EAAA71D,IAAA,CAAA+W,GACAg/C,IAEA,EAKAK,uBAAA,WACA,IAAAJ,EAAA9qD,KAAAsuB,GAAA,CAAAq8B,EAAA73D,MAAA,GAAAkN,KAAA4T,KAAA,CAAA42C,IAAA,KACA,OAAAG,CAAA,CAAAG,EAAA,CAEA,CACA,EApFAN,GACAvG,EAAA,GAyBA,OACAgD,0BAAA,kBAGA,KACA,CACAhuD,MAAA+G,KAAAsuB,GAAA,CAAA21B,EAjDO,KAkDPjB,eAAAkH,CACA,EAEAM,IACA,CACAvxD,MAAA,CACA,QAEA,EACA+wD,WAAA,SAAAmB,CAAA,EACAT,EAAAS,EACAV,GACA,EACAnlD,KA3CAmU,EAAAlc,SAAA,YAAAmc,CAAA,EACA,QAAA9mB,EAAA,EAA8CA,EAAAktD,EAAAhtD,MAAA,CAAuBF,IAAA,CACrE,IAAAiZ,EAAAi0C,CAAA,CAAAltD,EAAA,CACAiZ,CAAAA,EAAAqN,SAAA,GAAqCnpB,EAAuB+5D,KAAA,EAC5Dj+C,EAAAqN,SAAA,GAAoCnpB,EAAuBq7D,WAAA,GAC3Dv/C,EAAAu+C,aAAA,EAEAv+C,EAAA6K,SAAA,EAAA+vC,GACA56C,EAAA6K,SAAA,EAAAg0C,GACAC,EAAAv9C,OAAA,CAAAvB,EAEA,CACA,IAAAw/C,EAAAV,EAAAO,sBAAA,GACAG,IACApH,EAAAoH,EAAAnqD,QAAA,CAEAgpD,EADAmB,EAAAn1D,MAAA,EAAyC8hB,GAAaqzC,EAAAn1D,MAAA,EACCuuB,GAAsB4mC,EAAAn1D,MAAA,CAAAuO,EAAAigB,mBAAA,EAG7EztB,KAAAA,EAGA,GAAK0G,WAAA,CAuBL,EM6BmC8G,EDrFKgiD,EAAAhmD,QAAA,CCqFLmkD,EAAAnrC,IDrFKnU,IAAA,CAAA2hD,EAAAliD,EAAAkiD,yBAAA,CACxC,CACA3hD,KAAA,WACAohD,IACAK,IACAD,GACA,EACAE,gBAAAA,EACAL,aAAAA,EACAqD,WATwCjlD,EAAAilD,UAAA,CAUxCsB,qBAAA,WAEA,OADAzI,EAAAoB,sBAAA,CAAAgD,IACApE,CACA,CACA,GCuEmC8D,GAAA5hD,GAAA4hD,YAAA,CAAAqD,GAAAjlD,GAAAilD,UAAA,CAAAuB,GAAAxmD,GAAAO,IAAA,CAAA0hD,GAAAjiD,GAAAiiD,eAAA,CAAAsE,GAAAvmD,GAAAumD,oBAAA,CACnC1jB,GAAAgd,iBAAAA,GTjGA3B,EAAA,GACAiE,EAAiCsE,CHL1B5zD,EGKgD,SAAAsrD,CAAA,EACvDyD,GAAAzD,EAAAuB,SAAA,EACAxB,EAAAC,iBAAA,CAAAA,EACAyE,IACA,EHUA,CAAariD,KAlBbmU,EAAAlc,SAAA,YAAAmc,CAAA,EACA,QAAA9mB,EAAA,EAA8CA,EAAAktD,EAAAhtD,MAAA,CAAuBF,IAAA,CACrE,IAAAiZ,EAAAi0C,CAAA,CAAAltD,EAAA,CACAiZ,EAAAqN,SAAA,GAAoCnpB,EAAuB8pB,UAAA,EAC3DjiB,EAAA,CACAyrD,YAAAx3C,EAAAw3C,WAAA,CACAE,iBAAA13C,EAAA4/C,wBAAA,CACAhI,eAAA53C,EAAA43C,cAAA,CACAgB,UAAA54C,EAAAiO,YAAA,CAKAqpC,UAAAt3C,EAAAoL,aAAA,KAAApL,EAAAoL,aAAA,EAAkF7V,KAAWyK,EAAAoL,aAAA,CAAAhgB,KAAAA,CAC7F,EAEA,CACA,GAAK0G,WAAA,GGTA2H,IAAA,CDTL,SAAAZ,GAAkCA,CAAAA,EAAAhP,MAAA,EAGlCqN,WAAAA,SAAAiuB,eAAA,CACArwB,EAAA,GAGAA,EAAA2a,IACAk2B,EAAyB3sC,GU8FQJ,EV9FSC,EAAA,CAA8B7U,EAAS8hD,SAAA,CAAY9hD,EAAS4hD,iBAAA,WAAAztC,CAAA,EACtGA,CAAAA,EAAA8F,IAAA,GAA+Bja,EAAS8hD,SAAA,EAAA5uC,WAAAA,SAAAiuB,eAAA,IACxCrwB,EAAAqD,EAAArD,SAAA,CACA6wC,IAEA,EAAS,CAAIvsC,QAAA,KAAeK,IAAA,ECH5B6hD,EDKA,CACA,IAAAxmD,WAAA,CACA,OAAAA,CACA,EACA2E,KAAA,WACAksC,MAAAA,GAAAA,GACA,CACA,ECXA4V,EAA0BsE,CLRnB9zD,EKQ4C,SAAA+rD,CAAA,EACnDV,EAAAU,oBAAA,CAAAA,EACAgE,IACA,ELCA,CACAriD,KAZAmU,EAAAlc,SAAA,YAAAmc,CAAA,EACA,IAAAiyC,EAAuB52D,EAAI2kB,EAAA,SAAA7N,CAAA,EAC3B,OAAAA,EAAAqN,SAAA,GAAuCnpB,EAAuB67D,KAAA,EAC9D//C,2BAAAA,EAAA5b,IAAA,EACA4b,EAAA6K,SAAA,CAAAywC,EAAAxmD,SAAA,EACAkL,EAAA6K,SAAA,CAPO,GAQP,GACAi1C,GACA/zD,EAAA+zD,EAAAj1C,SAAA,CAEA,GAAK/Y,WAAA,GKAA2H,IAAA,CACLkiD,EAA0BqE,CFLnBnnD,EEK8ChP,OFL9CkC,EEK8C,SAAA0sD,CAAA,EACrDrB,EAAAqB,sBAAA,CAAAA,EACAqD,IACA,EFJAN,EAAA/rC,IACAgsC,EAA4BziD,GWuFKJ,EXvFYC,EAAA,CAA8B7U,EAAS0qD,YAAA,CAAe1qD,EAAS8jD,QAAA,WAAA3vC,CAAA,EAC5GqjD,EAAArjD,EAAArD,SAAA,EACK,CAAIsE,QAAA,GAAAD,KAAA,KAA2BM,IAAA,CACpCiiD,EAAA9tC,EAAAlc,SAAA,YAAAmc,CAAA,EACA,IAAAoyC,EAAuBC,SlGMhBp3D,CAAA,CAAAK,CAAA,EACP,QAAA1B,EAAAqB,EAAA7B,MAAA,GAAmCQ,GAAA,EAAQA,GAAA,GAC3C,IAAAuB,EAAAF,CAAA,CAAArB,EAAA,CACA,GAAA0B,EAAAH,EAAAvB,EAAAqB,GACA,OAAAE,CAEA,CAEA,EkGd+B6kB,EAAA,SAAA7N,CAAA,EAC/B,OAAAA,EAAAqN,SAAA,GAAuCnpB,EAAuBi8D,wBAAA,EAC9DngD,EAAA6K,SAAA,CAAA2wC,GACAx7C,EAAA6K,SAAA,CAAAywC,EAAAxmD,SAAA,EACAkL,EAAA6K,SAAA,CApBO,GAqBP,GACA,GAAAo1C,EAAA,CACA,IAAAG,EAAA,MACAH,CAAAA,EAAAl+C,OAAA,EACAq+C,CAAAA,EAAoCxnC,GAAsBqnC,EAAAl+C,OAAA,CAAAnJ,EAAAigB,mBAAA,GAE1D9sB,EAAA,CACAqB,MAAA6yD,EAAAp1C,SAAA,CACAssC,eAAAiJ,CACA,EACA,CACA,GAAKtuD,WAAA,CACL,CACA2H,KAAA,WACAgiD,IACAC,GACA,CACA,GEvBKjiD,IAAA,CACLmiD,EAA0ByE,CJTnBt0D,EISkC,SAAAisD,CAAA,EACzCZ,EAAAY,UAAA,CAAAA,EACA8D,IACA,EJQA,CACAriD,KApBAmU,EAAAlc,SAAA,YAAAmc,CAAA,EACA,IAAAyyC,EAA8Bp3D,EAAI2kB,EAAA,SAAA7N,CAAA,EAClC,OAAAA,EAAAqN,SAAA,GAAuCnpB,EAAuBq7D,WAAA,EAAAv/C,EAAA6K,SAAA,CAAAywC,EAAAxmD,SAAA,GAE9D,GAAAwrD,EAAA,CACA,IhF4BO50C,EgF5BP60C,GhF4BO70C,EgF5BkC40C,EAAAz1C,SAAA,ChF6BzCc,EgF7ByC60C,eAAA,ChF6BzC90C,GgF5BA+0C,EAAA,MACAH,CAAAA,EAAAj2D,MAAA,EAA0C8hB,GAAam0C,EAAAj2D,MAAA,GACvDo2D,CAAAA,EAA2C7nC,GAAsB0nC,EAAAj2D,MAAA,CAAAuO,EAAAigB,mBAAA,GAEjE9sB,EAAA,CAGAC,MAAAu0D,GAAA,EAAAA,EAAA,EACA/jB,KAAA8jB,EAAAz1C,SAAA,CACAssC,eAAAsJ,CACA,EACA,CACA,GAAK3uD,WAAA,GIPA2H,IAAA,CAQL,CACAA,KARA,WACA4hD,IACAE,IACAI,IACAC,IACAN,EAAA7hD,IAAA,EACA,EAGA29C,mBAAAA,CACA,GSsEA,CAAY39C,KAAMvM,GAAIkqD,mBAAA,IAA0BsJ,GAAA3kB,GAAAtiC,IAAA,CAAA29C,GAAArb,GAAAqb,kBAAA,CAChDtB,GfnGA,CACAr8C,KAFKlV,CAJLA,EAAa0uB,GAAgB,CAC7BrF,UeuGiCA,EftGjCsF,aAAA,SAAA/a,CAAA,EAAyC,OAAAA,EAAA6jB,IAAA,CAAArF,EAAA,GesGRA,CftGQ,EACzCxD,SeqGiC2oC,EfpGjC,IAAKriD,IAAA,CAGL2Z,YAHK7uB,EAAA6uB,WAAA,EeoG4ButC,GAAA7K,GAAAr8C,IAAA,CAAA2Z,GAAA0iC,GAAA1iC,WAAA,CAEjCwtC,GAA8Bz0D,GAAW0vD,GAvGlC,KA0GP,SAAAA,KACAE,KACAlF,IAAA,EACA,IAAAgK,EAAAtb,KAAAn6C,IAAAm6C,EAAmDjwC,KAAYiwC,EAAAzwC,SAAA,CAC/D8Y,EAAA3b,MAAA,IACA6nD,cAAAA,GACAjD,gBAAAA,GACAlgC,GAAAA,EACAvyB,KAAAA,EACAo6C,QAAAA,EACApD,QAAAA,EACA2d,YAAAA,EACAzgD,SAAAA,GACA+E,YAAAA,EACA25C,kBAAAyI,KACArI,mBAAAA,GACA/hD,S7FhFAsW,E6FgF6BtO,EAAAvI,SAAA,CAC7ByjD,SAAAhT,KAAAn6C,IAAAm6C,EACAoU,gBAAAA,GACAvmC,YAAAA,EACA,EACA,CACA,OAvBAyoC,KAuBA,CACAz3D,KAAAA,EACAo6C,QAAAA,EACApD,QAAAA,EACAwR,eAAAA,GACAjhC,IAAA,SAAApf,CAAA,EACA,IACAhI,EAAA2U,EADAtH,EAAA,UAEA,IAAArF,GAAsCA,CAAAA,EAAA,IACtCg5C,IAIAA,EAAA,OAAAhhD,CAAAA,EAAAgI,EAAAg5C,SAAA,GAAAhhD,KAAA,IAAAA,EAAAA,EAAkFiR,KAClFmkD,GAAA,OAAAzgD,CAAAA,EAAA3M,EAAAotD,eAAA,GAAAzgD,KAAA,IAAAA,GAAAA,EACA0U,EAAA3b,MAAA,IAAsEszC,UAAAA,CAAA,GAC1Dn5C,GAAaw0D,IACzBzC,GAAA5Y,EAAA3wC,QAAA,EACA8qD,KACA7D,KACY/vD,GAAU,WACtB8F,EAAA6H,IAAA,EACA,EA/IO,KAgJP,EACAA,KAAA,WACAinD,KACAC,KACAxF,KACAvO,GAAA36C,MAAA,EACA,EACA2rC,UAAA,SAAAx5C,CAAA,CAAAo4C,CAAA,EACA,IAAA+I,GAGA,IAUAub,EAVAC,EAA+BC,E7FlKxB,Q6FkK6CxkB,E7FxHpD7wB,E6FwH2EtO,EAAAvI,SAAA,CAC3EglD,EAAA,EASAgH,EAAA18D,EAAA2F,OAAA,8BATA3F,GAWQqC,EAAOT,IAAA,yBAAA+B,MAAA,CAXf3D,EAWe,oBAAA2D,MAAA,CAAA+4D,IAEfA,EAbA,CAAAC,EACAjF,KACA,CACA,CACA,EAtJAluC,EAAAgH,EAAAhc,EAAAN,EAAAygD,EAAA17C,EAAAk9C,GAKA,OAJAH,EAAAtsD,GAAA,CAAA0sD,GACAA,EAAA5N,cAAA,CAAAl7C,SAAA,YACA0oD,EAAA9lB,MAAA,CAAAkmB,EACA,GACAA,CACA,QAEA5sC,EAAAlc,SAAA,cAEA2oD,EAAAC,EAAA,eAAAlvD,KAAAA,EAAA,CACAhH,KAAAi2D,EAAAj2D,IAAA,CACAo6C,QAAA6b,EAAA7b,OAAA,CACApD,QAAAif,EAAAjf,OAAA,EAEA,GACAxtB,EAAAlc,SAAA,cACA2oD,EAAA1uC,GAAA,EAA8BguC,gBAAA,IAC9B,GAEA/rC,EAAAlc,SAAA,YAAAuvD,CAAA,EACAA,CAAAA,EAAAxgC,MAAA,GAAyCjX,GAAcE,SAAA,EAAAu3C,EAAAxgC,MAAA,GAAuCjX,GAAcG,QAAA,GAC5G0wC,EAAA1uC,GAAA,EAEA,GA5BAwuC,GACAjP,CAAAA,EA8BAlI,EAAAtxC,SAAA,UAAAnN,CAAA,MAsIAulD,EAAAoX,EAMAC,EANArX,EArIAvlD,EAAAomD,WAAA,CAqIAuW,EArIA38D,EAAAmmD,WAAA,CAsIAZ,EAAA2L,QAAA,GAAAyL,EAAAzL,QAAA,EACA,OAIA0L,EAAAxhC,EAJAA,IAAA,CAIAyhC,SAAA,MAEAlqD,SAAAigB,cAAA,CAAAgqC,IALAzhC,GAAAwhC,EAAAvhC,IAAA,IAAAD,GAAAoqB,EAAAnqB,IAAA,KAtIA06B,EAAA1uC,GAAA,GACA0uC,EAAAC,EAAA,gBAEA,EApCA,EAsCA,CACA1c,UAAA,SAAAx5C,CAAA,CAAAo4C,CAAA,EACA,SAAAA,GAAmCA,CAAAA,EAAOlnC,IAAY,EACtD+kD,EAAAzc,SAAA,CAAAx5C,EAAAo4C,EACA,EACAiB,UAAA,SAAAlxC,CAAA,CAAA8Q,CAAA,EACAg9C,EAAA1uC,GAAA,EAA8B45B,UAAAloC,CAAA,GAC9Bg9C,EAAAC,EAAA,eAAAj9C,EAAA9Q,EACA,EACAkN,KAAA,WACAyxC,MAAAA,GAAAA,EAAAp5C,WAAA,GACAuoD,EAAA1uC,GAAA,GACAyuC,EAAA7zD,OAAA,UAAAy1B,CAAA,EAAkD,OAAAA,EAAAviB,IAAA,IAClD,CACA,CACA,EClEqBnB,GgBkEWsV,GAAAgH,GAAAhc,EAAAoqC,GhBlEX,CAAApqC,EAAA6oC,kBAAA,CgBkEWvE,IAAAU,GAAA1kC,GAAA0kC,SAAA,CAAAH,GAAAvkC,GAAAukC,SAAA,CAAA4jB,GAAAnoD,GAAAO,IAAA,CAChCqqC,GAAA76C,IAAA,CAAAo4D,IACA,IAAA1jB,GAAmB2jB,CvCzEZhe,EGGPA,GAAA,IAA8B/xC,GHFPgwD,CDQvBhe,EAAAI,CCR8C/9C,EAAcK,KAAA,EDQ5DqD,GAAA,UAAA+a,CAAA,MAYA9R,EARA,OAHA8pB,EAAA,CAAAhY,EAAA,EACAgY,CAAAA,EAAA,CAAAhY,EAAA,CAUA9R,EAAA,IAAyBhB,GAAU,WACnC,IAAAiwD,EAAiCt7D,CAAa,CAX9Cme,EAW8C,CAY9C,OAXQne,CAAa,CAZrBme,EAYqB,YAErB,QADAo9C,EAAA,GACA16D,EAAA,EAA6BA,EAAAC,UAAAC,MAAA,CAAuBF,IACpD06D,CAAA,CAAA16D,EAAA,CAAAC,SAAA,CAAAD,EAAA,CAEAy6D,EAAAt6D,KAAA,CAAAf,QAAAs7D,GACA,IAAArkD,EAAgCmB,KACpBnW,EAAa,WACzBmK,EAAAN,MAAA,CAAAyvD,SASAD,CAAA,CAAAp9C,CAAA,CAAAjH,CAAA,EACA,IACAjC,EACA+C,EAFAtB,EAAA6kD,EAAAn4D,GAAA,UAAAq4D,CAAA,EAAgD,MAiBhD,iBAjBgDA,EAkBjChyD,GAlBiCgyD,GAoBhDA,aAAAlkD,MACeY,GAAmBpD,GArBc0mD,IAuBrC7yD,GAAca,GAvBuBgyD,GAuBfv2D,KAAAA,EAAA,EAvBe,GAAwCmD,IAAA,MAGxF,GAAA8V,IAAgBze,EAAcK,KAAA,EAC9B,IAAA27D,EAA8B14D,EAAIu4D,EAAA,SAAAE,CAAA,EAA4B,OAAAA,aAAAlkD,KAAA,GAC9DtC,EAAAymD,EAAkCjkD,GAAmB1C,GAAiB2mD,IAAAx2D,KAAAA,EACtE8S,EAAsBC,GAAmByjD,EACzC,CACA,OACAv9C,IAAAA,EACAzH,QAAAA,EACAzB,MAAAA,EACAiC,cAAAA,EACAc,YAAAA,CACA,CACA,EAzBAujD,EApBAp9C,EAoBAjH,GACA,EACA,EACA,WACYlX,CAAa,CAxBzBme,EAwByB,CAAAm9C,CACzB,CACA,EA1BA,EAEAnlC,EAAA,CAAAhY,EAAA,GAEWlS,GAAgBjL,KAAA,QAAAq8C,ICdiC7xC,SAAA,UAAAmwD,CAAA,EAC5D,OAAAve,EAAArxC,MAAA,EACAoL,YAAyB7H,KACzBoH,QAAAilD,EAAAjlD,OAAA,CACAzB,MAAA0mD,EAAA1mD,KAAA,CACA+C,YAAA2jD,EAAA3jD,WAAA,CACA3T,OAAoB4jB,GAAWE,OAAA,CAC/B9Q,SAAA,UACAH,cAAAykD,EAAAzkD,aAAA,EAEA,GFKA0kD,CASO/1D,EApBP23C,GAAA,SAAAxmC,CAAA,CAAAC,CAAA,EACA,IAAAhS,EAAmB8R,GAAe,CAClCC,WAAAA,EACAC,cAAAA,EACAE,YAAyB7H,KACzB8H,eAAA,WACA/S,OAAoB4jB,GAAWI,MAAA,CAC/BhR,SAAA,WACA,GACA+lC,GAAArxC,MAAA,CAAA9G,EACA,EAWWylB,GAA+B/mB,OAAA,WAC1CgnB,OAAA,SAAAkxC,CAAA,CAAA3lD,CAAA,CAAAX,CAAA,CAAAS,CAAA,CAAA8lD,CAAA,MACA9kD,E7DwFA3Y,EAUAA,EACAH,EACAwY,E6D7FA7Q,EALAmR,EADA8kD,aAAAvkD,MAC6BxC,GAAiB+mD,G7DuF9C,CACA59D,KAFAG,CAaU,oBAAV,KAAU4F,QAAA,CAAArC,IAAA,C6DhGsDi6D,I7DkGhEx9D,CAAAA,EAAAA,CAAAA,EAAAwY,GAAA7G,IAAA,C6DlGgE6rD,E7DkGhE,KAAAnlD,EAAArY,CAAA,KAfAA,EAiBA,CAAaH,KAAAA,EAAAwY,QAAAA,CAAA,GAjBbxY,IAAA,CAGAwY,QAHArY,EAAAqY,OAAA,CAIAzB,MALA,EAAmBiB,I6DlF6CA,E7DkF7CF,O6DlF6CA,E7DkF7CT,K6DlF6CA,C7DkF7C,EAAsC,E6DhFzDumD,MAAAA,EAAAA,EAAAD,EACA,CACA,IArBAtoD,IAAA,CACAwoD,GAuB0Cp4D,OAAA,wBAC1CgnB,OAAA,SAAAvoB,CAAA,EACA,IAAAm4B,EAAAn4B,EAAAm4B,MAAA,iBAEA10B,GADwBkP,GAAiBwlB,GACzCA,EACA,CACA,GA7BAhnB,IAAA,CIhBuByoD,CDUvB9vD,GAAA,GACQ5J,EAFDm7C,GCToC,IDK3C,eCFA,MDSAvxC,GAAAnJ,IAAA,CA8BAsJ,EAAA,IAAyBhB,GAAU,WAInC,OAHmBoH,GsC6BoBC,EtC7BJ1B,SAA0BlT,EAASm+D,yBAAA,UAAAhqD,CAAA,MAkBtEyE,EAjBArK,EAAAN,MAAA,EAiBA2K,EAAA,IAAA7U,MAAA,CAAAoQ,EAAAiqD,UAAA,mBAAAr6D,MAAA,CAAAoQ,EAAAkqD,kBAAA,gBACA,CACApkD,IAAA,IACAqkD,QAAAnqD,EAAAkqD,kBAAA,CACAzlD,QAAA,GAAA7U,MAAA,UAAAA,MAAA,CAAA6U,GACAzB,MAAAmhB,GAAAnkB,EAAAkqD,kBAAA,CAAAlqD,EAAAoqD,cAAA,CACA,GAAAx6D,MAAA,CAAA6U,EAAA,oBAAA7U,MAAA,CAA6DoO,GAAYgC,EAAAoqD,cAAA,iBACzE,YAAApqD,EAAAokB,UAAA,CAAApkB,EAAAqkB,UAAA,CAAArkB,EAAAskB,YAAA,CACA,GAxBA,GAAShjB,IAAA,IA9BTmqC,CADAA,GAAAD,GAAA5xC,MAAA,UAAAsS,CAAA,EAAmD,OAAAA,MAAA,IACnDpd,MAAA,EACAmL,GAAAnJ,IAAA,CAKAsJ,EAAA,IAAyBhB,GAAU,WACnC,GAAA1H,OAAA24D,iBAAA,EAGA,IAAAC,EAA4Bt6D,EAAO,SAAAu6D,CAAA,CAAAj4C,CAAA,EACnC,OAAAi4C,EAAAn8D,OAAA,UAAAo8D,CAAA,MAyBA1kD,EAAAgF,EAxBA1Q,EAAAN,MAAA,CAyBA,CACAgM,IAAA,CAFAA,EAAA1Z,EAAA0Z,IAAA,CAGAqkD,QAAAr/C,CAHAA,EAAA1e,EAAA0e,IAAA,EAGA0T,EAAA,CACA/Z,QAAA,GAAA7U,MAAA,CAAAkW,EAAA,MAAAlW,MAAA,CAAAkb,EAAArG,OAAA,EACAzB,MAAAmhB,GAAArZ,EAAA0T,EAAA,CAAA1T,EAAArG,OAAA,CAAAqG,EAAAsZ,UAAA,CAAAtZ,EAAAuZ,UAAA,CAAAvZ,EAAAwZ,YAAA,CACA,EA7BA,EACA,GACAp3B,EAAA,IAAAwE,OAAA24D,iBAAA,CAAAC,EAAA,CACAG,MAfAhf,GAgBA4a,SAAA,EACA,GAEA,OADAn5D,EAAAwxC,OAAA,GACA,WACAxxC,EAAA8xC,UAAA,EACA,EACA,IApBWhlC,GAAgBjL,KAAA,QAAAkL,KCf3BV,SAAA,UAAAkwB,CAAA,EACA,OAAA0hB,GAAArxC,MAAA,EACAoL,YAAyB7H,KACzBoH,QAAAglB,EAAAhlB,OAAA,CACAzB,MAAAymB,EAAAzmB,KAAA,CACA8C,KAAA2jB,EAAA0gC,OAAA,CACA/3D,OAAoB4jB,GAAWK,MAAA,CAC/BjR,SAAA,WACA,EACA,GCNA+lC,GAAA5xC,SAAA,UAAAzL,CAAA,EAAiD,OAAA2nB,GAAA3b,MAAA,KAA2EhM,MAAAA,CAAA,EAAc,GAI1I2nB,GAAAlc,SAAA,aAAAnN,CAAA,EACA,IA4BAw3B,EAiBA4tB,EA7CA1jD,EAAA1B,EAAA0B,KAAA,CAAA61B,EAAAv3B,EAAAu3B,eAAA,CAAAo0B,EAAA3rD,EAAA2rD,kBAAA,CACAtiC,GAAA3b,MAAA,IAA8E7H,EAAM,CACpF0xB,gBAAAA,EACAo0B,mBAAAA,CACA,GAwBAn0B,EAAA,CACArlB,KAAAzQ,EAAAoX,WAAA,CAAAvI,SAAA,CACA7O,MAAA,CACA0wB,GAAgBhhB,KAChBiH,QAAA3W,EAAA2W,OAAA,CACArS,OAAAtE,EAAAsE,MAAA,CACA4Q,MAAAlV,EAAAkV,KAAA,CACA0nD,eAAA58D,EAAAmX,aAAA,CACAa,KAAAhY,EAAAgY,IAAA,CACAV,SAAAtX,EAAAsX,QAAA,CACAK,OAAA3X,EAAA2X,MAAA,CACAklD,YAAA,UACA5kD,YAAAjY,EAAAiY,WAAA,EAEAD,KAAA,QACA+d,KAAA,CAAgBC,cAAAZ,GAAAa,qBAAA,CAAAj2B,EAAAoX,WAAA,CAAAzI,QAAA,EAChB,GACA+0C,EAAAzE,GAAAG,0BAAA,CAAAp/C,EAAAoX,WAAA,CAAAzI,QAAA,IACA,CAA+BqK,GAAa0qC,IAC5C5tB,CAAAA,EAAAk9B,aAAA,CAAAtP,CAAA,EAEA,CACA5tB,YAAAA,EACAlR,UAAA5kB,EAAAoX,WAAA,CAAAzI,QAAA,CACAunB,cAAA,CACAl2B,MAAAA,EAAAkX,aAAA,CAEA,IAlDA,GACA,CACAwgC,SAAA,SAAAp5C,CAAA,CAAA2rD,CAAA,EACA,IAAAjqD,EAAA1B,EAAA0B,KAAA,CAAAmX,EAAA7Y,EAAA6Y,aAAA,CAAAC,EAAA9Y,EAAA8Y,WAAA,CAAAye,EAAAv3B,EAAA8D,OAAA,CAEA06D,EAA2B9lD,GAAe,CAC1CC,WAFAjX,aAAAwX,MAAsDxC,GAAiBhV,GAAAmF,KAAAA,EAGvE+R,cAAAlX,EACAmX,cAAAA,EACAC,YAAAA,EACAC,eAAA,WACA/S,OAAwB4jB,GAAWG,MAAA,CACnC/Q,SAAA,SACA,GACAqQ,GAAA3b,MAAA,KACA6pB,gBAAAA,EACAo0B,mBAAAA,EACAjqD,MAAA88D,CACA,EACA,CACA,GoCoCuCplB,QAAA,CnDrEvCkG,G9B2BA,CACA79B,qBAAAA,GACAg9C,WAAA,SAAA36D,CAAA,EACA,OAAAie,GiFwC0B1N,EjFxC1BvQ,EiFwC0BsX,GjFxC1B,SAAAiH,CAAA,EACA,IAAAriB,EACA,GAAA8D,EAAA6pB,KAAA,YAAAG,SAAA,SAAA9tB,CAAAA,EAAA8D,EAAA8pB,IAAA,GAAA5tB,KAAA,IAAAA,EAAA,OAAAA,EAAA0+D,OAAA,EACA56D,EAAA6pB,KAAA,KAAAG,QAAAhqB,EAAA6pB,KAAA,EACA7rB,OAAAC,IAAA,CAAAsgB,GAAArgB,OAAA,UAAAgD,CAAA,EAEAlB,EAAA6pB,KAAA,CAAA+wC,OAAA,CAAAC,MAAA,CAAA35D,EAAAqd,CAAA,CAAArd,EAAA,CACA,OAEA,CACAlB,EAAA8pB,IAAA,CAAmCpT,GAAY1W,EAAA8pB,IAAA,EAC/C,IAAAgxC,EAAA,GACA96D,EAAA8pB,IAAA,CAAA8wC,OAAA,YAAAG,QACA/6D,EAAA8pB,IAAA,CAAA8wC,OAAA,CAAA18D,OAAA,UAAA6G,CAAA,CAAA7D,CAAA,EACA45D,EAAAl6D,IAAA,EAAAM,EAAA6D,EAAA,CACA,GAEAzF,MAAA0F,OAAA,CAAAhF,EAAA8pB,IAAA,CAAA8wC,OAAA,EACA56D,EAAA8pB,IAAA,CAAA8wC,OAAA,CAAA18D,OAAA,UAAA88D,CAAA,EACAF,EAAAl6D,IAAA,CAAAo6D,EACA,GAEAh7D,EAAA8pB,IAAA,CAAA8wC,OAAA,EACA58D,OAAAC,IAAA,CAAA+B,EAAA8pB,IAAA,CAAA8wC,OAAA,EAAA18D,OAAA,UAAAgD,CAAA,EACA45D,EAAAl6D,IAAA,EAAAM,EAAAlB,EAAA8pB,IAAA,CAAA8wC,OAAA,CAAA15D,EAAA,EACA,GAEAlB,EAAA8pB,IAAA,CAAA8wC,OAAA,CAAAE,EAAAp7D,MAAA,CAA4DyB,EAAaod,GACzE,CACA,EACA,EACA08C,SAAA,SAAAj7D,CAAA,CAAAmpB,CAAA,EACA,OAAAlL,GiFQ0B1N,EjFR1BvQ,EiFQ0BsX,GjFR1B,SAAAiH,CAAA,EACAvgB,OAAAC,IAAA,CAAAsgB,GAAArgB,OAAA,UAAAnC,CAAA,EACAotB,EAAA0S,gBAAA,CAAA9/B,EAAAwiB,CAAA,CAAAxiB,EAAA,CACA,EACA,EACA,CACA,E8BnEAm/D,SAGO31C,CAAA,CAAAhV,CAAA,CAAAirC,CAAA,MJMPtxC,EILuBixD,CJDvBx+D,GACAA,CAAAA,EAKAuN,EAAA,IAAyBhB,GAAU,WACnC,IAAAkyD,EAAqC7yC,GAA+Be,eAAA/pB,SAAA,SACpEipB,OAAAM,EACA,GAAS1X,IAAA,CACTiqD,EAAoC9yC,GAA+Be,eAAA/pB,SAAA,SACnEipB,OAAA,WACAS,GAAAxpB,IAAA,MIXwC8Q,EJWxCrG,EACA,CACA,GAASkH,IAAA,CACTkqD,EAAqC/yC,GAA+Be,eAAA/pB,SAAA,UACpEipB,OAAAmB,EACA,GAASvY,IAAA,CACT,kBACAgqD,IACAC,IACAC,GACA,CACA,EAtBA,EAEA3+D,GIFwC0M,SAAA,UAAAyI,CAAA,EAExC,GAAayR,GAAmBhT,EAAAvQ,EAAA+T,GAAA,EAGhC,OAAA/T,EAAA+oB,KAAA,EACA,YACAyyB,EAAAyf,QAAA,CANAnpD,EAMA9R,EAAAmpB,GAAA,EACAnpB,EAAA6sB,YAAA,CAAAlC,KACApF,EAAA3b,MAAA,IACAijB,aAAA7sB,EAAA6sB,YAAA,CACA9Y,IAAA/T,EAAA+T,GAAA,GAEA,KACA,gBACAynC,EAAA79B,oBAAA,CAdA7L,GAeAyT,EAAA3b,MAAA,IACAoD,SAAAhN,EAAAgN,QAAA,CACAmb,OAAAnoB,EAAAmoB,MAAA,CACA0E,aAAA7sB,EAAA6sB,YAAA,CACA9O,OAAA/d,EAAA+d,MAAA,CACA/I,YAAAhV,EAAAgV,WAAA,CACA4I,OAAA5d,EAAA4d,MAAA,CACAE,QAAA9d,EAAA8d,OAAA,CACAE,aAAAhe,EAAAge,YAAA,CACApI,KAAA,MACA7B,IAAA/T,EAAA+T,GAAA,CACAoV,IAAAnpB,EAAAmpB,GAAA,EAGA,CACA,EAEA,EmDgC0B5D,GAAAhV,EnDrE1BirC,IAuCuB+f,CHtCvB3+D,GACAA,CAAAA,EAKAsN,EAAA,IAAyBhB,GAAU,WACnC,GAAA1H,OAAA45B,KAAA,CAmBA,OAhBmBlT,GAAgB1mB,OAAA,iBAAAg6D,CAAA,EACnC,gBAAA3xC,CAAA,CAAAC,CAAA,EAEA,IADAI,EACAlqB,EAA8BD,EAAa6pB,GAAA,MAAA1f,EAAA2f,EAAAC,EAAA,EAU3C,OATA9pB,EAIoBD,EAAakqB,GAAA,MAAA/f,EADjCggB,EAAAsxC,EAAA/7D,IAAA,MAAAO,EAAA6pB,KAAA,CAAA7pB,EAAA8pB,IAAA,EACiC9pB,EAAA,EAGjCkqB,EAAAsxC,EAAA/7D,IAAA,MAAAoqB,EAAAC,GAEAI,CACA,CACA,GAAS9Y,IAAA,EAxBT,EAEAxU,GGmC0CyM,SAAA,UAAAyI,CAAA,EAE1C,GAAayR,GmD4BahT,EnD5BMvQ,EAAA+T,GAAA,EAGhC,OAAA/T,EAAA+oB,KAAA,EACA,YACAyyB,GAAAmf,UAAA,CANA7oD,GAOA9R,EAAA6sB,YAAA,CAAAlC,KACApF,GAAA3b,MAAA,IACAijB,aAAA7sB,EAAA6sB,YAAA,CACA9Y,IAAA/T,EAAA+T,GAAA,GAEA,KACA,mBA8BArQ,E3D3CO2f,E2D4CPo4C,EADA/3D,EA7BA,SAAAsJ,CAAA,EACAwuC,GAAA79B,oBAAA,CAfA7L,GAgBAyT,GAAA3b,MAAA,IACAoD,SAAAA,EACAmb,OAAAnoB,EAAAmoB,MAAA,CACA0E,aAAA7sB,EAAA6sB,YAAA,CACArC,aAAAxqB,EAAAwqB,YAAA,CACAzM,OAAA/d,EAAA+d,MAAA,CACA/I,YAAAhV,EAAAgV,WAAA,CACA4I,OAAA5d,EAAA4d,MAAA,CACAE,QAAA9d,EAAA8d,OAAA,CACAE,aAAAhe,EAAAge,YAAA,CACApI,KAAA,QACA7B,IAAA/T,EAAA+T,GAAA,CACAqW,SAAApqB,EAAAoqB,QAAA,CACAN,KAAA9pB,EAAA8pB,IAAA,CACAD,MAAA7pB,EAAA6pB,KAAA,EAEA,EAaA,CADA4xC,EAAAz7D,EAAAoqB,QAAA,EAA6CsxC,SFvFtCtxC,CAAA,EACP,IACA,OAAAA,EAAA27B,KAAA,EACA,CACA,MAAA9lD,EAAA,CAEA,MACA,CACA,EE+EuDD,EAAAoqB,QAAA,IACvDqxC,EAAA7gD,IAAA,CAKQ+gD,SDzFDC,CAAA,CAAAl4D,CAAA,CAAAQ,CAAA,EACP,IAAA23D,EAAAD,EAAAE,SAAA,GACAC,EAAA,GACAC,EAAA,EAoBA,SAAAC,IAOA,GANAJ,EAAAj3D,MAAA,GAAAs3D,KAAA,CAGQr3D,IAGRX,EAAAi4D,iBAAA,EAEA,GAAAJ,IAAAA,EAAAn9D,MAAA,CAGAw9D,EAAAL,CAAA,QAEA,CAEAK,EAAA,IAAAj9C,WAAA68C,GACA,IAZAK,EACAC,EAEAF,EASAG,EAAA,EACAR,EAAA79D,OAAA,UAAAs+D,CAAA,EACAJ,EAAApzD,GAAA,CAAAwzD,EAAAD,GACAA,GAAAC,EAAA59D,MAAA,EAEA,CACAy9D,EAAAD,EAAA58D,KAAA,GAAA0E,EAAA42B,UAAA,EACAwhC,EAAAF,EAAAx9D,MAAA,CAAAsF,EAAA42B,UAAA,CAEAp3B,EAAAX,KAAAA,EAAAs5D,EAAAC,EACA,CA9CAG,CACA,SAAAA,IACAZ,EAAAa,IAAA,GAAAjyC,IAAA,CAA2B3qB,EAAO,SAAAgJ,CAAA,EAClC,GAAAA,EAAA6zD,IAAA,EACAV,IACA,MACA,CACA/3D,EAAAi4D,iBAAA,EACAJ,EAAAn7D,IAAA,CAAAkI,EAAA/D,KAAA,EAGAi3D,CADAA,GAAAlzD,EAAA/D,KAAA,CAAAnG,MAAA,EACAsF,EAAA42B,UAAA,CACAmhC,IAGAQ,GAEA,GAAY38D,EAAO,SAAAlC,CAAA,EAAoB,OAAA8F,EAAA9F,EAAA,GACvC,IA6BA,ECsC2B69D,EAAA7gD,IAAA,gB3DlDpByI,E2DmDP3f,G3DnDO2f,E2DmDqBrjB,EAAAgV,WAAA,CAAAvI,SAAA,C3DlD5B6W,KAAAD,G2DmDA,EAAS,CACTyX,WAAAnW,OAAAi4C,iBAAA,CACAT,kBAAA,EACA,GARAz4D,G3D/CO2f,E2D+CiBrjB,EAAAgV,WAAA,CAAAvI,SAAA,C3D9CxB6W,KAAAD,G2DiCA,CACA,GmDLIw5C,SpEnDGt3C,CAAA,CAAAhV,CAAA,MAkEA7M,EA9DP,GA8DOA,EAjEP,SAAA2J,CAAA,EACAiY,GAAAC,EAAAhV,EAAA,CAAAlD,EAAA,CACA,EAgEIuU,GAlEJrR,EAkEmB,yBAEnB,IADAlD,EACAyvD,EAAA,CACA93C,UAAAnpB,EAAAgqB,QAAA,CACA1D,cAA2BF,GAC3BnE,QAAqBi/C,SD9FdluD,CAAA,EACP,IAOAmuD,EACAC,EARApzD,EAAAqzD,CAAAA,EAOAruD,EAAAmjB,aAAA,2BACAirC,EAAApuD,EAAAmjB,aAAA,6BACAxN,GAAAw4C,GAAAA,EAAAG,OAAA,CAAAF,GAAAA,EAAAE,OAAA,GATAC,SAWOvuD,CAAA,EACP,IAAAwuD,EAAAC,SAgBOzuD,CAAA,EAIP,QAAAzP,EAAA,EAAoBA,EAAAyP,EAAAwV,UAAA,CAAAzlB,MAAA,CAAgCQ,GAAA,GACpD,IAAAi+D,EAAAz4C,GAAA/V,EAAAwV,UAAA,CAAAjlB,EAAA,EACA,GAAAi+D,EACA,OAAAA,CAEA,CAKA,GAAAxuD,EAAA+L,IAAA,CACA,QAAAxb,EAAAyP,EAAA+L,IAAA,CAAAyJ,UAAA,CAAAzlB,MAAA,GAA0DQ,GAAA,EAAQA,GAAA,GAClE,IAAAskB,EAAA7U,EAAA+L,IAAA,CAAAyJ,UAAA,CAAAjlB,EAAA,CACAi+D,EAAAz4C,GAAAlB,GACA,GAAA25C,EACA,OAAAA,EAEA,IAAiB55C,GAAUC,GAC3B,KAEA,CAEA,EA1CA7U,GACA,GAAAwuD,EAGA,OAAA74C,GAAmC9W,GAAuB2vD,EAAA,YAAuB3vD,GAAuB2vD,EAAA,cACxG,EAjBAxuD,EAAA,EACA,MAAAhF,GAAAA,EAAA6a,SAAA,EAAmChY,KAH5B,IAGmC,EAG1C,OAAA7C,EAAAiU,OAAA,ECyFuCjP,UACvCxH,OAAA,WAAkC,OAAOtF,EAAM,GAAGsL,EAAA,CAAYhG,OAAAtE,KAAAA,CAAA,EAAmB,CACjF,EACA,GAAAgiB,GAAAlpB,EAAA8pB,UAAA,GACAhZ,YAAA4wD,gBAAA,CAAA1hE,EAAA8pB,UAAA,EAAA/mB,MAAA,GAEAyO,EAAqBtL,EAAMy7D,YAD3BD,gBAAA,CAAA1hE,EAAA8pB,UAAA,KAC2Bte,MAAA,GAAAy1D,OAE3B,CACA,IAAAW,EAAAt4C,KACA9X,EAAqBtL,EAAM07D,EAAA,CAC3B/oC,gBAAA,EACA1nB,SAAAywD,EAAAz6C,WAAA,CACAjnB,KAAAyF,OAAAyO,QAAA,CAAA8J,IAAA,CACAyI,UAAA,CACA,EAAas6C,EACb,CACAp5D,EAAA2J,EACA,GAtFAyX,KAAA,CACA,IAAA44C,EAAA/wD,YAAAspD,UAAA,GAGQxyD,GAAU,WAAe,OAAA6hB,GAAAC,EAAAhV,EAAAmtD,EAAA,EACjC,CACA,GAAAl8D,OAAAyjB,mBAAA,EACA,IAAA04C,EAA2C79D,EAAO,SAAA0lB,CAAA,EAClD,OAAAF,GAAAC,EAAAhV,EAAAiV,EAAAywC,UAAA,GACA,GACA2H,EAAA,CACA/hE,EAAAgqB,QAAA,CACAhqB,EAAA8pB,UAAA,CACA9pB,EAAAgwD,SAAA,CACAhwD,EAAA67D,KAAA,CACA,CACAmG,EAAA,CACAhiE,EAAAi8D,wBAAA,CACAj8D,EAAAq7D,WAAA,CACAr7D,EAAAm5D,YAAA,CACAn5D,EAAA+5D,KAAA,CACA,CACA,IAIAiI,EAAA3/D,OAAA,UAAA0X,CAAA,EAEA5Y,IADAwE,OAAAyjB,mBAAA,CAAA04C,GACAnvB,OAAA,EACA54B,KAAAA,EACAugD,SAAA,GAGAC,kBAAA,EACA,EACA,EACA,CACA,MAAAn2D,EAAA,CAGA29D,EAAAh9D,IAAA,CAAA/B,KAAA,CAAA++D,EAAAC,EACA,CAEAC,IADA74C,oBAAA04C,GACAnvB,OAAA,EAA+BuvB,WAAAH,CAAA,GAC/B94C,MAAA,qBAAAnY,aAEY2D,GAAgBC,EAAA5D,YAAA,sCAC5BA,YAAAqxD,oBAAA,EACA,EAEA,CACAj5C,GAAAlpB,EAAA8pB,UAAA,GACAs4C,SAoCA1tD,CAAA,CAAA7M,CAAA,EACA,SAAAw6D,IACAx6D,EAAiB3B,EAAMojB,KAAA,CACvBH,UAAAnpB,EAAA8pB,UAAA,GAEA,CACI/D,GAAerR,EAAA,sBAEX9M,GAAUy6D,EAClB,EACA,EA9CA3tD,EAAA,SAAAlD,CAAA,EACAiY,GAAAC,EAAAhV,EAAA,CAAAlD,EAAA,CACA,GAEA0X,GAAAlpB,EAAAq7D,WAAA,GACAiH,SA8CA5tD,CAAA,CAAA7M,CAAA,EACA,IAAA06D,EAAyB1xD,KACzB2xD,EAAA,GACAC,EAA+B3tD,GAAiBJ,EAAA/O,OAAA,CAAyB7F,EAAS4sC,KAAA,CAAQ5sC,EAAS2sC,UAAA,CAAa3sC,EAAS8jD,QAAA,CAAW9jD,EAASitC,WAAA,CAAcjtC,EAAS0qD,YAAA,WAAAkY,CAAA,EAEpK,GAAAA,EAAAC,UAAA,EAMA,IAAAnxD,EAAA,CACA2X,UAAAnpB,EAAAq7D,WAAA,CACAiB,gBAA6BjrD,KAC7BuxD,cAA2BvxD,KAC3BsV,UAAA+7C,EAAA9xD,SAAA,CACAO,SAAA,EACAjR,KAAA,EACA,CACAwiE,CAAAA,EAAA3oD,IAAA,GAAyBja,EAAS0qD,YAAA,CAc1B11C,GAbRJ,EAayB/O,OAAA,CAAyB7F,EAAS0sC,UAAA,CAAa1sC,EAAS+iE,cAAA,WAAA5uD,CAAA,EACjFA,EAAA8F,IAAA,GAA+Bja,EAAS0sC,UAAA,EACxCs2B,EAfAtxD,EAiBA,EAAS,CAAIyD,KAAA,KAdb6tD,EAAAtxD,GAEA,EAAK,CAAI2D,QAAA,GAAAD,QAAA,KAA8BK,IAAA,CAcvC,SAAAutD,EAAAtxD,CAAA,EACA,IAAAgxD,EAAA,CACAA,EAAA,GACAC,IAMA,IAAA36D,EAAA0J,EAAA8qD,eAAA,CAAA9qD,EAAAmV,SAAA,CACA7e,GAAA,GAAAA,EAAsC+I,KAAO0xD,GAC7C16D,EAAA2J,EAEA,CACA,CACA,EApGAkD,EAAA,SAAAlD,CAAA,EACAiY,GAAAC,EAAAhV,EAAA,CAAAlD,EAAA,CACA,EAEA,EoEd8BkY,GAAAhV,GAC9B,IAAAquD,I7DzEO/oB,G6DyEuCtlC,EAAAslC,aAAA,C7DxE9C,CACAtzC,IAAA,SAAAigB,CAAA,EACA,IAAAumC,EAAA5T,GAAAwH,QAAA,CAAAn6B,GACAwmC,EAAAlO,GAAAiI,OAAA,CAAAvgC,GACAlL,EAAA4G,GAAAG,kBAAA,CAAAmE,GACA,GAAAlL,GAAAyxC,GAAAC,EAAA,CACA,IAAAC,EAAAlO,GAAA6B,YAAA,CAAAp6B,GACA,OACAq8C,eAAAhpB,GACAipB,WAAAxnD,EAAAgX,EAAA,CACAywC,YAAA9V,EAAA,CAA8C36B,GAAA26B,CAAA,EAAelmD,KAAAA,EAC7D4wB,KAAA,CAA4BrF,GAAAy6B,EAAAz6B,EAAA,CAAAvyB,KAAAgtD,EAAAhtD,IAAA,CAAA6mD,SAAAoG,EAAApG,QAAA,CAAA7uC,IAAAi1C,EAAAj1C,GAAA,CAC5B,CACA,CACA,CACA,G6D0DA,OACAshC,UAAAA,GACAC,SAAAA,GACAC,UAAAA,GACAC,yBAAAqH,GAAArH,wBAAA,CACAJ,UAAAA,GACA7vB,UAAAA,GACA4vB,aAAAA,GACA79B,QAAAA,GACAo+B,YAAA,WAAmC,OAAAp+B,GAAAC,MAAA,IACnCk+B,mBAAAmpB,GAAAr8D,GAAA,CACA6O,KAAA,WACAqqC,GAAAv9C,OAAA,UAAA8gE,CAAA,EAAmD,OAAAA,GAAA,EACnD,CACA,CACA,E+CtFkBC,SDFXC,CAAA,CAAAxsB,CAAA,EACP,GAAQ3iC,MAAiB,CAAO2gC,KAChC,OACArtB,MAAmBxe,GACnBuM,KAAkBvM,GAClBypD,eAAA,WAA0C,EAC1C3Y,WAAwB9wC,GACxBqb,YAAA,WAAuC,UACvCg1B,qBAAA,WAAgD,CAChD,EAEA,IAAAnsB,EAAA,CACAnL,OAAA,CACA,EACAuhD,EAAA,WACAp2C,EAAA,CAAkBnL,OAAA,EAClB,EACAwhD,EAAA,WACAr2C,EAAA,CAAkBnL,OAAA,EAClB,EACA,OACAyF,MAAA,WAA6B,OAAA87C,GAAA,EAC7B/tD,KAAA,WAA4B,OAAAguD,GAAA,EAC5BlqB,qBAAA,SAAA3kC,CAAA,CAAA2N,CAAA,CAAAi3B,CAAA,MJ1BOkqB,EACP/nD,EACAgoD,EzCHOpjE,EACPob,EAAAyxC,EAAAuW,EACAC,EACA56D,EAQAgV,EyCAArC,EzCKAoE,EACA49B,E6CWA,OJ3BO+lB,EI2BgCt2C,IAAAA,EAAAnL,MAAA,CJjBvCtG,EATAA,EAAA4G,EAAAG,kBAAA,GACAihD,EASA,KAGAhoD,EAMAA,EAAAumC,oBAAA,CAlBAwhB,SAwBA,qBAHA,yBALA,kBANA,wBzCZA/nD,EAAApb,CADOA,EyCKuB,CAC9B6sD,YAFA5T,EAAAwH,QAAA,GAGA2iB,UAAAA,EACAhoD,QAAAA,CACA,GzCRAA,OAAA,CAAAyxC,EAAA7sD,EAAA6sD,WAAA,CAAAuW,EAAApjE,EAAAojE,SAAA,CACAC,EAAAjoD,EAAAA,EAAAgX,EAAA,iBACA3pB,EAAA,GACA5B,KAAAA,IAAAu8D,GACA36D,EAAA/D,IAAA,eAAAlB,MAAA,CAAA4/D,IAEAvW,IACApkD,EAAA/D,IAAA,SAAAlB,MAAA,CAAAqpD,EAAAz6B,EAAA,GACA3pB,EAAA/D,IAAA,SAAAlB,MAAA,CAAAqpD,EAAA/zC,WAAA,CAAAvI,SAAA,IAOAiP,EAAA8jD,EAAA9jD,IAAA,CACA49B,EAAAkmB,EAAAlmB,SAAA,EAAAmmB,SAGAlvD,CAAA,EACA,OAAAA,EAAAmL,IAAA,EACA,KAAaX,GACb,IxFtBO,ewFuBP,WACA,MAAaD,GACb,UACA,SACA,MACA,CACA,E6CFuCvK,G7CjBvCoJ,EAOA,WAAAja,MAAA,CAAA45C,EAAA,GAAA55C,MAAA,CAAA45C,EAAA,SAAA55C,MAAA,CAAAgc,GALA,GAAAhc,MAAA,CAAAia,GAAAja,MAAA,CADA,wBAAAA,MAAA,CAAA6/D,GACA,KAAA7/D,MAAA,CAAAiF,EAAAuB,IAAA,M6CgBA,EACAyvC,WAAA,SAAApwB,CAAA,CAAAhV,CAAA,CAAA2N,CAAA,CAAAi3B,CAAA,CAAApE,CAAA,EACAxgC,EAAA0oC,mCAAA,EACAlwB,CAAAA,EAAA,CAA0BnL,OAAA,IAE1B2H,EAAAlc,SAAA,cACA0f,CAAAA,IAAAA,EAAAnL,MAAA,EAAAmL,IAAAA,EAAAnL,MAAA,IACAwhD,IACAr2C,EAAA,CAA8BnL,OAAA,GAE9B,GACA2H,EAAAlc,SAAA,cACA,IAAA0f,EAAAnL,MAAA,EACAuhD,GAEA,GACAA,EAAA,WACA,IAAA7nD,EAAA4G,EAAAG,kBAAA,GACA,IAAA/G,GAAA,CAAAA,EAAAumC,oBAAA,EACA90B,EAAA,CAA8BnL,OAAA,GAC9B,MACA,CACA,IAAAmL,EAAAnL,MAAA,EAAAmL,IAAAA,EAAAnL,MAAA,GAGAmL,EAAA,CAA0BnL,OAAA,GACVgE,GAAerR,EAAA,yBAC/B,GAAAwY,IAAAA,EAAAnL,MAAA,EAGA,IAAAmzB,GAIA,CAHAA,CAAAA,EAAiCyB,GAAkBjiC,EAAA,oCACnD6uD,GACA,EA1DO1sB,KAAAA,EA0DkB,EACzB,CACA3pB,EAAA,CACAnL,OAAA,CACA,EACA,MACA,CAGAmL,EAAA,CACAnL,OAAA,EACA8hD,cAHAR,EAAA35C,EAAAhV,EAAA2N,EAAAi3B,EAAmHrE,GAAoBvgC,EAAAwgC,EAAA,IAAA3/B,IAAA,EAKvI,GACA,EACAguD,EAAA,WACA,IAAAr2C,EAAAnL,MAAA,GAGA,IAAAmL,EAAAnL,MAAA,EACAmL,EAAA22C,aAAA,GAEA32C,EAAA,CACAnL,OAAA,CACA,EACA,EACA,IAAAmL,EAAAnL,MAAA,EACAuhD,GAEA,EACAj/C,YAAA,WAuBA,OAAmBy/C,IFzFnB52C,GAAAnL,MAAA,EEyFyCmL,IAAAA,EAAAnL,MAAA,EAEzC0wC,eAAA,SAAAhf,CAAA,EACA,OAAmBqwB,IF5FnB52C,GAAAnL,MAAA,CRZAtgB,MAAAA,EAAA,OAAAA,EAAAiF,GAAA,CUwG4G+sC,GAAAvsC,KAAAA,CAC5G,CACA,CACA,ENtHO,SAAAwiB,CAAA,CAAAhV,CAAA,CAAA2N,CAAA,CAAAi3B,CAAA,CAAAxd,CAAA,CAAAioC,CAAA,EAKP,IAAAC,EAAAD,GACQhlC,GAAiBrqB,EAAAA,EAAAmoC,4BAAA,CFFlB,IEHP,SAAA96C,CAAA,EACA2nB,EAAA3b,MAAA,KAA4EhM,MAAAA,CAAA,GACpEijB,GAAiB,8BAAiC,gBAAAjjB,EAAA2W,OAAA,EAC1D,GAGArY,EFuBA4jE,SAEOv6C,CAAA,CAAAw6C,CAAA,CAAAH,CAAA,CAAAjoC,CAAA,EACP,IAAA5O,EAAA,CACAnL,OAAA,EACAoiD,0BAAA,MACA,EACAC,EAAA16C,EAAAlc,SAAA,cACA62D,EAAA,cACA,GAAKz2D,WAAA,CACL02D,EAAA56C,EAAAlc,SAAA,YAAAuvD,CAAA,EACAsH,EAAAtH,EAAAxgC,MAAA,CACA,GAAK3uB,WAAA,CACL,SAAAy2D,EAAA9jD,CAAA,EACA,IAAA2M,EAAAnL,MAAA,GACAmL,EAAAwnB,OAAA,CAAAtY,KAAA,UAAAgY,CAAA,CAAAzX,CAAA,EACA,IHjDO3uB,EAAAu2D,EACPC,EAQAC,EGwCArkD,GHjDOpS,EGiDyC2uB,EAAAvmB,MAAA,CHjDzCmuD,EGiDyC5nC,EAAA/lB,aAAA,CH/ChD4tD,CADAA,EAAA,IAAAE,UACA1F,MAAA,eAAA33D,KAAA,CAAA2G,EAAA,EACA+L,KAAA,0BACA,GAAK,GAAAlW,MAAA,CAAAuwC,EAAA34B,OAAA,CAAAgX,EAAA,MAAA5uB,MAAA,CAAAuwC,EAAA5sB,KAAA,GAKLi9C,EAAA15D,KAAAC,SAAA,CAJkC9E,EAAM,CACxCy+D,iBAAAJ,EACAK,wBAAA52D,EAAA6nC,UAAA,EG0CgDzB,IHvChDowB,EAAAxF,MAAA,aAAA33D,KAAA,CAAAo9D,EAAA,EAA6E1qD,KAAA,sBAC7E,CAAa/L,KAAAw2D,EAAA/1D,WAAAT,EAAA6nC,UAAA,G7GsCFvxC,EAASY,EAAYogB,IgHCI/E,GACpCwjD,EAAArnC,UAAA,CAAAtc,GAGA2jD,EAAAhwD,IAAA,CAAAqM,EAEA,GACYrY,GAAYmlB,EAAA23C,mBAAA,GAGxB33C,EADA3M,SAAAA,EACA,CACAwB,OAAA,EACAoiD,0BAAA5jD,CACA,EAGA,CACAwB,OAAA,CACA,CAEA,CACA,OACAyyB,UAAA,SAAAC,CAAA,EACA,GAAAvnB,IAAAA,EAAAnL,MAAA,EAGA,GAAAmL,IAAAA,EAAAnL,MAAA,EACA,IAAA5d,EAAA+/D,IACA,IAAA//D,EACA,OAEA+oB,EAAA,CACAnL,OAAA,EACA2yB,QAAA,IAAiCT,GAAOnY,EAAA33B,EAAA+oB,EAAAi3C,yBAAA,EACxCU,oBAAyCj9D,GAAU,WACnDy8D,EAAA,yBACA,EApFO,IAqFP,CACA,CACAn3C,EAAAwnB,OAAA,CAAAF,SAAA,CAAAC,EAAA,SAAAN,CAAA,EACAA,EAnFO,KAoFPkwB,EAAA,sBAEA,GACA,EACA9uD,KAAA,WACA8uD,EAAA,QACAD,IACAE,GACA,CACA,CACA,EE3FmC56C,EFuBnC,WAA6D,OAAAo7C,SAqEtD9qB,CAAA,CAAA33B,CAAA,CAAAi3B,CAAA,EACP,IAAA79B,EAAA4G,EAAAG,kBAAA,GACA0qC,EAAA5T,EAAAwH,QAAA,GACA,MAAAoM,EAGA,OACArM,YAAA,CACApuB,GAAAunB,CACA,EACAv+B,QAAA,CACAgX,GAAAhX,EAAAgX,EAAA,EAEAqF,KAAA,CACArF,GAAAy6B,EAAAz6B,EAAA,CAEA,CACA,EAtF6D/d,EAAAslC,aAAA,CEvB1B33B,EAAAi3B,EFuB0B,EEvB1B0qB,EAAAloC,GAAA0Y,EAAAn0C,EAAAm0C,SAAA,CAAAuwB,EAAA1kE,EAAAkV,IAAA,CACnCP,EAAay/B,SPHNpsC,CAAA,EACP,IFTA28D,EFUOC,EDVPC,EACA/zB,ECUA+zB,EACAC,EZPOj4B,EACPk4B,EYOAC,EVcOn4B,EUbPo4B,EXROp4B,EAAA7I,EAAAsG,EACPy6B,EWQAG,ELZOr4B,EKaPs4B,EACAC,EPZOC,EAAArhC,EOaPshC,EACAC,EFnBOC,EEoBPC,EACAC,ENrBOr8C,EAAAs8C,EMsBPC,EIbAC,EAAA79D,EAAA69D,IAAA,CAAAxxD,EAAArM,EAAAqM,aAAA,CAEA,IAAAwxD,EACA,yCAEA,IAAAv7B,GFdAq6B,EAAA,IAAAn5D,QACA,CACAsB,IAAA,SAAA0Q,CAAA,CAAAsoD,CAAA,EACAtoD,CAAAA,IAAA7K,UAAAA,SAAA0lD,gBAAA,GAKAsM,EAAA73D,GAAA,CAAA0Q,IAAA7K,SAAAA,SAAA0lD,gBAAA,CAAA76C,EAAAsoD,EACA,EACAz/D,IAAA,SAAAmX,CAAA,EACA,OAAAmnD,EAAAt+D,GAAA,CAAAmX,EACA,EACAlU,IAAA,SAAAkU,CAAA,EACA,OAAAmnD,EAAAr7D,GAAA,CAAAkU,EACA,CACA,GEDAs1B,EAAA,SAAA5D,CAAA,EACA22B,EAAa3iC,GAA4BtB,GAAiBC,QAAA,CAAAqN,GAC1D,EACA6D,EAAA,SAAAhiB,CAAA,EAAiC,OAAA80C,EAAY3iC,GAA4BtB,GAAiBM,KAAA,CAAAnR,GAAA,EAC1FuX,EAAgCuK,GAAyBx+B,EAAA,CAAkBy+B,WAAAA,EAAAC,QAAAA,CAAA,GAC3EgzB,EAAA,SAAA58C,CAAA,CAAAkf,CAAA,EACA,SAAAlf,GAAoCA,CAAAA,EAAYpY,IAAY,EAC5D,SAAAs3B,GAA+CA,CAAAA,EAAA,CAC/C3mB,OAAA,EACA4oB,wBAAAA,EACAhC,sBAAAA,CACA,GACA,IAAAtoC,EAAiB46B,KAAoBE,EAAA96B,EAAA86B,KAAA,CACrC+qC,EAAA,CACAl4D,KAAA,CACAqtB,OAHqCh7B,EAAAg7B,MAAA,CAIrCnd,KAAAvY,OAAAyO,QAAA,CAAA8J,IAAA,CACAid,MAAAA,CACA,EACAphB,KAAkBonB,GAAUG,IAAA,CAC5B9X,UAAAA,CACA,GACA08C,EAAA,CACAl4D,KAAA,CACAq4D,UAAArzD,SAAAkuB,QAAA,EACA,EACAnnB,KAAkBonB,GAAUI,KAAA,CAC5B/X,UAAAA,CACA,GACA08C,EAAA,CACAl4D,KAAA,CACA6Z,KpB5CWsgB,GoB4C4Bn1B,SpB5CT,CAC9B01B,qBoB2CuCA,EpB1CvCpE,uBAAA5vB,EAAA2vB,mBAAA,CACA3vB,coByCuCA,CpBxCvC,GoByCA4xD,cAAA,CACApd,KAA0B/uB,KAC1BgvB,IAAyBzuB,IACzB,CACA,EACA3gB,KAAkBonB,GAAUC,YAAA,CAC5B5X,UAAAA,CACA,GACA7jB,OAAA00B,cAAA,EACA6rC,EAAA,CACAl4D,KAAsBk+B,GAAiBvmC,OAAA00B,cAAA,EACvCtgB,KAAsBonB,GAAUM,cAAA,CAChCjY,UAAAA,CACA,EAEA,EACA48C,IACA,IAAA/lE,GJtDO4kE,EIsDmB,CAC1Bv7C,UAAArhB,EAAAqhB,SAAA,CACAhV,cAAAA,EACAi2B,wBAAAA,EACAyI,QAAAA,EACAsyB,mBAAA,SAAAa,CAAA,EACA,OAAAL,EAAwB3iC,GAA4BtB,GAAiBQ,gBAAA,CAAA8jC,GACrE,EACAC,mBAAA,SAAAC,CAAA,EAAgE,OAAAP,EAAAO,EAAA,EAChEC,YAAA,SAAAC,CAAA,CAAAtgE,CAAA,EAAoD,OAAA6/D,EAAY3iC,GAA2Bl9B,EAAA,CAAWsgE,UAAAA,CAAA,GAAsB,EAC5HxzB,WAAAA,EACAyzB,SAAA,SAAAL,CAAA,EAAiC,OAAAL,EAAY3iC,GAA4BtB,GAAiBI,MAAA,CAAAkkC,GAAA,EAC1FM,aAAA,SAAAC,CAAA,EAAqC,OAAAZ,EAAY3iC,GAA4BtB,GAAiBS,cAAA,CAAAokC,GAAA,EAC9FC,iBAAA,SAAAC,CAAA,EAAyC,OAAAd,EAAY3iC,GAA4BtB,GAAiBK,cAAA,CAAA0kC,GAAA,EAClGhB,cAAA,SAAAiB,CAAA,EAAsD,OAAAf,EAAAe,EAAA,EACtDpB,QAAA,SAAA73D,CAAA,EACA,OAAAk4D,EAAA,CACAl4D,KAAAA,EACA+L,KAAsBonB,GAAUI,KAAA,CAChC/X,UAA2BpY,IAC3B,EACA,EACA81D,uBAAA,SAAAl5D,CAAA,EACAk4D,EAAA,CACAl4D,KAAAA,EACA+L,KAAsBonB,GAAUM,cAAA,CAChCjY,UAA2BpY,IAC3B,EACA,EACAu3B,sBAAAA,CACA,EL9FAu8B,EAAA,IAAAr5D,QACAslC,EAAA,ECUA+zB,EDTA,CACAiC,cAAA,SAAAlzD,CAAA,EAIA,OAHAixD,EAAAv7D,GAAA,CAAAsK,IACAixD,EAAA/3D,GAAA,CAAA8G,EAAAk9B,KAEA+zB,EAAAx+D,GAAA,CAAAuN,EACA,CACA,ECGAkxD,EAA0B72B,GAAoB22B,EAAA9xB,UAAA,CAAA8xB,EAAAvwD,aAAA,CAAAuwD,EAAAt8B,qBAAA,CAAA31B,UZPvCk6B,EYQoC+3B,EAAAyB,WAAA,CZP3CtB,EAAyBj9D,GAAQ,SAAA8L,CAAA,EACjC,IAAA9N,EAAqBmlC,GAAcr3B,GACnC,GAAY6xB,GAAiB3/B,GAAA,CAC7B,IAAAihE,EAAAj7B,GAAAl4B,GACA,IAAAmzD,EACA,OAQAl6B,EAAA,CANA,CACAza,GAAoBsT,GAAmB5/B,GACvCkhE,WAAA,EACAj7B,EAAAg7B,EAAAh7B,CAAA,CACAC,EAAA+6B,EAAA/6B,CAAA,EAEA,CAA2BjB,GAAYn3B,GAAUguB,GAAiBO,SAAA,CAAaP,GAAiBE,SAAA,CAChG,CACA,EAjBA,GAiBK,CACLx5B,SAAA,EACA,GAAKE,SAAA,CYVLw8D,EZWWvwD,GgBwCeJ,EhBxCE1B,SAAA,CAA2BlT,EAASwnE,UAAA,CAAaxnE,EAASynE,UAAA,EAAAnC,EAAA,CACtFlwD,QAAA,GACAC,QAAA,EACA,GAAKI,IAAA,CEAE23B,EUbuD+3B,EAAAuB,kBAAA,CAA9DlB,EVoCWxwD,GcceJ,EddE1B,SAAA7Q,OAAAC,IAAA,CAAAmqC,IAtB5B,SAAAt4B,CAAA,EACA,IAOAgnD,EAPA90D,EAAqBmlC,GAAcr3B,GACnC,GAAYmwB,GAAmBj+B,EAAAuO,EAAA2vB,mBAAA,IAAgDb,GAAgBje,MAAA,EAClFugB,GAAiB3/B,IAG9B,IAAAssB,EAAiBsT,GAAmB5/B,GACpC4T,EAAAwyB,EAAA,CAAAt4B,EAAA8F,IAAA,EAEA,GAAAA,IAAqB4oB,GAAoBM,IAAA,EAAAlpB,IAAkB4oB,GAAoBpB,KAAA,EAC/E,IAAA6lC,EAA8Bj7B,GAAuBl4B,GACrD,IAAAmzD,EACA,OAEAnM,EAAA,CAA4BxoC,GAAAA,EAAA1Y,KAAAA,EAAAqyB,EAAAg7B,EAAAh7B,CAAA,CAAAC,EAAA+6B,EAAA/6B,CAAA,CAC5B,MAEA4uB,EAAA,CAA4BxoC,GAAAA,EAAA1Y,KAAAA,CAAA,EAG5BmzB,EADqBhnC,EAAM,CAAGusB,GAAAyyC,EAAAiC,aAAA,CAAAlzD,EAAA,EAAsCsvB,GAA4BtB,GAAiBG,gBAAA,CAAA64B,KAEjH,EAC4B,CAC5B/lD,QAAA,GACAC,QAAA,EACA,GAAKI,IAAA,CD/CE23B,EWSmC+3B,EAAA2B,QAAA,CXTnCviC,EWSmC4gC,EAAAvwD,aAAA,CAAA2vB,mBAAA,CXTnCsG,EWSmCs6B,EAAAt6B,uBAAA,CXR1Cy6B,EAAyBj9D,GAAQ,SAAA8L,CAAA,EACjC,IAAA9N,EAAqBmlC,GAAcr3B,GACnC,MACYmwB,GAAmBj+B,EAAAk+B,KAAkCb,GAAgBje,MAAA,EACpEugB,GAAiB3/B,IAG9B,IAAAssB,EAAiBsT,GAAmB5/B,GACpCggE,EAAAhgE,IAAA6M,SACA,CACA22B,UAA2BjP,KAC3BkP,WAA4BzP,IAC5B,EACA,CACAwP,UAAA15B,KAAAE,KAAA,CAAAhK,EAAAwjC,SAAA,EACAC,WAAA35B,KAAAE,KAAA,CAAAhK,EAAAyjC,UAAA,CACA,EACAe,EAAAx9B,GAAA,CAAAhH,EAAAggE,GACAj5B,EAAA,CACAza,GAAAA,EACA2Z,EAAA+5B,EAAAv8B,UAAA,CACAyC,EAAA85B,EAAAx8B,SAAA,GAEA,EAzBA,KAyBK9gC,SAAA,CWfL08D,EXgBW9wD,GeiCeC,EfjCC1B,SAA0BlT,EAAS+jD,MAAA,CAAAuhB,EAAA,CAA2BlwD,QAAA,GAAAC,QAAA,KACzFI,IAAA,CM7BO23B,EKamD+3B,EAAA8B,gBAAA,CAA1DvB,ELZWzqC,GS4DermB,GT5DOlH,SAAA,CAAA0/B,GAAAt/B,WAAA,CKajC63D,EAAuBx4B,GI+CGv4B,EJ/CcuwD,EAAA7xB,OAAA,EPZjCsyB,EOauDT,EAAAS,kBAAA,CPbvDrhC,EOauD4gC,EAAAvwD,aAAA,CAAA2vB,mBAAA,CAA9DshC,EPZW7wD,GW0DeJ,EX1DE1B,SAAA,CAA2BlT,EAAS0nE,IAAA,CAAO1nE,EAAS2nE,KAAA,WAAAxzD,CAAA,EAChF,IAAA9N,EAAqBmlC,GAAcr3B,GACnC9N,GACYi+B,GAAmBj+B,EAAAk+B,KAAkCb,GAAgBje,MAAA,EACpEugB,GAAiB3/B,IAG9Bu/D,EAAA,CACAjzC,GAAgBsT,GAAmB5/B,GACnC4T,KAAA9F,EAAA8F,IAAA,GAAiCja,EAAS0nE,IAAA,CAAQpkC,GAAoBC,IAAA,CAAQD,GAAoBE,KAAA,EAElG,EAAK,CACLpuB,QAAA,GACAC,QAAA,EACA,GAAKI,IAAA,CODLqwD,EAA6B8B,SRlBtBx6B,CAAA,EACP,SAAAy6B,EAAAz/B,CAAA,CAAArgC,CAAA,EACAqgC,GAA0BpC,GAAiBoC,EAAA0/B,SAAA,GAC3C//D,EAAqBk+B,GAAmBmC,EAAA0/B,SAAA,EAExC,CACA,IAAAC,EAAA,CACQn7C,GAA+Bo7C,cAAApkE,SAAA,eACvCipB,OAAA,SAAAqb,CAAA,CAAAnc,CAAA,EACA87C,EAAA,cAAAl1C,CAAA,EAAiE,OAAAya,EAAA,CAAYza,GAAAA,EAAA+e,KAAA,EAAiBxJ,KAAAA,EAAAnc,MAAAA,CAAA,EAA0B,EAAG,EAC3H,CACA,GACQa,GAA+Bo7C,cAAApkE,SAAA,eACvCipB,OAAA,SAAAd,CAAA,EACA87C,EAAA,cAAAl1C,CAAA,EAAiE,OAAAya,EAAA,CAAYza,GAAAA,EAAAgf,QAAA,EAAoB5lB,MAAAA,CAAA,EAAc,EAAG,EAClH,CACA,GACA,CAQA,SAAAk8C,EAAArO,CAAA,EACAmO,EAAA9iE,IAAA,CAAqC2nB,GAA+BgtC,EAAAh2D,SAAA,eACpEipB,OAAA,SAAAqb,CAAA,CAAAnc,CAAA,EACA,IAAAne,EAAA,KACAi6D,EAAA,KAAAt5B,gBAAA,UAAA5b,CAAA,EACA,IAAAnmB,EAAA0hC,GAAAtgC,GACApB,IACAA,EAAAvH,IAAA,CAAA8mB,GAAA,GACAqhB,EAAA,CAA6Bza,GAAAA,EAAA+e,KAAA,EAAiBxJ,KAAAA,EAAAnc,MAAAvf,CAAA,EAAyB,GAEvE,EACA,CACA,GAAYogB,GAA+BgtC,EAAAh2D,SAAA,eAC3CipB,OAAA,SAAAd,CAAA,EACA,IAAAne,EAAA,KACAi6D,EAAA,KAAAt5B,gBAAA,UAAA5b,CAAA,EACA,IAAAnmB,EAAA0hC,GAAAtgC,GACApB,IACAA,EAAAvH,IAAA,CAAA8mB,GACAqhB,EAAA,CAA6Bza,GAAAA,EAAAgf,QAAA,EAAoB5lB,MAAAvf,CAAA,EAAa,GAE9D,EACA,CACA,GACA,CACA,MAhCA,oBAAA07D,gBACAD,EAAAC,kBAGAD,EAAAE,cACAF,EAAAjzB,kBA2BA,WAAyB,OAAA+yB,EAAAxlE,OAAA,UAAAsrC,CAAA,EAA4D,OAAAA,EAAAp4B,IAAA,IAAwB,CAC7G,EQjCmD0vD,EAAA4B,YAAA,EFnB5ChB,EEoBiCZ,EAAAY,OAAA,CAAxCC,EFnBWhxD,GM+DeJ,EN/DE/O,OAAA,CAAyB7F,EAAS+sC,KAAA,CAAQ/sC,EAASgtC,IAAA,aAC/E+4B,EAAA,CAAkBQ,UAAArzD,SAAAkuB,QAAA,IAClB,GAAK3rB,IAAA,CEkBLwwD,EAAsCmC,SLf/BxzD,CAAA,CAAAw4B,CAAA,EACP,IAAA7S,EAAA10B,OAAA00B,cAAA,CACA,IAAAA,EACA,OAAerxB,GAEf,IAAA3I,EAAa8H,GAAQ,WACrB+kC,EAAWhB,GAAiB7R,GAC5B,EAXA,IAWK,CACL1xB,SAAA,EACA,GAAKqyB,EAAA36B,EAAAwI,SAAA,CAAAs/D,EAAA9nE,EAAA0I,MAAA,CACLg9C,EAAyBjxC,GAAiBJ,EAAA2lB,EAAA,CAAiCv6B,EAASo7B,MAAA,CAASp7B,EAAS+jD,MAAA,EAAA7oB,EAAA,CACtG9lB,QAAA,GACAC,QAAA,EACA,GAAKI,IAAA,CACL,kBACAwwC,IACAoiB,GACA,CACA,ESwC0BzzD,EJ3C4CuwD,EAAAiC,sBAAA,ENrB/Dx9C,EMsB6Cu7C,EAAAv7C,SAAA,CNtB7Cs8C,EMsB6Cf,EAAAe,aAAA,CAApDC,ENrBAv8C,EAAAlc,SAAA,aAAAQ,CAAA,EACA,IAAA3N,EAAA2U,EAAA6iC,CACA,YAAA7pC,EAAA6pB,WAAA,CAAA9d,IAAA,EACA/L,UAAAA,EAAA6pB,WAAA,CAAArI,MAAA,CAAAzV,IAAA,EACA,QAAA/E,CAAAA,EAAA,OAAA3U,CAAAA,EAAA2N,EAAA6pB,WAAA,CAAArI,MAAA,CAAAC,WAAA,GAAApvB,KAAA,IAAAA,EAAA,OAAAA,EAAA0Z,IAAA,GAAA/E,KAAA,IAAAA,EAAA,OAAAA,EAAAjS,MAAA,GACA,WAAAiL,EAAAiqB,aAAA,EACA,QAAA4f,CAAAA,EAAA7pC,EAAAiqB,aAAA,CAAAC,MAAA,GAAA2f,KAAA,IAAAA,EAAA,OAAAA,EAAA90C,MAAA,GACAijE,EAAA,CACAx8C,UAAAxb,EAAA6pB,WAAA,CAAArlB,IAAA,CACAuH,KAAsBonB,GAAUO,iBAAA,CAChC1zB,KAAA,CACAupB,iBAAAvpB,EAAA6pB,WAAA,CAAArI,MAAA,CAAAC,WAAA,CAAA1V,IAAA,CACAmrD,UAAAl3D,EAAAiqB,aAAA,CAAAC,MAAA,CAAA9yB,GAAA,UAAAhB,CAAA,EAA4E,OAAA8gE,EAAAiC,aAAA,CAAA/iE,EAAA,EAC5E,CACA,EAEA,GAAKwJ,WAAA,CMML,CACAwuB,MAAA,WACA+oC,EAAA/oC,KAAA,EACA,EACA7mB,KAAA,WACA4vD,EAAA5vD,IAAA,GACA8vD,IACAC,IACAC,IACAC,IACAC,IACAE,IACAC,IACAE,IACAC,IACAE,GACA,CACA,GIsDKmC,EAAA/nE,EAAAkV,IAAA,CAAA8yD,EAAAhoE,EAAA+7B,KAAA,CACL,SAAAksC,IACA3/B,EAAAvM,KAAA,GACAisC,GACA,CACA,OACA9yD,KAAA,WACAozB,EAAApzB,IAAA,GACA6yD,GACA,EACAG,2BAAA,SAAA/+C,CAAA,EACA8+C,IACAlC,EAAA58C,EAAA,CACAmf,sBAAAA,EACA5mB,OAAA,EACA4oB,wBAAAA,CACA,EACA,EACA29B,eAAAA,EACA3/B,sBAAAA,CACA,CACA,EOxGmB,CACnBu9B,KAAA1xB,EACA9/B,cAAAA,EACAgV,UAAAA,CACA,GAAKm6C,EAAA7uD,EAAAO,IAAA,CAAAgzD,EAAAvzD,EAAAuzD,0BAAA,CAAAD,EAAAtzD,EAAAszD,cAAA,CACLE,EAAA9+C,EAAAlc,SAAA,cACA86D,IACA9zB,EAAA,CACAhrB,UAAuBpY,KACvB2I,KAAkBonB,GAAUK,OAAA,EAE5B,GAAK5zB,WAAA,CACLw2D,EAAA16C,EAAAlc,SAAA,YAAAsqB,CAAA,EACAywC,EAAAzwC,EAAA3e,WAAA,CAAAvI,SAAA,CACA,GAAKhD,WAAA,CACL,OACA2H,KAAA,WACAizD,IACApE,IACAP,IACAkB,GACA,CACA,CACA,GO3BiD,CAAiBpuB,mBAAoBA,GAAkB1B,qBAAwBA,EAAoB,G5KgBpJ90C,EAAAF,CADOA,E4KdMsG,K5Keb,CADOrG,E4KdqB,S5Ke5B,CACAD,CAAA,CAAAC,EAAA,C4KhB4Bq3C,G5KiB5Bp3C,GAAAA,EAAAsoE,CAAA,EACAtoE,EAAAsoE,CAAA,CAAApmE,OAAA,UAAAK,CAAA,EAAyD,OAAOD,EAAeC,EAAA","sources":["webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/display.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/catchUserErrors.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/monitor.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/polyfills.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/boot/init.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/getGlobalObject.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/byteUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/getZoneJsOriginalValue.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/timer.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/functionUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/typeUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/mergeInto.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/serialisation/jsonStringify.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/serialisation/sanitize.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/observable.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/context/heavyCustomerDataWarning.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/context/contextManager.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/boundedBuffer.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/numberUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/timeUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/stringUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/cookie.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/synthetics/syntheticsWorkerValues.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/eventBridge.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/addEventListener.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/context/storedContextManager.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/encoder.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/error/computeStackTrace.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/error/error.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/user/user.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/experimentalFeatures.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/objectUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionConstants.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/browserDetection.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionStoreStrategy.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionState.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/oldCookiesMigration.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInCookie.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInLocalStorage.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionStoreOperations.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionStore.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/urlPolyfill.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/intakeSites.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/endpointBuilder.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/tags.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/transportConfiguration.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/configuration/configuration.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/matchOption.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/tracing/tracer.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/configuration.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/commonContext.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/boot/rumPublicApi.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/sendToExtension.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/telemetry/rawTelemetryEvent.types.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/telemetry/telemetry.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/pageExitObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/domMutationObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/runOnReadyState.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/htmlDomUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/tracing/getDocumentTraceId.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/performanceCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/error/error.types.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/eventRateLimiter/createEventRateLimiter.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/syntheticsContext.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/ciTestContext.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/limitModification.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/assembly.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/internalContext.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/abstractLifeCycle.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/lifeCycle.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/valueHistory.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/viewContexts.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/instrumentMethod.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/xhrObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/browser/fetchObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/utils/responseUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/tools/readBytesFromStream.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/requestCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/trackEventCounts.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/waitPageActivityEnd.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/getActionNameFromElement.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/getSelectorFromElement.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/clickChain.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/listenActionEvents.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/computeFrustration.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/trackClickActions.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/action/actionCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/error/trackRuntimeError.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/console/consoleObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/error/trackConsoleError.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/report/reportObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/error/trackReportError.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/error/errorCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/longTask/longTaskCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/resource/matchRequestTiming.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/trackViewEventCounts.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstContentfulPaint.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstInput.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackNavigationTimings.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLargestContentfulPaint.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstHidden.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInitialViewMetrics.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/interactionCountPolyfill.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInteractionToNextPaint.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLoadingTime.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/scroll.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/viewportObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackScrollMetrics.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCommonViewMetrics.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/trackViews.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/view/viewCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/domain/session/sessionManager.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/rumSessionManager.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/batch.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/sendWithRetryStrategy.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/httpRequest.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/flushController.js","webpack://_N_E/../../node_modules/@datadog/browser-core/esm/transport/startBatchWithReplica.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/transport/startRumBatch.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/transport/startRumEventBridge.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/urlContexts.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/browser/locationChangeObservable.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/featureFlagContext.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/startCustomerDataTelemetry.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/pageStateHistory.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/contexts/displayContext.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/boot/startRum.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/domain/getSessionReplayUrl.js","webpack://_N_E/../../node_modules/@datadog/browser-rum-core/esm/index.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/types/sessionReplayConstants.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/types/index.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/assembly.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/constants.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/privacy.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializationUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeStyleSheets.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttribute.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttributes.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeNode.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeDocument.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/serialization/index.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/eventsUtils.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/viewports.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/moveObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/scrollObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/mouseInteractionObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/inputObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/styleSheetObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/mediaInteractionObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/frustrationObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/viewportResizeObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/mutationBatch.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/mutationObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/focusObserver.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/recordIds.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/observers.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/observers/index.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/elementsScrollPositions.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/shadowRootsController.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/record.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/record/index.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/segmentCollection/buildReplayPayload.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/replayStats.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segment.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segmentCollection.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/segmentCollection/index.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/boot/startRecording.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/boot/isBrowserSupported.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/getSessionReplayLink.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/deflate/deflateEncoder.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/deflate/deflateWorker.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/domain/deflate/index.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/boot/recorderApi.js","webpack://_N_E/../../node_modules/@datadog/browser-rum/esm/entries/main.js"],"sourcesContent":["/* eslint-disable local-rules/disallow-side-effects */\n/**\n * Keep references on console methods to avoid triggering patched behaviors\n *\n * NB: in some setup, console could already be patched by another SDK.\n * In this case, some display messages can be sent by the other SDK\n * but we should be safe from infinite loop nonetheless.\n */\nexport var ConsoleApiName = {\n log: 'log',\n debug: 'debug',\n info: 'info',\n warn: 'warn',\n error: 'error',\n};\n/**\n * When building JS bundles, some users might use a plugin[1] or configuration[2] to remove\n * \"console.*\" references. This causes some issue as we expect `console.*` to be defined.\n * As a workaround, let's use a variable alias, so those expressions won't be taken into account by\n * simple static analysis.\n *\n * [1]: https://babeljs.io/docs/babel-plugin-transform-remove-console/\n * [2]: https://github.com/terser/terser#compress-options (look for drop_console)\n */\nexport var globalConsole = console;\nexport var originalConsoleMethods = {};\nObject.keys(ConsoleApiName).forEach(function (name) {\n originalConsoleMethods[name] = globalConsole[name];\n});\nvar PREFIX = 'Datadog Browser SDK:';\nexport var display = {\n debug: originalConsoleMethods.debug.bind(globalConsole, PREFIX),\n log: originalConsoleMethods.log.bind(globalConsole, PREFIX),\n info: originalConsoleMethods.info.bind(globalConsole, PREFIX),\n warn: originalConsoleMethods.warn.bind(globalConsole, PREFIX),\n error: originalConsoleMethods.error.bind(globalConsole, PREFIX),\n};\n//# sourceMappingURL=display.js.map","import { display } from './display';\nexport function catchUserErrors(fn, errorMsg) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n try {\n return fn.apply(void 0, args);\n }\n catch (err) {\n display.error(errorMsg, err);\n }\n };\n}\n//# sourceMappingURL=catchUserErrors.js.map","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { display } from './display';\nvar onMonitorErrorCollected;\nvar debugMode = false;\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected) {\n onMonitorErrorCollected = newOnMonitorErrorCollected;\n}\nexport function setDebugMode(newDebugMode) {\n debugMode = newDebugMode;\n}\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined;\n debugMode = false;\n}\nexport function monitored(_, __, descriptor) {\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var decorated = onMonitorErrorCollected ? monitor(originalMethod) : originalMethod;\n return decorated.apply(this, args);\n };\n}\nexport function monitor(fn) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return callMonitored(fn, this, arguments);\n }; // consider output type has input type\n}\nexport function callMonitored(fn, context, args) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return fn.apply(context, args);\n }\n catch (e) {\n displayIfDebugEnabled(e);\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e);\n }\n catch (e) {\n displayIfDebugEnabled(e);\n }\n }\n }\n}\nexport function displayIfDebugEnabled() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (debugMode) {\n display.error.apply(display, __spreadArray(['[MONITOR]'], args, false));\n }\n}\n//# sourceMappingURL=monitor.js.map","export function includes(candidate, search) {\n return candidate.indexOf(search) !== -1;\n}\nexport function arrayFrom(arrayLike) {\n if (Array.from) {\n return Array.from(arrayLike);\n }\n var array = [];\n if (arrayLike instanceof Set) {\n arrayLike.forEach(function (item) { return array.push(item); });\n }\n else {\n for (var i = 0; i < arrayLike.length; i++) {\n array.push(arrayLike[i]);\n }\n }\n return array;\n}\nexport function find(array, predicate) {\n for (var i = 0; i < array.length; i += 1) {\n var item = array[i];\n if (predicate(item, i)) {\n return item;\n }\n }\n return undefined;\n}\nexport function findLast(array, predicate) {\n for (var i = array.length - 1; i >= 0; i -= 1) {\n var item = array[i];\n if (predicate(item, i, array)) {\n return item;\n }\n }\n return undefined;\n}\nexport function forEach(list, callback) {\n Array.prototype.forEach.call(list, callback);\n}\nexport function objectValues(object) {\n return Object.keys(object).map(function (key) { return object[key]; });\n}\nexport function objectEntries(object) {\n return Object.keys(object).map(function (key) { return [key, object[key]]; });\n}\nexport function startsWith(candidate, search) {\n return candidate.slice(0, search.length) === search;\n}\nexport function endsWith(candidate, search) {\n return candidate.slice(-search.length) === search;\n}\nexport function elementMatches(element, selector) {\n if (element.matches) {\n return element.matches(selector);\n }\n // IE11 support\n if (element.msMatchesSelector) {\n return element.msMatchesSelector(selector);\n }\n return false;\n}\n// https://github.com/jquery/jquery/blob/a684e6ba836f7c553968d7d026ed7941e1a612d8/src/selector/escapeSelector.js\nexport function cssEscape(str) {\n if (window.CSS && window.CSS.escape) {\n return window.CSS.escape(str);\n }\n // eslint-disable-next-line no-control-regex\n return str.replace(/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g, function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === '\\0') {\n return '\\uFFFD';\n }\n // Control characters and (dependent upon position) numbers get escaped as code points\n return \"\".concat(ch.slice(0, -1), \"\\\\\").concat(ch.charCodeAt(ch.length - 1).toString(16), \" \");\n }\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\".concat(ch);\n });\n}\nexport function assign(target) {\n var toAssign = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n toAssign[_i - 1] = arguments[_i];\n }\n toAssign.forEach(function (source) {\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n });\n return target;\n}\n//# sourceMappingURL=polyfills.js.map","import { catchUserErrors } from '../tools/catchUserErrors';\nimport { setDebugMode } from '../tools/monitor';\nimport { assign } from '../tools/utils/polyfills';\nexport function makePublicApi(stub) {\n var publicApi = assign({\n version: \"5.4.0\",\n // This API method is intentionally not monitored, since the only thing executed is the\n // user-provided 'callback'. All SDK usages executed in the callback should be monitored, and\n // we don't want to interfere with the user uncaught exceptions.\n onReady: function (callback) {\n callback();\n },\n }, stub);\n // Add a \"hidden\" property to set debug mode. We define it that way to hide it\n // as much as possible but of course it's not a real protection.\n Object.defineProperty(publicApi, '_setDebug', {\n get: function () {\n return setDebugMode;\n },\n enumerable: false,\n });\n return publicApi;\n}\nexport function defineGlobal(global, name, api) {\n var existingGlobalVariable = global[name];\n global[name] = api;\n if (existingGlobalVariable && existingGlobalVariable.q) {\n existingGlobalVariable.q.forEach(function (fn) { return catchUserErrors(fn, 'onReady callback threw an error:')(); });\n }\n}\n//# sourceMappingURL=init.js.map","/**\n * inspired by https://mathiasbynens.be/notes/globalthis\n */\nexport function getGlobalObject() {\n if (typeof globalThis === 'object') {\n return globalThis;\n }\n Object.defineProperty(Object.prototype, '_dd_temp_', {\n get: function () {\n return this;\n },\n configurable: true,\n });\n // @ts-ignore _dd_temp is defined using defineProperty\n var globalObject = _dd_temp_;\n // @ts-ignore _dd_temp is defined using defineProperty\n delete Object.prototype._dd_temp_;\n if (typeof globalObject !== 'object') {\n // on safari _dd_temp_ is available on window but not globally\n // fallback on other browser globals check\n if (typeof self === 'object') {\n globalObject = self;\n }\n else if (typeof window === 'object') {\n globalObject = window;\n }\n else {\n globalObject = {};\n }\n }\n return globalObject;\n}\n//# sourceMappingURL=getGlobalObject.js.map","export var ONE_KIBI_BYTE = 1024;\nexport var ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE;\n// eslint-disable-next-line no-control-regex\nvar HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/;\nexport function computeBytesCount(candidate) {\n // Accurate bytes count computations can degrade performances when there is a lot of events to process\n if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {\n return candidate.length;\n }\n if (window.TextEncoder !== undefined) {\n return new TextEncoder().encode(candidate).length;\n }\n return new Blob([candidate]).size;\n}\nexport function concatBuffers(buffers) {\n var length = buffers.reduce(function (total, buffer) { return total + buffer.length; }, 0);\n var result = new Uint8Array(length);\n var offset = 0;\n for (var _i = 0, buffers_1 = buffers; _i < buffers_1.length; _i++) {\n var buffer = buffers_1[_i];\n result.set(buffer, offset);\n offset += buffer.length;\n }\n return result;\n}\n//# sourceMappingURL=byteUtils.js.map","import { getGlobalObject } from './getGlobalObject';\n/**\n * Gets the original value for a DOM API that was potentially patched by Zone.js.\n *\n * Zone.js[1] is a library that patches a bunch of JS and DOM APIs. It usually stores the original\n * value of the patched functions/constructors/methods in a hidden property prefixed by\n * __zone_symbol__.\n *\n * In multiple occasions, we observed that Zone.js is the culprit of important issues leading to\n * browser resource exhaustion (memory leak, high CPU usage). This method is used as a workaround to\n * use the original DOM API instead of the one patched by Zone.js.\n *\n * [1]: https://github.com/angular/angular/tree/main/packages/zone.js\n */\nexport function getZoneJsOriginalValue(target, name) {\n var browserWindow = getGlobalObject();\n var original;\n if (browserWindow.Zone && typeof browserWindow.Zone.__symbol__ === 'function') {\n original = target[browserWindow.Zone.__symbol__(name)];\n }\n if (!original) {\n original = target[name];\n }\n return original;\n}\n//# sourceMappingURL=getZoneJsOriginalValue.js.map","import { getZoneJsOriginalValue } from './getZoneJsOriginalValue';\nimport { monitor } from './monitor';\nimport { getGlobalObject } from './getGlobalObject';\nexport function setTimeout(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setTimeout')(monitor(callback), delay);\n}\nexport function clearTimeout(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearTimeout')(timeoutId);\n}\nexport function setInterval(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setInterval')(monitor(callback), delay);\n}\nexport function clearInterval(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearInterval')(timeoutId);\n}\n//# sourceMappingURL=timer.js.map","import { setTimeout, clearTimeout } from '../timer';\n// use lodash API\nexport function throttle(fn, wait, options) {\n var needLeadingExecution = options && options.leading !== undefined ? options.leading : true;\n var needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true;\n var inWaitPeriod = false;\n var pendingExecutionWithParameters;\n var pendingTimeoutId;\n return {\n throttled: function () {\n var parameters = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n parameters[_i] = arguments[_i];\n }\n if (inWaitPeriod) {\n pendingExecutionWithParameters = parameters;\n return;\n }\n if (needLeadingExecution) {\n fn.apply(void 0, parameters);\n }\n else {\n pendingExecutionWithParameters = parameters;\n }\n inWaitPeriod = true;\n pendingTimeoutId = setTimeout(function () {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn.apply(void 0, pendingExecutionWithParameters);\n }\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n }, wait);\n },\n cancel: function () {\n clearTimeout(pendingTimeoutId);\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n },\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() { }\n//# sourceMappingURL=functionUtils.js.map","/**\n * Similar to `typeof`, but distinguish plain objects from `null` and arrays\n */\nexport function getType(value) {\n if (value === null) {\n return 'null';\n }\n if (Array.isArray(value)) {\n return 'array';\n }\n return typeof value;\n}\n//# sourceMappingURL=typeUtils.js.map","import { getType } from './utils/typeUtils';\n/**\n * Iterate over source and affect its sub values into destination, recursively.\n * If the source and destination can't be merged, return source.\n */\nexport function mergeInto(destination, source, circularReferenceChecker) {\n if (circularReferenceChecker === void 0) { circularReferenceChecker = createCircularReferenceChecker(); }\n // ignore the source if it is undefined\n if (source === undefined) {\n return destination;\n }\n if (typeof source !== 'object' || source === null) {\n // primitive values - just return source\n return source;\n }\n else if (source instanceof Date) {\n return new Date(source.getTime());\n }\n else if (source instanceof RegExp) {\n var flags = source.flags ||\n // old browsers compatibility\n [\n source.global ? 'g' : '',\n source.ignoreCase ? 'i' : '',\n source.multiline ? 'm' : '',\n source.sticky ? 'y' : '',\n source.unicode ? 'u' : '',\n ].join('');\n return new RegExp(source.source, flags);\n }\n if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {\n // remove circular references\n return undefined;\n }\n else if (Array.isArray(source)) {\n var merged_1 = Array.isArray(destination) ? destination : [];\n for (var i = 0; i < source.length; ++i) {\n merged_1[i] = mergeInto(merged_1[i], source[i], circularReferenceChecker);\n }\n return merged_1;\n }\n var merged = getType(destination) === 'object' ? destination : {};\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n merged[key] = mergeInto(merged[key], source[key], circularReferenceChecker);\n }\n }\n return merged;\n}\n/**\n * A simplistic implementation of a deep clone algorithm.\n * Caveats:\n * - It doesn't maintain prototype chains - don't use with instances of custom classes.\n * - It doesn't handle Map and Set\n */\nexport function deepClone(value) {\n return mergeInto(undefined, value);\n}\nexport function combine() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n var destination;\n for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {\n var source = sources_1[_a];\n // Ignore any undefined or null sources.\n if (source === undefined || source === null) {\n continue;\n }\n destination = mergeInto(destination, source);\n }\n return destination;\n}\nfunction createCircularReferenceChecker() {\n if (typeof WeakSet !== 'undefined') {\n var set_1 = new WeakSet();\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = set_1.has(value);\n if (!has) {\n set_1.add(value);\n }\n return has;\n },\n };\n }\n var array = [];\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = array.indexOf(value) >= 0;\n if (!has) {\n array.push(value);\n }\n return has;\n },\n };\n}\n//# sourceMappingURL=mergeInto.js.map","import { noop } from '../utils/functionUtils';\n/**\n * Custom implementation of JSON.stringify that ignores some toJSON methods. We need to do that\n * because some sites badly override toJSON on certain objects. Removing all toJSON methods from\n * nested values would be too costly, so we just detach them from the root value, and native classes\n * used to build JSON values (Array and Object).\n *\n * Note: this still assumes that JSON.stringify is correct.\n */\nexport function jsonStringify(value, replacer, space) {\n if (typeof value !== 'object' || value === null) {\n return JSON.stringify(value);\n }\n // Note: The order matter here. We need to detach toJSON methods on parent classes before their\n // subclasses.\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n var restoreValuePrototypeToJson = detachToJsonMethod(Object.getPrototypeOf(value));\n var restoreValueToJson = detachToJsonMethod(value);\n try {\n return JSON.stringify(value, replacer, space);\n }\n catch (_a) {\n return '';\n }\n finally {\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n restoreValuePrototypeToJson();\n restoreValueToJson();\n }\n}\nexport function detachToJsonMethod(value) {\n var object = value;\n var objectToJson = object.toJSON;\n if (objectToJson) {\n delete object.toJSON;\n return function () {\n object.toJSON = objectToJson;\n };\n }\n return noop;\n}\n//# sourceMappingURL=jsonStringify.js.map","import { display } from '../display';\nimport { ONE_KIBI_BYTE } from '../utils/byteUtils';\nimport { detachToJsonMethod } from './jsonStringify';\n// The maximum size of a single event is 256KiB. By default, we ensure that user-provided data\n// going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...\nvar SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE;\n// Symbol for the root element of the JSONPath used for visited objects\nvar JSON_PATH_ROOT_ELEMENT = '$';\n// When serializing (using JSON.stringify) a key of an object, { key: 42 } gets wrapped in quotes as \"key\".\n// With the separator (:), we need to add 3 characters to the count.\nvar KEY_DECORATION_LENGTH = 3;\nexport function sanitize(source, maxCharacterCount) {\n var _a;\n if (maxCharacterCount === void 0) { maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT; }\n // Unbind any toJSON function we may have on [] or {} prototypes\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object\n var containerQueue = [];\n var visitedObjectsWithPath = new WeakMap();\n var sanitizedData = sanitizeProcessor(source, JSON_PATH_ROOT_ELEMENT, undefined, containerQueue, visitedObjectsWithPath);\n var accumulatedCharacterCount = ((_a = JSON.stringify(sanitizedData)) === null || _a === void 0 ? void 0 : _a.length) || 0;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'discarded', source);\n return undefined;\n }\n while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {\n var containerToProcess = containerQueue.shift();\n var separatorLength = 0; // 0 for the first element, 1 for subsequent elements\n // Arrays and Objects have to be handled distinctly to ensure\n // we do not pick up non-numerical properties from Arrays\n if (Array.isArray(containerToProcess.source)) {\n for (var key = 0; key < containerToProcess.source.length; key++) {\n var targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n if (targetData !== undefined) {\n accumulatedCharacterCount += JSON.stringify(targetData).length;\n }\n else {\n // When an element of an Array (targetData) is undefined, it is serialized as null:\n // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters\n accumulatedCharacterCount += 4;\n }\n accumulatedCharacterCount += separatorLength;\n separatorLength = 1;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n else {\n for (var key in containerToProcess.source) {\n if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {\n var targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n // When a property of an object has an undefined value, it will be dropped during serialization:\n // JSON.stringify({a:undefined}) => '{}'\n if (targetData !== undefined) {\n accumulatedCharacterCount +=\n JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH;\n separatorLength = 1;\n }\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n }\n }\n // Rebind detached toJSON functions\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n return sanitizedData;\n}\n/**\n * Internal function to factorize the process common to the\n * initial call to sanitize, and iterations for Arrays and Objects\n *\n */\nfunction sanitizeProcessor(source, parentPath, key, queue, visitedObjectsWithPath) {\n // Start by handling toJSON, as we want to sanitize its output\n var sourceToSanitize = tryToApplyToJSON(source);\n if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {\n return sanitizePrimitivesAndFunctions(sourceToSanitize);\n }\n var sanitizedSource = sanitizeObjects(sourceToSanitize);\n if (sanitizedSource !== '[Object]' && sanitizedSource !== '[Array]' && sanitizedSource !== '[Error]') {\n return sanitizedSource;\n }\n // Handle potential cyclic references\n // We need to use source as sourceToSanitize could be a reference to a new object\n // At this stage, we know the source is an object type\n var sourceAsObject = source;\n if (visitedObjectsWithPath.has(sourceAsObject)) {\n return \"[Reference seen at \".concat(visitedObjectsWithPath.get(sourceAsObject), \"]\");\n }\n // Add processed source to queue\n var currentPath = key !== undefined ? \"\".concat(parentPath, \".\").concat(key) : parentPath;\n var target = Array.isArray(sourceToSanitize) ? [] : {};\n visitedObjectsWithPath.set(sourceAsObject, currentPath);\n queue.push({ source: sourceToSanitize, target: target, path: currentPath });\n return target;\n}\n/**\n * Handles sanitization of simple, non-object types\n *\n */\nfunction sanitizePrimitivesAndFunctions(value) {\n // BigInt cannot be serialized by JSON.stringify(), convert it to a string representation\n if (typeof value === 'bigint') {\n return \"[BigInt] \".concat(value.toString());\n }\n // Functions cannot be serialized by JSON.stringify(). Moreover, if a faulty toJSON is present, it needs to be converted\n // so it won't prevent stringify from serializing later\n if (typeof value === 'function') {\n return \"[Function] \".concat(value.name || 'unknown');\n }\n // JSON.stringify() does not serialize symbols.\n if (typeof value === 'symbol') {\n return \"[Symbol] \".concat(value.description || value.toString());\n }\n return value;\n}\n/**\n * Handles sanitization of object types\n *\n * LIMITATIONS\n * - If a class defines a toStringTag Symbol, it will fall in the catch-all method and prevent enumeration of properties.\n * To avoid this, a toJSON method can be defined.\n * - IE11 does not return a distinct type for objects such as Map, WeakMap, ... These objects will pass through and their\n * properties enumerated if any.\n *\n */\nfunction sanitizeObjects(value) {\n try {\n // Handle events - Keep a simple implementation to avoid breaking changes\n if (value instanceof Event) {\n return {\n isTrusted: value.isTrusted,\n };\n }\n // Handle all remaining object types in a generic way\n var result = Object.prototype.toString.call(value);\n var match = result.match(/\\[object (.*)\\]/);\n if (match && match[1]) {\n return \"[\".concat(match[1], \"]\");\n }\n }\n catch (_a) {\n // If the previous serialization attempts failed, and we cannot convert using\n // Object.prototype.toString, declare the value unserializable\n }\n return '[Unserializable]';\n}\n/**\n * Checks if a toJSON function exists and tries to execute it\n *\n */\nfunction tryToApplyToJSON(value) {\n var object = value;\n if (object && typeof object.toJSON === 'function') {\n try {\n return object.toJSON();\n }\n catch (_a) {\n // If toJSON fails, we continue by trying to serialize the value manually\n }\n }\n return value;\n}\n/**\n * Helper function to display the warning when the accumulated character count is over the limit\n */\nfunction warnOverCharacterLimit(maxCharacterCount, changeType, source) {\n display.warn(\"The data provided has been \".concat(changeType, \" as it is over the limit of \").concat(maxCharacterCount, \" characters:\"), source);\n}\n//# sourceMappingURL=sanitize.js.map","var Observable = /** @class */ (function () {\n function Observable(onFirstSubscribe) {\n this.onFirstSubscribe = onFirstSubscribe;\n this.observers = [];\n }\n Observable.prototype.subscribe = function (f) {\n var _this = this;\n if (!this.observers.length && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe() || undefined;\n }\n this.observers.push(f);\n return {\n unsubscribe: function () {\n _this.observers = _this.observers.filter(function (other) { return f !== other; });\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe();\n }\n },\n };\n };\n Observable.prototype.notify = function (data) {\n this.observers.forEach(function (observer) { return observer(data); });\n };\n return Observable;\n}());\nexport { Observable };\nexport function mergeObservables() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var globalObservable = new Observable(function () {\n var subscriptions = observables.map(function (observable) {\n return observable.subscribe(function (data) { return globalObservable.notify(data); });\n });\n return function () { return subscriptions.forEach(function (subscription) { return subscription.unsubscribe(); }); };\n });\n return globalObservable;\n}\n//# sourceMappingURL=observable.js.map","var _a;\nimport { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils';\nimport { display } from '../../tools/display';\n// RUM and logs batch bytes limit is 16KB\n// ensure that we leave room for other event attributes and maintain a decent amount of event per batch\n// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB\nexport var CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE;\nvar CustomerDataLabel = (_a = {},\n _a[0 /* CustomerDataType.FeatureFlag */] = 'feature flag evaluation',\n _a[1 /* CustomerDataType.User */] = 'user',\n _a[2 /* CustomerDataType.GlobalContext */] = 'global context',\n _a[3 /* CustomerDataType.LoggerContext */] = 'logger context',\n _a);\nexport function warnIfCustomerDataLimitReached(bytesCount, customerDataType) {\n if (bytesCount > CUSTOMER_DATA_BYTES_LIMIT) {\n display.warn(\"The \".concat(CustomerDataLabel[customerDataType], \" data exceeds the recommended \").concat(CUSTOMER_DATA_BYTES_LIMIT / ONE_KIBI_BYTE, \"KiB threshold. More details: https://docs.datadoghq.com/real_user_monitoring/browser/troubleshooting/#customer-data-exceeds-the-recommended-3kib-warning\"));\n return true;\n }\n return false;\n}\n//# sourceMappingURL=heavyCustomerDataWarning.js.map","import { computeBytesCount } from '../../tools/utils/byteUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { deepClone } from '../../tools/mergeInto';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { Observable } from '../../tools/observable';\nimport { warnIfCustomerDataLimitReached } from './heavyCustomerDataWarning';\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200;\nexport function createContextManager(customerDataType, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n var context = {};\n var bytesCountCache;\n var alreadyWarned = false;\n var changeObservable = new Observable();\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call context APIs synchronously multiple times in a row\n var computeBytesCountThrottled = throttle(function (context) {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context));\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(bytesCountCache, customerDataType);\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY).throttled;\n var contextManager = {\n getBytesCount: function () { return bytesCountCache; },\n getContext: function () { return deepClone(context); },\n setContext: function (newContext) {\n if (getType(newContext) === 'object') {\n context = sanitize(newContext);\n computeBytesCountThrottled(context);\n }\n else {\n contextManager.clearContext();\n }\n changeObservable.notify();\n },\n setContextProperty: function (key, property) {\n context[key] = sanitize(property);\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n removeContextProperty: function (key) {\n delete context[key];\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n clearContext: function () {\n context = {};\n bytesCountCache = 0;\n changeObservable.notify();\n },\n changeObservable: changeObservable,\n };\n return contextManager;\n}\n//# sourceMappingURL=contextManager.js.map","var BUFFER_LIMIT = 500;\nvar BoundedBuffer = /** @class */ (function () {\n function BoundedBuffer() {\n this.buffer = [];\n }\n BoundedBuffer.prototype.add = function (callback) {\n var length = this.buffer.push(callback);\n if (length > BUFFER_LIMIT) {\n this.buffer.splice(0, 1);\n }\n };\n BoundedBuffer.prototype.drain = function () {\n this.buffer.forEach(function (callback) { return callback(); });\n this.buffer.length = 0;\n };\n return BoundedBuffer;\n}());\nexport { BoundedBuffer };\n//# sourceMappingURL=boundedBuffer.js.map","/**\n * Return true if the draw is successful\n * @param threshold between 0 and 100\n */\nexport function performDraw(threshold) {\n return threshold !== 0 && Math.random() * 100 <= threshold;\n}\nexport function round(num, decimals) {\n return +num.toFixed(decimals);\n}\nexport function isPercentage(value) {\n return isNumber(value) && value >= 0 && value <= 100;\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\n//# sourceMappingURL=numberUtils.js.map","import { isNumber, round } from './numberUtils';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = 60 * ONE_SECOND;\nexport var ONE_HOUR = 60 * ONE_MINUTE;\nexport var ONE_DAY = 24 * ONE_HOUR;\nexport var ONE_YEAR = 365 * ONE_DAY;\nexport function relativeToClocks(relative) {\n return { relative: relative, timeStamp: getCorrectedTimeStamp(relative) };\n}\nfunction getCorrectedTimeStamp(relativeTime) {\n var correctedOrigin = (dateNow() - performance.now());\n // apply correction only for positive drift\n if (correctedOrigin > getNavigationStart()) {\n return Math.round(addDuration(correctedOrigin, relativeTime));\n }\n return getTimeStamp(relativeTime);\n}\nexport function currentDrift() {\n return Math.round(dateNow() - addDuration(getNavigationStart(), performance.now()));\n}\nexport function toServerDuration(duration) {\n if (!isNumber(duration)) {\n return duration;\n }\n return round(duration * 1e6, 0);\n}\nexport function dateNow() {\n // Do not use `Date.now` because sometimes websites are wrongly \"polyfilling\" it. For example, we\n // had some users using a very old version of `datejs`, which patched `Date.now` to return a Date\n // instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this\n // case ourselves.\n // [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16\n return new Date().getTime();\n}\nexport function timeStampNow() {\n return dateNow();\n}\nexport function relativeNow() {\n return performance.now();\n}\nexport function clocksNow() {\n return { relative: relativeNow(), timeStamp: timeStampNow() };\n}\nexport function clocksOrigin() {\n return { relative: 0, timeStamp: getNavigationStart() };\n}\nexport function elapsed(start, end) {\n return (end - start);\n}\nexport function addDuration(a, b) {\n return a + b;\n}\n/**\n * Get the time since the navigation was started.\n *\n * Note: this does not use `performance.timeOrigin` because it doesn't seem to reflect the actual\n * time on which the navigation has started: it may be much farther in the past, at least in Firefox 71.\n * Related issue in Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1429926\n */\nexport function getRelativeTime(timestamp) {\n return (timestamp - getNavigationStart());\n}\nexport function getTimeStamp(relativeTime) {\n return Math.round(addDuration(getNavigationStart(), relativeTime));\n}\nexport function looksLikeRelativeTime(time) {\n return time < ONE_YEAR;\n}\n/**\n * Navigation start slightly change on some rare cases\n */\nvar navigationStart;\nfunction getNavigationStart() {\n if (navigationStart === undefined) {\n navigationStart = performance.timing.navigationStart;\n }\n return navigationStart;\n}\nexport function resetNavigationStart() {\n navigationStart = undefined;\n}\n//# sourceMappingURL=timeUtils.js.map","/**\n * UUID v4\n * from https://gist.github.com/jed/982883\n */\nexport function generateUUID(placeholder) {\n return placeholder\n ? // eslint-disable-next-line no-bitwise\n (parseInt(placeholder, 10) ^ ((Math.random() * 16) >> (parseInt(placeholder, 10) / 4))).toString(16)\n : \"\".concat(1e7, \"-\").concat(1e3, \"-\").concat(4e3, \"-\").concat(8e3, \"-\").concat(1e11).replace(/[018]/g, generateUUID);\n}\nvar COMMA_SEPARATED_KEY_VALUE = /([\\w-]+)\\s*=\\s*([^;]+)/g;\nexport function findCommaSeparatedValue(rawString, name) {\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);\n if (match) {\n if (match[1] === name) {\n return match[2];\n }\n }\n else {\n break;\n }\n }\n}\nexport function findCommaSeparatedValues(rawString) {\n var result = new Map();\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var match = COMMA_SEPARATED_KEY_VALUE.exec(rawString);\n if (match) {\n result.set(match[1], match[2]);\n }\n else {\n break;\n }\n }\n return result;\n}\nexport function safeTruncate(candidate, length, suffix) {\n if (suffix === void 0) { suffix = ''; }\n var lastChar = candidate.charCodeAt(length - 1);\n var isLastCharSurrogatePair = lastChar >= 0xd800 && lastChar <= 0xdbff;\n var correctedLength = isLastCharSurrogatePair ? length + 1 : length;\n if (candidate.length <= correctedLength) {\n return candidate;\n }\n return \"\".concat(candidate.slice(0, correctedLength)).concat(suffix);\n}\n//# sourceMappingURL=stringUtils.js.map","import { display } from '../tools/display';\nimport { ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { findCommaSeparatedValue, findCommaSeparatedValues, generateUUID } from '../tools/utils/stringUtils';\nexport function setCookie(name, value, expireDelay, options) {\n var date = new Date();\n date.setTime(date.getTime() + expireDelay);\n var expires = \"expires=\".concat(date.toUTCString());\n var sameSite = options && options.crossSite ? 'none' : 'strict';\n var domain = options && options.domain ? \";domain=\".concat(options.domain) : '';\n var secure = options && options.secure ? ';secure' : '';\n document.cookie = \"\".concat(name, \"=\").concat(value, \";\").concat(expires, \";path=/;samesite=\").concat(sameSite).concat(domain).concat(secure);\n}\nexport function getCookie(name) {\n return findCommaSeparatedValue(document.cookie, name);\n}\nvar initCookieParsed;\n/**\n * Returns a cached value of the cookie. Use this during SDK initialization (and whenever possible)\n * to avoid accessing document.cookie multiple times.\n */\nexport function getInitCookie(name) {\n if (!initCookieParsed) {\n initCookieParsed = findCommaSeparatedValues(document.cookie);\n }\n return initCookieParsed.get(name);\n}\nexport function resetInitCookies() {\n initCookieParsed = undefined;\n}\nexport function deleteCookie(name, options) {\n setCookie(name, '', 0, options);\n}\nexport function areCookiesAuthorized(options) {\n if (document.cookie === undefined || document.cookie === null) {\n return false;\n }\n try {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = \"dd_cookie_test_\".concat(generateUUID());\n var testCookieValue = 'test';\n setCookie(testCookieName, testCookieValue, ONE_MINUTE, options);\n var isCookieCorrectlySet = getCookie(testCookieName) === testCookieValue;\n deleteCookie(testCookieName, options);\n return isCookieCorrectlySet;\n }\n catch (error) {\n display.error(error);\n return false;\n }\n}\n/**\n * No API to retrieve it, number of levels for subdomain and suffix are unknown\n * strategy: find the minimal domain on which cookies are allowed to be set\n * https://web.dev/same-site-same-origin/#site\n */\nvar getCurrentSiteCache;\nexport function getCurrentSite() {\n if (getCurrentSiteCache === undefined) {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = \"dd_site_test_\".concat(generateUUID());\n var testCookieValue = 'test';\n var domainLevels = window.location.hostname.split('.');\n var candidateDomain = domainLevels.pop();\n while (domainLevels.length && !getCookie(testCookieName)) {\n candidateDomain = \"\".concat(domainLevels.pop(), \".\").concat(candidateDomain);\n setCookie(testCookieName, testCookieValue, ONE_SECOND, { domain: candidateDomain });\n }\n deleteCookie(testCookieName, { domain: candidateDomain });\n getCurrentSiteCache = candidateDomain;\n }\n return getCurrentSiteCache;\n}\n//# sourceMappingURL=cookie.js.map","import { getInitCookie } from '../../browser/cookie';\nexport var SYNTHETICS_TEST_ID_COOKIE_NAME = 'datadog-synthetics-public-id';\nexport var SYNTHETICS_RESULT_ID_COOKIE_NAME = 'datadog-synthetics-result-id';\nexport var SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'datadog-synthetics-injects-rum';\nexport function willSyntheticsInjectRum() {\n return Boolean(window._DATADOG_SYNTHETICS_INJECTS_RUM || getInitCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME));\n}\nexport function getSyntheticsTestId() {\n var value = window._DATADOG_SYNTHETICS_PUBLIC_ID || getInitCookie(SYNTHETICS_TEST_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\nexport function getSyntheticsResultId() {\n var value = window._DATADOG_SYNTHETICS_RESULT_ID || getInitCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=syntheticsWorkerValues.js.map","import { endsWith } from '../tools/utils/polyfills';\nimport { getGlobalObject } from '../tools/getGlobalObject';\nexport function getEventBridge() {\n var eventBridgeGlobal = getEventBridgeGlobal();\n if (!eventBridgeGlobal) {\n return;\n }\n return {\n getAllowedWebViewHosts: function () {\n return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts());\n },\n send: function (eventType, event) {\n eventBridgeGlobal.send(JSON.stringify({ eventType: eventType, event: event }));\n },\n };\n}\nexport function canUseEventBridge(currentHost) {\n var _a;\n if (currentHost === void 0) { currentHost = (_a = getGlobalObject().location) === null || _a === void 0 ? void 0 : _a.hostname; }\n var bridge = getEventBridge();\n return (!!bridge &&\n bridge\n .getAllowedWebViewHosts()\n .some(function (allowedHost) { return currentHost === allowedHost || endsWith(currentHost, \".\".concat(allowedHost)); }));\n}\nfunction getEventBridgeGlobal() {\n return getGlobalObject().DatadogEventBridge;\n}\n//# sourceMappingURL=eventBridge.js.map","import { monitor } from '../tools/monitor';\nimport { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue';\n// We want to use a real enum (i.e. not a const enum) here, to be able to iterate over it to automatically add _ddIsTrusted in e2e tests\n// eslint-disable-next-line no-restricted-syntax\nexport var DOM_EVENT;\n(function (DOM_EVENT) {\n DOM_EVENT[\"BEFORE_UNLOAD\"] = \"beforeunload\";\n DOM_EVENT[\"CLICK\"] = \"click\";\n DOM_EVENT[\"DBL_CLICK\"] = \"dblclick\";\n DOM_EVENT[\"KEY_DOWN\"] = \"keydown\";\n DOM_EVENT[\"LOAD\"] = \"load\";\n DOM_EVENT[\"POP_STATE\"] = \"popstate\";\n DOM_EVENT[\"SCROLL\"] = \"scroll\";\n DOM_EVENT[\"TOUCH_START\"] = \"touchstart\";\n DOM_EVENT[\"TOUCH_END\"] = \"touchend\";\n DOM_EVENT[\"TOUCH_MOVE\"] = \"touchmove\";\n DOM_EVENT[\"VISIBILITY_CHANGE\"] = \"visibilitychange\";\n DOM_EVENT[\"PAGE_SHOW\"] = \"pageshow\";\n DOM_EVENT[\"FREEZE\"] = \"freeze\";\n DOM_EVENT[\"RESUME\"] = \"resume\";\n DOM_EVENT[\"DOM_CONTENT_LOADED\"] = \"DOMContentLoaded\";\n DOM_EVENT[\"POINTER_DOWN\"] = \"pointerdown\";\n DOM_EVENT[\"POINTER_UP\"] = \"pointerup\";\n DOM_EVENT[\"POINTER_CANCEL\"] = \"pointercancel\";\n DOM_EVENT[\"HASH_CHANGE\"] = \"hashchange\";\n DOM_EVENT[\"PAGE_HIDE\"] = \"pagehide\";\n DOM_EVENT[\"MOUSE_DOWN\"] = \"mousedown\";\n DOM_EVENT[\"MOUSE_UP\"] = \"mouseup\";\n DOM_EVENT[\"MOUSE_MOVE\"] = \"mousemove\";\n DOM_EVENT[\"FOCUS\"] = \"focus\";\n DOM_EVENT[\"BLUR\"] = \"blur\";\n DOM_EVENT[\"CONTEXT_MENU\"] = \"contextmenu\";\n DOM_EVENT[\"RESIZE\"] = \"resize\";\n DOM_EVENT[\"CHANGE\"] = \"change\";\n DOM_EVENT[\"INPUT\"] = \"input\";\n DOM_EVENT[\"PLAY\"] = \"play\";\n DOM_EVENT[\"PAUSE\"] = \"pause\";\n DOM_EVENT[\"SECURITY_POLICY_VIOLATION\"] = \"securitypolicyviolation\";\n DOM_EVENT[\"SELECTION_CHANGE\"] = \"selectionchange\";\n DOM_EVENT[\"STORAGE\"] = \"storage\";\n})(DOM_EVENT || (DOM_EVENT = {}));\n/**\n * Add an event listener to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n */\nexport function addEventListener(configuration, eventTarget, eventName, listener, options) {\n return addEventListeners(configuration, eventTarget, [eventName], listener, options);\n}\n/**\n * Add event listeners to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n *\n * * with `once: true`, the listener will be called at most once, even if different events are listened\n */\nexport function addEventListeners(configuration, eventTarget, eventNames, listener, _a) {\n var _b = _a === void 0 ? {} : _a, once = _b.once, capture = _b.capture, passive = _b.passive;\n var listenerWithMonitor = monitor(function (event) {\n if (!event.isTrusted && !event.__ddIsTrusted && !configuration.allowUntrustedEvents) {\n return;\n }\n if (once) {\n stop();\n }\n listener(event);\n });\n var options = passive ? { capture: capture, passive: passive } : capture;\n var add = getZoneJsOriginalValue(eventTarget, 'addEventListener');\n eventNames.forEach(function (eventName) { return add.call(eventTarget, eventName, listenerWithMonitor, options); });\n function stop() {\n var remove = getZoneJsOriginalValue(eventTarget, 'removeEventListener');\n eventNames.forEach(function (eventName) { return remove.call(eventTarget, eventName, listenerWithMonitor, options); });\n }\n return {\n stop: stop,\n };\n}\n//# sourceMappingURL=addEventListener.js.map","import { computeBytesCount } from '../../tools/utils/byteUtils';\nimport { addEventListener, DOM_EVENT } from '../../browser/addEventListener';\nimport { createContextManager } from './contextManager';\nvar CONTEXT_STORE_KEY_PREFIX = '_dd_c';\nvar storageListeners = [];\nexport function createStoredContextManager(configuration, productKey, customerDataType, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n var storageKey = buildStorageKey(productKey, customerDataType);\n var contextManager = createContextManager(customerDataType, computeBytesCountImpl);\n synchronizeWithStorage();\n storageListeners.push(addEventListener(configuration, window, DOM_EVENT.STORAGE, function (_a) {\n var key = _a.key;\n if (storageKey === key) {\n synchronizeWithStorage();\n }\n }));\n contextManager.changeObservable.subscribe(dumpToStorage);\n return contextManager;\n function synchronizeWithStorage() {\n var rawContext = localStorage.getItem(storageKey);\n var context = rawContext !== null ? JSON.parse(rawContext) : {};\n contextManager.setContext(context);\n }\n function dumpToStorage() {\n localStorage.setItem(storageKey, JSON.stringify(contextManager.getContext()));\n }\n}\nexport function buildStorageKey(productKey, customerDataType) {\n return \"\".concat(CONTEXT_STORE_KEY_PREFIX, \"_\").concat(productKey, \"_\").concat(customerDataType);\n}\nexport function removeStorageListeners() {\n storageListeners.map(function (listener) { return listener.stop(); });\n}\n//# sourceMappingURL=storedContextManager.js.map","import { computeBytesCount } from './utils/byteUtils';\nexport function createIdentityEncoder() {\n var output = '';\n var outputBytesCount = 0;\n return {\n isAsync: false,\n get isEmpty() {\n return !output;\n },\n write: function (data, callback) {\n var additionalEncodedBytesCount = computeBytesCount(data);\n outputBytesCount += additionalEncodedBytesCount;\n output += data;\n if (callback) {\n callback(additionalEncodedBytesCount);\n }\n },\n finish: function (callback) {\n callback(this.finishSync());\n },\n finishSync: function () {\n var result = {\n output: output,\n outputBytesCount: outputBytesCount,\n rawBytesCount: outputBytesCount,\n pendingData: '',\n };\n output = '';\n outputBytesCount = 0;\n return result;\n },\n estimateEncodedBytesCount: function (data) {\n return data.length;\n },\n };\n}\n//# sourceMappingURL=encoder.js.map","/**\n * Cross-browser stack trace computation.\n *\n * Reference implementation: https://github.com/csnover/TraceKit/blob/04530298073c3823de72deb0b97e7b38ca7bcb59/tracekit.js\n */\nimport { startsWith } from '../../tools/utils/polyfills';\nvar UNKNOWN_FUNCTION = '?';\nexport function computeStackTrace(ex) {\n var stack = [];\n var stackProperty = tryToGetString(ex, 'stack');\n var exString = String(ex);\n if (stackProperty && startsWith(stackProperty, exString)) {\n stackProperty = stackProperty.slice(exString.length);\n }\n if (stackProperty) {\n stackProperty.split('\\n').forEach(function (line) {\n var stackFrame = parseChromeLine(line) || parseChromeAnonymousLine(line) || parseWinLine(line) || parseGeckoLine(line);\n if (stackFrame) {\n if (!stackFrame.func && stackFrame.line) {\n stackFrame.func = UNKNOWN_FUNCTION;\n }\n stack.push(stackFrame);\n }\n });\n }\n return {\n message: tryToGetString(ex, 'message'),\n name: tryToGetString(ex, 'name'),\n stack: stack,\n };\n}\nvar fileUrl = '((?:file|https?|blob|chrome-extension|native|eval|webpack|snippet||\\\\w+\\\\.|\\\\/).*?)';\nvar filePosition = '(?::(\\\\d+))';\nvar CHROME_LINE_RE = new RegExp(\"^\\\\s*at (.*?) ?\\\\(\".concat(fileUrl).concat(filePosition, \"?\").concat(filePosition, \"?\\\\)?\\\\s*$\"), 'i');\nvar CHROME_EVAL_RE = new RegExp(\"\\\\((\\\\S*)\".concat(filePosition).concat(filePosition, \"\\\\)\"));\nfunction parseChromeLine(line) {\n var parts = CHROME_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n var submatch = CHROME_EVAL_RE.exec(parts[2]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n return {\n args: isNative ? [parts[2]] : [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[3] ? +parts[3] : undefined,\n url: !isNative ? parts[2] : undefined,\n };\n}\nvar CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(\"^\\\\s*at ?\".concat(fileUrl).concat(filePosition, \"?\").concat(filePosition, \"??\\\\s*$\"), 'i');\nfunction parseChromeAnonymousLine(line) {\n var parts = CHROME_ANONYMOUS_FUNCTION_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[3] ? +parts[3] : undefined,\n func: UNKNOWN_FUNCTION,\n line: parts[2] ? +parts[2] : undefined,\n url: parts[1],\n };\n}\nvar WINJS_LINE_RE = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nfunction parseWinLine(line) {\n var parts = WINJS_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: +parts[3],\n url: parts[2],\n };\n}\nvar GECKO_LINE_RE = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar GECKO_EVAL_RE = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nfunction parseGeckoLine(line) {\n var parts = GECKO_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = GECKO_EVAL_RE.exec(parts[3]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = undefined; // no column when eval\n }\n return {\n args: parts[2] ? parts[2].split(',') : [],\n column: parts[5] ? +parts[5] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[4] ? +parts[4] : undefined,\n url: parts[3],\n };\n}\nfunction tryToGetString(candidate, property) {\n if (typeof candidate !== 'object' || !candidate || !(property in candidate)) {\n return undefined;\n }\n var value = candidate[property];\n return typeof value === 'string' ? value : undefined;\n}\nexport function computeStackTraceFromOnErrorMessage(messageObj, url, line, column) {\n var stack = [{ url: url, column: column, line: line }];\n var _a = tryToParseMessage(messageObj), name = _a.name, message = _a.message;\n return {\n name: name,\n message: message,\n stack: stack,\n };\n}\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nvar ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;\nfunction tryToParseMessage(messageObj) {\n var _a;\n var name;\n var message;\n if ({}.toString.call(messageObj) === '[object String]') {\n ;\n _a = ERROR_TYPES_RE.exec(messageObj), name = _a[1], message = _a[2];\n }\n return { name: name, message: message };\n}\n//# sourceMappingURL=computeStackTrace.js.map","import { callMonitored } from '../../tools/monitor';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { noop } from '../../tools/utils/functionUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { computeStackTrace } from './computeStackTrace';\nexport var NO_ERROR_STACK_PRESENT_MESSAGE = 'No stack, consider using an instance of Error';\nexport function computeRawError(_a) {\n var stackTrace = _a.stackTrace, originalError = _a.originalError, handlingStack = _a.handlingStack, startClocks = _a.startClocks, nonErrorPrefix = _a.nonErrorPrefix, source = _a.source, handling = _a.handling;\n var isErrorInstance = originalError instanceof Error;\n var message = computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError);\n var stack = hasUsableStack(isErrorInstance, stackTrace)\n ? toStackTraceString(stackTrace)\n : NO_ERROR_STACK_PRESENT_MESSAGE;\n var causes = isErrorInstance ? flattenErrorCauses(originalError, source) : undefined;\n var type = stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name;\n var fingerprint = tryToGetFingerprint(originalError);\n return {\n startClocks: startClocks,\n source: source,\n handling: handling,\n handlingStack: handlingStack,\n originalError: originalError,\n type: type,\n message: message,\n stack: stack,\n causes: causes,\n fingerprint: fingerprint,\n };\n}\nfunction computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError) {\n // Favor stackTrace message only if tracekit has really been able to extract something meaningful (message + name)\n // TODO rework tracekit integration to avoid scattering error building logic\n return (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.message) && (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name)\n ? stackTrace.message\n : !isErrorInstance\n ? \"\".concat(nonErrorPrefix, \" \").concat(jsonStringify(sanitize(originalError)))\n : 'Empty message';\n}\nfunction hasUsableStack(isErrorInstance, stackTrace) {\n if (stackTrace === undefined) {\n return false;\n }\n if (isErrorInstance) {\n return true;\n }\n // handle cases where tracekit return stack = [] or stack = [{url: undefined, line: undefined, column: undefined}]\n // TODO rework tracekit integration to avoid generating those unusable stack\n return stackTrace.stack.length > 0 && (stackTrace.stack.length > 1 || stackTrace.stack[0].url !== undefined);\n}\nexport function tryToGetFingerprint(originalError) {\n return originalError instanceof Error && 'dd_fingerprint' in originalError\n ? String(originalError.dd_fingerprint)\n : undefined;\n}\nexport function toStackTraceString(stack) {\n var result = formatErrorMessage(stack);\n stack.stack.forEach(function (frame) {\n var func = frame.func === '?' ? '' : frame.func;\n var args = frame.args && frame.args.length > 0 ? \"(\".concat(frame.args.join(', '), \")\") : '';\n var line = frame.line ? \":\".concat(frame.line) : '';\n var column = frame.line && frame.column ? \":\".concat(frame.column) : '';\n result += \"\\n at \".concat(func).concat(args, \" @ \").concat(frame.url).concat(line).concat(column);\n });\n return result;\n}\nexport function getFileFromStackTraceString(stack) {\n var _a;\n return (_a = /@ (.+)/.exec(stack)) === null || _a === void 0 ? void 0 : _a[1];\n}\nexport function formatErrorMessage(stack) {\n return \"\".concat(stack.name || 'Error', \": \").concat(stack.message);\n}\n/**\n Creates a stacktrace without SDK internal frames.\n \n Constraints:\n - Has to be called at the utmost position of the call stack.\n - No monitored function should encapsulate it, that is why we need to use callMonitored inside it.\n */\nexport function createHandlingStack() {\n /**\n * Skip the two internal frames:\n * - SDK API (console.error, ...)\n * - this function\n * in order to keep only the user calls\n */\n var internalFramesToSkip = 2;\n var error = new Error();\n var formattedStack;\n // IE needs to throw the error to fill in the stack trace\n if (!error.stack) {\n try {\n throw error;\n }\n catch (e) {\n noop();\n }\n }\n callMonitored(function () {\n var stackTrace = computeStackTrace(error);\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip);\n formattedStack = toStackTraceString(stackTrace);\n });\n return formattedStack;\n}\nexport function flattenErrorCauses(error, parentSource) {\n var currentError = error;\n var causes = [];\n while ((currentError === null || currentError === void 0 ? void 0 : currentError.cause) instanceof Error && causes.length < 10) {\n var stackTrace = computeStackTrace(currentError.cause);\n causes.push({\n message: currentError.cause.message,\n source: parentSource,\n type: stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name,\n stack: stackTrace && toStackTraceString(stackTrace),\n });\n currentError = currentError.cause;\n }\n return causes.length ? causes : undefined;\n}\n//# sourceMappingURL=error.js.map","import { display } from '../../tools/display';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { assign } from '../../tools/utils/polyfills';\n/**\n * Clone input data and ensure known user properties (id, name, email)\n * are strings, as defined here:\n * https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#user-related-attributes\n */\nexport function sanitizeUser(newUser) {\n // We shallow clone only to prevent mutation of user data.\n var user = assign({}, newUser);\n var keys = ['id', 'name', 'email'];\n keys.forEach(function (key) {\n if (key in user) {\n user[key] = String(user[key]);\n }\n });\n return user;\n}\n/**\n * Simple check to ensure user is valid\n */\nexport function checkUser(newUser) {\n var isValid = getType(newUser) === 'object';\n if (!isValid) {\n display.error('Unsupported user:', newUser);\n }\n return isValid;\n}\n//# sourceMappingURL=user.js.map","/**\n * LIMITATION:\n * For NPM setup, this feature flag singleton is shared between RUM and Logs product.\n * This means that an experimental flag set on the RUM product will be set on the Logs product.\n * So keep in mind that in certain configurations, your experimental feature flag may affect other products.\n *\n * FORMAT:\n * All feature flags should be snake_cased\n */\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected feature flag\n// eslint-disable-next-line no-restricted-syntax\nexport var ExperimentalFeature;\n(function (ExperimentalFeature) {\n ExperimentalFeature[\"PAGEHIDE\"] = \"pagehide\";\n ExperimentalFeature[\"FEATURE_FLAGS\"] = \"feature_flags\";\n ExperimentalFeature[\"RESOURCE_PAGE_STATES\"] = \"resource_page_states\";\n ExperimentalFeature[\"COLLECT_FLUSH_REASON\"] = \"collect_flush_reason\";\n ExperimentalFeature[\"SCROLLMAP\"] = \"scrollmap\";\n ExperimentalFeature[\"DISABLE_REPLAY_INLINE_CSS\"] = \"disable_replay_inline_css\";\n})(ExperimentalFeature || (ExperimentalFeature = {}));\nvar enabledExperimentalFeatures = new Set();\nexport function addExperimentalFeatures(enabledFeatures) {\n enabledFeatures.forEach(function (flag) {\n enabledExperimentalFeatures.add(flag);\n });\n}\nexport function isExperimentalFeatureEnabled(featureName) {\n return enabledExperimentalFeatures.has(featureName);\n}\nexport function resetExperimentalFeatures() {\n enabledExperimentalFeatures.clear();\n}\nexport function getExperimentalFeatures() {\n return enabledExperimentalFeatures;\n}\n//# sourceMappingURL=experimentalFeatures.js.map","import { assign } from './polyfills';\nexport function shallowClone(object) {\n return assign({}, object);\n}\nexport function objectHasValue(object, value) {\n return Object.keys(object).some(function (key) { return object[key] === value; });\n}\nexport function isEmptyObject(object) {\n return Object.keys(object).length === 0;\n}\nexport function mapValues(object, fn) {\n var newObject = {};\n for (var _i = 0, _a = Object.keys(object); _i < _a.length; _i++) {\n var key = _a[_i];\n newObject[key] = fn(object[key]);\n }\n return newObject;\n}\n//# sourceMappingURL=objectUtils.js.map","import { ONE_HOUR, ONE_MINUTE } from '../../tools/utils/timeUtils';\nexport var SESSION_TIME_OUT_DELAY = 4 * ONE_HOUR;\nexport var SESSION_EXPIRATION_DELAY = 15 * ONE_MINUTE;\n//# sourceMappingURL=sessionConstants.js.map","export function isIE() {\n return detectBrowserCached() === 0 /* Browser.IE */;\n}\nexport function isChromium() {\n return detectBrowserCached() === 1 /* Browser.CHROMIUM */;\n}\nexport function isSafari() {\n return detectBrowserCached() === 2 /* Browser.SAFARI */;\n}\nvar browserCache;\nfunction detectBrowserCached() {\n return browserCache !== null && browserCache !== void 0 ? browserCache : (browserCache = detectBrowser());\n}\n// Exported only for tests\nexport function detectBrowser(browserWindow) {\n var _a;\n if (browserWindow === void 0) { browserWindow = window; }\n var userAgent = browserWindow.navigator.userAgent;\n if (browserWindow.chrome || /HeadlessChrome/.test(userAgent)) {\n return 1 /* Browser.CHROMIUM */;\n }\n if (\n // navigator.vendor is deprecated, but it is the most resilient way we found to detect\n // \"Apple maintained browsers\" (AKA Safari). If one day it gets removed, we still have the\n // useragent test as a semi-working fallback.\n ((_a = browserWindow.navigator.vendor) === null || _a === void 0 ? void 0 : _a.indexOf('Apple')) === 0 ||\n (/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent))) {\n return 2 /* Browser.SAFARI */;\n }\n if (browserWindow.document.documentMode) {\n return 0 /* Browser.IE */;\n }\n return 3 /* Browser.OTHER */;\n}\n//# sourceMappingURL=browserDetection.js.map","export var SESSION_STORE_KEY = '_dd_s';\n//# sourceMappingURL=sessionStoreStrategy.js.map","import { isEmptyObject } from '../../tools/utils/objectUtils';\nimport { objectEntries } from '../../tools/utils/polyfills';\nimport { dateNow } from '../../tools/utils/timeUtils';\nimport { SESSION_EXPIRATION_DELAY } from './sessionConstants';\nvar SESSION_ENTRY_REGEXP = /^([a-z]+)=([a-z0-9-]+)$/;\nvar SESSION_ENTRY_SEPARATOR = '&';\nexport function isSessionInExpiredState(session) {\n return isEmptyObject(session);\n}\nexport function expandSessionState(session) {\n session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY);\n}\nexport function toSessionString(session) {\n return objectEntries(session)\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return \"\".concat(key, \"=\").concat(value);\n })\n .join(SESSION_ENTRY_SEPARATOR);\n}\nexport function toSessionState(sessionString) {\n var session = {};\n if (isValidSessionString(sessionString)) {\n sessionString.split(SESSION_ENTRY_SEPARATOR).forEach(function (entry) {\n var matches = SESSION_ENTRY_REGEXP.exec(entry);\n if (matches !== null) {\n var key = matches[1], value = matches[2];\n session[key] = value;\n }\n });\n }\n return session;\n}\nfunction isValidSessionString(sessionString) {\n return (!!sessionString &&\n (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString)));\n}\n//# sourceMappingURL=sessionState.js.map","import { getInitCookie } from '../../browser/cookie';\nimport { SESSION_STORE_KEY } from './storeStrategies/sessionStoreStrategy';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport var OLD_SESSION_COOKIE_NAME = '_dd';\nexport var OLD_RUM_COOKIE_NAME = '_dd_r';\nexport var OLD_LOGS_COOKIE_NAME = '_dd_l';\n// duplicate values to avoid dependency issues\nexport var RUM_SESSION_KEY = 'rum';\nexport var LOGS_SESSION_KEY = 'logs';\n/**\n * This migration should remain in the codebase as long as older versions are available/live\n * to allow older sdk versions to be upgraded to newer versions without compatibility issues.\n */\nexport function tryOldCookiesMigration(cookieStoreStrategy) {\n var sessionString = getInitCookie(SESSION_STORE_KEY);\n if (!sessionString) {\n var oldSessionId = getInitCookie(OLD_SESSION_COOKIE_NAME);\n var oldRumType = getInitCookie(OLD_RUM_COOKIE_NAME);\n var oldLogsType = getInitCookie(OLD_LOGS_COOKIE_NAME);\n var session = {};\n if (oldSessionId) {\n session.id = oldSessionId;\n }\n if (oldLogsType && /^[01]$/.test(oldLogsType)) {\n session[LOGS_SESSION_KEY] = oldLogsType;\n }\n if (oldRumType && /^[012]$/.test(oldRumType)) {\n session[RUM_SESSION_KEY] = oldRumType;\n }\n if (!isSessionInExpiredState(session)) {\n expandSessionState(session);\n cookieStoreStrategy.persistSession(session);\n }\n }\n}\n//# sourceMappingURL=oldCookiesMigration.js.map","import { isChromium } from '../../../tools/utils/browserDetection';\nimport { getCurrentSite, areCookiesAuthorized, deleteCookie, getCookie, setCookie } from '../../../browser/cookie';\nimport { tryOldCookiesMigration } from '../oldCookiesMigration';\nimport { SESSION_EXPIRATION_DELAY } from '../sessionConstants';\nimport { toSessionString, toSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nexport function selectCookieStrategy(initConfiguration) {\n var cookieOptions = buildCookieOptions(initConfiguration);\n return areCookiesAuthorized(cookieOptions) ? { type: 'Cookie', cookieOptions: cookieOptions } : undefined;\n}\nexport function initCookieStrategy(cookieOptions) {\n var cookieStore = {\n /**\n * Lock strategy allows mitigating issues due to concurrent access to cookie.\n * This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.\n */\n isLockEnabled: isChromium(),\n persistSession: persistSessionCookie(cookieOptions),\n retrieveSession: retrieveSessionCookie,\n clearSession: deleteSessionCookie(cookieOptions),\n };\n tryOldCookiesMigration(cookieStore);\n return cookieStore;\n}\nfunction persistSessionCookie(options) {\n return function (session) {\n setCookie(SESSION_STORE_KEY, toSessionString(session), SESSION_EXPIRATION_DELAY, options);\n };\n}\nfunction retrieveSessionCookie() {\n var sessionString = getCookie(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction deleteSessionCookie(options) {\n return function () {\n deleteCookie(SESSION_STORE_KEY, options);\n };\n}\nexport function buildCookieOptions(initConfiguration) {\n var cookieOptions = {};\n cookieOptions.secure = !!initConfiguration.useSecureSessionCookie || !!initConfiguration.useCrossSiteSessionCookie;\n cookieOptions.crossSite = !!initConfiguration.useCrossSiteSessionCookie;\n if (initConfiguration.trackSessionAcrossSubdomains) {\n cookieOptions.domain = getCurrentSite();\n }\n return cookieOptions;\n}\n//# sourceMappingURL=sessionInCookie.js.map","import { generateUUID } from '../../../tools/utils/stringUtils';\nimport { toSessionString, toSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nvar LOCAL_STORAGE_TEST_KEY = '_dd_test_';\nexport function selectLocalStorageStrategy() {\n try {\n var id = generateUUID();\n var testKey = \"\".concat(LOCAL_STORAGE_TEST_KEY).concat(id);\n localStorage.setItem(testKey, id);\n var retrievedId = localStorage.getItem(testKey);\n localStorage.removeItem(testKey);\n return id === retrievedId ? { type: 'LocalStorage' } : undefined;\n }\n catch (e) {\n return undefined;\n }\n}\nexport function initLocalStorageStrategy() {\n return {\n isLockEnabled: false,\n persistSession: persistInLocalStorage,\n retrieveSession: retrieveSessionFromLocalStorage,\n clearSession: clearSessionFromLocalStorage,\n };\n}\nfunction persistInLocalStorage(sessionState) {\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(sessionState));\n}\nfunction retrieveSessionFromLocalStorage() {\n var sessionString = localStorage.getItem(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction clearSessionFromLocalStorage() {\n localStorage.removeItem(SESSION_STORE_KEY);\n}\n//# sourceMappingURL=sessionInLocalStorage.js.map","import { setTimeout } from '../../tools/timer';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport var LOCK_RETRY_DELAY = 10;\nexport var LOCK_MAX_TRIES = 100;\nvar bufferedOperations = [];\nvar ongoingOperations;\nexport function processSessionStoreOperations(operations, sessionStoreStrategy, numberOfRetries) {\n var _a;\n if (numberOfRetries === void 0) { numberOfRetries = 0; }\n var isLockEnabled = sessionStoreStrategy.isLockEnabled, retrieveSession = sessionStoreStrategy.retrieveSession, persistSession = sessionStoreStrategy.persistSession, clearSession = sessionStoreStrategy.clearSession;\n if (!ongoingOperations) {\n ongoingOperations = operations;\n }\n if (operations !== ongoingOperations) {\n bufferedOperations.push(operations);\n return;\n }\n if (isLockEnabled && numberOfRetries >= LOCK_MAX_TRIES) {\n next(sessionStoreStrategy);\n return;\n }\n var currentLock;\n var currentSession = retrieveSession();\n if (isLockEnabled) {\n // if someone has lock, retry later\n if (currentSession.lock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n // acquire lock\n currentLock = generateUUID();\n currentSession.lock = currentLock;\n persistSession(currentSession);\n // if lock is not acquired, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n var processedSession = operations.process(currentSession);\n if (isLockEnabled) {\n // if lock corrupted after process, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n if (processedSession) {\n if (isSessionInExpiredState(processedSession)) {\n clearSession();\n }\n else {\n expandSessionState(processedSession);\n persistSession(processedSession);\n }\n }\n if (isLockEnabled) {\n // correctly handle lock around expiration would require to handle this case properly at several levels\n // since we don't have evidence of lock issues around expiration, let's just not do the corruption check for it\n if (!(processedSession && isSessionInExpiredState(processedSession))) {\n // if lock corrupted after persist, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n delete currentSession.lock;\n persistSession(currentSession);\n processedSession = currentSession;\n }\n }\n // call after even if session is not persisted in order to perform operations on\n // up-to-date session state value => the value could have been modified by another tab\n (_a = operations.after) === null || _a === void 0 ? void 0 : _a.call(operations, processedSession || currentSession);\n next(sessionStoreStrategy);\n}\nfunction retryLater(operations, sessionStore, currentNumberOfRetries) {\n setTimeout(function () {\n processSessionStoreOperations(operations, sessionStore, currentNumberOfRetries + 1);\n }, LOCK_RETRY_DELAY);\n}\nfunction next(sessionStore) {\n ongoingOperations = undefined;\n var nextOperations = bufferedOperations.shift();\n if (nextOperations) {\n processSessionStoreOperations(nextOperations, sessionStore);\n }\n}\n//# sourceMappingURL=sessionStoreOperations.js.map","import { clearInterval, setInterval } from '../../tools/timer';\nimport { Observable } from '../../tools/observable';\nimport { ONE_SECOND, dateNow } from '../../tools/utils/timeUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { selectCookieStrategy, initCookieStrategy } from './storeStrategies/sessionInCookie';\nimport { initLocalStorageStrategy, selectLocalStorageStrategy } from './storeStrategies/sessionInLocalStorage';\nimport { processSessionStoreOperations } from './sessionStoreOperations';\n/**\n * Every second, the storage will be polled to check for any change that can occur\n * to the session state in another browser tab, or another window.\n * This value has been determined from our previous cookie-only implementation.\n */\nexport var STORAGE_POLL_DELAY = ONE_SECOND;\n/**\n * Checks if cookies are available as the preferred storage\n * Else, checks if LocalStorage is allowed and available\n */\nexport function selectSessionStoreStrategyType(initConfiguration) {\n var sessionStoreStrategyType = selectCookieStrategy(initConfiguration);\n if (!sessionStoreStrategyType && initConfiguration.allowFallbackToLocalStorage) {\n sessionStoreStrategyType = selectLocalStorageStrategy();\n }\n return sessionStoreStrategyType;\n}\n/**\n * Different session concepts:\n * - tracked, the session has an id and is updated along the user navigation\n * - not tracked, the session does not have an id but it is updated along the user navigation\n * - inactive, no session in store or session expired, waiting for a renew session\n */\nexport function startSessionStore(sessionStoreStrategyType, productKey, computeSessionState) {\n var renewObservable = new Observable();\n var expireObservable = new Observable();\n var sessionStoreStrategy = sessionStoreStrategyType.type === 'Cookie'\n ? initCookieStrategy(sessionStoreStrategyType.cookieOptions)\n : initLocalStorageStrategy();\n var clearSession = sessionStoreStrategy.clearSession, retrieveSession = sessionStoreStrategy.retrieveSession;\n var watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY);\n var sessionCache = retrieveActiveSession();\n function expandOrRenewSession() {\n var isTracked;\n processSessionStoreOperations({\n process: function (sessionState) {\n var synchronizedSession = synchronizeSession(sessionState);\n isTracked = expandOrRenewSessionState(synchronizedSession);\n return synchronizedSession;\n },\n after: function (sessionState) {\n if (isTracked && !hasSessionInCache()) {\n renewSessionInCache(sessionState);\n }\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }\n function expandSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (hasSessionInCache() ? synchronizeSession(sessionState) : undefined); },\n }, sessionStoreStrategy);\n }\n /**\n * allows two behaviors:\n * - if the session is active, synchronize the session cache without updating the session store\n * - if the session is not active, clear the session store and expire the session cache\n */\n function watchSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (!isActiveSession(sessionState) ? {} : undefined); },\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n function synchronizeSession(sessionState) {\n if (!isActiveSession(sessionState)) {\n sessionState = {};\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(sessionState)) {\n expireSessionInCache();\n }\n else {\n sessionCache = sessionState;\n }\n }\n return sessionState;\n }\n function expandOrRenewSessionState(sessionState) {\n var _a = computeSessionState(sessionState[productKey]), trackingType = _a.trackingType, isTracked = _a.isTracked;\n sessionState[productKey] = trackingType;\n if (isTracked && !sessionState.id) {\n sessionState.id = generateUUID();\n sessionState.created = String(dateNow());\n }\n return isTracked;\n }\n function hasSessionInCache() {\n return sessionCache[productKey] !== undefined;\n }\n function isSessionInCacheOutdated(sessionState) {\n return sessionCache.id !== sessionState.id || sessionCache[productKey] !== sessionState[productKey];\n }\n function expireSessionInCache() {\n sessionCache = {};\n expireObservable.notify();\n }\n function renewSessionInCache(sessionState) {\n sessionCache = sessionState;\n renewObservable.notify();\n }\n function retrieveActiveSession() {\n var session = retrieveSession();\n if (isActiveSession(session)) {\n return session;\n }\n return {};\n }\n function isActiveSession(sessionState) {\n // created and expire can be undefined for versions which was not storing them\n // these checks could be removed when older versions will not be available/live anymore\n return ((sessionState.created === undefined || dateNow() - Number(sessionState.created) < SESSION_TIME_OUT_DELAY) &&\n (sessionState.expire === undefined || dateNow() < Number(sessionState.expire)));\n }\n return {\n expandOrRenewSession: throttle(expandOrRenewSession, STORAGE_POLL_DELAY).throttled,\n expandSession: expandSession,\n getSession: function () { return sessionCache; },\n renewObservable: renewObservable,\n expireObservable: expireObservable,\n expire: function () {\n clearSession();\n synchronizeSession({});\n },\n stop: function () {\n clearInterval(watchSessionTimeoutId);\n },\n };\n}\n//# sourceMappingURL=sessionStore.js.map","import { jsonStringify } from '../serialisation/jsonStringify';\nexport function normalizeUrl(url) {\n return buildUrl(url, getLocationOrigin()).href;\n}\nexport function isValidUrl(url) {\n try {\n return !!buildUrl(url);\n }\n catch (_a) {\n return false;\n }\n}\nexport function getOrigin(url) {\n return getLinkElementOrigin(buildUrl(url));\n}\nexport function getPathName(url) {\n var pathname = buildUrl(url).pathname;\n return pathname[0] === '/' ? pathname : \"/\".concat(pathname);\n}\nexport function getSearch(url) {\n return buildUrl(url).search;\n}\nexport function getHash(url) {\n return buildUrl(url).hash;\n}\nexport function buildUrl(url, base) {\n var supportedURL = getSupportedUrl();\n if (supportedURL) {\n try {\n return base !== undefined ? new supportedURL(url, base) : new supportedURL(url);\n }\n catch (error) {\n throw new Error(\"Failed to construct URL: \".concat(String(error), \" \").concat(jsonStringify({ url: url, base: base })));\n }\n }\n if (base === undefined && !/:/.test(url)) {\n throw new Error(\"Invalid URL: '\".concat(url, \"'\"));\n }\n var doc = document;\n var anchorElement = doc.createElement('a');\n if (base !== undefined) {\n doc = document.implementation.createHTMLDocument('');\n var baseElement = doc.createElement('base');\n baseElement.href = base;\n doc.head.appendChild(baseElement);\n doc.body.appendChild(anchorElement);\n }\n anchorElement.href = url;\n return anchorElement;\n}\nvar originalURL = URL;\nvar isURLSupported;\nfunction getSupportedUrl() {\n if (isURLSupported === undefined) {\n try {\n var url = new originalURL('http://test/path');\n isURLSupported = url.href === 'http://test/path';\n }\n catch (_a) {\n isURLSupported = false;\n }\n }\n return isURLSupported ? originalURL : undefined;\n}\nexport function getLocationOrigin() {\n return getLinkElementOrigin(window.location);\n}\n/**\n * Fallback\n * On IE HTMLAnchorElement origin is not supported: https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/origin\n * On Firefox window.location.origin is \"null\" for file: URIs: https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n */\nexport function getLinkElementOrigin(element) {\n if (element.origin && element.origin !== 'null') {\n return element.origin;\n }\n var sanitizedHost = element.host.replace(/(:80|:443)$/, '');\n return \"\".concat(element.protocol, \"//\").concat(sanitizedHost);\n}\n//# sourceMappingURL=urlPolyfill.js.map","export var INTAKE_SITE_STAGING = 'datad0g.com';\nexport var INTAKE_SITE_US1 = 'datadoghq.com';\nexport var INTAKE_SITE_EU1 = 'datadoghq.eu';\nexport var INTAKE_SITE_US1_FED = 'ddog-gov.com';\n//# sourceMappingURL=intakeSites.js.map","import { timeStampNow } from '../../tools/utils/timeUtils';\nimport { normalizeUrl } from '../../tools/utils/urlPolyfill';\nimport { ExperimentalFeature, isExperimentalFeatureEnabled } from '../../tools/experimentalFeatures';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { INTAKE_SITE_US1 } from './intakeSites';\nexport function createEndpointBuilder(initConfiguration, trackType, configurationTags) {\n var buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, trackType);\n return {\n build: function (api, payload) {\n var parameters = buildEndpointParameters(initConfiguration, trackType, configurationTags, api, payload);\n return buildUrlWithParameters(parameters);\n },\n urlPrefix: buildUrlWithParameters(''),\n trackType: trackType,\n };\n}\n/**\n * Create a function used to build a full endpoint url from provided parameters. The goal of this\n * function is to pre-compute some parts of the URL to avoid re-computing everything on every\n * request, as only parameters are changing.\n */\nfunction createEndpointUrlWithParametersBuilder(initConfiguration, trackType) {\n var path = \"/api/v2/\".concat(trackType);\n var proxy = initConfiguration.proxy;\n if (typeof proxy === 'string') {\n var normalizedProxyUrl_1 = normalizeUrl(proxy);\n return function (parameters) { return \"\".concat(normalizedProxyUrl_1, \"?ddforward=\").concat(encodeURIComponent(\"\".concat(path, \"?\").concat(parameters))); };\n }\n if (typeof proxy === 'function') {\n return function (parameters) { return proxy({ path: path, parameters: parameters }); };\n }\n var host = buildEndpointHost(initConfiguration);\n return function (parameters) { return \"https://\".concat(host).concat(path, \"?\").concat(parameters); };\n}\nfunction buildEndpointHost(initConfiguration) {\n var _a = initConfiguration.site, site = _a === void 0 ? INTAKE_SITE_US1 : _a, internalAnalyticsSubdomain = initConfiguration.internalAnalyticsSubdomain;\n if (internalAnalyticsSubdomain && site === INTAKE_SITE_US1) {\n return \"\".concat(internalAnalyticsSubdomain, \".\").concat(INTAKE_SITE_US1);\n }\n var domainParts = site.split('.');\n var extension = domainParts.pop();\n return \"browser-intake-\".concat(domainParts.join('-'), \".\").concat(extension);\n}\n/**\n * Build parameters to be used for an intake request. Parameters should be re-built for each\n * request, as they change randomly.\n */\nfunction buildEndpointParameters(_a, trackType, configurationTags, api, _b) {\n var clientToken = _a.clientToken, internalAnalyticsSubdomain = _a.internalAnalyticsSubdomain;\n var retry = _b.retry, flushReason = _b.flushReason, encoding = _b.encoding;\n var tags = [\"sdk_version:\".concat(\"5.4.0\"), \"api:\".concat(api)].concat(configurationTags);\n if (flushReason && isExperimentalFeatureEnabled(ExperimentalFeature.COLLECT_FLUSH_REASON)) {\n tags.push(\"flush_reason:\".concat(flushReason));\n }\n if (retry) {\n tags.push(\"retry_count:\".concat(retry.count), \"retry_after:\".concat(retry.lastFailureStatus));\n }\n var parameters = [\n 'ddsource=browser',\n \"ddtags=\".concat(encodeURIComponent(tags.join(','))),\n \"dd-api-key=\".concat(clientToken),\n \"dd-evp-origin-version=\".concat(encodeURIComponent(\"5.4.0\")),\n 'dd-evp-origin=browser',\n \"dd-request-id=\".concat(generateUUID()),\n ];\n if (encoding) {\n parameters.push(\"dd-evp-encoding=\".concat(encoding));\n }\n if (trackType === 'rum') {\n parameters.push(\"batch_time=\".concat(timeStampNow()));\n }\n if (internalAnalyticsSubdomain) {\n parameters.reverse();\n }\n return parameters.join('&');\n}\n//# sourceMappingURL=endpointBuilder.js.map","import { display } from '../../tools/display';\nexport var TAG_SIZE_LIMIT = 200;\nexport function buildTags(configuration) {\n var env = configuration.env, service = configuration.service, version = configuration.version, datacenter = configuration.datacenter;\n var tags = [];\n if (env) {\n tags.push(buildTag('env', env));\n }\n if (service) {\n tags.push(buildTag('service', service));\n }\n if (version) {\n tags.push(buildTag('version', version));\n }\n if (datacenter) {\n tags.push(buildTag('datacenter', datacenter));\n }\n return tags;\n}\nvar FORBIDDEN_CHARACTERS = /[^a-z0-9_:./-]/;\nexport function buildTag(key, rawValue) {\n // See https://docs.datadoghq.com/getting_started/tagging/#defining-tags for tags syntax. Note\n // that the backend may not follow the exact same rules, so we only want to display an informal\n // warning.\n var valueSizeLimit = TAG_SIZE_LIMIT - key.length - 1;\n if (rawValue.length > valueSizeLimit || FORBIDDEN_CHARACTERS.test(rawValue)) {\n display.warn(\"\".concat(key, \" value doesn't meet tag requirements and will be sanitized\"));\n }\n // Let the backend do most of the sanitization, but still make sure multiple tags can't be crafted\n // by forging a value containing commas.\n var sanitizedValue = rawValue.replace(/,/g, '_');\n return \"\".concat(key, \":\").concat(sanitizedValue);\n}\n//# sourceMappingURL=tags.js.map","import { objectValues, assign } from '../../tools/utils/polyfills';\nimport { createEndpointBuilder } from './endpointBuilder';\nimport { buildTags } from './tags';\nimport { INTAKE_SITE_US1 } from './intakeSites';\nexport function computeTransportConfiguration(initConfiguration) {\n var tags = buildTags(initConfiguration);\n var endpointBuilders = computeEndpointBuilders(initConfiguration, tags);\n var intakeUrlPrefixes = objectValues(endpointBuilders).map(function (builder) { return builder.urlPrefix; });\n var replicaConfiguration = computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags);\n return assign({\n isIntakeUrl: function (url) { return intakeUrlPrefixes.some(function (intakeEndpoint) { return url.indexOf(intakeEndpoint) === 0; }); },\n replica: replicaConfiguration,\n site: initConfiguration.site || INTAKE_SITE_US1,\n }, endpointBuilders);\n}\nfunction computeEndpointBuilders(initConfiguration, tags) {\n return {\n logsEndpointBuilder: createEndpointBuilder(initConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(initConfiguration, 'rum', tags),\n sessionReplayEndpointBuilder: createEndpointBuilder(initConfiguration, 'replay', tags),\n };\n}\nfunction computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags) {\n if (!initConfiguration.replica) {\n return;\n }\n var replicaConfiguration = assign({}, initConfiguration, {\n site: INTAKE_SITE_US1,\n clientToken: initConfiguration.replica.clientToken,\n });\n var replicaEndpointBuilders = {\n logsEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'rum', tags),\n };\n intakeUrlPrefixes.push.apply(intakeUrlPrefixes, objectValues(replicaEndpointBuilders).map(function (builder) { return builder.urlPrefix; }));\n return assign({ applicationId: initConfiguration.replica.applicationId }, replicaEndpointBuilders);\n}\n//# sourceMappingURL=transportConfiguration.js.map","import { catchUserErrors } from '../../tools/catchUserErrors';\nimport { display } from '../../tools/display';\nimport { ExperimentalFeature, addExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { ONE_SECOND } from '../../tools/utils/timeUtils';\nimport { isPercentage } from '../../tools/utils/numberUtils';\nimport { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils';\nimport { objectHasValue } from '../../tools/utils/objectUtils';\nimport { assign } from '../../tools/utils/polyfills';\nimport { selectSessionStoreStrategyType } from '../session/sessionStore';\nimport { computeTransportConfiguration } from './transportConfiguration';\nexport var DefaultPrivacyLevel = {\n ALLOW: 'allow',\n MASK: 'mask',\n MASK_USER_INPUT: 'mask-user-input',\n};\nexport function validateAndBuildConfiguration(initConfiguration) {\n var _a, _b, _c;\n if (!initConfiguration || !initConfiguration.clientToken) {\n display.error('Client Token is not configured, we will not send any data.');\n return;\n }\n if (initConfiguration.sessionSampleRate !== undefined && !isPercentage(initConfiguration.sessionSampleRate)) {\n display.error('Session Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.telemetrySampleRate !== undefined && !isPercentage(initConfiguration.telemetrySampleRate)) {\n display.error('Telemetry Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.telemetryConfigurationSampleRate !== undefined &&\n !isPercentage(initConfiguration.telemetryConfigurationSampleRate)) {\n display.error('Telemetry Configuration Sample Rate should be a number between 0 and 100');\n return;\n }\n // Set the experimental feature flags as early as possible, so we can use them in most places\n if (Array.isArray(initConfiguration.enableExperimentalFeatures)) {\n addExperimentalFeatures(initConfiguration.enableExperimentalFeatures.filter(function (flag) {\n return objectHasValue(ExperimentalFeature, flag);\n }));\n }\n return assign({\n beforeSend: initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),\n sessionStoreStrategyType: selectSessionStoreStrategyType(initConfiguration),\n sessionSampleRate: (_a = initConfiguration.sessionSampleRate) !== null && _a !== void 0 ? _a : 100,\n telemetrySampleRate: (_b = initConfiguration.telemetrySampleRate) !== null && _b !== void 0 ? _b : 20,\n telemetryConfigurationSampleRate: (_c = initConfiguration.telemetryConfigurationSampleRate) !== null && _c !== void 0 ? _c : 5,\n service: initConfiguration.service,\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\n allowUntrustedEvents: !!initConfiguration.allowUntrustedEvents,\n /**\n * beacon payload max queue size implementation is 64kb\n * ensure that we leave room for logs, rum and potential other users\n */\n batchBytesLimit: 16 * ONE_KIBI_BYTE,\n eventRateLimiterThreshold: 3000,\n maxTelemetryEventsPerPage: 15,\n /**\n * flush automatically, aim to be lower than ALB connection timeout\n * to maximize connection reuse.\n */\n flushTimeout: (30 * ONE_SECOND),\n /**\n * Logs intake limit\n */\n batchMessagesLimit: 50,\n messageBytesLimit: 256 * ONE_KIBI_BYTE,\n }, computeTransportConfiguration(initConfiguration));\n}\nexport function serializeConfiguration(initConfiguration) {\n return {\n session_sample_rate: initConfiguration.sessionSampleRate,\n telemetry_sample_rate: initConfiguration.telemetrySampleRate,\n telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,\n use_before_send: !!initConfiguration.beforeSend,\n use_cross_site_session_cookie: initConfiguration.useCrossSiteSessionCookie,\n use_secure_session_cookie: initConfiguration.useSecureSessionCookie,\n use_proxy: !!initConfiguration.proxy,\n silent_multiple_init: initConfiguration.silentMultipleInit,\n track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,\n allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,\n store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,\n allow_untrusted_events: !!initConfiguration.allowUntrustedEvents,\n };\n}\n//# sourceMappingURL=configuration.js.map","import { startsWith } from './utils/polyfills';\nimport { display } from './display';\nimport { getType } from './utils/typeUtils';\nexport function isMatchOption(item) {\n var itemType = getType(item);\n return itemType === 'string' || itemType === 'function' || item instanceof RegExp;\n}\n/**\n * Returns true if value can be matched by at least one of the provided MatchOptions.\n * When comparing strings, setting useStartsWith to true will compare the value with the start of\n * the option, instead of requiring an exact match.\n */\nexport function matchList(list, value, useStartsWith) {\n if (useStartsWith === void 0) { useStartsWith = false; }\n return list.some(function (item) {\n try {\n if (typeof item === 'function') {\n return item(value);\n }\n else if (item instanceof RegExp) {\n return item.test(value);\n }\n else if (typeof item === 'string') {\n return useStartsWith ? startsWith(value, item) : item === value;\n }\n }\n catch (e) {\n display.error(e);\n }\n return false;\n });\n}\n//# sourceMappingURL=matchOption.js.map","import { objectEntries, shallowClone, performDraw, isNumber, assign, find, getType, isMatchOption, matchList, } from '@datadog/browser-core';\nexport function isTracingOption(item) {\n var expectedItem = item;\n return (getType(expectedItem) === 'object' &&\n isMatchOption(expectedItem.match) &&\n Array.isArray(expectedItem.propagatorTypes));\n}\n/**\n * Clear tracing information to avoid incomplete traces. Ideally, we should do it when the\n * request did not reach the server, but the browser does not expose this. So, we clear tracing\n * information if the request ended with status 0 without being aborted by the application.\n *\n * Reasoning:\n *\n * * Applications are usually aborting requests after a bit of time, for example when the user is\n * typing (autocompletion) or navigating away (in a SPA). With a performant device and good\n * network conditions, the request is likely to reach the server before being canceled.\n *\n * * Requests aborted otherwise (ex: lack of internet, CORS issue, blocked by a privacy extension)\n * are likely to finish quickly and without reaching the server.\n *\n * Of course, it might not be the case every time, but it should limit having incomplete traces a\n * bit.\n * */\nexport function clearTracingIfNeeded(context) {\n if (context.status === 0 && !context.isAborted) {\n context.traceId = undefined;\n context.spanId = undefined;\n context.traceSampled = undefined;\n }\n}\nexport function startTracer(configuration, sessionManager) {\n return {\n clearTracingIfNeeded: clearTracingIfNeeded,\n traceFetch: function (context) {\n return injectHeadersIfTracingAllowed(configuration, context, sessionManager, function (tracingHeaders) {\n var _a;\n if (context.input instanceof Request && !((_a = context.init) === null || _a === void 0 ? void 0 : _a.headers)) {\n context.input = new Request(context.input);\n Object.keys(tracingHeaders).forEach(function (key) {\n ;\n context.input.headers.append(key, tracingHeaders[key]);\n });\n }\n else {\n context.init = shallowClone(context.init);\n var headers_1 = [];\n if (context.init.headers instanceof Headers) {\n context.init.headers.forEach(function (value, key) {\n headers_1.push([key, value]);\n });\n }\n else if (Array.isArray(context.init.headers)) {\n context.init.headers.forEach(function (header) {\n headers_1.push(header);\n });\n }\n else if (context.init.headers) {\n Object.keys(context.init.headers).forEach(function (key) {\n headers_1.push([key, context.init.headers[key]]);\n });\n }\n context.init.headers = headers_1.concat(objectEntries(tracingHeaders));\n }\n });\n },\n traceXhr: function (context, xhr) {\n return injectHeadersIfTracingAllowed(configuration, context, sessionManager, function (tracingHeaders) {\n Object.keys(tracingHeaders).forEach(function (name) {\n xhr.setRequestHeader(name, tracingHeaders[name]);\n });\n });\n },\n };\n}\nfunction injectHeadersIfTracingAllowed(configuration, context, sessionManager, inject) {\n if (!isTracingSupported() || !sessionManager.findTrackedSession()) {\n return;\n }\n var tracingOption = find(configuration.allowedTracingUrls, function (tracingOption) {\n return matchList([tracingOption.match], context.url, true);\n });\n if (!tracingOption) {\n return;\n }\n context.traceId = new TraceIdentifier();\n context.spanId = new TraceIdentifier();\n context.traceSampled = !isNumber(configuration.traceSampleRate) || performDraw(configuration.traceSampleRate);\n inject(makeTracingHeaders(context.traceId, context.spanId, context.traceSampled, tracingOption.propagatorTypes));\n}\nexport function isTracingSupported() {\n return getCrypto() !== undefined;\n}\nfunction getCrypto() {\n return window.crypto || window.msCrypto;\n}\n/**\n * When trace is not sampled, set priority to '0' instead of not adding the tracing headers\n * to prepare the implementation for sampling delegation.\n */\nfunction makeTracingHeaders(traceId, spanId, traceSampled, propagatorTypes) {\n var tracingHeaders = {};\n propagatorTypes.forEach(function (propagatorType) {\n switch (propagatorType) {\n case 'datadog': {\n assign(tracingHeaders, {\n 'x-datadog-origin': 'rum',\n 'x-datadog-parent-id': spanId.toDecimalString(),\n 'x-datadog-sampling-priority': traceSampled ? '1' : '0',\n 'x-datadog-trace-id': traceId.toDecimalString(),\n });\n break;\n }\n // https://www.w3.org/TR/trace-context/\n case 'tracecontext': {\n assign(tracingHeaders, {\n traceparent: \"00-0000000000000000\".concat(traceId.toPaddedHexadecimalString(), \"-\").concat(spanId.toPaddedHexadecimalString(), \"-0\").concat(traceSampled ? '1' : '0'),\n });\n break;\n }\n // https://github.com/openzipkin/b3-propagation\n case 'b3': {\n assign(tracingHeaders, {\n b3: \"\".concat(traceId.toPaddedHexadecimalString(), \"-\").concat(spanId.toPaddedHexadecimalString(), \"-\").concat(traceSampled ? '1' : '0'),\n });\n break;\n }\n case 'b3multi': {\n assign(tracingHeaders, {\n 'X-B3-TraceId': traceId.toPaddedHexadecimalString(),\n 'X-B3-SpanId': spanId.toPaddedHexadecimalString(),\n 'X-B3-Sampled': traceSampled ? '1' : '0',\n });\n break;\n }\n }\n });\n return tracingHeaders;\n}\n/* eslint-disable no-bitwise */\nvar TraceIdentifier = /** @class */ (function () {\n function TraceIdentifier() {\n this.buffer = new Uint8Array(8);\n getCrypto().getRandomValues(this.buffer);\n this.buffer[0] = this.buffer[0] & 0x7f; // force 63-bit\n }\n TraceIdentifier.prototype.toString = function (radix) {\n var high = this.readInt32(0);\n var low = this.readInt32(4);\n var str = '';\n do {\n var mod = (high % radix) * 4294967296 + low;\n high = Math.floor(high / radix);\n low = Math.floor(mod / radix);\n str = (mod % radix).toString(radix) + str;\n } while (high || low);\n return str;\n };\n /**\n * Format used everywhere except the trace intake\n */\n TraceIdentifier.prototype.toDecimalString = function () {\n return this.toString(10);\n };\n /**\n * Format used by OTel headers\n */\n TraceIdentifier.prototype.toPaddedHexadecimalString = function () {\n var traceId = this.toString(16);\n return Array(17 - traceId.length).join('0') + traceId;\n };\n TraceIdentifier.prototype.readInt32 = function (offset) {\n return (this.buffer[offset] * 16777216 +\n (this.buffer[offset + 1] << 16) +\n (this.buffer[offset + 2] << 8) +\n this.buffer[offset + 3]);\n };\n return TraceIdentifier;\n}());\nexport { TraceIdentifier };\n/* eslint-enable no-bitwise */\n//# sourceMappingURL=tracer.js.map","import { getType, arrayFrom, isMatchOption, serializeConfiguration, assign, DefaultPrivacyLevel, display, isPercentage, objectHasValue, validateAndBuildConfiguration, } from '@datadog/browser-core';\nimport { isTracingOption } from './tracing/tracer';\nexport var DEFAULT_PROPAGATOR_TYPES = ['tracecontext', 'datadog'];\nexport function validateAndBuildRumConfiguration(initConfiguration) {\n var _a, _b;\n if (!initConfiguration.applicationId) {\n display.error('Application ID is not configured, no RUM data will be collected.');\n return;\n }\n if (initConfiguration.sessionReplaySampleRate !== undefined &&\n !isPercentage(initConfiguration.sessionReplaySampleRate)) {\n display.error('Session Replay Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.traceSampleRate !== undefined && !isPercentage(initConfiguration.traceSampleRate)) {\n display.error('Trace Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.excludedActivityUrls !== undefined && !Array.isArray(initConfiguration.excludedActivityUrls)) {\n display.error('Excluded Activity Urls should be an array');\n return;\n }\n var allowedTracingUrls = validateAndBuildTracingOptions(initConfiguration);\n if (!allowedTracingUrls) {\n return;\n }\n var baseConfiguration = validateAndBuildConfiguration(initConfiguration);\n if (!baseConfiguration) {\n return;\n }\n return assign({\n applicationId: initConfiguration.applicationId,\n version: initConfiguration.version,\n actionNameAttribute: initConfiguration.actionNameAttribute,\n sessionReplaySampleRate: (_a = initConfiguration.sessionReplaySampleRate) !== null && _a !== void 0 ? _a : 0,\n startSessionReplayRecordingManually: !!initConfiguration.startSessionReplayRecordingManually,\n traceSampleRate: initConfiguration.traceSampleRate,\n allowedTracingUrls: allowedTracingUrls,\n excludedActivityUrls: (_b = initConfiguration.excludedActivityUrls) !== null && _b !== void 0 ? _b : [],\n workerUrl: initConfiguration.workerUrl,\n compressIntakeRequests: !!initConfiguration.compressIntakeRequests,\n trackUserInteractions: !!initConfiguration.trackUserInteractions,\n trackViewsManually: !!initConfiguration.trackViewsManually,\n trackResources: !!initConfiguration.trackResources,\n trackLongTasks: !!initConfiguration.trackLongTasks,\n subdomain: initConfiguration.subdomain,\n defaultPrivacyLevel: objectHasValue(DefaultPrivacyLevel, initConfiguration.defaultPrivacyLevel)\n ? initConfiguration.defaultPrivacyLevel\n : DefaultPrivacyLevel.MASK,\n customerDataTelemetrySampleRate: 1,\n }, baseConfiguration);\n}\n/**\n * Validates allowedTracingUrls and converts match options to tracing options\n */\nfunction validateAndBuildTracingOptions(initConfiguration) {\n if (initConfiguration.allowedTracingUrls !== undefined) {\n if (!Array.isArray(initConfiguration.allowedTracingUrls)) {\n display.error('Allowed Tracing URLs should be an array');\n return;\n }\n if (initConfiguration.allowedTracingUrls.length !== 0 && initConfiguration.service === undefined) {\n display.error('Service needs to be configured when tracing is enabled');\n return;\n }\n // Convert from (MatchOption | TracingOption) to TracingOption, remove unknown properties\n var tracingOptions_1 = [];\n initConfiguration.allowedTracingUrls.forEach(function (option) {\n if (isMatchOption(option)) {\n tracingOptions_1.push({ match: option, propagatorTypes: DEFAULT_PROPAGATOR_TYPES });\n }\n else if (isTracingOption(option)) {\n tracingOptions_1.push(option);\n }\n else {\n display.warn('Allowed Tracing Urls parameters should be a string, RegExp, function, or an object. Ignoring parameter', option);\n }\n });\n return tracingOptions_1;\n }\n return [];\n}\n/**\n * Combines the selected tracing propagators from the different options in allowedTracingUrls\n */\nfunction getSelectedTracingPropagators(configuration) {\n var usedTracingPropagators = new Set();\n if (Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0) {\n configuration.allowedTracingUrls.forEach(function (option) {\n if (isMatchOption(option)) {\n DEFAULT_PROPAGATOR_TYPES.forEach(function (propagatorType) { return usedTracingPropagators.add(propagatorType); });\n }\n else if (getType(option) === 'object' && Array.isArray(option.propagatorTypes)) {\n // Ensure we have an array, as we cannot rely on types yet (configuration is provided by users)\n option.propagatorTypes.forEach(function (propagatorType) { return usedTracingPropagators.add(propagatorType); });\n }\n });\n }\n return arrayFrom(usedTracingPropagators);\n}\nexport function serializeRumConfiguration(configuration) {\n var baseSerializedConfiguration = serializeConfiguration(configuration);\n return assign({\n session_replay_sample_rate: configuration.sessionReplaySampleRate,\n start_session_replay_recording_manually: configuration.startSessionReplayRecordingManually,\n trace_sample_rate: configuration.traceSampleRate,\n action_name_attribute: configuration.actionNameAttribute,\n use_allowed_tracing_urls: Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0,\n selected_tracing_propagators: getSelectedTracingPropagators(configuration),\n default_privacy_level: configuration.defaultPrivacyLevel,\n use_excluded_activity_urls: Array.isArray(configuration.excludedActivityUrls) && configuration.excludedActivityUrls.length > 0,\n use_worker_url: !!configuration.workerUrl,\n compress_intake_requests: configuration.compressIntakeRequests,\n track_views_manually: configuration.trackViewsManually,\n track_user_interactions: configuration.trackUserInteractions,\n track_resources: configuration.trackResources,\n track_long_task: configuration.trackLongTasks,\n }, baseSerializedConfiguration);\n}\n//# sourceMappingURL=configuration.js.map","export function buildCommonContext(globalContextManager, userContextManager, recorderApi) {\n return {\n context: globalContextManager.getContext(),\n user: userContextManager.getContext(),\n hasReplay: recorderApi.isRecording() ? true : undefined,\n };\n}\n//# sourceMappingURL=commonContext.js.map","import { noop, willSyntheticsInjectRum, assign, BoundedBuffer, createContextManager, deepClone, makePublicApi, monitor, clocksNow, timeStampNow, display, callMonitored, createHandlingStack, canUseEventBridge, checkUser, sanitizeUser, sanitize, createStoredContextManager, combine, createIdentityEncoder, } from '@datadog/browser-core';\nimport { validateAndBuildRumConfiguration } from '../domain/configuration';\nimport { buildCommonContext } from '../domain/contexts/commonContext';\nvar RUM_STORAGE_KEY = 'rum';\nexport function makeRumPublicApi(startRumImpl, recorderApi, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.ignoreInitIfSyntheticsWillInjectRum, ignoreInitIfSyntheticsWillInjectRum = _c === void 0 ? true : _c, startDeflateWorker = _b.startDeflateWorker, createDeflateEncoder = _b.createDeflateEncoder;\n var isAlreadyInitialized = false;\n var globalContextManager = createContextManager(2 /* CustomerDataType.GlobalContext */);\n var userContextManager = createContextManager(1 /* CustomerDataType.User */);\n var getInternalContextStrategy = function () { return undefined; };\n var getInitConfigurationStrategy = function () { return undefined; };\n var stopSessionStrategy = noop;\n var getSessionReplayLinkStrategy = function () { return undefined; };\n var bufferApiCalls = new BoundedBuffer();\n var addTimingStrategy = function (name, time) {\n if (time === void 0) { time = timeStampNow(); }\n bufferApiCalls.add(function () { return addTimingStrategy(name, time); });\n };\n var startViewStrategy = function (options, startClocks) {\n if (startClocks === void 0) { startClocks = clocksNow(); }\n bufferApiCalls.add(function () { return startViewStrategy(options, startClocks); });\n };\n var addActionStrategy = function (action, commonContext) {\n if (commonContext === void 0) { commonContext = buildCommonContext(globalContextManager, userContextManager, recorderApi); }\n bufferApiCalls.add(function () { return addActionStrategy(action, commonContext); });\n };\n var addErrorStrategy = function (providedError, commonContext) {\n if (commonContext === void 0) { commonContext = buildCommonContext(globalContextManager, userContextManager, recorderApi); }\n bufferApiCalls.add(function () { return addErrorStrategy(providedError, commonContext); });\n };\n var recorderStartStrategy = function () {\n bufferApiCalls.add(function () { return recorderStartStrategy(); });\n };\n var recorderStopStrategy = function () {\n bufferApiCalls.add(function () { return recorderStopStrategy(); });\n };\n var addFeatureFlagEvaluationStrategy = function (key, value) {\n bufferApiCalls.add(function () { return addFeatureFlagEvaluationStrategy(key, value); });\n };\n var deflateWorker;\n function initRum(initConfiguration) {\n if (!initConfiguration) {\n display.error('Missing configuration');\n return;\n }\n // This function should be available, regardless of initialization success.\n getInitConfigurationStrategy = function () { return deepClone(initConfiguration); };\n // If we are in a Synthetics test configured to automatically inject a RUM instance, we want to\n // completely discard the customer application RUM instance by ignoring their init() call. But,\n // we should not ignore the init() call from the Synthetics-injected RUM instance, so the\n // internal `ignoreInitIfSyntheticsWillInjectRum` option is here to bypass this condition.\n if (ignoreInitIfSyntheticsWillInjectRum && willSyntheticsInjectRum()) {\n return;\n }\n var eventBridgeAvailable = canUseEventBridge();\n if (eventBridgeAvailable) {\n initConfiguration = overrideInitConfigurationForBridge(initConfiguration);\n }\n if (!canInitRum(initConfiguration)) {\n return;\n }\n var configuration = validateAndBuildRumConfiguration(initConfiguration);\n if (!configuration) {\n return;\n }\n if (!eventBridgeAvailable && !configuration.sessionStoreStrategyType) {\n display.warn('No storage available for session. We will not send any data.');\n return;\n }\n if (configuration.compressIntakeRequests && !eventBridgeAvailable && startDeflateWorker) {\n deflateWorker = startDeflateWorker(configuration, 'Datadog RUM', \n // Worker initialization can fail asynchronously, especially in Firefox where even CSP\n // issues are reported asynchronously. For now, the SDK will continue its execution even if\n // data won't be sent to Datadog. We could improve this behavior in the future.\n noop);\n if (!deflateWorker) {\n // `startDeflateWorker` should have logged an error message explaining the issue\n return;\n }\n }\n if (!configuration.trackViewsManually) {\n doStartRum(initConfiguration, configuration);\n }\n else {\n // drain beforeInitCalls by buffering them until we start RUM\n // if we get a startView, drain re-buffered calls before continuing to drain beforeInitCalls\n // in order to ensure that calls are processed in order\n var beforeInitCalls = bufferApiCalls;\n bufferApiCalls = new BoundedBuffer();\n startViewStrategy = function (options) {\n doStartRum(initConfiguration, configuration, options);\n };\n beforeInitCalls.drain();\n }\n isAlreadyInitialized = true;\n }\n function doStartRum(initConfiguration, configuration, initialViewOptions) {\n if (initConfiguration.storeContextsAcrossPages) {\n var beforeInitGlobalContext = globalContextManager.getContext();\n globalContextManager = createStoredContextManager(configuration, RUM_STORAGE_KEY, 2 /* CustomerDataType.GlobalContext */);\n globalContextManager.setContext(combine(globalContextManager.getContext(), beforeInitGlobalContext));\n var beforeInitUserContext = userContextManager.getContext();\n userContextManager = createStoredContextManager(configuration, RUM_STORAGE_KEY, 1 /* CustomerDataType.User */);\n userContextManager.setContext(combine(userContextManager.getContext(), beforeInitUserContext));\n }\n var startRumResults = startRumImpl(initConfiguration, configuration, recorderApi, globalContextManager, userContextManager, initialViewOptions, deflateWorker && createDeflateEncoder\n ? function (streamId) { return createDeflateEncoder(configuration, deflateWorker, streamId); }\n : createIdentityEncoder);\n getSessionReplayLinkStrategy = function () {\n return recorderApi.getSessionReplayLink(configuration, startRumResults.session, startRumResults.viewContexts);\n };\n recorderStartStrategy = recorderApi.start;\n recorderStopStrategy = recorderApi.stop;\n (startViewStrategy = startRumResults.startView, addActionStrategy = startRumResults.addAction, addErrorStrategy = startRumResults.addError, addTimingStrategy = startRumResults.addTiming, addFeatureFlagEvaluationStrategy = startRumResults.addFeatureFlagEvaluation, getInternalContextStrategy = startRumResults.getInternalContext, stopSessionStrategy = startRumResults.stopSession);\n recorderApi.onRumStart(startRumResults.lifeCycle, configuration, startRumResults.session, startRumResults.viewContexts, deflateWorker);\n bufferApiCalls.drain();\n }\n var startView = monitor(function (options) {\n var sanitizedOptions = typeof options === 'object' ? options : { name: options };\n startViewStrategy(sanitizedOptions);\n });\n var rumPublicApi = makePublicApi({\n init: monitor(initRum),\n setGlobalContextProperty: monitor(function (key, value) { return globalContextManager.setContextProperty(key, value); }),\n removeGlobalContextProperty: monitor(function (key) { return globalContextManager.removeContextProperty(key); }),\n getGlobalContext: monitor(function () { return globalContextManager.getContext(); }),\n setGlobalContext: monitor(function (context) { return globalContextManager.setContext(context); }),\n clearGlobalContext: monitor(function () { return globalContextManager.clearContext(); }),\n getInternalContext: monitor(function (startTime) { return getInternalContextStrategy(startTime); }),\n getInitConfiguration: monitor(function () { return getInitConfigurationStrategy(); }),\n addAction: monitor(function (name, context) {\n addActionStrategy({\n name: sanitize(name),\n context: sanitize(context),\n startClocks: clocksNow(),\n type: \"custom\" /* ActionType.CUSTOM */,\n });\n }),\n addError: function (error, context) {\n var handlingStack = createHandlingStack();\n callMonitored(function () {\n addErrorStrategy({\n error: error,\n handlingStack: handlingStack,\n context: sanitize(context),\n startClocks: clocksNow(),\n });\n });\n },\n addTiming: monitor(function (name, time) {\n addTimingStrategy(sanitize(name), time);\n }),\n setUser: monitor(function (newUser) {\n if (checkUser(newUser)) {\n userContextManager.setContext(sanitizeUser(newUser));\n }\n }),\n getUser: monitor(function () { return userContextManager.getContext(); }),\n setUserProperty: monitor(function (key, property) {\n var _a;\n var sanitizedProperty = sanitizeUser((_a = {}, _a[key] = property, _a))[key];\n userContextManager.setContextProperty(key, sanitizedProperty);\n }),\n removeUserProperty: monitor(function (key) { return userContextManager.removeContextProperty(key); }),\n clearUser: monitor(function () { return userContextManager.clearContext(); }),\n startView: startView,\n stopSession: monitor(function () {\n stopSessionStrategy();\n }),\n startSessionReplayRecording: monitor(function () { return recorderStartStrategy(); }),\n stopSessionReplayRecording: monitor(function () { return recorderStopStrategy(); }),\n /**\n * This feature is currently in beta. For more information see the full [feature flag tracking guide](https://docs.datadoghq.com/real_user_monitoring/feature_flag_tracking/).\n */\n addFeatureFlagEvaluation: monitor(function (key, value) {\n addFeatureFlagEvaluationStrategy(sanitize(key), sanitize(value));\n }),\n getSessionReplayLink: monitor(function () { return getSessionReplayLinkStrategy(); }),\n });\n return rumPublicApi;\n function canInitRum(initConfiguration) {\n if (isAlreadyInitialized) {\n if (!initConfiguration.silentMultipleInit) {\n display.error('DD_RUM is already initialized.');\n }\n return false;\n }\n return true;\n }\n function overrideInitConfigurationForBridge(initConfiguration) {\n return assign({}, initConfiguration, {\n applicationId: '00000000-aaaa-0000-aaaa-000000000000',\n clientToken: 'empty',\n sessionSampleRate: 100,\n });\n }\n}\n//# sourceMappingURL=rumPublicApi.js.map","export function sendToExtension(type, payload) {\n var callback = window.__ddBrowserSdkExtensionCallback;\n if (callback) {\n callback({ type: type, payload: payload });\n }\n}\n//# sourceMappingURL=sendToExtension.js.map","export var TelemetryType = {\n log: 'log',\n configuration: 'configuration',\n};\n//# sourceMappingURL=rawTelemetryEvent.types.js.map","import { ConsoleApiName } from '../../tools/display';\nimport { toStackTraceString, NO_ERROR_STACK_PRESENT_MESSAGE } from '../error/error';\nimport { getExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { INTAKE_SITE_STAGING, INTAKE_SITE_US1_FED } from '../configuration';\nimport { Observable } from '../../tools/observable';\nimport { timeStampNow } from '../../tools/utils/timeUtils';\nimport { displayIfDebugEnabled, startMonitorErrorCollection } from '../../tools/monitor';\nimport { sendToExtension } from '../../tools/sendToExtension';\nimport { startsWith, arrayFrom, includes, assign } from '../../tools/utils/polyfills';\nimport { performDraw } from '../../tools/utils/numberUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { combine } from '../../tools/mergeInto';\nimport { computeStackTrace } from '../error/computeStackTrace';\nimport { TelemetryType } from './rawTelemetryEvent.types';\nvar ALLOWED_FRAME_URLS = [\n 'https://www.datadoghq-browser-agent.com',\n 'https://www.datad0g-browser-agent.com',\n 'https://d3uc069fcn7uxw.cloudfront.net',\n 'https://d20xtzwzcl0ceb.cloudfront.net',\n 'http://localhost',\n '',\n];\nvar TELEMETRY_EXCLUDED_SITES = [INTAKE_SITE_US1_FED];\nvar telemetryConfiguration = { maxEventsPerPage: 0, sentEventCount: 0, telemetryEnabled: false, telemetryConfigurationEnabled: false };\nvar onRawTelemetryEventCollected;\nexport function startTelemetry(telemetryService, configuration) {\n var contextProvider;\n var observable = new Observable();\n telemetryConfiguration.telemetryEnabled =\n !includes(TELEMETRY_EXCLUDED_SITES, configuration.site) && performDraw(configuration.telemetrySampleRate);\n telemetryConfiguration.telemetryConfigurationEnabled =\n telemetryConfiguration.telemetryEnabled && performDraw(configuration.telemetryConfigurationSampleRate);\n var runtimeEnvInfo = getRuntimeEnvInfo();\n onRawTelemetryEventCollected = function (rawEvent) {\n if (telemetryConfiguration.telemetryEnabled) {\n var event_1 = toTelemetryEvent(telemetryService, rawEvent, runtimeEnvInfo);\n observable.notify(event_1);\n sendToExtension('telemetry', event_1);\n }\n };\n startMonitorErrorCollection(addTelemetryError);\n assign(telemetryConfiguration, {\n maxEventsPerPage: configuration.maxTelemetryEventsPerPage,\n sentEventCount: 0,\n });\n function toTelemetryEvent(telemetryService, event, runtimeEnvInfo) {\n return combine({\n type: 'telemetry',\n date: timeStampNow(),\n service: telemetryService,\n version: \"5.4.0\",\n source: 'browser',\n _dd: {\n format_version: 2,\n },\n telemetry: combine(event, {\n runtime_env: runtimeEnvInfo,\n }),\n experimental_features: arrayFrom(getExperimentalFeatures()),\n }, contextProvider !== undefined ? contextProvider() : {});\n }\n return {\n setContextProvider: function (provider) {\n contextProvider = provider;\n },\n observable: observable,\n enabled: telemetryConfiguration.telemetryEnabled,\n };\n}\nfunction getRuntimeEnvInfo() {\n return {\n is_local_file: window.location.protocol === 'file:',\n is_worker: 'WorkerGlobalScope' in self,\n };\n}\nexport function startFakeTelemetry() {\n var events = [];\n assign(telemetryConfiguration, {\n maxEventsPerPage: Infinity,\n sentEventCount: 0,\n });\n onRawTelemetryEventCollected = function (event) {\n events.push(event);\n };\n return events;\n}\nexport function resetTelemetry() {\n onRawTelemetryEventCollected = undefined;\n}\n/**\n * Avoid mixing telemetry events from different data centers\n * but keep replicating staging events for reliability\n */\nexport function isTelemetryReplicationAllowed(configuration) {\n return configuration.site === INTAKE_SITE_STAGING;\n}\nexport function addTelemetryDebug(message, context) {\n displayIfDebugEnabled(ConsoleApiName.debug, message, context);\n addTelemetry(assign({\n type: TelemetryType.log,\n message: message,\n status: \"debug\" /* StatusType.debug */,\n }, context));\n}\nexport function addTelemetryError(e, context) {\n addTelemetry(assign({\n type: TelemetryType.log,\n status: \"error\" /* StatusType.error */,\n }, formatError(e), context));\n}\nexport function addTelemetryConfiguration(configuration) {\n if (telemetryConfiguration.telemetryConfigurationEnabled) {\n addTelemetry({\n type: TelemetryType.configuration,\n configuration: configuration,\n });\n }\n}\nfunction addTelemetry(event) {\n if (onRawTelemetryEventCollected && telemetryConfiguration.sentEventCount < telemetryConfiguration.maxEventsPerPage) {\n telemetryConfiguration.sentEventCount += 1;\n onRawTelemetryEventCollected(event);\n }\n}\nexport function formatError(e) {\n if (e instanceof Error) {\n var stackTrace = computeStackTrace(e);\n return {\n error: {\n kind: stackTrace.name,\n stack: toStackTraceString(scrubCustomerFrames(stackTrace)),\n },\n message: stackTrace.message,\n };\n }\n return {\n error: {\n stack: NO_ERROR_STACK_PRESENT_MESSAGE,\n },\n message: \"\".concat(\"Uncaught\" /* NonErrorPrefix.UNCAUGHT */, \" \").concat(jsonStringify(e)),\n };\n}\nexport function scrubCustomerFrames(stackTrace) {\n stackTrace.stack = stackTrace.stack.filter(function (frame) { return !frame.url || ALLOWED_FRAME_URLS.some(function (allowedFrameUrl) { return startsWith(frame.url, allowedFrameUrl); }); });\n return stackTrace;\n}\n//# sourceMappingURL=telemetry.js.map","import { isExperimentalFeatureEnabled, ExperimentalFeature } from '../tools/experimentalFeatures';\nimport { Observable } from '../tools/observable';\nimport { objectValues, includes } from '../tools/utils/polyfills';\nimport { noop } from '../tools/utils/functionUtils';\nimport { addEventListeners, addEventListener, DOM_EVENT } from './addEventListener';\nexport var PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen',\n};\nexport function createPageExitObservable(configuration) {\n var observable = new Observable(function () {\n var pagehideEnabled = isExperimentalFeatureEnabled(ExperimentalFeature.PAGEHIDE);\n var stopListeners = addEventListeners(configuration, window, [DOM_EVENT.VISIBILITY_CHANGE, DOM_EVENT.FREEZE, DOM_EVENT.PAGE_HIDE], function (event) {\n if (event.type === DOM_EVENT.PAGE_HIDE && pagehideEnabled) {\n /**\n * Only event that detect page unload events while being compatible with the back/forward cache (bfcache)\n */\n observable.notify({ reason: PageExitReason.PAGEHIDE });\n }\n else if (event.type === DOM_EVENT.VISIBILITY_CHANGE && document.visibilityState === 'hidden') {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n observable.notify({ reason: PageExitReason.HIDDEN });\n }\n else if (event.type === DOM_EVENT.FREEZE) {\n /**\n * After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)\n * Allow to collect events happening between hidden and frozen state.\n */\n observable.notify({ reason: PageExitReason.FROZEN });\n }\n }, { capture: true }).stop;\n var stopBeforeUnloadListener = noop;\n if (!pagehideEnabled) {\n stopBeforeUnloadListener = addEventListener(configuration, window, DOM_EVENT.BEFORE_UNLOAD, function () {\n observable.notify({ reason: PageExitReason.UNLOADING });\n }).stop;\n }\n return function () {\n stopListeners();\n stopBeforeUnloadListener();\n };\n });\n return observable;\n}\nexport function isPageExitReason(reason) {\n return includes(objectValues(PageExitReason), reason);\n}\n//# sourceMappingURL=pageExitObservable.js.map","import { monitor, noop, Observable, getZoneJsOriginalValue } from '@datadog/browser-core';\nexport function createDOMMutationObservable() {\n var MutationObserver = getMutationObserverConstructor();\n var observable = new Observable(function () {\n if (!MutationObserver) {\n return;\n }\n var observer = new MutationObserver(monitor(function () { return observable.notify(); }));\n observer.observe(document, {\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n });\n return function () { return observer.disconnect(); };\n });\n return observable;\n}\nexport function getMutationObserverConstructor() {\n var constructor;\n var browserWindow = window;\n // Angular uses Zone.js to provide a context persisting across async tasks. Zone.js replaces the\n // global MutationObserver constructor with a patched version to support the context propagation.\n // There is an ongoing issue[1][2] with this setup when using a MutationObserver within a Angular\n // component: on some occasions, the callback is being called in an infinite loop, causing the\n // page to freeze (even if the callback is completely empty).\n //\n // To work around this issue, we try to get the original MutationObserver constructor stored by\n // Zone.js.\n //\n // [1] https://github.com/angular/angular/issues/26948\n // [2] https://github.com/angular/angular/issues/31712\n if (browserWindow.Zone) {\n // Zone.js 0.8.6+ is storing original class constructors into the browser 'window' object[3].\n //\n // [3] https://github.com/angular/angular/blob/6375fa79875c0fe7b815efc45940a6e6f5c9c9eb/packages/zone.js/lib/common/utils.ts#L288\n constructor = getZoneJsOriginalValue(browserWindow, 'MutationObserver');\n if (browserWindow.MutationObserver && constructor === browserWindow.MutationObserver) {\n // Anterior Zone.js versions (used in Angular 2) does not expose the original MutationObserver\n // in the 'window' object. Luckily, the patched MutationObserver class is storing an original\n // instance in its properties[4]. Let's get the original MutationObserver constructor from\n // there.\n //\n // [4] https://github.com/angular/zone.js/blob/v0.8.5/lib/common/utils.ts#L412\n var patchedInstance = new browserWindow.MutationObserver(noop);\n var originalInstance = getZoneJsOriginalValue(patchedInstance, 'originalInstance');\n constructor = originalInstance && originalInstance.constructor;\n }\n }\n if (!constructor) {\n constructor = browserWindow.MutationObserver;\n }\n return constructor;\n}\n//# sourceMappingURL=domMutationObservable.js.map","import { DOM_EVENT, addEventListener } from './addEventListener';\nexport function runOnReadyState(configuration, expectedReadyState, callback) {\n if (document.readyState === expectedReadyState || document.readyState === 'complete') {\n callback();\n }\n else {\n var eventName = expectedReadyState === 'complete' ? DOM_EVENT.LOAD : DOM_EVENT.DOM_CONTENT_LOADED;\n addEventListener(configuration, window, eventName, callback, { once: true });\n }\n}\n//# sourceMappingURL=runOnReadyState.js.map","import { assign, addTelemetryDebug, elapsed, getPathName, includes, isValidUrl, toServerDuration, } from '@datadog/browser-core';\nexport var FAKE_INITIAL_DOCUMENT = 'initial_document';\nvar RESOURCE_TYPES = [\n [\"document\" /* ResourceType.DOCUMENT */, function (initiatorType) { return FAKE_INITIAL_DOCUMENT === initiatorType; }],\n [\"xhr\" /* ResourceType.XHR */, function (initiatorType) { return 'xmlhttprequest' === initiatorType; }],\n [\"fetch\" /* ResourceType.FETCH */, function (initiatorType) { return 'fetch' === initiatorType; }],\n [\"beacon\" /* ResourceType.BEACON */, function (initiatorType) { return 'beacon' === initiatorType; }],\n [\"css\" /* ResourceType.CSS */, function (_, path) { return /\\.css$/i.test(path); }],\n [\"js\" /* ResourceType.JS */, function (_, path) { return /\\.js$/i.test(path); }],\n [\n \"image\" /* ResourceType.IMAGE */,\n function (initiatorType, path) {\n return includes(['image', 'img', 'icon'], initiatorType) || /\\.(gif|jpg|jpeg|tiff|png|svg|ico)$/i.exec(path) !== null;\n },\n ],\n [\"font\" /* ResourceType.FONT */, function (_, path) { return /\\.(woff|eot|woff2|ttf)$/i.exec(path) !== null; }],\n [\n \"media\" /* ResourceType.MEDIA */,\n function (initiatorType, path) {\n return includes(['audio', 'video'], initiatorType) || /\\.(mp3|mp4)$/i.exec(path) !== null;\n },\n ],\n];\nexport function computeResourceKind(timing) {\n var url = timing.name;\n if (!isValidUrl(url)) {\n addTelemetryDebug(\"Failed to construct URL for \\\"\".concat(timing.name, \"\\\"\"));\n return \"other\" /* ResourceType.OTHER */;\n }\n var path = getPathName(url);\n for (var _i = 0, RESOURCE_TYPES_1 = RESOURCE_TYPES; _i < RESOURCE_TYPES_1.length; _i++) {\n var _a = RESOURCE_TYPES_1[_i], type = _a[0], isType = _a[1];\n if (isType(timing.initiatorType, path)) {\n return type;\n }\n }\n return \"other\" /* ResourceType.OTHER */;\n}\nfunction areInOrder() {\n var numbers = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n numbers[_i] = arguments[_i];\n }\n for (var i = 1; i < numbers.length; i += 1) {\n if (numbers[i - 1] > numbers[i]) {\n return false;\n }\n }\n return true;\n}\nexport function isRequestKind(timing) {\n return timing.initiatorType === 'xmlhttprequest' || timing.initiatorType === 'fetch';\n}\nexport function computePerformanceResourceDuration(entry) {\n var duration = entry.duration, startTime = entry.startTime, responseEnd = entry.responseEnd;\n // Safari duration is always 0 on timings blocked by cross origin policies.\n if (duration === 0 && startTime < responseEnd) {\n return toServerDuration(elapsed(startTime, responseEnd));\n }\n return toServerDuration(duration);\n}\nexport function computePerformanceResourceDetails(entry) {\n var validEntry = toValidEntry(entry);\n if (!validEntry) {\n return undefined;\n }\n var startTime = validEntry.startTime, fetchStart = validEntry.fetchStart, redirectStart = validEntry.redirectStart, redirectEnd = validEntry.redirectEnd, domainLookupStart = validEntry.domainLookupStart, domainLookupEnd = validEntry.domainLookupEnd, connectStart = validEntry.connectStart, secureConnectionStart = validEntry.secureConnectionStart, connectEnd = validEntry.connectEnd, requestStart = validEntry.requestStart, responseStart = validEntry.responseStart, responseEnd = validEntry.responseEnd;\n var details = {\n download: formatTiming(startTime, responseStart, responseEnd),\n first_byte: formatTiming(startTime, requestStart, responseStart),\n };\n // Make sure a connection occurred\n if (connectEnd !== fetchStart) {\n details.connect = formatTiming(startTime, connectStart, connectEnd);\n // Make sure a secure connection occurred\n if (areInOrder(connectStart, secureConnectionStart, connectEnd)) {\n details.ssl = formatTiming(startTime, secureConnectionStart, connectEnd);\n }\n }\n // Make sure a domain lookup occurred\n if (domainLookupEnd !== fetchStart) {\n details.dns = formatTiming(startTime, domainLookupStart, domainLookupEnd);\n }\n if (hasRedirection(entry)) {\n details.redirect = formatTiming(startTime, redirectStart, redirectEnd);\n }\n return details;\n}\nexport function toValidEntry(entry) {\n // Ensure timings are in the right order. On top of filtering out potential invalid\n // RumPerformanceResourceTiming, it will ignore entries from requests where timings cannot be\n // collected, for example cross origin requests without a \"Timing-Allow-Origin\" header allowing\n // it.\n if (!areInOrder(entry.startTime, entry.fetchStart, entry.domainLookupStart, entry.domainLookupEnd, entry.connectStart, entry.connectEnd, entry.requestStart, entry.responseStart, entry.responseEnd)) {\n return undefined;\n }\n if (!hasRedirection(entry)) {\n return entry;\n }\n var redirectStart = entry.redirectStart, redirectEnd = entry.redirectEnd;\n // Firefox doesn't provide redirect timings on cross origin requests.\n // Provide a default for those.\n if (redirectStart < entry.startTime) {\n redirectStart = entry.startTime;\n }\n if (redirectEnd < entry.startTime) {\n redirectEnd = entry.fetchStart;\n }\n // Make sure redirect timings are in order\n if (!areInOrder(entry.startTime, redirectStart, redirectEnd, entry.fetchStart)) {\n return undefined;\n }\n return assign({}, entry, {\n redirectEnd: redirectEnd,\n redirectStart: redirectStart,\n });\n}\nfunction hasRedirection(entry) {\n // The only time fetchStart is different than startTime is if a redirection occurred.\n return entry.fetchStart !== entry.startTime;\n}\nfunction formatTiming(origin, start, end) {\n return {\n duration: toServerDuration(elapsed(start, end)),\n start: toServerDuration(elapsed(origin, start)),\n };\n}\nexport function computeSize(entry) {\n // Make sure a request actually occurred\n if (entry.startTime < entry.responseStart) {\n return entry.decodedBodySize;\n }\n return undefined;\n}\nexport function isAllowedRequestUrl(configuration, url) {\n return url && !configuration.isIntakeUrl(url);\n}\n//# sourceMappingURL=resourceUtils.js.map","export function isTextNode(node) {\n return node.nodeType === Node.TEXT_NODE;\n}\nexport function isCommentNode(node) {\n return node.nodeType === Node.COMMENT_NODE;\n}\nexport function isElementNode(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n}\nexport function isNodeShadowHost(node) {\n return isElementNode(node) && Boolean(node.shadowRoot);\n}\nexport function isNodeShadowRoot(node) {\n var shadowRoot = node;\n return !!shadowRoot.host && shadowRoot.nodeType === Node.DOCUMENT_FRAGMENT_NODE && isElementNode(shadowRoot.host);\n}\nexport function hasChildNodes(node) {\n return node.childNodes.length > 0 || isNodeShadowHost(node);\n}\nexport function forEachChildNodes(node, callback) {\n node.childNodes.forEach(callback);\n if (isNodeShadowHost(node)) {\n callback(node.shadowRoot);\n }\n}\n/**\n * Return `host` in case if the current node is a shadow root otherwise will return the `parentNode`\n */\nexport function getParentNode(node) {\n return isNodeShadowRoot(node) ? node.host : node.parentNode;\n}\n//# sourceMappingURL=htmlDomUtils.js.map","import { dateNow, findCommaSeparatedValue, ONE_MINUTE } from '@datadog/browser-core';\nimport { isCommentNode, isTextNode } from '../../browser/htmlDomUtils';\nexport var INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD = 2 * ONE_MINUTE;\nexport function getDocumentTraceId(document) {\n var data = getDocumentTraceDataFromMeta(document) || getDocumentTraceDataFromComment(document);\n if (!data || data.traceTime <= dateNow() - INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD) {\n return undefined;\n }\n return data.traceId;\n}\nexport function getDocumentTraceDataFromMeta(document) {\n var traceIdMeta = document.querySelector('meta[name=dd-trace-id]');\n var traceTimeMeta = document.querySelector('meta[name=dd-trace-time]');\n return createDocumentTraceData(traceIdMeta && traceIdMeta.content, traceTimeMeta && traceTimeMeta.content);\n}\nexport function getDocumentTraceDataFromComment(document) {\n var comment = findTraceComment(document);\n if (!comment) {\n return undefined;\n }\n return createDocumentTraceData(findCommaSeparatedValue(comment, 'trace-id'), findCommaSeparatedValue(comment, 'trace-time'));\n}\nexport function createDocumentTraceData(traceId, rawTraceTime) {\n var traceTime = rawTraceTime && Number(rawTraceTime);\n if (!traceId || !traceTime) {\n return undefined;\n }\n return {\n traceId: traceId,\n traceTime: traceTime,\n };\n}\nexport function findTraceComment(document) {\n // 1. Try to find the comment as a direct child of the document\n // Note: TSLint advises to use a 'for of', but TS doesn't allow to use 'for of' if the iterated\n // value is not an array or string (here, a NodeList).\n for (var i = 0; i < document.childNodes.length; i += 1) {\n var comment = getTraceCommentFromNode(document.childNodes[i]);\n if (comment) {\n return comment;\n }\n }\n // 2. If the comment is placed after the tag, but have some space or new lines before or\n // after, the DOM parser will lift it (and the surrounding text) at the end of the tag.\n // Try to look for the comment at the end of the by by iterating over its child nodes in\n // reverse order, stopping if we come across a non-text node.\n if (document.body) {\n for (var i = document.body.childNodes.length - 1; i >= 0; i -= 1) {\n var node = document.body.childNodes[i];\n var comment = getTraceCommentFromNode(node);\n if (comment) {\n return comment;\n }\n if (!isTextNode(node)) {\n break;\n }\n }\n }\n}\nfunction getTraceCommentFromNode(node) {\n if (node && isCommentNode(node)) {\n var match = /^\\s*DATADOG;(.*?)\\s*$/.exec(node.data);\n if (match) {\n return match[1];\n }\n }\n}\n//# sourceMappingURL=getDocumentTraceId.js.map","import { dateNow, assign, addEventListeners, DOM_EVENT, getRelativeTime, isNumber, monitor, setTimeout, relativeNow, runOnReadyState, addEventListener, objectHasValue, } from '@datadog/browser-core';\nimport { FAKE_INITIAL_DOCUMENT, isAllowedRequestUrl } from '../domain/resource/resourceUtils';\nimport { getDocumentTraceId } from '../domain/tracing/getDocumentTraceId';\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected performance entry\n// eslint-disable-next-line no-restricted-syntax\nexport var RumPerformanceEntryType;\n(function (RumPerformanceEntryType) {\n RumPerformanceEntryType[\"EVENT\"] = \"event\";\n RumPerformanceEntryType[\"FIRST_INPUT\"] = \"first-input\";\n RumPerformanceEntryType[\"LARGEST_CONTENTFUL_PAINT\"] = \"largest-contentful-paint\";\n RumPerformanceEntryType[\"LAYOUT_SHIFT\"] = \"layout-shift\";\n RumPerformanceEntryType[\"LONG_TASK\"] = \"longtask\";\n RumPerformanceEntryType[\"NAVIGATION\"] = \"navigation\";\n RumPerformanceEntryType[\"PAINT\"] = \"paint\";\n RumPerformanceEntryType[\"RESOURCE\"] = \"resource\";\n})(RumPerformanceEntryType || (RumPerformanceEntryType = {}));\nfunction supportPerformanceObject() {\n return window.performance !== undefined && 'getEntries' in performance;\n}\nexport function supportPerformanceTimingEvent(entryType) {\n return (window.PerformanceObserver &&\n PerformanceObserver.supportedEntryTypes !== undefined &&\n PerformanceObserver.supportedEntryTypes.includes(entryType));\n}\nexport function startPerformanceCollection(lifeCycle, configuration) {\n retrieveInitialDocumentResourceTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n if (supportPerformanceObject()) {\n var performanceEntries_1 = performance.getEntries();\n // Because the performance entry list can be quite large\n // delay the computation to prevent the SDK from blocking the main thread on init\n setTimeout(function () { return handleRumPerformanceEntries(lifeCycle, configuration, performanceEntries_1); });\n }\n if (window.PerformanceObserver) {\n var handlePerformanceEntryList_1 = monitor(function (entries) {\n return handleRumPerformanceEntries(lifeCycle, configuration, entries.getEntries());\n });\n var mainEntries = [\n RumPerformanceEntryType.RESOURCE,\n RumPerformanceEntryType.NAVIGATION,\n RumPerformanceEntryType.LONG_TASK,\n RumPerformanceEntryType.PAINT,\n ];\n var experimentalEntries = [\n RumPerformanceEntryType.LARGEST_CONTENTFUL_PAINT,\n RumPerformanceEntryType.FIRST_INPUT,\n RumPerformanceEntryType.LAYOUT_SHIFT,\n RumPerformanceEntryType.EVENT,\n ];\n try {\n // Experimental entries are not retrieved by performance.getEntries()\n // use a single PerformanceObserver with buffered flag by type\n // to get values that could happen before SDK init\n experimentalEntries.forEach(function (type) {\n var observer = new window.PerformanceObserver(handlePerformanceEntryList_1);\n observer.observe({\n type: type,\n buffered: true,\n // durationThreshold only impact PerformanceEventTiming entries used for INP computation which requires a threshold at 40 (default is 104ms)\n // cf: https://github.com/GoogleChrome/web-vitals/blob/3806160ffbc93c3c4abf210a167b81228172b31c/src/onINP.ts#L209\n durationThreshold: 40,\n });\n });\n }\n catch (e) {\n // Some old browser versions (ex: chrome 67) don't support the PerformanceObserver type and buffered options\n // In these cases, fallback to PerformanceObserver with entryTypes\n mainEntries.push.apply(mainEntries, experimentalEntries);\n }\n var mainObserver = new PerformanceObserver(handlePerformanceEntryList_1);\n mainObserver.observe({ entryTypes: mainEntries });\n if (supportPerformanceObject() && 'addEventListener' in performance) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1559377\n addEventListener(configuration, performance, 'resourcetimingbufferfull', function () {\n performance.clearResourceTimings();\n });\n }\n }\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.NAVIGATION)) {\n retrieveNavigationTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n }\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.FIRST_INPUT)) {\n retrieveFirstInputTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n }\n}\nexport function retrieveInitialDocumentResourceTiming(configuration, callback) {\n runOnReadyState(configuration, 'interactive', function () {\n var timing;\n var forcedAttributes = {\n entryType: RumPerformanceEntryType.RESOURCE,\n initiatorType: FAKE_INITIAL_DOCUMENT,\n traceId: getDocumentTraceId(document),\n toJSON: function () { return assign({}, timing, { toJSON: undefined }); },\n };\n if (supportPerformanceTimingEvent(RumPerformanceEntryType.NAVIGATION) &&\n performance.getEntriesByType(RumPerformanceEntryType.NAVIGATION).length > 0) {\n var navigationEntry = performance.getEntriesByType(RumPerformanceEntryType.NAVIGATION)[0];\n timing = assign(navigationEntry.toJSON(), forcedAttributes);\n }\n else {\n var relativePerformanceTiming = computeRelativePerformanceTiming();\n timing = assign(relativePerformanceTiming, {\n decodedBodySize: 0,\n duration: relativePerformanceTiming.responseEnd,\n name: window.location.href,\n startTime: 0,\n }, forcedAttributes);\n }\n callback(timing);\n });\n}\nfunction retrieveNavigationTiming(configuration, callback) {\n function sendFakeTiming() {\n callback(assign(computeRelativePerformanceTiming(), {\n entryType: RumPerformanceEntryType.NAVIGATION,\n }));\n }\n runOnReadyState(configuration, 'complete', function () {\n // Send it a bit after the actual load event, so the \"loadEventEnd\" timing is accurate\n setTimeout(sendFakeTiming);\n });\n}\n/**\n * first-input timing entry polyfill based on\n * https://github.com/GoogleChrome/web-vitals/blob/master/src/lib/polyfills/firstInputPolyfill.ts\n */\nfunction retrieveFirstInputTiming(configuration, callback) {\n var startTimeStamp = dateNow();\n var timingSent = false;\n var removeEventListeners = addEventListeners(configuration, window, [DOM_EVENT.CLICK, DOM_EVENT.MOUSE_DOWN, DOM_EVENT.KEY_DOWN, DOM_EVENT.TOUCH_START, DOM_EVENT.POINTER_DOWN], function (evt) {\n // Only count cancelable events, which should trigger behavior important to the user.\n if (!evt.cancelable) {\n return;\n }\n // This timing will be used to compute the \"first Input delay\", which is the delta between\n // when the system received the event (e.g. evt.timeStamp) and when it could run the callback\n // (e.g. performance.now()).\n var timing = {\n entryType: RumPerformanceEntryType.FIRST_INPUT,\n processingStart: relativeNow(),\n processingEnd: relativeNow(),\n startTime: evt.timeStamp,\n duration: 0,\n name: '',\n };\n if (evt.type === DOM_EVENT.POINTER_DOWN) {\n sendTimingIfPointerIsNotCancelled(configuration, timing);\n }\n else {\n sendTiming(timing);\n }\n }, { passive: true, capture: true }).stop;\n /**\n * Pointer events are a special case, because they can trigger main or compositor thread behavior.\n * We differentiate these cases based on whether or not we see a pointercancel event, which are\n * fired when we scroll. If we're scrolling we don't need to report input delay since FID excludes\n * scrolling and pinch/zooming.\n */\n function sendTimingIfPointerIsNotCancelled(configuration, timing) {\n addEventListeners(configuration, window, [DOM_EVENT.POINTER_UP, DOM_EVENT.POINTER_CANCEL], function (event) {\n if (event.type === DOM_EVENT.POINTER_UP) {\n sendTiming(timing);\n }\n }, { once: true });\n }\n function sendTiming(timing) {\n if (!timingSent) {\n timingSent = true;\n removeEventListeners();\n // In some cases the recorded delay is clearly wrong, e.g. it's negative or it's larger than\n // the time between now and when the page was loaded.\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/4\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/6\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/7\n var delay = timing.processingStart - timing.startTime;\n if (delay >= 0 && delay < dateNow() - startTimeStamp) {\n callback(timing);\n }\n }\n }\n}\nfunction computeRelativePerformanceTiming() {\n var result = {};\n var timing = performance.timing;\n for (var key in timing) {\n if (isNumber(timing[key])) {\n var numberKey = key;\n var timingElement = timing[numberKey];\n result[numberKey] = timingElement === 0 ? 0 : getRelativeTime(timingElement);\n }\n }\n return result;\n}\nfunction handleRumPerformanceEntries(lifeCycle, configuration, entries) {\n var rumPerformanceEntries = entries.filter(function (entry) {\n return objectHasValue(RumPerformanceEntryType, entry.entryType);\n });\n var rumAllowedPerformanceEntries = rumPerformanceEntries.filter(function (entry) { return !isIncompleteNavigation(entry) && !isForbiddenResource(configuration, entry); });\n if (rumAllowedPerformanceEntries.length) {\n lifeCycle.notify(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, rumAllowedPerformanceEntries);\n }\n}\nfunction isIncompleteNavigation(entry) {\n return entry.entryType === RumPerformanceEntryType.NAVIGATION && entry.loadEventEnd <= 0;\n}\nfunction isForbiddenResource(configuration, entry) {\n return entry.entryType === RumPerformanceEntryType.RESOURCE && !isAllowedRequestUrl(configuration, entry.name);\n}\n//# sourceMappingURL=performanceCollection.js.map","export var ErrorSource = {\n AGENT: 'agent',\n CONSOLE: 'console',\n CUSTOM: 'custom',\n LOGGER: 'logger',\n NETWORK: 'network',\n SOURCE: 'source',\n REPORT: 'report',\n};\n//# sourceMappingURL=error.types.js.map","import { setTimeout } from '../../tools/timer';\nimport { clocksNow, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { ErrorSource } from '../error/error.types';\nexport function createEventRateLimiter(eventType, limit, onLimitReached) {\n var eventCount = 0;\n var allowNextEvent = false;\n return {\n isLimitReached: function () {\n if (eventCount === 0) {\n setTimeout(function () {\n eventCount = 0;\n }, ONE_MINUTE);\n }\n eventCount += 1;\n if (eventCount <= limit || allowNextEvent) {\n allowNextEvent = false;\n return false;\n }\n if (eventCount === limit + 1) {\n allowNextEvent = true;\n try {\n onLimitReached({\n message: \"Reached max number of \".concat(eventType, \"s by minute: \").concat(limit),\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n }\n finally {\n allowNextEvent = false;\n }\n }\n return true;\n },\n };\n}\n//# sourceMappingURL=createEventRateLimiter.js.map","import { getSyntheticsResultId, getSyntheticsTestId, willSyntheticsInjectRum } from '@datadog/browser-core';\nexport function getSyntheticsContext() {\n var testId = getSyntheticsTestId();\n var resultId = getSyntheticsResultId();\n if (testId && resultId) {\n return {\n test_id: testId,\n result_id: resultId,\n injected: willSyntheticsInjectRum(),\n };\n }\n}\n//# sourceMappingURL=syntheticsContext.js.map","export function getCiTestContext() {\n var _a;\n var testExecutionId = (_a = window.Cypress) === null || _a === void 0 ? void 0 : _a.env('traceId');\n if (typeof testExecutionId === 'string') {\n return {\n test_execution_id: testExecutionId,\n };\n }\n}\n//# sourceMappingURL=ciTestContext.js.map","import { sanitize, deepClone, getType, objectEntries } from '@datadog/browser-core';\n/**\n * Current limitation:\n * - field path do not support array, 'a.b.c' only\n */\nexport function limitModification(object, modifiableFieldPaths, modifier) {\n var clone = deepClone(object);\n var result = modifier(clone);\n objectEntries(modifiableFieldPaths).forEach(function (_a) {\n var fieldPath = _a[0], fieldType = _a[1];\n var newValue = get(clone, fieldPath);\n var newType = getType(newValue);\n if (newType === fieldType) {\n set(object, fieldPath, sanitize(newValue));\n }\n else if (fieldType === 'object' && (newType === 'undefined' || newType === 'null')) {\n set(object, fieldPath, {});\n }\n });\n return result;\n}\nfunction get(object, path) {\n var current = object;\n for (var _i = 0, _a = path.split('.'); _i < _a.length; _i++) {\n var field = _a[_i];\n if (!isValidObjectContaining(current, field)) {\n return;\n }\n current = current[field];\n }\n return current;\n}\nfunction set(object, path, value) {\n var current = object;\n var fields = path.split('.');\n for (var i = 0; i < fields.length; i += 1) {\n var field = fields[i];\n if (!isValidObject(current)) {\n return;\n }\n if (i !== fields.length - 1) {\n current = current[field];\n }\n else {\n current[field] = value;\n }\n }\n}\nfunction isValidObject(object) {\n return getType(object) === 'object';\n}\nfunction isValidObjectContaining(object, field) {\n return isValidObject(object) && Object.prototype.hasOwnProperty.call(object, field);\n}\n//# sourceMappingURL=limitModification.js.map","import { combine, isEmptyObject, timeStampNow, currentDrift, display, createEventRateLimiter, canUseEventBridge, assign, round, } from '@datadog/browser-core';\nimport { getSyntheticsContext } from './contexts/syntheticsContext';\nimport { getCiTestContext } from './contexts/ciTestContext';\nimport { limitModification } from './limitModification';\nvar VIEW_MODIFIABLE_FIELD_PATHS = {\n 'view.name': 'string',\n 'view.url': 'string',\n 'view.referrer': 'string',\n};\nvar USER_CUSTOMIZABLE_FIELD_PATHS = {\n context: 'object',\n};\nvar modifiableFieldPathsByEvent;\nexport function startRumAssembly(configuration, lifeCycle, sessionManager, viewContexts, urlContexts, actionContexts, displayContext, buildCommonContext, reportError) {\n var _a, _b;\n modifiableFieldPathsByEvent = (_a = {},\n _a[\"view\" /* RumEventType.VIEW */] = VIEW_MODIFIABLE_FIELD_PATHS,\n _a[\"error\" /* RumEventType.ERROR */] = assign({\n 'error.message': 'string',\n 'error.stack': 'string',\n 'error.resource.url': 'string',\n 'error.fingerprint': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"resource\" /* RumEventType.RESOURCE */] = assign({\n 'resource.url': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"action\" /* RumEventType.ACTION */] = assign({\n 'action.target.name': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"long_task\" /* RumEventType.LONG_TASK */] = assign({}, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a);\n var eventRateLimiters = (_b = {},\n _b[\"error\" /* RumEventType.ERROR */] = createEventRateLimiter(\"error\" /* RumEventType.ERROR */, configuration.eventRateLimiterThreshold, reportError),\n _b[\"action\" /* RumEventType.ACTION */] = createEventRateLimiter(\"action\" /* RumEventType.ACTION */, configuration.eventRateLimiterThreshold, reportError),\n _b);\n var syntheticsContext = getSyntheticsContext();\n var ciTestContext = getCiTestContext();\n lifeCycle.subscribe(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, function (_a) {\n var startTime = _a.startTime, rawRumEvent = _a.rawRumEvent, domainContext = _a.domainContext, savedCommonContext = _a.savedCommonContext, customerContext = _a.customerContext;\n var viewContext = viewContexts.findView(startTime);\n var urlContext = urlContexts.findUrl(startTime);\n var session = sessionManager.findTrackedSession(startTime);\n if (session && viewContext && urlContext) {\n var commonContext = savedCommonContext || buildCommonContext();\n var actionId = actionContexts.findActionId(startTime);\n var rumContext = {\n _dd: {\n format_version: 2,\n drift: currentDrift(),\n configuration: {\n session_sample_rate: round(configuration.sessionSampleRate, 3),\n session_replay_sample_rate: round(configuration.sessionReplaySampleRate, 3),\n },\n browser_sdk_version: canUseEventBridge() ? \"5.4.0\" : undefined,\n },\n application: {\n id: configuration.applicationId,\n },\n date: timeStampNow(),\n service: viewContext.service || configuration.service,\n version: viewContext.version || configuration.version,\n source: 'browser',\n session: {\n id: session.id,\n type: syntheticsContext ? \"synthetics\" /* SessionType.SYNTHETICS */ : ciTestContext ? \"ci_test\" /* SessionType.CI_TEST */ : \"user\" /* SessionType.USER */,\n },\n view: {\n id: viewContext.id,\n name: viewContext.name,\n url: urlContext.url,\n referrer: urlContext.referrer,\n },\n action: needToAssembleWithAction(rawRumEvent) && actionId ? { id: actionId } : undefined,\n synthetics: syntheticsContext,\n ci_test: ciTestContext,\n display: displayContext.get(),\n };\n var serverRumEvent = combine(rumContext, rawRumEvent);\n serverRumEvent.context = combine(commonContext.context, customerContext);\n if (!('has_replay' in serverRumEvent.session)) {\n ;\n serverRumEvent.session.has_replay = commonContext.hasReplay;\n }\n if (serverRumEvent.type === 'view') {\n ;\n serverRumEvent.session.sampled_for_replay = session.sessionReplayAllowed;\n }\n if (!isEmptyObject(commonContext.user)) {\n ;\n serverRumEvent.usr = commonContext.user;\n }\n if (shouldSend(serverRumEvent, configuration.beforeSend, domainContext, eventRateLimiters)) {\n if (isEmptyObject(serverRumEvent.context)) {\n delete serverRumEvent.context;\n }\n lifeCycle.notify(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, serverRumEvent);\n }\n }\n });\n}\nfunction shouldSend(event, beforeSend, domainContext, eventRateLimiters) {\n var _a;\n if (beforeSend) {\n var result = limitModification(event, modifiableFieldPathsByEvent[event.type], function (event) {\n return beforeSend(event, domainContext);\n });\n if (result === false && event.type !== \"view\" /* RumEventType.VIEW */) {\n return false;\n }\n if (result === false) {\n display.warn(\"Can't dismiss view events using beforeSend!\");\n }\n }\n var rateLimitReached = (_a = eventRateLimiters[event.type]) === null || _a === void 0 ? void 0 : _a.isLimitReached();\n return !rateLimitReached;\n}\nfunction needToAssembleWithAction(event) {\n return [\"error\" /* RumEventType.ERROR */, \"resource\" /* RumEventType.RESOURCE */, \"long_task\" /* RumEventType.LONG_TASK */].indexOf(event.type) !== -1;\n}\n//# sourceMappingURL=assembly.js.map","/**\n * Internal context keep returning v1 format\n * to not break compatibility with logs data format\n */\nexport function startInternalContext(applicationId, sessionManager, viewContexts, actionContexts, urlContexts) {\n return {\n get: function (startTime) {\n var viewContext = viewContexts.findView(startTime);\n var urlContext = urlContexts.findUrl(startTime);\n var session = sessionManager.findTrackedSession(startTime);\n if (session && viewContext && urlContext) {\n var actionId = actionContexts.findActionId(startTime);\n return {\n application_id: applicationId,\n session_id: session.id,\n user_action: actionId ? { id: actionId } : undefined,\n view: { id: viewContext.id, name: viewContext.name, referrer: urlContext.referrer, url: urlContext.url },\n };\n }\n },\n };\n}\n//# sourceMappingURL=internalContext.js.map","var AbstractLifeCycle = /** @class */ (function () {\n function AbstractLifeCycle() {\n this.callbacks = {};\n }\n AbstractLifeCycle.prototype.notify = function (eventType, data) {\n var eventCallbacks = this.callbacks[eventType];\n if (eventCallbacks) {\n eventCallbacks.forEach(function (callback) { return callback(data); });\n }\n };\n AbstractLifeCycle.prototype.subscribe = function (eventType, callback) {\n var _this = this;\n if (!this.callbacks[eventType]) {\n this.callbacks[eventType] = [];\n }\n this.callbacks[eventType].push(callback);\n return {\n unsubscribe: function () {\n _this.callbacks[eventType] = _this.callbacks[eventType].filter(function (other) { return callback !== other; });\n },\n };\n };\n return AbstractLifeCycle;\n}());\nexport { AbstractLifeCycle };\n//# sourceMappingURL=abstractLifeCycle.js.map","import { AbstractLifeCycle } from '@datadog/browser-core';\nexport var LifeCycle = (AbstractLifeCycle);\n//# sourceMappingURL=lifeCycle.js.map","import { setInterval, clearInterval } from './timer';\nimport { addDuration, relativeNow, ONE_MINUTE } from './utils/timeUtils';\nvar END_OF_TIMES = Infinity;\nexport var CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE;\n/**\n * Store and keep track of values spans. This whole class assumes that values are added in\n * chronological order (i.e. all entries have an increasing start time).\n */\nvar ValueHistory = /** @class */ (function () {\n function ValueHistory(expireDelay, maxEntries) {\n var _this = this;\n this.expireDelay = expireDelay;\n this.maxEntries = maxEntries;\n this.entries = [];\n this.clearOldValuesInterval = setInterval(function () { return _this.clearOldValues(); }, CLEAR_OLD_VALUES_INTERVAL);\n }\n /**\n * Add a value to the history associated with a start time. Returns a reference to this newly\n * added entry that can be removed or closed.\n */\n ValueHistory.prototype.add = function (value, startTime) {\n var _this = this;\n var entry = {\n value: value,\n startTime: startTime,\n endTime: END_OF_TIMES,\n remove: function () {\n var index = _this.entries.indexOf(entry);\n if (index >= 0) {\n _this.entries.splice(index, 1);\n }\n },\n close: function (endTime) {\n entry.endTime = endTime;\n },\n };\n if (this.maxEntries && this.entries.length >= this.maxEntries) {\n this.entries.pop();\n }\n this.entries.unshift(entry);\n return entry;\n };\n /**\n * Return the latest value that was active during `startTime`, or the currently active value\n * if no `startTime` is provided. This method assumes that entries are not overlapping.\n */\n ValueHistory.prototype.find = function (startTime) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n for (var _i = 0, _a = this.entries; _i < _a.length; _i++) {\n var entry = _a[_i];\n if (entry.startTime <= startTime) {\n if (startTime <= entry.endTime) {\n return entry.value;\n }\n break;\n }\n }\n };\n /**\n * Helper function to close the currently active value, if any. This method assumes that entries\n * are not overlapping.\n */\n ValueHistory.prototype.closeActive = function (endTime) {\n var latestEntry = this.entries[0];\n if (latestEntry && latestEntry.endTime === END_OF_TIMES) {\n latestEntry.close(endTime);\n }\n };\n /**\n * Return all values with an active period overlapping with the duration,\n * or all values that were active during `startTime` if no duration is provided,\n * or all currently active values if no `startTime` is provided.\n */\n ValueHistory.prototype.findAll = function (startTime, duration) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n if (duration === void 0) { duration = 0; }\n var endTime = addDuration(startTime, duration);\n return this.entries\n .filter(function (entry) { return entry.startTime <= endTime && startTime <= entry.endTime; })\n .map(function (entry) { return entry.value; });\n };\n /**\n * Remove all entries from this collection.\n */\n ValueHistory.prototype.reset = function () {\n this.entries = [];\n };\n /**\n * Stop internal garbage collection of past entries.\n */\n ValueHistory.prototype.stop = function () {\n clearInterval(this.clearOldValuesInterval);\n };\n ValueHistory.prototype.clearOldValues = function () {\n var oldTimeThreshold = relativeNow() - this.expireDelay;\n while (this.entries.length > 0 && this.entries[this.entries.length - 1].endTime < oldTimeThreshold) {\n this.entries.pop();\n }\n };\n return ValueHistory;\n}());\nexport { ValueHistory };\n//# sourceMappingURL=valueHistory.js.map","import { SESSION_TIME_OUT_DELAY, ValueHistory } from '@datadog/browser-core';\nexport var VIEW_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startViewContexts(lifeCycle) {\n var viewContextHistory = new ValueHistory(VIEW_CONTEXT_TIME_OUT_DELAY);\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (view) {\n viewContextHistory.add(buildViewContext(view), view.startClocks.relative);\n });\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n viewContextHistory.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n viewContextHistory.reset();\n });\n function buildViewContext(view) {\n return {\n service: view.service,\n version: view.version,\n id: view.id,\n name: view.name,\n startClocks: view.startClocks,\n };\n }\n return {\n findView: function (startTime) { return viewContextHistory.find(startTime); },\n stop: function () {\n viewContextHistory.stop();\n },\n };\n}\n//# sourceMappingURL=viewContexts.js.map","import { setTimeout } from './timer';\nimport { callMonitored } from './monitor';\nimport { noop } from './utils/functionUtils';\nexport function instrumentMethod(object, method, instrumentationFactory) {\n var original = object[method];\n var instrumentation = instrumentationFactory(original);\n var instrumentationWrapper = function () {\n if (typeof instrumentation !== 'function') {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return instrumentation.apply(this, arguments);\n };\n object[method] = instrumentationWrapper;\n return {\n stop: function () {\n if (object[method] === instrumentationWrapper) {\n object[method] = original;\n }\n else {\n instrumentation = original;\n }\n },\n };\n}\nexport function instrumentMethodAndCallOriginal(object, method, _a) {\n var before = _a.before, after = _a.after;\n return instrumentMethod(object, method, function (original) {\n return function () {\n var args = arguments;\n var result;\n if (before) {\n callMonitored(before, this, args);\n }\n if (typeof original === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n result = original.apply(this, args);\n }\n if (after) {\n callMonitored(after, this, args);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result;\n };\n });\n}\nexport function instrumentSetter(object, property, after) {\n var originalDescriptor = Object.getOwnPropertyDescriptor(object, property);\n if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {\n return { stop: noop };\n }\n var instrumentation = function (thisObject, value) {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(function () {\n after(thisObject, value);\n }, 0);\n };\n var instrumentationWrapper = function (value) {\n originalDescriptor.set.call(this, value);\n instrumentation(this, value);\n };\n Object.defineProperty(object, property, {\n set: instrumentationWrapper,\n });\n return {\n stop: function () {\n var _a;\n if (((_a = Object.getOwnPropertyDescriptor(object, property)) === null || _a === void 0 ? void 0 : _a.set) === instrumentationWrapper) {\n Object.defineProperty(object, property, originalDescriptor);\n }\n else {\n instrumentation = noop;\n }\n },\n };\n}\n//# sourceMappingURL=instrumentMethod.js.map","import { instrumentMethodAndCallOriginal } from '../tools/instrumentMethod';\nimport { Observable } from '../tools/observable';\nimport { elapsed, clocksNow, timeStampNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nimport { shallowClone } from '../tools/utils/objectUtils';\nimport { addEventListener } from './addEventListener';\nvar xhrObservable;\nvar xhrContexts = new WeakMap();\nexport function initXhrObservable(configuration) {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable(configuration);\n }\n return xhrObservable;\n}\nfunction createXhrObservable(configuration) {\n var observable = new Observable(function () {\n var stopInstrumentingStart = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'open', {\n before: openXhr,\n }).stop;\n var stopInstrumentingSend = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'send', {\n before: function () {\n sendXhr.call(this, configuration, observable);\n },\n }).stop;\n var stopInstrumentingAbort = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'abort', {\n before: abortXhr,\n }).stop;\n return function () {\n stopInstrumentingStart();\n stopInstrumentingSend();\n stopInstrumentingAbort();\n };\n });\n return observable;\n}\nfunction openXhr(method, url) {\n xhrContexts.set(this, {\n state: 'open',\n method: method.toUpperCase(),\n url: normalizeUrl(String(url)),\n });\n}\nfunction sendXhr(configuration, observable) {\n var _this = this;\n var context = xhrContexts.get(this);\n if (!context) {\n return;\n }\n var startContext = context;\n startContext.state = 'start';\n startContext.startClocks = clocksNow();\n startContext.isAborted = false;\n startContext.xhr = this;\n var hasBeenReported = false;\n var stopInstrumentingOnReadyStateChange = instrumentMethodAndCallOriginal(this, 'onreadystatechange', {\n before: function () {\n if (this.readyState === XMLHttpRequest.DONE) {\n // Try to report the XHR as soon as possible, because the XHR may be mutated by the\n // application during a future event. For example, Angular is calling .abort() on\n // completed requests during an onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd();\n }\n },\n }).stop;\n var onEnd = function () {\n unsubscribeLoadEndListener();\n stopInstrumentingOnReadyStateChange();\n if (hasBeenReported) {\n return;\n }\n hasBeenReported = true;\n var completeContext = context;\n completeContext.state = 'complete';\n completeContext.duration = elapsed(startContext.startClocks.timeStamp, timeStampNow());\n completeContext.status = _this.status;\n observable.notify(shallowClone(completeContext));\n };\n var unsubscribeLoadEndListener = addEventListener(configuration, this, 'loadend', onEnd).stop;\n observable.notify(startContext);\n}\nfunction abortXhr() {\n var context = xhrContexts.get(this);\n if (context) {\n context.isAborted = true;\n }\n}\n//# sourceMappingURL=xhrObservable.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { callMonitored, monitor } from '../tools/monitor';\nimport { Observable } from '../tools/observable';\nimport { clocksNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nvar fetchObservable;\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable();\n }\n return fetchObservable;\n}\nfunction createFetchObservable() {\n var observable = new Observable(function () {\n if (!window.fetch) {\n return;\n }\n var stop = instrumentMethod(window, 'fetch', function (originalFetch) {\n return function (input, init) {\n var responsePromise;\n var context = callMonitored(beforeSend, null, [observable, input, init]);\n if (context) {\n // casting should be `RequestInfo` but node types are ahead of DOM types, making `typecheck test/e2e` fail.\n // it should be resolved with https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1483\n responsePromise = originalFetch.call(this, context.input, context.init);\n callMonitored(afterSend, null, [observable, responsePromise, context]);\n }\n else {\n responsePromise = originalFetch.call(this, input, init);\n }\n return responsePromise;\n };\n }).stop;\n return stop;\n });\n return observable;\n}\nfunction beforeSend(observable, input, init) {\n var methodFromParams = (init && init.method) || (input instanceof Request && input.method);\n var method = methodFromParams ? methodFromParams.toUpperCase() : 'GET';\n var url = input instanceof Request ? input.url : normalizeUrl(String(input));\n var startClocks = clocksNow();\n var context = {\n state: 'start',\n init: init,\n input: input,\n method: method,\n startClocks: startClocks,\n url: url,\n };\n observable.notify(context);\n return context;\n}\nfunction afterSend(observable, responsePromise, startContext) {\n var reportFetch = function (response) {\n var context = startContext;\n context.state = 'resolve';\n if ('stack' in response || response instanceof Error) {\n context.status = 0;\n context.isAborted = response instanceof DOMException && response.code === DOMException.ABORT_ERR;\n context.error = response;\n }\n else if ('status' in response) {\n context.response = response;\n context.responseType = response.type;\n context.status = response.status;\n context.isAborted = false;\n }\n observable.notify(context);\n };\n responsePromise.then(monitor(reportFetch), monitor(reportFetch));\n}\n//# sourceMappingURL=fetchObservable.js.map","export function isServerError(status) {\n return status >= 500;\n}\nexport function tryToClone(response) {\n try {\n return response.clone();\n }\n catch (e) {\n // clone can throw if the response has already been used by another instrumentation or is disturbed\n return;\n }\n}\n//# sourceMappingURL=responseUtils.js.map","import { monitor } from './monitor';\nimport { noop } from './utils/functionUtils';\n/**\n * Read bytes from a ReadableStream until at least `limit` bytes have been read (or until the end of\n * the stream). The callback is invoked with the at most `limit` bytes, and indicates that the limit\n * has been exceeded if more bytes were available.\n */\nexport function readBytesFromStream(stream, callback, options) {\n var reader = stream.getReader();\n var chunks = [];\n var readBytesCount = 0;\n readMore();\n function readMore() {\n reader.read().then(monitor(function (result) {\n if (result.done) {\n onDone();\n return;\n }\n if (options.collectStreamBody) {\n chunks.push(result.value);\n }\n readBytesCount += result.value.length;\n if (readBytesCount > options.bytesLimit) {\n onDone();\n }\n else {\n readMore();\n }\n }), monitor(function (error) { return callback(error); }));\n }\n function onDone() {\n reader.cancel().catch(\n // we don't care if cancel fails, but we still need to catch the error to avoid reporting it\n // as an unhandled rejection\n noop);\n var bytes;\n var limitExceeded;\n if (options.collectStreamBody) {\n var completeBuffer_1;\n if (chunks.length === 1) {\n // optimization: if the response is small enough to fit in a single buffer (provided by the browser), just\n // use it directly.\n completeBuffer_1 = chunks[0];\n }\n else {\n // else, we need to copy buffers into a larger buffer to concatenate them.\n completeBuffer_1 = new Uint8Array(readBytesCount);\n var offset_1 = 0;\n chunks.forEach(function (chunk) {\n completeBuffer_1.set(chunk, offset_1);\n offset_1 += chunk.length;\n });\n }\n bytes = completeBuffer_1.slice(0, options.bytesLimit);\n limitExceeded = completeBuffer_1.length > options.bytesLimit;\n }\n callback(undefined, bytes, limitExceeded);\n }\n}\n//# sourceMappingURL=readBytesFromStream.js.map","import { initFetchObservable, initXhrObservable, readBytesFromStream, elapsed, timeStampNow, tryToClone, } from '@datadog/browser-core';\nimport { isAllowedRequestUrl } from './resource/resourceUtils';\nimport { startTracer } from './tracing/tracer';\nvar nextRequestIndex = 1;\nexport function startRequestCollection(lifeCycle, configuration, sessionManager) {\n var tracer = startTracer(configuration, sessionManager);\n trackXhr(lifeCycle, configuration, tracer);\n trackFetch(lifeCycle, configuration, tracer);\n}\nexport function trackXhr(lifeCycle, configuration, tracer) {\n var subscription = initXhrObservable(configuration).subscribe(function (rawContext) {\n var context = rawContext;\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return;\n }\n switch (context.state) {\n case 'start':\n tracer.traceXhr(context, context.xhr);\n context.requestIndex = getNextRequestIndex();\n lifeCycle.notify(5 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'complete':\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(6 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n duration: context.duration,\n method: context.method,\n requestIndex: context.requestIndex,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: \"xhr\" /* RequestType.XHR */,\n url: context.url,\n xhr: context.xhr,\n });\n break;\n }\n });\n return { stop: function () { return subscription.unsubscribe(); } };\n}\nexport function trackFetch(lifeCycle, configuration, tracer) {\n var subscription = initFetchObservable().subscribe(function (rawContext) {\n var context = rawContext;\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return;\n }\n switch (context.state) {\n case 'start':\n tracer.traceFetch(context);\n context.requestIndex = getNextRequestIndex();\n lifeCycle.notify(5 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'resolve':\n waitForResponseToComplete(context, function (duration) {\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(6 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n duration: duration,\n method: context.method,\n requestIndex: context.requestIndex,\n responseType: context.responseType,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: \"fetch\" /* RequestType.FETCH */,\n url: context.url,\n response: context.response,\n init: context.init,\n input: context.input,\n });\n });\n break;\n }\n });\n return { stop: function () { return subscription.unsubscribe(); } };\n}\nfunction getNextRequestIndex() {\n var result = nextRequestIndex;\n nextRequestIndex += 1;\n return result;\n}\nfunction waitForResponseToComplete(context, callback) {\n var clonedResponse = context.response && tryToClone(context.response);\n if (!clonedResponse || !clonedResponse.body) {\n // do not try to wait for the response if the clone failed, fetch error or null body\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }\n else {\n readBytesFromStream(clonedResponse.body, function () {\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }, {\n bytesLimit: Number.POSITIVE_INFINITY,\n collectStreamBody: false,\n });\n }\n}\n//# sourceMappingURL=requestCollection.js.map","import { noop } from '@datadog/browser-core';\nexport function trackEventCounts(_a) {\n var lifeCycle = _a.lifeCycle, isChildEvent = _a.isChildEvent, _b = _a.onChange, callback = _b === void 0 ? noop : _b;\n var eventCounts = {\n errorCount: 0,\n longTaskCount: 0,\n resourceCount: 0,\n actionCount: 0,\n frustrationCount: 0,\n };\n var subscription = lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) {\n var _a;\n if (event.type === 'view' || !isChildEvent(event)) {\n return;\n }\n switch (event.type) {\n case \"error\" /* RumEventType.ERROR */:\n eventCounts.errorCount += 1;\n callback();\n break;\n case \"action\" /* RumEventType.ACTION */:\n eventCounts.actionCount += 1;\n if (event.action.frustration) {\n eventCounts.frustrationCount += event.action.frustration.type.length;\n }\n callback();\n break;\n case \"long_task\" /* RumEventType.LONG_TASK */:\n eventCounts.longTaskCount += 1;\n callback();\n break;\n case \"resource\" /* RumEventType.RESOURCE */:\n if (!((_a = event._dd) === null || _a === void 0 ? void 0 : _a.discarded)) {\n eventCounts.resourceCount += 1;\n callback();\n }\n break;\n }\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n eventCounts: eventCounts,\n };\n}\n//# sourceMappingURL=trackEventCounts.js.map","import { instrumentMethodAndCallOriginal, matchList, monitor, Observable, timeStampNow, setTimeout, clearTimeout, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../browser/performanceCollection';\n// Delay to wait for a page activity to validate the tracking process\nexport var PAGE_ACTIVITY_VALIDATION_DELAY = 100;\n// Delay to wait after a page activity to end the tracking process\nexport var PAGE_ACTIVITY_END_DELAY = 100;\n/**\n * Wait for the page activity end\n *\n * Detection lifecycle:\n * ```\n * Wait page activity end\n * .-------------------'--------------------.\n * v v\n * [Wait for a page activity ] [Wait for a maximum duration]\n * [timeout: VALIDATION_DELAY] [ timeout: maxDuration ]\n * / \\ |\n * v v |\n * [No page activity] [Page activity] |\n * | |,----------------------. |\n * v v | |\n * (Discard) [Wait for a page activity] | |\n * [ timeout: END_DELAY ] | |\n * / \\ | |\n * v v | |\n * [No page activity] [Page activity] | |\n * | | | |\n * | '------------' |\n * '-----------. ,--------------------'\n * v\n * (End)\n * ```\n *\n * Note: by assuming that maxDuration is greater than VALIDATION_DELAY, we are sure that if the\n * process is still alive after maxDuration, it has been validated.\n */\nexport function waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, pageActivityEndCallback, maxDuration) {\n var pageActivityObservable = createPageActivityObservable(lifeCycle, domMutationObservable, configuration);\n return doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration);\n}\nexport function doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration) {\n var pageActivityEndTimeoutId;\n var hasCompleted = false;\n var validationTimeoutId = setTimeout(monitor(function () { return complete({ hadActivity: false }); }), PAGE_ACTIVITY_VALIDATION_DELAY);\n var maxDurationTimeoutId = maxDuration !== undefined\n ? setTimeout(monitor(function () { return complete({ hadActivity: true, end: timeStampNow() }); }), maxDuration)\n : undefined;\n var pageActivitySubscription = pageActivityObservable.subscribe(function (_a) {\n var isBusy = _a.isBusy;\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n var lastChangeTime = timeStampNow();\n if (!isBusy) {\n pageActivityEndTimeoutId = setTimeout(monitor(function () { return complete({ hadActivity: true, end: lastChangeTime }); }), PAGE_ACTIVITY_END_DELAY);\n }\n });\n var stop = function () {\n hasCompleted = true;\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n clearTimeout(maxDurationTimeoutId);\n pageActivitySubscription.unsubscribe();\n };\n function complete(event) {\n if (hasCompleted) {\n return;\n }\n stop();\n pageActivityEndCallback(event);\n }\n return { stop: stop };\n}\nexport function createPageActivityObservable(lifeCycle, domMutationObservable, configuration) {\n var observable = new Observable(function () {\n var subscriptions = [];\n var firstRequestIndex;\n var pendingRequestsCount = 0;\n subscriptions.push(domMutationObservable.subscribe(notifyPageActivity), lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n if (entries.some(function (entry) { return entry.entryType === RumPerformanceEntryType.RESOURCE && !isExcludedUrl(configuration, entry.name); })) {\n notifyPageActivity();\n }\n }), lifeCycle.subscribe(5 /* LifeCycleEventType.REQUEST_STARTED */, function (startEvent) {\n if (isExcludedUrl(configuration, startEvent.url)) {\n return;\n }\n if (firstRequestIndex === undefined) {\n firstRequestIndex = startEvent.requestIndex;\n }\n pendingRequestsCount += 1;\n notifyPageActivity();\n }), lifeCycle.subscribe(6 /* LifeCycleEventType.REQUEST_COMPLETED */, function (request) {\n if (isExcludedUrl(configuration, request.url) ||\n firstRequestIndex === undefined ||\n // If the request started before the tracking start, ignore it\n request.requestIndex < firstRequestIndex) {\n return;\n }\n pendingRequestsCount -= 1;\n notifyPageActivity();\n }));\n var stopTrackingWindowOpen = trackWindowOpen(notifyPageActivity).stop;\n return function () {\n stopTrackingWindowOpen();\n subscriptions.forEach(function (s) { return s.unsubscribe(); });\n };\n function notifyPageActivity() {\n observable.notify({ isBusy: pendingRequestsCount > 0 });\n }\n });\n return observable;\n}\nfunction isExcludedUrl(configuration, requestUrl) {\n return matchList(configuration.excludedActivityUrls, requestUrl);\n}\nfunction trackWindowOpen(callback) {\n return instrumentMethodAndCallOriginal(window, 'open', { before: callback });\n}\n//# sourceMappingURL=waitPageActivityEnd.js.map","import { safeTruncate, isIE, find } from '@datadog/browser-core';\n/**\n * Get the action name from the attribute 'data-dd-action-name' on the element or any of its parent.\n * It can also be retrieved from a user defined attribute.\n */\nexport var DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE = 'data-dd-action-name';\nexport function getActionNameFromElement(element, userProgrammaticAttribute) {\n // Proceed to get the action name in two steps:\n // * first, get the name programmatically, explicitly defined by the user.\n // * then, use strategies that are known to return good results. Those strategies will be used on\n // the element and a few parents, but it's likely that they won't succeed at all.\n // * if no name is found this way, use strategies returning less accurate names as a fallback.\n // Those are much likely to succeed.\n return (getActionNameFromElementProgrammatically(element, DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE) ||\n (userProgrammaticAttribute && getActionNameFromElementProgrammatically(element, userProgrammaticAttribute)) ||\n getActionNameFromElementForStrategies(element, userProgrammaticAttribute, priorityStrategies) ||\n getActionNameFromElementForStrategies(element, userProgrammaticAttribute, fallbackStrategies) ||\n '');\n}\nfunction getActionNameFromElementProgrammatically(targetElement, programmaticAttribute) {\n var elementWithAttribute;\n // We don't use getActionNameFromElementForStrategies here, because we want to consider all parents,\n // without limit. It is up to the user to declare a relevant naming strategy.\n // If available, use element.closest() to match get the attribute from the element or any of its\n // parent. Else fallback to a more traditional implementation.\n if (supportsElementClosest()) {\n elementWithAttribute = targetElement.closest(\"[\".concat(programmaticAttribute, \"]\"));\n }\n else {\n var element = targetElement;\n while (element) {\n if (element.hasAttribute(programmaticAttribute)) {\n elementWithAttribute = element;\n break;\n }\n element = element.parentElement;\n }\n }\n if (!elementWithAttribute) {\n return;\n }\n var name = elementWithAttribute.getAttribute(programmaticAttribute);\n return truncate(normalizeWhitespace(name.trim()));\n}\nvar priorityStrategies = [\n // associated LABEL text\n function (element, userProgrammaticAttribute) {\n // IE does not support element.labels, so we fallback to a CSS selector based on the element id\n // instead\n if (supportsLabelProperty()) {\n if ('labels' in element && element.labels && element.labels.length > 0) {\n return getTextualContent(element.labels[0], userProgrammaticAttribute);\n }\n }\n else if (element.id) {\n var label = element.ownerDocument &&\n find(element.ownerDocument.querySelectorAll('label'), function (label) { return label.htmlFor === element.id; });\n return label && getTextualContent(label, userProgrammaticAttribute);\n }\n },\n // INPUT button (and associated) value\n function (element) {\n if (element.nodeName === 'INPUT') {\n var input = element;\n var type = input.getAttribute('type');\n if (type === 'button' || type === 'submit' || type === 'reset') {\n return input.value;\n }\n }\n },\n // BUTTON, LABEL or button-like element text\n function (element, userProgrammaticAttribute) {\n if (element.nodeName === 'BUTTON' || element.nodeName === 'LABEL' || element.getAttribute('role') === 'button') {\n return getTextualContent(element, userProgrammaticAttribute);\n }\n },\n function (element) { return element.getAttribute('aria-label'); },\n // associated element text designated by the aria-labelledby attribute\n function (element, userProgrammaticAttribute) {\n var labelledByAttribute = element.getAttribute('aria-labelledby');\n if (labelledByAttribute) {\n return labelledByAttribute\n .split(/\\s+/)\n .map(function (id) { return getElementById(element, id); })\n .filter(function (label) { return Boolean(label); })\n .map(function (element) { return getTextualContent(element, userProgrammaticAttribute); })\n .join(' ');\n }\n },\n function (element) { return element.getAttribute('alt'); },\n function (element) { return element.getAttribute('name'); },\n function (element) { return element.getAttribute('title'); },\n function (element) { return element.getAttribute('placeholder'); },\n // SELECT first OPTION text\n function (element, userProgrammaticAttribute) {\n if ('options' in element && element.options.length > 0) {\n return getTextualContent(element.options[0], userProgrammaticAttribute);\n }\n },\n];\nvar fallbackStrategies = [\n function (element, userProgrammaticAttribute) { return getTextualContent(element, userProgrammaticAttribute); },\n];\n/**\n * Iterates over the target element and its parent, using the strategies list to get an action name.\n * Each strategies are applied on each element, stopping as soon as a non-empty value is returned.\n */\nvar MAX_PARENTS_TO_CONSIDER = 10;\nfunction getActionNameFromElementForStrategies(targetElement, userProgrammaticAttribute, strategies) {\n var element = targetElement;\n var recursionCounter = 0;\n while (recursionCounter <= MAX_PARENTS_TO_CONSIDER &&\n element &&\n element.nodeName !== 'BODY' &&\n element.nodeName !== 'HTML' &&\n element.nodeName !== 'HEAD') {\n for (var _i = 0, strategies_1 = strategies; _i < strategies_1.length; _i++) {\n var strategy = strategies_1[_i];\n var name_1 = strategy(element, userProgrammaticAttribute);\n if (typeof name_1 === 'string') {\n var trimmedName = name_1.trim();\n if (trimmedName) {\n return truncate(normalizeWhitespace(trimmedName));\n }\n }\n }\n // Consider a FORM as a contextual limit to get the action name. This is experimental and may\n // be reconsidered in the future.\n if (element.nodeName === 'FORM') {\n break;\n }\n element = element.parentElement;\n recursionCounter += 1;\n }\n}\nfunction normalizeWhitespace(s) {\n return s.replace(/\\s+/g, ' ');\n}\nfunction truncate(s) {\n return s.length > 100 ? \"\".concat(safeTruncate(s, 100), \" [...]\") : s;\n}\nfunction getElementById(refElement, id) {\n // Use the element ownerDocument here, because tests are executed in an iframe, so\n // document.getElementById won't work.\n return refElement.ownerDocument ? refElement.ownerDocument.getElementById(id) : null;\n}\nfunction getTextualContent(element, userProgrammaticAttribute) {\n if (element.isContentEditable) {\n return;\n }\n if ('innerText' in element) {\n var text_1 = element.innerText;\n var removeTextFromElements = function (query) {\n var list = element.querySelectorAll(query);\n for (var index = 0; index < list.length; index += 1) {\n var element_1 = list[index];\n if ('innerText' in element_1) {\n var textToReplace = element_1.innerText;\n if (textToReplace && textToReplace.trim().length > 0) {\n text_1 = text_1.replace(textToReplace, '');\n }\n }\n }\n };\n if (!supportsInnerTextScriptAndStyleRemoval()) {\n // remove the inner text of SCRIPT and STYLES from the result. This is a bit dirty, but should\n // be relatively fast and work in most cases.\n removeTextFromElements('script, style');\n }\n // remove the text of elements with programmatic attribute value\n removeTextFromElements(\"[\".concat(DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE, \"]\"));\n if (userProgrammaticAttribute) {\n removeTextFromElements(\"[\".concat(userProgrammaticAttribute, \"]\"));\n }\n return text_1;\n }\n return element.textContent;\n}\n/**\n * Returns true if element.innerText excludes the text from inline SCRIPT and STYLE element. This\n * should be the case everywhere except on Internet Explorer 10 and 11 (see [1])\n *\n * The innerText property relies on what is actually rendered to compute its output, so to check if\n * it actually excludes SCRIPT and STYLE content, a solution would be to create a style element, set\n * its content to '*', inject it in the document body, and check if the style element innerText\n * property returns '*'. Using a new `document` instance won't work as it is not rendered.\n *\n * This solution requires specific CSP rules (see [2]) to be set by the customer. We want to avoid\n * this, so instead we rely on browser detection. In case of false negative, the impact should be\n * low, since we rely on this result to remove the SCRIPT and STYLE innerText (which will be empty)\n * from a parent element innerText.\n *\n * [1]: https://web.archive.org/web/20210602165716/http://perfectionkills.com/the-poor-misunderstood-innerText/#diff-with-textContent\n * [2]: https://github.com/DataDog/browser-sdk/issues/1084\n */\nfunction supportsInnerTextScriptAndStyleRemoval() {\n return !isIE();\n}\n/**\n * Returns true if the browser supports the element.labels property. This should be the case\n * everywhere except on Internet Explorer.\n * Note: The result is computed lazily, because we don't want any DOM access when the SDK is\n * evaluated.\n */\nvar supportsLabelPropertyResult;\nfunction supportsLabelProperty() {\n if (supportsLabelPropertyResult === undefined) {\n supportsLabelPropertyResult = 'labels' in HTMLInputElement.prototype;\n }\n return supportsLabelPropertyResult;\n}\n/**\n * Returns true if the browser supports the element.closest method. This should be the case\n * everywhere except on Internet Explorer.\n * Note: The result is computed lazily, because we don't want any DOM access when the SDK is\n * evaluated.\n */\nvar supportsElementClosestResult;\nfunction supportsElementClosest() {\n if (supportsElementClosestResult === undefined) {\n supportsElementClosestResult = 'closest' in HTMLElement.prototype;\n }\n return supportsElementClosestResult;\n}\n//# sourceMappingURL=getActionNameFromElement.js.map","import { cssEscape } from '@datadog/browser-core';\nimport { DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE } from './action/getActionNameFromElement';\n/**\n * Stable attributes are attributes that are commonly used to identify parts of a UI (ex:\n * component). Those attribute values should not be generated randomly (hardcoded most of the time)\n * and stay the same across deploys. They are not necessarily unique across the document.\n */\nexport var STABLE_ATTRIBUTES = [\n DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE,\n // Common test attributes (list provided by google recorder)\n 'data-testid',\n 'data-test',\n 'data-qa',\n 'data-cy',\n 'data-test-id',\n 'data-qa-id',\n 'data-testing',\n // FullStory decorator attributes:\n 'data-component',\n 'data-element',\n 'data-source-file',\n];\n// Selectors to use if they target a single element on the whole document. Those selectors are\n// considered as \"stable\" and uniquely identify an element regardless of the page state. If we find\n// one, we should consider the selector \"complete\" and stop iterating over ancestors.\nvar GLOBALLY_UNIQUE_SELECTOR_GETTERS = [getStableAttributeSelector, getIDSelector];\n// Selectors to use if they target a single element among an element descendants. Those selectors\n// are more brittle than \"globally unique\" selectors and should be combined with ancestor selectors\n// to improve specificity.\nvar UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS = [\n getStableAttributeSelector,\n getClassSelector,\n getTagNameSelector,\n];\nexport function getSelectorFromElement(targetElement, actionNameAttribute) {\n var targetElementSelector = '';\n var element = targetElement;\n while (element && element.nodeName !== 'HTML') {\n var globallyUniqueSelector = findSelector(element, GLOBALLY_UNIQUE_SELECTOR_GETTERS, isSelectorUniqueGlobally, actionNameAttribute, targetElementSelector);\n if (globallyUniqueSelector) {\n return globallyUniqueSelector;\n }\n var uniqueSelectorAmongChildren = findSelector(element, UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS, isSelectorUniqueAmongSiblings, actionNameAttribute, targetElementSelector);\n targetElementSelector =\n uniqueSelectorAmongChildren || combineSelector(getPositionSelector(element), targetElementSelector);\n element = element.parentElement;\n }\n return targetElementSelector;\n}\nfunction isGeneratedValue(value) {\n // To compute the \"URL path group\", the backend replaces every URL path parts as a question mark\n // if it thinks the part is an identifier. The condition it uses is to checks whether a digit is\n // present.\n //\n // Here, we use the same strategy: if a the value contains a digit, we consider it generated. This\n // strategy might be a bit naive and fail in some cases, but there are many fallbacks to generate\n // CSS selectors so it should be fine most of the time. We might want to allow customers to\n // provide their own `isGeneratedValue` at some point.\n return /[0-9]/.test(value);\n}\nfunction getIDSelector(element) {\n if (element.id && !isGeneratedValue(element.id)) {\n return \"#\".concat(cssEscape(element.id));\n }\n}\nfunction getClassSelector(element) {\n if (element.tagName === 'BODY') {\n return;\n }\n if (element.classList.length > 0) {\n for (var i = 0; i < element.classList.length; i += 1) {\n var className = element.classList[i];\n if (isGeneratedValue(className)) {\n continue;\n }\n return \"\".concat(cssEscape(element.tagName), \".\").concat(cssEscape(className));\n }\n }\n}\nfunction getTagNameSelector(element) {\n return cssEscape(element.tagName);\n}\nfunction getStableAttributeSelector(element, actionNameAttribute) {\n if (actionNameAttribute) {\n var selector = getAttributeSelector(actionNameAttribute);\n if (selector) {\n return selector;\n }\n }\n for (var _i = 0, STABLE_ATTRIBUTES_1 = STABLE_ATTRIBUTES; _i < STABLE_ATTRIBUTES_1.length; _i++) {\n var attributeName = STABLE_ATTRIBUTES_1[_i];\n var selector = getAttributeSelector(attributeName);\n if (selector) {\n return selector;\n }\n }\n function getAttributeSelector(attributeName) {\n if (element.hasAttribute(attributeName)) {\n return \"\".concat(cssEscape(element.tagName), \"[\").concat(attributeName, \"=\\\"\").concat(cssEscape(element.getAttribute(attributeName)), \"\\\"]\");\n }\n }\n}\nfunction getPositionSelector(element) {\n var sibling = element.parentElement.firstElementChild;\n var elementIndex = 1;\n while (sibling && sibling !== element) {\n if (sibling.tagName === element.tagName) {\n elementIndex += 1;\n }\n sibling = sibling.nextElementSibling;\n }\n return \"\".concat(cssEscape(element.tagName), \":nth-of-type(\").concat(elementIndex, \")\");\n}\nfunction findSelector(element, selectorGetters, predicate, actionNameAttribute, childSelector) {\n for (var _i = 0, selectorGetters_1 = selectorGetters; _i < selectorGetters_1.length; _i++) {\n var selectorGetter = selectorGetters_1[_i];\n var elementSelector = selectorGetter(element, actionNameAttribute);\n if (!elementSelector) {\n continue;\n }\n var fullSelector = combineSelector(elementSelector, childSelector);\n if (predicate(element, fullSelector)) {\n return fullSelector;\n }\n }\n}\n/**\n * Check whether the selector is unique among the whole document.\n */\nfunction isSelectorUniqueGlobally(element, selector) {\n return element.ownerDocument.querySelectorAll(selector).length === 1;\n}\n/**\n * Check whether the selector is unique among the element siblings. In other words, it returns true\n * if \"ELEMENT_PARENT > SELECTOR\" returns a single element.\n *\n * The result will be less accurate on browsers that don't support :scope (i. e. IE): it will check\n * for any element matching the selector contained in the parent (in other words,\n * \"ELEMENT_PARENT SELECTOR\" returns a single element), regardless of whether the selector is a\n * direct descendent of the element parent. This should not impact results too much: if it\n * inaccurately returns false, we'll just fall back to another strategy.\n */\nfunction isSelectorUniqueAmongSiblings(element, selector) {\n return (element.parentElement.querySelectorAll(supportScopeSelector() ? combineSelector(':scope', selector) : selector)\n .length === 1);\n}\nfunction combineSelector(parent, child) {\n return child ? \"\".concat(parent, \">\").concat(child) : parent;\n}\nvar supportScopeSelectorCache;\nexport function supportScopeSelector() {\n if (supportScopeSelectorCache === undefined) {\n try {\n document.querySelector(':scope');\n supportScopeSelectorCache = true;\n }\n catch (_a) {\n supportScopeSelectorCache = false;\n }\n }\n return supportScopeSelectorCache;\n}\n//# sourceMappingURL=getSelectorFromElement.js.map","import { ONE_SECOND, clearTimeout, setTimeout } from '@datadog/browser-core';\nexport var MAX_DURATION_BETWEEN_CLICKS = ONE_SECOND;\nexport var MAX_DISTANCE_BETWEEN_CLICKS = 100;\nexport function createClickChain(firstClick, onFinalize) {\n var bufferedClicks = [];\n var status = 0 /* ClickChainStatus.WaitingForMoreClicks */;\n var maxDurationBetweenClicksTimeoutId;\n appendClick(firstClick);\n function appendClick(click) {\n click.stopObservable.subscribe(tryFinalize);\n bufferedClicks.push(click);\n clearTimeout(maxDurationBetweenClicksTimeoutId);\n maxDurationBetweenClicksTimeoutId = setTimeout(dontAcceptMoreClick, MAX_DURATION_BETWEEN_CLICKS);\n }\n function tryFinalize() {\n if (status === 1 /* ClickChainStatus.WaitingForClicksToStop */ && bufferedClicks.every(function (click) { return click.isStopped(); })) {\n status = 2 /* ClickChainStatus.Finalized */;\n onFinalize(bufferedClicks);\n }\n }\n function dontAcceptMoreClick() {\n clearTimeout(maxDurationBetweenClicksTimeoutId);\n if (status === 0 /* ClickChainStatus.WaitingForMoreClicks */) {\n status = 1 /* ClickChainStatus.WaitingForClicksToStop */;\n tryFinalize();\n }\n }\n return {\n tryAppend: function (click) {\n if (status !== 0 /* ClickChainStatus.WaitingForMoreClicks */) {\n return false;\n }\n if (bufferedClicks.length > 0 &&\n !areEventsSimilar(bufferedClicks[bufferedClicks.length - 1].event, click.event)) {\n dontAcceptMoreClick();\n return false;\n }\n appendClick(click);\n return true;\n },\n stop: function () {\n dontAcceptMoreClick();\n },\n };\n}\n/**\n * Checks whether two events are similar by comparing their target, position and timestamp\n */\nfunction areEventsSimilar(first, second) {\n return (first.target === second.target &&\n mouseEventDistance(first, second) <= MAX_DISTANCE_BETWEEN_CLICKS &&\n first.timeStamp - second.timeStamp <= MAX_DURATION_BETWEEN_CLICKS);\n}\nfunction mouseEventDistance(origin, other) {\n return Math.sqrt(Math.pow(origin.clientX - other.clientX, 2) + Math.pow(origin.clientY - other.clientY, 2));\n}\n//# sourceMappingURL=clickChain.js.map","import { addEventListener, DOM_EVENT } from '@datadog/browser-core';\nexport function listenActionEvents(configuration, _a) {\n var onPointerDown = _a.onPointerDown, onPointerUp = _a.onPointerUp;\n var selectionEmptyAtPointerDown;\n var userActivity = {\n selection: false,\n input: false,\n };\n var clickContext;\n var listeners = [\n addEventListener(configuration, window, DOM_EVENT.POINTER_DOWN, function (event) {\n if (isValidPointerEvent(event)) {\n selectionEmptyAtPointerDown = isSelectionEmpty();\n userActivity = {\n selection: false,\n input: false,\n };\n clickContext = onPointerDown(event);\n }\n }, { capture: true }),\n addEventListener(configuration, window, DOM_EVENT.SELECTION_CHANGE, function () {\n if (!selectionEmptyAtPointerDown || !isSelectionEmpty()) {\n userActivity.selection = true;\n }\n }, { capture: true }),\n addEventListener(configuration, window, DOM_EVENT.POINTER_UP, function (event) {\n if (isValidPointerEvent(event) && clickContext) {\n // Use a scoped variable to make sure the value is not changed by other clicks\n var localUserActivity_1 = userActivity;\n onPointerUp(clickContext, event, function () { return localUserActivity_1; });\n clickContext = undefined;\n }\n }, { capture: true }),\n addEventListener(configuration, window, DOM_EVENT.INPUT, function () {\n userActivity.input = true;\n }, { capture: true }),\n ];\n return {\n stop: function () {\n listeners.forEach(function (listener) { return listener.stop(); });\n },\n };\n}\nfunction isSelectionEmpty() {\n var selection = window.getSelection();\n return !selection || selection.isCollapsed;\n}\nfunction isValidPointerEvent(event) {\n return (event.target instanceof Element &&\n // Only consider 'primary' pointer events for now. Multi-touch support could be implemented in\n // the future.\n event.isPrimary !== false);\n}\n//# sourceMappingURL=listenActionEvents.js.map","import { elementMatches, ONE_SECOND } from '@datadog/browser-core';\nvar MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE = 3;\nexport function computeFrustration(clicks, rageClick) {\n if (isRage(clicks)) {\n rageClick.addFrustration(\"rage_click\" /* FrustrationType.RAGE_CLICK */);\n if (clicks.some(isDead)) {\n rageClick.addFrustration(\"dead_click\" /* FrustrationType.DEAD_CLICK */);\n }\n if (rageClick.hasError) {\n rageClick.addFrustration(\"error_click\" /* FrustrationType.ERROR_CLICK */);\n }\n return { isRage: true };\n }\n var hasSelectionChanged = clicks.some(function (click) { return click.getUserActivity().selection; });\n clicks.forEach(function (click) {\n if (click.hasError) {\n click.addFrustration(\"error_click\" /* FrustrationType.ERROR_CLICK */);\n }\n if (isDead(click) &&\n // Avoid considering clicks part of a double-click or triple-click selections as dead clicks\n !hasSelectionChanged) {\n click.addFrustration(\"dead_click\" /* FrustrationType.DEAD_CLICK */);\n }\n });\n return { isRage: false };\n}\nexport function isRage(clicks) {\n if (clicks.some(function (click) { return click.getUserActivity().selection; })) {\n return false;\n }\n for (var i = 0; i < clicks.length - (MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE - 1); i += 1) {\n if (clicks[i + MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE - 1].event.timeStamp - clicks[i].event.timeStamp <=\n ONE_SECOND) {\n return true;\n }\n }\n return false;\n}\nvar DEAD_CLICK_EXCLUDE_SELECTOR = \n// inputs that don't trigger a meaningful event like \"input\" when clicked, including textual\n// inputs (using a negative selector is shorter here)\n'input:not([type=\"checkbox\"]):not([type=\"radio\"]):not([type=\"button\"]):not([type=\"submit\"]):not([type=\"reset\"]):not([type=\"range\"]),' +\n 'textarea,' +\n 'select,' +\n // contenteditable and their descendants don't always trigger meaningful changes when manipulated\n '[contenteditable],' +\n '[contenteditable] *,' +\n // canvas, as there is no good way to detect activity occurring on them\n 'canvas,' +\n // links that are interactive (have an href attribute) or any of their descendants, as they can\n // open a new tab or navigate to a hash without triggering a meaningful event\n 'a[href],' +\n 'a[href] *';\nexport function isDead(click) {\n if (click.hasPageActivity || click.getUserActivity().input) {\n return false;\n }\n return !elementMatches(click.event.target, DEAD_CLICK_EXCLUDE_SELECTOR);\n}\n//# sourceMappingURL=computeFrustration.js.map","import { includes, timeStampNow, Observable, assign, getRelativeTime, ONE_MINUTE, ValueHistory, generateUUID, clocksNow, ONE_SECOND, elapsed, } from '@datadog/browser-core';\nimport { trackEventCounts } from '../trackEventCounts';\nimport { PAGE_ACTIVITY_VALIDATION_DELAY, waitPageActivityEnd } from '../waitPageActivityEnd';\nimport { getSelectorFromElement } from '../getSelectorFromElement';\nimport { createClickChain } from './clickChain';\nimport { getActionNameFromElement } from './getActionNameFromElement';\nimport { listenActionEvents } from './listenActionEvents';\nimport { computeFrustration } from './computeFrustration';\n// Maximum duration for click actions\nexport var CLICK_ACTION_MAX_DURATION = 10 * ONE_SECOND;\nexport var ACTION_CONTEXT_TIME_OUT_DELAY = 5 * ONE_MINUTE; // arbitrary\nexport function trackClickActions(lifeCycle, domMutationObservable, configuration) {\n var history = new ValueHistory(ACTION_CONTEXT_TIME_OUT_DELAY);\n var stopObservable = new Observable();\n var currentClickChain;\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n history.reset();\n });\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, stopClickChain);\n var stopActionEventsListener = listenActionEvents(configuration, {\n onPointerDown: function (pointerDownEvent) {\n return processPointerDown(configuration, lifeCycle, domMutationObservable, pointerDownEvent);\n },\n onPointerUp: function (_a, startEvent, getUserActivity) {\n var clickActionBase = _a.clickActionBase, hadActivityOnPointerDown = _a.hadActivityOnPointerDown;\n return startClickAction(configuration, lifeCycle, domMutationObservable, history, stopObservable, appendClickToClickChain, clickActionBase, startEvent, getUserActivity, hadActivityOnPointerDown);\n },\n }).stop;\n var actionContexts = {\n findActionId: function (startTime) { return history.findAll(startTime); },\n };\n return {\n stop: function () {\n stopClickChain();\n stopObservable.notify();\n stopActionEventsListener();\n },\n actionContexts: actionContexts,\n };\n function appendClickToClickChain(click) {\n if (!currentClickChain || !currentClickChain.tryAppend(click)) {\n var rageClick_1 = click.clone();\n currentClickChain = createClickChain(click, function (clicks) {\n finalizeClicks(clicks, rageClick_1);\n });\n }\n }\n function stopClickChain() {\n if (currentClickChain) {\n currentClickChain.stop();\n }\n }\n}\nfunction processPointerDown(configuration, lifeCycle, domMutationObservable, pointerDownEvent) {\n var clickActionBase = computeClickActionBase(pointerDownEvent, configuration.actionNameAttribute);\n var hadActivityOnPointerDown = false;\n waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (pageActivityEndEvent) {\n hadActivityOnPointerDown = pageActivityEndEvent.hadActivity;\n }, \n // We don't care about the activity duration, we just want to know whether an activity did happen\n // within the \"validation delay\" or not. Limit the duration so the callback is called sooner.\n PAGE_ACTIVITY_VALIDATION_DELAY);\n return { clickActionBase: clickActionBase, hadActivityOnPointerDown: function () { return hadActivityOnPointerDown; } };\n}\nfunction startClickAction(configuration, lifeCycle, domMutationObservable, history, stopObservable, appendClickToClickChain, clickActionBase, startEvent, getUserActivity, hadActivityOnPointerDown) {\n var click = newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent);\n appendClickToClickChain(click);\n var stopWaitPageActivityEnd = waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (pageActivityEndEvent) {\n if (pageActivityEndEvent.hadActivity && pageActivityEndEvent.end < click.startClocks.timeStamp) {\n // If the clock is looking weird, just discard the click\n click.discard();\n }\n else {\n if (pageActivityEndEvent.hadActivity) {\n click.stop(pageActivityEndEvent.end);\n }\n else if (hadActivityOnPointerDown()) {\n click.stop(\n // using the click start as activity end, so the click will have some activity but its\n // duration will be 0 (as the activity started before the click start)\n click.startClocks.timeStamp);\n }\n else {\n click.stop();\n }\n }\n }, CLICK_ACTION_MAX_DURATION).stop;\n var viewEndedSubscription = lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n click.stop(endClocks.timeStamp);\n });\n var stopSubscription = stopObservable.subscribe(function () {\n click.stop();\n });\n click.stopObservable.subscribe(function () {\n viewEndedSubscription.unsubscribe();\n stopWaitPageActivityEnd();\n stopSubscription.unsubscribe();\n });\n}\nfunction computeClickActionBase(event, actionNameAttribute) {\n var rect = event.target.getBoundingClientRect();\n return {\n type: \"click\" /* ActionType.CLICK */,\n target: {\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n selector: getSelectorFromElement(event.target, actionNameAttribute),\n },\n position: {\n // Use clientX and Y because for SVG element offsetX and Y are relatives to the element\n x: Math.round(event.clientX - rect.left),\n y: Math.round(event.clientY - rect.top),\n },\n name: getActionNameFromElement(event.target, actionNameAttribute),\n };\n}\nfunction newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent) {\n var id = generateUUID();\n var startClocks = clocksNow();\n var historyEntry = history.add(id, startClocks.relative);\n var eventCountsSubscription = trackEventCounts({\n lifeCycle: lifeCycle,\n isChildEvent: function (event) {\n return event.action !== undefined &&\n (Array.isArray(event.action.id) ? includes(event.action.id, id) : event.action.id === id);\n },\n });\n var status = 0 /* ClickStatus.ONGOING */;\n var activityEndTime;\n var frustrationTypes = [];\n var stopObservable = new Observable();\n function stop(newActivityEndTime) {\n if (status !== 0 /* ClickStatus.ONGOING */) {\n return;\n }\n activityEndTime = newActivityEndTime;\n status = 1 /* ClickStatus.STOPPED */;\n if (activityEndTime) {\n historyEntry.close(getRelativeTime(activityEndTime));\n }\n else {\n historyEntry.remove();\n }\n eventCountsSubscription.stop();\n stopObservable.notify();\n }\n return {\n event: startEvent,\n stop: stop,\n stopObservable: stopObservable,\n get hasError() {\n return eventCountsSubscription.eventCounts.errorCount > 0;\n },\n get hasPageActivity() {\n return activityEndTime !== undefined;\n },\n getUserActivity: getUserActivity,\n addFrustration: function (frustrationType) {\n frustrationTypes.push(frustrationType);\n },\n startClocks: startClocks,\n isStopped: function () { return status === 1 /* ClickStatus.STOPPED */ || status === 2 /* ClickStatus.FINALIZED */; },\n clone: function () { return newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent); },\n validate: function (domEvents) {\n stop();\n if (status !== 1 /* ClickStatus.STOPPED */) {\n return;\n }\n var _a = eventCountsSubscription.eventCounts, resourceCount = _a.resourceCount, errorCount = _a.errorCount, longTaskCount = _a.longTaskCount;\n var clickAction = assign({\n type: \"click\" /* ActionType.CLICK */,\n duration: activityEndTime && elapsed(startClocks.timeStamp, activityEndTime),\n startClocks: startClocks,\n id: id,\n frustrationTypes: frustrationTypes,\n counts: {\n resourceCount: resourceCount,\n errorCount: errorCount,\n longTaskCount: longTaskCount,\n },\n events: domEvents !== null && domEvents !== void 0 ? domEvents : [startEvent],\n event: startEvent,\n }, clickActionBase);\n lifeCycle.notify(1 /* LifeCycleEventType.AUTO_ACTION_COMPLETED */, clickAction);\n status = 2 /* ClickStatus.FINALIZED */;\n },\n discard: function () {\n stop();\n status = 2 /* ClickStatus.FINALIZED */;\n },\n };\n}\nexport function finalizeClicks(clicks, rageClick) {\n var isRage = computeFrustration(clicks, rageClick).isRage;\n if (isRage) {\n clicks.forEach(function (click) { return click.discard(); });\n rageClick.stop(timeStampNow());\n rageClick.validate(clicks.map(function (click) { return click.event; }));\n }\n else {\n rageClick.discard();\n clicks.forEach(function (click) { return click.validate(); });\n }\n}\n//# sourceMappingURL=trackClickActions.js.map","import { noop, assign, combine, toServerDuration, generateUUID } from '@datadog/browser-core';\nimport { trackClickActions } from './trackClickActions';\nexport function startActionCollection(lifeCycle, domMutationObservable, configuration, pageStateHistory) {\n lifeCycle.subscribe(1 /* LifeCycleEventType.AUTO_ACTION_COMPLETED */, function (action) {\n return lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processAction(action, pageStateHistory));\n });\n var actionContexts = { findActionId: noop };\n if (configuration.trackUserInteractions) {\n actionContexts = trackClickActions(lifeCycle, domMutationObservable, configuration).actionContexts;\n }\n return {\n addAction: function (action, savedCommonContext) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, assign({\n savedCommonContext: savedCommonContext,\n }, processAction(action, pageStateHistory)));\n },\n actionContexts: actionContexts,\n };\n}\nfunction processAction(action, pageStateHistory) {\n var autoActionProperties = isAutoAction(action)\n ? {\n action: {\n id: action.id,\n loading_time: toServerDuration(action.duration),\n frustration: {\n type: action.frustrationTypes,\n },\n error: {\n count: action.counts.errorCount,\n },\n long_task: {\n count: action.counts.longTaskCount,\n },\n resource: {\n count: action.counts.resourceCount,\n },\n },\n _dd: {\n action: {\n target: action.target,\n position: action.position,\n },\n },\n }\n : undefined;\n var customerContext = !isAutoAction(action) ? action.context : undefined;\n var actionEvent = combine({\n action: {\n id: generateUUID(),\n target: {\n name: action.name,\n },\n type: action.type,\n },\n date: action.startClocks.timeStamp,\n type: \"action\" /* RumEventType.ACTION */,\n view: { in_foreground: pageStateHistory.isInActivePageStateAt(action.startClocks.relative) },\n }, autoActionProperties);\n return {\n customerContext: customerContext,\n rawRumEvent: actionEvent,\n startTime: action.startClocks.relative,\n domainContext: isAutoAction(action) ? { events: action.events } : {},\n };\n}\nfunction isAutoAction(action) {\n return action.type !== \"custom\" /* ActionType.CUSTOM */;\n}\n//# sourceMappingURL=actionCollection.js.map","import { instrumentMethodAndCallOriginal } from '../../tools/instrumentMethod';\nimport { clocksNow } from '../../tools/utils/timeUtils';\nimport { computeStackTrace, computeStackTraceFromOnErrorMessage } from './computeStackTrace';\nimport { computeRawError } from './error';\nimport { ErrorSource } from './error.types';\nexport function trackRuntimeError(errorObservable) {\n var handleRuntimeError = function (stackTrace, originalError) {\n var test = computeRawError({\n stackTrace: stackTrace,\n originalError: originalError,\n startClocks: clocksNow(),\n nonErrorPrefix: \"Uncaught\" /* NonErrorPrefix.UNCAUGHT */,\n source: ErrorSource.SOURCE,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n });\n errorObservable.notify(test);\n };\n var stopInstrumentingOnError = instrumentOnError(handleRuntimeError).stop;\n var stopInstrumentingOnUnhandledRejection = instrumentUnhandledRejection(handleRuntimeError).stop;\n return {\n stop: function () {\n stopInstrumentingOnError();\n stopInstrumentingOnUnhandledRejection();\n },\n };\n}\nexport function instrumentOnError(callback) {\n return instrumentMethodAndCallOriginal(window, 'onerror', {\n before: function (messageObj, url, line, column, errorObj) {\n var stackTrace;\n if (errorObj instanceof Error) {\n stackTrace = computeStackTrace(errorObj);\n }\n else {\n stackTrace = computeStackTraceFromOnErrorMessage(messageObj, url, line, column);\n }\n callback(stackTrace, errorObj !== null && errorObj !== void 0 ? errorObj : messageObj);\n },\n });\n}\nexport function instrumentUnhandledRejection(callback) {\n return instrumentMethodAndCallOriginal(window, 'onunhandledrejection', {\n before: function (e) {\n var reason = e.reason || 'Empty reason';\n var stack = computeStackTrace(reason);\n callback(stack, reason);\n },\n });\n}\n//# sourceMappingURL=trackRuntimeError.js.map","import { createHandlingStack, formatErrorMessage, toStackTraceString, tryToGetFingerprint } from '../error/error';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { ConsoleApiName, globalConsole } from '../../tools/display';\nimport { callMonitored } from '../../tools/monitor';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { find } from '../../tools/utils/polyfills';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { computeStackTrace } from '../error/computeStackTrace';\nvar consoleObservablesByApi = {};\nexport function initConsoleObservable(apis) {\n var consoleObservables = apis.map(function (api) {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api);\n }\n return consoleObservablesByApi[api];\n });\n return mergeObservables.apply(void 0, consoleObservables);\n}\nexport function resetConsoleObservable() {\n consoleObservablesByApi = {};\n}\nfunction createConsoleObservable(api) {\n var observable = new Observable(function () {\n var originalConsoleApi = globalConsole[api];\n globalConsole[api] = function () {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n originalConsoleApi.apply(console, params);\n var handlingStack = createHandlingStack();\n callMonitored(function () {\n observable.notify(buildConsoleLog(params, api, handlingStack));\n });\n };\n return function () {\n globalConsole[api] = originalConsoleApi;\n };\n });\n return observable;\n}\nfunction buildConsoleLog(params, api, handlingStack) {\n var message = params.map(function (param) { return formatConsoleParameters(param); }).join(' ');\n var stack;\n var fingerprint;\n if (api === ConsoleApiName.error) {\n var firstErrorParam = find(params, function (param) { return param instanceof Error; });\n stack = firstErrorParam ? toStackTraceString(computeStackTrace(firstErrorParam)) : undefined;\n fingerprint = tryToGetFingerprint(firstErrorParam);\n }\n return {\n api: api,\n message: message,\n stack: stack,\n handlingStack: handlingStack,\n fingerprint: fingerprint,\n };\n}\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return sanitize(param);\n }\n if (param instanceof Error) {\n return formatErrorMessage(computeStackTrace(param));\n }\n return jsonStringify(sanitize(param), undefined, 2);\n}\n//# sourceMappingURL=consoleObservable.js.map","import { clocksNow, initConsoleObservable, ErrorSource, ConsoleApiName } from '@datadog/browser-core';\nexport function trackConsoleError(errorObservable) {\n var subscription = initConsoleObservable([ConsoleApiName.error]).subscribe(function (consoleError) {\n return errorObservable.notify({\n startClocks: clocksNow(),\n message: consoleError.message,\n stack: consoleError.stack,\n fingerprint: consoleError.fingerprint,\n source: ErrorSource.CONSOLE,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n handlingStack: consoleError.handlingStack,\n });\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=trackConsoleError.js.map","import { toStackTraceString } from '../error/error';\nimport { monitor } from '../../tools/monitor';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { addEventListener, DOM_EVENT } from '../../browser/addEventListener';\nimport { includes } from '../../tools/utils/polyfills';\nimport { safeTruncate } from '../../tools/utils/stringUtils';\nexport var RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation',\n};\nexport function initReportObservable(configuration, apis) {\n var observables = [];\n if (includes(apis, RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration));\n }\n var reportTypes = apis.filter(function (api) { return api !== RawReportType.cspViolation; });\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes));\n }\n return mergeObservables.apply(void 0, observables);\n}\nfunction createReportObservable(reportTypes) {\n var observable = new Observable(function () {\n if (!window.ReportingObserver) {\n return;\n }\n var handleReports = monitor(function (reports, _) {\n return reports.forEach(function (report) {\n observable.notify(buildRawReportFromReport(report));\n });\n });\n var observer = new window.ReportingObserver(handleReports, {\n types: reportTypes,\n buffered: true,\n });\n observer.observe();\n return function () {\n observer.disconnect();\n };\n });\n return observable;\n}\nfunction createCspViolationReportObservable(configuration) {\n var observable = new Observable(function () {\n var stop = addEventListener(configuration, document, DOM_EVENT.SECURITY_POLICY_VIOLATION, function (event) {\n observable.notify(buildRawReportFromCspViolation(event));\n }).stop;\n return stop;\n });\n return observable;\n}\nfunction buildRawReportFromReport(_a) {\n var type = _a.type, body = _a.body;\n return {\n type: type,\n subtype: body.id,\n message: \"\".concat(type, \": \").concat(body.message),\n stack: buildStack(body.id, body.message, body.sourceFile, body.lineNumber, body.columnNumber),\n };\n}\nfunction buildRawReportFromCspViolation(event) {\n var type = RawReportType.cspViolation;\n var message = \"'\".concat(event.blockedURI, \"' blocked by '\").concat(event.effectiveDirective, \"' directive\");\n return {\n type: RawReportType.cspViolation,\n subtype: event.effectiveDirective,\n message: \"\".concat(type, \": \").concat(message),\n stack: buildStack(event.effectiveDirective, event.originalPolicy\n ? \"\".concat(message, \" of the policy \\\"\").concat(safeTruncate(event.originalPolicy, 100, '...'), \"\\\"\")\n : 'no policy', event.sourceFile, event.lineNumber, event.columnNumber),\n };\n}\nfunction buildStack(name, message, sourceFile, lineNumber, columnNumber) {\n return sourceFile\n ? toStackTraceString({\n name: name,\n message: message,\n stack: [\n {\n func: '?',\n url: sourceFile,\n line: lineNumber !== null && lineNumber !== void 0 ? lineNumber : undefined,\n column: columnNumber !== null && columnNumber !== void 0 ? columnNumber : undefined,\n },\n ],\n })\n : undefined;\n}\n//# sourceMappingURL=reportObservable.js.map","import { clocksNow, ErrorSource, initReportObservable, RawReportType } from '@datadog/browser-core';\nexport function trackReportError(configuration, errorObservable) {\n var subscription = initReportObservable(configuration, [\n RawReportType.cspViolation,\n RawReportType.intervention,\n ]).subscribe(function (reportError) {\n return errorObservable.notify({\n startClocks: clocksNow(),\n message: reportError.message,\n stack: reportError.stack,\n type: reportError.subtype,\n source: ErrorSource.REPORT,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n });\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=trackReportError.js.map","import { isEmptyObject, assign, ErrorSource, generateUUID, computeRawError, computeStackTrace, Observable, trackRuntimeError, } from '@datadog/browser-core';\nimport { trackConsoleError } from './trackConsoleError';\nimport { trackReportError } from './trackReportError';\nexport function startErrorCollection(lifeCycle, configuration, pageStateHistory, featureFlagContexts) {\n var errorObservable = new Observable();\n trackConsoleError(errorObservable);\n trackRuntimeError(errorObservable);\n trackReportError(configuration, errorObservable);\n errorObservable.subscribe(function (error) { return lifeCycle.notify(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, { error: error }); });\n return doStartErrorCollection(lifeCycle, pageStateHistory, featureFlagContexts);\n}\nexport function doStartErrorCollection(lifeCycle, pageStateHistory, featureFlagContexts) {\n lifeCycle.subscribe(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, function (_a) {\n var error = _a.error, customerContext = _a.customerContext, savedCommonContext = _a.savedCommonContext;\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, assign({\n customerContext: customerContext,\n savedCommonContext: savedCommonContext,\n }, processError(error, pageStateHistory, featureFlagContexts)));\n });\n return {\n addError: function (_a, savedCommonContext) {\n var error = _a.error, handlingStack = _a.handlingStack, startClocks = _a.startClocks, customerContext = _a.context;\n var stackTrace = error instanceof Error ? computeStackTrace(error) : undefined;\n var rawError = computeRawError({\n stackTrace: stackTrace,\n originalError: error,\n handlingStack: handlingStack,\n startClocks: startClocks,\n nonErrorPrefix: \"Provided\" /* NonErrorPrefix.PROVIDED */,\n source: ErrorSource.CUSTOM,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n });\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, {\n customerContext: customerContext,\n savedCommonContext: savedCommonContext,\n error: rawError,\n });\n },\n };\n}\nfunction processError(error, pageStateHistory, featureFlagContexts) {\n var rawRumEvent = {\n date: error.startClocks.timeStamp,\n error: {\n id: generateUUID(),\n message: error.message,\n source: error.source,\n stack: error.stack,\n handling_stack: error.handlingStack,\n type: error.type,\n handling: error.handling,\n causes: error.causes,\n source_type: 'browser',\n fingerprint: error.fingerprint,\n },\n type: \"error\" /* RumEventType.ERROR */,\n view: { in_foreground: pageStateHistory.isInActivePageStateAt(error.startClocks.relative) },\n };\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations(error.startClocks.relative);\n if (featureFlagContext && !isEmptyObject(featureFlagContext)) {\n rawRumEvent.feature_flags = featureFlagContext;\n }\n return {\n rawRumEvent: rawRumEvent,\n startTime: error.startClocks.relative,\n domainContext: {\n error: error.originalError,\n },\n };\n}\n//# sourceMappingURL=errorCollection.js.map","import { toServerDuration, relativeToClocks, generateUUID } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../browser/performanceCollection';\nexport function startLongTaskCollection(lifeCycle, configuration, sessionManager) {\n lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType !== RumPerformanceEntryType.LONG_TASK) {\n break;\n }\n var session = sessionManager.findTrackedSession(entry.startTime);\n if (!session || !configuration.trackLongTasks) {\n break;\n }\n var startClocks = relativeToClocks(entry.startTime);\n var rawRumEvent = {\n date: startClocks.timeStamp,\n long_task: {\n id: generateUUID(),\n duration: toServerDuration(entry.duration),\n },\n type: \"long_task\" /* RumEventType.LONG_TASK */,\n _dd: {\n discarded: false,\n },\n };\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, {\n rawRumEvent: rawRumEvent,\n startTime: startClocks.relative,\n domainContext: { performanceEntry: entry },\n });\n }\n });\n}\n//# sourceMappingURL=longTaskCollection.js.map","import { addDuration } from '@datadog/browser-core';\nimport { toValidEntry } from './resourceUtils';\n/**\n * Look for corresponding timing in resource timing buffer\n *\n * Observations:\n * - Timing (start, end) are nested inside the request (start, end)\n * - Some timing can be not exactly nested, being off by < 1 ms\n *\n * Strategy:\n * - from valid nested entries (with 1 ms error margin)\n * - if a single timing match, return the timing\n * - otherwise we can't decide, return undefined\n */\nexport function matchRequestTiming(request) {\n if (!performance || !('getEntriesByName' in performance)) {\n return;\n }\n var sameNameEntries = performance.getEntriesByName(request.url, 'resource');\n if (!sameNameEntries.length || !('toJSON' in sameNameEntries[0])) {\n return;\n }\n var candidates = sameNameEntries\n .map(function (entry) { return entry.toJSON(); })\n .filter(toValidEntry)\n .filter(function (entry) {\n return isBetween(entry, request.startClocks.relative, endTime({ startTime: request.startClocks.relative, duration: request.duration }));\n });\n if (candidates.length === 1) {\n return candidates[0];\n }\n return;\n}\nfunction endTime(timing) {\n return addDuration(timing.startTime, timing.duration);\n}\nfunction isBetween(timing, start, end) {\n var errorMargin = 1;\n return timing.startTime >= start - errorMargin && endTime(timing) <= addDuration(end, errorMargin);\n}\n//# sourceMappingURL=matchRequestTiming.js.map","import { combine, generateUUID, toServerDuration, relativeToClocks, assign, isNumber, isExperimentalFeatureEnabled, ExperimentalFeature, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../browser/performanceCollection';\nimport { matchRequestTiming } from './matchRequestTiming';\nimport { computePerformanceResourceDetails, computePerformanceResourceDuration, computeResourceKind, computeSize, isRequestKind, } from './resourceUtils';\nexport function startResourceCollection(lifeCycle, configuration, sessionManager, pageStateHistory) {\n lifeCycle.subscribe(6 /* LifeCycleEventType.REQUEST_COMPLETED */, function (request) {\n var rawEvent = processRequest(request, configuration, sessionManager, pageStateHistory);\n if (rawEvent) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, rawEvent);\n }\n });\n lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.RESOURCE && !isRequestKind(entry)) {\n var rawEvent = processResourceEntry(entry, configuration, sessionManager, pageStateHistory);\n if (rawEvent) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, rawEvent);\n }\n }\n }\n });\n}\nfunction processRequest(request, configuration, sessionManager, pageStateHistory) {\n var _a;\n var matchingTiming = matchRequestTiming(request);\n var startClocks = matchingTiming ? relativeToClocks(matchingTiming.startTime) : request.startClocks;\n var shouldIndex = shouldIndexResource(configuration, sessionManager, startClocks);\n var tracingInfo = computeRequestTracingInfo(request, configuration);\n if (!shouldIndex && !tracingInfo) {\n return;\n }\n var type = request.type === \"xhr\" /* RequestType.XHR */ ? \"xhr\" /* ResourceType.XHR */ : \"fetch\" /* ResourceType.FETCH */;\n var correspondingTimingOverrides = matchingTiming ? computePerformanceEntryMetrics(matchingTiming) : undefined;\n var duration = computeRequestDuration(pageStateHistory, startClocks, request.duration);\n var pageStateInfo = computePageStateInfo(pageStateHistory, startClocks, (_a = matchingTiming === null || matchingTiming === void 0 ? void 0 : matchingTiming.duration) !== null && _a !== void 0 ? _a : request.duration);\n var resourceEvent = combine({\n date: startClocks.timeStamp,\n resource: {\n id: generateUUID(),\n type: type,\n duration: duration,\n method: request.method,\n status_code: request.status,\n url: request.url,\n },\n type: \"resource\" /* RumEventType.RESOURCE */,\n _dd: {\n discarded: !shouldIndex,\n },\n }, tracingInfo, correspondingTimingOverrides, pageStateInfo);\n return {\n startTime: startClocks.relative,\n rawRumEvent: resourceEvent,\n domainContext: {\n performanceEntry: matchingTiming,\n xhr: request.xhr,\n response: request.response,\n requestInput: request.input,\n requestInit: request.init,\n error: request.error,\n },\n };\n}\nfunction processResourceEntry(entry, configuration, sessionManager, pageStateHistory) {\n var startClocks = relativeToClocks(entry.startTime);\n var shouldIndex = shouldIndexResource(configuration, sessionManager, startClocks);\n var tracingInfo = computeEntryTracingInfo(entry, configuration);\n if (!shouldIndex && !tracingInfo) {\n return;\n }\n var type = computeResourceKind(entry);\n var entryMetrics = computePerformanceEntryMetrics(entry);\n var pageStateInfo = computePageStateInfo(pageStateHistory, startClocks, entry.duration);\n var resourceEvent = combine({\n date: startClocks.timeStamp,\n resource: {\n id: generateUUID(),\n type: type,\n url: entry.name,\n },\n type: \"resource\" /* RumEventType.RESOURCE */,\n _dd: {\n discarded: !shouldIndex,\n },\n }, tracingInfo, entryMetrics, pageStateInfo);\n return {\n startTime: startClocks.relative,\n rawRumEvent: resourceEvent,\n domainContext: {\n performanceEntry: entry,\n },\n };\n}\nfunction shouldIndexResource(configuration, sessionManager, resourceStart) {\n return configuration.trackResources && sessionManager.findTrackedSession(resourceStart.relative);\n}\nfunction computePerformanceEntryMetrics(timing) {\n return {\n resource: assign({\n duration: computePerformanceResourceDuration(timing),\n size: computeSize(timing),\n }, computePerformanceResourceDetails(timing)),\n };\n}\nfunction computeRequestTracingInfo(request, configuration) {\n var hasBeenTraced = request.traceSampled && request.traceId && request.spanId;\n if (!hasBeenTraced) {\n return undefined;\n }\n return {\n _dd: {\n span_id: request.spanId.toDecimalString(),\n trace_id: request.traceId.toDecimalString(),\n rule_psr: getRulePsr(configuration),\n },\n };\n}\nfunction computeEntryTracingInfo(entry, configuration) {\n var hasBeenTraced = entry.traceId;\n if (!hasBeenTraced) {\n return undefined;\n }\n return {\n _dd: {\n trace_id: entry.traceId,\n rule_psr: getRulePsr(configuration),\n },\n };\n}\n/**\n * @returns number between 0 and 1 which represents trace sample rate\n */\nfunction getRulePsr(configuration) {\n return isNumber(configuration.traceSampleRate) ? configuration.traceSampleRate / 100 : undefined;\n}\nfunction computePageStateInfo(pageStateHistory, startClocks, duration) {\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.RESOURCE_PAGE_STATES)) {\n return;\n }\n return {\n _dd: {\n page_states: pageStateHistory.findAll(startClocks.relative, duration),\n page_was_discarded: String(document.wasDiscarded),\n },\n };\n}\nfunction computeRequestDuration(pageStateHistory, startClocks, duration) {\n var _a;\n var requestCrossedFrozenState = (_a = pageStateHistory\n .findAll(startClocks.relative, duration)) === null || _a === void 0 ? void 0 : _a.some(function (pageState) { return pageState.state === \"frozen\" /* PageState.FROZEN */; });\n return !requestCrossedFrozenState ? toServerDuration(duration) : undefined;\n}\n//# sourceMappingURL=resourceCollection.js.map","import { trackEventCounts } from '../trackEventCounts';\nexport function trackViewEventCounts(lifeCycle, viewId, onChange) {\n var _a = trackEventCounts({\n lifeCycle: lifeCycle,\n isChildEvent: function (event) { return event.view.id === viewId; },\n onChange: onChange,\n }), stop = _a.stop, eventCounts = _a.eventCounts;\n return {\n stop: stop,\n eventCounts: eventCounts,\n };\n}\n//# sourceMappingURL=trackViewEventCounts.js.map","import { ONE_MINUTE, find } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\n// Discard FCP timings above a certain delay to avoid incorrect data\n// It happens in some cases like sleep mode or some browser implementations\nexport var FCP_MAXIMUM_DELAY = 10 * ONE_MINUTE;\nexport function trackFirstContentfulPaint(lifeCycle, firstHidden, callback) {\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var fcpEntry = find(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.PAINT &&\n entry.name === 'first-contentful-paint' &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < FCP_MAXIMUM_DELAY;\n });\n if (fcpEntry) {\n callback(fcpEntry.startTime);\n }\n }).unsubscribe;\n return {\n stop: unsubscribeLifeCycle,\n };\n}\n//# sourceMappingURL=trackFirstContentfulPaint.js.map","import { elapsed, find } from '@datadog/browser-core';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n/**\n * Track the first input occurring during the initial View to return:\n * - First Input Delay\n * - First Input Time\n * Callback is called at most one time.\n * Documentation: https://web.dev/fid/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getFID.ts\n */\nexport function trackFirstInput(lifeCycle, configuration, firstHidden, callback) {\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var firstInputEntry = find(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.FIRST_INPUT && entry.startTime < firstHidden.timeStamp;\n });\n if (firstInputEntry) {\n var firstInputDelay = elapsed(firstInputEntry.startTime, firstInputEntry.processingStart);\n var firstInputTargetSelector = void 0;\n if (firstInputEntry.target && isElementNode(firstInputEntry.target)) {\n firstInputTargetSelector = getSelectorFromElement(firstInputEntry.target, configuration.actionNameAttribute);\n }\n callback({\n // Ensure firstInputDelay to be positive, see\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1185815\n delay: firstInputDelay >= 0 ? firstInputDelay : 0,\n time: firstInputEntry.startTime,\n targetSelector: firstInputTargetSelector,\n });\n }\n }).unsubscribe;\n return {\n stop: unsubscribeLifeCycle,\n };\n}\n//# sourceMappingURL=trackFirstInput.js.map","import { relativeNow } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nexport function trackNavigationTimings(lifeCycle, callback) {\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.NAVIGATION) {\n callback({\n domComplete: entry.domComplete,\n domContentLoaded: entry.domContentLoadedEventEnd,\n domInteractive: entry.domInteractive,\n loadEvent: entry.loadEventEnd,\n // In some cases the value reported is negative or is larger\n // than the current page time. Ignore these cases:\n // https://github.com/GoogleChrome/web-vitals/issues/137\n // https://github.com/GoogleChrome/web-vitals/issues/162\n firstByte: entry.responseStart >= 0 && entry.responseStart <= relativeNow() ? entry.responseStart : undefined,\n });\n }\n }\n }).unsubscribe;\n return { stop: stop };\n}\n//# sourceMappingURL=trackNavigationTimings.js.map","import { DOM_EVENT, ONE_MINUTE, addEventListeners, findLast } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n// Discard LCP timings above a certain delay to avoid incorrect data\n// It happens in some cases like sleep mode or some browser implementations\nexport var LCP_MAXIMUM_DELAY = 10 * ONE_MINUTE;\n/**\n * Track the largest contentful paint (LCP) occurring during the initial View. This can yield\n * multiple values, only the most recent one should be used.\n * Documentation: https://web.dev/lcp/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/onLCP.ts\n */\nexport function trackLargestContentfulPaint(lifeCycle, configuration, firstHidden, eventTarget, callback) {\n // Ignore entries that come after the first user interaction. According to the documentation, the\n // browser should not send largest-contentful-paint entries after a user interact with the page,\n // but the web-vitals reference implementation uses this as a safeguard.\n var firstInteractionTimestamp = Infinity;\n var stopEventListener = addEventListeners(configuration, eventTarget, [DOM_EVENT.POINTER_DOWN, DOM_EVENT.KEY_DOWN], function (event) {\n firstInteractionTimestamp = event.timeStamp;\n }, { capture: true, once: true }).stop;\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var lcpEntry = findLast(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.LARGEST_CONTENTFUL_PAINT &&\n entry.startTime < firstInteractionTimestamp &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < LCP_MAXIMUM_DELAY;\n });\n if (lcpEntry) {\n var lcpTargetSelector = void 0;\n if (lcpEntry.element) {\n lcpTargetSelector = getSelectorFromElement(lcpEntry.element, configuration.actionNameAttribute);\n }\n callback({\n value: lcpEntry.startTime,\n targetSelector: lcpTargetSelector,\n });\n }\n }).unsubscribe;\n return {\n stop: function () {\n stopEventListener();\n unsubscribeLifeCycle();\n },\n };\n}\n//# sourceMappingURL=trackLargestContentfulPaint.js.map","import { addEventListeners, DOM_EVENT } from '@datadog/browser-core';\nexport function trackFirstHidden(configuration, eventTarget) {\n if (eventTarget === void 0) { eventTarget = window; }\n var timeStamp;\n var stopListeners;\n if (document.visibilityState === 'hidden') {\n timeStamp = 0;\n }\n else {\n timeStamp = Infinity;\n (stopListeners = addEventListeners(configuration, eventTarget, [DOM_EVENT.PAGE_HIDE, DOM_EVENT.VISIBILITY_CHANGE], function (event) {\n if (event.type === DOM_EVENT.PAGE_HIDE || document.visibilityState === 'hidden') {\n timeStamp = event.timeStamp;\n stopListeners();\n }\n }, { capture: true }).stop);\n }\n return {\n get timeStamp() {\n return timeStamp;\n },\n stop: function () {\n stopListeners === null || stopListeners === void 0 ? void 0 : stopListeners();\n },\n };\n}\n//# sourceMappingURL=trackFirstHidden.js.map","import { trackFirstContentfulPaint } from './trackFirstContentfulPaint';\nimport { trackFirstInput } from './trackFirstInput';\nimport { trackNavigationTimings } from './trackNavigationTimings';\nimport { trackLargestContentfulPaint } from './trackLargestContentfulPaint';\nimport { trackFirstHidden } from './trackFirstHidden';\nexport function trackInitialViewMetrics(lifeCycle, configuration, setLoadEvent, scheduleViewUpdate) {\n var initialViewMetrics = {};\n var stopNavigationTracking = trackNavigationTimings(lifeCycle, function (navigationTimings) {\n setLoadEvent(navigationTimings.loadEvent);\n initialViewMetrics.navigationTimings = navigationTimings;\n scheduleViewUpdate();\n }).stop;\n var firstHidden = trackFirstHidden(configuration);\n var stopFCPTracking = trackFirstContentfulPaint(lifeCycle, firstHidden, function (firstContentfulPaint) {\n initialViewMetrics.firstContentfulPaint = firstContentfulPaint;\n scheduleViewUpdate();\n }).stop;\n var stopLCPTracking = trackLargestContentfulPaint(lifeCycle, configuration, firstHidden, window, function (largestContentfulPaint) {\n initialViewMetrics.largestContentfulPaint = largestContentfulPaint;\n scheduleViewUpdate();\n }).stop;\n var stopFIDTracking = trackFirstInput(lifeCycle, configuration, firstHidden, function (firstInput) {\n initialViewMetrics.firstInput = firstInput;\n scheduleViewUpdate();\n }).stop;\n function stop() {\n stopNavigationTracking();\n stopFCPTracking();\n stopLCPTracking();\n stopFIDTracking();\n firstHidden.stop();\n }\n return {\n stop: stop,\n initialViewMetrics: initialViewMetrics,\n };\n}\n//# sourceMappingURL=trackInitialViewMetrics.js.map","import { round, find, ONE_SECOND, noop } from '@datadog/browser-core';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { supportPerformanceTimingEvent, RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n/**\n * Track the cumulative layout shifts (CLS).\n * Layout shifts are grouped into session windows.\n * The minimum gap between session windows is 1 second.\n * The maximum duration of a session window is 5 second.\n * The session window layout shift value is the sum of layout shifts inside it.\n * The CLS value is the max of session windows values.\n *\n * This yields a new value whenever the CLS value is updated (a higher session window value is computed).\n *\n * See isLayoutShiftSupported to check for browser support.\n *\n * Documentation:\n * https://web.dev/cls/\n * https://web.dev/evolving-cls/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getCLS.ts\n */\nexport function trackCumulativeLayoutShift(configuration, lifeCycle, callback) {\n if (!isLayoutShiftSupported()) {\n return {\n stop: noop,\n };\n }\n var maxClsValue = 0;\n // if no layout shift happen the value should be reported as 0\n callback({\n value: 0,\n });\n var window = slidingSessionWindow();\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.LAYOUT_SHIFT && !entry.hadRecentInput) {\n window.update(entry);\n if (window.value() > maxClsValue) {\n maxClsValue = window.value();\n var cls = round(maxClsValue, 4);\n var clsTarget = window.largestLayoutShiftTarget();\n var cslTargetSelector = void 0;\n if (clsTarget &&\n // Check if the CLS target have been removed from the DOM between the time we collect the target reference and when we compute the selector\n clsTarget.isConnected) {\n cslTargetSelector = getSelectorFromElement(clsTarget, configuration.actionNameAttribute);\n }\n callback({\n value: cls,\n targetSelector: cslTargetSelector,\n });\n }\n }\n }\n }).unsubscribe;\n return {\n stop: stop,\n };\n}\nfunction slidingSessionWindow() {\n var value = 0;\n var startTime;\n var endTime;\n var largestLayoutShift = 0;\n var largestLayoutShiftTarget;\n var largestLayoutShiftTime;\n return {\n update: function (entry) {\n var _a, _b;\n var shouldCreateNewWindow = startTime === undefined ||\n entry.startTime - endTime >= ONE_SECOND ||\n entry.startTime - startTime >= 5 * ONE_SECOND;\n if (shouldCreateNewWindow) {\n startTime = endTime = entry.startTime;\n value = entry.value;\n largestLayoutShift = 0;\n largestLayoutShiftTarget = undefined;\n }\n else {\n value += entry.value;\n endTime = entry.startTime;\n }\n if (entry.value > largestLayoutShift) {\n largestLayoutShift = entry.value;\n largestLayoutShiftTime = entry.startTime;\n if ((_a = entry.sources) === null || _a === void 0 ? void 0 : _a.length) {\n largestLayoutShiftTarget = (_b = find(entry.sources, function (s) { return !!s.node && isElementNode(s.node); })) === null || _b === void 0 ? void 0 : _b.node;\n }\n else {\n largestLayoutShiftTarget = undefined;\n }\n }\n },\n value: function () { return value; },\n largestLayoutShiftTarget: function () { return largestLayoutShiftTarget; },\n largestLayoutShiftTime: function () { return largestLayoutShiftTime; },\n };\n}\n/**\n * Check whether `layout-shift` is supported by the browser.\n */\nexport function isLayoutShiftSupported() {\n return supportPerformanceTimingEvent(RumPerformanceEntryType.LAYOUT_SHIFT);\n}\n//# sourceMappingURL=trackCumulativeLayoutShift.js.map","/**\n * performance.interactionCount polyfill\n *\n * The interactionCount is an integer which counts the total number of distinct user interactions,\n * for which there was a unique interactionId.\n *\n * The interactionCount polyfill is an estimate based on a convention specific to Chrome. Cf: https://github.com/GoogleChrome/web-vitals/pull/213\n * This is currently not an issue as the polyfill is only used for INP which is currently only supported on Chrome.\n * Hopefully when/if other browsers will support INP, they will also implement performance.interactionCount at the same time, so we won't need that polyfill.\n *\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/lib/polyfills/interactionCountPolyfill.ts\n */\nimport { monitor } from '@datadog/browser-core';\nvar observer;\nvar interactionCountEstimate = 0;\nvar minKnownInteractionId = Infinity;\nvar maxKnownInteractionId = 0;\nexport function initInteractionCountPolyfill() {\n if ('interactionCount' in performance || observer) {\n return;\n }\n observer = new window.PerformanceObserver(monitor(function (entries) {\n entries.getEntries().forEach(function (e) {\n var entry = e;\n if (entry.interactionId) {\n minKnownInteractionId = Math.min(minKnownInteractionId, entry.interactionId);\n maxKnownInteractionId = Math.max(maxKnownInteractionId, entry.interactionId);\n interactionCountEstimate = (maxKnownInteractionId - minKnownInteractionId) / 7 + 1;\n }\n });\n }));\n observer.observe({ type: 'event', buffered: true, durationThreshold: 0 });\n}\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nexport var getInteractionCount = function () {\n return observer ? interactionCountEstimate : window.performance.interactionCount || 0;\n};\n//# sourceMappingURL=interactionCountPolyfill.js.map","import { noop, ONE_MINUTE } from '@datadog/browser-core';\nimport { RumPerformanceEntryType, supportPerformanceTimingEvent } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { getInteractionCount, initInteractionCountPolyfill } from './interactionCountPolyfill';\n// Arbitrary value to prevent unnecessary memory usage on views with lots of interactions.\nvar MAX_INTERACTION_ENTRIES = 10;\n// Arbitrary value to cap INP outliers\nexport var MAX_INP_VALUE = (1 * ONE_MINUTE);\n/**\n * Track the interaction to next paint (INP).\n * To avoid outliers, return the p98 worst interaction of the view.\n * Documentation: https://web.dev/inp/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/onINP.ts\n */\nexport function trackInteractionToNextPaint(configuration, viewStart, viewLoadingType, lifeCycle) {\n if (!isInteractionToNextPaintSupported()) {\n return {\n getInteractionToNextPaint: function () { return undefined; },\n setViewEnd: noop,\n stop: noop,\n };\n }\n var _a = trackViewInteractionCount(viewLoadingType), getViewInteractionCount = _a.getViewInteractionCount, stopViewInteractionCount = _a.stopViewInteractionCount;\n var viewEnd = Infinity;\n var longestInteractions = trackLongestInteractions(getViewInteractionCount);\n var interactionToNextPaint = -1;\n var interactionToNextPaintTargetSelector;\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if ((entry.entryType === RumPerformanceEntryType.EVENT ||\n entry.entryType === RumPerformanceEntryType.FIRST_INPUT) &&\n entry.interactionId &&\n // Check the entry start time is inside the view bounds because some view interactions can be reported after the view end (if long duration).\n entry.startTime >= viewStart &&\n entry.startTime <= viewEnd) {\n longestInteractions.process(entry);\n }\n }\n var newInteraction = longestInteractions.estimateP98Interaction();\n if (newInteraction) {\n interactionToNextPaint = newInteraction.duration;\n if (newInteraction.target && isElementNode(newInteraction.target)) {\n interactionToNextPaintTargetSelector = getSelectorFromElement(newInteraction.target, configuration.actionNameAttribute);\n }\n else {\n interactionToNextPaintTargetSelector = undefined;\n }\n }\n }).unsubscribe;\n return {\n getInteractionToNextPaint: function () {\n // If no INP duration where captured because of the performanceObserver 40ms threshold\n // but the view interaction count > 0 then report 0\n if (interactionToNextPaint >= 0) {\n return {\n value: Math.min(interactionToNextPaint, MAX_INP_VALUE),\n targetSelector: interactionToNextPaintTargetSelector,\n };\n }\n else if (getViewInteractionCount()) {\n return {\n value: 0,\n };\n }\n },\n setViewEnd: function (viewEndTime) {\n viewEnd = viewEndTime;\n stopViewInteractionCount();\n },\n stop: stop,\n };\n}\nfunction trackLongestInteractions(getViewInteractionCount) {\n var longestInteractions = [];\n function sortAndTrimLongestInteractions() {\n longestInteractions.sort(function (a, b) { return b.duration - a.duration; }).splice(MAX_INTERACTION_ENTRIES);\n }\n return {\n /**\n * Process the performance entry:\n * - if its duration is long enough, add the performance entry to the list of worst interactions\n * - if an entry with the same interaction id exists and its duration is lower than the new one, then replace it in the list of worst interactions\n */\n process: function (entry) {\n var interactionIndex = longestInteractions.findIndex(function (interaction) { return entry.interactionId === interaction.interactionId; });\n var minLongestInteraction = longestInteractions[longestInteractions.length - 1];\n if (interactionIndex !== -1) {\n if (entry.duration > longestInteractions[interactionIndex].duration) {\n longestInteractions[interactionIndex] = entry;\n sortAndTrimLongestInteractions();\n }\n }\n else if (longestInteractions.length < MAX_INTERACTION_ENTRIES ||\n entry.duration > minLongestInteraction.duration) {\n longestInteractions.push(entry);\n sortAndTrimLongestInteractions();\n }\n },\n /**\n * Compute the p98 longest interaction.\n * For better performance the computation is based on 10 longest interactions and the interaction count of the current view.\n */\n estimateP98Interaction: function () {\n var interactionIndex = Math.min(longestInteractions.length - 1, Math.floor(getViewInteractionCount() / 50));\n return longestInteractions[interactionIndex];\n },\n };\n}\nexport function trackViewInteractionCount(viewLoadingType) {\n initInteractionCountPolyfill();\n var previousInteractionCount = viewLoadingType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */ ? 0 : getInteractionCount();\n var state = { stopped: false };\n function computeViewInteractionCount() {\n return getInteractionCount() - previousInteractionCount;\n }\n return {\n getViewInteractionCount: function () {\n if (state.stopped) {\n return state.interactionCount;\n }\n return computeViewInteractionCount();\n },\n stopViewInteractionCount: function () {\n state = { stopped: true, interactionCount: computeViewInteractionCount() };\n },\n };\n}\nexport function isInteractionToNextPaintSupported() {\n return (supportPerformanceTimingEvent(RumPerformanceEntryType.EVENT) &&\n window.PerformanceEventTiming &&\n 'interactionId' in PerformanceEventTiming.prototype);\n}\n//# sourceMappingURL=trackInteractionToNextPaint.js.map","import { elapsed } from '@datadog/browser-core';\nimport { waitPageActivityEnd } from '../../waitPageActivityEnd';\nexport function trackLoadingTime(lifeCycle, domMutationObservable, configuration, loadType, viewStart, callback) {\n var isWaitingForLoadEvent = loadType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */;\n var isWaitingForActivityLoadingTime = true;\n var loadingTimeCandidates = [];\n function invokeCallbackIfAllCandidatesAreReceived() {\n if (!isWaitingForActivityLoadingTime && !isWaitingForLoadEvent && loadingTimeCandidates.length > 0) {\n callback(Math.max.apply(Math, loadingTimeCandidates));\n }\n }\n var stop = waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (event) {\n if (isWaitingForActivityLoadingTime) {\n isWaitingForActivityLoadingTime = false;\n if (event.hadActivity) {\n loadingTimeCandidates.push(elapsed(viewStart.timeStamp, event.end));\n }\n invokeCallbackIfAllCandidatesAreReceived();\n }\n }).stop;\n return {\n stop: stop,\n setLoadEvent: function (loadEvent) {\n if (isWaitingForLoadEvent) {\n isWaitingForLoadEvent = false;\n loadingTimeCandidates.push(loadEvent);\n invokeCallbackIfAllCandidatesAreReceived();\n }\n },\n };\n}\n//# sourceMappingURL=trackLoadingTime.js.map","export function getScrollX() {\n var scrollX;\n var visual = window.visualViewport;\n if (visual) {\n scrollX = visual.pageLeft - visual.offsetLeft;\n }\n else if (window.scrollX !== undefined) {\n scrollX = window.scrollX;\n }\n else {\n scrollX = window.pageXOffset || 0;\n }\n return Math.round(scrollX);\n}\nexport function getScrollY() {\n var scrollY;\n var visual = window.visualViewport;\n if (visual) {\n scrollY = visual.pageTop - visual.offsetTop;\n }\n else if (window.scrollY !== undefined) {\n scrollY = window.scrollY;\n }\n else {\n scrollY = window.pageYOffset || 0;\n }\n return Math.round(scrollY);\n}\n//# sourceMappingURL=scroll.js.map","import { Observable, throttle, addEventListener, DOM_EVENT } from '@datadog/browser-core';\nvar viewportObservable;\nexport function initViewportObservable(configuration) {\n if (!viewportObservable) {\n viewportObservable = createViewportObservable(configuration);\n }\n return viewportObservable;\n}\nexport function createViewportObservable(configuration) {\n var observable = new Observable(function () {\n var updateDimension = throttle(function () {\n observable.notify(getViewportDimension());\n }, 200).throttled;\n return addEventListener(configuration, window, DOM_EVENT.RESIZE, updateDimension, { capture: true, passive: true })\n .stop;\n });\n return observable;\n}\n// excludes the width and height of any rendered classic scrollbar that is fixed to the visual viewport\nexport function getViewportDimension() {\n var visual = window.visualViewport;\n if (visual) {\n return {\n width: Number(visual.width * visual.scale),\n height: Number(visual.height * visual.scale),\n };\n }\n return {\n width: Number(window.innerWidth || 0),\n height: Number(window.innerHeight || 0),\n };\n}\n//# sourceMappingURL=viewportObservable.js.map","import { Observable, ONE_SECOND, elapsed, relativeNow, throttle, addEventListener, DOM_EVENT, monitor, } from '@datadog/browser-core';\nimport { getScrollY } from '../../../browser/scroll';\nimport { getViewportDimension } from '../../../browser/viewportObservable';\n/** Arbitrary scroll throttle duration */\nexport var THROTTLE_SCROLL_DURATION = ONE_SECOND;\nexport function trackScrollMetrics(configuration, viewStart, callback, scrollValues) {\n if (scrollValues === void 0) { scrollValues = createScrollValuesObservable(configuration); }\n var maxScrollDepth = 0;\n var maxScrollHeight = 0;\n var maxScrollHeightTime = 0;\n var subscription = scrollValues.subscribe(function (_a) {\n var scrollDepth = _a.scrollDepth, scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight;\n var shouldUpdate = false;\n if (scrollDepth > maxScrollDepth) {\n maxScrollDepth = scrollDepth;\n shouldUpdate = true;\n }\n if (scrollHeight > maxScrollHeight) {\n maxScrollHeight = scrollHeight;\n var now = relativeNow();\n maxScrollHeightTime = elapsed(viewStart.relative, now);\n shouldUpdate = true;\n }\n if (shouldUpdate) {\n callback({\n maxDepth: Math.min(maxScrollDepth, maxScrollHeight),\n maxDepthScrollTop: scrollTop,\n maxScrollHeight: maxScrollHeight,\n maxScrollHeightTime: maxScrollHeightTime,\n });\n }\n });\n return {\n stop: function () { return subscription.unsubscribe(); },\n };\n}\nexport function computeScrollValues() {\n var scrollTop = getScrollY();\n var height = getViewportDimension().height;\n var scrollHeight = Math.round((document.scrollingElement || document.documentElement).scrollHeight);\n var scrollDepth = Math.round(height + scrollTop);\n return {\n scrollHeight: scrollHeight,\n scrollDepth: scrollDepth,\n scrollTop: scrollTop,\n };\n}\nexport function createScrollValuesObservable(configuration, throttleDuration) {\n if (throttleDuration === void 0) { throttleDuration = THROTTLE_SCROLL_DURATION; }\n var observable = new Observable(function () {\n function notify() {\n observable.notify(computeScrollValues());\n }\n if (window.ResizeObserver) {\n var throttledNotify_1 = throttle(notify, throttleDuration, {\n leading: false,\n trailing: true,\n });\n var observerTarget_1 = document.scrollingElement || document.documentElement;\n var resizeObserver_1 = new ResizeObserver(monitor(throttledNotify_1.throttled));\n resizeObserver_1.observe(observerTarget_1);\n var eventListener_1 = addEventListener(configuration, window, DOM_EVENT.SCROLL, throttledNotify_1.throttled, {\n passive: true,\n });\n return function () {\n throttledNotify_1.cancel();\n resizeObserver_1.unobserve(observerTarget_1);\n eventListener_1.stop();\n };\n }\n });\n return observable;\n}\n//# sourceMappingURL=trackScrollMetrics.js.map","import { trackCumulativeLayoutShift } from './trackCumulativeLayoutShift';\nimport { trackInteractionToNextPaint } from './trackInteractionToNextPaint';\nimport { trackLoadingTime } from './trackLoadingTime';\nimport { trackScrollMetrics } from './trackScrollMetrics';\nexport function trackCommonViewMetrics(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, viewStart) {\n var commonViewMetrics = {};\n var _a = trackLoadingTime(lifeCycle, domMutationObservable, configuration, loadingType, viewStart, function (newLoadingTime) {\n commonViewMetrics.loadingTime = newLoadingTime;\n scheduleViewUpdate();\n }), stopLoadingTimeTracking = _a.stop, setLoadEvent = _a.setLoadEvent;\n var stopScrollMetricsTracking = trackScrollMetrics(configuration, viewStart, function (newScrollMetrics) {\n commonViewMetrics.scroll = newScrollMetrics;\n }).stop;\n var stopCLSTracking = trackCumulativeLayoutShift(configuration, lifeCycle, function (cumulativeLayoutShift) {\n commonViewMetrics.cumulativeLayoutShift = cumulativeLayoutShift;\n scheduleViewUpdate();\n }).stop;\n var _b = trackInteractionToNextPaint(configuration, viewStart.relative, loadingType, lifeCycle), stopINPTracking = _b.stop, getInteractionToNextPaint = _b.getInteractionToNextPaint, setViewEnd = _b.setViewEnd;\n return {\n stop: function () {\n stopLoadingTimeTracking();\n stopCLSTracking();\n stopScrollMetricsTracking();\n },\n stopINPTracking: stopINPTracking,\n setLoadEvent: setLoadEvent,\n setViewEnd: setViewEnd,\n getCommonViewMetrics: function () {\n commonViewMetrics.interactionToNextPaint = getInteractionToNextPaint();\n return commonViewMetrics;\n },\n };\n}\n//# sourceMappingURL=trackCommonViewMetrics.js.map","import { noop, PageExitReason, shallowClone, elapsed, generateUUID, ONE_MINUTE, throttle, clocksNow, clocksOrigin, timeStampNow, display, looksLikeRelativeTime, setInterval, clearInterval, setTimeout, Observable, } from '@datadog/browser-core';\nimport { trackViewEventCounts } from './trackViewEventCounts';\nimport { trackInitialViewMetrics } from './viewMetrics/trackInitialViewMetrics';\nimport { trackCommonViewMetrics } from './viewMetrics/trackCommonViewMetrics';\nexport var THROTTLE_VIEW_UPDATE_PERIOD = 3000;\nexport var SESSION_KEEP_ALIVE_INTERVAL = 5 * ONE_MINUTE;\n// Some events or metrics can be captured after the end of the view. To avoid missing those;\n// an arbitrary delay is added for stopping their tracking after the view ends.\n//\n// Ideally, we would not stop and keep tracking events or metrics until the end of the session.\n// But this might have a small performance impact if there are many many views.\n// So let's have a fairly short delay improving the situation in most cases and avoid impacting performances too much.\nexport var KEEP_TRACKING_AFTER_VIEW_DELAY = 5 * ONE_MINUTE;\nexport function trackViews(location, lifeCycle, domMutationObservable, configuration, locationChangeObservable, areViewsTrackedAutomatically, initialViewOptions) {\n var activeViews = new Set();\n var currentView = startNewView(\"initial_load\" /* ViewLoadingType.INITIAL_LOAD */, clocksOrigin(), initialViewOptions);\n startViewLifeCycle();\n var locationChangeSubscription;\n if (areViewsTrackedAutomatically) {\n locationChangeSubscription = renewViewOnLocationChange(locationChangeObservable);\n }\n function startNewView(loadingType, startClocks, viewOptions) {\n var newlyCreatedView = newView(lifeCycle, domMutationObservable, configuration, location, loadingType, startClocks, viewOptions);\n activeViews.add(newlyCreatedView);\n newlyCreatedView.stopObservable.subscribe(function () {\n activeViews.delete(newlyCreatedView);\n });\n return newlyCreatedView;\n }\n function startViewLifeCycle() {\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n // Renew view on session renewal\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */, undefined, {\n name: currentView.name,\n service: currentView.service,\n version: currentView.version,\n });\n });\n lifeCycle.subscribe(7 /* LifeCycleEventType.SESSION_EXPIRED */, function () {\n currentView.end({ sessionIsActive: false });\n });\n // End the current view on page unload\n lifeCycle.subscribe(9 /* LifeCycleEventType.PAGE_EXITED */, function (pageExitEvent) {\n if (pageExitEvent.reason === PageExitReason.UNLOADING || pageExitEvent.reason === PageExitReason.PAGEHIDE) {\n currentView.end();\n }\n });\n }\n function renewViewOnLocationChange(locationChangeObservable) {\n return locationChangeObservable.subscribe(function (_a) {\n var oldLocation = _a.oldLocation, newLocation = _a.newLocation;\n if (areDifferentLocation(oldLocation, newLocation)) {\n currentView.end();\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */);\n }\n });\n }\n return {\n addTiming: function (name, time) {\n if (time === void 0) { time = timeStampNow(); }\n currentView.addTiming(name, time);\n },\n startView: function (options, startClocks) {\n currentView.end({ endClocks: startClocks });\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */, startClocks, options);\n },\n stop: function () {\n locationChangeSubscription === null || locationChangeSubscription === void 0 ? void 0 : locationChangeSubscription.unsubscribe();\n currentView.end();\n activeViews.forEach(function (view) { return view.stop(); });\n },\n };\n}\nfunction newView(lifeCycle, domMutationObservable, configuration, initialLocation, loadingType, startClocks, viewOptions) {\n if (startClocks === void 0) { startClocks = clocksNow(); }\n // Setup initial values\n var id = generateUUID();\n var stopObservable = new Observable();\n var customTimings = {};\n var documentVersion = 0;\n var endClocks;\n var location = shallowClone(initialLocation);\n var sessionIsActive = true;\n var name;\n var service;\n var version;\n if (viewOptions) {\n name = viewOptions.name;\n service = viewOptions.service;\n version = viewOptions.version;\n }\n lifeCycle.notify(2 /* LifeCycleEventType.VIEW_CREATED */, {\n id: id,\n name: name,\n startClocks: startClocks,\n service: service,\n version: version,\n });\n // Update the view every time the measures are changing\n var _a = throttle(triggerViewUpdate, THROTTLE_VIEW_UPDATE_PERIOD, {\n leading: false,\n }), scheduleViewUpdate = _a.throttled, cancelScheduleViewUpdate = _a.cancel;\n var _b = trackCommonViewMetrics(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, startClocks), setLoadEvent = _b.setLoadEvent, setViewEnd = _b.setViewEnd, stopCommonViewMetricsTracking = _b.stop, stopINPTracking = _b.stopINPTracking, getCommonViewMetrics = _b.getCommonViewMetrics;\n var _c = loadingType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */\n ? trackInitialViewMetrics(lifeCycle, configuration, setLoadEvent, scheduleViewUpdate)\n : { stop: noop, initialViewMetrics: {} }, stopInitialViewMetricsTracking = _c.stop, initialViewMetrics = _c.initialViewMetrics;\n var _d = trackViewEventCounts(lifeCycle, id, scheduleViewUpdate), stopEventCountsTracking = _d.stop, eventCounts = _d.eventCounts;\n // Session keep alive\n var keepAliveIntervalId = setInterval(triggerViewUpdate, SESSION_KEEP_ALIVE_INTERVAL);\n // Initial view update\n triggerViewUpdate();\n function triggerViewUpdate() {\n cancelScheduleViewUpdate();\n documentVersion += 1;\n var currentEnd = endClocks === undefined ? timeStampNow() : endClocks.timeStamp;\n lifeCycle.notify(3 /* LifeCycleEventType.VIEW_UPDATED */, {\n customTimings: customTimings,\n documentVersion: documentVersion,\n id: id,\n name: name,\n service: service,\n version: version,\n loadingType: loadingType,\n location: location,\n startClocks: startClocks,\n commonViewMetrics: getCommonViewMetrics(),\n initialViewMetrics: initialViewMetrics,\n duration: elapsed(startClocks.timeStamp, currentEnd),\n isActive: endClocks === undefined,\n sessionIsActive: sessionIsActive,\n eventCounts: eventCounts,\n });\n }\n return {\n name: name,\n service: service,\n version: version,\n stopObservable: stopObservable,\n end: function (options) {\n var _this = this;\n var _a, _b;\n if (options === void 0) { options = {}; }\n if (endClocks) {\n // view already ended\n return;\n }\n endClocks = (_a = options.endClocks) !== null && _a !== void 0 ? _a : clocksNow();\n sessionIsActive = (_b = options.sessionIsActive) !== null && _b !== void 0 ? _b : true;\n lifeCycle.notify(4 /* LifeCycleEventType.VIEW_ENDED */, { endClocks: endClocks });\n clearInterval(keepAliveIntervalId);\n setViewEnd(endClocks.relative);\n stopCommonViewMetricsTracking();\n triggerViewUpdate();\n setTimeout(function () {\n _this.stop();\n }, KEEP_TRACKING_AFTER_VIEW_DELAY);\n },\n stop: function () {\n stopInitialViewMetricsTracking();\n stopEventCountsTracking();\n stopINPTracking();\n stopObservable.notify();\n },\n addTiming: function (name, time) {\n if (endClocks) {\n return;\n }\n var relativeTime = looksLikeRelativeTime(time) ? time : elapsed(startClocks.timeStamp, time);\n customTimings[sanitizeTiming(name)] = relativeTime;\n scheduleViewUpdate();\n },\n };\n}\n/**\n * Timing name is used as facet path that must contain only letters, digits, or the characters - _ . @ $\n */\nfunction sanitizeTiming(name) {\n var sanitized = name.replace(/[^a-zA-Z0-9-_.@$]/g, '_');\n if (sanitized !== name) {\n display.warn(\"Invalid timing name: \".concat(name, \", sanitized to: \").concat(sanitized));\n }\n return sanitized;\n}\nfunction areDifferentLocation(currentLocation, otherLocation) {\n return (currentLocation.pathname !== otherLocation.pathname ||\n (!isHashAnAnchor(otherLocation.hash) &&\n getPathFromHash(otherLocation.hash) !== getPathFromHash(currentLocation.hash)));\n}\nfunction isHashAnAnchor(hash) {\n var correspondingId = hash.substring(1);\n // check if the correspondingId is empty because on Firefox an empty string passed to getElementById() prints a consol warning\n return correspondingId !== '' && !!document.getElementById(correspondingId);\n}\nfunction getPathFromHash(hash) {\n var index = hash.indexOf('?');\n return index < 0 ? hash : hash.slice(0, index);\n}\n//# sourceMappingURL=trackViews.js.map","import { isEmptyObject, mapValues, toServerDuration, isNumber } from '@datadog/browser-core';\nimport { trackViews } from './trackViews';\nexport function startViewCollection(lifeCycle, configuration, location, domMutationObservable, locationChangeObservable, featureFlagContexts, pageStateHistory, recorderApi, initialViewOptions) {\n lifeCycle.subscribe(3 /* LifeCycleEventType.VIEW_UPDATED */, function (view) {\n return lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processViewUpdate(view, configuration, featureFlagContexts, recorderApi, pageStateHistory));\n });\n return trackViews(location, lifeCycle, domMutationObservable, configuration, locationChangeObservable, !configuration.trackViewsManually, initialViewOptions);\n}\nfunction processViewUpdate(view, configuration, featureFlagContexts, recorderApi, pageStateHistory) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n var replayStats = recorderApi.getReplayStats(view.id);\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations(view.startClocks.relative);\n var pageStates = pageStateHistory.findAll(view.startClocks.relative, view.duration);\n var viewEvent = {\n _dd: {\n document_version: view.documentVersion,\n replay_stats: replayStats,\n page_states: pageStates,\n configuration: {\n start_session_replay_recording_manually: configuration.startSessionReplayRecordingManually,\n },\n },\n date: view.startClocks.timeStamp,\n type: \"view\" /* RumEventType.VIEW */,\n view: {\n action: {\n count: view.eventCounts.actionCount,\n },\n frustration: {\n count: view.eventCounts.frustrationCount,\n },\n cumulative_layout_shift: (_a = view.commonViewMetrics.cumulativeLayoutShift) === null || _a === void 0 ? void 0 : _a.value,\n cumulative_layout_shift_target_selector: (_b = view.commonViewMetrics.cumulativeLayoutShift) === null || _b === void 0 ? void 0 : _b.targetSelector,\n first_byte: toServerDuration((_c = view.initialViewMetrics.navigationTimings) === null || _c === void 0 ? void 0 : _c.firstByte),\n dom_complete: toServerDuration((_d = view.initialViewMetrics.navigationTimings) === null || _d === void 0 ? void 0 : _d.domComplete),\n dom_content_loaded: toServerDuration((_e = view.initialViewMetrics.navigationTimings) === null || _e === void 0 ? void 0 : _e.domContentLoaded),\n dom_interactive: toServerDuration((_f = view.initialViewMetrics.navigationTimings) === null || _f === void 0 ? void 0 : _f.domInteractive),\n error: {\n count: view.eventCounts.errorCount,\n },\n first_contentful_paint: toServerDuration(view.initialViewMetrics.firstContentfulPaint),\n first_input_delay: toServerDuration((_g = view.initialViewMetrics.firstInput) === null || _g === void 0 ? void 0 : _g.delay),\n first_input_time: toServerDuration((_h = view.initialViewMetrics.firstInput) === null || _h === void 0 ? void 0 : _h.time),\n first_input_target_selector: (_j = view.initialViewMetrics.firstInput) === null || _j === void 0 ? void 0 : _j.targetSelector,\n interaction_to_next_paint: toServerDuration((_k = view.commonViewMetrics.interactionToNextPaint) === null || _k === void 0 ? void 0 : _k.value),\n interaction_to_next_paint_target_selector: (_l = view.commonViewMetrics.interactionToNextPaint) === null || _l === void 0 ? void 0 : _l.targetSelector,\n is_active: view.isActive,\n name: view.name,\n largest_contentful_paint: toServerDuration((_m = view.initialViewMetrics.largestContentfulPaint) === null || _m === void 0 ? void 0 : _m.value),\n largest_contentful_paint_target_selector: (_o = view.initialViewMetrics.largestContentfulPaint) === null || _o === void 0 ? void 0 : _o.targetSelector,\n load_event: toServerDuration((_p = view.initialViewMetrics.navigationTimings) === null || _p === void 0 ? void 0 : _p.loadEvent),\n loading_time: discardNegativeDuration(toServerDuration(view.commonViewMetrics.loadingTime)),\n loading_type: view.loadingType,\n long_task: {\n count: view.eventCounts.longTaskCount,\n },\n resource: {\n count: view.eventCounts.resourceCount,\n },\n time_spent: toServerDuration(view.duration),\n },\n feature_flags: featureFlagContext && !isEmptyObject(featureFlagContext) ? featureFlagContext : undefined,\n display: view.commonViewMetrics.scroll\n ? {\n scroll: {\n max_depth: view.commonViewMetrics.scroll.maxDepth,\n max_depth_scroll_top: view.commonViewMetrics.scroll.maxDepthScrollTop,\n max_scroll_height: view.commonViewMetrics.scroll.maxScrollHeight,\n max_scroll_height_time: toServerDuration(view.commonViewMetrics.scroll.maxScrollHeightTime),\n },\n }\n : undefined,\n session: {\n has_replay: replayStats ? true : undefined,\n is_active: view.sessionIsActive ? undefined : false,\n },\n privacy: {\n replay_level: configuration.defaultPrivacyLevel,\n },\n };\n if (!isEmptyObject(view.customTimings)) {\n viewEvent.view.custom_timings = mapValues(view.customTimings, toServerDuration);\n }\n return {\n rawRumEvent: viewEvent,\n startTime: view.startClocks.relative,\n domainContext: {\n location: view.location,\n },\n };\n}\nfunction discardNegativeDuration(duration) {\n return isNumber(duration) && duration < 0 ? undefined : duration;\n}\n//# sourceMappingURL=viewCollection.js.map","import { ValueHistory } from '../../tools/valueHistory';\nimport { relativeNow, clocksOrigin, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { DOM_EVENT, addEventListener, addEventListeners } from '../../browser/addEventListener';\nimport { clearInterval, setInterval } from '../../tools/timer';\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { startSessionStore } from './sessionStore';\nexport var VISIBILITY_CHECK_DELAY = ONE_MINUTE;\nvar SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY;\nvar stopCallbacks = [];\nexport function startSessionManager(configuration, productKey, computeSessionState) {\n // TODO - Improve configuration type and remove assertion\n var sessionStore = startSessionStore(configuration.sessionStoreStrategyType, productKey, computeSessionState);\n stopCallbacks.push(function () { return sessionStore.stop(); });\n var sessionContextHistory = new ValueHistory(SESSION_CONTEXT_TIMEOUT_DELAY);\n stopCallbacks.push(function () { return sessionContextHistory.stop(); });\n sessionStore.renewObservable.subscribe(function () {\n sessionContextHistory.add(buildSessionContext(), relativeNow());\n });\n sessionStore.expireObservable.subscribe(function () {\n sessionContextHistory.closeActive(relativeNow());\n });\n sessionStore.expandOrRenewSession();\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative);\n trackActivity(configuration, function () { return sessionStore.expandOrRenewSession(); });\n trackVisibility(configuration, function () { return sessionStore.expandSession(); });\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey],\n };\n }\n return {\n findActiveSession: function (startTime) { return sessionContextHistory.find(startTime); },\n renewObservable: sessionStore.renewObservable,\n expireObservable: sessionStore.expireObservable,\n expire: sessionStore.expire,\n };\n}\nexport function stopSessionManager() {\n stopCallbacks.forEach(function (e) { return e(); });\n stopCallbacks = [];\n}\nfunction trackActivity(configuration, expandOrRenewSession) {\n var stop = addEventListeners(configuration, window, [DOM_EVENT.CLICK, DOM_EVENT.TOUCH_START, DOM_EVENT.KEY_DOWN, DOM_EVENT.SCROLL], expandOrRenewSession, { capture: true, passive: true }).stop;\n stopCallbacks.push(stop);\n}\nfunction trackVisibility(configuration, expandSession) {\n var expandSessionWhenVisible = function () {\n if (document.visibilityState === 'visible') {\n expandSession();\n }\n };\n var stop = addEventListener(configuration, document, DOM_EVENT.VISIBILITY_CHANGE, expandSessionWhenVisible).stop;\n stopCallbacks.push(stop);\n var visibilityCheckInterval = setInterval(expandSessionWhenVisible, VISIBILITY_CHECK_DELAY);\n stopCallbacks.push(function () {\n clearInterval(visibilityCheckInterval);\n });\n}\n//# sourceMappingURL=sessionManager.js.map","import { Observable, noop, performDraw, startSessionManager } from '@datadog/browser-core';\nexport var RUM_SESSION_KEY = 'rum';\nexport function startRumSessionManager(configuration, lifeCycle) {\n var sessionManager = startSessionManager(configuration, RUM_SESSION_KEY, function (rawTrackingType) {\n return computeSessionState(configuration, rawTrackingType);\n });\n sessionManager.expireObservable.subscribe(function () {\n lifeCycle.notify(7 /* LifeCycleEventType.SESSION_EXPIRED */);\n });\n sessionManager.renewObservable.subscribe(function () {\n lifeCycle.notify(8 /* LifeCycleEventType.SESSION_RENEWED */);\n });\n return {\n findTrackedSession: function (startTime) {\n var session = sessionManager.findActiveSession(startTime);\n if (!session || !isTypeTracked(session.trackingType)) {\n return;\n }\n return {\n id: session.id,\n sessionReplayAllowed: session.trackingType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */,\n };\n },\n expire: sessionManager.expire,\n expireObservable: sessionManager.expireObservable,\n };\n}\n/**\n * Start a tracked replay session stub\n */\nexport function startRumSessionManagerStub() {\n var session = {\n id: '00000000-aaaa-0000-aaaa-000000000000',\n sessionReplayAllowed: false,\n };\n return {\n findTrackedSession: function () { return session; },\n expire: noop,\n expireObservable: new Observable(),\n };\n}\nfunction computeSessionState(configuration, rawTrackingType) {\n var trackingType;\n if (hasValidRumSession(rawTrackingType)) {\n trackingType = rawTrackingType;\n }\n else if (!performDraw(configuration.sessionSampleRate)) {\n trackingType = \"0\" /* RumTrackingType.NOT_TRACKED */;\n }\n else if (!performDraw(configuration.sessionReplaySampleRate)) {\n trackingType = \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */;\n }\n else {\n trackingType = \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */;\n }\n return {\n trackingType: trackingType,\n isTracked: isTypeTracked(trackingType),\n };\n}\nfunction hasValidRumSession(trackingType) {\n return (trackingType === \"0\" /* RumTrackingType.NOT_TRACKED */ ||\n trackingType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */ ||\n trackingType === \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */);\n}\nfunction isTypeTracked(rumSessionType) {\n return (rumSessionType === \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */ ||\n rumSessionType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */);\n}\n//# sourceMappingURL=rumSessionManager.js.map","import { display } from '../tools/display';\nimport { objectValues } from '../tools/utils/polyfills';\nimport { isPageExitReason } from '../browser/pageExitObservable';\nimport { jsonStringify } from '../tools/serialisation/jsonStringify';\nimport { computeBytesCount } from '../tools/utils/byteUtils';\nvar Batch = /** @class */ (function () {\n function Batch(encoder, request, flushController, messageBytesLimit) {\n var _this = this;\n this.encoder = encoder;\n this.request = request;\n this.flushController = flushController;\n this.messageBytesLimit = messageBytesLimit;\n this.upsertBuffer = {};\n this.flushSubscription = this.flushController.flushObservable.subscribe(function (event) { return _this.flush(event); });\n }\n Batch.prototype.add = function (message) {\n this.addOrUpdate(message);\n };\n Batch.prototype.upsert = function (message, key) {\n this.addOrUpdate(message, key);\n };\n Batch.prototype.stop = function () {\n this.flushSubscription.unsubscribe();\n };\n Batch.prototype.flush = function (event) {\n var upsertMessages = objectValues(this.upsertBuffer).join('\\n');\n this.upsertBuffer = {};\n var isPageExit = isPageExitReason(event.reason);\n var send = isPageExit ? this.request.sendOnExit : this.request.send;\n if (isPageExit &&\n // Note: checking that the encoder is async is not strictly needed, but it's an optimization:\n // if the encoder is async we need to send two requests in some cases (one for encoded data\n // and the other for non-encoded data). But if it's not async, we don't have to worry about\n // it and always send a single request.\n this.encoder.isAsync) {\n var encoderResult = this.encoder.finishSync();\n // Send encoded messages\n if (encoderResult.outputBytesCount) {\n send(formatPayloadFromEncoder(encoderResult, event));\n }\n // Send messages that are not yet encoded at this point\n var pendingMessages = [encoderResult.pendingData, upsertMessages].filter(Boolean).join('\\n');\n if (pendingMessages) {\n send({\n data: pendingMessages,\n bytesCount: computeBytesCount(pendingMessages),\n flushReason: event.reason,\n });\n }\n }\n else {\n if (upsertMessages) {\n this.encoder.write(this.encoder.isEmpty ? upsertMessages : \"\\n\".concat(upsertMessages));\n }\n this.encoder.finish(function (encoderResult) {\n send(formatPayloadFromEncoder(encoderResult, event));\n });\n }\n };\n Batch.prototype.addOrUpdate = function (message, key) {\n var serializedMessage = jsonStringify(message);\n var estimatedMessageBytesCount = this.encoder.estimateEncodedBytesCount(serializedMessage);\n if (estimatedMessageBytesCount >= this.messageBytesLimit) {\n display.warn(\"Discarded a message whose size was bigger than the maximum allowed size \".concat(this.messageBytesLimit, \"KB.\"));\n return;\n }\n if (this.hasMessageFor(key)) {\n this.remove(key);\n }\n this.push(serializedMessage, estimatedMessageBytesCount, key);\n };\n Batch.prototype.push = function (serializedMessage, estimatedMessageBytesCount, key) {\n var _this = this;\n this.flushController.notifyBeforeAddMessage(estimatedMessageBytesCount);\n if (key !== undefined) {\n this.upsertBuffer[key] = serializedMessage;\n this.flushController.notifyAfterAddMessage();\n }\n else {\n this.encoder.write(this.encoder.isEmpty ? serializedMessage : \"\\n\".concat(serializedMessage), function (realMessageBytesCount) {\n _this.flushController.notifyAfterAddMessage(realMessageBytesCount - estimatedMessageBytesCount);\n });\n }\n };\n Batch.prototype.remove = function (key) {\n var removedMessage = this.upsertBuffer[key];\n delete this.upsertBuffer[key];\n var messageBytesCount = this.encoder.estimateEncodedBytesCount(removedMessage);\n this.flushController.notifyAfterRemoveMessage(messageBytesCount);\n };\n Batch.prototype.hasMessageFor = function (key) {\n return key !== undefined && this.upsertBuffer[key] !== undefined;\n };\n return Batch;\n}());\nexport { Batch };\nfunction formatPayloadFromEncoder(encoderResult, flushEvent) {\n var data;\n if (typeof encoderResult.output === 'string') {\n data = encoderResult.output;\n }\n else {\n data = new Blob([encoderResult.output], {\n // This will set the 'Content-Type: text/plain' header. Reasoning:\n // * The intake rejects the request if there is no content type.\n // * The browser will issue CORS preflight requests if we set it to 'application/json', which\n // could induce higher intake load (and maybe has other impacts).\n // * Also it's not quite JSON, since we are concatenating multiple JSON objects separated by\n // new lines.\n type: 'text/plain',\n });\n }\n return {\n data: data,\n bytesCount: encoderResult.outputBytesCount,\n encoding: encoderResult.encoding,\n flushReason: flushEvent.reason,\n };\n}\n//# sourceMappingURL=batch.js.map","import { setTimeout } from '../tools/timer';\nimport { clocksNow, ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { ONE_MEBI_BYTE, ONE_KIBI_BYTE } from '../tools/utils/byteUtils';\nimport { isServerError } from '../tools/utils/responseUtils';\nimport { ErrorSource } from '../domain/error/error.types';\nexport var MAX_ONGOING_BYTES_COUNT = 80 * ONE_KIBI_BYTE;\nexport var MAX_ONGOING_REQUESTS = 32;\nexport var MAX_QUEUE_BYTES_COUNT = 3 * ONE_MEBI_BYTE;\nexport var MAX_BACKOFF_TIME = ONE_MINUTE;\nexport var INITIAL_BACKOFF_TIME = ONE_SECOND;\nexport function sendWithRetryStrategy(payload, state, sendStrategy, trackType, reportError) {\n if (state.transportStatus === 0 /* TransportStatus.UP */ &&\n state.queuedPayloads.size() === 0 &&\n state.bandwidthMonitor.canHandle(payload)) {\n send(payload, state, sendStrategy, {\n onSuccess: function () { return retryQueuedPayloads(0 /* RetryReason.AFTER_SUCCESS */, state, sendStrategy, trackType, reportError); },\n onFailure: function () {\n state.queuedPayloads.enqueue(payload);\n scheduleRetry(state, sendStrategy, trackType, reportError);\n },\n });\n }\n else {\n state.queuedPayloads.enqueue(payload);\n }\n}\nfunction scheduleRetry(state, sendStrategy, trackType, reportError) {\n if (state.transportStatus !== 2 /* TransportStatus.DOWN */) {\n return;\n }\n setTimeout(function () {\n var payload = state.queuedPayloads.first();\n send(payload, state, sendStrategy, {\n onSuccess: function () {\n state.queuedPayloads.dequeue();\n state.currentBackoffTime = INITIAL_BACKOFF_TIME;\n retryQueuedPayloads(1 /* RetryReason.AFTER_RESUME */, state, sendStrategy, trackType, reportError);\n },\n onFailure: function () {\n state.currentBackoffTime = Math.min(MAX_BACKOFF_TIME, state.currentBackoffTime * 2);\n scheduleRetry(state, sendStrategy, trackType, reportError);\n },\n });\n }, state.currentBackoffTime);\n}\nfunction send(payload, state, sendStrategy, _a) {\n var onSuccess = _a.onSuccess, onFailure = _a.onFailure;\n state.bandwidthMonitor.add(payload);\n sendStrategy(payload, function (response) {\n state.bandwidthMonitor.remove(payload);\n if (!shouldRetryRequest(response)) {\n state.transportStatus = 0 /* TransportStatus.UP */;\n onSuccess();\n }\n else {\n // do not consider transport down if another ongoing request could succeed\n state.transportStatus =\n state.bandwidthMonitor.ongoingRequestCount > 0 ? 1 /* TransportStatus.FAILURE_DETECTED */ : 2 /* TransportStatus.DOWN */;\n payload.retry = {\n count: payload.retry ? payload.retry.count + 1 : 1,\n lastFailureStatus: response.status,\n };\n onFailure();\n }\n });\n}\nfunction retryQueuedPayloads(reason, state, sendStrategy, trackType, reportError) {\n if (reason === 0 /* RetryReason.AFTER_SUCCESS */ && state.queuedPayloads.isFull() && !state.queueFullReported) {\n reportError({\n message: \"Reached max \".concat(trackType, \" events size queued for upload: \").concat(MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE, \"MiB\"),\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n state.queueFullReported = true;\n }\n var previousQueue = state.queuedPayloads;\n state.queuedPayloads = newPayloadQueue();\n while (previousQueue.size() > 0) {\n sendWithRetryStrategy(previousQueue.dequeue(), state, sendStrategy, trackType, reportError);\n }\n}\nfunction shouldRetryRequest(response) {\n return (response.type !== 'opaque' &&\n ((response.status === 0 && !navigator.onLine) ||\n response.status === 408 ||\n response.status === 429 ||\n isServerError(response.status)));\n}\nexport function newRetryState() {\n return {\n transportStatus: 0 /* TransportStatus.UP */,\n currentBackoffTime: INITIAL_BACKOFF_TIME,\n bandwidthMonitor: newBandwidthMonitor(),\n queuedPayloads: newPayloadQueue(),\n queueFullReported: false,\n };\n}\nfunction newPayloadQueue() {\n var queue = [];\n return {\n bytesCount: 0,\n enqueue: function (payload) {\n if (this.isFull()) {\n return;\n }\n queue.push(payload);\n this.bytesCount += payload.bytesCount;\n },\n first: function () {\n return queue[0];\n },\n dequeue: function () {\n var payload = queue.shift();\n if (payload) {\n this.bytesCount -= payload.bytesCount;\n }\n return payload;\n },\n size: function () {\n return queue.length;\n },\n isFull: function () {\n return this.bytesCount >= MAX_QUEUE_BYTES_COUNT;\n },\n };\n}\nfunction newBandwidthMonitor() {\n return {\n ongoingRequestCount: 0,\n ongoingByteCount: 0,\n canHandle: function (payload) {\n return (this.ongoingRequestCount === 0 ||\n (this.ongoingByteCount + payload.bytesCount <= MAX_ONGOING_BYTES_COUNT &&\n this.ongoingRequestCount < MAX_ONGOING_REQUESTS));\n },\n add: function (payload) {\n this.ongoingRequestCount += 1;\n this.ongoingByteCount += payload.bytesCount;\n },\n remove: function (payload) {\n this.ongoingRequestCount -= 1;\n this.ongoingByteCount -= payload.bytesCount;\n },\n };\n}\n//# sourceMappingURL=sendWithRetryStrategy.js.map","import { addTelemetryError } from '../domain/telemetry';\nimport { monitor } from '../tools/monitor';\nimport { addEventListener } from '../browser/addEventListener';\nimport { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy';\nexport function createHttpRequest(configuration, endpointBuilder, bytesLimit, reportError) {\n var retryState = newRetryState();\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(configuration, endpointBuilder, bytesLimit, payload, onResponse);\n };\n return {\n send: function (payload) {\n sendWithRetryStrategy(payload, retryState, sendStrategyForRetry, endpointBuilder.trackType, reportError);\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, payload);\n },\n };\n}\nfunction sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, payload) {\n var canUseBeacon = !!navigator.sendBeacon && payload.bytesCount < bytesLimit;\n if (canUseBeacon) {\n try {\n var beaconUrl = endpointBuilder.build('beacon', payload);\n var isQueued = navigator.sendBeacon(beaconUrl, payload.data);\n if (isQueued) {\n return;\n }\n }\n catch (e) {\n reportBeaconError(e);\n }\n }\n var xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(configuration, xhrUrl, payload.data);\n}\nvar hasReportedBeaconError = false;\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true;\n addTelemetryError(e);\n }\n}\nexport function fetchKeepAliveStrategy(configuration, endpointBuilder, bytesLimit, payload, onResponse) {\n var canUseKeepAlive = isKeepAliveSupported() && payload.bytesCount < bytesLimit;\n if (canUseKeepAlive) {\n var fetchUrl = endpointBuilder.build('fetch', payload);\n fetch(fetchUrl, { method: 'POST', body: payload.data, keepalive: true, mode: 'cors' }).then(monitor(function (response) { return onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: response.status, type: response.type }); }), monitor(function () {\n var xhrUrl = endpointBuilder.build('xhr', payload);\n // failed to queue the request\n sendXHR(configuration, xhrUrl, payload.data, onResponse);\n }));\n }\n else {\n var xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(configuration, xhrUrl, payload.data, onResponse);\n }\n}\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a');\n }\n catch (_a) {\n return false;\n }\n}\nexport function sendXHR(configuration, url, data, onResponse) {\n var request = new XMLHttpRequest();\n request.open('POST', url, true);\n if (data instanceof Blob) {\n // When using a Blob instance, IE does not use its 'type' to define the 'Content-Type' header\n // automatically, so the intake request ends up being rejected with an HTTP status 415\n // Defining the header manually fixes this issue.\n request.setRequestHeader('Content-Type', data.type);\n }\n addEventListener(configuration, request, 'loadend', function () {\n onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: request.status });\n }, {\n // prevent multiple onResponse callbacks\n // if the xhr instance is reused by a third party\n once: true,\n });\n request.send(data);\n}\n//# sourceMappingURL=httpRequest.js.map","import { Observable } from '../tools/observable';\nimport { clearTimeout, setTimeout } from '../tools/timer';\n/**\n * Returns a \"flush controller\", responsible of notifying when flushing a pool of pending data needs\n * to happen. The implementation is designed to support both synchronous and asynchronous usages,\n * but relies on invariants described in each method documentation to keep a coherent state.\n */\nexport function createFlushController(_a) {\n var messagesLimit = _a.messagesLimit, bytesLimit = _a.bytesLimit, durationLimit = _a.durationLimit, pageExitObservable = _a.pageExitObservable, sessionExpireObservable = _a.sessionExpireObservable;\n var pageExitSubscription = pageExitObservable.subscribe(function (event) { return flush(event.reason); });\n var sessionExpireSubscription = sessionExpireObservable.subscribe(function () { return flush('session_expire'); });\n var flushObservable = new Observable(function () { return function () {\n pageExitSubscription.unsubscribe();\n sessionExpireSubscription.unsubscribe();\n }; });\n var currentBytesCount = 0;\n var currentMessagesCount = 0;\n function flush(flushReason) {\n if (currentMessagesCount === 0) {\n return;\n }\n var messagesCount = currentMessagesCount;\n var bytesCount = currentBytesCount;\n currentMessagesCount = 0;\n currentBytesCount = 0;\n cancelDurationLimitTimeout();\n flushObservable.notify({\n reason: flushReason,\n messagesCount: messagesCount,\n bytesCount: bytesCount,\n });\n }\n var durationLimitTimeoutId;\n function scheduleDurationLimitTimeout() {\n if (durationLimitTimeoutId === undefined) {\n durationLimitTimeoutId = setTimeout(function () {\n flush('duration_limit');\n }, durationLimit);\n }\n }\n function cancelDurationLimitTimeout() {\n clearTimeout(durationLimitTimeoutId);\n durationLimitTimeoutId = undefined;\n }\n return {\n flushObservable: flushObservable,\n get messagesCount() {\n return currentMessagesCount;\n },\n /**\n * Notifies that a message will be added to a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right before adding the message, so no flush\n * event can happen after `notifyBeforeAddMessage` and before adding the message.\n *\n * @param estimatedMessageBytesCount: an estimation of the message bytes count once it is\n * actually added.\n */\n notifyBeforeAddMessage: function (estimatedMessageBytesCount) {\n if (currentBytesCount + estimatedMessageBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n // Consider the message to be added now rather than in `notifyAfterAddMessage`, because if no\n // message was added yet and `notifyAfterAddMessage` is called asynchronously, we still want\n // to notify when a flush is needed (for example on page exit).\n currentMessagesCount += 1;\n currentBytesCount += estimatedMessageBytesCount;\n scheduleDurationLimitTimeout();\n },\n /**\n * Notifies that a message *was* added to a pool of pending messages waiting to be flushed.\n *\n * This function can be called asynchronously after the message was added, but in this case it\n * should not be called if a flush event occurred in between.\n *\n * @param messageBytesCountDiff: the difference between the estimated message bytes count and\n * its actual bytes count once added to the pool.\n */\n notifyAfterAddMessage: function (messageBytesCountDiff) {\n if (messageBytesCountDiff === void 0) { messageBytesCountDiff = 0; }\n currentBytesCount += messageBytesCountDiff;\n if (currentMessagesCount >= messagesLimit) {\n flush('messages_limit');\n }\n else if (currentBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n },\n /**\n * Notifies that a message was removed from a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right after removing the message, so no flush\n * event can happen after removing the message and before `notifyAfterRemoveMessage`.\n *\n * @param messageBytesCount: the message bytes count that was added to the pool. Should\n * correspond to the sum of bytes counts passed to `notifyBeforeAddMessage` and\n * `notifyAfterAddMessage`.\n */\n notifyAfterRemoveMessage: function (messageBytesCount) {\n currentBytesCount -= messageBytesCount;\n currentMessagesCount -= 1;\n if (currentMessagesCount === 0) {\n cancelDurationLimitTimeout();\n }\n },\n };\n}\n//# sourceMappingURL=flushController.js.map","import { Batch } from './batch';\nimport { createHttpRequest } from './httpRequest';\nimport { createFlushController } from './flushController';\nexport function startBatchWithReplica(configuration, primary, replica, reportError, pageExitObservable, sessionExpireObservable) {\n var primaryBatch = createBatch(configuration, primary);\n var replicaBatch = replica && createBatch(configuration, replica);\n function createBatch(configuration, _a) {\n var endpoint = _a.endpoint, encoder = _a.encoder;\n return new Batch(encoder, createHttpRequest(configuration, endpoint, configuration.batchBytesLimit, reportError), createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable: pageExitObservable,\n sessionExpireObservable: sessionExpireObservable,\n }), configuration.messageBytesLimit);\n }\n return {\n flushObservable: primaryBatch.flushController.flushObservable,\n add: function (message, replicated) {\n if (replicated === void 0) { replicated = true; }\n primaryBatch.add(message);\n if (replicaBatch && replicated) {\n replicaBatch.add(replica.transformMessage ? replica.transformMessage(message) : message);\n }\n },\n upsert: function (message, key) {\n primaryBatch.upsert(message, key);\n if (replicaBatch) {\n replicaBatch.upsert(replica.transformMessage ? replica.transformMessage(message) : message, key);\n }\n },\n stop: function () {\n primaryBatch.stop();\n replicaBatch === null || replicaBatch === void 0 ? void 0 : replicaBatch.stop();\n },\n };\n}\n//# sourceMappingURL=startBatchWithReplica.js.map","import { combine, isTelemetryReplicationAllowed, startBatchWithReplica, } from '@datadog/browser-core';\nexport function startRumBatch(configuration, lifeCycle, telemetryEventObservable, reportError, pageExitObservable, sessionExpireObservable, createEncoder) {\n var replica = configuration.replica;\n var batch = startBatchWithReplica(configuration, {\n endpoint: configuration.rumEndpointBuilder,\n encoder: createEncoder(2 /* DeflateEncoderStreamId.RUM */),\n }, replica && {\n endpoint: replica.rumEndpointBuilder,\n transformMessage: function (message) { return combine(message, { application: { id: replica.applicationId } }); },\n encoder: createEncoder(3 /* DeflateEncoderStreamId.RUM_REPLICA */),\n }, reportError, pageExitObservable, sessionExpireObservable);\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (serverRumEvent) {\n if (serverRumEvent.type === \"view\" /* RumEventType.VIEW */) {\n batch.upsert(serverRumEvent, serverRumEvent.view.id);\n }\n else {\n batch.add(serverRumEvent);\n }\n });\n telemetryEventObservable.subscribe(function (event) { return batch.add(event, isTelemetryReplicationAllowed(configuration)); });\n return batch;\n}\n//# sourceMappingURL=startRumBatch.js.map","import { getEventBridge } from '@datadog/browser-core';\nexport function startRumEventBridge(lifeCycle) {\n var bridge = getEventBridge();\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (serverRumEvent) {\n bridge.send('rum', serverRumEvent);\n });\n}\n//# sourceMappingURL=startRumEventBridge.js.map","import { SESSION_TIME_OUT_DELAY, relativeNow, ValueHistory } from '@datadog/browser-core';\n/**\n * We want to attach to an event:\n * - the url corresponding to its start\n * - the referrer corresponding to the previous view url (or document referrer for initial view)\n */\nexport var URL_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startUrlContexts(lifeCycle, locationChangeObservable, location) {\n var urlContextHistory = new ValueHistory(URL_CONTEXT_TIME_OUT_DELAY);\n var previousViewUrl;\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n urlContextHistory.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (_a) {\n var startClocks = _a.startClocks;\n var viewUrl = location.href;\n urlContextHistory.add(buildUrlContext({\n url: viewUrl,\n referrer: !previousViewUrl ? document.referrer : previousViewUrl,\n }), startClocks.relative);\n previousViewUrl = viewUrl;\n });\n var locationChangeSubscription = locationChangeObservable.subscribe(function (_a) {\n var newLocation = _a.newLocation;\n var current = urlContextHistory.find();\n if (current) {\n var changeTime = relativeNow();\n urlContextHistory.closeActive(changeTime);\n urlContextHistory.add(buildUrlContext({\n url: newLocation.href,\n referrer: current.referrer,\n }), changeTime);\n }\n });\n function buildUrlContext(_a) {\n var url = _a.url, referrer = _a.referrer;\n return {\n url: url,\n referrer: referrer,\n };\n }\n return {\n findUrl: function (startTime) { return urlContextHistory.find(startTime); },\n stop: function () {\n locationChangeSubscription.unsubscribe();\n urlContextHistory.stop();\n },\n };\n}\n//# sourceMappingURL=urlContexts.js.map","import { addEventListener, DOM_EVENT, instrumentMethodAndCallOriginal, Observable, shallowClone, } from '@datadog/browser-core';\nexport function createLocationChangeObservable(configuration, location) {\n var currentLocation = shallowClone(location);\n var observable = new Observable(function () {\n var stopHistoryTracking = trackHistory(configuration, onLocationChange).stop;\n var stopHashTracking = trackHash(configuration, onLocationChange).stop;\n return function () {\n stopHistoryTracking();\n stopHashTracking();\n };\n });\n function onLocationChange() {\n if (currentLocation.href === location.href) {\n return;\n }\n var newLocation = shallowClone(location);\n observable.notify({\n newLocation: newLocation,\n oldLocation: currentLocation,\n });\n currentLocation = newLocation;\n }\n return observable;\n}\nfunction trackHistory(configuration, onHistoryChange) {\n var stopInstrumentingPushState = instrumentMethodAndCallOriginal(history, 'pushState', {\n after: onHistoryChange,\n }).stop;\n var stopInstrumentingReplaceState = instrumentMethodAndCallOriginal(history, 'replaceState', {\n after: onHistoryChange,\n }).stop;\n var removeListener = addEventListener(configuration, window, DOM_EVENT.POP_STATE, onHistoryChange).stop;\n return {\n stop: function () {\n stopInstrumentingPushState();\n stopInstrumentingReplaceState();\n removeListener();\n },\n };\n}\nfunction trackHash(configuration, onHashChange) {\n return addEventListener(configuration, window, DOM_EVENT.HASH_CHANGE, onHashChange);\n}\n//# sourceMappingURL=locationChangeObservable.js.map","import { warnIfCustomerDataLimitReached, throttle, jsonStringify, computeBytesCount, noop, isExperimentalFeatureEnabled, SESSION_TIME_OUT_DELAY, ValueHistory, ExperimentalFeature, } from '@datadog/browser-core';\nexport var FEATURE_FLAG_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200;\n/**\n * Start feature flag contexts\n *\n * Feature flag contexts follow the life of views.\n * A new context is added when a view is created and ended when the view is ended\n *\n * Note: we choose not to add a new context at each evaluation to save memory\n */\nexport function startFeatureFlagContexts(lifeCycle, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.FEATURE_FLAGS)) {\n return {\n findFeatureFlagEvaluations: function () { return undefined; },\n getFeatureFlagBytesCount: function () { return 0; },\n addFeatureFlagEvaluation: noop,\n stop: noop,\n };\n }\n var featureFlagContexts = new ValueHistory(FEATURE_FLAG_CONTEXT_TIME_OUT_DELAY);\n var bytesCountCache = 0;\n var alreadyWarned = false;\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n featureFlagContexts.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (_a) {\n var startClocks = _a.startClocks;\n featureFlagContexts.add({}, startClocks.relative);\n bytesCountCache = 0;\n });\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call addFeatureFlagEvaluation API synchronously multiple times in a row\n var _a = throttle(function (context) {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context));\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(bytesCountCache, 0 /* CustomerDataType.FeatureFlag */);\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY), computeBytesCountThrottled = _a.throttled, cancelPendingComputation = _a.cancel;\n return {\n findFeatureFlagEvaluations: function (startTime) { return featureFlagContexts.find(startTime); },\n getFeatureFlagBytesCount: function () {\n var currentContext = featureFlagContexts.find();\n if (!currentContext) {\n return 0;\n }\n return bytesCountCache;\n },\n addFeatureFlagEvaluation: function (key, value) {\n var currentContext = featureFlagContexts.find();\n if (currentContext) {\n currentContext[key] = value;\n computeBytesCountThrottled(currentContext);\n }\n },\n stop: cancelPendingComputation,\n };\n}\n//# sourceMappingURL=featureFlagContext.js.map","import { isEmptyObject, includes, performDraw, ONE_SECOND, addTelemetryDebug, setInterval } from '@datadog/browser-core';\nexport var MEASURES_PERIOD_DURATION = 10 * ONE_SECOND;\nvar currentPeriodMeasures;\nvar currentBatchMeasures;\nvar batchHasRumEvent;\nexport function startCustomerDataTelemetry(configuration, telemetry, lifeCycle, globalContextManager, userContextManager, featureFlagContexts, batchFlushObservable) {\n var customerDataTelemetryEnabled = telemetry.enabled && performDraw(configuration.customerDataTelemetrySampleRate);\n if (!customerDataTelemetryEnabled) {\n return;\n }\n initCurrentPeriodMeasures();\n initCurrentBatchMeasures();\n // We measure the data of every view updates even if there could only be one per batch due to the upsert\n // It means that contexts bytes count sums can be higher than it really is\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) {\n batchHasRumEvent = true;\n updateMeasure(currentBatchMeasures.globalContextBytes, !isEmptyObject(globalContextManager.getContext()) ? globalContextManager.getBytesCount() : 0);\n updateMeasure(currentBatchMeasures.userContextBytes, !isEmptyObject(userContextManager.getContext()) ? userContextManager.getBytesCount() : 0);\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations();\n var hasFeatureFlagContext = includes([\"view\" /* RumEventType.VIEW */, \"error\" /* RumEventType.ERROR */], event.type) &&\n featureFlagContext &&\n !isEmptyObject(featureFlagContext);\n updateMeasure(currentBatchMeasures.featureFlagBytes, hasFeatureFlagContext ? featureFlagContexts.getFeatureFlagBytesCount() : 0);\n });\n batchFlushObservable.subscribe(function (_a) {\n var bytesCount = _a.bytesCount, messagesCount = _a.messagesCount;\n // Don't measure batch that only contains telemetry events to avoid batch sending loop\n // It could happen because after each batch we are adding a customer data measures telemetry event to the next one\n if (!batchHasRumEvent) {\n return;\n }\n currentPeriodMeasures.batchCount += 1;\n updateMeasure(currentPeriodMeasures.batchBytesCount, bytesCount);\n updateMeasure(currentPeriodMeasures.batchMessagesCount, messagesCount);\n mergeMeasure(currentPeriodMeasures.globalContextBytes, currentBatchMeasures.globalContextBytes);\n mergeMeasure(currentPeriodMeasures.userContextBytes, currentBatchMeasures.userContextBytes);\n mergeMeasure(currentPeriodMeasures.featureFlagBytes, currentBatchMeasures.featureFlagBytes);\n initCurrentBatchMeasures();\n });\n setInterval(sendCurrentPeriodMeasures, MEASURES_PERIOD_DURATION);\n}\nfunction sendCurrentPeriodMeasures() {\n if (currentPeriodMeasures.batchCount === 0) {\n return;\n }\n addTelemetryDebug('Customer data measures', currentPeriodMeasures);\n initCurrentPeriodMeasures();\n}\nfunction createMeasure() {\n return { min: Infinity, max: 0, sum: 0 };\n}\nfunction updateMeasure(measure, value) {\n measure.sum += value;\n measure.min = Math.min(measure.min, value);\n measure.max = Math.max(measure.max, value);\n}\nfunction mergeMeasure(target, source) {\n target.sum += source.sum;\n target.min = Math.min(target.min, source.min);\n target.max = Math.max(target.max, source.max);\n}\nfunction initCurrentPeriodMeasures() {\n currentPeriodMeasures = {\n batchCount: 0,\n batchBytesCount: createMeasure(),\n batchMessagesCount: createMeasure(),\n globalContextBytes: createMeasure(),\n userContextBytes: createMeasure(),\n featureFlagBytes: createMeasure(),\n };\n}\nfunction initCurrentBatchMeasures() {\n batchHasRumEvent = false;\n currentBatchMeasures = {\n globalContextBytes: createMeasure(),\n userContextBytes: createMeasure(),\n featureFlagBytes: createMeasure(),\n };\n}\n//# sourceMappingURL=startCustomerDataTelemetry.js.map","import { elapsed, ValueHistory, SESSION_TIME_OUT_DELAY, toServerDuration, addEventListeners, relativeNow, DOM_EVENT, } from '@datadog/browser-core';\n// Arbitrary value to cap number of element for memory consumption in the browser\nexport var MAX_PAGE_STATE_ENTRIES = 4000;\n// Arbitrary value to cap number of element for backend & to save bandwidth\nexport var MAX_PAGE_STATE_ENTRIES_SELECTABLE = 500;\nexport var PAGE_STATE_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startPageStateHistory(configuration, maxPageStateEntriesSelectable) {\n if (maxPageStateEntriesSelectable === void 0) { maxPageStateEntriesSelectable = MAX_PAGE_STATE_ENTRIES_SELECTABLE; }\n var pageStateHistory = new ValueHistory(PAGE_STATE_CONTEXT_TIME_OUT_DELAY, MAX_PAGE_STATE_ENTRIES);\n var currentPageState;\n addPageState(getPageState(), relativeNow());\n var stopEventListeners = addEventListeners(configuration, window, [\n DOM_EVENT.PAGE_SHOW,\n DOM_EVENT.FOCUS,\n DOM_EVENT.BLUR,\n DOM_EVENT.VISIBILITY_CHANGE,\n DOM_EVENT.RESUME,\n DOM_EVENT.FREEZE,\n DOM_EVENT.PAGE_HIDE,\n ], function (event) {\n addPageState(computePageState(event), event.timeStamp);\n }, { capture: true }).stop;\n function addPageState(nextPageState, startTime) {\n if (startTime === void 0) { startTime = relativeNow(); }\n if (nextPageState === currentPageState) {\n return;\n }\n currentPageState = nextPageState;\n pageStateHistory.closeActive(startTime);\n pageStateHistory.add({ state: currentPageState, startTime: startTime }, startTime);\n }\n return {\n findAll: function (eventStartTime, duration) {\n var pageStateEntries = pageStateHistory.findAll(eventStartTime, duration);\n if (pageStateEntries.length === 0) {\n return;\n }\n var pageStateServerEntries = [];\n // limit the number of entries to return\n var limit = Math.max(0, pageStateEntries.length - maxPageStateEntriesSelectable);\n // loop page state entries backward to return the selected ones in desc order\n for (var index = pageStateEntries.length - 1; index >= limit; index--) {\n var pageState = pageStateEntries[index];\n // compute the start time relative to the event start time (ex: to be relative to the view start time)\n var relativeStartTime = elapsed(eventStartTime, pageState.startTime);\n pageStateServerEntries.push({\n state: pageState.state,\n start: toServerDuration(relativeStartTime),\n });\n }\n return pageStateServerEntries;\n },\n isInActivePageStateAt: function (startTime) {\n var pageStateEntry = pageStateHistory.find(startTime);\n return pageStateEntry !== undefined && pageStateEntry.state === \"active\" /* PageState.ACTIVE */;\n },\n addPageState: addPageState,\n stop: function () {\n stopEventListeners();\n pageStateHistory.stop();\n },\n };\n}\nfunction computePageState(event) {\n if (event.type === DOM_EVENT.FREEZE) {\n return \"frozen\" /* PageState.FROZEN */;\n }\n else if (event.type === DOM_EVENT.PAGE_HIDE) {\n return event.persisted ? \"frozen\" /* PageState.FROZEN */ : \"terminated\" /* PageState.TERMINATED */;\n }\n return getPageState();\n}\nfunction getPageState() {\n if (document.visibilityState === 'hidden') {\n return \"hidden\" /* PageState.HIDDEN */;\n }\n if (document.hasFocus()) {\n return \"active\" /* PageState.ACTIVE */;\n }\n return \"passive\" /* PageState.PASSIVE */;\n}\n//# sourceMappingURL=pageStateHistory.js.map","import { getViewportDimension, initViewportObservable } from '../../browser/viewportObservable';\nexport function startDisplayContext(configuration) {\n var viewport = getViewportDimension();\n var unsubscribeViewport = initViewportObservable(configuration).subscribe(function (viewportDimension) {\n viewport = viewportDimension;\n }).unsubscribe;\n return {\n get: function () { return ({ viewport: viewport }); },\n stop: unsubscribeViewport,\n };\n}\n//# sourceMappingURL=displayContext.js.map","import { sendToExtension, createPageExitObservable, addTelemetryConfiguration, startTelemetry, canUseEventBridge, getEventBridge, addTelemetryDebug, } from '@datadog/browser-core';\nimport { createDOMMutationObservable } from '../browser/domMutationObservable';\nimport { startPerformanceCollection } from '../browser/performanceCollection';\nimport { startRumAssembly } from '../domain/assembly';\nimport { startInternalContext } from '../domain/contexts/internalContext';\nimport { LifeCycle } from '../domain/lifeCycle';\nimport { startViewContexts } from '../domain/contexts/viewContexts';\nimport { startRequestCollection } from '../domain/requestCollection';\nimport { startActionCollection } from '../domain/action/actionCollection';\nimport { startErrorCollection } from '../domain/error/errorCollection';\nimport { startLongTaskCollection } from '../domain/longTask/longTaskCollection';\nimport { startResourceCollection } from '../domain/resource/resourceCollection';\nimport { startViewCollection } from '../domain/view/viewCollection';\nimport { startRumSessionManager, startRumSessionManagerStub } from '../domain/rumSessionManager';\nimport { startRumBatch } from '../transport/startRumBatch';\nimport { startRumEventBridge } from '../transport/startRumEventBridge';\nimport { startUrlContexts } from '../domain/contexts/urlContexts';\nimport { createLocationChangeObservable } from '../browser/locationChangeObservable';\nimport { serializeRumConfiguration } from '../domain/configuration';\nimport { startFeatureFlagContexts } from '../domain/contexts/featureFlagContext';\nimport { startCustomerDataTelemetry } from '../domain/startCustomerDataTelemetry';\nimport { startPageStateHistory } from '../domain/contexts/pageStateHistory';\nimport { buildCommonContext } from '../domain/contexts/commonContext';\nimport { startDisplayContext } from '../domain/contexts/displayContext';\nexport function startRum(initConfiguration, configuration, recorderApi, globalContextManager, userContextManager, initialViewOptions, createEncoder) {\n var cleanupTasks = [];\n var lifeCycle = new LifeCycle();\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) { return sendToExtension('rum', event); });\n var telemetry = startRumTelemetry(configuration);\n telemetry.setContextProvider(function () {\n var _a, _b;\n return ({\n application: {\n id: configuration.applicationId,\n },\n session: {\n id: (_a = session.findTrackedSession()) === null || _a === void 0 ? void 0 : _a.id,\n },\n view: {\n id: (_b = viewContexts.findView()) === null || _b === void 0 ? void 0 : _b.id,\n },\n action: {\n id: actionContexts.findActionId(),\n },\n });\n });\n var reportError = function (error) {\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, { error: error });\n addTelemetryDebug('Error reported to customer', { 'error.message': error.message });\n };\n var featureFlagContexts = startFeatureFlagContexts(lifeCycle);\n var pageExitObservable = createPageExitObservable(configuration);\n var pageExitSubscription = pageExitObservable.subscribe(function (event) {\n lifeCycle.notify(9 /* LifeCycleEventType.PAGE_EXITED */, event);\n });\n cleanupTasks.push(function () { return pageExitSubscription.unsubscribe(); });\n var session = !canUseEventBridge() ? startRumSessionManager(configuration, lifeCycle) : startRumSessionManagerStub();\n if (!canUseEventBridge()) {\n var batch_1 = startRumBatch(configuration, lifeCycle, telemetry.observable, reportError, pageExitObservable, session.expireObservable, createEncoder);\n cleanupTasks.push(function () { return batch_1.stop(); });\n startCustomerDataTelemetry(configuration, telemetry, lifeCycle, globalContextManager, userContextManager, featureFlagContexts, batch_1.flushObservable);\n }\n else {\n startRumEventBridge(lifeCycle);\n }\n var domMutationObservable = createDOMMutationObservable();\n var locationChangeObservable = createLocationChangeObservable(configuration, location);\n var _a = startRumEventCollection(lifeCycle, configuration, location, session, locationChangeObservable, domMutationObservable, function () { return buildCommonContext(globalContextManager, userContextManager, recorderApi); }, reportError), viewContexts = _a.viewContexts, pageStateHistory = _a.pageStateHistory, urlContexts = _a.urlContexts, actionContexts = _a.actionContexts, addAction = _a.addAction, stopRumEventCollection = _a.stop;\n cleanupTasks.push(stopRumEventCollection);\n addTelemetryConfiguration(serializeRumConfiguration(initConfiguration));\n startLongTaskCollection(lifeCycle, configuration, session);\n startResourceCollection(lifeCycle, configuration, session, pageStateHistory);\n var _b = startViewCollection(lifeCycle, configuration, location, domMutationObservable, locationChangeObservable, featureFlagContexts, pageStateHistory, recorderApi, initialViewOptions), addTiming = _b.addTiming, startView = _b.startView, stopViewCollection = _b.stop;\n cleanupTasks.push(stopViewCollection);\n var addError = startErrorCollection(lifeCycle, configuration, pageStateHistory, featureFlagContexts).addError;\n startRequestCollection(lifeCycle, configuration, session);\n startPerformanceCollection(lifeCycle, configuration);\n var internalContext = startInternalContext(configuration.applicationId, session, viewContexts, actionContexts, urlContexts);\n return {\n addAction: addAction,\n addError: addError,\n addTiming: addTiming,\n addFeatureFlagEvaluation: featureFlagContexts.addFeatureFlagEvaluation,\n startView: startView,\n lifeCycle: lifeCycle,\n viewContexts: viewContexts,\n session: session,\n stopSession: function () { return session.expire(); },\n getInternalContext: internalContext.get,\n stop: function () {\n cleanupTasks.forEach(function (task) { return task(); });\n },\n };\n}\nfunction startRumTelemetry(configuration) {\n var telemetry = startTelemetry(\"browser-rum-sdk\" /* TelemetryService.RUM */, configuration);\n if (canUseEventBridge()) {\n var bridge_1 = getEventBridge();\n telemetry.observable.subscribe(function (event) { return bridge_1.send('internal_telemetry', event); });\n }\n return telemetry;\n}\nexport function startRumEventCollection(lifeCycle, configuration, location, sessionManager, locationChangeObservable, domMutationObservable, buildCommonContext, reportError) {\n var viewContexts = startViewContexts(lifeCycle);\n var urlContexts = startUrlContexts(lifeCycle, locationChangeObservable, location);\n var pageStateHistory = startPageStateHistory(configuration);\n var _a = startActionCollection(lifeCycle, domMutationObservable, configuration, pageStateHistory), addAction = _a.addAction, actionContexts = _a.actionContexts;\n var displayContext = startDisplayContext(configuration);\n startRumAssembly(configuration, lifeCycle, sessionManager, viewContexts, urlContexts, actionContexts, displayContext, buildCommonContext, reportError);\n return {\n viewContexts: viewContexts,\n pageStateHistory: pageStateHistory,\n urlContexts: urlContexts,\n addAction: addAction,\n actionContexts: actionContexts,\n stop: function () {\n displayContext.stop();\n pageStateHistory.stop();\n urlContexts.stop();\n viewContexts.stop();\n pageStateHistory.stop();\n },\n };\n}\n//# sourceMappingURL=startRum.js.map","import { INTAKE_SITE_STAGING, INTAKE_SITE_US1, INTAKE_SITE_EU1 } from '@datadog/browser-core';\nexport function getSessionReplayUrl(configuration, _a) {\n var session = _a.session, viewContext = _a.viewContext, errorType = _a.errorType;\n var sessionId = session ? session.id : 'no-session-id';\n var parameters = [];\n if (errorType !== undefined) {\n parameters.push(\"error-type=\".concat(errorType));\n }\n if (viewContext) {\n parameters.push(\"seed=\".concat(viewContext.id));\n parameters.push(\"from=\".concat(viewContext.startClocks.timeStamp));\n }\n var origin = getDatadogSiteUrl(configuration);\n var path = \"/rum/replay/sessions/\".concat(sessionId);\n return \"\".concat(origin).concat(path, \"?\").concat(parameters.join('&'));\n}\nexport function getDatadogSiteUrl(rumConfiguration) {\n var site = rumConfiguration.site;\n var subdomain = rumConfiguration.subdomain || getSiteDefaultSubdomain(rumConfiguration);\n return \"https://\".concat(subdomain ? \"\".concat(subdomain, \".\") : '').concat(site);\n}\nfunction getSiteDefaultSubdomain(configuration) {\n switch (configuration.site) {\n case INTAKE_SITE_US1:\n case INTAKE_SITE_EU1:\n return 'app';\n case INTAKE_SITE_STAGING:\n return 'dd';\n default:\n return undefined;\n }\n}\n//# sourceMappingURL=getSessionReplayUrl.js.map","export { makeRumPublicApi } from './boot/rumPublicApi';\nexport { startRum } from './boot/startRum';\nexport { LifeCycle } from './domain/lifeCycle';\nexport { getMutationObserverConstructor } from './browser/domMutationObservable';\nexport { initViewportObservable, getViewportDimension } from './browser/viewportObservable';\nexport { getScrollX, getScrollY } from './browser/scroll';\nexport { DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE } from './domain/action/getActionNameFromElement';\nexport { STABLE_ATTRIBUTES } from './domain/getSelectorFromElement';\nexport * from './browser/htmlDomUtils';\nexport { getSessionReplayUrl } from './domain/getSessionReplayUrl';\n//# sourceMappingURL=index.js.map","export var RecordType = {\n FullSnapshot: 2,\n IncrementalSnapshot: 3,\n Meta: 4,\n Focus: 6,\n ViewEnd: 7,\n VisualViewport: 8,\n FrustrationRecord: 9,\n};\nexport var NodeType = {\n Document: 0,\n DocumentType: 1,\n Element: 2,\n Text: 3,\n CDATA: 4,\n DocumentFragment: 11,\n};\nexport var IncrementalSource = {\n Mutation: 0,\n MouseMove: 1,\n MouseInteraction: 2,\n Scroll: 3,\n ViewportResize: 4,\n Input: 5,\n TouchMove: 6,\n MediaInteraction: 7,\n StyleSheetRule: 8,\n // CanvasMutation : 9,\n // Font : 10,\n};\nexport var MouseInteractionType = {\n MouseUp: 0,\n MouseDown: 1,\n Click: 2,\n ContextMenu: 3,\n DblClick: 4,\n Focus: 5,\n Blur: 6,\n TouchStart: 7,\n TouchEnd: 9,\n};\nexport var MediaInteractionType = {\n Play: 0,\n Pause: 1,\n};\n//# sourceMappingURL=sessionReplayConstants.js.map","export * from './sessionReplay';\nexport * from './sessionReplayConstants';\n//# sourceMappingURL=index.js.map","import { assign, timeStampNow } from '@datadog/browser-core';\nimport { RecordType } from '../../types';\nexport function assembleIncrementalSnapshot(source, data) {\n return {\n data: assign({\n source: source,\n }, data),\n type: RecordType.IncrementalSnapshot,\n timestamp: timeStampNow(),\n };\n}\n//# sourceMappingURL=assembly.js.map","import { DefaultPrivacyLevel } from '@datadog/browser-core';\nexport var NodePrivacyLevel = {\n IGNORE: 'ignore',\n HIDDEN: 'hidden',\n ALLOW: DefaultPrivacyLevel.ALLOW,\n MASK: DefaultPrivacyLevel.MASK,\n MASK_USER_INPUT: DefaultPrivacyLevel.MASK_USER_INPUT,\n};\nexport var PRIVACY_ATTR_NAME = 'data-dd-privacy';\n// Privacy Attrs\nexport var PRIVACY_ATTR_VALUE_ALLOW = 'allow';\nexport var PRIVACY_ATTR_VALUE_MASK = 'mask';\nexport var PRIVACY_ATTR_VALUE_MASK_USER_INPUT = 'mask-user-input';\nexport var PRIVACY_ATTR_VALUE_HIDDEN = 'hidden';\n// Privacy Classes - not all customers can set plain HTML attributes, so support classes too\nexport var PRIVACY_CLASS_ALLOW = 'dd-privacy-allow';\nexport var PRIVACY_CLASS_MASK = 'dd-privacy-mask';\nexport var PRIVACY_CLASS_MASK_USER_INPUT = 'dd-privacy-mask-user-input';\nexport var PRIVACY_CLASS_HIDDEN = 'dd-privacy-hidden';\n// Private Replacement Templates\nexport var CENSORED_STRING_MARK = '***';\nexport var CENSORED_IMG_MARK = 'data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==';\nexport var FORM_PRIVATE_TAG_NAMES = {\n INPUT: true,\n OUTPUT: true,\n TEXTAREA: true,\n SELECT: true,\n OPTION: true,\n DATALIST: true,\n OPTGROUP: true,\n};\n//# sourceMappingURL=constants.js.map","import { isElementNode, getParentNode, isTextNode } from '@datadog/browser-rum-core';\nimport { NodePrivacyLevel, PRIVACY_ATTR_NAME, PRIVACY_ATTR_VALUE_ALLOW, PRIVACY_ATTR_VALUE_MASK, PRIVACY_ATTR_VALUE_MASK_USER_INPUT, PRIVACY_ATTR_VALUE_HIDDEN, PRIVACY_CLASS_ALLOW, PRIVACY_CLASS_MASK, PRIVACY_CLASS_MASK_USER_INPUT, PRIVACY_CLASS_HIDDEN, FORM_PRIVATE_TAG_NAMES, CENSORED_STRING_MARK, } from '../../constants';\nexport var MAX_ATTRIBUTE_VALUE_CHAR_LENGTH = 100000;\nvar TEXT_MASKING_CHAR = 'x';\n/**\n * Get node privacy level by iterating over its ancestors. When the direct parent privacy level is\n * know, it is best to use something like:\n *\n * derivePrivacyLevelGivenParent(getNodeSelfPrivacyLevel(node), parentNodePrivacyLevel)\n */\nexport function getNodePrivacyLevel(node, defaultPrivacyLevel) {\n var parentNode = getParentNode(node);\n var parentNodePrivacyLevel = parentNode ? getNodePrivacyLevel(parentNode, defaultPrivacyLevel) : defaultPrivacyLevel;\n var selfNodePrivacyLevel = getNodeSelfPrivacyLevel(node);\n return reducePrivacyLevel(selfNodePrivacyLevel, parentNodePrivacyLevel);\n}\n/**\n * Reduces the next privacy level based on self + parent privacy levels\n */\nexport function reducePrivacyLevel(childPrivacyLevel, parentNodePrivacyLevel) {\n switch (parentNodePrivacyLevel) {\n // These values cannot be overridden\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return parentNodePrivacyLevel;\n }\n switch (childPrivacyLevel) {\n case NodePrivacyLevel.ALLOW:\n case NodePrivacyLevel.MASK:\n case NodePrivacyLevel.MASK_USER_INPUT:\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return childPrivacyLevel;\n default:\n return parentNodePrivacyLevel;\n }\n}\n/**\n * Determines the node's own privacy level without checking for ancestors.\n */\nexport function getNodeSelfPrivacyLevel(node) {\n // Only Element types can have a privacy level set\n if (!isElementNode(node)) {\n return;\n }\n var privAttr = node.getAttribute(PRIVACY_ATTR_NAME);\n // Overrules for replay purpose\n if (node.tagName === 'BASE') {\n return NodePrivacyLevel.ALLOW;\n }\n // Overrules to enforce end-user protection\n if (node.tagName === 'INPUT') {\n var inputElement = node;\n if (inputElement.type === 'password' || inputElement.type === 'email' || inputElement.type === 'tel') {\n return NodePrivacyLevel.MASK;\n }\n if (inputElement.type === 'hidden') {\n return NodePrivacyLevel.MASK;\n }\n var autocomplete = inputElement.getAttribute('autocomplete');\n // Handle input[autocomplete=cc-number/cc-csc/cc-exp/cc-exp-month/cc-exp-year]\n if (autocomplete && autocomplete.indexOf('cc-') === 0) {\n return NodePrivacyLevel.MASK;\n }\n }\n // Check HTML privacy attributes and classes\n if (privAttr === PRIVACY_ATTR_VALUE_HIDDEN || node.classList.contains(PRIVACY_CLASS_HIDDEN)) {\n return NodePrivacyLevel.HIDDEN;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_MASK || node.classList.contains(PRIVACY_CLASS_MASK)) {\n return NodePrivacyLevel.MASK;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_MASK_USER_INPUT || node.classList.contains(PRIVACY_CLASS_MASK_USER_INPUT)) {\n return NodePrivacyLevel.MASK_USER_INPUT;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_ALLOW || node.classList.contains(PRIVACY_CLASS_ALLOW)) {\n return NodePrivacyLevel.ALLOW;\n }\n if (shouldIgnoreElement(node)) {\n return NodePrivacyLevel.IGNORE;\n }\n}\n/**\n * Helper aiming to unify `mask` and `mask-user-input` privacy levels:\n *\n * In the `mask` case, it is trivial: we should mask the element.\n *\n * In the `mask-user-input` case, we should mask the element only if it is a \"form\" element or the\n * direct parent is a form element for text nodes).\n *\n * Other `shouldMaskNode` cases are edge cases that should not matter too much (ex: should we mask a\n * node if it is ignored or hidden? it doesn't matter since it won't be serialized).\n */\nexport function shouldMaskNode(node, privacyLevel) {\n switch (privacyLevel) {\n case NodePrivacyLevel.MASK:\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return true;\n case NodePrivacyLevel.MASK_USER_INPUT:\n return isTextNode(node) ? isFormElement(node.parentNode) : isFormElement(node);\n default:\n return false;\n }\n}\nfunction isFormElement(node) {\n if (!node || node.nodeType !== node.ELEMENT_NODE) {\n return false;\n }\n var element = node;\n if (element.tagName === 'INPUT') {\n switch (element.type) {\n case 'button':\n case 'color':\n case 'reset':\n case 'submit':\n return false;\n }\n }\n return !!FORM_PRIVATE_TAG_NAMES[element.tagName];\n}\n/**\n * Text censoring non-destructively maintains whitespace characters in order to preserve text shape\n * during replay.\n */\nexport var censorText = function (text) { return text.replace(/\\S/g, TEXT_MASKING_CHAR); };\nexport function getTextContent(textNode, ignoreWhiteSpace, parentNodePrivacyLevel) {\n var _a;\n // The parent node may not be a html element which has a tagName attribute.\n // So just let it be undefined which is ok in this use case.\n var parentTagName = (_a = textNode.parentElement) === null || _a === void 0 ? void 0 : _a.tagName;\n var textContent = textNode.textContent || '';\n if (ignoreWhiteSpace && !textContent.trim()) {\n return;\n }\n var nodePrivacyLevel = parentNodePrivacyLevel;\n var isScript = parentTagName === 'SCRIPT';\n if (isScript) {\n // For perf reasons, we don't record script (heuristic)\n textContent = CENSORED_STRING_MARK;\n }\n else if (nodePrivacyLevel === NodePrivacyLevel.HIDDEN) {\n // Should never occur, but just in case, we set to CENSORED_MARK.\n textContent = CENSORED_STRING_MARK;\n }\n else if (shouldMaskNode(textNode, nodePrivacyLevel)) {\n if (\n // Scrambling the child list breaks text nodes for DATALIST/SELECT/OPTGROUP\n parentTagName === 'DATALIST' ||\n parentTagName === 'SELECT' ||\n parentTagName === 'OPTGROUP') {\n if (!textContent.trim()) {\n return;\n }\n }\n else if (parentTagName === 'OPTION') {\n //