{"version":3,"file":"static/chunks/ccebfe67-e2f6e33c3b4f169a.js","mappings":"mGAAA,SAAAA,EAAAC,CAAA,CAAAC,CAAA,EACA,IAAAC,EAAAC,OAAAD,IAAA,CAAAF,GAEA,GAAAG,OAAAC,qBAAA,EACA,IAAAC,EAAAF,OAAAC,qBAAA,CAAAJ,EACAC,CAAAA,GAAAI,CAAAA,EAAAA,EAAAC,MAAA,UAAAC,CAAA,EACA,OAAAJ,OAAAK,wBAAA,CAAAR,EAAAO,GAAAE,UAAA,EACK,EAAAP,EAAAQ,IAAA,CAAAC,KAAA,CAAAT,EAAAG,EACL,CAEA,OAAAH,CACA,CAEA,SAAAU,EAAAC,CAAA,EACA,QAAAC,EAAA,EAAkBA,EAAAC,UAAAC,MAAA,CAAsBF,IAAA,CACxC,IAAAG,EAAA,MAAAF,SAAA,CAAAD,EAAA,CAAAC,SAAA,CAAAD,EAAA,GACAA,CAAAA,EAAA,EAAAf,EAAAI,OAAAc,GAAA,IAAAC,OAAA,UAAAC,CAAA,EACAC,EAAAP,EAAAM,EAAAF,CAAA,CAAAE,EAAA,CACA,GAAKhB,OAAAkB,yBAAA,CAAAlB,OAAAmB,gBAAA,CAAAT,EAAAV,OAAAkB,yBAAA,CAAAJ,IAAAlB,EAAAI,OAAAc,IAAAC,OAAA,UAAAC,CAAA,EACLhB,OAAAoB,cAAA,CAAAV,EAAAM,EAAAhB,OAAAK,wBAAA,CAAAS,EAAAE,GACA,EACA,CAEA,OAAAN,CACA,CAEA,SAAAW,EAAAC,CAAA,EAGA,MAIGD,CAJHA,EAAA,mBAAAE,QAAA,iBAAAA,OAAAC,QAAA,UAAAF,CAAA,EACA,cAAAA,CACA,EAAI,SAAAA,CAAA,EACJ,OAAAA,GAAA,mBAAAC,QAAAD,EAAAG,WAAA,GAAAF,QAAAD,IAAAC,OAAAG,SAAA,iBAAAJ,CACA,GAAGA,EACH,CAEA,SAAAK,EAAAC,CAAA,CAAAC,CAAA,EACA,IAAAD,CAAAA,aAAAC,CAAA,EACA,oDAEA,CAEA,SAAAC,EAAApB,CAAA,CAAAqB,CAAA,EACA,QAAApB,EAAA,EAAkBA,EAAAoB,EAAAlB,MAAA,CAAkBF,IAAA,CACpC,IAAAqB,EAAAD,CAAA,CAAApB,EAAA,CACAqB,EAAA1B,UAAA,CAAA0B,EAAA1B,UAAA,KACA0B,EAAAC,YAAA,IACA,UAAAD,GAAAA,CAAAA,EAAAE,QAAA,KACAlC,OAAAoB,cAAA,CAAAV,EAAAsB,EAAAhB,GAAA,CAAAgB,EACA,CACA,CAEA,SAAAG,EAAAN,CAAA,CAAAO,CAAA,CAAAC,CAAA,EAMA,OALAD,GAAAN,EAAAD,EAAAH,SAAA,CAAAU,GACAC,GAAAP,EAAAD,EAAAQ,GACArC,OAAAoB,cAAA,CAAAS,EAAA,aACAK,SAAA,EACA,GACAL,CACA,CAEA,SAAAZ,EAAAK,CAAA,CAAAN,CAAA,CAAAsB,CAAA,EAYA,OAXAtB,KAAAM,EACAtB,OAAAoB,cAAA,CAAAE,EAAAN,EAAA,CACAsB,MAAAA,EACAhC,WAAA,GACA2B,aAAA,GACAC,SAAA,EACA,GAEAZ,CAAA,CAAAN,EAAA,CAAAsB,EAGAhB,CACA,CAEA,SAAAiB,EAAAC,CAAA,CAAAC,CAAA,EACA,sBAAAA,GAAAA,OAAAA,EACA,qEAGAD,CAAAA,EAAAd,SAAA,CAAA1B,OAAA0C,MAAA,CAAAD,GAAAA,EAAAf,SAAA,EACAD,YAAA,CACAa,MAAAE,EACAN,SAAA,GACAD,aAAA,EACA,CACA,GACAjC,OAAAoB,cAAA,CAAAoB,EAAA,aACAN,SAAA,EACA,GACAO,GAAAE,EAAAH,EAAAC,EACA,CAEA,SAAAG,EAAAC,CAAA,EAIA,MAAAD,CAHAA,EAAA5C,OAAA8C,cAAA,CAAA9C,OAAA+C,cAAA,CAAAC,IAAA,YAAAH,CAAA,EACA,OAAAA,EAAAI,SAAA,EAAAjD,OAAA+C,cAAA,CAAAF,EACA,GACAA,EACA,CAEA,SAAAF,EAAAE,CAAA,CAAAK,CAAA,EAKA,MAAAP,CAJAA,EAAA3C,OAAA8C,cAAA,CAAA9C,OAAA8C,cAAA,CAAAE,IAAA,YAAAH,CAAA,CAAAK,CAAA,EAEA,OADAL,EAAAI,SAAA,CAAAC,EACAL,CACA,GACAA,EAAAK,EACA,CAqEA,SAAAC,EAAAC,CAAA,EACA,IAAAC,EAAAC,WAnEA,uBAAAC,SAAA,CAAAA,QAAAC,SAAA,EACAD,QAAAC,SAAA,CAAAC,IAAA,CADA,SAEA,sBAAAC,MAAA,SAEA,IAEA,OADAC,QAAAjC,SAAA,CAAAkC,OAAA,CAAAC,IAAA,CAAAN,QAAAC,SAAA,CAAAG,QAAA,kBACA,EACA,CAAI,MAAAG,EAAA,CACJ,QACA,CACA,IA2DA,kBACA,IACAC,EADAC,EAAApB,EAAAQ,GAWA,OALAW,EAHAV,EAGAE,QAAAC,SAAA,CAAAQ,EAAApD,UAFAgC,EAAA,MAAAnB,WAAA,EAIAuC,EAAAxD,KAAA,MAAAI,WAGAqD,SAzBAC,CAAA,CAAAL,CAAA,EACA,GAAAA,GAAA,kBAAAA,GAAA,mBAAAA,CAAA,EACA,OAAAA,EACI,GAAAA,KAAA,IAAAA,EACJ,4EAGA,OAAAM,SAfAD,CAAA,EACA,GAAAA,KAAA,IAAAA,EACA,kFAGA,OAAAA,CACA,EASAA,EACA,EAiBA,KAAAH,EACA,CACA,CAEA,SAAAK,EAAAC,CAAA,CAAA1D,CAAA,EACA,OAAA2D,SAWAD,CAAA,EACA,GAAAE,MAAAC,OAAA,CAAAH,GAAA,OAAAA,CACA,EAbAA,IAAAI,SAmBAJ,CAAA,CAAA1D,CAAA,EACA,IAOA+D,EAAAC,EAPAC,EAAAP,MAAAA,EAAA,yBAAA9C,QAAA8C,CAAA,CAAA9C,OAAAC,QAAA,GAAA6C,CAAA,eAEA,GAAAO,MAAAA,GACA,IAAAC,EAAA,GACAC,EAAA,GACAC,EAAA,GAIA,IACA,IAAAH,EAAAA,EAAAf,IAAA,CAAAQ,GAA4B,CAAAS,CAAAA,EAAA,CAAAJ,EAAAE,EAAAI,IAAA,IAAAC,IAAA,IAC5BJ,EAAAtE,IAAA,CAAAmE,EAAApC,KAAA,EAEA3B,CAAAA,GAAAkE,EAAAhE,MAAA,GAAAF,GAH2DmE,EAAA,IAK3D,CAAI,MAAAI,EAAA,CACJH,EAAA,GACAJ,EAAAO,CACA,QAAI,CACJ,IACAJ,GAAAF,MAAAA,EAAA,QAAAA,EAAA,QACA,QAAM,CACN,GAAAG,EAAA,MAAAJ,CACA,CACA,CAEA,OAAAE,EACA,EA/CAR,EAAA1D,IAAAwE,EAAAd,EAAA1D,IAAAyE,WAuEA,4JACA,GAvEA,CAEA,SAAAC,EAAAhB,CAAA,EACA,OAAAiB,SAGAjB,CAAA,EACA,GAAAE,MAAAC,OAAA,CAAAH,GAAA,OAAAkB,EAAAlB,EACA,EALAA,IAAAmB,SAWAC,CAAA,EACA,uBAAAlE,QAAAkE,MAAAA,CAAA,CAAAlE,OAAAC,QAAA,GAAAiE,MAAAA,CAAA,sBAAAlB,MAAAmB,IAAA,CAAAD,EACA,EAbApB,IAAAc,EAAAd,IAAAsB,WA+DA,uJACA,GA/DA,CA4CA,SAAAR,EAAAtC,CAAA,CAAA+C,CAAA,EACA,GAAA/C,GACA,oBAAAA,EAAA,OAAA0C,EAAA1C,EAAA+C,GACA,IAAAC,EAAA7F,OAAA0B,SAAA,CAAAoE,QAAA,CAAAjC,IAAA,CAAAhB,GAAAkD,KAAA,OAEA,GADA,WAAAF,GAAAhD,EAAApB,WAAA,EAAAoE,CAAAA,EAAAhD,EAAApB,WAAA,CAAAuE,IAAA,EACAH,QAAAA,GAAAA,QAAAA,EAAA,OAAAtB,MAAAmB,IAAA,CAAA7C,GACA,GAAAgD,cAAAA,GAAA,2CAAAI,IAAA,CAAAJ,GAAA,OAAAN,EAAA1C,EAAA+C,GACA,CAEA,SAAAL,EAAAlB,CAAA,CAAA6B,CAAA,EACAA,CAAAA,MAAAA,GAAAA,EAAA7B,EAAAxD,MAAA,GAAAqF,CAAAA,EAAA7B,EAAAxD,MAAA,EAEA,QAAAF,EAAA,EAAAwF,EAAA,MAAAD,GAAyCvF,EAAAuF,EAASvF,IAAAwF,CAAA,CAAAxF,EAAA,CAAA0D,CAAA,CAAA1D,EAAA,CAElD,OAAAwF,CACA,CAUA,SAAAC,EAAAvD,CAAA,CAAAwD,CAAA,EACA,IAAAC,EAAA,oBAAA/E,QAAAsB,CAAA,CAAAtB,OAAAC,QAAA,GAAAqB,CAAA,eAEA,IAAAyD,EAAA,CACA,GAAA/B,MAAAC,OAAA,CAAA3B,IAAAyD,CAAAA,EAAAnB,EAAAtC,EAAA,GAAAwD,GAAAxD,GAAA,iBAAAA,EAAAhC,MAAA,EACAyF,GAAAzD,CAAAA,EAAAyD,CAAA,EACA,IAAA3F,EAAA,EAEA4F,EAAA,aAEA,OACAC,EAAAD,EACAV,EAAA,kBACA,GAAAhD,EAAAhC,MAAA,EACAoE,KAAA,EACA,EACA,CACAA,KAAA,GACA3C,MAAAO,CAAA,CAAAlC,IAAA,CAEA,EACAmD,EAAA,SAAAA,CAAA,EACA,MAAAA,CACA,EACA2C,EAAAF,CACA,CACA,CAEA,wJACA,CAEA,IAEArB,EAFAwB,EAAA,GACAC,EAAA,GAEA,OACAH,EAAA,WACAF,EAAAA,EAAAzC,IAAA,CAAAhB,EACA,EACAgD,EAAA,WACA,IAAAe,EAAAN,EAAAtB,IAAA,GAEA,OADA0B,EAAAE,EAAA3B,IAAA,CACA2B,CACA,EACA9C,EAAA,SAAAA,CAAA,EACA6C,EAAA,GACAzB,EAAApB,CACA,EACA2C,EAAA,WACA,IACAC,GAAAJ,MAAAA,EAAAO,MAAA,EAAAP,EAAAO,MAAA,EACA,QAAQ,CACR,GAAAF,EAAA,MAAAzB,CACA,CACA,CACA,CACA,mCAYA,IAk/BA4B,EAsBAC,EA4tIAC,EA4rBAC,EA9rBAD,EA4rBAC,EAOAC,EAEAC,EAv6LAV,EAAAW,OAAAC,YAAA,CACAC,EAAA,oEACAC,EAAA,oEACAC,EAAA,GAEA,SAAAC,EAAAC,CAAA,CAAAC,CAAA,EACA,IAAAH,CAAA,CAAAE,EAAA,EACAF,CAAA,CAAAE,EAAA,IAEA,QAAA/G,EAAA,EAAoBA,EAAA+G,EAAA7G,MAAA,CAAqBF,IACzC6G,CAAA,CAAAE,EAAA,CAAAA,EAAAE,MAAA,CAAAjH,GAAA,CAAAA,CAEA,CAEA,OAAA6G,CAAA,CAAAE,EAAA,CAAAC,EAAA,CAGA,IAAAE,EAAA,CACAC,iBAAA,SAAAC,CAAA,EACA,GAAAA,MAAAA,EAAA,SAEA,IAAAC,EAAAH,EAAAI,SAAA,CAAAF,EAAA,WAAAG,CAAA,EACA,OAAAZ,EAAAM,MAAA,CAAAM,EACA,GAEA,OAAAF,EAAAnH,MAAA,IAEA,QAEA,OACA,OAAAmH,CAEA,QACA,OAAAA,EAAA,KAEA,QACA,OAAAA,EAAA,IAEA,QACA,OAAAA,EAAA,GACA,CACA,EACAG,qBAAA,SAAAJ,CAAA,SACA,MAAAA,EAAA,GACAA,IAAAA,EAAA,KACAF,EAAAO,WAAA,CAAAL,EAAAlH,MAAA,aAAAwH,CAAA,EACA,OAAAZ,EAAAH,EAAAS,EAAAH,MAAA,CAAAS,GACA,EACA,EACAC,gBAAA,SAAAP,CAAA,SACA,MAAAA,EAAA,GACAF,EAAAI,SAAA,CAAAF,EAAA,YAAAG,CAAA,EACA,OAAAzB,EAAAyB,EAAA,GACA,GAAK,GACL,EACAK,oBAAA,SAAAC,CAAA,SACA,MAAAA,EAAA,GACAA,IAAAA,EAAA,KACAX,EAAAO,WAAA,CAAAI,EAAA3H,MAAA,gBAAAwH,CAAA,EACA,OAAAG,EAAAC,UAAA,CAAAJ,GAAA,EACA,EACA,EAEAK,qBAAA,SAAAC,CAAA,EAIA,QAHAH,EAAAX,EAAAe,QAAA,CAAAD,GACAE,EAAA,IAAAC,WAAAN,EAAAA,EAAA3H,MAAA,EAEAF,EAAA,EAAAoI,EAAAP,EAAA3H,MAAA,CAAkDF,EAAAoI,EAAcpI,IAAA,CAChE,IAAAqI,EAAAR,EAAAC,UAAA,CAAA9H,EACAkI,CAAAA,CAAA,CAAAlI,EAAAA,EAAA,CAAAqI,IAAA,EACAH,CAAA,CAAAlI,EAAAA,EAAA,GAAAqI,EAAA,GACA,CAEA,OAAAH,CACA,EAEAI,yBAAA,SAAAT,CAAA,EACA,GAAAA,MAAAA,EACA,OAAAX,EAAAqB,UAAA,CAAAV,GAIA,QAFAK,EAAA,MAAAL,EAAA3H,MAAA,IAEAF,EAAA,EAAAoI,EAAAF,EAAAhI,MAAA,CAA6CF,EAAAoI,EAAcpI,IAC3DkI,CAAA,CAAAlI,EAAA,CAAA6H,IAAAA,CAAA,CAAA7H,EAAAA,EAAA,CAAA6H,CAAA,CAAA7H,EAAAA,EAAA,GAHA,IAMAoD,EAAA,GAIA,OAHA8E,EAAA9H,OAAA,UAAAoI,CAAA,EACApF,EAAAxD,IAAA,CAAAkG,EAAA0C,GACA,GACAtB,EAAAqB,UAAA,CAAAnF,EAAAqF,IAAA,KAEA,EAEAC,8BAAA,SAAAtB,CAAA,SACA,MAAAA,EAAA,GACAF,EAAAI,SAAA,CAAAF,EAAA,WAAAG,CAAA,EACA,OAAAX,EAAAK,MAAA,CAAAM,EACA,EACA,EAEAoB,kCAAA,SAAAvB,CAAA,SACA,MAAAA,EAAA,GACAA,IAAAA,EAAA,MACAA,EAAAA,EAAAwB,OAAA,WACA1B,EAAAO,WAAA,CAAAL,EAAAlH,MAAA,aAAAwH,CAAA,EACA,OAAAZ,EAAAF,EAAAQ,EAAAH,MAAA,CAAAS,GACA,GACA,EACAO,SAAA,SAAAD,CAAA,EACA,OAAAd,EAAAI,SAAA,CAAAU,EAAA,YAAAT,CAAA,EACA,OAAAzB,EAAAyB,EACA,EACA,EACAD,UAAA,SAAAU,CAAA,CAAAa,CAAA,CAAAC,CAAA,EACA,GAAAd,MAAAA,EAAA,SACA,IAAAhI,EACA2B,EAUAoH,EATAC,EAAA,GACAC,EAAA,GACAC,EAAA,GACAC,EAAA,EAEAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EAEAC,EAAA,GACAC,EAAA,GACAC,EAAA,GAEA,IAAAX,EAAA,EAAiBA,EAAAf,EAAA9H,MAAA,CAA0B6I,GAAA,EAU3C,GATAC,EAAAhB,EAAAf,MAAA,CAAA8B,GAEA1J,OAAA0B,SAAA,CAAA4I,cAAA,CAAAzG,IAAA,CAAAsG,EAAAR,KACAQ,CAAA,CAAAR,EAAA,CAAAI,IACAK,CAAA,CAAAT,EAAA,KAGAC,EAAAC,EAAAF,EAEA3J,OAAA0B,SAAA,CAAA4I,cAAA,CAAAzG,IAAA,CAAAsG,EAAAP,GACAC,EAAAD,MACQ,CACR,GAAA5J,OAAA0B,SAAA,CAAA4I,cAAA,CAAAzG,IAAA,CAAAuG,EAAAP,GAAA,CACA,GAAAA,IAAAA,EAAApB,UAAA,KACA,IAAA9H,EAAA,EAAwBA,EAAAqJ,EAAqBrJ,IAC7CsJ,IAAA,EAEAC,GAAAV,EAAA,GACAU,EAAA,EACAG,EAAA9J,IAAA,CAAAkJ,EAAAQ,IACAA,EAAA,GAEAC,IAMA,IAAAvJ,EAAA,EAFA2B,EAAAuH,EAAApB,UAAA,IAEwB9H,EAAA,EAAOA,IAC/BsJ,EAAAA,GAAA,EAAA3H,EAAAA,EAEA4H,GAAAV,EAAA,GACAU,EAAA,EACAG,EAAA9J,IAAA,CAAAkJ,EAAAQ,IACAA,EAAA,GAEAC,IAGA5H,IAAA,CAEA,KAAY,CAGZ,IAAA3B,EAAA,EAFA2B,EAAA,EAEwB3B,EAAAqJ,EAAqBrJ,IAC7CsJ,EAAAA,GAAA,EAAA3H,EAEA4H,GAAAV,EAAA,GACAU,EAAA,EACAG,EAAA9J,IAAA,CAAAkJ,EAAAQ,IACAA,EAAA,GAEAC,IAGA5H,EAAA,EAKA,IAAA3B,EAAA,EAFA2B,EAAAuH,EAAApB,UAAA,IAEwB9H,EAAA,GAAQA,IAChCsJ,EAAAA,GAAA,EAAA3H,EAAAA,EAEA4H,GAAAV,EAAA,GACAU,EAAA,EACAG,EAAA9J,IAAA,CAAAkJ,EAAAQ,IACAA,EAAA,GAEAC,IAGA5H,IAAA,CAEA,CAIA,KAAAwH,IACAA,EAAAS,KAAAC,GAAA,GAAAR,GACAA,KAGA,OAAAI,CAAA,CAAAP,EAAA,MAIA,IAAAlJ,EAAA,EAFA2B,EAAA6H,CAAA,CAAAN,EAAA,CAEsBlJ,EAAAqJ,EAAqBrJ,IAC3CsJ,EAAAA,GAAA,EAAA3H,EAAAA,EAEA4H,GAAAV,EAAA,GACAU,EAAA,EACAG,EAAA9J,IAAA,CAAAkJ,EAAAQ,IACAA,EAAA,GAEAC,IAGA5H,IAAA,CAMA,MAAAwH,IACAA,EAAAS,KAAAC,GAAA,GAAAR,GACAA,KAIAG,CAAA,CAAAP,EAAA,CAAAG,IACAF,EAAAzC,OAAAuC,EACA,CAIA,GAAAE,KAAAA,EAAA,CACA,GAAA7J,OAAA0B,SAAA,CAAA4I,cAAA,CAAAzG,IAAA,CAAAuG,EAAAP,GAAA,CACA,GAAAA,IAAAA,EAAApB,UAAA,KACA,IAAA9H,EAAA,EAAsBA,EAAAqJ,EAAqBrJ,IAC3CsJ,IAAA,EAEAC,GAAAV,EAAA,GACAU,EAAA,EACAG,EAAA9J,IAAA,CAAAkJ,EAAAQ,IACAA,EAAA,GAEAC,IAMA,IAAAvJ,EAAA,EAFA2B,EAAAuH,EAAApB,UAAA,IAEsB9H,EAAA,EAAOA,IAC7BsJ,EAAAA,GAAA,EAAA3H,EAAAA,EAEA4H,GAAAV,EAAA,GACAU,EAAA,EACAG,EAAA9J,IAAA,CAAAkJ,EAAAQ,IACAA,EAAA,GAEAC,IAGA5H,IAAA,CAEA,KAAU,CAGV,IAAA3B,EAAA,EAFA2B,EAAA,EAEsB3B,EAAAqJ,EAAqBrJ,IAC3CsJ,EAAAA,GAAA,EAAA3H,EAEA4H,GAAAV,EAAA,GACAU,EAAA,EACAG,EAAA9J,IAAA,CAAAkJ,EAAAQ,IACAA,EAAA,GAEAC,IAGA5H,EAAA,EAKA,IAAA3B,EAAA,EAFA2B,EAAAuH,EAAApB,UAAA,IAEsB9H,EAAA,GAAQA,IAC9BsJ,EAAAA,GAAA,EAAA3H,EAAAA,EAEA4H,GAAAV,EAAA,GACAU,EAAA,EACAG,EAAA9J,IAAA,CAAAkJ,EAAAQ,IACAA,EAAA,GAEAC,IAGA5H,IAAA,CAEA,CAIA,KAAAwH,IACAA,EAAAS,KAAAC,GAAA,GAAAR,GACAA,KAGA,OAAAI,CAAA,CAAAP,EAAA,MAIA,IAAAlJ,EAAA,EAFA2B,EAAA6H,CAAA,CAAAN,EAAA,CAEoBlJ,EAAAqJ,EAAqBrJ,IACzCsJ,EAAAA,GAAA,EAAA3H,EAAAA,EAEA4H,GAAAV,EAAA,GACAU,EAAA,EACAG,EAAA9J,IAAA,CAAAkJ,EAAAQ,IACAA,EAAA,GAEAC,IAGA5H,IAAA,CAMA,MAAAwH,IACAA,EAAAS,KAAAC,GAAA,GAAAR,GACAA,IAEA,CAKA,IAAArJ,EAAA,EAFA2B,EAAA,EAEgB3B,EAAAqJ,EAAqBrJ,IACrCsJ,EAAAA,GAAA,EAAA3H,EAAAA,EAEA4H,GAAAV,EAAA,GACAU,EAAA,EACAG,EAAA9J,IAAA,CAAAkJ,EAAAQ,IACAA,EAAA,GAEAC,IAGA5H,IAAA,EAIA,QAGA,GAFA2H,IAAA,EAEAC,GAAAV,EAAA,GACAa,EAAA9J,IAAA,CAAAkJ,EAAAQ,IACA,KACA,CAAQC,GACR,CAEA,OAAAG,EAAAjB,IAAA,IACA,EACAF,WAAA,SAAAV,CAAA,SACA,MAAAA,EAAA,GACAA,IAAAA,EAAA,KACAX,EAAAO,WAAA,CAAAI,EAAA3H,MAAA,gBAAAwH,CAAA,EACA,OAAAG,EAAAC,UAAA,CAAAJ,EACA,EACA,EACAD,YAAA,SAAAvH,CAAA,CAAA4J,CAAA,CAAAC,CAAA,EACA,IAWA/J,EACAgK,EACAC,EACAC,EACAC,EACAC,EACA5B,EAjBA6B,EAAA,GACAjH,EAAA,GACAkH,EAAA,CACAC,IAAAR,EAAA,GACAS,SAAAV,EACApC,MAAA,CACA,EACA+C,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,GASA,IAAA5K,EAAA,EAAgBA,EAAA,EAAOA,GAAA,EACvBqK,CAAA,CAAArK,EAAA,CAAAA,EAOA,IAJAiK,EAAA,EACAE,EAAAP,EACAQ,EAAA,EAEAA,GAAAD,GACAD,EAAAI,EAAAC,GAAA,CAAAD,EAAAE,QAAA,CACAF,EAAAE,QAAA,KAEA,GAAAF,EAAAE,QAAA,GACAF,EAAAE,QAAA,CAAAV,EACAQ,EAAAC,GAAA,CAAAR,EAAAO,EAAA5C,KAAA,KAGAuC,GAAA,CAAAC,EAAA,OAAAE,EACAA,IAAA,EAGA,OAAAH,GACA,OAKA,IAJAA,EAAA,EACAE,EAAAP,IACAQ,EAAA,EAEAA,GAAAD,GACAD,EAAAI,EAAAC,GAAA,CAAAD,EAAAE,QAAA,CACAF,EAAAE,QAAA,KAEA,GAAAF,EAAAE,QAAA,GACAF,EAAAE,QAAA,CAAAV,EACAQ,EAAAC,GAAA,CAAAR,EAAAO,EAAA5C,KAAA,KAGAuC,GAAA,CAAAC,EAAA,OAAAE,EACAA,IAAA,EAGA5B,EAAA1C,EAAAmE,GACA,KAEA,QAKA,IAJAA,EAAA,EACAE,EAAAP,MACAQ,EAAA,EAEAA,GAAAD,GACAD,EAAAI,EAAAC,GAAA,CAAAD,EAAAE,QAAA,CACAF,EAAAE,QAAA,KAEA,GAAAF,EAAAE,QAAA,GACAF,EAAAE,QAAA,CAAAV,EACAQ,EAAAC,GAAA,CAAAR,EAAAO,EAAA5C,KAAA,KAGAuC,GAAA,CAAAC,EAAA,OAAAE,EACAA,IAAA,EAGA5B,EAAA1C,EAAAmE,GACA,KAEA,QACA,QACA,CAYA,IARAI,CAAA,IAAA7B,EAGAwB,EAAAxB,EAGApF,EAAAxD,IAAA,CAAA4I,KAEA,CACA,GAAA8B,EAAA5C,KAAA,CAAAxH,EACA,SAOA,IAJA+J,EAAA,EACAE,EAAAP,KAAAC,GAAA,GAAAc,GACAP,EAAA,EAEAA,GAAAD,GACAD,EAAAI,EAAAC,GAAA,CAAAD,EAAAE,QAAA,CACAF,EAAAE,QAAA,KAEA,GAAAF,EAAAE,QAAA,GACAF,EAAAE,QAAA,CAAAV,EACAQ,EAAAC,GAAA,CAAAR,EAAAO,EAAA5C,KAAA,KAGAuC,GAAA,CAAAC,EAAA,OAAAE,EACAA,IAAA,EAGA,OAAA5B,EAAAyB,GACA,OAKA,IAJAA,EAAA,EACAE,EAAAP,IACAQ,EAAA,EAEAA,GAAAD,GACAD,EAAAI,EAAAC,GAAA,CAAAD,EAAAE,QAAA,CACAF,EAAAE,QAAA,KAEA,GAAAF,EAAAE,QAAA,GACAF,EAAAE,QAAA,CAAAV,EACAQ,EAAAC,GAAA,CAAAR,EAAAO,EAAA5C,KAAA,KAGAuC,GAAA,CAAAC,EAAA,OAAAE,EACAA,IAAA,CAGAC,CAAAA,CAAA,CAAAK,IAAA,CAAA5E,EAAAmE,GACAzB,EAAAkC,EAAA,EACAD,IACA,KAEA,QAKA,IAJAR,EAAA,EACAE,EAAAP,MACAQ,EAAA,EAEAA,GAAAD,GACAD,EAAAI,EAAAC,GAAA,CAAAD,EAAAE,QAAA,CACAF,EAAAE,QAAA,KAEA,GAAAF,EAAAE,QAAA,GACAF,EAAAE,QAAA,CAAAV,EACAQ,EAAAC,GAAA,CAAAR,EAAAO,EAAA5C,KAAA,KAGAuC,GAAA,CAAAC,EAAA,OAAAE,EACAA,IAAA,CAGAC,CAAAA,CAAA,CAAAK,IAAA,CAAA5E,EAAAmE,GACAzB,EAAAkC,EAAA,EACAD,IACA,KAEA,QACA,OAAArH,EAAAqF,IAAA,IACA,CAOA,GALA,GAAAgC,IACAA,EAAAb,KAAAC,GAAA,GAAAc,GACAA,KAGAN,CAAA,CAAA7B,EAAA,CACAoC,EAAAP,CAAA,CAAA7B,EAAA,KACQ,CACR,GAAAA,IAAAkC,EAGA,YAFAE,EAAAZ,EAAAA,EAAA/C,MAAA,GAIA,CAEA7D,EAAAxD,IAAA,CAAAgL,GAEAP,CAAA,CAAAK,IAAA,CAAAV,EAAAY,EAAA3D,MAAA,IACAwD,IACAT,EAAAY,EAEA,GAAAH,IACAA,EAAAb,KAAAC,GAAA,GAAAc,GACAA,IAEA,CACA,CACA,EAMAE,EAAA,CACAC,MAAA,GACAC,YANA,QAOA,EAMAC,EAAApH,MAAA7C,SAAA,CACAkK,EAAA5L,OAAA0B,SAAA,CACAoE,EAAA8F,EAAA9F,QAAA,CACAwE,EAAAsB,EAAAtB,cAAA,CACAuB,EAAA,oBAAAC,OAAAA,OAAA,GACAC,EAAAF,EAAAE,SAAA,GACAC,UAAA,EACA,EACAC,EAAAJ,EAAAK,QAAA,KACAF,EAAAD,EAAAC,SAAA,CACAG,EAAAR,EAAA5K,OAAA,CACAqL,EAAAT,EAAAU,OAAA,CAEAC,EAAA,GAEAC,EAAA,CAEAC,IAAA,WACA,GAAAhB,EAAAC,KAAA,GAAAgB,GAAAX,OAAAY,OAAA,GAAAZ,OAAAY,OAAA,EAIA,QAFAF,EAAA,wBAAAV,OAAAY,OAAA,CAAAF,GAAA,EAAAV,OAAAY,OAAA,CAAAF,GAAA,oBAAAV,OAAAY,OAAA,CAAAF,GAAA,CAEAG,EAAA/L,UAAAC,MAAA,CAAA+L,EAAA,MAAAD,GAAAE,EAAA,EAA0EA,EAAAF,EAAaE,IACvFD,CAAA,CAAAC,EAAA,CAAAjM,SAAA,CAAAiM,EAAA,CAGA,IACAL,EAAAhM,KAAA,CAAAsL,OAAAY,OAAA,CAAAE,EACA,CAAQ,MAAA1H,EAAA,CACR4H,EAAAF,EAAA,SAAAG,CAAA,EACAP,EAAAO,EACA,EACA,CACA,CACA,EAGAC,MAAA,WACA,GAAAxB,EAAAC,KAAA,GAAAgB,GAAAX,OAAAY,OAAA,GAAAZ,OAAAY,OAAA,EACA,QAAAO,EAAArM,UAAAC,MAAA,CAAAqM,EAAA,MAAAD,GAAAE,EAAA,EAA8EA,EAAAF,EAAeE,IAC7FD,CAAA,CAAAC,EAAA,CAAAvM,SAAA,CAAAuM,EAAA,CAGA,IAAAP,EAAA,mBAAAQ,MAAA,CAAAF,GAEAF,EAAA,uBAAAlB,OAAAY,OAAA,CAAAM,KAAA,CAAAlB,OAAAY,OAAA,CAAAM,KAAA,oBAAAlB,OAAAY,OAAA,CAAAM,KAAA,CAEA,IACAA,EAAAxM,KAAA,CAAAsL,OAAAY,OAAA,CAAAE,EACA,CAAQ,MAAA1H,EAAA,CACR4H,EAAAF,EAAA,SAAAG,CAAA,EACAC,EAAAD,EACA,EACA,CACA,CACA,EAGAM,SAAA,WACA,IAAAZ,GAAAX,OAAAY,OAAA,GAAAZ,OAAAY,OAAA,EACA,QAAAY,EAAA1M,UAAAC,MAAA,CAAAqM,EAAA,MAAAI,GAAAC,EAAA,EAA8EA,EAAAD,EAAeC,IAC7FL,CAAA,CAAAK,EAAA,CAAA3M,SAAA,CAAA2M,EAAA,CAGA,IAAAX,EAAA,mBAAAQ,MAAA,CAAAF,GAEAF,EAAA,uBAAAlB,OAAAY,OAAA,CAAAM,KAAA,CAAAlB,OAAAY,OAAA,CAAAM,KAAA,oBAAAlB,OAAAY,OAAA,CAAAM,KAAA,CAEA,IACAA,EAAAxM,KAAA,CAAAsL,OAAAY,OAAA,CAAAE,EACA,CAAQ,MAAA1H,EAAA,CACR4H,EAAAF,EAAA,SAAAG,CAAA,EACAC,EAAAD,EACA,EACA,CACA,CACA,CACA,EAGAS,EAAA,SAAAC,CAAA,EACA,OAAAA,EAAAlE,OAAA,yCACA,EAcA,SAAAmE,EAAApM,CAAA,CAAAE,CAAA,CAAAmM,CAAA,EACA,GAAArM,MAAAA,GAIA,GAAA6K,GAAA5H,MAAAC,OAAA,CAAAlD,IAAAA,EAAAP,OAAA,GAAAoL,EACA7K,EAAAP,OAAA,CAAAS,EAAAmM,QACI,cAAArM,GAAAA,EAAAT,MAAA,IAAAS,EAAAT,MAAA,CACJ,SAAAF,EAAA,EAAAiN,EAAAtM,EAAAT,MAAA,CAAoCF,EAAAiN,EAAOjN,IAC3C,GAAAA,KAAAW,GAAAE,EAAAqC,IAAA,CAAA8J,EAAArM,CAAA,CAAAX,EAAA,CAAAA,KAAA2L,EACA,MAEA,MAEA,QAAAuB,KAAAvM,EACA,GAAAgJ,EAAAzG,IAAA,CAAAvC,EAAAuM,IACArM,EAAAqC,IAAA,CAAA8J,EAAArM,CAAA,CAAAuM,EAAA,CAAAA,KAAAvB,EACA,OAKA,CACA,SAAAQ,EAAAxL,CAAA,CAAAE,CAAA,CAAAmM,CAAA,EACA,GAAApJ,MAAAC,OAAA,CAAAlD,IACA,GAAA6K,GAAA7K,EAAAP,OAAA,GAAAoL,EACA7K,EAAAP,OAAA,CAAAS,EAAAmM,QACM,cAAArM,GAAAA,EAAAT,MAAA,IAAAS,EAAAT,MAAA,CACN,SAAAF,EAAA,EAAAiN,EAAAtM,EAAAT,MAAA,CAAsCF,EAAAiN,EAAOjN,IAC7C,GAAAA,KAAAW,GAAAE,EAAAqC,IAAA,CAAA8J,EAAArM,CAAA,CAAAX,EAAA,CAAAA,KAAA2L,EACA,MAEA,EAGA,CACA,IAAAwB,EAAA,SAAAxM,CAAA,EACA,QAAAyM,EAAAnN,UAAAC,MAAA,CAAA+L,EAAA,MAAAmB,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAA6FA,EAAAD,EAAeC,IAC5GpB,CAAA,CAAAoB,EAAA,GAAApN,SAAA,CAAAoN,EAAA,CAWA,OARAlB,EAAAF,EAAA,SAAA9L,CAAA,EACA,QAAAmN,KAAAnN,EACA,SAAAA,CAAA,CAAAmN,EAAA,EACA3M,CAAAA,CAAA,CAAA2M,EAAA,CAAAnN,CAAA,CAAAmN,EAAA,CAGA,GAEA3M,CACA,EACA4M,EAAAC,MAvIA3J,OAAA,EAuIA,SAAAlD,CAAA,EACA,MAAAwE,mBAAAA,EAAAjC,IAAA,CAAAvC,EACA,EAIA8M,EAAA,SAAA3H,CAAA,EACA,IACA,yBAAAR,IAAA,CAAAQ,EACA,CAAI,MAAA4H,EAAA,CACJ,QACA,CACA,EACAC,EAAA,SAAAhN,CAAA,CAAAZ,CAAA,EACA,IAAA6N,EAAA,UAEA,OAAAjN,EACAiN,EAGAnC,GAAA9K,EAAA+K,OAAA,GAAAD,EACA9K,IAAAA,EAAA+K,OAAA,CAAA3L,IAGAgN,EAAApM,EAAA,SAAAgB,CAAA,EACA,GAAAiM,GAAAA,CAAAA,EAAAjM,IAAA5B,CAAA,EACA,OAAA4L,CAIA,GAEAiC,EACA,EACA,SAAAC,EAAAf,CAAA,CAAAgB,CAAA,EACA,OAAAhB,KAAAA,EAAApB,OAAA,CAAAoC,EACA,CAEA,IAAAC,GAAA,SAAApN,CAAA,EACA,OAAAA,IAAAtB,OAAAsB,IAAA,CAAA4M,EAAA5M,EACA,EACAmL,GAAA,SAAAnL,CAAA,EACA,OAAAA,KAAA,IAAAA,CACA,EACAqN,GAAA,SAAArN,CAAA,EACA,MAAAwE,mBAAAA,EAAAjC,IAAA,CAAAvC,EACA,EAyBAsN,GAAA,SAAAC,CAAA,EAEA,SAAAC,EAAAjJ,CAAA,EACA,OAAAA,EAAA,OAAAA,EAAAA,CACA,CAEA,OAAAgJ,EAAAE,cAAA,OAAAD,EAAAD,EAAAG,WAAA,UAAAF,EAAAD,EAAAI,UAAA,QAAAH,EAAAD,EAAAK,WAAA,QAAAJ,EAAAD,EAAAM,aAAA,QAAAL,EAAAD,EAAAO,aAAA,GACA,EACAC,GAAA,SAAA5I,CAAA,EACA,kBACA,IACA,QAAA6I,EAAA1O,UAAAC,MAAA,CAAA+L,EAAA,MAAA0C,GAAAC,EAAA,EAA6EA,EAAAD,EAAeC,IAC5F3C,CAAA,CAAA2C,EAAA,CAAA3O,SAAA,CAAA2O,EAAA,CAKA,OAAA9I,EAAAjG,KAAA,MAAAoM,EACA,CAAM,MAAA9I,EAAA,CACNyI,EAAAc,QAAA,gFAEA7B,EAAAC,KAAA,EACAc,EAAAc,QAAA,CAAAvJ,EAEA,CACA,CACA,EAcA0L,GAAA,SAAAtM,CAAA,EACA,IAAAuM,EAAA,GAQA,OANA/B,EAAAxK,EAAA,SAAAwM,CAAA,CAAAC,CAAA,EACAhB,GAAAe,IAAAA,EAAA7O,MAAA,IACA4O,CAAAA,CAAA,CAAAE,EAAA,CAAAD,CAAAA,CAEA,GAEAD,CACA,EA2CAG,GAAA,qBACA,SAAAC,GAAAhQ,CAAA,CAAAiQ,CAAA,MAjCAC,EACAC,EAiCA,OAlCAD,EAkCA,SAAAzN,CAAA,CAAAtB,CAAA,SACA,GAAA4O,GAAAvD,OAAA,CAAArL,GAAA,GACAsB,EAGA,iBAAAA,GAAAwN,OAAAA,EACAxN,EAAAyD,KAAA,GAAA+J,GAGAxN,CACA,EA3CA0N,EAAA,IAAAC,IA4BAC,SA1BAA,EAAA5N,CAAA,CAAAtB,CAAA,MAKA+C,SAJA,IAAA/D,OAAAsC,GAAAyN,EAAAA,EAAAzN,EAAAtB,GAAAsB,EAEA0N,EAAAG,GAAA,CAAA7N,WACA0N,EAAAI,GAAA,CAAA9N,GAGA4L,EAAA5L,IACAyB,EAAA,GAEA+I,EAAAxK,EAAA,SAAAgE,CAAA,EACAvC,EAAAxD,IAAA,CAAA2P,EAAA5J,GACA,KAEAvC,EAAA,GAEA2J,EAAApL,EAAA,SAAA4I,CAAA,CAAAlK,CAAA,EACAgP,EAAAG,GAAA,CAAAjF,IACAnH,CAAAA,CAAA,CAAA/C,EAAA,CAAAkP,EAAAhF,EAAAlK,EAAA,CAEA,IAGA+C,EACA,EAOAlE,EAWA,CACA,SAAAwQ,GAAApF,CAAA,EACA,IAIAqF,EACAC,EACAC,EACAC,EACA7F,EARA8F,EAAA,oEASA/P,EAAA,EACAgQ,EAAA,EACAC,EAAA,GACAC,EAAA,GAEA,IAAA5F,EACA,OAAAA,EAGAA,EAAA6F,GAAA7F,GAEA,GAMAqF,EAAA1F,CADAA,EAAAmG,EAHAtI,UAAA,CAAA9H,MAGA,GAAAqQ,EAFAvI,UAAA,CAAA9H,MAEA,EADAsK,EAAAxC,UAAA,CAAA9H,IACA,GACA,MACA4P,EAAA3F,GAAA,MACA4F,EAAA5F,GAAA,KACA6F,EAAA7F,GAAAA,EAEAiG,CAAA,CAAAF,IAAA,CAAAD,EAAA9I,MAAA,CAAA0I,GAAAI,EAAA9I,MAAA,CAAA2I,GAAAG,EAAA9I,MAAA,CAAA4I,GAAAE,EAAA9I,MAAA,CAAA6I,SACI9P,EAAAsK,EAAApK,MAAA,EAIJ,OAFA+P,EAAAC,EAAAzH,IAAA,KAEA6B,EAAApK,MAAA,IACA,OACA+P,EAAAA,EAAA7K,KAAA,YACA,KAEA,QACA6K,EAAAA,EAAA7K,KAAA,UAEA,CAEA,OAAA6K,CACA,CACA,IAAAE,GAAA,SAAAG,CAAA,EACAA,EAAA,CAAAA,EAAA,IAAA1H,OAAA,eAAAA,OAAA,aACA,IACA2H,EACAC,EAEAtL,EAJAuL,EAAA,GAGAC,EAAA,EAKA,IAAAxL,EAAA,EAHAqL,EAAAC,EAAA,EACAE,EAAAJ,EAAApQ,MAAA,CAEcgF,EAAAwL,EAAaxL,IAAA,CAC3B,IAAAyL,EAAAL,EAAAxI,UAAA,CAAA5C,GACA+K,EAAA,IAEAU,CAAAA,EAAA,IACAH,IAEAP,EADMU,EAAA,KAAAA,EAAA,KACNlK,OAAAC,YAAA,CAAAiK,GAAA,MAAAA,GAAAA,EAAA,KAEAlK,OAAAC,YAAA,CAAAiK,GAAA,OAAAA,GAAA,SAAAA,GAAAA,EAAA,KAGA,OAAAV,IACAO,EAAAD,GACAE,CAAAA,GAAAH,EAAAM,SAAA,CAAAL,EAAAC,EAAA,EAGAC,GAAAR,EACAM,EAAAC,EAAAtL,EAAA,EAEA,CAMA,OAJAsL,EAAAD,GACAE,CAAAA,GAAAH,EAAAM,SAAA,CAAAL,EAAAD,EAAApQ,MAAA,GAGAuQ,CACA,EACAI,IAGA1K,EAAA,WAMA,IALA,IAAA+H,EAAA,IAAA4C,OAAA7N,OAAA,GACAjD,EAAA,EAIAkO,GAAA,IAAA4C,OAAA7N,OAAA,IACAjD,IAGA,OAAAkO,EAAA/I,QAAA,KAAAnF,EAAAmF,QAAA,IACA,EAWAiB,EAAA,WAEA,IAAApG,EACA+Q,EACAjC,EAAA,EACAkC,EAAA,GAEA,SAAAC,EAAA7N,CAAA,CAAA8N,CAAA,EACA,IAAAC,EACAC,EAAA,EAEA,IAAAD,EAAA,EAAkBA,EAAAD,EAAAhR,MAAA,CAAuBiR,IACzCC,GAAAJ,CAAA,CAAAG,EAAA,EAAAA,EAAAA,EAGA,OAAA/N,EAAAgO,CACA,CAEA,IAAApR,EAAA,EAAgBA,EAAAqR,EAAAnR,MAAA,CAAeF,IAC/B+Q,EAAAM,EAAAvJ,UAAA,CAAA9H,GACAgR,EAAAM,OAAA,CAAAP,IAAAA,GAEAC,EAAA9Q,MAAA,MACA4O,EAAAmC,EAAAnC,EAAAkC,GACAA,EAAA,IAQA,OAJAA,EAAA9Q,MAAA,IACA4O,CAAAA,EAAAmC,EAAAnC,EAAAkC,EAAA,EAGAlC,EAAA3J,QAAA,IACA,EAEA,WACA,IAAAoM,EAAA,CAAApG,OAAAqG,MAAA,CAAAC,MAAA,CAAAtG,OAAAqG,MAAA,CAAAE,KAAA,EAAAvM,QAAA,KACA,OAAAgB,IAAA,IA5CAyD,KAAA+H,MAAA,GAAAxM,QAAA,KAAAyD,OAAA,SA4CA,IAAAxC,IAAA,IAAAmL,EAAA,IAAApL,GACA,GAiBAyL,GAAA,SAAAC,CAAA,EACA,IACAC,EACAC,EAFAC,EAAA/R,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,QAGAiS,EAAA,GAQA,OANAnF,EAAA8E,EAAA,SAAAtH,CAAA,CAAAlK,CAAA,EACAyR,EAAAK,mBAAA5H,EAAApF,QAAA,IACA4M,EAAAI,mBAAA9R,GACA6R,CAAA,CAAAA,EAAAhS,MAAA,EAAA6R,EAAA,IAAAD,CACA,GAEAI,EAAAzJ,IAAA,CAAAuJ,EACA,EACAI,GAAA,SAAAC,CAAA,CAAAC,CAAA,EAEA,IAGAC,EAAAC,OAFA,SADAF,EAAA1J,OAAA,cAAAA,OAAA,eACA,aAEA6J,IAAA,CAAAJ,GAEA,GAAAE,OAAAA,GAAAA,GAAA,iBAAAA,CAAA,KAAAA,CAAA,IAAArS,MAAA,CACA,SAEA,IAAAkD,EAAAmP,CAAA,IAEA,IACAnP,EAAAsP,mBAAAtP,EACA,CAAM,MAAAmB,EAAA,CACNqH,EAAAS,KAAA,iDAAAjJ,EACA,CAEA,OAAAA,EAAAwF,OAAA,WAEA,EACA+J,GAAA,SAAAC,CAAA,CAAAN,CAAA,EACA,IAAAO,EAAAD,EAAAE,KAAA,QAAAR,EAAA,aACA,OAAAO,EAAAA,CAAA,QACA,EACAE,GAAA,WA4DA,SAAAC,EAAAC,CAAA,EAMA,OALAA,IACAA,EAAAC,cAAA,CAAAF,EAAAE,cAAA,CACAD,EAAAE,eAAA,CAAAH,EAAAG,eAAA,EAGAF,CACA,CAUA,OARAD,EAAAE,cAAA,YACA,KAAAE,WAAA,GACA,EAEAJ,EAAAG,eAAA,YACA,KAAAE,YAAA,GACA,EA5DA,SAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,EACA,IAAAJ,EAAA,CACA1H,EAAAS,KAAA,gDACA,MACA,CAEA,GAAAiH,EAAAK,gBAAA,GAAAF,EACAH,EAAAK,gBAAA,CAAAJ,EAAAC,EAAA,EAAAE,OACM,CACN,IAAAE,EAAA,KAAAL,EACAM,EAAAP,CAAA,CAAAM,EAAA,CAEAN,CAAA,CAAAM,EAAA,CAKA,SAAAX,CAAA,EAOA,GANAA,EAAAA,GAAAD,EAAA7H,OAAA8H,KAAA,GAUA,IACAa,EADAhF,EAAA,GAGArB,EAnBAoG,IAoBAC,CAAAA,EAAAC,EAAAd,EAAA,EAGA,IAAAe,EAAAC,EAAA/Q,IAAA,CAvBAoQ,EAuBAL,GAMA,MAJA,MAAAa,GAAA,KAAAE,CAAA,GACAlF,CAAAA,EAAA,IAGAA,EACA,CA7BA,CACA,CAiDA,IACAoF,GAAA,CACAC,eAAA,WAEA,IAAAC,EAAA,GAUA,OARArH,EAHA,+EAAAsH,KAAA,MAGA,SAAAC,CAAA,EACA,IAAAC,EAAAnC,GAAA9G,EAAAkJ,GAAA,CAAAF,EAEAC,CAAAA,EAAArU,MAAA,EACAkU,CAAAA,CAAA,CAAAE,EAAA,CAAAC,CAAA,CAEA,GAEAH,CACA,EACAK,aAAA,SAAAC,CAAA,SACA,IAAAA,EAAAC,MAAA,iCACA,SACMD,IAAAA,EAAAC,MAAA,0BACN,OACMD,IAAAA,EAAAC,MAAA,2BACN,QACMD,IAAAA,EAAAC,MAAA,gCACN,aAEA,IAEA,EACAC,WAAA,SAAAF,CAAA,EACA,IAAAC,EAAAT,GAAAO,YAAA,CAAAC,GAEA5F,EAAA,GAEA,GAAA6F,OAAAA,EAAA,CACA7F,EAAA,eAAA6F,EAEA,IAAAE,EAAAzC,GAAAsC,EANAC,SAAAA,EAAA,QAQAE,CAAAA,EAAA3U,MAAA,EACA4O,CAAAA,EAAA,WAAA+F,CAAA,CAEA,CAEA,OAAA/F,CACA,EAOAgG,QAAA,SAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,EAGA,GAFAD,EAAAA,GAAA,GAEAC,GAAApH,EAAAkH,EAAA,gBACA,EAAAA,EAAA,QACA,aAGA,QACM,iCAAAzP,IAAA,CAAAyP,GACN,mBACM,GAAAlH,EAAAkH,EAAA,aAAAlH,EAAAkH,EAAA,aACN,iCACM,GAAAlH,EAAAkH,EAAA,mBAEN,yBACM,GAAAlH,EAAAkH,EAAA,SAAAlH,EAAAkH,EAAA,QACN,uBACM,GAAAlH,EAAAkH,EAAA,SACN,wBACM,GAAAlH,EAAAkH,EAAA,UACN,oBACM,GAAAlH,EAAAkH,EAAA,SACN,wBACM,GAAAlH,EAAAkH,EAAA,UAAAlH,EAAAkH,EAAA,aACN,wBACM,GAAAlH,EAAAkH,EAAA,SACN,yBACM,GAAAlH,EAAAmH,EAAA,gBACN,EAAAD,EAAA,UACA,gBAGA,cACM,GAAAlH,EAAAkH,EAAA,WACN,4BACM,GAAAlH,EAAAkH,EAAA,aACN,uBACM,GAAAlH,EAAAkH,EAAA,WACN,qBACM,GAAAlH,EAAAkH,EAAA,SAAAlH,EAAAkH,EAAA,YACN,+BACM,GAAAlH,EAAAkH,EAAA,SACN,qBAEA,QAEA,EAOAG,eAAA,SAAA7J,CAAA,CAAA2J,CAAA,CAAAC,CAAA,EACA,IAoBAzC,EAAA2C,CAjBA,8CACA,wCACAC,OAAA,wBACA,oCACA,gDACAC,OAAA,yBACA,yCACAC,MAAA,6BACAC,QAAA,yBACA,qCACAC,UAAA,0BACAC,WAAA,2BACA,0CACA,mDACA,+CACAC,QAAA,kBACA,CACA,CApBAxB,GAAAY,OAAA,CAAAzJ,EAAA2J,EAAAC,GAoBA,CAEA,GAAAzC,KAAAP,IAAAO,EACA,YAGA,IAAAK,EAAAxH,EAAAyH,KAAA,CAAAN,UAEA,EAIAmD,WAAA9C,CAAA,CAAAA,EAAA3S,MAAA,KAHA,IAIA,EACA0V,gBAAA,WACA,OAAAxK,EAAAyK,QAAA,EACAzK,EAAA0K,YAAA,EAGAC,GAAA,WAGA,cAAAzQ,IAAA,CAFA+F,SAGA,QAAA/F,IAAA,CAHA+F,IAGA,YAAA/F,IAAA,CAHA+F,GAIA,gBAGA,UACM,wBAAA/F,IAAA,CARN+F,GASA,YACM,aAAA/F,IAAA,CAVN+F,GAWA,gBACM,iCAAA/F,IAAA,CAZN+F,GAaA,mBACM,UAAA/F,IAAA,CAdN+F,GAeA,iBACM,WAAA/F,IAAA,CAhBN+F,GAiBA,cACM,UAAA/F,IAAA,CAlBN+F,GAmBA,uBAEA,QAEA,EACA2K,OAAA,SAAAjB,CAAA,EACA,oBAAAzP,IAAA,CAAAyP,IAAA,YAAAzP,IAAA,CAAAyP,GACA,sBACM,UAAAzP,IAAA,CAAAyP,GACN,aACM,UAAAzP,IAAA,CAAAyP,GACN,mBACM,YAAAzP,IAAA,CAAAyP,GACN,eACM,iCAAAzP,IAAA,CAAAyP,GACN,mBACM,aAAAzP,IAAA,CAAAyP,IAAA,UAAAzP,IAAA,CAAAyP,GACN,uBACM,aAAAzP,IAAA,CAAAyP,GACN,qBAEA,QAEA,EACAkB,WAAA,SAAAlB,CAAA,EACA,IAAAiB,EAAA,KAAAA,MAAA,CAAAjB,SAEA,SAAAiB,GAAAA,mBAAAA,EACA,SACMA,EACN,SAEA,SAEA,EACAE,gBAAA,SAAAxB,CAAA,EACA,IAAAL,EAAAK,EAAAL,KAAA,aAEA,EAAAnU,MAAA,IACAmU,CAAA,IAGA,EACA,EACA8B,WAAA,WACA,OAAAhJ,EAAA0B,GAAA,CACAuH,IAAAlC,GAAA6B,EAAA,GACAM,SAAAnC,GAAAY,OAAA,CAAAzJ,EAAAD,EAAA4J,MAAA,CAAA7J,OAAA8J,KAAA,EACAqB,QAAApC,GAAA8B,MAAA,CAAA3K,GACAkL,aAAArC,GAAA+B,UAAA,CAAA5K,EACA,GAAK,CACLmL,aAAArL,OAAAsL,QAAA,CAAAC,IAAA,CACAC,MAAAxL,OAAAsL,QAAA,CAAAG,IAAA,CACAC,UAAA1L,OAAAsL,QAAA,CAAAK,QAAA,CACAC,iBAAA7C,GAAAgB,cAAA,CAAA7J,EAAAD,EAAA4J,MAAA,CAAA7J,OAAA8J,KAAA,EACA+B,kBAAA9C,GAAA0B,eAAA,GACAqB,eAAA9L,OAAAqG,MAAA,CAAAC,MAAA,CACAyF,cAAA/L,OAAAqG,MAAA,CAAAE,KAAA,CACAyF,iBAAAhM,OAAAiM,WAAA,CACAC,gBAAAlM,OAAAmM,UAAA,CACAC,KAAA,MACAC,aAAA3M,EAAAE,WAAA,CACA0M,WAAA7N,KAAA+H,MAAA,GAAAxM,QAAA,KAAAyL,SAAA,OAAAhH,KAAA+H,MAAA,GAAAxM,QAAA,KAAAyL,SAAA,OACA8G,MAAAC,CAAAA,KAlnBAC,GAAA,CAAA9G,KAAA8G,GAAA,aACA,WAAA9G,IACA,EAEAA,KAAA8G,GAAA,GA8mBA,IAEA,EACA,EACAC,kBAAA,WACA,OAAA1K,EAAA0B,GAAA,CACAuH,IAAAlC,GAAA6B,EAAA,GACAM,SAAAnC,GAAAY,OAAA,CAAAzJ,EAAAD,EAAA4J,MAAA,CAAA7J,OAAA8J,KAAA,CACA,GAAK,CACL8B,iBAAA7C,GAAAgB,cAAA,CAAA7J,EAAAD,EAAA4J,MAAA,CAAA7J,OAAA8J,KAAA,CACA,EACA,CACA,EAEA,SAAA6C,GAAAC,CAAA,EACA,OAAArX,EAAAqX,EAAAC,SAAA,GACA,aACA,OAAAD,EAAAC,SAAA,KAGA,SAEA,mBAAAD,EAAAC,SAAA,CAAAD,EAAAC,SAAA,CAAAC,OAAA,QAAAF,EAAAG,YAAA,aAEA,SAEA,QACA,CACA,CAWA,SAAAC,GAAAJ,CAAA,EACA,IAAAK,EAAA,GAaA,OAXAC,GAAAN,IAAA,CAAAO,GAAAP,IAAAA,EAAAQ,UAAA,EAAAR,EAAAQ,UAAA,CAAArY,MAAA,EACA6M,EAAAgL,EAAAQ,UAAA,UAAAC,CAAA,EACAC,GAAAD,IAAAA,EAAAE,WAAA,EACAN,CAAAA,GAAAvL,EAAA2L,EAAAE,WAAA,EACArE,KAAA,UAAA7U,MAAA,CAAAmZ,IAAAlQ,IAAA,KACAG,OAAA,gBAAAA,OAAA,cACAgI,SAAA,QAEA,GAGA/D,EAAAuL,EACA,CAOA,SAAAQ,GAAAb,CAAA,EACA,QAAAA,GAAAA,IAAAA,EAAAc,QAAA,CAaA,SAAAC,GAAAf,CAAA,CAAAgB,CAAA,EACA,QAAAhB,GAAA,EAAAA,EAAAiB,OAAA,EAAAjB,EAAAiB,OAAA,CAAAC,WAAA,KAAAF,EAAAE,WAAA,EACA,CAOA,SAAAR,GAAAV,CAAA,EACA,QAAAA,GAAAA,IAAAA,EAAAc,QAAA,CAQA,SAAAK,GAAAnB,CAAA,EACA,QAAAA,GAAAA,KAAAA,EAAAc,QAAA,CAEA,IAAAM,GAAA,0DA2HA,SAAAd,GAAAN,CAAA,EACA,QAAAqB,EAAArB,EAAuBqB,EAAAC,UAAA,GAAAP,GAAAM,EAAA,QAA2CA,EAAAA,EAAAC,UAAA,EAClE,IAAAC,EAAAxB,GAAAsB,GAAA/E,KAAA,MAEA,GAAAxG,EAAAyL,EAAA,iBAAAzL,EAAAyL,EAAA,iBACA,QAEA,CAEA,GAAAzL,EAAAiK,GAAAC,GAAA1D,KAAA,oBACA,SAIA,IAAAd,EAAAwE,EAAAxE,IAAA,KAEA,oBAAAA,EAEA,OAAAA,EAAA0F,WAAA,IACA,aAGA,eAFA,QAIA,CAIA,IAAA5T,EAAA0S,EAAA1S,IAAA,EAAA0S,EAAAwB,EAAA,YAIA,kBAAAlU,GAIAmU,uHAAAlU,IAAA,CAAAD,EAAAuD,OAAA,qBAJA,CAUA,CAOA,SAAA0P,GAAAP,CAAA,QAKAe,EAAAA,CAAAA,GAAAf,EAAA,WAAA0B,CAFA,sCAEAC,QAAA,CAAA3B,EAAAxE,IAAA,GAAAuF,GAAAf,EAAA,WAAAe,GAAAf,EAAA,cAAAA,SAAAA,EAAAG,YAAA,mBAKA,CAQA,SAAAS,GAAAhX,CAAA,UACA,OAAAA,GAAAmK,GAAAnK,IAIA,iBAAAA,IACAA,EAAAkL,EAAAlL,GAKAgY,wKAAArU,IAAA,EAAA3D,GAAA,IAAAiH,OAAA,eAOAgR,0BAAAtU,IAAA,CAAA3D,IAMA,CAgBA,SAAAkY,GAAAC,CAAA,CAAAC,CAAA,EACA,IAOAC,EAPAC,EAAA1O,SAAA2O,aAAA,UACAD,CAAAA,EAAA1G,IAAA,mBACA0G,EAAAE,GAAA,CAAAL,EACAG,EAAAG,MAAA,CAAAL,EACA,IAAAM,EAAA9O,SAAA+O,gBAAA,iBAEAD,CAAAA,EAAAna,MAAA,GAGA,OAAA8Z,CAAAA,EAAAK,CAAA,IAAAhB,UAAA,GAAAW,KAAA,IAAAA,GAAAA,EAAAO,YAAA,CAAAN,EAAAI,CAAA,KAEA9O,SAAAiP,IAAA,CAAAC,WAAA,CAAAR,EAEA,CASA,IAAAS,GAAA,WACA,SAAAA,EAAAC,CAAA,EACA3Z,EAAA,KAAA0Z,GAEA,KAAAE,MAAA,IACA,KAAAD,OAAA,CAAAA,CACA,CAiCA,OA/BAnZ,EAAAkZ,EAAA,EACAra,IAAA,cACAsB,MAAA,SAAA+L,CAAA,CAAAmN,CAAA,CAAAC,CAAA,EACA,SAAAH,OAAA,CACA,SAGA,IAAAI,EAAA,KAAAH,MAAA,MAAAA,MAAA,CAAA1a,MAAA,IAEA,GAAA6a,GAAAnR,KAAAoR,GAAA,CAAAtN,EAAAqN,EAAArN,CAAA,EAAA9D,KAAAoR,GAAA,CAAAH,EAAAE,EAAAF,CAAA,EArBA,IAqBAC,EAAAC,EAAAD,SAAA,CApBA,IA2BA,IANA,KAAAF,MAAA,CAAAhb,IAAA,EACA8N,EAAAA,EACAmN,EAAAA,EACAC,UAAAA,CACA,GAEA,SAAAF,MAAA,CAAA1a,MAAA,CACA,QACA,MAEA,KAAA0a,MAAA,GACAlN,EAAAA,EACAmN,EAAAA,EACAC,UAAAA,CACA,EAAS,CAGT,QACA,CACA,EAAG,EAEHJ,CACA,IAEAO,GAAA,CACAC,mBAAA,GACAC,wBAAA,SAAApD,CAAA,EACA,GAAAA,EAAAqD,sBAAA,CACA,OAAArD,EAAAqD,sBAAA,CAEA,IAAAC,EAAAtD,EAEA,GACAsD,EAAAA,EAAAC,eAAA,OACQD,GAAA,CAAAzC,GAAAyC,GAAA,CAER,OAAAA,CAEA,EACAE,0BAAA,SAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,EACA,IAAAC,EAAAH,EAAAxC,OAAA,CAAAC,WAAA,GACA7X,EAAA,CACAua,SAAAA,CACA,EAEAxC,GAAAzN,OAAA,CAAAiQ,GAAA,KAAAD,GACAta,CAAAA,EAAA,SAAA+W,GAAAqD,EAAA,EAGA,IAAAlC,EAAAxB,GAAA0D,EACAlC,CAAAA,EAAApZ,MAAA,IAAAkB,CAAAA,EAAA,QAAAkY,EAAAjF,KAAA,MAAA7U,MAAA,UAAAgJ,CAAA,EACA,MAAAA,KAAAA,CACA,EAAK,EAELuE,EAAAyO,EAAAI,UAAA,UAAAC,CAAA,EAEA,GAAAvD,CAAAA,GAAAkD,IAAA,2BAAA9P,OAAA,CAAAmQ,EAAAxW,IAAA,EAEA,KA1GAyW,CA0GA,EAAAL,GAAA9C,GAAAkD,EAAAla,KAAA,IAzGA,kBADAma,EA0GAD,EAAAxW,IAAA,GAxGAyW,CAAAA,eAAAA,EAAAlL,SAAA,QAAAkL,YAAAA,EAAAlL,SAAA,MACA,GAwGAxP,CAAAA,CAAA,UAAAya,EAAAxW,IAAA,EAAAwW,EAAAla,KAAA,CACA,CACA,GAMA,IAJA,IAAAoa,EAAA,EACAC,EAAA,EACAC,EAAAT,EAEAS,EAAA,KAAAd,uBAAA,CAAAc,IAEAF,IAEAE,EAAAjD,OAAA,GAAAwC,EAAAxC,OAAA,EACAgD,IAMA,OAFA5a,EAAA,UAAA2a,EACA3a,EAAA,YAAA4a,EACA5a,CACA,EACA8a,sBAAA,SAAAC,CAAA,EACA,OACAC,YAAAD,EACAE,YAAA,CACA,CACA,EACAC,4BAAA,SAAAC,CAAA,EACA,IAAAC,EAAA,GAgBA,OAdAzP,EAAAxB,SAAA+O,gBAAA,CAAAiC,EAAA,uBAAAE,CAAA,EACA,IAAA9a,CAEA,oBAAA+J,OAAA,CAAA+Q,EAAAzD,OAAA,CAAAC,WAAA,OACAtX,EAAA8a,EAAA,MACQA,EAAA,aACR9a,CAAAA,EAAA8a,EAAA,aAGA9D,GAAAhX,IACA6a,EAAA5c,IAAA,CAAA+B,EAEA,GAEA6a,EAAA/T,IAAA,MACA,EAEAiU,qBAAA,SAAAC,CAAA,EACA,IAAAC,EAAA,KAEAxb,EAAA,GAcA,OAZA2L,EAAA,KAAA8P,iBAAA,UAAAN,CAAA,EACAxP,EAAAwP,EAAA,yBAAAO,CAAA,EAGA/P,EAFAxB,SAAA+O,gBAAA,CAAAwC,GAEA,SAAAC,CAAA,EACAlP,EAAA8O,EAAAI,IAAA1E,GAAA0E,IACA3b,CAAAA,CAAA,CAAAmb,EAAA,MAAAK,EAAAN,2BAAA,CAAAC,EAAA,CAEA,EACA,EACA,GAEAnb,CACA,EACA4b,gBAAA,SAAA7Z,CAAA,MAKA8Z,SAHA,SAAA9Z,EAAApD,MAAA,CACAoD,EAAA+Z,UAAA,OAIA,OAAAD,CAAAA,EAAA9Z,EAAApD,MAAA,GAAAkd,KAAA,IAAAA,GAAAA,EAAAE,UAAA,CACAha,EAAAia,YAAA,YAGAja,EAAApD,MAAA,MAEA,EACAsd,cAAA,SAAAla,CAAA,CAAAlC,CAAA,EACA,IAAAqc,EAAA,KAEAC,EAAAtd,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,mBAGAF,EAAA,KAAAid,eAAA,CAAA7Z,GAeA,GAbAsV,GAAA1Y,IAEAA,CAAAA,EAAAA,EAAAsZ,UAAA,QAGA,iBAAAkE,GAAApa,UAAAA,EAAAoQ,IAAA,EAAApQ,aAAAqa,YAGA,OAAAC,CAAAA,EAAA,KAAAC,UAAA,GAAAD,KAAA,IAAAA,GAAAA,EAAAE,WAAA,CAAAxa,EAAAya,OAAA,CAAAza,EAAA0a,OAAA,KAAA/M,OAAAgN,OAAA,KACA,KAAAT,aAAA,CAAAla,EAAAlC,EAAA,cAIAlB,GAAAge,SAraAhG,CAAA,CAAA9E,CAAA,EACA,IAAA+K,EAAA/d,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,IAAAgS,KAAAA,EAEA,IAAA8F,GAAAe,GAAAf,EAAA,UAAAa,GAAAb,GACA,SAGA,GAAAiG,MAAAA,GAAAA,EAAAC,aAAA,EACA,IAAA5L,EAAAlH,OAAAsL,QAAA,CAAAC,IAAA,CACAwH,EAAAF,EAAAC,aAAA,CAEA,GAAAC,GAAA,CAAAA,EAAAC,IAAA,UAAA3L,CAAA,EACA,OAAAH,EAAAS,KAAA,CAAAN,EACA,GACA,QAEA,CAEA,GAAAwL,MAAAA,GAAAA,EAAAI,mBAAA,EACA,IAAAC,EAAAL,EAAAI,mBAAA,CAEA,GAAAC,GAAA,CAAAA,EAAAF,IAAA,UAAAhC,CAAA,EACA,OAAAlJ,EAAAM,IAAA,GAAA4I,CACA,GACA,QAEA,CAEA,GAAA6B,MAAAA,GAAAA,EAAAM,iBAAA,EACA,IAAAC,EAAAP,EAAAM,iBAAA,CAEA,GAAAC,GAAA,CAAAA,EAAAJ,IAAA,UAAAK,CAAA,EACA,OAAAzG,EAAAiB,OAAA,CAAAC,WAAA,KAAAuF,CACA,GACA,QAEA,CAEA,GAAAR,MAAAA,GAAAA,EAAAS,sBAAA,EACA,IAAAC,EAAAV,EAAAS,sBAAA,CAEA,GAAAC,GAAA,CAAAA,EAAAP,IAAA,UAAAQ,CAAA,EACA,OAAA5G,EAAAlF,OAAA,CAAA8L,EACA,GACA,QAEA,CAQA,IANA,IAAAC,EAAA,GACAjC,EAAA,CAAA5E,EAAA,CAEAsB,EAAA,GACAD,EAAArB,EAEAqB,EAAAC,UAAA,GAAAP,GAAAM,EAAA,UAEA,GAAAF,GAAAE,EAAAC,UAAA,GACAsD,EAAA/c,IAAA,CAAAwZ,EAAAC,UAAA,CAAAzC,IAAA,EACAwC,EAAAA,EAAAC,UAAA,CAAAzC,IAAA,CACA,QACA,CAGA,IADAyC,CAAAA,EAAAD,EAAAC,UAAA,MACA,MAEA,GAAAF,GAAAzN,OAAA,CAAA2N,EAAAL,OAAA,CAAAC,WAAA,OACA2F,EAAA,OACM,CACN,IAAAC,EAAA1T,OAAA2T,gBAAA,CAAAzF,GAEAwF,GAAAA,YAAAA,EAAAE,gBAAA,YACAH,CAAAA,EAAA,GAEA,CAEAjC,EAAA/c,IAAA,CAAAyZ,GACAD,EAAAC,CACA,CAEA,IAAA2F,EAAA7T,OAAA2T,gBAAA,CAAA/G,GAEA,GAAAiH,GAAAA,YAAAA,EAAAD,gBAAA,YAAA9L,UAAAA,EAAAM,IAAA,CACA,SAGA,IAAAwF,EAAAhB,EAAAiB,OAAA,CAAAC,WAAA,GAEA,OAAAF,GACA,WACA,QAEA,YACA,MAAA9F,WAAAA,EAAAM,IAAA,KAEA,QAGA,aACA,eAHA,MAAAN,WAAAA,EAAAM,IAAA,EAAAN,UAAAA,EAAAM,IAAA,SAOA,GAAAqL,EAAA,MAAA3L,UAAAA,EAAAM,IAAA,CACA,MAAAN,UAAAA,EAAAM,IAAA,EAAA4F,CAAAA,GAAAzN,OAAA,CAAAqN,GAAA,IAAAhB,SAAAA,EAAAG,YAAA,oBACA,CACA,EA4TAnY,EAAAoD,EAAA,KAAA8b,MAAA,GAIA,IAHA,IAAAtC,EAAA,CAAA5c,EAAA,CACAqZ,EAAArZ,EAEAqZ,EAAAC,UAAA,GAAAP,GAAAM,EAAA,UACA,GAAAF,GAAAE,EAAAC,UAAA,GACAsD,EAAA/c,IAAA,CAAAwZ,EAAAC,UAAA,CAAAzC,IAAA,EACAwC,EAAAA,EAAAC,UAAA,CAAAzC,IAAA,CACA,QACA,CAEA+F,EAAA/c,IAAA,CAAAwZ,EAAAC,UAAA,EACAD,EAAAA,EAAAC,UAAA,CAGA,IAtBAoE,EAuBA/G,EADAwI,EAAA,GAEAC,EAAA,GA6BA,GA3BApS,EAAA4P,EAAA,SAAA5E,CAAA,EACA,IAAAqH,EAAA/G,GAAAN,EAGA,OAAAA,EAAAiB,OAAA,CAAAC,WAAA,KACAvC,EAAAqB,EAAAG,YAAA,SACAxB,EAAA0I,GAAAzG,GAAAjC,IAAAA,GAMA7I,EAFAiK,GAAAC,GAAA1D,KAAA,MAEA,kBACA8K,CAAAA,EAAA,IAGAD,EAAAtf,IAAA,CAAA0d,EAAA/B,yBAAA,CAAAxD,EAAA9W,EAAAoe,UAAA,gCAAApe,EAAAoe,UAAA,mBACA,GAEApe,EAAAoe,UAAA,mBACAH,CAAAA,CAAA,aAAA/G,GAAApY,EAAA,EAGA2W,GACAwI,CAAAA,CAAA,eAAAxI,CAAA,EAGAyI,EACA,SAGA,IAAA/d,EAAA+L,EAAA,KAAA+O,qBAAA,CAAA/Y,EAAAoQ,IAAA,GACA+L,UAAAJ,CACA,EAAO,KAAAxC,oBAAA,CAAAC,IAGP,OADA1b,EAAAse,OAAA,CAAAhC,EAAAnc,GACA,EACA,CACA,EAGAoe,UAAA,SAAA9I,CAAA,EACAvL,OAAAsL,QAAA,CAAAC,IAAA,CAAAA,CACA,EACA+I,qBAAA,SAAAxe,CAAA,EACA,IAAAye,EAAA,KAEAlM,EAAA,SAAArQ,CAAA,EACAA,EAAAA,GAAAgI,OAAA8H,KAAA,CAEAyM,EAAArC,aAAA,CAAAla,EAAAlC,EACA,EAEA8R,GAAAxH,SAAA,SAAAiI,EAAA,OAEAT,GAAAxH,SAAA,SAAAiI,EAAA,OAEAT,GAAAxH,SAAA,QAAAiI,EAAA,MACA,EACAqJ,kBAAA,GACAa,WAAA,KACAuB,OAAAhN,KAAAA,EACA0N,KAAA,SAAA1e,CAAA,EACA,IAAA2e,CAEA,mBAAA3e,EAAA4e,aAAA,EACA,MAAAZ,MAAA,CAAAhe,EAAA4e,aAAA,EAIA,OAAAD,CAAAA,EAAA,KAAAX,MAAA,GAAAW,KAAA,IAAAA,GAAAA,EAAA3B,aAAA,EACA,MAAAgB,MAAA,CAAAhB,aAAA,MAAAgB,MAAA,CAAAhB,aAAA,CAAA6B,GAAA,UAAAzN,CAAA,EACA,WAAA0N,OAAA1N,EACA,EAAO,EAGP,KAAAqL,UAAA,KAAAhD,GAAAzZ,EAAAoe,UAAA,cACA,EACAW,oBAAA,SAAAC,CAAA,CAAAhf,CAAA,EACA,IAAAif,EAAAjf,EAAAoe,UAAA,UAEA,QAAAnE,kBAAA,CAAAxP,OAAA,CAAAwU,GAAA,IACAtU,EAAAC,GAAA,+CAAAqU,EAAA,KACA,MACA,CAEA,KAAAhF,kBAAA,CAAAtb,IAAA,CAAAsgB,GAEAD,GAAAA,EAAA,QAAAA,EAAA,kCAAAhf,EAAAoe,UAAA,iBAEAY,EAAA,mBACA,MAAApD,iBAAA,CAAAoD,EAAA,mBAGA,KAAAR,oBAAA,CAAAxe,IAEAA,EAAA,gBAEA,EAMAkf,kBAAA,SAAAD,CAAA,CAAAE,CAAA,CAAAC,CAAA,EACA,IAAAH,EACA,SAGAE,EAAA,GAAAA,GAAA,GAAAA,EACAC,EAAA,GAAAA,GAAA,GAAAA,EAGA,QAFAC,EAAA,EAEAtgB,EAAA,EAAoBA,EAAAkgB,EAAAhgB,MAAA,CAAkBF,IACtCsgB,GAAAJ,EAAApY,UAAA,CAAA9H,GAGA,OAAAsgB,EAAAF,EAAAC,CACA,EACAE,mBAAA,WACA,OAAA9S,EAAAlC,SAAA+O,gBAAA,CACA,CACA,GAEAkG,SAj5CA7f,CAAA,EACA,QAAA8f,KAAA9f,EACA,mBAAAA,CAAA,CAAA8f,EAAA,EACA9f,CAAAA,CAAA,CAAA8f,EAAA,CAAA9f,CAAA,CAAA8f,EAAA,CAAApe,IAAA,CAAA1B,EAAA,CAGA,EA24CAsa,IAEAyF,SA3uCA/f,CAAA,EACA,QAAA8f,KAAA9f,EACA,mBAAAA,CAAA,CAAA8f,EAAA,EACA9f,CAAAA,CAAA,CAAA8f,EAAA,CAAA/R,GAAA/N,CAAA,CAAA8f,EAAA,EAGA,EAquCAxF,IAEA,IAAA0F,GAAA,oCAEAC,GAAA,CACAC,aAAA,WACA,QACA,EACAxU,MAAA,SAAAyU,CAAA,EACAlV,EAAAS,KAAA,uBAAAyU,EACA,EACAC,IAAA,SAAA1b,CAAA,EACA,IAIA,QAHA2b,EAAA3b,EAAA,IACA4b,EAAA1V,SAAA2V,MAAA,CAAA7M,KAAA,MAEArU,EAAA,EAAsBA,EAAAihB,EAAA/gB,MAAA,CAAeF,IAAA,CAGrC,IAFA,IAAAwI,EAAAyY,CAAA,CAAAjhB,EAAA,CAEAwI,KAAAA,EAAAvB,MAAA,KACAuB,EAAAA,EAAAoI,SAAA,GAAApI,EAAAtI,MAAA,EAGA,GAAAsI,IAAAA,EAAAkD,OAAA,CAAAsV,GACA,OAAAtO,mBAAAlK,EAAAoI,SAAA,CAAAoQ,EAAA9gB,MAAA,CAAAsI,EAAAtI,MAAA,EAEA,CACA,CAAM,MAAAqE,EAAA,EAEN,WACA,EACA4c,MAAA,SAAA9b,CAAA,EACA,IAAA6b,EAEA,IACAA,EAAAE,KAAAD,KAAA,CAAAP,GAAAG,GAAA,CAAA1b,KAAA,EACA,CAAM,MAAAd,EAAA,CACN,CAEA,OAAA2c,CACA,EACAG,IAAA,SAAAhc,CAAA,CAAA1D,CAAA,CAAA2f,CAAA,CAAAC,CAAA,CAAAC,CAAA,EACA,IACA,IAAAC,EAAA,GACAC,EAAA,GACAC,EAAA,GAEA,GAAAJ,EAAA,CACA,IAAA1O,EAAAtH,SAAAkL,QAAA,CAAAmL,QAAA,CAAA9O,KAAA,CAAA6N,IACAkB,EAAAhP,EAAAA,CAAA,OACA4O,EAAAI,EAAA,aAA8BA,EAAA,EAC9B,CAEA,GAAAP,EAAA,CACA,IAAAQ,EAAA,IAAAhR,KACAgR,EAAAC,OAAA,CAAAD,EAAAhE,OAAA,GAAAwD,MAAAA,GACAI,EAAA,aAAqBI,EAAAE,WAAA,EACrB,CAEAR,GACAG,CAAAA,EAAA,UAAoB,EAGpB,IAAAM,EAAA5c,EAAA,IAAA8M,mBAAAiP,KAAAc,SAAA,CAAAvgB,IAAA+f,EAAA,WAAiGD,EAAAE,EAEjG,OADApW,SAAA2V,MAAA,CAAAe,EACAA,CACA,CAAM,MAAA1d,EAAA,CACN,MACA,CACA,EACA4d,OAAA,SAAA9c,CAAA,CAAAkc,CAAA,EACA,IACAX,GAAAS,GAAA,CAAAhc,EAAA,MAAAkc,EACA,CAAM,MAAAhd,EAAA,CACN,MACA,CACA,CACA,EACA6d,GAAA,KACAC,GAAA,CACAxB,aAAA,WACA,GAAAuB,OAAAA,GACA,OAAAA,GAGA,IAAAE,EAAA,GAEA,GAAAnX,OACA,IACA,IAAA9K,EAAA,kBAEAgiB,GAAAhB,GAAA,CAAAhhB,EADA,OAGA,UAAAgiB,GAAAtB,GAAA,CAAA1gB,IACAiiB,CAAAA,EAAA,IAGAD,GAAAF,MAAA,CAAA9hB,EACA,CAAQ,MAAAkE,EAAA,CACR+d,EAAA,EACA,MAEAA,EAAA,GAQA,OALAA,GACA1W,EAAAS,KAAA,2DAGA+V,GAAAE,EACAA,CACA,EACAjW,MAAA,SAAAyU,CAAA,EACAlV,EAAAS,KAAA,wBAAAyU,EACA,EACAC,IAAA,SAAA1b,CAAA,EACA,IACA,OAAA8F,OAAAoX,YAAA,CAAAC,OAAA,CAAAnd,EACA,CAAM,MAAAd,EAAA,CACN8d,GAAAhW,KAAA,CAAA9H,EACA,CAEA,WACA,EACA4c,MAAA,SAAA9b,CAAA,EACA,IACA,OAAA+b,KAAAD,KAAA,CAAAkB,GAAAtB,GAAA,CAAA1b,KAAA,EACA,CAAM,MAAAd,EAAA,CACN,CAEA,WACA,EACA8c,IAAA,SAAAhc,CAAA,CAAA1D,CAAA,EACA,IACAwJ,OAAAoX,YAAA,CAAAE,OAAA,CAAApd,EAAA+b,KAAAc,SAAA,CAAAvgB,GACA,CAAM,MAAA4C,EAAA,CACN8d,GAAAhW,KAAA,CAAA9H,EACA,CACA,EACA4d,OAAA,SAAA9c,CAAA,EACA,IACA8F,OAAAoX,YAAA,CAAAG,UAAA,CAAArd,EACA,CAAM,MAAAd,EAAA,CACN8d,GAAAhW,KAAA,CAAA9H,EACA,CACA,CACA,EAIAoe,GAAA7iB,EAAAA,EAAA,GAA2DuiB,IAAA,GAAiB,CAC5ElB,MAAA,SAAA9b,CAAA,EACA,IACA,IAAAud,EAAA,GAEA,IAIAA,CAFAA,EAAAhC,GAAAO,KAAA,CAAA9b,IAAA,IAEA,aACAub,GAAAS,GAAA,CAAAhc,EAAA,CACAwd,YAAAD,EAAA,aAGA,CAAQ,MAAAre,EAAA,EAER,IAAA5C,EAAAwL,EAAAyV,EAAAxB,KAAAD,KAAA,CAAAkB,GAAAtB,GAAA,CAAA1b,IAAA,OAGA,OADAgd,GAAAhB,GAAA,CAAAhc,EAAA1D,GACAA,CACA,CAAM,MAAA4C,EAAA,CACN,CAEA,WACA,EACA8c,IAAA,SAAAhc,CAAA,CAAA1D,CAAA,CAAA2f,CAAA,CAAAC,CAAA,CAAAC,CAAA,EACA,IACAa,GAAAhB,GAAA,CAAAhc,EAAA1D,GAEAA,EAAAkhB,WAAA,EACAjC,GAAAS,GAAA,CAAAhc,EAAA,CACAwd,YAAAlhB,EAAAkhB,WAAA,EACSvB,EAAAC,EAAAC,EAET,CAAM,MAAAjd,EAAA,CACN8d,GAAAhW,KAAA,CAAA9H,EACA,CACA,EACA4d,OAAA,SAAA9c,CAAA,CAAAkc,CAAA,EACA,IACApW,OAAAoX,YAAA,CAAAG,UAAA,CAAArd,GACAub,GAAAuB,MAAA,CAAA9c,EAAAkc,EACA,CAAM,MAAAhd,EAAA,CACN8d,GAAAhW,KAAA,CAAA9H,EACA,CACA,CACA,GACAue,GAAA,GAEAC,GAAA,CACAlC,aAAA,WACA,QACA,EACAxU,MAAA,SAAAyU,CAAA,EACAlV,EAAAS,KAAA,yBAAAyU,EACA,EACAC,IAAA,SAAA1b,CAAA,EACA,OAAAyd,EAAA,CAAAzd,EAAA,MACA,EACA8b,MAAA,SAAA9b,CAAA,EACA,OAAAyd,EAAA,CAAAzd,EAAA,MACA,EACAgc,IAAA,SAAAhc,CAAA,CAAA1D,CAAA,EACAmhB,EAAA,CAAAzd,EAAA,CAAA1D,CACA,EACAwgB,OAAA,SAAA9c,CAAA,EACA,OAAAyd,EAAA,CAAAzd,EAAA,CAEA,EACA2d,GAAA,KAEAC,GAAA,CACApC,aAAA,WACA,GAAAmC,OAAAA,GACA,OAAAA,GAKA,GAFAA,GAAA,GAEA7X,OACA,IACA,IAAA9K,EAAA,cAEA4iB,GAAA5B,GAAA,CAAAhhB,EADA,OAGA,UAAA4iB,GAAAlC,GAAA,CAAA1gB,IACA2iB,CAAAA,GAAA,IAGAC,GAAAd,MAAA,CAAA9hB,EACA,CAAQ,MAAAkE,EAAA,CACRye,GAAA,EACA,MAEAA,GAAA,GAGA,OAAAA,EACA,EACA3W,MAAA,SAAAyU,CAAA,EACAjW,EAAAC,KAAA,EACAc,EAAAS,KAAA,0BAAAyU,EAEA,EACAC,IAAA,SAAA1b,CAAA,EACA,IACA,OAAA8F,OAAA+X,cAAA,CAAAV,OAAA,CAAAnd,EACA,CAAM,MAAAd,EAAA,CACN0e,GAAA5W,KAAA,CAAA9H,EACA,CAEA,WACA,EACA4c,MAAA,SAAA9b,CAAA,EACA,IACA,OAAA+b,KAAAD,KAAA,CAAA8B,GAAAlC,GAAA,CAAA1b,KAAA,IACA,CAAM,MAAAd,EAAA,CACN,CAEA,WACA,EACA8c,IAAA,SAAAhc,CAAA,CAAA1D,CAAA,EACA,IACAwJ,OAAA+X,cAAA,CAAAT,OAAA,CAAApd,EAAA+b,KAAAc,SAAA,CAAAvgB,GACA,CAAM,MAAA4C,EAAA,CACN0e,GAAA5W,KAAA,CAAA9H,EACA,CACA,EACA4d,OAAA,SAAA9c,CAAA,EACA,IACA8F,OAAA+X,cAAA,CAAAR,UAAA,CAAArd,EACA,CAAM,MAAAd,EAAA,CACN0e,GAAA5W,KAAA,CAAA9H,EACA,CACA,CACA,EAuCA,SAAA4e,GAAAjD,CAAA,CAAAkD,CAAA,EACAC,GAAA,GAAAnD,EAAAkD,EACA,CAYA,SAAAE,GAAApD,CAAA,CAAAkD,CAAA,EACAC,GAAA,GAAAnD,EAAAkD,EACA,CAUA,SAAAG,GAAArD,CAAA,CAAAkD,CAAA,EACA,MAAAI,MAAAA,GAAAtD,EAAAkD,EACA,CAWA,SAAAK,GAAAvD,CAAA,CAAAkD,CAAA,QACA,EAAAM,SA8EAN,CAAA,EACA,GAAAA,GAAAA,EAAAO,UAAA,EACA,IAAAC,EAAAR,GAAAA,EAAAjY,MAAA,EAAAD,EACA2Y,EAAAD,EAAA,cACAE,EAAA,GASA,OAPA/W,EAAA,CAAA8W,EAAA,WACAA,EAAA,aAAAD,EAAA,qBAAAG,CAAA,EACAlW,EAAA,iBAAAkW,IACAD,CAAAA,EAAA,GAEA,GAEAA,CACA,CAEA,QACA,EA/FAV,IAIAI,MAAAA,GAAAtD,EAAAkD,EACA,CAYA,SAAAY,GAAA9D,CAAA,CAAAkD,CAAA,EAGAa,GAFAb,EAAAA,GAAA,IAEAjB,MAAA,CAAA+B,GAAAhE,EAAAkD,GAAA,EAAAA,EAAAe,oBAAA,CACA,CAUA,SAAAF,GAAAb,CAAA,QAGA,iBAAAA,CAFAA,EAAAA,GAAA,IAEAgB,eAAA,CACA/B,GAGAe,wBAAAA,EAAAgB,eAAA,CACAzB,GAGA/B,EACA,CAUA,SAAAsD,GAAAhE,CAAA,CAAAkD,CAAA,EAEA,OAAAA,CADAA,EAAAA,GAAA,IACAiB,iBAAA,EA9GA,kBA8GA,EAAAnE,CACA,CAUA,SAAAsD,GAAAtD,CAAA,CAAAkD,CAAA,EACA,OAAAa,GAAAb,GAAArC,GAAA,CAAAmD,GAAAhE,EAAAkD,GACA,CA2CA,SAAAC,GAAAiB,CAAA,CAAApE,CAAA,CAAAkD,CAAA,MA5vDAziB,EA6vDA,IAAAqN,GAAAkS,IAAA,CAAAA,EAAAhgB,MAAA,EACA6L,QAAAM,KAAA,SAAAiY,CAAAA,EAAA,mDACA,MACA,CAIAL,GAFAb,EAAAA,GAAA,IAEA/B,GAAA,CAAA6C,GAAAhE,EAAAkD,GAAAkB,EAAA,IAAAC,CApwDA5jB,EAowDAyiB,EAAAoB,gBAAA,CAnwDArf,mBAAAA,EAAAjC,IAAA,CAAAvC,IAmwDAyiB,EAAAoB,gBAAA,MAAApB,EAAAe,oBAAA,CAAAf,EAAAqB,YAAA,EAEArB,EAAA7D,OAAA,EAAA+E,GAEAlB,EAAA7D,OAAA,CAAA6D,EAAAsB,gBAAA,YAAAtB,EAAAuB,iBAAA,KAA0F,CAC1FC,eAAA,EACA,EAEA,CAEA,SAAAC,GAAAC,CAAA,CAAAC,CAAA,EACA,IAAAC,EAAA,GAEA,IACA,IAAA9E,EAAA4E,EAAAzF,UAAA,UACAsE,EAAAmB,EAAAzF,UAAA,gBACA+E,EAAAU,EAAAzF,UAAA,uCACAgF,EAAAS,EAAAzF,UAAA,qCAAApN,KAAAA,EACA/G,EAAA4Z,EAAAzF,UAAA,WAEAa,GAEA8E,CAAAA,EAAAvB,GAAAvD,EAAA,CACAyD,WAAAA,EACAS,gBAAAA,EACAC,kBAAAA,EACAlZ,OAAAD,CACA,EAAO,CAEP,CAAI,MAAA3G,EAAA,CACJwgB,GACAhZ,QAAAM,KAAA,6DAAA9H,EAEA,CAEA,OAAAygB,CACA,CAWA,SAAAC,GAAAH,CAAA,CAAAI,CAAA,CAAAH,CAAA,EACA,kBAGA,QAFAC,EAAAH,GAAAC,EAAAC,GAEA/Y,EAAA/L,UAAAC,MAAA,CAAA+L,EAAA,MAAAD,GAAAE,EAAA,EAAwEA,EAAAF,EAAaE,IACrFD,CAAA,CAAAC,EAAA,CAAAjM,SAAA,CAAAiM,EAAA,CAGA,IAAA8Y,EAGA,OAAAE,EAAArlB,KAAA,MAAAoM,GAGA,IAAA8N,EAAA9N,CAAA,CAAAA,EAAA/L,MAAA,IAEA,mBAAA6Z,GACAA,EAAA,EAIA,CACA,CAEA,IAAAoL,GAAA,OAOAC,GAAA,WACA,SAAAA,EAAAN,CAAA,EACA,IAAAlI,EAAA,KAEA5b,EAAA,KAAAokB,GAEA,KAAAC,QAAA,CAAAP,EAqBA,KAAAzD,GAAA,CAAA4D,GAAAH,EAAA,SAAAxX,CAAA,CAAAgY,CAAA,CAAAvL,CAAA,EACA,IAAAzP,EAAAsS,EAAA2I,UAAA,CAAAjY,EAAAgY,GAaA,OAXAvX,GAAAT,IACAyM,CAAAA,EAAAuL,CAAA,EAIA1I,EAAA4I,WAAA,mBACA5I,EAAAyI,QAAA,CAAAI,WAAA,CAAAC,oBAAA,CAAAna,SAAAmJ,QAAA,EAIApK,CAAA,CAAA6a,GAAA,CAAAhY,EAAA,GAAmC+G,GAAA2D,iBAAA,GAAA+E,EAAAyI,QAAA,CAAAI,WAAA,CAAAE,iBAAA,GAAArb,CAAA,CAAA6a,GAAA,EACnCvI,EAAAgJ,aAAA,CAAAtb,EAAAyP,EACA,GAuBA,KAAA8L,QAAA,CAAAZ,GAAAH,EAAA,SAAAxX,CAAA,CAAAgY,CAAA,CAAAvL,CAAA,EACA,IAAAzP,EAAAsS,EAAAkJ,eAAA,CAAAxY,EAAAgY,GAMA,OAJAvX,GAAAT,IACAyM,CAAAA,EAAAuL,CAAA,EAGA1I,EAAAgJ,aAAA,CAAAtb,EAAAyP,EACA,EACA,CA0FA,OAxFAvY,EAAA4jB,EAAA,EACA/kB,IAAA,WACAsB,MAAA,WACA,YAAA0jB,QAAA,CAAAlgB,QAAA,YACA,CACA,EAAG,CACH9E,IAAA,gBACAsB,MAAA,SAAA2I,CAAA,CAAAyP,CAAA,EACAzP,EAAA,YAAAkb,WAAA,UACAlb,EAAA,kBAAA+a,QAAA,CAAAU,eAAA,GAEA,IAAAC,EAAA,KAAAX,QAAA,CAAAY,YAAA,eAEAC,EAAA,KAAAb,QAAA,CAAAY,YAAA,aAEAE,EAAA,KAAAd,QAAA,CAAAY,YAAA,+BAEAD,GACA1b,CAAAA,EAAA,WAAA0b,CAAA,EAGAE,GACA5b,CAAAA,EAAA,SAAA4b,CAAA,EAGAC,GACA7b,CAAAA,EAAA,2BAAA6b,CAAA,EAGA,IAAAC,EAAAC,SAx7DAA,EAAA1lB,CAAA,EASA,OARAoM,EAAApM,EAAA,SAAAoO,CAAA,CAAAC,CAAA,EANA7J,iBAAAA,EAAAjC,IAAA,CAOA6L,GACApO,CAAA,CAAAqO,EAAA,CAAAf,GAAAc,GACMhB,GAAAgB,IACNpO,CAAAA,CAAA,CAAAqO,EAAA,CAAAqX,EAAAtX,EAAA,CAEA,GAEApO,CACA,EA86DA2J,GAEAgc,EAAApX,GAAAkX,EAAA,KAAAZ,WAAA,kCAIAe,EAAA7W,GAFA0R,KAAAc,SAAA,CAAAkE,IAQA,OAJA,KAAAf,QAAA,CAAAO,aAAA,MAAAJ,WAAA,yBACAlb,KAAAic,CACA,EAAO,GAAI,KAAAlB,QAAA,CAAAmB,iBAAA,CAAAzM,EAAAuM,IAEXA,CACA,CACA,EAAG,CACHjmB,IAAA,cACAsB,MAAA,SAAA8kB,CAAA,EACA,YAAApB,QAAA,CAAAhG,UAAA,CAAAoH,EACA,CACA,EAAG,CACHpmB,IAAA,wBACAsB,MAAA,SAAA2L,CAAA,EACA,MAAAA,iBAAAA,GAAAA,WAAAA,GAAAA,eAAAA,GAAAA,aAAAA,GAAAA,+BAAAA,CACA,CAGA,EAAG,CACHjN,IAAA,aACAsB,MAAA,SAAA2L,CAAA,CAAAgY,CAAA,EACA,YAAAoB,eAAA,CAAAvB,GAAA7X,EAAAgY,EACA,CACA,EAAG,CACHjlB,IAAA,kBACAsB,MAAA,SAAA2L,CAAA,CAAAgY,CAAA,EACA,YAAAoB,eAAA,CAjJA,YAiJApZ,EAAAgY,EACA,CACA,EAAG,CACHjlB,IAAA,kBACAsB,MAAA,SAAAglB,CAAA,CAAArZ,CAAA,CAAAgY,CAAA,EACA,IAAAhI,EAAA,KAEAhT,EAAA,GACAlJ,EAAA,GAaA,OAXA2M,GAAAT,GACAP,EAAAO,EAAA,SAAAyB,CAAA,CAAAC,CAAA,EACAsO,EAAAsJ,qBAAA,CAAA5X,IACA5N,CAAAA,CAAA,CAAA4N,EAAA,CAAAD,CAAAA,CAEA,GAEA3N,CAAA,CAAAkM,EAAA,CAAAgY,EAGAhb,CAAA,CAAAqc,EAAA,CAAAvlB,EACAkJ,CACA,CACA,EAAG,EAEH8a,CACA,IAEAyB,GAAA,wBACAC,GAAA,yBACAC,GAAA,0BACAC,GAAA,yBACAC,GAAA,SAAAhH,CAAA,CAAAwF,CAAA,EACA,IAAAyB,EAAAjnB,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,OACAknB,EAAAlnB,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,OACAmnB,EAAAnH,EAAA,aACAoH,EAAApH,EAAA,oBAEA,GAAAmH,GAEA,GAAAxjB,MAAAC,OAAA,CAAAujB,GAAA,CAGA,IAFAE,EAEAC,EAAA,GAEA,GAAAH,EACA,QAAApnB,EAAA,EAAwBA,EAAAonB,EAAAlnB,MAAA,CAAkBF,IAC1CunB,CAAA,CAAAH,CAAA,CAAApnB,EAAA,IAIAylB,CAAAA,GAAAA,EAAA+B,QAAA,CAAAF,CAAAA,EAAAA,EAAA,GAAqET,GAAAO,GAAA9mB,EAAAgnB,EAAAR,GAAAS,GAAAD,CAAA,EACrE,KAAM,CAIN,IAHAG,EAGAC,EAAAN,EACAO,EAAAN,CAEApH,CAAAA,EAAA2H,yBAAA,GAEAF,EAAA5nB,EAAAA,EAAA,GAA0DonB,GAAAQ,GAC1DC,EAAA7nB,EAAAA,EAAA,GAAiEqnB,GAAAQ,IAGjElC,GAAAA,EAAA+B,QAAA,CAAAC,CAAAA,EAAAA,EAAA,GAAsEZ,GAAAxnB,OAAAD,IAAA,CAAAsoB,GAAA,KAA6GpnB,EAAAmnB,EAAAX,GAAAY,GAAA,IAAoGpnB,EAAAmnB,EAAAT,GAAAW,GAAA,IAA0GF,CAAA,EACjY,OAEAhC,IACAA,EAAAoC,UAAA,CAAAhB,IACApB,EAAAoC,UAAA,CAAAf,IACArB,EAAAoC,UAAA,CAAAb,IAGA,EACAc,GAAA,WACA,SAAAA,EAAA7mB,CAAA,EACAD,EAAA,KAAA8mB,GAEA,KAAA7mB,QAAA,CAAAA,EACA,KAAA8mB,iBAAA,IACA,KAAAC,gBAAA,IACA,KAAAC,wBAAA,IACA,KAAAC,wBAAA,IACA,KAAAC,0BAAA,GACA,CAiSA,OA/RA3mB,EAAAsmB,EAAA,EACAznB,IAAA,WACAsB,MAAA,WACA,OAAAtC,OAAAD,IAAA,MAAAgpB,eAAA,GACA,CACA,EAAG,CACH/nB,IAAA,kBACAsB,MAAA,WACA,IAAA0mB,EAAA,KAAApnB,QAAA,CAAAglB,YAAA,CAAAa,IACAwB,EAAA,KAAArnB,QAAA,CAAAglB,YAAA,CAAAc,IAEA,IAAAuB,EACA,OAAAD,GAAA,GAOA,QAJAE,EAAApb,EAAA,GAAiCkb,GAEjCG,EAAAnpB,OAAAD,IAAA,CAAAkpB,GAEAtoB,EAAA,EAAsBA,EAAAwoB,EAAAtoB,MAAA,CAA2BF,IACjDsoB,CAAA,IAAAA,CAAA,CAAAE,CAAA,CAAAxoB,EAAA,EACA,OAAAuoB,CAAA,CAAAC,CAAA,CAAAxoB,EAAA,EAEAuoB,CAAA,CAAAC,CAAA,CAAAxoB,EAAA,EAAAsoB,CAAA,CAAAE,CAAA,CAAAxoB,EAAA,EAaA,OATA,KAAA+nB,iBAAA,GACAhc,QAAA0c,IAAA,wCACAJ,aAAAA,EACAC,gBAAAA,EACAC,WAAAA,CACA,GACA,KAAAR,iBAAA,KAGAQ,CACA,CACA,EAAG,CACHloB,IAAA,kBACAsB,MAAA,WAEA,OAAA0lB,IADA,CAAApmB,QAAA,CAAAglB,YAAA,CAAAe,KACA,EACA,CAWA,EAAG,CACH3mB,IAAA,qBACAsB,MAAA,WACA,KAAAumB,wBAAA,GACA,KAAAA,wBAAA,IAEA,KAAAQ,iBAAA,GAEA,CACA,EAAG,CACHroB,IAAA,yBACAsB,MAAA,SAAAgnB,CAAA,EACA,KAAAC,iBAAA,CAAAD,CACA,CACA,EAAG,CACHtoB,IAAA,qBACAsB,MAAA,SAAAknB,CAAA,EACA,KAAAV,0BAAA,CAAAU,CACA,CACA,EAAG,CACHxoB,IAAA,oBACAsB,MAAA,WACA,KAAAumB,wBAAA,GACA,CACA,EAAG,CACH7nB,IAAA,oBACAsB,MAAA,WACA,IAAAib,EAAA,KAEA,KAAAsL,wBAAA,QAAAC,0BAAA,EACAW,WAAA,WACA,CAAAlM,EAAAuL,0BAAA,EAAAvL,EAAAsL,wBAAA,GACAtL,EAAAsL,wBAAA,IAEAtL,EAAAmM,0BAAA,GAEA,EAAS,EAET,CACA,EAAG,CACH1oB,IAAA,6BACAsB,MAAA,WACA,IAAA2b,EAAA,KAEA,KAAA0L,kBAAA,KASA,IAAAzC,EAAA7W,GAPA0R,KAAAc,SAAA,EACAhC,MAFA,KAAAjf,QAAA,CAAAoe,UAAA,UAGAwD,YAAA,KAAA5hB,QAAA,CAAA8kB,eAAA,GACAkD,OAAA,KAAAhoB,QAAA,CAAAioB,SAAA,GACAN,kBAAA,KAAAA,iBAAA,IAKA,KAAA3nB,QAAA,CAAA2kB,aAAA,MAAA3kB,QAAA,CAAAoe,UAAA,6BACA/U,KAAAic,CACA,EAAO,CACPrB,OAAA,MACA,EAAO,KAAAjkB,QAAA,CAAAulB,iBAAA,UAAAvG,CAAA,EAGP3C,EAAAsL,iBAAA,CAAA3W,KAAAA,EAEAqL,EAAA6L,oBAAA,CAAAlJ,GAGA3C,EAAA0L,kBAAA,KAEA1L,EAAAoL,iBAAA,EACA,GACA,CAYA,EAAG,CACHroB,IAAA,iBACAsB,MAAA,SAAAtB,CAAA,EACA,IAAA+iB,EAAAnjB,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,OAEA,SAAAmpB,QAAA,GAEA,OADArd,QAAA0c,IAAA,4BAAApoB,EAAA,iDACA,GAGA,IAAAgpB,EAAA,KAAAjB,eAAA,GAAA/nB,EAAA,CAUA,OARA+iB,EAAAkG,UAAA,iBAAAlG,GAAA,KAAA4E,gBAAA,CAAA3nB,EAAA,GACA,KAAA2nB,gBAAA,CAAA3nB,EAAA,IACA,KAAAY,QAAA,CAAAse,OAAA,yBACAgK,cAAAlpB,EACAmpB,uBAAAH,CACA,IAGAA,CACA,CACA,EAAG,CACHhpB,IAAA,wBACAsB,MAAA,SAAAtB,CAAA,EAEA,OAAAopB,IADA,CAAAC,eAAA,EACA,CAAArpB,EAAA,CAaA,EAAG,CACHA,IAAA,mBACAsB,MAAA,SAAAtB,CAAA,EACA,IAAA+iB,EAAAnjB,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,cAEA,KAAAmpB,QAAA,GAKA,OAAAO,cAAA,CAAAtpB,EAAA+iB,IAJArX,QAAA0c,IAAA,8BAAApoB,EAAA,iDACA,GAIA,CACA,EAAG,CACHA,IAAA,yBACAsB,MAAA,SAAA6R,CAAA,EACA,KAAAyU,wBAAA,CAAAroB,IAAA,CAAA4T,EACA,CACA,EAAG,CACHnT,IAAA,uBACAsB,MAAA,SAAAse,CAAA,EACA,KAAAhf,QAAA,CAAA2oB,oBAAA,IACA,IAAA1C,EAAA,KAAAkB,eAAA,GACAjB,EAAA,KAAAuC,eAAA,GACAzC,GAAAhH,EAAA,KAAAhf,QAAA,CAAAwkB,WAAA,CAAAyB,EAAAC,GAEA,IAAA0C,EAAA,KAAAC,gCAAA,GACA1C,EAAAyC,EAAAzC,KAAA,CACA2C,EAAAF,EAAAE,YAAA,CAEA,KAAA9B,wBAAA,CAAA7nB,OAAA,UAAAoT,CAAA,EACA,OAAAA,EAAA4T,EAAA2C,EACA,EACA,CAaA,EAAG,CACH1pB,IAAA,WACAsB,MAAA,SAAAylB,CAAA,EAGA,GAFA,KAAAW,iBAAA,IAEAX,CAAA,IAAAA,EACA,KAAAnmB,QAAA,CAAAwkB,WAAA,CAAAoC,UAAA,CAAAd,SACQ,GAAAnjB,MAAAC,OAAA,CAAAujB,GAAA,CAGR,QAFA4C,EAAA,GAEAhqB,EAAA,EAAwBA,EAAAonB,EAAAlnB,MAAA,CAAkBF,IAC1CgqB,CAAA,CAAA5C,CAAA,CAAApnB,EAAA,KAGA,KAAAiB,QAAA,CAAAwkB,WAAA,CAAA+B,QAAA,CAAAlnB,EAAA,GAA6DymB,GAAAiD,GAC7D,MACA,KAAA/oB,QAAA,CAAAwkB,WAAA,CAAA+B,QAAA,CAAAlnB,EAAA,GAA6DymB,GAAAK,GAE7D,CAaA,EAAG,CACH/mB,IAAA,iBACAsB,MAAA,SAAAoY,CAAA,EAGA,GAFA,KAAAkQ,sBAAA,CAAAlQ,GAEA,KAAA9Y,QAAA,CAAA2oB,oBAAA,EACA,IAAAM,EAAA,KAAAJ,gCAAA,GAIA/P,EAHAmQ,EAAA9C,KAAA,CACA8C,EAAAH,YAAA,CAGA,CACA,CACA,EAAG,CACH1pB,IAAA,mCACAsB,MAAA,WACA,IAAAylB,EAAA,KAAAgC,QAAA,GACAW,EAAA,KAAA3B,eAAA,GAWA,OACAhB,MAVAA,EAAA5nB,MAAA,UAAA2qB,CAAA,EACA,OAAAJ,CAAA,CAAAI,EAAA,GAUAJ,aARA1qB,OAAAD,IAAA,CAAA2qB,GAAAvqB,MAAA,UAAA4qB,CAAA,EACA,OAAAL,CAAA,CAAAK,EAAA,GACOC,MAAA,UAAAhjB,CAAA,CAAAhH,CAAA,EAEP,OADAgH,CAAA,CAAAhH,EAAA,CAAA0pB,CAAA,CAAA1pB,EAAA,CACAgH,CACA,EAAO,GAIP,CACA,CACA,EAAG,EAEHygB,CACA,IAaAwC,GAAA,sBACAC,GAAA,UAEAC,GAAA,WACAC,GAAA,yCACAC,GAAA,6CACAC,GAAA,SACAC,GAAA,yBACAC,GAAA,cACAC,GAAA,CAjBA,QACA,SACA,SACA,QACA,SACA,QACA,QAWAR,GAAAC,GAPA,UAOAC,GAAAC,GAAAE,GAAAC,GAAAC,GAAA,CAMAE,GAAA,WACA,SAAAA,EAAA9L,CAAA,EACAje,EAAA,KAAA+pB,GAIA,IAAA7K,EAAA,EAEAjB,CAAAA,EAAA,OACAiB,CAAAA,EAAAjB,EAAA,MAAArW,OAAA,aAAAA,OAAA,aAAAA,OAAA,aAGA,KAAAxH,KAAA,IACA,KAAA4pB,qBAAA,IAEA/L,EAAA,iBACA,KAAA5Z,IAAA,OAAA4Z,EAAA,iBAEA,KAAA5Z,IAAA,OAAA6a,EAAA,WAGA,IAAA+K,EAAAhM,EAAA,YAAAhG,WAAA,EAEA,YAAAgS,GAAAA,KAAAA,EAAAvf,OAAA,kBAAAuf,WAAAA,IACArf,EAAAc,QAAA,6BAAAue,EAAA,4BACAA,EAAAhM,EAAA,sBAGAgM,iBAAAA,GAAA5I,GAAAxB,YAAA,GACA,KAAAqK,OAAA,CAAA7I,GACM4I,wBAAAA,GAAAtI,GAAA9B,YAAA,GACN,KAAAqK,OAAA,CAAAvI,GACMsI,WAAAA,EACN,KAAAC,OAAA,CAAAnI,GAEA,KAAAmI,OAAA,CAAAtK,GAGA,KAAAuK,UAAA,aACA,KAAAC,IAAA,GACA,KAAAC,aAAA,CAAApM,GACA,KAAAqM,IAAA,EACA,CA+PA,OA7PA9pB,EAAAupB,EAAA,EACA1qB,IAAA,aACAsB,MAAA,WACA,IAAAY,EAAA,GAcA,OAZAwK,EAAA,KAAA3L,KAAA,UAAA2N,CAAA,CAAAC,CAAA,EACA,GAAAA,IAAA4b,IAAAlqB,WAAAA,EAAAqO,GAGA,QAFA3P,EAAAC,OAAAD,IAAA,CAAA2P,GAEA/O,EAAA,EAA0BA,EAAAZ,EAAAc,MAAA,CAAiBF,IAC3CuC,CAAA,aAAAkK,MAAA,CAAArN,CAAA,CAAAY,EAAA,GAAA+O,CAAA,CAAA3P,CAAA,CAAAY,EAAA,OAEU2N,EAAAmd,GAAA9b,IACVzM,CAAAA,CAAA,CAAAyM,EAAA,CAAAD,CAAAA,CAEA,GAEAxM,CACA,CACA,EAAG,CACHlC,IAAA,OACAsB,MAAA,WACA,SAAA4pB,QAAA,EAIA,IAAA3gB,EAAA,KAAAsgB,OAAA,CAAA/J,KAAA,MAAA9b,IAAA,EAEAuF,GACA,MAAAxJ,KAAA,CAAA+L,EAAA,GAA+BvC,EAAA,EAE/B,CAOA,EAAG,CACHvK,IAAA,OACAsB,MAAA,WACA,KAAA4pB,QAAA,EAIA,KAAAL,OAAA,CAAA7J,GAAA,MAAAhc,IAAA,MAAAjE,KAAA,MAAAoqB,WAAA,MAAAjK,eAAA,MAAAI,MAAA,CACA,CACA,EAAG,CACHthB,IAAA,SACAsB,MAAA,WAEA,KAAAupB,OAAA,CAAA/I,MAAA,MAAA9c,IAAA,KACA,KAAA6lB,OAAA,CAAA/I,MAAA,MAAA9c,IAAA,IACA,CAGA,EAAG,CACHhF,IAAA,QACAsB,MAAA,WACA,KAAAwgB,MAAA,GACA,KAAA/gB,KAAA,GACA,CAOA,EAAG,CACHf,IAAA,gBACAsB,MAAA,SAAAP,CAAA,CAAAqqB,CAAA,CAAAnK,CAAA,EACA,IAAA1E,EAAA,KAEA,GAAA7O,GAAA3M,GAAA,CACA,SAAAqqB,GACAA,CAAAA,EAAA,QAGA,KAAAD,WAAA,UAAAlK,EAAA,KAAAoK,cAAA,CAAApK,EACA,IAAAqK,EAAA,GASA,GAPA5e,EAAA3L,EAAA,SAAAmJ,CAAA,CAAA+C,CAAA,EACAsP,EAAAxb,KAAA,CAAAuI,cAAA,CAAA2D,IAAAsP,EAAAxb,KAAA,CAAAkM,EAAA,GAAAme,IACA7O,EAAAxb,KAAA,CAAAkM,EAAA,CAAA/C,EACAohB,EAAA,GAEA,GAEAA,EAEA,OADA,KAAAL,IAAA,GACA,EAEA,CAEA,QACA,CAMA,EAAG,CACHjrB,IAAA,WACAsB,MAAA,SAAAP,CAAA,CAAAkgB,CAAA,EACA,IAAAhE,EAAA,KAEA,GAAAvP,GAAA3M,GAAA,CACA,KAAAoqB,WAAA,UAAAlK,EAAA,KAAAoK,cAAA,CAAApK,EACA,IAAAqK,EAAA,GASA,GAPA5e,EAAA3L,EAAA,SAAAmJ,CAAA,CAAA+C,CAAA,EACAlM,EAAAuI,cAAA,CAAA2D,IAAAgQ,EAAAlc,KAAA,CAAAkM,EAAA,GAAA/C,IACA+S,EAAAlc,KAAA,CAAAkM,EAAA,CAAA/C,EACAohB,EAAA,GAEA,GAEAA,EAEA,OADA,KAAAL,IAAA,GACA,EAEA,CAEA,QACA,CACA,EAAG,CACHjrB,IAAA,aACAsB,MAAA,SAAA2L,CAAA,EACAA,KAAA,KAAAlM,KAAA,GACA,YAAAA,KAAA,CAAAkM,EAAA,CACA,KAAAge,IAAA,GAEA,CACA,EAAG,CACHjrB,IAAA,yBACAsB,MAAA,WACA,KAAAqpB,qBAAA,GACA,KAAAxD,QAAA,CAAAtT,GAAAC,cAAA,IACA,KAAA6W,qBAAA,IAEA,CACA,EAAG,CACH3qB,IAAA,wBACAsB,MAAA,SAAA+S,CAAA,EACA,KAAA8S,QAAA,CAAAtT,GAAAU,UAAA,CAAAF,GACA,CAEA,EAAG,CACHrU,IAAA,uBACAsB,MAAA,SAAA+S,CAAA,EACA,KAAA8S,QAAA,EACAoE,UAAAlX,GAAA,KAAAtT,KAAA,sBACAyqB,kBAAA3X,GAAAgC,eAAA,CAAAxB,IAAA,KAAAtT,KAAA,6BACA,EACA,CACA,EAAG,CACHf,IAAA,oBACAsB,MAAA,WACA,OAAAkN,GAAA,CACA+c,UAAA,qBACAC,kBAAA,8BAEA,CAIA,EAAG,CACHxrB,IAAA,aACAsB,MAAA,SAAAP,CAAA,EAOA,OANA2L,EAAA,KAAA3L,KAAA,UAAAmJ,CAAA,CAAA+C,CAAA,EACAA,KAAAlM,GACAA,CAAAA,CAAA,CAAAkM,EAAA,CAAA/C,CAAA,CAEA,GAEAnJ,CACA,CACA,EAAG,CACHf,IAAA,gBACAsB,MAAA,SAAAsd,CAAA,EACA,KAAAyM,cAAA,MAAAF,WAAA,CAAAvM,EAAA,kBACA,KAAA6M,YAAA,CAAA7M,EAAA,qBACA,KAAA8M,mBAAA,CAAA9M,EAAA,wBACA,KAAA+M,UAAA,CAAA/M,EAAA,cACA,CACA,EAAG,CACH5e,IAAA,eACAsB,MAAA,SAAA4pB,CAAA,EACA,KAAAA,QAAA,CAAAA,EAEA,KAAAA,QAAA,CACA,KAAApJ,MAAA,GAEA,KAAAmJ,IAAA,EAEA,CACA,EAAG,CACHjrB,IAAA,sBACAsB,MAAA,SAAA4f,CAAA,EACAA,IAAA,KAAAA,eAAA,GACA,KAAAA,eAAA,CAAAA,EACA,KAAAY,MAAA,GACA,KAAAmJ,IAAA,GAEA,CACA,EAAG,CACHjrB,IAAA,sBACAsB,MAAA,WACA,aAAA4f,eAAA,CAEA,EAAG,CACHlhB,IAAA,aACAsB,MAAA,SAAAggB,CAAA,EACAA,IAAA,KAAAA,MAAA,GACA,KAAAA,MAAA,CAAAA,EACA,KAAAQ,MAAA,GACA,KAAAmJ,IAAA,GAEA,CACA,EAAG,CACHjrB,IAAA,kBACAsB,MAAA,SAAAsqB,CAAA,CAAAnR,CAAA,EACA,IAAAoR,EAAA,KAAA9qB,KAAA,CAAAopB,GAAA,IACA0B,CAAAA,CAAA,CAAAD,EAAA,CAAAnR,EACA,KAAA1Z,KAAA,CAAAopB,GAAA,CAAA0B,EACA,KAAAZ,IAAA,EACA,CACA,EAAG,CACHjrB,IAAA,qBACAsB,MAAA,SAAAsqB,CAAA,EAEA,IAAAnR,EAAAoR,CADA,KAAA9qB,KAAA,CAAAopB,GAAA,KACA,CAAAyB,EAAA,CAOA,OALAngB,GAAAgP,KACA,YAAA1Z,KAAA,CAAAopB,GAAA,CAAAyB,EAAA,CACA,KAAAX,IAAA,IAGAxQ,CACA,CACA,EAAG,CACHza,IAAA,iBACAsB,MAAA,WACA,YAAAP,KAAA,CAAAypB,GAAA,aACA,CACA,EAAG,CACHxqB,IAAA,iBACAsB,MAAA,SAAAwqB,CAAA,EACA,KAAA/qB,KAAA,CAAAypB,GAAA,CAAAsB,EACA,KAAAb,IAAA,EACA,CACA,EAAG,EAEHP,CACA,IA6FAqB,GAAA,WACA,SAAAA,EAAAnrB,CAAA,EACAD,EAAA,KAAAorB,GAEA,KAAAnrB,QAAA,CAAAA,EACA,KAAAorB,cAAA,IACA,KAAAC,SAAA,IACA,KAAAC,IAAA,IAEA,KAAAC,QAAA,CAVA,MAWA,KAAAC,SAAA,CAAAxa,KAAAA,EACA,KAAAya,QAAA,MACA,KAAAC,SAAA,MACA,KAAAC,cAAA,GACA,CAkOA,OAhOAprB,EAAA4qB,EAAA,EACA/rB,IAAA,0BACAsB,MAAA,WACA,KAAAkrB,kBAAA,GACA,KAAAC,wCAAA,GAEA,KAAAC,aAAA,EAEA,CACA,EAAG,CACH1sB,IAAA,UACAsB,MAAA,WACA,YAAA0qB,cAAA,CAEA,EAAG,CACHhsB,IAAA,gBACAsB,MAAA,WACA,KAAA0qB,cAAA,OAAAI,SAAA,GACA,KAAAA,SAAA,GACA,KAAAA,SAAA,CAAAxa,KAAAA,EACA,KAAAoa,cAAA,IAEA,CACA,EAAG,CACHhsB,IAAA,qBACAsB,MAAA,WACA,IAAAqrB,EAAA,OAAA/rB,QAAA,CAAAglB,YAAA,CAAAwE,IACAwC,EAAA,MAAAhsB,QAAA,CAAAoe,UAAA,8BACA,OAAA2N,GAAAC,CACA,CACA,EAAG,CACH5sB,IAAA,6BACAsB,MAAA,WACA,IAAAqrB,EAAA,OAAA/rB,QAAA,CAAAglB,YAAA,CAAAyE,IACAuC,EAAA,KAAAhsB,QAAA,CAAAoe,UAAA,iCACA,OAAA4N,MAAAA,EAAAA,EAAAD,CACA,CACA,EAAG,CACH3sB,IAAA,sBACAsB,MAAA,SAAAse,CAAA,MACAiN,EAAAC,EAKAC,EAAAC,EAMAC,CATA,MAAAV,cAAA,IAEA,KAAA3rB,QAAA,CAAAwkB,WAAA,EAGA,KAAAxkB,QAAA,CAAAwkB,WAAA,CAAA+B,QAAA,CAAA6F,CAAAA,EAAAA,EAAA,GAAsE5C,GAAA,EAAAxK,EAAA,kBAAA3f,EAAA+sB,EAAA3C,GAAA,OAAA0C,CAAAA,EAAAnN,EAAAsN,gBAAA,GAAAH,KAAA,IAAAA,EAAA,OAAAA,EAAAI,0BAAA,EAAAH,CAAA,GAGtE,OAAAH,CAAAA,EAAAjN,EAAAsN,gBAAA,GAAAL,KAAA,IAAAA,GAAAA,EAAAV,QAAA,EAGA,MAAAA,QAAA,QAAAc,CAAAA,EAAArN,EAAAsN,gBAAA,GAAAD,KAAA,IAAAA,EAAA,OAAAA,EAAAd,QAAA,EAGA,OAAAW,CAAAA,EAAAlN,EAAAsN,gBAAA,GAAAJ,KAAA,IAAAA,GAAAA,EAAAM,eAAA,EACA,MAAAA,eAAA,CAAAxN,EAAAsN,gBAAA,CAAAE,eAAA,EAGA,KAAAC,uBAAA,EACA,CACA,EAAG,CACHrtB,IAAA,2CACAsB,MAAA,WACA,IAAAib,EAAA,KAIA,KAAAgQ,cAAA,GACA,KAAAL,IAAA,IACA,KAAAD,SAAA,CAAAlsB,OAAA,UAAA+V,CAAA,EACA,OAAAyG,EAAA+Q,gBAAA,CAAAxX,EACA,IAGA,KAAAyX,aAAA,EACA,CACA,EAAG,CACHvtB,IAAA,gBACAsB,MAAA,WAQA,YAAAtC,OAAAwuB,MAAA,EAIA,MAAAxB,cAAA,QAAAprB,QAAA,CAAAoe,UAAA,+BACA,IAAAyO,EAAA,KAAA7sB,QAAA,CAAAoe,UAAA,qBAEA,MAAAoO,eAAA,EAAAK,MAAAA,EAAA,OAAAA,EAAAL,eAAA,QAAAA,eAAA,CACA,IAAAM,EAAA,YAAAN,eAAA,+BACA,MAAApB,cAAA,IAGA,KAAAprB,QAAA,CAAA+sB,iBAAA,EACAnU,GAAA,KAAA5Y,QAAA,CAAAoe,UAAA,wBAAA5S,MAAA,CAAAshB,EAAA,OAAAthB,MAAA,CAAA5B,EAAAE,WAAA,OAAAkjB,eAAA,CAAA5rB,IAAA,QAGA,KAAA4rB,eAAA,EACA,CACA,CACA,EAAG,CACH5tB,IAAA,6BACAsB,MAAA,SAAAsR,CAAA,EAMA,IALAib,EAaAC,EARAC,EAAAnb,IAAAA,EAAAM,IAAA,UAAA2a,CAAAA,EAAAjb,EAAA3I,IAAA,GAAA4jB,KAAA,IAAAA,EAAA,OAAAA,EAAA/tB,MAAA,IAzNA,EA2NAkuB,EAAA,KAAAptB,QAAA,CAAAqtB,cAAA,CAAAC,6BAAA,CAAAH,EAAAnb,EAAA6H,SAAA,EACA4R,EAAA2B,EAAA3B,QAAA,CACAC,EAAA0B,EAAA1B,SAAA,CAGA,MAAAD,QAAA,GAAAA,GAAA,KAAAC,SAAA,GAAAA,CAAA,SApOA,EACA,EAmOA,CAAAjhB,OAAA,CAAAuH,EAAAM,IAAA,GAGA,QAAA4a,CAAAA,EAAA,KAAAK,WAAA,GAAAL,KAAA,IAAAA,GAAAA,EAAAM,gBAAA,IAGA,KAAA/B,QAAA,CAAAA,EACA,KAAAC,SAAA,CAAAA,CACA,CACA,EAAG,CACHtsB,IAAA,kBACAsB,MAAA,WACA,IAAA+sB,EACApR,EAAA,KAGAqR,EAAA,CAGAC,WAAA,gBACAC,cAAA5c,KAAAA,EACA6c,YAAA,kBACAC,cAAA,GACAC,iBAAA,GACAC,YAAAhd,KAAAA,EACAid,eAAA,GACAC,aAAA,GACAC,iBAAA,EACA,CAKA,MAAAZ,WAAA,CAAArjB,OAAAkkB,KAAA,CAAAlkB,OAAAkkB,KAAA,CAAAC,MAAA,CAAAnkB,OAAAqjB,WAAA,CAIA,QAFAV,EAAA,KAAA7sB,QAAA,CAAAoe,UAAA,sBAEApb,EAAA,EAAAsrB,EAAAlwB,OAAAmwB,OAAA,CAAA1B,GAAA,IAA4F7pB,EAAAsrB,EAAArvB,MAAA,CAA6B+D,IAAA,CACzH,IAAAwrB,EAAAhsB,EAAA8rB,CAAA,CAAAtrB,EAAA,IACA5D,EAAAovB,CAAA,IACA9tB,EAAA8tB,CAAA,IAEApvB,KAAAsuB,GAGAA,CAAAA,CAAA,CAAAtuB,EAAA,CAAAsB,CAAA,CAEA,CAEA,KAAA8qB,SAAA,QAAAiC,CAAAA,EAAA,KAAAF,WAAA,GAAAE,KAAA,IAAAA,EAAA,OAAAA,EAAAxrB,IAAA,MAAApD,EAAA,CACAysB,KAAA,SAAAtZ,CAAA,EACAA,EAAAyc,SA5NAzc,CAAA,EAKA,GAAAA,GAAAvS,WAAAA,EAAAuS,IAAAA,IAAAA,EAAAM,IAAA,EAAA7S,WAAAA,EAAAuS,EAAA3I,IAAA,GAAA2I,oBAAAA,EAAA3I,IAAA,CAAAqlB,MAAA,EAEA1c,EAAA3I,IAAA,CAAAslB,OAAA,CAAAA,OAAA,CAAA1vB,MAAA,CAJA,KAKA+S,EAAA3I,IAAA,CAAAslB,OAAA,CAAAA,OAAA,CAAA3c,EAAA3I,IAAA,CAAAslB,OAAA,CAAAA,OAAA,CAAAxqB,KAAA,GALA,IAMA6N,EAAA3I,IAAA,CAAAslB,OAAA,CAAAA,OAAA,CAAAhwB,IAAA,oBAKA,QAFAiwB,EAAA,GAEA7vB,EAAA,EAAoBA,EAAAiT,EAAA3I,IAAA,CAAAslB,OAAA,CAAAA,OAAA,CAAA1vB,MAAA,CAAuCF,IAC3DiT,EAAA3I,IAAA,CAAAslB,OAAA,CAAAA,OAAA,CAAA5vB,EAAA,EACAiT,EAAA3I,IAAA,CAAAslB,OAAA,CAAAA,OAAA,CAAA5vB,EAAA,CAAAE,MAAA,CAfA,IAgBA2vB,EAAAjwB,IAAA,CAAAqT,EAAA3I,IAAA,CAAAslB,OAAA,CAAAA,OAAA,CAAA5vB,EAAA,CAAAoF,KAAA,GAhBA,KAgBA,kBAEAyqB,EAAAjwB,IAAA,CAAAqT,EAAA3I,IAAA,CAAAslB,OAAA,CAAAA,OAAA,CAAA5vB,EAAA,CAIAiT,CAAAA,EAAA3I,IAAA,CAAAslB,OAAA,CAAAA,OAAA,CAAAC,CAEA,CAEA,OAAA5c,CACA,EAgMA6c,SA1QAxlB,CAAA,EACA,GAAAA,GAAA5J,WAAAA,EAAA4J,GAAA,CACA,IAAAylB,EAAA3O,KAAAc,SAAA,CAAA5X,GAKA,GAAAylB,EAAA7vB,MAAA,MAQA,IACA8vB,EADAC,EAAAxqB,EAFAsqB,EAAAG,QAAA,CADA,yCAMA,IACA,IAAAD,EAAApqB,CAAA,GAA4B,EAAAmqB,EAAAC,EAAA/qB,CAAA,IAAAZ,IAAA,EAA8B,CAC1D,IAAAwO,EAAAkd,EAAAruB,KAAA,CAGAouB,EADAjd,WAAAA,CAAA,IAAAqd,iBAAA,GAAA/qB,KAAA,MACA2qB,EAAAnnB,OAAA,CAAAkK,CAAA,IArCA,8VAuCAid,EAAAnnB,OAAA,CAAAkK,CAAA,OAEA,CACA,CAAQ,MAAAvO,EAAA,CACR0rB,EAAA9sB,CAAA,CAAAoB,EACA,QAAQ,CACR0rB,EAAAnqB,CAAA,EACA,CACA,CAEA,OAAAsb,KAAAD,KAAA,CAAA4O,EACA,CAEA,OAAAzlB,CACA,EAmOA2I,IAEAqK,EAAA8S,0BAAA,CAAAnd,GAEA,IAAAkD,EAAA,CACAka,eAAApd,EACAqd,YAAAhT,EAAAqP,SAAA,CACA4D,WAAAjT,EAAAoP,QAAA,EAGApP,EAAArc,QAAA,CAAAuvB,eAAA,CAAAC,IAAA,iBAEAnT,EAAArc,QAAA,CAAAuvB,eAAA,CAAAC,IAAA,iBAAAhkB,MAAA,CAAAwG,EAAAM,IAAA,GAEA+J,EAAAiP,IAAA,CACAjP,EAAAqQ,gBAAA,CAAAxX,GAEAmH,EAAAgP,SAAA,CAAA1sB,IAAA,CAAAuW,EAEA,EACAua,QAAAvlB,OAAAwlB,kBAAA,OAAAC,0BAAA,IAAAzlB,OAAAwlB,kBAAA,CAAAE,sBAAA,QACOlC,IAGP,KAAA1tB,QAAA,CAAA6vB,eAAA,UAAAvT,CAAA,EACA,GAAAA,cAAAA,EAAA,CACA,IAAAwT,CAEA,QAAAA,CAAAA,EAAAzT,EAAAkR,WAAA,GAAAuC,KAAA,IAAAA,GAAAA,EAAAC,cAAA,cACAta,KAAAvL,OAAAsL,QAAA,CAAAC,IAAA,EAEA,CACA,EACA,CACA,EAAG,CACHrW,IAAA,mBACAsB,MAAA,SAAAwU,CAAA,EAEA,KAAAlV,QAAA,CAAAse,OAAA,aAAApJ,EAAA,CACA8a,UAAA,MACA/L,OAAA,OACAsH,SAAA,KAAAA,QAAA,CACA0E,YAAA,GACAC,UAAA,mBACAC,SAAA,CACAC,oBAAAlb,IAAAA,EAAAka,cAAA,CAAA9c,IAAA,CAEA,EACA,CACA,EAAG,EAEH6Y,CACA,IAEAkF,GAAA,CAEAC,UAAA,EACAC,WAAA,EACAnsB,KAAA,EAEAosB,UAAA,EACAC,cAAA,EACAC,YAAA,EACAC,YAAA,EACAC,WAAA,EACAC,kBAAA,EACAC,gBAAA,EACAC,aAAA,GACAC,sBAAA,GACAC,WAAA,GACAC,aAAA,GACAC,cAAA,GACAC,YAAA,GACAC,gBAAA,GACAC,gBAAA,GACAC,cAAA,GACAC,gBAAA,GACAC,qBAAA,GACAC,eAAA,GACAC,aAAA,GAEAtf,QAAA,GACAuf,WAAA,GACAC,SAAA,GACAC,KAAA,GACAxZ,GAAA,GACAlH,IAAA,GAEA2gB,YAAA,GACAC,sBAAA,GACAC,eAAA,GACAC,aAAA,GACAC,eAAA,GACAC,cAAA,GACAC,eAAA,GACAC,eAAA,GACAC,iBAAA,GAEAC,SAAA,GACA3Y,UAAA,EAOA,EACA4Y,GAAA,CACA,cAEA,iCAGAC,GAAA,OAFA,MAEA,CACAC,GAAA,WACA,SAAAA,EAAA3yB,CAAA,EACAD,EAAA,KAAA4yB,GAEA,KAAA3yB,QAAA,CAAAA,CACA,CA0IA,OAxIAO,EAAAoyB,EAAA,EACAvzB,IAAA,0BACAsB,MAAA,WACA,KAAAkyB,SAAA,GACA,KAAAC,cAAA,GAEA,KAAAC,aAAA,EAEA,CACA,EAAG,CACH1zB,IAAA,iBACAsB,MAAA,WACA,IAAAib,EAAA,KAEA,SAAAoX,QAAA,CAIA,IACA,KAAAA,QAAA,KAAAC,oBAAA,SAAAC,CAAA,EACAA,EAAAC,UAAA,GAAA/zB,OAAA,UAAAwK,CAAA,EACAgS,EAAAwX,wBAAA,CAAAxpB,EACA,EACA,GAIAypB,oBAHAC,mBAAA,CAAA90B,MAAA,UAAAkO,CAAA,EACA,OAAAgmB,GAAAha,QAAA,CAAAhM,EACA,GACAtN,OAAA,UAAAmxB,CAAA,EACA,IAAAgD,CAEA,QAAAA,CAAAA,EAAA3X,EAAAoX,QAAA,GAAAO,KAAA,IAAAA,GAAAA,EAAAC,OAAA,EACAjhB,KAAAge,EACAkD,SAAA,EACA,EACA,EACA,CAAQ,MAAAtxB,EAAA,CACR4I,QAAAM,KAAA,gDAAAlJ,GACA,KAAA4wB,aAAA,EACA,CACA,CACA,EAAG,CACH1zB,IAAA,gBACAsB,MAAA,WACA,KAAAqyB,QAAA,GACA,KAAAA,QAAA,CAAAU,UAAA,GACA,KAAAV,QAAA,CAAA/hB,KAAAA,EAEA,CACA,EAAG,CACH5R,IAAA,cACAsB,MAAA,WACA,aAAAqyB,QAAA,CAEA,EAAG,CACH3zB,IAAA,YACAsB,MAAA,WACA,IAAAgzB,EAAAC,EAEA,cAAAD,CAAAA,EAAA,OAAAC,CAAAA,EAAA,KAAA3zB,QAAA,CAAAoe,UAAA,0BAAAuV,KAAA,IAAAA,EAAAA,EAAA,KAAAC,aAAA,GAAAF,KAAA,IAAAA,GAAAA,CACA,CACA,EAAG,CACHt0B,IAAA,sBACAsB,MAAA,SAAAse,CAAA,EACA,KAAA4U,aAAA,CAAA5U,EAAA6U,kBAAA,KAEA,KAAAjB,SAAA,IACA,KAAAC,cAAA,EAEA,CACA,EAAG,CACHzzB,IAAA,2BACAsB,MAAA,SAAAsR,CAAA,EAEA,GAAAA,EAAA5N,IAAA,CAAA0vB,UAAA,MAAA9zB,QAAA,CAAAoe,UAAA,eACA,IAAA2V,EAAA/hB,EAAA5N,IAAA,CAAAuD,OAAA,MAAA3H,QAAA,CAAAoe,UAAA,iBAEA,GAAAsU,GAAAsB,IAAA,UAAAvnB,CAAA,EACA,OAAAsnB,EAAAD,UAAA,CAAArnB,EACA,GACA,MAEA,CAEA,IAAAwnB,EAAAjiB,EAAAkiB,MAAA,GACAhf,EAAA,GAGAqb,EAAA5nB,KAAAwrB,KAAA,CAAAtkB,KAAA8G,GAAA,GAAAyd,YAAAzd,GAAA,IAMA,QAAA1L,KALAiK,CAAA,CAAAmb,GAAA,YAAAE,EAGArb,CAAA,CAAAmb,GAAA,WAAA1nB,KAAAwrB,KAAA,CAAA5D,EAAAve,EAAAwe,SAAA,EAEAH,GACArf,KAAAA,IAAAijB,CAAA,CAAAhpB,EAAA,EACAiK,CAAAA,CAAA,CAAAmb,EAAA,CAAAplB,EAAA,EAAAgpB,CAAA,CAAAhpB,EAAA,EAMA,GAFA,KAAAopB,uBAAA,CAAAnf,GAEAof,GAAAtiB,GAAA,CACA,IACA+c,EADAC,EAAAxqB,EAAAwN,EAAAuiB,YAAA,EAGA,IACA,IAAAvF,EAAApqB,CAAA,GAA8B,EAAAmqB,EAAAC,EAAA/qB,CAAA,IAAAZ,IAAA,EAA8B,CAG5D,IAFAmxB,EAEAC,EAAA1F,EAAAruB,KAAA,CACA,KAAA2zB,uBAAA,CAAAG,CAAAA,EAAA,GAAoEn1B,EAAAm1B,EAAAnE,GAAA,WAAAE,GAAAlxB,EAAAm1B,EAAAnE,GAAA,UAAA1nB,KAAAwrB,KAAA,CAAA5D,EAAAve,EAAAwe,SAAA,GAAAnxB,EAAAm1B,EAAAnE,GAAA,KAAAoE,EAAArwB,IAAA,EAAA/E,EAAAm1B,EAAAnE,GAAA,SAAAoE,EAAAjC,QAAA,EAAAnzB,EAAAm1B,EAAAnE,GAAA,0BAAAmE,CAAA,EACpE,CACA,CAAU,MAAAlxB,EAAA,CACV0rB,EAAA9sB,CAAA,CAAAoB,EACA,QAAU,CACV0rB,EAAAnqB,CAAA,EACA,CACA,CACA,CAKA,EAAG,CACHzF,IAAA,0BACAsB,MAAA,SAAAwU,CAAA,EACA,KAAAlV,QAAA,CAAAse,OAAA,sBAAApJ,EAAA,CACA8a,UAAA,MACA/L,OAAA,OACAsH,SA3IA,MA4IA0E,YAAA,GACAC,UAAA,kBACA,EACA,CACA,EAAG,EAEHyC,CACA,IAOA2B,GAAA,SAAAtiB,CAAA,EACA,MAAAA,eAAAA,EAAAse,SAAA,EAAAte,aAAAA,EAAAse,SAAA,EAGAoE,GAAA,WACA,SAAAA,EAAA10B,CAAA,EACAD,EAAA,KAAA20B,GAEA,KAAA10B,QAAA,CAAAA,EAEA,KAAAA,QAAA,CAAA2oB,oBAAA,MAAA3oB,QAAA,CAAA20B,4BAAA,EACA,CAkHA,OAhHAp0B,EAAAm0B,EAAA,EACAt1B,IAAA,OACAsB,MAAA,WACA,IAAAib,EAAA,KAWA2J,EAAA7W,GANA0R,KAAAc,SAAA,EACAhC,MAAA,KAAAjf,QAAA,CAAAoe,UAAA,UACAwD,YAAA,KAAA5hB,QAAA,CAAA8kB,eAAA,GACAkD,OAAA,KAAAhoB,QAAA,CAAAioB,SAAA,EACA,IAIA,KAAAjoB,QAAA,CAAA2kB,aAAA,IAAAnZ,MAAA,MAAAxL,QAAA,CAAAoe,UAAA,8BACA/U,KAAAic,EACAsP,QAAA,EACA,EAAO,CACP3Q,OAAA,MACA,EAAO,SAAAjF,CAAA,EACP,OAAArD,EAAAkZ,mBAAA,CAAA7V,EACA,EACA,CACA,EAAG,CACH5f,IAAA,sBACAsB,MAAA,SAAAse,CAAA,EACA,IACAoO,EACA0H,EAFAzY,EAAA,KAIA,IAAA2C,MAAAA,EAAA,OAAAA,EAAA+V,MAAA,OACAjqB,QAAAM,KAAA,gDACA,MACA,CAIA,GAFA,KAAApL,QAAA,CAAA2oB,oBAAA,IAEA,CAAAre,CAAAA,UAAAA,SAAAiP,IAAA,GACAzO,QAAAF,GAAA,gEACAid,WAAA,WACAxL,EAAAwY,mBAAA,CAAA7V,EACA,EAAS,KACT,MACA,CASA,GAPA,KAAAhf,QAAA,CAAAg1B,OAAA,CAAAjW,mBAAA,CAAAC,GACA,OAAAoO,CAAAA,EAAA,KAAAptB,QAAA,CAAAssB,gBAAA,GAAAc,KAAA,IAAAA,GAAAA,EAAArO,mBAAA,CAAAC,GACAhF,GAAA+E,mBAAA,CAAAC,EAAA,KAAAhf,QAAA,EACA,OAAA80B,CAAAA,EAAA,KAAA90B,QAAA,CAAAi1B,cAAA,GAAAH,KAAA,IAAAA,GAAAA,EAAA/V,mBAAA,CAAAC,GACA,KAAAhf,QAAA,CAAAk1B,YAAA,CAAAhN,oBAAA,CAAAlJ,GACA,KAAAhf,QAAA,gBAEAgf,EAAA,4BAAAhf,QAAA,CAAAoe,UAAA,yBACA,IAGA2Q,EAHAoG,EAAA,GAEAnG,EAAAxqB,EAAAwa,EAAA,sBAGA,IACA,IAAAgQ,EAAApqB,CAAA,GAA8B,EAAAmqB,EAAAC,EAAA/qB,CAAA,IAAAZ,IAAA,EAE9B8xB,CAAA,CADApG,EAAAruB,KAAA,CACA,GAEA,CAAU,MAAA4C,EAAA,CACV0rB,EAAA9sB,CAAA,CAAAoB,EACA,QAAU,CACV0rB,EAAAnqB,CAAA,EACA,CAEA,KAAA7E,QAAA,aAAAm1B,CACA,CAEA,GAAAnW,EAAA,UACA,QAAAhf,QAAA,CAAAoe,UAAA,sBACA,IAGAgX,EAHAC,EAAA,KAAAr1B,QAAA,CAAAoe,UAAA,aAEAkX,EAAA9wB,EAAAwa,EAAA,UAGA,IAgBA,IAAAsW,EAAA1wB,CAAA,GAAiC,EAAAwwB,EAAAE,EAAArxB,CAAA,IAAAZ,IAAA,GACjCkyB,WAfA,IAAAC,EAAAJ,EAAA10B,KAAA,CACA4X,EAAAkd,EAAAld,EAAA,CACAlH,EAAAokB,EAAApkB,GAAA,CACAqkB,EAAAnrB,SAAA2O,aAAA,UACAwc,CAAAA,EAAAvc,GAAA,EAAAmc,EAAAA,MAAAA,CAAA,CAAAA,EAAAp2B,MAAA,KAAAmS,MAAAA,CAAA,IAAAA,EAAAzB,SAAA,IAAAyB,EAAA,CAAA5J,IAAA,KAEAiuB,EAAAC,OAAA,UAAAxzB,CAAA,EACA4I,QAAAM,KAAA,wDAAAI,MAAA,CAAA8M,GAAApW,EACA,EAEAgI,MAAA,oBAAAsB,MAAA,CAAA8M,GAAA,CAAA+D,EAAArc,QAAA,CACAsK,SAAAiP,IAAA,CAAAC,WAAA,CAAAic,EACA,GAKA,CAAY,MAAAnyB,EAAA,CACZgyB,EAAApzB,CAAA,CAAAoB,EACA,QAAY,CACZgyB,EAAAzwB,CAAA,EACA,CACA,MAAUma,EAAA,SAAA/f,MAAA,IACV6L,QAAAM,KAAA,qFAGA,CACA,EAAG,EAEHspB,CACA,IAEAiB,GAAA,qDAEAC,GAAA,WACAC,GAAA,WACA,SAAAA,EAAA71B,CAAA,EACAD,EAAA,KAAA81B,GAEA,KAAA71B,QAAA,CAAAA,CACA,CAsJA,OApJAO,EAAAs1B,EAAA,EACAz2B,IAAA,sBACAsB,MAAA,SAAAse,CAAA,EACA,IAAA8W,EAAA9W,EAAA,eAAAA,EAAA,cAAAA,CAAAA,EAAA,gBACA+W,eAAA/W,EAAA,gBACQ,GAERA,CAAAA,EAAA,iBAAA8W,EAAA,gBAAAA,IAAAA,EAAA,eAAArrB,OAAA,aACA,KAAAurB,WAAA,CAAAn3B,EAAAA,EAAA,GAAyDi3B,GAAA,GAAoB,CAC7EG,OAAA,KAAAj2B,QAAA,CAAAoe,UAAA,YACA,GAEA,CAOA,EAAG,CACHhf,IAAA,mBACAsB,MAAA,WACA,IAAA8U,EAAAxW,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,IAAAkL,OAAAsL,QAAA,CACA8L,EAAAtiB,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,IAAAgS,KAAAA,EACAklB,EAAAl3B,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,IAAAkL,OAAAgsB,OAAA,CAEA,IAEA,IAAA5U,EAAA,CACA,IACApX,OAAAoX,YAAA,CAAAE,OAAA,gBACAtX,OAAAoX,YAAA,CAAAG,UAAA,QACA,CAAY,MAAArW,EAAA,CACZ,QACA,CAGAkW,EAAApX,OAAAoX,YAAA,CAGA,IAIAwU,EAJAK,EAAAzkB,GAAA8D,EAAA7D,IAAA,eAAAD,GAAA8D,EAAA7D,IAAA,UAEAuZ,EAAAiL,EAAAhW,KAAAD,KAAA,CAAAzO,mBAAA0kB,IAAA,KAgCA,GA/BAjL,GAAAA,iBAAAA,EAAA,QAMA4K,CADAA,EAAA5K,CAAA,EACAhsB,MAAA,OAEA42B,GAAA13B,OAAAD,IAAA,CAAA23B,GAAA72B,MAAA,KACAisB,EAAA,YAEA1V,EAAA7D,IAAA,CAAAuZ,EAAA,YACcgL,EACdA,EAAAE,YAAA,IAAA9rB,SAAA+rB,KAAA,CAAA7gB,EAAAK,QAAA,CAAAL,EAAA9B,MAAA,EAEA8B,EAAA7D,IAAA,OAMAmkB,CADAA,EAAA3V,KAAAD,KAAA,CAAAoB,EAAAC,OAAA,gCAAyF,EACzFriB,MAAA,gBAGA,OAAA42B,EAAAQ,UAAA,EAGAR,EAAAG,MAAA,EACAH,CAAAA,EAAAG,MAAA,MAAAj2B,QAAA,CAAAoe,UAAA,cAGA0X,EAAA,YAAA91B,QAAA,CAAAoe,UAAA,YAAA0X,EAAA,MAEA,OADA,KAAAE,WAAA,CAAAF,GACA,GAEA,QAEA,CAAQ,MAAA5zB,EAAA,CACR,QACA,CACA,CACA,EAAG,CACH9C,IAAA,cACAsB,MAAA,SAAAyS,CAAA,EACA,IAAAwI,EAAA,KAEA,GAAAzR,OAAA,sBACA,QAEAA,CAAAA,OAAA,yBAIA,IAAAyL,EAAA,CAAAxC,MAAAA,EAAA,OAAAA,EAAA,cAAAnT,QAAA,CAAAoe,UAAA,aACAmY,EAAA5tB,IAAAA,KAAAwrB,KAAA,CAAAtkB,KAAA8G,GAAA,QACA6f,EAAA,GAAAhrB,MAAA,CAAAmK,GAAAnK,MAAA,CAAAmK,EAAA8gB,QAAA,uCAAAjrB,MAAA,CAAA+qB,GACAG,EAAA,CAAAf,GAAAld,QAAA,MAAAzY,QAAA,CAAAoe,UAAA,oBAAApe,QAAA,CAAAoe,UAAA,qCAEA0X,EAAAj3B,EAAAA,EAAA,CACAo3B,OAAAtgB,EAEAghB,MAAAhhB,EAEAsJ,MAAA,KAAAjf,QAAA,CAAAoe,UAAA,SACA,EAAOjL,GAAAujB,EAAA,CACPE,WAAA,EACA,EAAQ,GAERd,CAAAA,EAAA52B,MAAA,CACA,IAAA23B,EAAAC,SAv5IA53B,CAAA,CAAA63B,CAAA,EACA,GAAA73B,MAAAA,EAAA,SAEA,IAEAE,EAAAL,EAFAD,EAAAk4B,SAlBA93B,CAAA,CAAA63B,CAAA,EACA,GAAA73B,MAAAA,EAAA,SACA,IAEAE,EAAAL,EAFAD,EAAA,GACAm4B,EAAA74B,OAAAD,IAAA,CAAAe,GAGA,IAAAH,EAAA,EAAcA,EAAAk4B,EAAAh4B,MAAA,CAAuBF,IACrCK,EAAA63B,CAAA,CAAAl4B,EAAA,CACAg4B,EAAAtsB,OAAA,CAAArL,IAAA,GACAN,CAAAA,CAAA,CAAAM,EAAA,CAAAF,CAAA,CAAAE,EAAA,EAGA,OAAAN,CACA,EAKAI,EAAA63B,GAIA,GAAA34B,OAAAC,qBAAA,EACA,IAAA64B,EAAA94B,OAAAC,qBAAA,CAAAa,GAEA,IAAAH,EAAA,EAAgBA,EAAAm4B,EAAAj4B,MAAA,CAA6BF,IAC7CK,EAAA83B,CAAA,CAAAn4B,EAAA,EACAg4B,CAAAA,EAAAtsB,OAAA,CAAArL,IAAA,IACAhB,OAAA0B,SAAA,CAAAq3B,oBAAA,CAAAl1B,IAAA,CAAA/C,EAAAE,IACAN,CAAAA,CAAA,CAAAM,EAAA,CAAAF,CAAA,CAAAE,EAAA,CAEA,CAEA,OAAAN,CACA,EAo4IAg3B,EAAAF,IAeA,OAZA1rB,OAAAoX,YAAA,CAAAE,OAAA,yBAAArB,KAAAc,SAAA,CAAA4V,IACAje,GAAA4d,EAAA,WACA,CAAAtsB,OAAA,iBAAAA,OAAA,gBAAA4rB,EAAAna,EAAA3b,QAAA,CACA,GAGA8R,GAAA5H,OAAA,6BACAA,OAAA,yBAEAyR,EAAAqa,WAAA,CAAAF,EACA,GAEA,EACA,CAGA,EAAG,CACH12B,IAAA,cACAsB,MAAA,SAAAyS,CAAA,EACA,YAAA6iB,WAAA,CAAA7iB,EACA,CAGA,EAAG,CACH/T,IAAA,kBACAsB,MAAA,WACA,IAAA8U,EAAAxW,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,IAAAkL,OAAAsL,QAAA,CACA8L,EAAAtiB,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,IAAAgS,KAAAA,EACAklB,EAAAl3B,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,IAAAkL,OAAAgsB,OAAA,CACA,YAAAkB,gBAAA,CAAA5hB,EAAA8L,EAAA4U,EACA,CACA,EAAG,EAEHL,CACA,IAEAwB,GAAA,WAIA,SAAAA,IACA,IAAAC,EAAAt4B,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,QAEAe,EAAA,KAAAs3B,GAEA,KAAAE,SAAA,IAEA,KAAAC,YAAA,IACA,KAAAC,kBAAA,GAEA,KAAAC,OAAA,CAAA1mB,KAAAA,EAEA,KAAA2mB,aAAA,CAAAL,CACA,CAgCA,OA9BA/2B,EAAA82B,EAAA,EACAj4B,IAAA,kBACAsB,MAAA,SAAAk3B,CAAA,EACA,KAAAD,aAAA,CAAAC,EAEA,KAAAL,SAAA,EACA,KAAAM,IAAA,EAEA,CAKA,EAAG,CACHz4B,IAAA,OACAsB,MAAA,WAEA,CACA,EAAG,CACHtB,IAAA,SACAsB,MAAA,WAEA,CACA,EAAG,CACHtB,IAAA,UACAsB,MAAA,WACA,WAAAmP,OAAAgN,OAAA,EACA,CACA,EAAG,EAEHwa,CACA,IAEAS,GAAA,SAAAC,CAAA,EACAp3B,EAAAm3B,EAAAC,GAEA,IAAAC,EAAAz2B,EAAAu2B,GAEA,SAAAA,EAAAG,CAAA,CAAAC,CAAA,EAGA,IAFAvc,EAEA2b,EAAAt4B,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,QAOA,OALAe,EAAA,KAAA+3B,GAGAnc,CADAA,EAAAqc,EAAA/1B,IAAA,MAAAq1B,EAAA,EACAY,iBAAA,CAAAA,EACAvc,EAAAsc,cAAA,CAAAA,EACAtc,CACA,CAuJA,OArJApb,EAAAu3B,EAAA,EACA14B,IAAA,UACAsB,MAAA,SAAA0Q,CAAA,CAAA/H,CAAA,CAAA8Y,CAAA,EACA,KAAA8V,cAAA,CAAAzI,IAAA,kBAEA,KAAAgI,YAAA,CAAA74B,IAAA,EACAyS,IAAAA,EACA/H,KAAAA,EACA8Y,QAAAA,CACA,GAEA,KAAAoV,SAAA,GACA,KAAAA,SAAA,IACA,KAAAM,IAAA,GAEA,CACA,EAAG,CACHz4B,IAAA,OACAsB,MAAA,WACA,IAAA2b,EAAA,KAEA8b,aAAA,KAAAT,OAAA,EACA,KAAAA,OAAA,CAAA7P,WAAA,WACA,GAAAxL,EAAAmb,YAAA,CAAAv4B,MAAA,IACA,IAAAm5B,EAAA/b,EAAAgc,WAAA,GAwBA,QAAAj5B,KAAAg5B,GACA7C,SAvBAn2B,CAAA,EACA,IAAAk5B,EAAAF,CAAA,CAAAh5B,EAAA,CACAgS,EAAAknB,EAAAlnB,GAAA,CACA/H,EAAAivB,EAAAjvB,IAAA,CACA8Y,EAAAmW,EAAAnW,OAAA,CAEArW,EAAAzC,EAAA,SAAAkvB,CAAA,CAAAC,CAAA,EACAnvB,CAAA,CAAAmvB,EAAA,QAAA7vB,KAAAoR,GAAA,CAAA1Q,CAAA,CAAAmvB,EAAA,WAAAnc,EAAAQ,OAAA,IACA,OAAAxT,CAAA,CAAAmvB,EAAA,aAGAnc,EAAA6b,iBAAA,CAAA9mB,EAAA/H,EAAA8Y,GAEA9F,EAAA4b,cAAA,CAAAzI,IAAA,mBAEAnT,EAAA4b,cAAA,CAAAzI,IAAA,mBAAAhkB,MAAA,CAAA4F,EAAAjN,KAAA,CAAAiN,EAAAnS,MAAA,MAEAod,EAAA4b,cAAA,CAAAzI,IAAA,gBAAAnmB,EAAApK,MAAA,EAEAod,EAAA4b,cAAA,CAAAzI,IAAA,iBAAAhkB,MAAA,CAAA4F,EAAAjN,KAAA,CAAAiN,EAAAnS,MAAA,KAAAoK,EAAApK,MAAA,CACA,EAGAG,EAGAid,CAAAA,EAAAmb,YAAA,CAAAv4B,MAAA,GAEAod,EAAAob,kBAAA,EACA,MACApb,EAAAob,kBAAA,EAYApb,CAAAA,EAAAob,kBAAA,KACApb,EAAAkb,SAAA,IACAlb,EAAAob,kBAAA,IAGApb,EAAAkb,SAAA,EACAlb,EAAAwb,IAAA,EAEA,EAAO,KAAAF,aAAA,CACP,CACA,EAAG,CACHv4B,IAAA,sBACAsB,MAAA,WACA,IAAA03B,EAAA,KAAAC,WAAA,GAEA,QAAAj5B,KAAAg5B,EAAA,CACA,IAAAK,EAAAL,CAAA,CAAAh5B,EAAA,CACAs5B,EAAAD,EAAArnB,GAAA,CACAunB,EAAAF,EAAApvB,IAAA,CACA,KAAA4uB,cAAA,CAAAzI,IAAA,0BACA,KAAAyI,cAAA,CAAAzI,IAAA,0BAAAhkB,MAAA,CAAAktB,EAAAv0B,KAAA,CAAAu0B,EAAAz5B,MAAA,MACA,KAAAg5B,cAAA,CAAAzI,IAAA,gBAAAmJ,EAAA15B,MAAA,EACA,KAAAg5B,cAAA,CAAAzI,IAAA,iBAAAhkB,MAAA,CAAAktB,EAAAv0B,KAAA,CAAAu0B,EAAAz5B,MAAA,KAAA05B,EAAA15B,MAAA,CACA,CACA,CACA,EAAG,CACHG,IAAA,SACAsB,MAAA,WACA,IAAA+d,EAAA,KAEA0Z,aAAA,KAAAT,OAAA,EACA,IAAAU,EAAA,KAAAZ,YAAA,CAAAv4B,MAAA,QAAAo5B,WAAA,KACA,MAAAb,YAAA,CAAAv4B,MAAA,GACA,IAAA25B,EAAAx6B,OAAAy6B,MAAA,CAAAT,GAOAU,EALA,CAAAttB,MAAA,CAAA/H,EAAAm1B,EAAAr6B,MAAA,UAAAw6B,CAAA,EACA,OAAAA,IAAAA,EAAA3nB,GAAA,CAAA3G,OAAA,MACA,IAAOhH,EAAAm1B,EAAAr6B,MAAA,UAAAw6B,CAAA,EACP,OAAAA,IAAAA,EAAA3nB,GAAA,CAAA3G,OAAA,MACA,KACAoU,GAAA,UAAA6U,CAAA,EACA,IAAAtiB,EAAAsiB,EAAAtiB,GAAA,CACA/H,EAAAqqB,EAAArqB,IAAA,CACA8Y,EAAAuR,EAAAvR,OAAA,CAEA1D,EAAAyZ,iBAAA,CAAA9mB,EAAA/H,EAAAxK,EAAAA,EAAA,GAA4EsjB,GAAA,GAAc,CAC1F6N,UAAA,YACA,GACA,EACA,CACA,EAAG,CACH5wB,IAAA,cACAsB,MAAA,WACA,IAAA03B,EAAA,GAwBA,OAtBAtsB,EAAA,KAAA0rB,YAAA,UAAAwB,CAAA,EACA,IAAA5nB,EAAA4nB,EAAA5nB,GAAA,CACA/H,EAAA2vB,EAAA3vB,IAAA,CACA8Y,EAAA6W,EAAA7W,OAAA,CACA/iB,EAAA,CAAA+iB,EAAAA,EAAA+N,SAAA,QAAA9e,CAEAJ,MAAAA,IAAAonB,CAAA,CAAAh5B,EAAA,EACAg5B,CAAAA,CAAA,CAAAh5B,EAAA,EACAiK,KAAA,GACA+H,IAAAA,EACA+Q,QAAAA,CACA,GAIAA,GAAAiW,CAAA,CAAAh5B,EAAA,CAAA+iB,OAAA,EAAAiW,CAAA,CAAAh5B,EAAA,CAAA+iB,OAAA,CAAAgO,QAAA,GAAAiI,CAAA,CAAAh5B,EAAA,CAAA+iB,OAAA,CAAAgO,QAAA,sBACAiI,CAAAA,CAAA,CAAAh5B,EAAA,CAAA+iB,OAAA,CAAAgO,QAAA,qBAAAhO,EAAAgO,QAAA,sBAGAiI,CAAA,CAAAh5B,EAAA,CAAAiK,IAAA,CAAA1K,IAAA,CAAA0K,EACA,GAEA+uB,CACA,CACA,EAAG,EAEHN,CACA,EAACT,IAED4B,GAAA,WACA,SAAAA,EAAAvf,CAAA,EACA3Z,EAAA,KAAAk5B,GAEA,KAAAvf,OAAA,CAAAA,EACA,KAAAwf,OAAA,GACA,CAsBA,OApBA34B,EAAA04B,EAAA,EACA75B,IAAA,OACAsB,MAAA,SAAAtB,CAAA,EACA,IAAA+5B,EAAAn6B,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,KAEA,MAAA0a,OAAA,GACAta,EAAA,QAAAoM,MAAA,CAAApM,GACA,KAAA85B,OAAA,CAAA95B,EAAA,OAAA85B,OAAA,CAAA95B,EAAA,KAAA+5B,EAEA,CACA,EAAG,CACH/5B,IAAA,OACAsB,MAAA,SAAAtB,CAAA,EACA,KAAAsa,OAAA,GACAta,EAAA,QAAAoM,MAAA,CAAApM,GACA,KAAA85B,OAAA,CAAA95B,EAAA,OAAA85B,OAAA,CAAA95B,EAAA,OAEA,CACA,EAAG,EAEH65B,CACA,IAKAG,GAAAlyB,WACAmyB,GAAAC,YACAC,GAAAC,YAEAC,GAAA,IAAAL,GAAA,2DAEA,IAEA,IAGAM,GAAA,IAAAN,GAAA,qEAEA,MAEAO,GAAA,IAAAP,GAAA,kDAEAQ,GAAA,SAAAC,CAAA,CAAAvqB,CAAA,EAGA,QAFAwqB,EAAA,IAAAT,GAAA,IAEAt6B,EAAA,EAAkBA,EAAA,GAAQ,EAAAA,EAC1B+6B,CAAA,CAAA/6B,EAAA,CAAAuQ,GAAA,GAAAuqB,CAAA,CAAA96B,EAAA,GAMA,QAFAg6B,EAAA,IAAAQ,GAAAO,CAAA,MAEA/6B,EAAA,EAAkBA,EAAA,GAAQ,EAAAA,EAC1B,QAAAmR,EAAA4pB,CAAA,CAAA/6B,EAAA,CAAuBmR,EAAA4pB,CAAA,CAAA/6B,EAAA,GAAc,EAAAmR,EACrC6oB,CAAA,CAAA7oB,EAAA,CAAAA,EAAA4pB,CAAA,CAAA/6B,EAAA,IAAAA,EAIA,OAAA+6B,EAAAf,EAAA,EAGAgB,GAAAH,GAAAH,GAAA,GACAO,GAAAD,EAAA,IACAE,GAAAF,EAAA,IAGAC,EAAA,SAAAC,EAAA,SAQA,QALAC,GAAAC,GADAT,GAAA,EACA,IAGAU,GAAA,IAAAf,GAAA,OAEAt6B,GAAA,EAAgBA,GAAA,MAAW,EAAAA,GAAA,CAE3B,IAAA0N,GAAA,CAAA1N,MAAAA,EAAA,OAAAA,MAAAA,EAAA,KAEA0N,GAAA,CAAAA,MADAA,CAAAA,GAAA,CAAAA,MAAAA,EAAA,OAAAA,MAAAA,EAAA,KACA,OAAAA,KAAAA,EAAA,KACA2tB,EAAA,CAAAr7B,GAAA,GAAA0N,MAAAA,EAAA,OAAAA,IAAAA,EAAA,SACA,CA6DA,QAxDA4tB,GAAA,SAAAC,CAAA,CAAAC,CAAA,CAAAxB,CAAA,EAOA,IANA,IAiBAyB,EAjBA51B,EAAA01B,EAAAr7B,MAAA,CAEAF,EAAA,EAEAiN,EAAA,IAAAqtB,GAAAkB,GAESx7B,EAAA6F,EAAO,EAAA7F,EAChB,EAAAiN,CAAA,CAAAsuB,CAAA,CAAAv7B,EAAA,IAIA,IAAA07B,EAAA,IAAApB,GAAAkB,GAEA,IAAAx7B,EAAA,EAAcA,EAAAw7B,EAAQ,EAAAx7B,EACtB07B,CAAA,CAAA17B,EAAA,CAAA07B,CAAA,CAAA17B,EAAA,GAAAiN,CAAA,CAAAjN,EAAA,MAKA,GAAAg6B,EAAA,CAEAyB,EAAA,IAAAnB,GAAA,GAAAkB,GAEA,IAAAG,EAAA,GAAAH,EAEA,IAAAx7B,EAAA,EAAgBA,EAAA6F,EAAO,EAAA7F,EAEvB,GAAAu7B,CAAA,CAAAv7B,EAAA,CAQA,QANA47B,EAAA57B,GAAA,EAAAu7B,CAAA,CAAAv7B,EAAA,CAEA67B,EAAAL,EAAAD,CAAA,CAAAv7B,EAAA,CAEA+O,EAAA2sB,CAAA,CAAAH,CAAA,CAAAv7B,EAAA,OAAA67B,EAEAC,EAAA/sB,EAAA,IAAA8sB,CAAA,IAAyC9sB,GAAA+sB,EAAQ,EAAA/sB,EAEjD0sB,CAAA,CAAAJ,EAAA,CAAAtsB,EAAA,GAAA4sB,EAAA,CAAAC,CAIA,MAGA,IAAA57B,EAAA,EAFAy7B,EAAA,IAAAnB,GAAAz0B,GAEgB7F,EAAA6F,EAAO,EAAA7F,EACvBy7B,CAAA,CAAAz7B,EAAA,CAAAq7B,EAAA,CAAAK,CAAA,CAAAH,CAAA,CAAAv7B,EAAA,YAAAu7B,CAAA,CAAAv7B,EAAA,CAIA,OAAAy7B,CACA,EAGAM,GAAA,IAAA1B,GAAA,KAEAr6B,GAAA,EAAgBA,GAAA,IAAS,EAAAA,GACzB+7B,EAAA,CAAA/7B,GAAA,GAGA,QAAAA,GAAA,IAAkBA,GAAA,IAAS,EAAAA,GAC3B+7B,EAAA,CAAA/7B,GAAA,GAGA,QAAAA,GAAA,IAAkBA,GAAA,IAAS,EAAAA,GAC3B+7B,EAAA,CAAA/7B,GAAA,GAGA,QAAAA,GAAA,IAAkBA,GAAA,IAAS,EAAAA,GAC3B+7B,EAAA,CAAA/7B,GAAA,GAMA,QAFAg8B,GAAA,IAAA3B,GAAA,IAEAr6B,GAAA,EAAgBA,GAAA,GAAQ,EAAAA,GACxBg8B,EAAA,CAAAh8B,GAAA,GA7FA,IAiGAi8B,GAAAX,GAAAS,GAAA,KAGAG,GAAAZ,GAAAU,GAAA,KAIAG,GAAA,SAAA55B,CAAA,EACA,OAAAA,EAAA,MAAAA,CAAAA,EAAAA,GAAA,EACA,EAIA65B,GAAA,SAAArtB,CAAA,CAAAlJ,CAAA,CAAA1C,CAAA,EACA0C,CAAAA,MAAAA,GAAAA,EAAA,IAAAA,CAAAA,EAAA,GACA1C,CAAAA,MAAAA,GAAAA,EAAA4L,EAAA7O,MAAA,GAAAiD,CAAAA,EAAA4L,EAAA7O,MAAA,EAEA,IAAAgF,EAAA,GAAA6J,CAAAA,aAAAurB,GAAAA,GAAAvrB,aAAAyrB,GAAAA,GAAAH,EAAA,EAAAl3B,EAAA0C,GAEA,OADAX,EAAAmc,GAAA,CAAAtS,EAAAstB,QAAA,CAAAx2B,EAAA1C,IACA+B,CACA,EAGAo3B,GAAA,SAAApuB,CAAA,CAAA3L,CAAA,CAAAwM,CAAA,EACAA,IAAAxM,EAAAA,EACA,IAAAL,EAAAK,EAAA,IACA2L,CAAAA,CAAA,CAAAhM,EAAA,EAAA6M,EACAb,CAAA,CAAAhM,EAAA,IAAA6M,IAAA,CACA,EAGAwtB,GAAA,SAAAruB,CAAA,CAAA3L,CAAA,CAAAwM,CAAA,EACAA,IAAAxM,EAAAA,EACA,IAAAL,EAAAK,EAAA,IACA2L,CAAAA,CAAA,CAAAhM,EAAA,EAAA6M,EACAb,CAAA,CAAAhM,EAAA,IAAA6M,IAAA,EACAb,CAAA,CAAAhM,EAAA,IAAA6M,IAAA,EACA,EAGAytB,GAAA,SAAAtuB,CAAA,CAAAstB,CAAA,EAIA,QAFAiB,EAAA,GAEAz8B,EAAA,EAAkBA,EAAAkO,EAAAhO,MAAA,CAAc,EAAAF,EAChCkO,CAAA,CAAAlO,EAAA,EAAAy8B,EAAA78B,IAAA,EACAiG,EAAA7F,EACA8F,EAAAoI,CAAA,CAAAlO,EAAA,GALA,IASA6F,EAAA42B,EAAAv8B,MAAA,CACAw8B,EAAAD,EAAAr3B,KAAA,GACA,IAAAS,EAAA,WAAAw0B,GAAA,MAEA,GAAAx0B,GAAAA,EAAA,CACA,IAAAkJ,EAAA,IAAAsrB,GAAAoC,CAAA,IAAA52B,CAAA,IAEA,OADAkJ,CAAA,CAAA0tB,CAAA,IAAA52B,CAAA,IACA,CAAAkJ,EAAA,GAGA0tB,EAAAE,IAAA,UAAAp1B,CAAA,CAAAwzB,CAAA,EACA,OAAAxzB,EAAAzB,CAAA,CAAAi1B,EAAAj1B,CAAA,GAIA22B,EAAA78B,IAAA,EACAiG,EAAA,GACAC,EAAA,KACA,GACA,IAAAmH,EAAAwvB,CAAA,IACAzC,EAAAyC,CAAA,IACAG,EAAA,EACAC,EAAA,EACAC,EAAA,EAYA,IAXAL,CAAA,KACA52B,EAAA,GACAC,EAAAmH,EAAAnH,CAAA,CAAAk0B,EAAAl0B,CAAA,CACAmH,EAAAA,EACA+sB,EAAAA,CACA,EAMA6C,GAAAh3B,EAAA,GACAoH,EAAAwvB,CAAA,CAAAA,CAAA,CAAAG,EAAA,CAAA92B,CAAA,CAAA22B,CAAA,CAAAK,EAAA,CAAAh3B,CAAA,CAAA82B,IAAAE,IAAA,CACA9C,EAAAyC,CAAA,CAAAG,GAAAC,GAAAJ,CAAA,CAAAG,EAAA,CAAA92B,CAAA,CAAA22B,CAAA,CAAAK,EAAA,CAAAh3B,CAAA,CAAA82B,IAAAE,IAAA,CACAL,CAAA,CAAAI,IAAA,EACAh3B,EAAA,GACAC,EAAAmH,EAAAnH,CAAA,CAAAk0B,EAAAl0B,CAAA,CACAmH,EAAAA,EACA+sB,EAAAA,CACA,EAKA,QAFA+C,EAAAL,CAAA,IAAA72B,CAAA,CAEA7F,EAAA,EAAkBA,EAAA6F,EAAO,EAAA7F,EACzB08B,CAAA,CAAA18B,EAAA,CAAA6F,CAAA,CAAAk3B,GAAAA,CAAAA,EAAAL,CAAA,CAAA18B,EAAA,CAAA6F,CAAA,EAHA,IAOAm3B,EAAA,IAAA1C,GAAAyC,EAAA,GAEAE,EAAAC,GAAAT,CAAA,CAAAI,EAAA,GAAAG,EAAA,GAEA,GAAAC,EAAAzB,EAAA,CAIA,IAAAx7B,EAAA,EACAm9B,EAAA,EAEAC,EAAAH,EAAAzB,EACA6B,EAAA,GAAAD,EAKA,IAJAV,EAAAC,IAAA,UAAAp1B,CAAA,CAAAwzB,CAAA,EACA,OAAAiC,CAAA,CAAAjC,EAAAl1B,CAAA,EAAAm3B,CAAA,CAAAz1B,EAAA1B,CAAA,GAAA0B,EAAAzB,CAAA,CAAAi1B,EAAAj1B,CAAA,GAGW9F,EAAA6F,EAAO,EAAA7F,EAAA,CAClB,IAAAs9B,EAAAZ,CAAA,CAAA18B,EAAA,CAAA6F,CAAA,CAEA,GAAAm3B,CAAA,CAAAM,EAAA,CAAA9B,EACA2B,GAAAE,EAAA,IAAAJ,EAAAD,CAAA,CAAAM,EAAA,EACAN,CAAA,CAAAM,EAAA,CAAA9B,OACQ,KACR,CAIA,IAFA2B,KAAAC,EAEAD,EAAA,IACA,IAAAI,EAAAb,CAAA,CAAA18B,EAAA,CAAA6F,CAAA,CACAm3B,CAAA,CAAAO,EAAA,CAAA/B,EAAA2B,GAAA,GAAA3B,EAAAwB,CAAA,CAAAO,EAAA,KAAwD,EAAAv9B,CACxD,CAEA,KAAWA,GAAA,GAAAm9B,EAAc,EAAAn9B,EAAA,CACzB,IAAAw9B,EAAAd,CAAA,CAAA18B,EAAA,CAAA6F,CAAA,CAEAm3B,CAAA,CAAAQ,EAAA,EAAAhC,IACA,EAAAwB,CAAA,CAAAQ,EAAA,CACA,EAAAL,EAEA,CAEAF,EAAAzB,CACA,CAEA,WAAAnB,GAAA2C,GAAAC,EAAA,EAIAC,GAAA,SAAAA,EAAAh4B,CAAA,CAAA+H,CAAA,CAAAiB,CAAA,EACA,OAAAhJ,IAAAA,EAAAW,CAAA,CAAA+D,KAAA6zB,GAAA,CAAAP,EAAAh4B,EAAA+H,CAAA,CAAAA,EAAAiB,EAAA,GAAAgvB,EAAAh4B,EAAA80B,CAAA,CAAA/sB,EAAAiB,EAAA,IAAAjB,CAAA,CAAA/H,EAAAW,CAAA,EAAAqI,CACA,EAGAwvB,GAAA,SAAAl1B,CAAA,EAGA,IAFA,IAAA3C,EAAA2C,EAAAtI,MAAA,CAEA2F,GAAA,CAAA2C,CAAA,GAAA3C,EAAA,GAaA,QAVA83B,EAAA,IAAArD,GAAA,EAAAz0B,GAEA+3B,EAAA,EACAC,EAAAr1B,CAAA,IACAs1B,EAAA,EAEA9zB,EAAA,SAAA+E,CAAA,EACA4uB,CAAA,CAAAC,IAAA,CAAA7uB,CACA,EAEA/O,EAAA,EAAkBA,GAAA6F,EAAQ,EAAA7F,EAC1B,GAAAwI,CAAA,CAAAxI,EAAA,EAAA69B,GAAA79B,GAAA6F,EAAA,EAAAi4B,MAAqC,CACrC,IAAAD,GAAAC,EAAA,GACA,KAAeA,EAAA,IAAWA,GAAA,IAC1B9zB,EAAA,OAGA8zB,EAAA,IACA9zB,EAAA8zB,EAAA,GAAAA,EAAA,YAAAA,EAAA,YACAA,EAAA,EAEA,MAAQ,GAAAA,EAAA,GAGR,IAFA9zB,EAAA6zB,GAAA,EAAAC,EAEeA,EAAA,EAASA,GAAA,EACxB9zB,EAAA,MAGA8zB,EAAA,GAAA9zB,CAAAA,EAAA8zB,EAAA,WAAAA,EAAA,EACA,CAEA,KAAAA,KACA9zB,EAAA6zB,GAGAC,EAAA,EACAD,EAAAr1B,CAAA,CAAAxI,EAAA,CAIA,OAAA29B,EAAAtB,QAAA,GAAAuB,GAAA/3B,EAAA,EAIAk4B,GAAA,SAAAC,CAAA,CAAAL,CAAA,EAGA,QAFA1wB,EAAA,EAEAjN,EAAA,EAAkBA,EAAA29B,EAAAz9B,MAAA,CAAe,EAAAF,EACjCiN,GAAA+wB,CAAA,CAAAh+B,EAAA,CAAA29B,CAAA,CAAA39B,EAAA,CAGA,OAAAiN,CACA,EAIAgxB,GAAA,SAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,EAEA,IAAAv4B,EAAAu4B,EAAAl+B,MAAA,CACAgC,EAAAi6B,GAAAgC,EAAA,EACAD,CAAAA,CAAA,CAAAh8B,EAAA,CAAA2D,IAAAA,EACAq4B,CAAA,CAAAh8B,EAAA,GAAA2D,IAAA,EACAq4B,CAAA,CAAAh8B,EAAA,GAAAg8B,IAAAA,CAAA,CAAAh8B,EAAA,CACAg8B,CAAA,CAAAh8B,EAAA,GAAAg8B,IAAAA,CAAA,CAAAh8B,EAAA,GAEA,QAAAlC,EAAA,EAAkBA,EAAA6F,EAAO,EAAA7F,EACzBk+B,CAAA,CAAAh8B,EAAAlC,EAAA,GAAAo+B,CAAA,CAAAp+B,EAAA,CAGA,OAAAkC,EAAA,EAAA2D,CAAAA,EAAA,CACA,EAGAw4B,GAAA,SAAAD,CAAA,CAAAF,CAAA,CAAAI,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAA3D,CAAA,CAAA4D,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAr8B,CAAA,EACA+5B,GAAA4B,EAAA37B,IAAA+7B,GACA,EAAAE,CAAA,MAoBA,QAqBAK,EAAAC,EAAAC,EAAAC,EAvCAhE,EAAAwB,GAAAgC,EAAA,IACAS,EAAAjE,CAAA,IACAkE,EAAAlE,CAAA,IAEAI,EAAAoB,GAAAiC,EAAA,IACAU,EAAA/D,CAAA,IACAgE,EAAAhE,CAAA,IAEAiE,EAAA3B,GAAAuB,GACAK,EAAAD,CAAA,IACAE,EAAAF,CAAA,IAEAj7B,EAAAs5B,GAAAyB,GACAK,EAAAp7B,CAAA,IACAq7B,EAAAr7B,CAAA,IAEAs7B,EAAA,IAAApF,GAAA,IAEAt6B,EAAA,EAAkBA,EAAAs/B,EAAAp/B,MAAA,CAAiB,EAAAF,EACnC0/B,CAAA,CAAAJ,GAAAA,CAAA,CAAAt/B,EAAA,IAGA,QAAAA,EAAA,EAAkBA,EAAAw/B,EAAAt/B,MAAA,CAAiB,EAAAF,EACnC0/B,CAAA,CAAAF,GAAAA,CAAA,CAAAx/B,EAAA,IASA,IAhCA,IA0BAgE,EAAAw4B,GAAAkD,EAAA,GACAC,EAAA37B,CAAA,IACA47B,EAAA57B,CAAA,IAEA67B,EAAA,GAESA,EAAA,IAAAF,CAAA,CAAA/E,EAAA,CAAAiF,EAAA,IAAkC,EAAAA,GAG3C,IAAAC,EAAAlB,EAAA,KACAmB,EAAAhC,GAAAS,EAAAzC,IAAAgC,GAAAU,EAAAzC,IAAAlB,EACAkF,EAAAjC,GAAAS,EAAAS,GAAAlB,GAAAU,EAAAU,GAAArE,EAAA,KAAA+E,EAAA9B,GAAA2B,EAAAC,GAAA,GAAAD,CAAA,OAAAA,CAAA,OAAAA,CAAA,MACA,GAAAI,GAAAC,GAAAD,GAAAE,EAAA,OAAA/B,GAAAC,EAAA37B,EAAA67B,EAAA/B,QAAA,CAAAsC,EAAAA,EAAAC,IAIA,GAFAtC,GAAA4B,EAAA37B,EAAA,EAAAy9B,CAAAA,EAAAD,CAAA,GAAAx9B,GAAA,EAEAy9B,EAAAD,EAAA,CACAlB,EAAAvD,GAAA2D,EAAAC,EAAA,GAAAJ,EAAAG,EAAAF,EAAAzD,GAAA6D,EAAAC,EAAA,GAAAJ,EAAAG,EACA,IAAAc,EAAA3E,GAAAqE,EAAAC,EAAA,GACAtD,GAAA4B,EAAA37B,EAAAg9B,EAAA,KACAjD,GAAA4B,EAAA37B,EAAA,EAAAk9B,EAAA,GACAnD,GAAA4B,EAAA37B,EAAA,GAAAs9B,EAAA,GACAt9B,GAAA,GAEA,QAAAvC,EAAA,EAAoBA,EAAA6/B,EAAU,EAAA7/B,EAC9Bs8B,GAAA4B,EAAA37B,EAAA,EAAAvC,EAAA2/B,CAAA,CAAA/E,EAAA,CAAA56B,EAAA,GAGAuC,GAAA,EAAAs9B,EAGA,QAFAK,EAAA,CAAAZ,EAAAE,EAAA,CAEA75B,EAAA,EAAqBA,EAAA,EAAQ,EAAAA,EAG7B,QAFAw6B,EAAAD,CAAA,CAAAv6B,EAAA,CAEA3F,EAAA,EAAsBA,EAAAmgC,EAAAjgC,MAAA,CAAiB,EAAAF,EAAA,CACvC,IAAAuF,EAAA46B,GAAAA,CAAA,CAAAngC,EAAA,CACAs8B,GAAA4B,EAAA37B,EAAA09B,CAAA,CAAA16B,EAAA,EAAAhD,GAAAo9B,CAAA,CAAAp6B,EAAA,CACAA,EAAA,IAAA+2B,CAAAA,GAAA4B,EAAA37B,EAAA49B,CAAA,CAAAngC,EAAA,UAAAuC,GAAA49B,CAAA,CAAAngC,EAAA,MACA,CAEA,MACA6+B,EAAA5C,GAAA6C,EAAA/C,GAAAgD,EAAA7C,GAAA8C,EAAAhD,GAGA,QAAAh8B,EAAA,EAAkBA,EAAA0+B,EAAQ,EAAA1+B,EAC1B,GAAAu+B,CAAA,CAAAv+B,EAAA,MACA,IAAAuF,EAAAg5B,CAAA,CAAAv+B,EAAA,SACAu8B,GAAA2B,EAAA37B,EAAAs8B,CAAA,CAAAt5B,EAAA,MAAAhD,GAAAu8B,CAAA,CAAAv5B,EAAA,KACAA,EAAA,GAAA+2B,CAAAA,GAAA4B,EAAA37B,EAAAg8B,CAAA,CAAAv+B,EAAA,UAAAuC,GAAAm4B,EAAA,CAAAn1B,EAAA,EACA,IAAA66B,EAAA7B,GAAAA,CAAA,CAAAv+B,EAAA,CACAu8B,GAAA2B,EAAA37B,EAAAw8B,CAAA,CAAAqB,EAAA,EAAA79B,GAAAy8B,CAAA,CAAAoB,EAAA,CACAA,EAAA,GAAA7D,CAAAA,GAAA2B,EAAA37B,EAAAg8B,CAAA,CAAAv+B,EAAA,WAAAuC,GAAAo4B,EAAA,CAAAyF,EAAA,CACA,MACA7D,GAAA2B,EAAA37B,EAAAs8B,CAAA,CAAAN,CAAA,CAAAv+B,EAAA,GAAAuC,GAAAu8B,CAAA,CAAAP,CAAA,CAAAv+B,EAAA,EAKA,OADAu8B,GAAA2B,EAAA37B,EAAAs8B,CAAA,OACAt8B,EAAAu8B,CAAA,OAIAuB,GAAA,IAAA7F,GAAA,qEAEA8F,GAAA,IAAAjG,GAAA,GAEAkG,GAAA,SAAAnC,CAAA,CAAAoC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,EACA,IAAA/6B,EAAAu4B,EAAAl+B,MAAA,CACAgC,EAAA,IAAAm4B,GAAAqG,EAAA76B,EAAA,KAAA+D,KAAAwrB,KAAA,CAAAvvB,EAAA,MAAA86B,GAEA32B,EAAA9H,EAAAm6B,QAAA,CAAAqE,EAAAx+B,EAAAhC,MAAA,CAAAygC,GACAxC,EAAA,EAEA,IAAAqC,GAAA36B,EAAA,EACA,QAAA7F,EAAA,EAAoBA,GAAA6F,EAAQ7F,GAAA,OAE5B,IAAAmD,EAAAnD,EAAA,KAEAmD,CAAAA,EAAA0C,EAEAs4B,EAAAF,GAAAj0B,EAAAm0B,EAAAC,EAAA/B,QAAA,CAAAr8B,EAAAmD,KAGA6G,CAAA,CAAAhK,EAAA,CAAA4gC,EACAzC,EAAAF,GAAAj0B,EAAAm0B,EAAAC,EAAA/B,QAAA,CAAAr8B,EAAA6F,IAEA,KACI,CA6BJ,IA5BA,IAAAg7B,EAAAR,EAAA,CAAAG,EAAA,GACAt7B,EAAA27B,IAAA,GACAr4B,EAAAq4B,KAAAA,EACAC,EAAA,IAAAL,CAAA,IAEAM,EAAA,IAAAzG,GAAA,OACA0G,EAAA,IAAA1G,GAAAwG,EAAA,GACAG,EAAAr3B,KAAAs3B,IAAA,CAAAT,EAAA,GACAU,EAAA,EAAAF,EAEAG,EAAA,SAAAphC,CAAA,EACA,OAAAo+B,CAAA,CAAAp+B,EAAA,CAAAo+B,CAAA,CAAAp+B,EAAA,IAAAihC,EAAA7C,CAAA,CAAAp+B,EAAA,IAAAmhC,CAAA,EAAAL,CACA,EAIAvC,EAAA,IAAA/D,GAAA,MAEAgE,EAAA,IAAAlE,GAAA,KACAmE,EAAA,IAAAnE,GAAA,IAEA+G,EAAA,EACAvG,EAAA,EACA96B,EAAA,EACA0+B,EAAA,EACA4C,EAAA,EACA3C,EAAA,EAEW3+B,EAAA6F,EAAO,EAAA7F,EAAA,CAElB,IAAAuhC,EAAAH,EAAAphC,GAEAwhC,EAAAxhC,MAAAA,EAEAyhC,EAAAT,CAAA,CAAAO,EAAA,CAKA,GAJAR,CAAA,CAAAS,EAAA,CAAAC,EACAT,CAAA,CAAAO,EAAA,CAAAC,EAGAF,GAAAthC,EAAA,CAEA,IAAA0hC,EAAA77B,EAAA7F,EAEA,IAAAqhC,EAAA,KAAA3C,EAAA,QAAAgD,EAAA,KACAvD,EAAAE,GAAAD,EAAAp0B,EAAA,EAAAu0B,EAAAC,EAAAC,EAAA3D,EAAA4D,EAAAC,EAAA3+B,EAAA2+B,EAAAR,GACAO,EAAA2C,EAAAvG,EAAA,EAAA6D,EAAA3+B,EAEA,QAAAmR,EAAA,EAA0BA,EAAA,IAAS,EAAAA,EACnCqtB,CAAA,CAAArtB,EAAA,GAGA,QAAAA,EAAA,EAA0BA,EAAA,GAAQ,EAAAA,EAClCstB,CAAA,CAAAttB,EAAA,EAEA,CAGA,IAAAlE,EAAA,EACAiB,EAAA,EACAyzB,EAAAn5B,EACAo5B,EAAAJ,EAAAC,EAAA,MAEA,GAAAC,EAAA,GAAAH,GAAAH,EAAAphC,EAAA4hC,GAOA,IANA,IAAAC,EAAAj4B,KAAAk4B,GAAA,CAAA58B,EAAAw8B,GAAA,EACAK,EAAAn4B,KAAAk4B,GAAA,OAAA9hC,GAGAgiC,EAAAp4B,KAAAk4B,GAAA,KAAAJ,GAEAE,GAAAG,GAAA,EAAAJ,GAAAH,GAAAC,GAAA,CACA,GAAArD,CAAA,CAAAp+B,EAAAiN,EAAA,EAAAmxB,CAAA,CAAAp+B,EAAAiN,EAAA20B,EAAA,EAGA,IAFA,IAAAK,EAAA,EAEqBA,EAAAD,GAAA5D,CAAA,CAAAp+B,EAAAiiC,EAAA,EAAA7D,CAAA,CAAAp+B,EAAAiiC,EAAAL,EAAA,CAA6C,EAAAK,GAGlE,GAAAA,EAAAh1B,EAAA,CAGA,GAFAA,EAAAg1B,EAAA/zB,EAAA0zB,EAEAK,EAAAJ,EAAA,MAOA,QAHAK,EAAAt4B,KAAAk4B,GAAA,CAAAF,EAAAK,EAAA,GACAE,EAAA,EAEAhxB,EAAA,EAAgCA,EAAA+wB,EAAS,EAAA/wB,EAAA,CACzC,IAAAixB,EAAApiC,EAAA4hC,EAAAzwB,EAAA,YACAkxB,EAAAtB,CAAA,CAAAqB,EAAA,CACA7G,EAAA6G,EAAAC,EAAA,YACA9G,EAAA4G,GAAAA,CAAAA,EAAA5G,EAAAkG,EAAAW,CAAA,CACA,CACA,CACA,CAGAX,EAAAV,CAAA,CAAAS,EAAAC,EAAA,CACAG,GAAAJ,EAAAC,EAAA,WACA,CAIA,GAAAvzB,EAAA,CAGAqwB,CAAA,CAAAG,IAAA,WAAAxD,EAAA,CAAAjuB,EAAA,KAAAkuB,EAAA,CAAAjtB,EAAA,CACA,IAAAo0B,EAAApH,GAAAA,EAAA,CAAAjuB,EAAA,CACAs1B,EAAApH,GAAAA,EAAA,CAAAjtB,EAAA,CACA4sB,GAAAJ,EAAA,CAAA4H,EAAA,CAAA3H,EAAA,CAAA4H,EAAA,CACA,EAAA/D,CAAA,KAAA8D,EAAA,CACA,EAAA7D,CAAA,CAAA8D,EAAA,CACAjB,EAAAthC,EAAAiN,EACA,EAAAo0B,CACA,MACA9C,CAAA,CAAAG,IAAA,CAAAN,CAAA,CAAAp+B,EAAA,CACA,EAAAw+B,CAAA,CAAAJ,CAAA,CAAAp+B,EAAA,EAGA,CAEAm+B,EAAAE,GAAAD,EAAAp0B,EAAA42B,EAAArC,EAAAC,EAAAC,EAAA3D,EAAA4D,EAAAC,EAAA3+B,EAAA2+B,EAAAR,GAEAyC,GAAAzC,CAAAA,EAAAF,GAAAj0B,EAAAm0B,EAAAmC,GAAA,CACA,CAEA,OAAAlE,GAAAl6B,EAAA,EAAAw+B,EAAAvE,GAAAgC,GAAAwC,EACA,EAGA6B,GAAA,WAGA,QAFA/F,EAAA,IAAAjC,GAAA,KAEAx6B,EAAA,EAAkBA,EAAA,IAAS,EAAAA,EAAA,CAI3B,IAHA,IAAAwI,EAAAxI,EACAgP,EAAA,EAEA,EAAAA,GACAxG,EAAA,CAAAA,EAAAA,GAAA,YAAAA,IAAA,CAGAi0B,CAAAA,CAAA,CAAAz8B,EAAA,CAAAwI,CACA,CAEA,OAAAi0B,CACA,IAGAgG,GAAA,WACA,IAAAj6B,EAAA,WACA,OACAjG,EAAA,SAAA2L,CAAA,EAIA,QAFAw0B,EAAAl6B,EAEAxI,EAAA,EAAsBA,EAAAkO,EAAAhO,MAAA,CAAc,EAAAF,EACpC0iC,EAAAF,EAAA,CAAAE,IAAAA,EAAAx0B,CAAA,CAAAlO,EAAA,EAAA0iC,IAAA,EAGAl6B,EAAAk6B,CACA,EACAx0B,EAAA,WACA,OAAA1F,WAAAA,CACA,CACA,CACA,EAOAm6B,GAAA,SAAAz0B,CAAA,CAAA6sB,CAAA,CAAAhsB,CAAA,EACA,KAASA,EAAG,EAAAgsB,EACZ7sB,CAAA,CAAA6sB,EAAA,CAAAhsB,EAAAA,KAAA,CAEA,EAGA6zB,GAAA,SAAAp6B,CAAA,CAAAtG,CAAA,EACA,IAAA2gC,EAAA3gC,EAAA4gC,QAAA,CAKA,GAJAt6B,CAAA,OAAAA,CAAA,QAAAA,CAAA,MAAAA,CAAA,IAAAtG,EAAA6gC,KAAA,KAAA7gC,GAAAA,EAAA6gC,KAAA,KAAAv6B,CAAA,MAEA,GAAAtG,EAAA8gC,KAAA,EAAAL,GAAAn6B,EAAA,EAAAoB,KAAAwrB,KAAA,KAAAtkB,KAAA5O,EAAA8gC,KAAA,EAAAlyB,KAAA8G,GAAA,UAEAirB,EAAA,CACAr6B,CAAA,MAEA,QAAAxI,EAAA,EAAoBA,GAAA6iC,EAAA3iC,MAAA,CAAgB,EAAAF,EACpCwI,CAAA,CAAAxI,EAAA,IAAA6iC,EAAA/6B,UAAA,CAAA9H,EAEA,CACA,CAiEAqG,EADAA,EAICA,GAAAA,CAAAA,EAAA,KAHD,iBACAA,EAAA,YACAA,EAAA,gBAmCA,IAAA48B,GAAA,SAAA5wB,CAAA,CAAA6wB,CAAA,CAAAC,CAAA,EACA,IAAAl3B,EAAAi3B,GAAA,EACAj3B,CAAAA,EAAA,GAAAk3B,EAAA,OACAl3B,EAAA,MAAA6E,OAAAgN,OAAA,GAAA3Y,QAAA,GACA8G,EAAA,IAAApB,EAAAE,WAAA,CACA,IAAAq4B,EAAA/wB,EAAAgC,KAAA,MAEA,GAAA+uB,EAAAljC,MAAA,IAGA,IACA8vB,EADAC,EAAAxqB,EAFA29B,CAAA,IAAA/uB,KAAA,OAKA,IACA,IAAA4b,EAAApqB,CAAA,GAA0B,EAAAmqB,EAAAC,EAAA/qB,CAAA,IAAAZ,IAAA,EAA8B,CAExD,IAAAjE,EAAAkC,EADAZ,KAAA,CACA0S,KAAA,SAEApI,CAAA,CAAA5L,EAAA,EACA,OAAA4L,CAAA,CAAA5L,EAAA,CAGA,CAAM,MAAAkE,EAAA,CACN0rB,EAAA9sB,CAAA,CAAAoB,EACA,QAAM,CACN0rB,EAAAnqB,CAAA,EACA,CACA,CAEA,IAAAu9B,EAAAhxB,EAAA3G,OAAA,iBACA,OAAA2G,EAAAgxB,EAAAzxB,GAAA3F,EACA,EACAq3B,GAAA,SAAAA,EAAAh5B,CAAA,CAAA8Y,CAAA,MAoBAmgB,SAnBA,EAAAC,IAAA,EAAAl5B,EAAA0G,MAAA,CACA,IAAAyyB,KAAA,CAAAn5B,EAAA0G,MAAA,GACAuC,KAAA,YACA,GAGA6P,EAAAsgB,UAAA,EAAAtgB,EAAAogB,IAAA,CAIA,IAAAC,KAAA,CAHAH,EAAAh5B,EAAA,CACA4a,OAAA,MACA,GACA,EACA3R,KAAA,mCACA,GAGA6P,SAAAA,EAAA8B,MAAA,CACA,MAWAqe,EAFA3/B,MAAAC,OAAA,CAAAyG,IAHAjL,wBAAAA,OAAA0B,SAAA,CAAAoE,QAAA,CAAAjC,IAAA,CAGAoH,GAEA,QAAA6H,mBAAA7H,GAEA,QAAA6H,mBAAA7H,EAAAA,IAAA,EAGA,gBAAAA,GAAAA,EAAA8rB,WAAA,EACAmN,CAAAA,GAAA,gBAAAj5B,EAAA8rB,WAAA,EAGAmN,EACA,EACAI,GAAA,SAAAhP,CAAA,EACA,IAAAtiB,EAAAsiB,EAAAtiB,GAAA,CACA/H,EAAAqqB,EAAArqB,IAAA,CACAs5B,EAAAjP,EAAAiP,OAAA,CACAxgB,EAAAuR,EAAAvR,OAAA,CACA8V,EAAAvE,EAAAuE,cAAA,CACAnf,EAAA4a,EAAA5a,QAAA,CACA8pB,EAAAlP,EAAAkP,qBAAA,CACAC,EAAAnP,EAAAmP,UAAA,CACAC,EAAApP,EAAAoP,UAAA,CACAC,EAAArP,EAAAsP,OAAA,CAEAC,EAAA,IAAAC,eACAD,EAAAE,IAAA,CAAAhhB,EAAA8B,MAAA,QAAA7S,EAAA,IACA,IAAAmI,EAAA8oB,GAAAh5B,EAAA8Y,GACA8V,EAAAzI,IAAA,kBACAyI,EAAAzI,IAAA,2BAEA1jB,EAAA62B,EAAA,SAAAS,CAAA,CAAAC,CAAA,EACAJ,EAAAK,gBAAA,CAAAD,EAAAD,EACA,GAEA,SAAAjhB,EAAA8B,MAAA,EAAA9B,EAAAogB,IAAA,EACAU,EAAAK,gBAAA,qDAGAL,EAAAD,OAAA,CAfAD,KAAA,IAAAA,EAAA,IAAAA,EAkBAE,EAAAM,eAAA,IAEAN,EAAAO,kBAAA,YACA,GAAAP,IAAAA,EAAAQ,UAAA,EAKA,GAJAxL,EAAAzI,IAAA,iBACAyI,EAAAzI,IAAA,iBAAAhkB,MAAA,CAAAy3B,EAAAlO,MAAA,GACAkD,EAAAyL,IAAA,2BAEAT,MAAAA,EAAAlO,MAAA,CACA,IAAAjc,EAAA,CACA,IAAAkG,EAEA,IACAA,EAAAmB,KAAAD,KAAA,CAAA+iB,EAAAU,YAAA,CACA,CAAY,MAAAzhC,EAAA,CACZyI,EAAAS,KAAA,CAAAlJ,GACA,MACA,CAEA4W,EAAAkG,EACA,MAEA,mBAAA8jB,GACAA,EAAAG,GAIA,oBAAAx4B,OAAA,CAAAw4B,EAAAlO,MAAA,GACA8N,EAAAe,OAAA,EACAxyB,IAAAA,EACA/H,KAAAA,EACA8Y,QAAAA,EACAwgB,QAAAA,EACAC,sBAAA,CAAAA,GAAA,KACA9pB,SAAAA,CACA,GAGAA,GACAA,EAAA,CACAic,OAAA,CACA,GAIA,EAEAkO,EAAAY,IAAA,CAAAtqB,EACA,EAEAuqB,GAAA,SAAA/L,CAAA,EACAp3B,EAAAmjC,EAAA/L,GAEA,IAAAC,EAAAz2B,EAAAuiC,GAEA,SAAAA,EAAA7L,CAAA,CAAA6K,CAAA,EACA,IAAAnnB,EAqBA,OAnBA5b,EAAA,KAAA+jC,GAGAnoB,CADAA,EAAAqc,EAAA/1B,IAAA,QACAg2B,cAAA,CAAAA,EACAtc,EAAA4b,SAAA,IACA5b,EAAAooB,KAAA,IACApoB,EAAAqoB,WAAA,IACAroB,EAAAmnB,UAAA,CAAAA,EAEA,WAAA54B,OAAAC,SAAA,GACAwR,EAAAqoB,WAAA,CAAA95B,OAAAC,SAAA,CAAA85B,MAAA,CACA/5B,OAAAwI,gBAAA,qBACAiJ,EAAAuoB,qBAAA,EACA,GACAh6B,OAAAwI,gBAAA,sBACAiJ,EAAAqoB,WAAA,GACA,IAGAroB,CACA,CAyIA,OAvIApb,EAAAujC,EAAA,EACA1kC,IAAA,UACAsB,MAAA,SAAAyjC,CAAA,EACA,IAAAvB,EAAAuB,EAAAvB,qBAAA,IAEA,IAAAA,CAAAA,GAAA,KAIA,IAAAwB,EAAA,IAAAz7B,KAAAC,GAAA,GAAAg6B,GACAyB,EAAA,IAAAx0B,KAAAA,KAAA8G,GAAA,GAAAytB,GACAt5B,QAAA0c,IAAA,yCAAAhc,MAAA,CAAA44B,IACA,KAAAL,KAAA,CAAAplC,IAAA,EACA0lC,QAAAA,EACAF,YAAAA,CACA,GAEA,KAAA5M,SAAA,GACA,KAAAA,SAAA,IACA,KAAAM,IAAA,IAEA,CACA,EAAG,CACHz4B,IAAA,OACAsB,MAAA,WACA,IAAA2b,EAAA,KAEA,KAAAqb,OAAA,EAAAS,aAAA,KAAAT,OAAA,EACA,KAAAA,OAAA,CAAA7P,WAAA,WACAxL,EAAA2nB,WAAA,EAAA3nB,EAAA0nB,KAAA,CAAA9kC,MAAA,IACAod,EAAAioB,KAAA,GAGAjoB,EAAAwb,IAAA,EACA,EAAO,KAAAF,aAAA,CACP,CACA,EAAG,CACHv4B,IAAA,QACAsB,MAAA,WAEA,IAAAiW,EAAA,IAAA9G,KAAAA,KAAA8G,GAAA,IACA4tB,EAAA,KAAAR,KAAA,CAAAxlC,MAAA,UAAAm1B,CAAA,EAEA,OAAA2Q,EADAA,OAAA,CACA1tB,CACA,GAEA,GAAA4tB,EAAAtlC,MAAA,IACA,KAAA8kC,KAAA,MAAAA,KAAA,CAAAxlC,MAAA,UAAAimC,CAAA,EAEA,OAAAH,EADAA,OAAA,EACA1tB,CACA,GAEA,IACAoY,EADAC,EAAAxqB,EAAA+/B,GAGA,IACA,IAAAvV,EAAApqB,CAAA,GAA8B,EAAAmqB,EAAAC,EAAA/qB,CAAA,IAAAZ,IAAA,EAA8B,CAC5D,IAAA8gC,EAAApV,EAAAruB,KAAA,CAAAyjC,WAAA,CAEA,KAAAM,kBAAA,CAAAN,EACA,CACA,CAAU,MAAA7gC,EAAA,CACV0rB,EAAA9sB,CAAA,CAAAoB,EACA,QAAU,CACV0rB,EAAAnqB,CAAA,EACA,CACA,CACA,CACA,EAAG,CACHzF,IAAA,SACAsB,MAAA,WACA,KAAAg3B,OAAA,GACAS,aAAA,KAAAT,OAAA,EACA,KAAAA,OAAA,CAAA1mB,KAAAA,GAGA,IACAokB,EADAE,EAAA9wB,EAAA,KAAAu/B,KAAA,EAGA,IACA,IAAAzO,EAAA1wB,CAAA,GAA6B,EAAAwwB,EAAAE,EAAArxB,CAAA,IAAAZ,IAAA,EAAgC,CAC7D,IAAA8gC,EAAA/O,EAAA10B,KAAA,CAAAyjC,WAAA,CACA/yB,EAAA+yB,EAAA/yB,GAAA,CACA/H,EAAA86B,EAAA96B,IAAA,CACA8Y,EAAAgiB,EAAAhiB,OAAA,CAEA,IACAjY,OAAAC,SAAA,CAAAs4B,UAAA,CAAArxB,EAAAixB,GAAAh5B,EAAAxK,EAAAA,EAAA,GAAkGsjB,GAAA,GAAc,CAChHsgB,WAAA,EACA,IACA,CAAY,MAAAvgC,EAAA,CAGZ0H,EAAAC,KAAA,EACAiB,QAAAM,KAAA,CAAAlJ,EAEA,CACA,CACA,CAAQ,MAAAoB,EAAA,CACRgyB,EAAApzB,CAAA,CAAAoB,EACA,QAAQ,CACRgyB,EAAAzwB,CAAA,EACA,CAEA,KAAAk/B,KAAA,IAEA,EAAG,CACH3kC,IAAA,qBACAsB,MAAA,SAAAgkC,CAAA,EACA,IAAAtzB,EAAAszB,EAAAtzB,GAAA,CACA/H,EAAAq7B,EAAAr7B,IAAA,CACA8Y,EAAAuiB,EAAAviB,OAAA,CACAwgB,EAAA+B,EAAA/B,OAAA,CACA7pB,EAAA4rB,EAAA5rB,QAAA,CAEA4pB,GAAA,CACAtxB,IAAAA,EACA/H,KAAAA,GAAA,GACA8Y,QAAAA,GAAA,GACAwgB,QAAAA,GAAA,GACAC,sBAAAA,EANAA,qBAAA,EAMA,EACA9pB,SAAAA,EACAmf,eAAA,KAAAA,cAAA,CACA4K,WAAA,KACAC,WAAA,KAAAA,UAAA,EAEA,CACA,EAAG,CACH1jC,IAAA,wBACAsB,MAAA,WACA,KAAAsjC,WAAA,IACA,KAAAM,KAAA,EACA,CACA,EAAG,EAEHR,CACA,EAACzM,IAMDsN,GAAA,WACA,SAAAA,EAAA3mB,CAAA,CAAAwG,CAAA,EACAzkB,EAAA,KAAA4kC,GAEA,KAAAngB,WAAA,CAAAA,EACA,KAAAogB,SAAA,CAAA5zB,KAAAA,EACA,KAAA6zB,UAAA,CAAA7zB,KAAAA,EACA,KAAA8zB,sBAAA,MACA,KAAAC,yBAAA,MACA,IAAAC,EAAAhnB,EAAA,kBAAAA,EAAA,MAKA,GAJA,KAAAinB,qBAAA,OAAAD,EAAA,aACA,KAAAE,iCAAA,OAAAF,EAAA,yBAGA,MAAAxgB,WAAA,CAAA8F,QAAA,EAAAtI,GAAApC,YAAA,IACA,IAAAulB,EAAAnjB,GAAA9B,KAAA,MAAA+kB,qBAAA,EACAG,EAAApjB,GAAA9B,KAAA,MAAAglB,iCAAA,CAEAC,CAAAA,GAAA,CAAAC,EAEA,KAAAR,SAAA,CAAAO,EAGAnjB,GAAAd,MAAA,MAAA+jB,qBAAA,EAIAjjB,GAAA5B,GAAA,MAAA8kB,iCAAA,IACA,CAEA,KAAAG,qBAAA,EACA,CA+IA,OAzIA9kC,EAAAokC,EAAA,EACAvlC,IAAA,eACAsB,MAAA,SAAA+qB,CAAA,EACAA,IAAA,KAAAmZ,SAAA,GACA,KAAAA,SAAA,CAAAnZ,EAEA,MAAAjH,WAAA,CAAA8F,QAAA,EAAAtI,GAAApC,YAAA,IACAoC,GAAA5B,GAAA,MAAA6kB,qBAAA,CAAAxZ,GAGA,CACA,EAAG,CACHrsB,IAAA,eACAsB,MAAA,kBACA,KAAAkkC,SAAA,CACA,KAAAA,SAAA,CAGA,MAAApgB,WAAA,CAAA8F,QAAA,EAAAtI,GAAApC,YAAA,GACAoC,GAAA9B,KAAA,MAAA+kB,qBAAA,EAIA,IACA,CAGA,EAAG,CACH7lC,IAAA,gBACAsB,MAAA,SAAAgrB,CAAA,CAAA4Z,CAAA,CAAAC,CAAA,EACA7Z,CAAAA,IAAA,KAAAmZ,UAAA,EAAAS,IAAA,KAAAP,yBAAA,EAAAQ,IAAA,KAAAT,sBAAA,IACA,KAAAA,sBAAA,CAAAS,EACA,KAAAR,yBAAA,CAAAO,EACA,KAAAT,UAAA,CAAAnZ,EACA,KAAAlH,WAAA,CAAA+B,QAAA,CAAAlnB,EAAA,GAAoDqqB,GAAA,CAAA4b,EAAA5Z,EAAA6Z,EAAA,GAEpD,CACA,EAAG,CACHnmC,IAAA,gBACAsB,MAAA,WACA,QAAAmkC,UAAA,OAAAE,yBAAA,OAAAD,sBAAA,CACA,YAAAC,yBAAA,MAAAF,UAAA,MAAAC,sBAAA,EAGA,IAAApZ,EAAA,KAAAlH,WAAA,CAAArkB,KAAA,CAAAupB,GAAA,CAOA,OALA/mB,MAAAC,OAAA,CAAA8oB,IAAAA,IAAAA,EAAAzsB,MAAA,EAEAysB,EAAA/sB,IAAA,CAAA+sB,CAAA,KAGAA,GAAA,WAIA,EAAG,CACHtsB,IAAA,iBACAsB,MAAA,WACA,KAAA8kC,aAAA,gBACA,CAQA,EAAG,CACHpmC,IAAA,wBACAsB,MAAA,WACA,IAAAib,EAAA,KAEAzR,OAAAwI,gBAAA,2BACA,CAAAiJ,EAAA6I,WAAA,CAAA8F,QAAA,EAAAtI,GAAApC,YAAA,IACAoC,GAAAd,MAAA,CAAAvF,EAAAupB,iCAAA,CAEA,EACA,CAkBA,EAAG,CACH9lC,IAAA,gCACAsB,MAAA,WACA,IAAA+kC,EAAAzmC,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,KAAAA,SAAA,IAEA0X,EAAA1X,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,SAEA6a,EAAAnD,GAAA,IAAA7G,OAAAgN,OAAA,GAIA6oB,EAAAljC,EADA,KAAAmjC,aAAA,GACA,GACAC,EAAAF,CAAA,IACAha,EAAAga,CAAA,IACAG,EAAAH,CAAA,IAEAja,EAAA,KAAAqa,YAAA,GAEAC,EAAAF,GAAAA,EAAA,GAAAl9B,KAAAoR,GAAA,CAAAF,EAAAgsB,GAxJA,KA0JA,EAAAna,GAAA,CAAA+Z,GAAA98B,KAAAoR,GAAA,CAAAF,EAAA+rB,GA5JA,MA4JAG,GACAra,EAAA9b,KACA6b,EAAA7b,KACAi2B,EAAAhsB,GACQ4R,GACRA,CAAAA,EAAA7b,IAAA,EAIA,IAAA21B,EAAAM,IAAAA,EAAA,IAAAh2B,OAAAgN,OAAA,GAAAgpB,EAMA,OAJA,KAAAG,YAAA,CAAAva,GAEA,KAAA+Z,aAAA,CAAA9Z,EALAka,IAAAA,GAAA,CAAAH,GAAAM,EAAAlsB,EAAA+rB,EAKAL,GAEA,CACA7Z,UAAAA,EACAD,SAAAA,CACA,CACA,CACA,EAAG,EAEHkZ,CACA,IAmBAsB,GAAA1lC,EAAA,SAAA0lC,EAAA7hB,CAAA,CAAA8hB,CAAA,CAAAC,CAAA,CAAAC,CAAA,EACArmC,EAAA,KAAAkmC,GAKA,KAAA7hC,IAAA,cAEA,KAAAiiC,SAAA,UAAAC,CAAA,EACAA,EAAA,SAAAt0B,CAAA,EAGA,GAAAA,UAAAA,EAAA8vB,KAAA,GAAA1d,EAAAmiB,QAAA,QAAAv0B,CACAA,CAAAA,EAAAw0B,IAAA,EAAAx0B,CAAAA,EAAAw0B,IAAA,KACA,IAJAC,EAAAC,EAAAC,EAIAhxB,EAAAyO,EAAApG,MAAA,CAAA4oB,OAAA,EAAAxiB,EAAApG,MAAA,CAAA6oB,QAAA,CACA70B,EAAAw0B,IAAA,uBAAA7wB,EAAA,WAAAyO,EAAAU,eAAA,GAEAV,EAAA0iB,uBAAA,IACA90B,CAAAA,EAAAw0B,IAAA,0BAAA7wB,EAAA,eAAAyO,EAAAiJ,cAAA,CAAAC,6BAAA,KAAA5B,SAAA,EAGA,IAAAqb,EAAA,QAAAN,CAAAA,EAAAz0B,EAAAg1B,SAAA,GAAAP,KAAA,IAAAA,EAAA,OAAAA,EAAA5N,MAAA,MACAxvB,EAAA,CACA49B,iBAAAj1B,EAAAk1B,QAAA,CACAC,kBAAAn1B,EAAAg1B,SAAA,CACAI,0BAAA,OAAAV,CAAAA,EAAAK,CAAA,MAAAL,KAAA,IAAAA,EAAA,OAAAA,EAAAhmC,KAAA,CACA2mC,uBAAA,OAAAV,CAAAA,EAAAI,CAAA,MAAAJ,KAAA,IAAAA,EAAA,OAAAA,EAAAr0B,IAAA,CACAg1B,aAAAt1B,EAAAw0B,IAAA,EAMA,OAJAN,GAAAC,GAAA98B,CAAAA,EAAA,aAAA+8B,GAAA,oCAAAF,EAAA,oBAAAC,EAAA,UAAAn0B,EAAAk1B,QAAA,EAEA9iB,EAAA9F,OAAA,cAAAjV,GAEA2I,CACA,EACA,CACA,GAqBAu1B,GAAA,SAAA1jB,CAAA,EACA,IAAA2jB,EAAA,SAAAC,CAAA,CAAAnrB,CAAA,EACAmrB,EAAAz1B,KAAA,CAAA01B,MAAA,EAAAD,EAAAz1B,KAAA,CAAA21B,WAAA,GAAA9jB,EAAAiB,eAAA,IAEAjB,EAAA+jB,KAAA,GAGAH,EAAAz1B,KAAA,CAAA01B,MAAA,EAAAD,EAAAz1B,KAAA,CAAA01B,MAAA,GAAA7jB,EAAAiB,eAAA,KACAjB,EAAA0C,QAAA,EACA3E,YAAA6lB,EAAAz1B,KAAA,CAAA01B,MAAA,GAEA7jB,EAAAgkB,kBAAA,IAGA,IAAAC,EAAAjkB,EAAAkkB,2BAAA,CAAAzrB,EAAAmrB,EAAAz1B,KAAA,CAAAkD,UAAA,EAGA,OADAuyB,EAAAz1B,KAAA,CAAAkD,UAAA,CAAA9W,OAAAwuB,MAAA,IAA2Ckb,EAAAL,EAAAz1B,KAAA,CAAAkD,UAAA,EAC3CuyB,CACA,EAEA,OACArjC,KAAA,aACAkO,KAAA,aACA01B,QAAA,QACAC,SAAA,WACA,QACA,EACA9d,KAAA,WACA,OAAA+d,QAAAC,OAAA,EACA,EACAC,MAAA,SAAAX,CAAA,EACA,OAAAD,EAAAC,EAAAA,EAAAz1B,KAAA,CAAAA,KAAA,CACA,EACAq2B,KAAA,SAAAZ,CAAA,EACA,OAAAD,EAAAC,EAAA,YACA,EACAa,SAAA,SAAAb,CAAA,EACA,OAAAD,EAAAC,EAAA,YACA,EACAl3B,OAAA,SAAAk3B,CAAA,EACA,OAAAD,EAAAC,EAAA,UACA,CACA,CACA,EAEAc,GAAA,WACA,SAAAA,IACAxoC,EAAA,KAAAwoC,GAEAlpC,EAAA,6BACA,CAwBA,OAtBAkB,EAAAgoC,EAAA,EACAnpC,IAAA,aACAsB,MAAA,WAGA,KAAA8nC,kBAAA,EACA,MAAAC,WAAA,CAAA74B,IAAA,EAGA,KAAA44B,kBAAA,GACA,CACA,EAAG,CACHppC,IAAA,gBACAsB,MAAA,WAKA,OAJA,KAAA+nC,WAAA,EACA,MAAAA,WAAA,CAAA74B,IAAA,EAGA,KAAA64B,WAAA,CAEA,EAAG,EAEHF,CACA,GAeAljC,EADAA,EAGCA,GAAAA,CAAAA,EAAA,IAFD,CAAAA,EAAA,6BACAA,CAAA,CAAAA,EAAA,+BAOA,IAAAqjC,GAAA,aAEAC,GAAA,GACAC,GAAA,UAOAC,GAAA5+B,EAAAi5B,cAAA,0BAAAA,eAIA4F,GAAA,CAAAD,IAAAz+B,KAAAA,EAAAK,OAAA,UAAAL,KAAAA,EAAAK,OAAA,YAEAs+B,GAAA,WACA,IAAAC,EAAAC,EAAAC,EAEA,OACArC,SAAA,0BACAsC,WAAA,OACAC,cAAA,MACAxC,QAAA,KACA3nB,MAAA,GACAjF,YAAA,GACAqvB,UAAA,GACAC,uBAAA,CAAAj/B,MAAAA,EAAA,cAAA2+B,CAAAA,EAAA3+B,EAAAmL,QAAA,GAAAwzB,KAAA,IAAAA,EAAA,cAAAC,CAAAA,EAAAD,EAAAroB,QAAA,GAAAsoB,KAAA,IAAAA,EAAA,OAAAA,EAAAx+B,OAAA,wBACA+Z,YAAA,SACA+kB,iBAAA,GACAC,YAAA,GACAC,OAAAf,GACAgB,aAAA,GACAC,cAAA,GACAtlC,KAAA,GACAuwB,QAAA,GACAgV,IAAA,GACAC,iBAAA,GACAC,kBAAA,GAEAC,MAAA,GACAC,kBAAA,IACAC,QAAA,GACAC,0BAAA,GACAC,oBAAA,GACAC,eAAA,GACAC,6BAAAr5B,KAAAA,EAEAs5B,cAAA,CAAArgC,MAAAA,EAAA,cAAAi/B,CAAAA,EAAAj/B,EAAAuL,QAAA,GAAA0zB,KAAA,IAAAA,EAAA,OAAAA,EAAAqB,QAAA,aACAC,GAAA,GACAC,6BAAA,GACAC,+BAAA,GACAC,mCAAA,eACAC,gCAAA,KACAC,iBAAA,GACAC,mBAAA,GACAC,YAAA,GACAC,oBAAA,KACAC,YAAA,GAEAC,eAAA,KACAC,sBAAA,GACAC,iBAAA,GACAC,6BAAA,MACAC,kBAAA,CAGA3d,WAAA,gBACAC,cAAA,KACAC,YAAA,kBACAC,cAAA,GACAC,iBAAA,GACAC,YAAA,KACAC,eAAA,GACAC,aAAA,GACAC,iBAAA,EACA,EACAod,4BAAA,GACAC,cAAA,GACAC,wBAAA,GACAC,iCAAA,GACAC,aAAA,SAAA1I,CAAA,EAEAn4B,QAAAM,KAAA,CADA,oBAAA63B,EAAAlO,MAAA,KAAAkO,EAAA2I,UAAA,CAEA,EACAC,cAAA,SAAAC,CAAA,EACA,OAAAA,CACA,EAEAC,WAAArD,GACAsD,iBAAA,GACAC,oBAAAj7B,KAAAA,EACA5M,KAAA,UACA8nC,YAAA,eACAC,UAAA,GACAC,oBAAA,EACA,CACA,EAWAC,GAAA,SAAAptB,CAAA,CAAAjB,CAAA,CAAA5Z,CAAA,EAEA,IADApE,EACAlB,EAAAsF,IAAAwkC,IAAArjC,EAAAnB,EAAAmB,CAAA,CAAAnB,EAAA,CAAA4M,KAAAA,EAAAzL,EAEA,GAAAzG,GAAAwG,IAAAD,EAAAinC,WAAA,CACAtsC,EAAAlB,MACI,CACJ,GAAAA,GAAA,CAAAwN,EAAAxN,GAAA,CACAgM,QAAAM,KAAA,iCAAAhH,GAIA,MACA,CAEApE,EAAA,IAAAusC,EACA,CAwCA,OAtCAvsC,EAAAwsC,KAAA,CAAAvtB,EAAAjB,EAAA5Z,GAEApE,EAAAg1B,OAAA,CAAAoC,gBAAA,GACAp3B,EAAAssB,gBAAA,KAAAnB,GAAAnrB,GACAA,EAAAssB,gBAAA,CAAAG,uBAAA,GACAzsB,EAAAi1B,cAAA,KAAAtC,GAAA3yB,GACAA,EAAAi1B,cAAA,CAAAwX,uBAAA,GACAzsC,EAAA4e,aAAA,CAAA5e,EAAAoe,UAAA,gBAEApe,EAAAoe,UAAA,kBACApe,EAAA4e,aAAA,CAAA5e,EAAAoe,UAAA,gBAIApE,GAAAkF,iBAAA,CAAAlf,EAAAoe,UAAA,UAHA,IACA,KAKMpE,GAAAsF,kBAAA,GAINtF,GAAA0E,IAAA,CAAA1e,IAHAA,EAAA4e,aAAA,IACAjU,EAAAC,GAAA,iFAJA5K,EAAA4e,aAAA,IACAjU,EAAAC,GAAA,kEAWAhB,EAAAC,KAAA,CAAAD,EAAAC,KAAA,EAAA7J,EAAAoe,UAAA,UAGA,SAAAtf,GAAAwN,EAAAxN,KAGAkB,EAAA0sC,cAAA,CAAAzqC,IAAA,CAAAjC,EAAA2sC,MAAA,CAAA7tC,EAAA6tC,MAAA,EAEA3sC,EAAA0sC,cAAA,CAAA5tC,IAGAkB,CACA,EAOAusC,GAAA,WAEA,SAAAA,IACA,IAAA5wB,EAAA,KAEA5b,EAAA,KAAAwsC,GAEA,KAAAvuB,MAAA,CAAA+qB,KACA,KAAA5T,WAAA,IACA,KAAAxM,oBAAA,IACA,KAAAsd,iBAAA,CAAAA,GAEA,KAAA2G,kBAAA,YACA,OAAArF,GAAA5rB,EACA,EAEA,KAAAkxB,cAAA,IACA,KAAAC,eAAA,IACA,KAAAvG,QAAA,IACA,KAAAxZ,iBAAA,IACA,KAAAnO,aAAA,CAAA5N,KAAAA,EAEA,KAAA+7B,IAAA,cAEA,KAAAJ,MAAA,KAAAxoB,GAAA,MACA,KAAA+Q,YAAA,KAAArO,GAAA,MACA,KAAAmmB,aAAA,MAAA9X,YAAA,CACA,KAAAF,OAAA,KAAAa,GAAA,MACA,KAAAoX,iBAAA,KAAA1E,GAEA,KAAAhZ,eAAA,CAAAve,KAAAA,EACA,KAAAk8B,aAAA,CAAAl8B,KAAAA,EACA,KAAAm8B,WAAA,CAAAn8B,KAAAA,EACA,KAAAwT,WAAA,CAAAxT,KAAAA,EACA,KAAAqc,cAAA,CAAArc,KAAAA,CACA,CAgjDA,OA5hDAzQ,EAAAgsC,EAAA,EACAntC,IAAA,OACAsB,MAAA,SAAAue,CAAA,CAAAjB,CAAA,CAAA5Z,CAAA,EACA,GAAAyG,GAAAzG,GAAA,CACA0G,QAAAM,KAAA,8DACA,MACA,CAEA,GAAAhH,IAAAwkC,GAAA,CACA99B,QAAAM,KAAA,+FACA,MACA,CAEA,IAAApL,EAAAqsC,GAAAptB,EAAAjB,EAAA5Z,GAKA,OAJAmB,CAAA,CAAAnB,EAAA,CAAApE,EAEAA,EAAAotC,OAAA,GAEAptC,CACA,CAQA,EAAG,CACHZ,IAAA,QACAsB,MAAA,SAAAue,CAAA,EAGA,IAAAjB,EAAAhf,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,OACAoF,EAAApF,UAAAC,MAAA,GAAAD,SAAA,IAAAgS,KAAAA,EA+CA,GA9CA,KAAAu1B,QAAA,IACA,KAAAvoB,MAAA,IAEA,KAAAqvB,iBAAA,IACA,KAAAC,UAAA,CAAAphC,EAAA,GAAgC68B,KAAA/qB,EAAA,CAChC5Z,KAAAA,EACA6a,MAAAA,EACAitB,YAAA,CAAA9nC,IAAAwkC,GAAAxkC,EAAAwkC,GAAA,IAAAxkC,CAAA,SACA,IAEA,KAAA2oC,IAAA,cAKA9iC,CAAAA,MAAAA,GAAA,OAAAsjC,CAAAA,EAAAtjC,EAAAmkB,KAAA,GAAAmf,KAAA,IAAAA,GAAAA,EAAAlf,MAAA,EAAApkB,MAAAA,GAAAA,EAAAsjB,WAAA,GACA,MAAAR,iBAAA,KAGA,KAAAwC,eAAA,KAAA0J,GAAA,KAAA7a,UAAA,sBACA,KAAA8uB,aAAA,KAAApV,GAAA,KAAAvI,eAAA,MAAAie,oBAAA,CAAApsC,IAAA,QACA,KAAA+rC,WAAA,KAAArJ,GAAA,KAAAvU,eAAA,MAAAnR,UAAA,kBACA,KAAAyuB,cAAA,IACA,KAAAC,eAAA,IACA,KAAAtoB,WAAA,KAAAsF,GAAA,KAAA9L,MAAA,EACA,KAAAqP,cAAA,KAAAsX,GAAA,KAAA3mB,MAAA,MAAAwG,WAAA,EAEA,KAAAipB,UAAA,GAEAzvB,EAAA0vB,OAAA,GAEA,KAAA1vB,MAAA,CAAA6tB,aAAA,YACA,OAAA7tB,EAAA0vB,OAAA,CAAAC,IAAA,GAAAhG,WAAA,EACA,EAGA3pB,EAAA0vB,OAAA,CAAAC,IAAA,GAAAr1B,EAAA,KACA,KAAAiO,QAAA,EACA3E,YAAA5D,EAAA0vB,OAAA,CAAAC,IAAA,GAAAr1B,EAAA,EACA,GACA,KAAAkM,WAAA,CAAAopB,cAAA,gBAGA5vB,EAAA0vB,OAAA,CAAAnnB,QAAA,MAAAqmB,kBAAA,KAGA,QAAAiB,CAAAA,EAAA7vB,EAAAmuB,SAAA,GAAA0B,KAAA,IAAAA,EAAA,OAAAA,EAAAC,UAAA,IAAA98B,KAAAA,EAAA,CAGA,IArDAu8B,EAAAM,EAmDAE,EAAAC,EAEAlC,EAAA,KAAA1tB,UAAA,kBAAAxO,MACAq+B,EAAA,OAAAF,CAAAA,EAAA/vB,EAAAmuB,SAAA,GAAA4B,KAAA,IAAAA,GAAAA,EAAAG,cAAA,CAAApC,EAAA9tB,EAAAmuB,SAAA,CAAA2B,UAAA,CACA,KAAAtpB,WAAA,CAAAopB,cAAA,QAAAI,CAAAA,EAAAhwB,EAAAmuB,SAAA,GAAA6B,KAAA,IAAAA,GAAAA,EAAAE,cAAA,2BACA,KAAA3nB,QAAA,EACA3E,YAAA5D,EAAAmuB,SAAA,CAAA2B,UAAA,CACAK,WAAAF,CACA,EACA,CAEA,QAAAtZ,4BAAA,IAGA,IAFAyZ,EAAAC,EAEAC,EAAAlwC,OAAAD,IAAA,SAAAiwC,CAAAA,EAAApwB,EAAAmuB,SAAA,GAAAiC,KAAA,IAAAA,EAAA,OAAAA,EAAAlZ,YAAA,OAA0K32B,MAAA,UAAA2qB,CAAA,EAC1K,IAAAqlB,EAAAC,EAEA,gBAAAD,CAAAA,EAAAvwB,EAAAmuB,SAAA,GAAAoC,KAAA,IAAAA,GAAA,OAAAC,CAAAA,EAAAD,EAAArZ,YAAA,GAAAsZ,KAAA,IAAAA,GAAAA,CAAA,CAAAtlB,EAAA,CACA,GAASE,MAAA,UAAAhjB,CAAA,CAAAhH,CAAA,EACT,IAAAqvC,EAAAC,EAEA,OAAAtoC,CAAA,CAAAhH,EAAA,SAAAqvC,CAAAA,EAAAzwB,EAAAmuB,SAAA,GAAAsC,KAAA,IAAAA,EAAA,cAAAC,CAAAA,EAAAD,EAAAvZ,YAAA,GAAAwZ,KAAA,IAAAA,EAAA,OAAAA,CAAA,CAAAtvC,EAAA,MAAAgH,CACA,EAAS,IACTuoC,EAAAvwC,OAAAD,IAAA,SAAAkwC,CAAAA,EAAArwB,EAAAmuB,SAAA,GAAAkC,KAAA,IAAAA,EAAA,OAAAA,EAAAM,mBAAA,OAAyLpwC,MAAA,UAAAa,CAAA,EACzL,OAAAkvC,CAAA,CAAAlvC,EAAA,GACSgqB,MAAA,UAAAhjB,CAAA,CAAAhH,CAAA,MACTwvC,EAAAC,EAGAC,EAAAC,EAKA,OANA,OAAAH,CAAAA,EAAA5wB,EAAAmuB,SAAA,GAAAyC,KAAA,IAAAA,GAAA,OAAAC,CAAAA,EAAAD,EAAAD,mBAAA,GAAAE,KAAA,IAAAA,GAAAA,CAAA,CAAAzvC,EAAA,EAGAgH,CAAAA,CAAA,CAAAhH,EAAA,QAAA0vC,CAAAA,EAAA9wB,EAAAmuB,SAAA,GAAA2C,KAAA,IAAAA,EAAA,cAAAC,CAAAA,EAAAD,EAAAH,mBAAA,GAAAI,KAAA,IAAAA,EAAA,OAAAA,CAAA,CAAA3vC,EAAA,EAGAgH,CACA,EAAS,IACT,KAAA8uB,YAAA,CAAAhN,oBAAA,EACAgN,aAAAoZ,EACAK,oBAAAA,CACA,EACA,CAEA,SAAA7pB,eAAA,IAIA,IAAAkqB,EAAA,KAAA5wB,UAAA,kBAAAxO,MAEA,KAAAq/B,aAAA,EACArtB,YAAAotB,EACAb,WAAAa,CACA,EAAS,IAET,KAAAxqB,WAAA,CAAAopB,cAAA,aACA,CAIA3jC,EAAAyI,gBAAA,EAAAzI,EAAAyI,gBAAA,gBAAApQ,KAAA,yBAAA4sC,cAAA,CAAA9tC,IAAA,OACA,CAEA,EAAG,CACHhC,IAAA,UACAsB,MAAA,WAGA,KAAAw0B,YAAA,CAAAnN,kBAAA,KAEA,IACA,KAAA3J,UAAA,gBACA,CAAQ,MAAA9a,EAAA,CACRwH,QAAAM,KAAA,4BAAA9H,EACA,CAEA,KAAA6rC,wBAAA,GAIA,KAAA/wB,UAAA,sBACA,KAAAE,OAAA,gBAAoC,CACpCqF,eAAA,EACA,GAMA,KAAAvF,UAAA,6BACA,IAAAsW,GAAA,MAAAzyB,IAAA,GAGA,KAAAizB,YAAA,CAAAka,iBAAA,GACA,KAAAla,YAAA,CAAAnN,kBAAA,IACA,CACA,EAAG,CACH3oB,IAAA,2BACAsB,MAAA,WACA,MAAA2uC,uBAAA,IACA,KAAAjxB,UAAA,sBACA,KAAA8uB,aAAA,CAAArV,IAAA,EAGA,CACA,EAAG,CACHz4B,IAAA,cACAsB,MAAA,WACA,IAAA2b,EAAA,KAEA,KAAAgzB,uBAAA,IACAnkC,EAAA,KAAA4hC,eAAA,UAAAwC,CAAA,EACAjzB,EAAAsI,aAAA,CAAA/lB,KAAA,CAAAyd,EAAA5Y,EAAA6rC,GACA,GAGA,KAAAxC,eAAA,IAEA,KAAAqC,wBAAA,EACA,CAYA,EAAG,CACH/vC,IAAA,oBACAsB,MAAA,SAAAoY,CAAA,CAAAzP,CAAA,EACA,GAAAwB,GAAAiO,GACA,YAGA,GAAA+vB,GACA,gBAAA7pB,CAAA,EACAlG,EAAAkG,EAAA3V,EACA,EAKA,IAAAkmC,EAAA,KAAAxC,IAAA,CACAyC,EAAA,GAAA7mC,KAAAwrB,KAAA,CAAAxrB,IAAAA,KAAA+H,MAAA,IACA++B,EAAA,KAAArxB,UAAA,oBAAAoxB,EAAA,IAOA,OALAD,CAAA,CAAAC,EAAA,UAAAxwB,CAAA,EACA,OAAAuwB,CAAA,CAAAC,EAAA,CACA12B,EAAAkG,EAAA3V,EACA,EAEAomC,CAEA,CACA,EAAG,CACHrwC,IAAA,iBACAsB,MAAA,WACA,SAAA0d,UAAA,sBACA,KAAAA,UAAA,2BAAAA,UAAA,uBACA,KAAAE,OAAA,oBACA0R,UAAA,YACA,GAGA,MACA,CAEA,KAAA5R,UAAA,2BAAAA,UAAA,uBACA,KAAAE,OAAA,eAGA,KAAAF,UAAA,uBACA,KAAA8uB,aAAA,CAAAwC,mBAAA,GAEA,KAAApxB,OAAA,yBAAAiR,eAAA,CAAA2J,OAAA,GAGA,KAAAgU,aAAA,CAAAyC,MAAA,GAEA,KAAAxC,WAAA,CAAAwC,MAAA,EACA,CACA,EAAG,CACHvwC,IAAA,uBACAsB,MAAA,SAAA0Q,CAAA,CAAA/H,CAAA,CAAA8Y,CAAA,EACA,IAAAytB,EAAAzvB,KAAAc,SAAA,CAAA5X,GAEA,KAAAwmC,gCAAA,CAAAz+B,EAAAw+B,EAAAztB,GAAAwmB,GAAAD,GACA,CACA,EAAG,CACHtpC,IAAA,mCACAsB,MAAA,SAAA0Q,CAAA,CAAAw+B,CAAA,CAAAztB,CAAA,CAAArJ,CAAA,EACA,IA3qCAqc,EAAAya,EAAAztB,EAlEA9Y,EAAAymC,EAKAvoC,EACAyE,EA5CAyzB,EA8CAxyB,EACArI,EAgDAmrC,EAqrCAC,EAAAxtC,GA5qCA2yB,EARA,CADA4a,EAorCA,KAAA5a,WAAA,CAnrCA,CAAA/vB,EAAA6qC,MAAA,EACA7qC,EAAA6qC,MAAA,CACIF,CAAA,CAAA3qC,EAAA8qC,IAAA,EACJ9qC,EAAA8qC,IAAA,CAEA9qC,EAAA+qC,MAAA,CAGAP,EA2qCAA,EA3qCAztB,EA2qCAA,EA1qCA,IAAA/c,EAAA8qC,IAAA,CACA,EACA7mC,KAAApD,EAAAC,gBAAA,CAAA0pC,GACAza,YAAA/vB,EAAA8qC,IAAA,EACK/tB,EAAA,CACDgT,IAAA/vB,EAAA6qC,MAAA,CAWJ,EACA5mC,KAAAoF,GAAAmhC,EACA,EAAKztB,EAAA,CAXL,EA1EA9Y,EA0EA+mC,SArDAvkC,CAAA,CAAAwkC,CAAA,EACA,IAAArkC,EAAAH,EAAA5M,MAAA,CACA,uBAAAqxC,YAAA,WAAAA,cAAAC,MAAA,CAAA1kC,GAQA,QAPA2kC,EAAA,IAAApX,GAAAvtB,EAAA5M,MAAA,CAAA4M,CAAAA,EAAA5M,MAAA,OACAwxC,EAAA,EAEA1nC,EAAA,SAAA+E,CAAA,EACA0iC,CAAA,CAAAC,IAAA,CAAA3iC,CACA,EAEA/O,EAAA,EAAkBA,EAAAiN,EAAO,EAAAjN,EAAA,CACzB,GAAA0xC,EAAA,EAAAD,EAAAvxC,MAAA,EACA,IAAAgF,EAAA,IAAAm1B,GAAAqX,EAAA,EAAAzkC,CAAAA,EAAAjN,GAAA,IACAkF,EAAAmc,GAAA,CAAAowB,GACAA,EAAAvsC,CACA,CAEA,IAAAsD,EAAAsE,EAAAhF,UAAA,CAAA9H,EACAwI,CAAAA,EAAA,IAAAwB,EAAAxB,IAAgCA,EAAA,KAAAwB,EAAA,IAAAxB,IAAA,IAAqDA,EAAA,OAAAA,EAAA,MAAAA,CAAAA,EAAA,IAAAA,CAAAA,EAAA,MAAAA,CAAAA,QAAAA,CAAA,EAAAsE,KAAAA,EAAAhF,UAAA,GAAA9H,EAAA,QAAAgK,EAAA,IAAAxB,IAAA,QAA8KwB,EAAA,IAAAxB,IAAA,IAAAwB,EAAA,IAAAxB,IAAA,OAAAwB,EAAA,IAAAxB,GAAAA,GACnQ,CAEA,OAAA4zB,GAAAqV,EAAA,EAAAC,EACA,EA+BAb,GA1EAE,EA0EA,CACA/N,MAAA,CACA,EAvEAx6B,EAAAi6B,KACAx1B,EAAA3C,EAAApK,MAAA,CACAsI,EAAAjG,CAAA,CAAA+H,GAEAzE,EAAAqI,CA/CAwyB,EA6BA,GAAAx+B,CAAAA,EAAA4gC,QAAA,EAAA5gC,EAAA4gC,QAAA,CAAA5iC,MAAA,OAiBAgO,EA7CAqyB,GA6CAj2B,EA7CAu2B,MAAAA,EAAAkC,KAAA,GAAAlC,EAAAkC,KAAA,CAAAlC,MAAAA,EAAA8Q,GAAA,CAAA/nC,KAAAs3B,IAAA,CAAAt3B,IAAAA,KAAA6zB,GAAA,GAAA7zB,KAAAk4B,GAAA,IAAAl4B,KAAAiC,GAAA,CAAAuyB,EAAAl+B,MAAA,QAAA2gC,EAAA8Q,GAAA,CAAAjR,EA6CA,EA7CA,KA8CAxgC,MAAA,CACA0iC,GAAA10B,EAAA6iC,GAAApO,GAAAz0B,EAAArI,EAAA,EAAA2C,EAAA0F,CAAA,IAAAy0B,GAAAz0B,EAAArI,EAAA,EAAAoH,GAAAiB,GAkEKpO,EAAAA,EAAA,GAAmCsjB,GAAA,GAAc,CACtDogB,KAAA,GACAN,aAAA,CACA9M,YAAA/vB,EAAA6qC,MAAA,CAEA,GAAK,EA6pCL,GACA5mC,EAAA2mC,CAAA,IACAW,EAAAX,CAAA,IAEA,KAAArrB,aAAA,CAAAvT,EAAA/H,EAAAsnC,EAAA73B,EACA,CACA,EAAG,CACH1Z,IAAA,gBACAsB,MAAA,SAAA0Q,CAAA,CAAA/H,CAAA,CAAA8Y,CAAA,CAAArJ,CAAA,EACA,GAAAgwB,GAAA,CACA,KAAAgE,eAAA,CAAAnuC,IAAA,EAAAyS,EAAA/H,EAAA8Y,EAAArJ,EAAA,EAEA,MACA,CAOAqJ,EAAAjW,EALA,CACA+X,OAAA,KAAA7F,UAAA,eACA4R,UAAA,KAAA5R,UAAA,kBACAwW,QAAA,KAAAxW,UAAA,WACA,EACA+D,GAAA,IAEA0mB,IACA1mB,CAAAA,EAAA8B,MAAA,QAGA,IAAA2sB,EAAA,eAAA3mC,EAAAE,SAAA,EAAAgY,eAAAA,EAAA6N,SAAA,CAKA,GAJA5e,EAAA4wB,GAAA5wB,EAAA+Q,EAAA8f,YAAA,KAA0D,CAC1DuI,GAAA,KAAApsB,UAAA,MACA,GAEAtR,GAAAzD,IAAA,KAAA+U,UAAA,SACA,IAAAwrB,EAAAv/B,EAAA4O,aAAA,OACA2wB,CAAAA,EAAA1wB,GAAA,CAAA9H,EACA/G,EAAAkP,IAAA,CAAAC,WAAA,CAAAowB,EACA,MAAQ,GAAAgH,EAKR,IACA3mC,EAAAE,SAAA,CAAAs4B,UAAA,CAAArxB,EAAAixB,GAAAh5B,EAAAxK,EAAAA,EAAA,GAA6FsjB,GAAA,GAAc,CAC3GsgB,WAAA,EACA,IACA,CAAU,MAAAvgC,EAAA,CACV,KAAAkc,UAAA,WACAtT,QAAAM,KAAA,CAAAlJ,EAEA,MACQ,GAAA2mC,GACR,IACAnG,GAAA,CACAtxB,IAAAA,EACA/H,KAAAA,EACAs5B,QAAA,KAAAvkB,UAAA,gBACA+D,QAAAA,EACA8V,eAAA,KAAA1I,eAAA,CACAzW,SAAAA,EACA8pB,sBAAA,EACAC,WAAA,KAAAsK,WAAA,CACArK,WAAA,KAAA1kB,UAAA,gBACA,EACA,CAAU,MAAAlc,EAAA,CACV4I,QAAAM,KAAA,CAAAlJ,EACA,KACQ,CAGR,IAFA2uC,EAEApb,EAAAprB,EAAA4O,aAAA,UACAwc,CAAAA,EAAAnjB,IAAA,mBACAmjB,EAAAqb,KAAA,IACArb,EAAAsb,KAAA,IACAtb,EAAAvc,GAAA,CAAA9H,EACA,IAAAxM,EAAAyF,EAAA2mC,oBAAA,qBACAH,CAAAA,EAAAjsC,EAAAwT,UAAA,GAAAy4B,KAAA,IAAAA,GAAAA,EAAAv3B,YAAA,CAAAmc,EAAA7wB,EACA,CACA,CAcA,EAAG,CACHxF,IAAA,iBACAsB,MAAA,SAAAuwC,CAAA,EACA,IAEAC,EAFAzyB,EAAA,KAGA0yB,EAAA,GACAC,EAAA,GACAC,EAAA,GAEAnmC,EAAA+lC,EAAA,SAAA3B,CAAA,EACAA,IAGAhjC,EAFA4kC,EAAA5B,CAAA,KAGA+B,EAAA1yC,IAAA,CAAA2wC,GACY,mBAAAA,EACZA,EAAArtC,IAAA,CAAAwc,GACYnS,EAAAgjC,IAAA4B,UAAAA,EACZC,EAAAxyC,IAAA,CAAA2wC,GACYhjC,EAAAgjC,IAAA4B,KAAAA,EAAAzmC,OAAA,gCAAAgU,CAAA,CAAAyyB,EAAA,CACZG,EAAA1yC,IAAA,CAAA2wC,GAEA8B,EAAAzyC,IAAA,CAAA2wC,GAGA,GAEA,IAAAgC,EAAA,SAAAC,CAAA,CAAAxlC,CAAA,EACAb,EAAAqmC,EAAA,SAAAjC,CAAA,EACA,GAAAhjC,EAAAgjC,CAAA,MAEA,IAAAkC,EAAAzlC,EAEAD,EAAAwjC,EAAA,SAAArtC,CAAA,EACAuvC,EAAAA,CAAA,CAAAvvC,CAAA,KAAArD,KAAA,CAAA4yC,EAAAvvC,EAAAkC,KAAA,IACA,EACA,MAGA,KAAAmrC,CAAA,KAAA1wC,KAAA,MAAA0wC,EAAAnrC,KAAA,IAEA,EAAS4H,EACT,EAEAulC,EAAAH,EAAA,MACAG,EAAAF,EAAA,MACAE,EAAAD,EAAA,KACA,CACA,EAAG,CACHjyC,IAAA,+BACAsB,MAAA,WACA,IAAA+wC,EAAAC,EAEA,cAAAD,CAAAA,EAAA,KAAAzzB,MAAA,CAAAmuB,SAAA,GAAAsF,KAAA,IAAAA,EAAA,OAAAA,EAAAvc,YAAA,GAAA92B,OAAAD,IAAA,QAAAuzC,CAAAA,EAAA,KAAA1zB,MAAA,CAAAmuB,SAAA,GAAAuF,KAAA,IAAAA,EAAA,OAAAA,EAAAxc,YAAA,EAAAj2B,MAAA,MACA,CAcA,EAAG,CACHG,IAAA,OACAsB,MAAA,SAAA4uC,CAAA,EACA,KAAA5C,cAAA,EAAA4C,EAAA,CACA,CAoBA,EAAG,CACHlwC,IAAA,UACAsB,MAAA,SAAAsqB,CAAA,CAAA9V,CAAA,EACA,IAAAiN,EAAAnjB,UAAAC,MAAA,IAAAD,KAAAgS,IAAAhS,SAAA,IAAAA,SAAA,IAAA2pC,GAIA,WAAApC,QAAA,EAIA3iB,GAAA,WAIA,KAAA2L,eAAA,CAAAC,IAAA,YAEA,cAAAxE,GACA,KAAAuE,eAAA,CAAAC,IAAA,aAIA,IAAAQ,EAAA7N,CADAA,EAAAA,GAAAwmB,EAAA,EACA,UAOA,GALA3Y,GACA7N,CAAAA,EAAA6N,SAAA,CAAAA,CAAA,EAIAnlB,GAAAmgB,IAAA,iBAAAA,EAAA,CACAlgB,QAAAM,KAAA,8CACA,MACA,CAEA,IApkLA,4NAAA/G,IAAA,CAokLA+F,IAKA,KAAAoa,WAAA,CAAAmtB,qBAAA,CAAAtnC,EAAAoJ,QAAA,EAEA,KAAA2K,UAAA,kBACA,KAAAoG,WAAA,CAAAotB,sBAAA,GAGA,KAAAxzB,UAAA,mBACA,KAAAoG,WAAA,CAAAC,oBAAA,CAAApa,EAAAoJ,QAAA,EAGA,IAAApK,EAAA,CACA2I,MAAAgZ,EACA9V,WAAA,KAAA6yB,2BAAA,CAAA/c,EAAA9V,GAAA,GACA,CAEA,eAAA8V,GAAA7I,EAAA0vB,IAAA,EACAxoC,CAAAA,EAAA,KAAA8Y,EAAA,MAIA9Y,CADAA,EAAA4E,GAAA5E,EAAA8Y,EAAA8N,WAAA,WAAA7R,UAAA,mCACAvE,SAAA,CAAAsI,EAAAtI,SAAA,MAAAhK,KAEA,KAAAuO,UAAA,WACAzT,EAAAC,GAAA,mBAAAvB,GAGA,IAAAumC,EAAAzvB,KAAAc,SAAA,CAAA5X,GACA+H,EAAA,KAAAgN,UAAA,aAAA+D,CAAAA,EAAAoJ,QAAA,SACAumB,EAAA3vB,IAAAwmB,GAUA,OARA,KAAAvqB,UAAA,wBAAA0zB,GAAA3vB,EAAA+N,SAAA,IAAA/N,EAAAwB,cAAA,CACA,KAAAupB,aAAA,CAAAtJ,OAAA,CAAAxyB,EAAA/H,EAAA8Y,GAEA,KAAA0tB,gCAAA,CAAAz+B,EAAAw+B,EAAAztB,GAGA,KAAA4vB,mBAAA,CAAA/mB,EAAA3hB,GAEAA,GACA,CACA,EAAG,CACHjK,IAAA,kBACAsB,MAAA,SAAAoY,CAAA,EACA,KAAA+zB,cAAA,CAAAluC,IAAA,CAAAma,EACA,CACA,EAAG,CACH1Z,IAAA,sBACAsB,MAAA,SAAA4b,CAAA,CAAA01B,CAAA,EACA,KAAAh0B,MAAA,CAAA+tB,UAAA,CAAAzvB,EAAA01B,GAEAlmC,EAAA,KAAA+gC,cAAA,UAAA/zB,CAAA,EACA,OAAAA,EAAAwD,EACA,EACA,CACA,EAAG,CACHld,IAAA,8BACAsB,MAAA,SAAAsqB,CAAA,CAAAinB,CAAA,EAIA,IAHAC,EAGAC,EAAA,KAAA3tB,WAAA,CAAA4tB,kBAAA,CAAApnB,GAEA9V,EAAArW,EAAA,GAAwCozC,GAIxC,GAFA/8B,EAAA,WAAAkJ,UAAA,UAEA4M,cAAAA,EAAA,CACA,IAAAqnB,EAAA,KAAA7tB,WAAA,CAAAtP,UAAA,GAEA,OADAA,EAAA,YAAAm9B,EAAAzwB,WAAA,CACA1M,CACA,CAEA,IAAAo9B,EAAAr/B,GAAAiC,UAAA,GAEA,QAAAmY,cAAA,EACA,IAAAklB,EAAA,KAAAllB,cAAA,CAAAC,6BAAA,GACA5B,EAAA6mB,EAAA7mB,SAAA,CACAD,EAAA8mB,EAAA9mB,QAAA,CAEAvW,EAAA,YAAAwW,EACAxW,EAAA,WAAAuW,CACA,CAYA,GAVA,OAAAymB,CAAAA,EAAA,KAAAjd,cAAA,GAAAid,KAAA,IAAAA,GAAAA,EAAAtf,SAAA,GACA,cAAA5H,GACA,KAAAiiB,iBAAA,CAAAuF,UAAA,GAGAt9B,EAAAhJ,EAAAgJ,EAAA,CACAu9B,aAAA,KAAAxF,iBAAA,CAAAyF,aAAA,EACA,IAGA1nB,uBAAAA,EAAA,CACA,IAAA2nB,EAAA,KAAAnuB,WAAA,CAAAtP,UAAA,GAKA,OAFAA,EAAA,YAAAy9B,EAAA/wB,WAAA,CACA1M,EAAA,aAAAo9B,EAAA/8B,YAAA,CACAL,CACA,CAGA,YAAAi9B,EAAA,CACA,IAAAS,EAAA,IAAA/iC,OAAAgN,OAAA,GAAAs1B,CACAj9B,CAAAA,EAAA,UAAAR,WAAA,CAAAk+B,EAAA,KAAAC,OAAA,IACA,CAMA39B,EAAAhJ,EAAA,GAA6BomC,EAAA,KAAA9tB,WAAA,CAAAtP,UAAA,GAAAA,GAC7B,IAAA41B,EAAA,KAAA1sB,UAAA,uBAEA9R,EAAAw+B,GACAh/B,EAAAg/B,EAAA,SAAAgI,CAAA,EACA,OAAA59B,CAAA,CAAA49B,EAAA,GAGAhoC,QAAAM,KAAA,iDAAA0/B,GAGA,IAAAE,EAAA,KAAA5sB,UAAA,wBAMA,OAJA4sB,GACA91B,CAAAA,EAAA81B,EAAA91B,EAAA8V,EAAA,EAGA9V,CACA,CAoBA,EAAG,CACH9V,IAAA,WACAsB,MAAA,SAAAwU,CAAA,CAAAmL,CAAA,EACA,KAAAmE,WAAA,CAAA+B,QAAA,CAAArR,EAAAmL,EACA,CAsBA,EAAG,CACHjhB,IAAA,gBACAsB,MAAA,SAAAwU,CAAA,CAAAsV,CAAA,CAAAnK,CAAA,EACA,KAAAmE,WAAA,CAAAyqB,aAAA,CAAA/5B,EAAAsV,EAAAnK,EACA,CAOA,EAAG,CACHjhB,IAAA,aACAsB,MAAA,SAAAqyC,CAAA,EACA,KAAAvuB,WAAA,CAAAoC,UAAA,CAAAmsB,EACA,CACA,EAAG,CACH3zC,IAAA,mBACAsB,MAAA,SAAA2L,CAAA,CAAA3L,CAAA,EACA,KAAA6lB,QAAA,CAAAlnB,EAAA,GAAsCgN,EAAA3L,GACtC,CAYA,EAAG,CACHtB,IAAA,iBACAsB,MAAA,SAAAtB,CAAA,CAAA+iB,CAAA,EACA,YAAA+S,YAAA,CAAAxM,cAAA,CAAAtpB,EAAA+iB,EACA,CAcA,EAAG,CACH/iB,IAAA,wBACAsB,MAAA,SAAAtB,CAAA,EACA,IAAAuvB,EAAA,KAAAuG,YAAA,CAAA8d,qBAAA,CAAA5zC,GAEA,IACA,OAAA+gB,KAAAD,KAAA,CAAAyO,EACA,CAAQ,MAAAskB,EAAA,CACR,OAAAtkB,CACA,CACA,CAYA,EAAG,CACHvvB,IAAA,mBACAsB,MAAA,SAAAtB,CAAA,CAAA+iB,CAAA,EACA,YAAA+S,YAAA,CAAAge,gBAAA,CAAA9zC,EAAA+iB,EACA,CACA,EAAG,CACH/iB,IAAA,qBACAsB,MAAA,WACA,KAAAw0B,YAAA,CAAA2S,kBAAA,EACA,CAaA,EAAG,CACHzoC,IAAA,iBACAsB,MAAA,SAAAoY,CAAA,EACA,YAAAoc,YAAA,CAAAie,cAAA,CAAAr6B,EACA,CAgDA,EAAG,CACH1Z,IAAA,WACAsB,MAAA,SAAA0yC,CAAA,CAAAC,CAAA,CAAAC,CAAA,EAEA,IAAAF,EAAA,CACAtoC,QAAAM,KAAA,wDACA,MACA,CAEA,KAAAmkB,eAAA,CAAAC,IAAA,aAEA,IAAA+jB,EAAA,KAAAzuB,eAAA,GACA,KAAAyB,QAAA,EACAitB,SAAAJ,CACA,GAEA,KAAApuB,YAAA,gBAIA,KAAAiqB,aAAA,EACAwE,2BAAA,GACAtF,WAHAoF,CAIA,EAAS,IAITH,IAAAG,GAAAH,IAAA,KAAApuB,YAAA,CAAAsE,MACA,KAAA1C,UAAA,CAAA0C,IACA,KAAA/C,QAAA,EACA3E,YAAAwxB,CACA,IAGA,IAAAM,EAAA,mBAAAlvB,WAAA,CAAAmvB,cAAA,EAGAP,CAAAA,IAAAG,GAAAG,GACA,KAAAlvB,WAAA,CAAAopB,cAAA,eACA,KAAAtvB,OAAA,cACAsD,YAAAwxB,EACAzrB,kBAAA4rB,CACA,EAAS,CACT1B,KAAAwB,GAAA,GACAO,UAAAN,GAAA,EACA,GAGA,KAAApe,YAAA,CAAA2e,sBAAA,CAAAN,KAEAF,GACA,KAAA1G,MAAA,CAAAvsB,GAAA,CAAAizB,GAGAC,GACA,KAAA3G,MAAA,CAAA/nB,QAAA,CAAA0uB,IAMAF,IAAAG,GACA,KAAA1L,kBAAA,EAEA,CAWA,EAAG,CACHzoC,IAAA,QACAsB,MAAA,SAAAozC,CAAA,CAAAC,CAAA,CAAAC,CAAA,EACA,IAAAF,GAAA,CAAAC,EAAA,CACAjpC,QAAAM,KAAA,sDACA,MACA,CAEA,KAAAmkB,eAAA,CAAAC,IAAA,UAEA,IAAAykB,EAAA,KAAAhsB,SAAA,GACA,KAAA1B,QAAA,EACA2tB,QAAAr1C,EAAAA,EAAA,GAAiDo1C,GAAA,GAAqB50C,EAAA,GAAoBy0C,EAAAC,GAC1F,GAEAC,GACA,KAAA11B,OAAA,mBACA61B,YAAAL,EACAM,WAAAL,EACAM,WAAAL,CACA,GAIAC,CAAA,CAAAH,EAAA,GAAAC,GACA,KAAAlM,kBAAA,EAEA,CAKA,EAAG,CACHzoC,IAAA,cACAsB,MAAA,WACA,KAAA6lB,QAAA,EACA2tB,QAAA,EACA,GAEA,KAAArM,kBAAA,EACA,CAMA,EAAG,CACHzoC,IAAA,QACAsB,MAAA,SAAA4zC,CAAA,EACA,IAAAvvB,EAAA,KAAAC,YAAA,eACA,KAAAR,WAAA,CAAA+vB,KAAA,GACA,KAAA/vB,WAAA,CAAAopB,cAAA,cACA,KAAAvgB,cAAA,CAAAmnB,cAAA,GACA,IAAA1I,EAAA,KAAA1tB,UAAA,kBAAAxO,MACA,KAAAq/B,aAAA,EACArtB,YAAAkqB,EACAqC,WAAAmG,EAAAxI,EAAA/mB,CACA,EAAO,GACP,CAkBA,EAAG,CACH3lB,IAAA,kBACAsB,MAAA,WACA,YAAAskB,YAAA,eACA,CACA,EAAG,CACH5lB,IAAA,YACAsB,MAAA,WACA,YAAAskB,YAAA,eACA,CAuBA,EAAG,CACH5lB,IAAA,QACAsB,MAAA,SAAA+zC,CAAA,CAAAC,CAAA,SAIA,SAAA1vB,YAAA,CAAAqE,KACA1e,EAAAc,QAAA,oEACA,KAGAZ,GAAA6pC,IACAA,CAAAA,EAAA,KAAA5vB,eAAA,IAGA2vB,IAAAC,IACA,KAAAC,gBAAA,CAAArrB,GAAAmrB,GAEA,KAAAn2B,OAAA,kBACAs2B,MAAAH,EACA7yB,YAAA8yB,CACA,KAEA5pC,QAAAM,KAAA,2DACA,KAAAk9B,QAAA,CAAAmM,GACA,GAEA,CAsIA,EAAG,CACHr1C,IAAA,aACAsB,MAAA,SAAAsd,CAAA,EACA,IAAA62B,EAAAh2C,EAAA,GAAuC,KAAAmf,MAAA,EAEvClR,GAAAkR,KACA9R,EAAA,KAAA8R,MAAA,CAAAA,GAEA,KAAAI,UAAA,sBACA,MAAAJ,MAAA,CAAAurB,gBAAA,MAAAvrB,MAAA,CAAAwrB,WAAA,EAGA,KAAAprB,UAAA,yBACA,MAAAJ,MAAA,CAAAmsB,mBAAA,MAAAnsB,MAAA,CAAAosB,cAAA,EAGA,KAAA5lB,WAAA,EACA,KAAAA,WAAA,CAAA4F,aAAA,MAAApM,MAAA,EAGAoD,GAAAxB,YAAA,IAAAwB,SAAAA,GAAAtB,GAAA,cACA,MAAA9B,MAAA,CAAA+rB,KAAA,KAGA,KAAA3rB,UAAA,WACAxU,CAAAA,EAAAC,KAAA,KAGA,KAAAyiB,gBAAA,WAAAtO,EAAAksB,yBAAA,EACA2K,EAAA3K,yBAAA,GAAAlsB,EAAAksB,yBAAA,GACAlsB,EAAAksB,yBAAA,CACA,KAAA5d,gBAAA,CAAAR,aAAA,GAEA,KAAAQ,gBAAA,CAAAG,uBAAA,IAKA,CAMA,EAAG,CACHrtB,IAAA,wBACAsB,MAAA,WACA,KAAA4sC,UAAA,EACApD,0BAAA,EACA,EACA,CAMA,EAAG,CACH9qC,IAAA,uBACAsB,MAAA,WACA,KAAA4sC,UAAA,EACApD,0BAAA,EACA,EACA,CAMA,EAAG,CACH9qC,IAAA,0BACAsB,MAAA,WACA,IAAAo0C,EAEA,gBAAAA,CAAAA,EAAA,KAAAxoB,gBAAA,GAAAwoB,KAAA,IAAAA,GAAAA,EAAAC,OAAA,GACA,CAMA,EAAG,CACH31C,IAAA,cACAsB,MAAA,SAAAyS,CAAA,EACA,YAAA6hB,OAAA,CAAAgB,WAAA,CAAA7iB,EACA,CAKA,EAAG,CACH/T,IAAA,aACAsB,MAAA,SAAAs0C,CAAA,EACA,IAAAr2B,EAEA,cAAAA,CAAAA,EAAA,KAAAX,MAAA,GAAAW,KAAA,IAAAA,EAAA,OAAAA,CAAA,CAAAq2B,EAAA,CAqBA,EAAG,CACH51C,IAAA,eACAsB,MAAA,SAAAu0C,CAAA,EACA,YAAAzwB,WAAA,OAAAywB,EAAA,CAEA,EAAG,CACH71C,IAAA,WACAsB,MAAA,WAGA,IAFAw0C,EAEA9wC,EAAA,OAAA8wC,CAAAA,EAAA,KAAA92B,UAAA,WAAA82B,KAAA,IAAAA,EAAAA,EAAAtM,GAMA,OAJAxkC,IAAAwkC,IACAxkC,CAAAA,EAAAwkC,GAAA,IAAAxkC,CAAA,EAGAA,CACA,CAEA,EAAG,CACHhF,IAAA,aACAsB,MAAA,WACA,sBAAA0d,UAAA,wCAEAgD,GAAAxB,YAAA,KACA,MAAAu1B,sBAAA,SAAAA,sBAAA,EACAC,iBAAA,QACA,IACA,KAAAC,gBAAA,EACAC,mBAAA,EACA,GAGA,MAAAjG,uBAAA,SAAAA,uBAAA,EACA+F,iBAAA,QACA,IACA,KAAAG,iBAAA,EACAC,kBAAA,EACA,GAGA,KAAAC,0BAAA,EACAL,iBAAA,SACAE,mBAAA,EACA,IAIA,KAAAjG,uBAAA,GACA,KAAAqG,wBAAA,EACAF,kBAAA,EACA,GAIQ,MAAAL,sBAAA,UAAA/2B,UAAA,kCAAAuB,GAAAG,GAAA,iBACRH,GAAAuB,MAAA,cACA,KAAAq0B,iBAAA,EACAC,kBAAA,KAAAp3B,UAAA,kCACA,GAEA,CAQA,EAAG,CACHhf,IAAA,2BACAsB,MAAA,SAAAyhB,CAAA,EACA,IAAAmI,EAEA,GAAAnI,GAAAA,EAAA,kBACAmI,EAAA,QACQ,GAAAnI,CAAAA,IAAAA,EAAA,mBAGR,OAFAmI,EAAA,GAKA,KAAAlM,UAAA,8BAAAoG,WAAA,CAAA8F,QAAA,GAAAA,GACA,KAAA9F,WAAA,CAAAqG,YAAA,CAAAP,EAEA,CAEA,EAAG,CACHlrB,IAAA,kBACAsB,MAAA,SAAA8e,CAAA,CAAA2C,CAAA,EAcA,OAbAA,EAAAjW,EAAA,CACAoS,QAAA,KAAAA,OAAA,CAAAld,IAAA,OACAg0C,iBAAA,KAAAh3B,UAAA,uCACAu3B,cAAA,KAAAv3B,UAAA,oCACA4rB,kBAAA,KAAA5rB,UAAA,sBACAkrB,uBAAA,KAAAlrB,UAAA,2BACAksB,cAAA,KAAAlsB,UAAA,iBACA,EAAO+D,GAAA,IAEPf,GAAAxB,YAAA,IAAAuC,iBAAAA,EAAA,kBACAA,CAAAA,EAAA,2BAGA3C,EAAA,KAAApB,UAAA,WACAE,QAAA6D,EAAA,QACAsB,iBAAAtB,EAAA,mBACAuB,kBAAAvB,EAAA,mBACAgB,gBAAAhB,EAAA,iBACAiB,kBAAAjB,EAAA,cACAoB,iBAAApB,EAAA,kBACAe,qBAAAf,EAAA,uBACAqB,aAAArB,EAAA,eAEA,CA+BA,EAAG,CACH/iB,IAAA,mBACAsB,MAAA,SAAAyhB,CAAA,EACAA,EAAAjW,EAAA,CACAopC,mBAAA,EACA,EAAOnzB,GAAA,IAEP,KAAAyzB,eAAA,CAAA1zB,GAAAC,GAEA,KAAAuzB,wBAAA,CAAAvzB,EACA,CAwBA,EAAG,CACH/iB,IAAA,oBACAsB,MAAA,SAAAyhB,CAAA,EACA,IAAAwuB,EAAAzkC,EAAA,CACAspC,kBAAA,EACA,EAAOrzB,GAAA,IAEP,KAAAyzB,eAAA,CAAAvzB,GAAAsuB,GAEA,KAAA+E,wBAAA,CAAA/E,EACA,CAeA,EAAG,CACHvxC,IAAA,yBACAsB,MAAA,SAAAyhB,CAAA,EACA,YAAAyzB,eAAA,CAAAtzB,GAAAH,EACA,CAeA,EAAG,CACH/iB,IAAA,0BACAsB,MAAA,SAAAyhB,CAAA,EACA,YAAAyzB,eAAA,CAAApzB,GAAAL,EACA,CAyBA,EAAG,CACH/iB,IAAA,6BACAsB,MAAA,SAAAyhB,CAAA,EACA,IAAAwuB,EAAAzkC,EAAA,CACAopC,mBAAA,EACA,EAAOnzB,MAAAA,EAAAA,EAAA,IAEP,KAAAyzB,eAAA,CAAA7yB,GAAA4tB,GAEA,KAAA+E,wBAAA,CAAA/E,EACA,CACA,EAAG,CACHvxC,IAAA,QACAsB,MAAA,SAAAm1C,CAAA,EACAA,CAAA,IAAAA,GACA5rC,EAAAa,OAAA,CAAAF,GAAA,gCACA0W,cAAAA,aAAAG,UAAA,aACA,KAAA6rB,UAAA,EACAvD,MAAA,EACA,KAEA9/B,EAAAa,OAAA,CAAAF,GAAA,sIACA0W,cAAAA,aAAAE,OAAA,oBACA,KAAA8rB,UAAA,EACAvD,MAAA,EACA,GAEA,CACA,EAAG,CACH3qC,IAAA,aACAsB,MAAA,SAAAyF,CAAA,EACA,OAAAF,EAAAM,oBAAA,CAAAJ,GAAA,KACA,CACA,EAAG,EAEHomC,CACA,KAEAuJ,SAl2NAC,CAAA,CAAAC,CAAA,EACA,QAAAj3C,EAAA,EAAkBA,EAAAi3C,EAAA/2C,MAAA,CAAsBF,IACxCg3C,EAAAj2C,SAAA,CAAAk2C,CAAA,CAAAj3C,EAAA,EAAA0O,GAAAsoC,EAAAj2C,SAAA,CAAAk2C,CAAA,CAAAj3C,EAAA,EAEA,EA81NAwtC,GAAA,cAEA,IAAA0J,GAAA,GAEAC,GAAA,WAEApqC,EAAAmqC,GAAA,SAAAj2C,CAAA,CAAAoE,CAAA,EACAA,IAAAwkC,IACArjC,CAAAA,CAAA,CAAAnB,EAAA,CAAApE,CAAA,CAEA,EACA,EAgFA6jB,IARAve,EAAAD,EAAAinC,WAAA,CAnEA/mC,CAoEAA,EAAA,IAAAgnC,EAAA,EApEA,cAAAttB,CAAA,CAAAjB,CAAA,CAAA5Z,CAAA,EACA,GAAAA,EAQA,OANAmB,CAAA,CAAAnB,EAAA,GACAmB,CAAA,CAAAnB,EAAA,CAAA6xC,EAAA,CAAA7xC,EAAA,CAAAioC,GAAAptB,GAAA,GAAAjB,GAAA,GAAuF5Z,GAEvFmB,CAAA,CAAAnB,EAAA,CAAAgpC,OAAA,IAGA7nC,CAAA,CAAAnB,EAAA,CAEA,IAAApE,EAAAuF,EAoBA,OAlBA0wC,EAAA,CAAArN,GAAA,CAEA5oC,EAAAi2C,EAAA,CAAArN,GAAA,CACQ3pB,IAIRjf,CAFAA,EAAAqsC,GAAAptB,EAAAjB,GAAA,GAAmD4qB,GAAA,EAEnDwE,OAAA,GAEA6I,EAAA,CAAArN,GAAA,CAAA5oC,GAEAuF,EAAAvF,EAEAsF,IAAAD,EAAA8wC,YAAA,EACAlsC,CAAAA,CAAA,CAAA2+B,GAAA,CAAArjC,CAAA,EAGA2wC,KACAl2C,CAEA,EAqCAuF,EAAA,OACA6wC,WAjCA,SAAAC,IAEAA,EAAAhzC,IAAA,GAGAgzC,EAAAhzC,IAAA,IACAylC,GAAA,GAEAh9B,EAAAmqC,GAAA,SAAAK,CAAA,EACAA,EAAAC,WAAA,EACA,GACA,CAEAlsC,EAAAqI,gBAAA,GACArI,aAAAA,EAAAo5B,UAAA,CAKA4S,IAEAhsC,EAAAqI,gBAAA,oBAAA2jC,EAAA,KAKAvkC,GAAA7H,EAAA,OAAAosC,EAAA,GACA,IAOA9wC","sources":["webpack://_N_E/./node_modules/posthog-js/dist/es.js"],"sourcesContent":["function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\n// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nvar keyStrUriSafe = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$';\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n\n for (var i = 0; i < alphabet.length; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n }\n\n return baseReverseDic[alphabet][character];\n}\n\nvar LZString = {\n compressToBase64: function compressToBase64(input) {\n if (input == null) return '';\n\n var res = LZString._compress(input, 6, function (a) {\n return keyStrBase64.charAt(a);\n });\n\n switch (res.length % 4 // To produce valid Base64\n ) {\n default: // When could this happen ?\n\n case 0:\n return res;\n\n case 1:\n return res + '===';\n\n case 2:\n return res + '==';\n\n case 3:\n return res + '=';\n }\n },\n decompressFromBase64: function decompressFromBase64(input) {\n if (input == null) return '';\n if (input == '') return null;\n return LZString._decompress(input.length, 32, function (index) {\n return getBaseValue(keyStrBase64, input.charAt(index));\n });\n },\n compressToUTF16: function compressToUTF16(input) {\n if (input == null) return '';\n return LZString._compress(input, 15, function (a) {\n return f(a + 32);\n }) + ' ';\n },\n decompressFromUTF16: function decompressFromUTF16(compressed) {\n if (compressed == null) return '';\n if (compressed == '') return null;\n return LZString._decompress(compressed.length, 16384, function (index) {\n return compressed.charCodeAt(index) - 32;\n });\n },\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function compressToUint8Array(uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf = new Uint8Array(compressed.length * 2); // 2 bytes per character\n\n for (var i = 0, TotalLen = compressed.length; i < TotalLen; i++) {\n var current_value = compressed.charCodeAt(i);\n buf[i * 2] = current_value >>> 8;\n buf[i * 2 + 1] = current_value % 256;\n }\n\n return buf;\n },\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array: function decompressFromUint8Array(compressed) {\n if (compressed === null || compressed === undefined) {\n return LZString.decompress(compressed);\n } else {\n var buf = new Array(compressed.length / 2); // 2 bytes per character\n\n for (var i = 0, TotalLen = buf.length; i < TotalLen; i++) {\n buf[i] = compressed[i * 2] * 256 + compressed[i * 2 + 1];\n }\n\n var result = [];\n buf.forEach(function (c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(''));\n }\n },\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function compressToEncodedURIComponent(input) {\n if (input == null) return '';\n return LZString._compress(input, 6, function (a) {\n return keyStrUriSafe.charAt(a);\n });\n },\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent: function decompressFromEncodedURIComponent(input) {\n if (input == null) return '';\n if (input == '') return null;\n input = input.replace(/ /g, '+');\n return LZString._decompress(input.length, 32, function (index) {\n return getBaseValue(keyStrUriSafe, input.charAt(index));\n });\n },\n compress: function compress(uncompressed) {\n return LZString._compress(uncompressed, 16, function (a) {\n return f(a);\n });\n },\n _compress: function _compress(uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return '';\n var i,\n value,\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2,\n // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_val = 0,\n context_data_position = 0,\n ii;\n var context_dictionary = {},\n context_dictionaryToCreate = {},\n context_data = [];\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii);\n\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n\n context_wc = context_w + context_c;\n\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc;\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1;\n\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n\n value = context_w.charCodeAt(0);\n\n for (i = 0; i < 8; i++) {\n context_data_val = context_data_val << 1 | value & 1;\n\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n\n value = value >> 1;\n }\n } else {\n value = 1;\n\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1 | value;\n\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n\n value = 0;\n }\n\n value = context_w.charCodeAt(0);\n\n for (i = 0; i < 16; i++) {\n context_data_val = context_data_val << 1 | value & 1;\n\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n\n value = value >> 1;\n }\n }\n\n context_enlargeIn--;\n\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1 | value & 1;\n\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n\n value = value >> 1;\n }\n }\n\n context_enlargeIn--;\n\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n } // Add wc to the dictionary.\n\n\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n } // Output the code for w.\n\n\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1;\n\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n\n value = context_w.charCodeAt(0);\n\n for (i = 0; i < 8; i++) {\n context_data_val = context_data_val << 1 | value & 1;\n\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n\n value = value >> 1;\n }\n } else {\n value = 1;\n\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1 | value;\n\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n\n value = 0;\n }\n\n value = context_w.charCodeAt(0);\n\n for (i = 0; i < 16; i++) {\n context_data_val = context_data_val << 1 | value & 1;\n\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n\n value = value >> 1;\n }\n }\n\n context_enlargeIn--;\n\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1 | value & 1;\n\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n\n value = value >> 1;\n }\n }\n\n context_enlargeIn--;\n\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n } // Mark the end of the stream\n\n\n value = 2;\n\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1 | value & 1;\n\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n\n value = value >> 1;\n } // Flush the last char\n\n\n while (true) {\n context_data_val = context_data_val << 1;\n\n if (context_data_position == bitsPerChar - 1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n } else context_data_position++;\n }\n\n return context_data.join('');\n },\n decompress: function decompress(compressed) {\n if (compressed == null) return '';\n if (compressed == '') return null;\n return LZString._decompress(compressed.length, 32768, function (index) {\n return compressed.charCodeAt(index);\n });\n },\n _decompress: function _decompress(length, resetValue, getNextValue) {\n var dictionary = [],\n result = [],\n data = {\n val: getNextValue(0),\n position: resetValue,\n index: 1\n };\n var enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = '',\n i,\n w,\n bits,\n resb,\n maxpower,\n power,\n c;\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2, 2);\n power = 1;\n\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2, 8);\n power = 1;\n\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n c = f(bits);\n break;\n\n case 1:\n bits = 0;\n maxpower = Math.pow(2, 16);\n power = 1;\n\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n c = f(bits);\n break;\n\n case 2:\n return '';\n } // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n\n\n dictionary[3] = c; // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n\n w = c; // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n\n result.push(c);\n\n while (true) {\n if (data.index > length) {\n return '';\n }\n\n bits = 0;\n maxpower = Math.pow(2, numBits);\n power = 1;\n\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2, 8);\n power = 1;\n\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize - 1;\n enlargeIn--;\n break;\n\n case 1:\n bits = 0;\n maxpower = Math.pow(2, 16);\n power = 1;\n\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize - 1;\n enlargeIn--;\n break;\n\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n\n result.push(entry); // Add w+entry[0] to the dictionary.\n\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n }\n }\n};\n\nvar version = \"1.46.0\";\n\n// e.g. Config.DEBUG = Config.DEBUG || instance.get_config('debug')\n\nvar Config = {\n DEBUG: false,\n LIB_VERSION: version\n};\n\n/*\n * Saved references to long variable names, so that closure compiler can\n * minimize file size.\n */\nvar ArrayProto = Array.prototype;\nvar ObjProto = Object.prototype;\nvar toString = ObjProto.toString;\nvar hasOwnProperty = ObjProto.hasOwnProperty;\nvar win = typeof window !== 'undefined' ? window : {};\nvar navigator = win.navigator || {\n userAgent: ''\n};\nvar document$1 = win.document || {};\nvar userAgent = navigator.userAgent;\nvar nativeForEach = ArrayProto.forEach,\n nativeIndexOf = ArrayProto.indexOf,\n nativeIsArray = Array.isArray,\n breaker = {}; // Console override\n\nvar logger = {\n /** @type {function(...*)} */\n log: function log() {\n if (Config.DEBUG && !_isUndefined(window.console) && window.console) {\n // Don't log PostHog debug messages in rrweb\n var log = '__rrweb_original__' in window.console.log ? window.console.log['__rrweb_original__'] : window.console.log;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n try {\n log.apply(window.console, args);\n } catch (err) {\n _eachArray(args, function (arg) {\n log(arg);\n });\n }\n }\n },\n\n /** @type {function(...*)} */\n error: function error() {\n if (Config.DEBUG && !_isUndefined(window.console) && window.console) {\n for (var _len2 = arguments.length, _args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n _args[_key2] = arguments[_key2];\n }\n\n var args = ['PostHog error:'].concat(_args); // Don't log PostHog debug messages in rrweb\n\n var error = '__rrweb_original__' in window.console.error ? window.console.error['__rrweb_original__'] : window.console.error;\n\n try {\n error.apply(window.console, args);\n } catch (err) {\n _eachArray(args, function (arg) {\n error(arg);\n });\n }\n }\n },\n\n /** @type {function(...*)} */\n critical: function critical() {\n if (!_isUndefined(window.console) && window.console) {\n for (var _len3 = arguments.length, _args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n _args[_key3] = arguments[_key3];\n }\n\n var args = ['PostHog error:'].concat(_args); // Don't log PostHog debug messages in rrweb\n\n var error = '__rrweb_original__' in window.console.error ? window.console.error['__rrweb_original__'] : window.console.error;\n\n try {\n error.apply(window.console, args);\n } catch (err) {\n _eachArray(args, function (arg) {\n error(arg);\n });\n }\n }\n }\n}; // UNDERSCORE\n// Embed part of the Underscore Library\n\nvar _trim = function _trim(str) {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\nvar _bind_instance_methods = function _bind_instance_methods(obj) {\n for (var func in obj) {\n if (typeof obj[func] === 'function') {\n obj[func] = obj[func].bind(obj);\n }\n }\n};\n/**\n * @param {*=} obj\n * @param {function(...*)=} iterator\n * @param {Object=} thisArg\n */\n\nfunction _each(obj, iterator, thisArg) {\n if (obj === null || obj === undefined) {\n return;\n }\n\n if (nativeForEach && Array.isArray(obj) && obj.forEach === nativeForEach) {\n obj.forEach(iterator, thisArg);\n } else if ('length' in obj && obj.length === +obj.length) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (i in obj && iterator.call(thisArg, obj[i], i) === breaker) {\n return;\n }\n }\n } else {\n for (var _key4 in obj) {\n if (hasOwnProperty.call(obj, _key4)) {\n if (iterator.call(thisArg, obj[_key4], _key4) === breaker) {\n return;\n }\n }\n }\n }\n}\nfunction _eachArray(obj, iterator, thisArg) {\n if (Array.isArray(obj)) {\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, thisArg);\n } else if ('length' in obj && obj.length === +obj.length) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (i in obj && iterator.call(thisArg, obj[i], i) === breaker) {\n return;\n }\n }\n }\n }\n}\nvar _extend = function _extend(obj) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key5 = 1; _key5 < _len4; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n _eachArray(args, function (source) {\n for (var prop in source) {\n if (source[prop] !== void 0) {\n obj[prop] = source[prop];\n }\n }\n });\n\n return obj;\n};\nvar _isArray = nativeIsArray || function (obj) {\n return toString.call(obj) === '[object Array]';\n}; // from a comment on http://dbj.org/dbj/?p=286\n// fails on only one very rare and deliberate custom object:\n// let bomb = { toString : undefined, valueOf: function(o) { return \"function BOMBA!\"; }};\n\nvar _isFunction = function _isFunction(f) {\n try {\n return /^\\s*\\bfunction\\b/.test(f);\n } catch (x) {\n return false;\n }\n};\nvar _include = function _include(obj, target) {\n var found = false;\n\n if (obj === null) {\n return found;\n }\n\n if (nativeIndexOf && obj.indexOf === nativeIndexOf) {\n return obj.indexOf(target) != -1;\n }\n\n _each(obj, function (value) {\n if (found || (found = value === target)) {\n return breaker;\n }\n\n return;\n });\n\n return found;\n};\nfunction _includes(str, needle) {\n return str.indexOf(needle) !== -1;\n} // Underscore Addons\n\nvar _isObject = function _isObject(obj) {\n return obj === Object(obj) && !_isArray(obj);\n};\nvar _isUndefined = function _isUndefined(obj) {\n return obj === void 0;\n};\nvar _isString = function _isString(obj) {\n return toString.call(obj) == '[object String]';\n};\nvar _isDate = function _isDate(obj) {\n return toString.call(obj) == '[object Date]';\n};\nvar _isNumber = function _isNumber(obj) {\n return toString.call(obj) == '[object Number]';\n};\nvar _encodeDates = function _encodeDates(obj) {\n _each(obj, function (v, k) {\n if (_isDate(v)) {\n obj[k] = _formatDate(v);\n } else if (_isObject(v)) {\n obj[k] = _encodeDates(v); // recurse\n }\n });\n\n return obj;\n};\nvar _timestamp = function _timestamp() {\n Date.now = Date.now || function () {\n return +new Date();\n };\n\n return Date.now();\n};\nvar _formatDate = function _formatDate(d) {\n // YYYY-MM-DDTHH:MM:SS in UTC\n function pad(n) {\n return n < 10 ? '0' + n : n;\n }\n\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds());\n};\nvar _safewrap = function _safewrap(f) {\n return function () {\n try {\n for (var _len5 = arguments.length, args = new Array(_len5), _key7 = 0; _key7 < _len5; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return f.apply(this, args);\n } catch (e) {\n logger.critical('Implementation error. Please turn on debug and contact support@posthog.com.');\n\n if (Config.DEBUG) {\n logger.critical(e);\n }\n }\n };\n}; // eslint-disable-next-line @typescript-eslint/ban-types\n\nvar _safewrap_class = function _safewrap_class(klass, functions) {\n for (var i = 0; i < functions.length; i++) {\n klass.prototype[functions[i]] = _safewrap(klass.prototype[functions[i]]);\n }\n};\nvar _safewrap_instance_methods = function _safewrap_instance_methods(obj) {\n for (var func in obj) {\n if (typeof obj[func] === 'function') {\n obj[func] = _safewrap(obj[func]);\n }\n }\n};\nvar _strip_empty_properties = function _strip_empty_properties(p) {\n var ret = {};\n\n _each(p, function (v, k) {\n if (_isString(v) && v.length > 0) {\n ret[k] = v;\n }\n });\n\n return ret;\n};\n/**\n * Deep copies an object.\n * It handles cycles by replacing all references to them with `undefined`\n * Also supports customizing native values\n *\n * @param value\n * @param customizer\n * @returns {{}|undefined|*}\n */\n\nfunction deepCircularCopy(value, customizer) {\n var COPY_IN_PROGRESS_SET = new Set();\n\n function internalDeepCircularCopy(value, key) {\n if (value !== Object(value)) return customizer ? customizer(value, key) : value; // primitive value\n\n if (COPY_IN_PROGRESS_SET.has(value)) return undefined;\n COPY_IN_PROGRESS_SET.add(value);\n var result;\n\n if (_isArray(value)) {\n result = [];\n\n _eachArray(value, function (it) {\n result.push(internalDeepCircularCopy(it));\n });\n } else {\n result = {};\n\n _each(value, function (val, key) {\n if (!COPY_IN_PROGRESS_SET.has(val)) {\n result[key] = internalDeepCircularCopy(val, key);\n }\n });\n }\n\n return result;\n }\n\n return internalDeepCircularCopy(value);\n}\n\nvar LONG_STRINGS_ALLOW_LIST = ['$performance_raw'];\nfunction _copyAndTruncateStrings(object, maxStringLength) {\n return deepCircularCopy(object, function (value, key) {\n if (key && LONG_STRINGS_ALLOW_LIST.indexOf(key) > -1) {\n return value;\n }\n\n if (typeof value === 'string' && maxStringLength !== null) {\n return value.slice(0, maxStringLength);\n }\n\n return value;\n });\n}\nfunction _base64Encode(data) {\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1,\n o2,\n o3,\n h1,\n h2,\n h3,\n h4,\n bits,\n i = 0,\n ac = 0,\n enc = '';\n var tmp_arr = [];\n\n if (!data) {\n return data;\n }\n\n data = _utf8Encode(data);\n\n do {\n // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n bits = o1 << 16 | o2 << 8 | o3;\n h1 = bits >> 18 & 0x3f;\n h2 = bits >> 12 & 0x3f;\n h3 = bits >> 6 & 0x3f;\n h4 = bits & 0x3f; // use hexets to index into b64, and append result to encoded string\n\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n\n enc = tmp_arr.join('');\n\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '==';\n break;\n\n case 2:\n enc = enc.slice(0, -1) + '=';\n break;\n }\n\n return enc;\n}\nvar _utf8Encode = function _utf8Encode(string) {\n string = (string + '').replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n var utftext = '',\n start,\n end;\n var stringl = 0,\n n;\n start = end = 0;\n stringl = string.length;\n\n for (n = 0; n < stringl; n++) {\n var c1 = string.charCodeAt(n);\n var enc = null;\n\n if (c1 < 128) {\n end++;\n } else if (c1 > 127 && c1 < 2048) {\n enc = String.fromCharCode(c1 >> 6 | 192, c1 & 63 | 128);\n } else {\n enc = String.fromCharCode(c1 >> 12 | 224, c1 >> 6 & 63 | 128, c1 & 63 | 128);\n }\n\n if (enc !== null) {\n if (end > start) {\n utftext += string.substring(start, end);\n }\n\n utftext += enc;\n start = end = n + 1;\n }\n }\n\n if (end > start) {\n utftext += string.substring(start, string.length);\n }\n\n return utftext;\n};\nvar _UUID = function () {\n // Time/ticks information\n // 1*new Date() is a cross browser version of Date.now()\n var T = function T() {\n var d = new Date().valueOf();\n var i = 0; // this while loop figures how many browser ticks go by\n // before 1*new Date() returns a new number, ie the amount\n // of ticks that go by per millisecond\n\n while (d == new Date().valueOf()) {\n i++;\n }\n\n return d.toString(16) + i.toString(16);\n }; // Math.Random entropy\n\n\n var R = function R() {\n return Math.random().toString(16).replace('.', '');\n }; // User agent entropy\n // This function takes the user agent string, and then xors\n // together each sequence of 8 bytes. This produces a final\n // sequence of 8 bytes which it returns as hex.\n\n\n var UA = function UA() {\n var ua = userAgent;\n var i,\n ch,\n ret = 0,\n buffer = [];\n\n function xor(result, byte_array) {\n var j,\n tmp = 0;\n\n for (j = 0; j < byte_array.length; j++) {\n tmp |= buffer[j] << j * 8;\n }\n\n return result ^ tmp;\n }\n\n for (i = 0; i < ua.length; i++) {\n ch = ua.charCodeAt(i);\n buffer.unshift(ch & 0xff);\n\n if (buffer.length >= 4) {\n ret = xor(ret, buffer);\n buffer = [];\n }\n }\n\n if (buffer.length > 0) {\n ret = xor(ret, buffer);\n }\n\n return ret.toString(16);\n };\n\n return function () {\n var se = (window.screen.height * window.screen.width).toString(16);\n return T() + '-' + R() + '-' + UA() + '-' + se + '-' + T();\n };\n}(); // _.isBlockedUA()\n// This is to block various web spiders from executing our JS and\n// sending false capturing data\n\nvar _isBlockedUA = function _isBlockedUA(ua) {\n if (/(google web preview|baiduspider|yandexbot|bingbot|googlebot|yahoo! slurp|ahrefsbot|facebookexternalhit|facebookcatalog|applebot|semrushbot|duckduckbot|twitterbot|rogerbot|linkedinbot|mj12bot|sitebulb|bot.htm|bot.php)/i.test(ua)) {\n return true;\n }\n\n return false;\n};\n/**\n * @param {Object=} formdata\n * @param {string=} arg_separator\n */\n\nvar _HTTPBuildQuery = function _HTTPBuildQuery(formdata) {\n var arg_separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '&';\n var use_val;\n var use_key;\n var tph_arr = [];\n\n _each(formdata, function (val, key) {\n use_val = encodeURIComponent(val.toString());\n use_key = encodeURIComponent(key);\n tph_arr[tph_arr.length] = use_key + '=' + use_val;\n });\n\n return tph_arr.join(arg_separator);\n};\nvar _getQueryParam = function _getQueryParam(url, param) {\n // Expects a raw URL\n var cleanParam = param.replace(/[[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\n var regexS = '[\\\\?&]' + cleanParam + '=([^&#]*)';\n var regex = new RegExp(regexS);\n var results = regex.exec(url);\n\n if (results === null || results && typeof results[1] !== 'string' && results[1].length) {\n return '';\n } else {\n var result = results[1];\n\n try {\n result = decodeURIComponent(result);\n } catch (err) {\n logger.error('Skipping decoding for malformed query param: ' + result);\n }\n\n return result.replace(/\\+/g, ' ');\n }\n};\nvar _getHashParam = function _getHashParam(hash, param) {\n var matches = hash.match(new RegExp(param + '=([^&]*)'));\n return matches ? matches[1] : null;\n};\nvar _register_event = function () {\n // written by Dean Edwards, 2005\n // with input from Tino Zijdel - crisp@xs4all.nl\n // with input from Carl Sverre - mail@carlsverre.com\n // with input from PostHog\n // http://dean.edwards.name/weblog/2005/10/add-event/\n // https://gist.github.com/1930440\n\n /**\n * @param {Object} element\n * @param {string} type\n * @param {function(...*)} handler\n * @param {boolean=} oldSchool\n * @param {boolean=} useCapture\n */\n var register_event = function register_event(element, type, handler, oldSchool, useCapture) {\n if (!element) {\n logger.error('No valid element provided to register_event');\n return;\n }\n\n if (element.addEventListener && !oldSchool) {\n element.addEventListener(type, handler, !!useCapture);\n } else {\n var ontype = 'on' + type;\n var old_handler = element[ontype] // can be undefined\n ;\n element[ontype] = makeHandler(element, handler, old_handler);\n }\n };\n\n function makeHandler(element, new_handler, old_handlers) {\n return function (event) {\n event = event || fixEvent(window.event); // this basically happens in firefox whenever another script\n // overwrites the onload callback and doesn't pass the event\n // object to previously defined callbacks. All the browsers\n // that don't define window.event implement addEventListener\n // so the dom_loaded handler will still be fired as usual.\n\n if (!event) {\n return undefined;\n }\n\n var ret = true;\n var old_result;\n\n if (_isFunction(old_handlers)) {\n old_result = old_handlers(event);\n }\n\n var new_result = new_handler.call(element, event);\n\n if (false === old_result || false === new_result) {\n ret = false;\n }\n\n return ret;\n };\n }\n\n function fixEvent(event) {\n if (event) {\n event.preventDefault = fixEvent.preventDefault;\n event.stopPropagation = fixEvent.stopPropagation;\n }\n\n return event;\n }\n\n fixEvent.preventDefault = function () {\n this.returnValue = false;\n };\n\n fixEvent.stopPropagation = function () {\n this.cancelBubble = true;\n };\n\n return register_event;\n}();\nvar _info = {\n campaignParams: function campaignParams() {\n var campaign_keywords = 'utm_source utm_medium utm_campaign utm_content utm_term gclid fbclid msclkid'.split(' ');\n var params = {};\n\n _each(campaign_keywords, function (kwkey) {\n var kw = _getQueryParam(document$1.URL, kwkey);\n\n if (kw.length) {\n params[kwkey] = kw;\n }\n });\n\n return params;\n },\n searchEngine: function searchEngine(referrer) {\n if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {\n return 'google';\n } else if (referrer.search('https?://(.*)bing.com') === 0) {\n return 'bing';\n } else if (referrer.search('https?://(.*)yahoo.com') === 0) {\n return 'yahoo';\n } else if (referrer.search('https?://(.*)duckduckgo.com') === 0) {\n return 'duckduckgo';\n } else {\n return null;\n }\n },\n searchInfo: function searchInfo(referrer) {\n var search = _info.searchEngine(referrer),\n param = search != 'yahoo' ? 'q' : 'p',\n ret = {};\n\n if (search !== null) {\n ret['$search_engine'] = search;\n\n var keyword = _getQueryParam(referrer, param);\n\n if (keyword.length) {\n ret['ph_keyword'] = keyword;\n }\n }\n\n return ret;\n },\n\n /**\n * This function detects which browser is running this script.\n * The order of the checks are important since many user agents\n * include key words used in later checks.\n */\n browser: function browser(user_agent, vendor, opera) {\n vendor = vendor || ''; // vendor is undefined for at least IE9\n\n if (opera || _includes(user_agent, ' OPR/')) {\n if (_includes(user_agent, 'Mini')) {\n return 'Opera Mini';\n }\n\n return 'Opera';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry';\n } else if (_includes(user_agent, 'IEMobile') || _includes(user_agent, 'WPDesktop')) {\n return 'Internet Explorer Mobile';\n } else if (_includes(user_agent, 'SamsungBrowser/')) {\n // https://developer.samsung.com/internet/user-agent-string-format\n return 'Samsung Internet';\n } else if (_includes(user_agent, 'Edge') || _includes(user_agent, 'Edg/')) {\n return 'Microsoft Edge';\n } else if (_includes(user_agent, 'FBIOS')) {\n return 'Facebook Mobile';\n } else if (_includes(user_agent, 'Chrome')) {\n return 'Chrome';\n } else if (_includes(user_agent, 'CriOS')) {\n return 'Chrome iOS';\n } else if (_includes(user_agent, 'UCWEB') || _includes(user_agent, 'UCBrowser')) {\n return 'UC Browser';\n } else if (_includes(user_agent, 'FxiOS')) {\n return 'Firefox iOS';\n } else if (_includes(vendor, 'Apple')) {\n if (_includes(user_agent, 'Mobile')) {\n return 'Mobile Safari';\n }\n\n return 'Safari';\n } else if (_includes(user_agent, 'Android')) {\n return 'Android Mobile';\n } else if (_includes(user_agent, 'Konqueror')) {\n return 'Konqueror';\n } else if (_includes(user_agent, 'Firefox')) {\n return 'Firefox';\n } else if (_includes(user_agent, 'MSIE') || _includes(user_agent, 'Trident/')) {\n return 'Internet Explorer';\n } else if (_includes(user_agent, 'Gecko')) {\n return 'Mozilla';\n } else {\n return '';\n }\n },\n\n /**\n * This function detects which browser version is running this script,\n * parsing major and minor version (e.g., 42.1). User agent strings from:\n * http://www.useragentstring.com/pages/useragentstring.php\n */\n browserVersion: function browserVersion(userAgent, vendor, opera) {\n var browser = _info.browser(userAgent, vendor, opera);\n\n var versionRegexs = {\n 'Internet Explorer Mobile': /rv:(\\d+(\\.\\d+)?)/,\n 'Microsoft Edge': /Edge?\\/(\\d+(\\.\\d+)?)/,\n Chrome: /Chrome\\/(\\d+(\\.\\d+)?)/,\n 'Chrome iOS': /CriOS\\/(\\d+(\\.\\d+)?)/,\n 'UC Browser': /(UCBrowser|UCWEB)\\/(\\d+(\\.\\d+)?)/,\n Safari: /Version\\/(\\d+(\\.\\d+)?)/,\n 'Mobile Safari': /Version\\/(\\d+(\\.\\d+)?)/,\n Opera: /(Opera|OPR)\\/(\\d+(\\.\\d+)?)/,\n Firefox: /Firefox\\/(\\d+(\\.\\d+)?)/,\n 'Firefox iOS': /FxiOS\\/(\\d+(\\.\\d+)?)/,\n Konqueror: /Konqueror:(\\d+(\\.\\d+)?)/,\n BlackBerry: /BlackBerry (\\d+(\\.\\d+)?)/,\n 'Android Mobile': /android\\s(\\d+(\\.\\d+)?)/,\n 'Samsung Internet': /SamsungBrowser\\/(\\d+(\\.\\d+)?)/,\n 'Internet Explorer': /(rv:|MSIE )(\\d+(\\.\\d+)?)/,\n Mozilla: /rv:(\\d+(\\.\\d+)?)/\n };\n var regex = versionRegexs[browser];\n\n if (regex === undefined) {\n return null;\n }\n\n var matches = userAgent.match(regex);\n\n if (!matches) {\n return null;\n }\n\n return parseFloat(matches[matches.length - 2]);\n },\n browserLanguage: function browserLanguage() {\n return navigator.language || // Any modern browser\n navigator.userLanguage // IE11\n ;\n },\n os: function os() {\n var a = userAgent;\n\n if (/Windows/i.test(a)) {\n if (/Phone/.test(a) || /WPDesktop/.test(a)) {\n return 'Windows Phone';\n }\n\n return 'Windows';\n } else if (/(iPhone|iPad|iPod)/.test(a)) {\n return 'iOS';\n } else if (/Android/.test(a)) {\n return 'Android';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(a)) {\n return 'BlackBerry';\n } else if (/Mac/i.test(a)) {\n return 'Mac OS X';\n } else if (/Linux/.test(a)) {\n return 'Linux';\n } else if (/CrOS/.test(a)) {\n return 'Chrome OS';\n } else {\n return '';\n }\n },\n device: function device(user_agent) {\n if (/Windows Phone/i.test(user_agent) || /WPDesktop/.test(user_agent)) {\n return 'Windows Phone';\n } else if (/iPad/.test(user_agent)) {\n return 'iPad';\n } else if (/iPod/.test(user_agent)) {\n return 'iPod Touch';\n } else if (/iPhone/.test(user_agent)) {\n return 'iPhone';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry';\n } else if (/Android/.test(user_agent) && !/Mobile/.test(user_agent)) {\n return 'Android Tablet';\n } else if (/Android/.test(user_agent)) {\n return 'Android';\n } else {\n return '';\n }\n },\n deviceType: function deviceType(user_agent) {\n var device = this.device(user_agent);\n\n if (device === 'iPad' || device === 'Android Tablet') {\n return 'Tablet';\n } else if (device) {\n return 'Mobile';\n } else {\n return 'Desktop';\n }\n },\n referringDomain: function referringDomain(referrer) {\n var split = referrer.split('/');\n\n if (split.length >= 3) {\n return split[2];\n }\n\n return '';\n },\n properties: function properties() {\n return _extend(_strip_empty_properties({\n $os: _info.os(),\n $browser: _info.browser(userAgent, navigator.vendor, window.opera),\n $device: _info.device(userAgent),\n $device_type: _info.deviceType(userAgent)\n }), {\n $current_url: window.location.href,\n $host: window.location.host,\n $pathname: window.location.pathname,\n $browser_version: _info.browserVersion(userAgent, navigator.vendor, window.opera),\n $browser_language: _info.browserLanguage(),\n $screen_height: window.screen.height,\n $screen_width: window.screen.width,\n $viewport_height: window.innerHeight,\n $viewport_width: window.innerWidth,\n $lib: 'web',\n $lib_version: Config.LIB_VERSION,\n $insert_id: Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10),\n $time: _timestamp() / 1000 // epoch time in seconds\n\n });\n },\n people_properties: function people_properties() {\n return _extend(_strip_empty_properties({\n $os: _info.os(),\n $browser: _info.browser(userAgent, navigator.vendor, window.opera)\n }), {\n $browser_version: _info.browserVersion(userAgent, navigator.vendor, window.opera)\n });\n }\n};\n\nfunction getClassName(el) {\n switch (_typeof(el.className)) {\n case 'string':\n return el.className;\n // TODO: when is this ever used?\n\n case 'object':\n // handle cases where className might be SVGAnimatedString or some other type\n return ('baseVal' in el.className ? el.className.baseVal : null) || el.getAttribute('class') || '';\n\n default:\n // future proof\n return '';\n }\n}\n/*\n * Get the direct text content of an element, protecting against sensitive data collection.\n * Concats textContent of each of the element's text node children; this avoids potential\n * collection of sensitive data that could happen if we used element.textContent and the\n * element had sensitive child elements, since element.textContent includes child content.\n * Scrubs values that look like they could be sensitive (i.e. cc or ssn number).\n * @param {Element} el - element to get the text of\n * @returns {string} the element's direct text content\n */\n\nfunction getSafeText(el) {\n var elText = '';\n\n if (shouldCaptureElement(el) && !isSensitiveElement(el) && el.childNodes && el.childNodes.length) {\n _each(el.childNodes, function (child) {\n if (isTextNode(child) && child.textContent) {\n elText += _trim(child.textContent) // scrub potentially sensitive values\n .split(/(\\s+)/).filter(shouldCaptureValue).join('') // normalize whitespace\n .replace(/[\\r\\n]/g, ' ').replace(/[ ]+/g, ' ') // truncate\n .substring(0, 255);\n }\n });\n }\n\n return _trim(elText);\n}\n/*\n * Check whether an element has nodeType Node.ELEMENT_NODE\n * @param {Element} el - element to check\n * @returns {boolean} whether el is of the correct nodeType\n */\n\nfunction isElementNode(el) {\n return !!el && el.nodeType === 1; // Node.ELEMENT_NODE - use integer constant for browser portability\n}\n/*\n * Check whether an element is of a given tag type.\n * Due to potential reference discrepancies (such as the webcomponents.js polyfill),\n * we want to match tagNames instead of specific references because something like\n * element === document.body won't always work because element might not be a native\n * element.\n * @param {Element} el - element to check\n * @param {string} tag - tag name (e.g., \"div\")\n * @returns {boolean} whether el is of the given tag type\n */\n\nfunction isTag(el, tag) {\n return !!el && !!el.tagName && el.tagName.toLowerCase() === tag.toLowerCase();\n}\n/*\n * Check whether an element has nodeType Node.TEXT_NODE\n * @param {Element} el - element to check\n * @returns {boolean} whether el is of the correct nodeType\n */\n\nfunction isTextNode(el) {\n return !!el && el.nodeType === 3; // Node.TEXT_NODE - use integer constant for browser portability\n}\n/*\n * Check whether an element has nodeType Node.DOCUMENT_FRAGMENT_NODE\n * @param {Element} el - element to check\n * @returns {boolean} whether el is of the correct nodeType\n */\n\nfunction isDocumentFragment(el) {\n return !!el && el.nodeType === 11; // Node.DOCUMENT_FRAGMENT_NODE - use integer constant for browser portability\n}\nvar autocaptureCompatibleElements = ['a', 'button', 'form', 'input', 'select', 'textarea', 'label'];\n/*\n * Check whether a DOM event should be \"captured\" or if it may contain sentitive data\n * using a variety of heuristics.\n * @param {Element} el - element to check\n * @param {Event} event - event to check\n * @param {Object} autocaptureConfig - autocapture config\n * @returns {boolean} whether the event should be captured\n */\n\nfunction shouldCaptureDomEvent(el, event) {\n var autocaptureConfig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n if (!el || isTag(el, 'html') || !isElementNode(el)) {\n return false;\n }\n\n if (autocaptureConfig !== null && autocaptureConfig !== void 0 && autocaptureConfig.url_allowlist) {\n var url = window.location.href;\n var allowlist = autocaptureConfig.url_allowlist;\n\n if (allowlist && !allowlist.some(function (regex) {\n return url.match(regex);\n })) {\n return false;\n }\n }\n\n if (autocaptureConfig !== null && autocaptureConfig !== void 0 && autocaptureConfig.dom_event_allowlist) {\n var _allowlist = autocaptureConfig.dom_event_allowlist;\n\n if (_allowlist && !_allowlist.some(function (eventType) {\n return event.type === eventType;\n })) {\n return false;\n }\n }\n\n if (autocaptureConfig !== null && autocaptureConfig !== void 0 && autocaptureConfig.element_allowlist) {\n var _allowlist2 = autocaptureConfig.element_allowlist;\n\n if (_allowlist2 && !_allowlist2.some(function (elementType) {\n return el.tagName.toLowerCase() === elementType;\n })) {\n return false;\n }\n }\n\n if (autocaptureConfig !== null && autocaptureConfig !== void 0 && autocaptureConfig.css_selector_allowlist) {\n var _allowlist3 = autocaptureConfig.css_selector_allowlist;\n\n if (_allowlist3 && !_allowlist3.some(function (selector) {\n return el.matches(selector);\n })) {\n return false;\n }\n }\n\n var parentIsUsefulElement = false;\n var targetElementList = [el]; // TODO: remove this var, it's never queried\n\n var parentNode = true;\n var curEl = el;\n\n while (curEl.parentNode && !isTag(curEl, 'body')) {\n // If element is a shadow root, we skip it\n if (isDocumentFragment(curEl.parentNode)) {\n targetElementList.push(curEl.parentNode.host);\n curEl = curEl.parentNode.host;\n continue;\n }\n\n parentNode = curEl.parentNode || false;\n if (!parentNode) break;\n\n if (autocaptureCompatibleElements.indexOf(parentNode.tagName.toLowerCase()) > -1) {\n parentIsUsefulElement = true;\n } else {\n var _compStyles = window.getComputedStyle(parentNode);\n\n if (_compStyles && _compStyles.getPropertyValue('cursor') === 'pointer') {\n parentIsUsefulElement = true;\n }\n }\n\n targetElementList.push(parentNode);\n curEl = parentNode;\n }\n\n var compStyles = window.getComputedStyle(el);\n\n if (compStyles && compStyles.getPropertyValue('cursor') === 'pointer' && event.type === 'click') {\n return true;\n }\n\n var tag = el.tagName.toLowerCase();\n\n switch (tag) {\n case 'html':\n return false;\n\n case 'form':\n return event.type === 'submit';\n\n case 'input':\n return event.type === 'change' || event.type === 'click';\n\n case 'select':\n case 'textarea':\n return event.type === 'change' || event.type === 'click';\n\n default:\n if (parentIsUsefulElement) return event.type === 'click';\n return event.type === 'click' && (autocaptureCompatibleElements.indexOf(tag) > -1 || el.getAttribute('contenteditable') === 'true');\n }\n}\n/*\n * Check whether a DOM element should be \"captured\" or if it may contain sentitive data\n * using a variety of heuristics.\n * @param {Element} el - element to check\n * @returns {boolean} whether the element should be captured\n */\n\nfunction shouldCaptureElement(el) {\n for (var curEl = el; curEl.parentNode && !isTag(curEl, 'body'); curEl = curEl.parentNode) {\n var classes = getClassName(curEl).split(' ');\n\n if (_includes(classes, 'ph-sensitive') || _includes(classes, 'ph-no-capture')) {\n return false;\n }\n }\n\n if (_includes(getClassName(el).split(' '), 'ph-include')) {\n return true;\n } // don't include hidden or password fields\n\n\n var type = el.type || '';\n\n if (typeof type === 'string') {\n // it's possible for el.type to be a DOM element if el is a form with a child input[name=\"type\"]\n switch (type.toLowerCase()) {\n case 'hidden':\n return false;\n\n case 'password':\n return false;\n }\n } // filter out data from fields that look like sensitive fields\n\n\n var name = el.name || el.id || ''; // See https://github.com/posthog/posthog-js/issues/165\n // Under specific circumstances a bug caused .replace to be called on a DOM element\n // instead of a string, removing the element from the page. Ensure this issue is mitigated.\n\n if (typeof name === 'string') {\n // it's possible for el.name or el.id to be a DOM element if el is a form with a child input[name=\"name\"]\n var sensitiveNameRegex = /^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i;\n\n if (sensitiveNameRegex.test(name.replace(/[^a-zA-Z0-9]/g, ''))) {\n return false;\n }\n }\n\n return true;\n}\n/*\n * Check whether a DOM element is 'sensitive' and we should only capture limited data\n * @param {Element} el - element to check\n * @returns {boolean} whether the element should be captured\n */\n\nfunction isSensitiveElement(el) {\n // don't send data from inputs or similar elements since there will always be\n // a risk of clientside javascript placing sensitive data in attributes\n var allowedInputTypes = ['button', 'checkbox', 'submit', 'reset'];\n\n if (isTag(el, 'input') && !allowedInputTypes.includes(el.type) || isTag(el, 'select') || isTag(el, 'textarea') || el.getAttribute('contenteditable') === 'true') {\n return true;\n }\n\n return false;\n}\n/*\n * Check whether a string value should be \"captured\" or if it may contain sentitive data\n * using a variety of heuristics.\n * @param {string} value - string value to check\n * @returns {boolean} whether the element should be captured\n */\n\nfunction shouldCaptureValue(value) {\n if (value === null || _isUndefined(value)) {\n return false;\n }\n\n if (typeof value === 'string') {\n value = _trim(value); // check to see if input value looks like a credit card number\n // see: https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9781449327453/ch04s20.html\n\n var ccRegex = /^(?:(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11}))$/;\n\n if (ccRegex.test((value || '').replace(/[- ]/g, ''))) {\n return false;\n } // check to see if input value looks like a social security number\n\n\n var ssnRegex = /(^\\d{3}-?\\d{2}-?\\d{4}$)/;\n\n if (ssnRegex.test(value)) {\n return false;\n }\n }\n\n return true;\n}\n/*\n * Check whether an attribute name is an Angular style attr (either _ngcontent or _nghost)\n * These update on each build and lead to noise in the element chain\n * More details on the attributes here: https://angular.io/guide/view-encapsulation\n * @param {string} attributeName - string value to check\n * @returns {boolean} whether the element is an angular tag\n */\n\nfunction isAngularStyleAttr(attributeName) {\n if (typeof attributeName === 'string') {\n return attributeName.substring(0, 10) === '_ngcontent' || attributeName.substring(0, 7) === '_nghost';\n }\n\n return false;\n}\nfunction loadScript(scriptUrlToLoad, callback) {\n var scriptTag = document.createElement('script');\n scriptTag.type = 'text/javascript';\n scriptTag.src = scriptUrlToLoad;\n scriptTag.onload = callback;\n var scripts = document.querySelectorAll('body > script');\n\n if (scripts.length > 0) {\n var _scripts$0$parentNode;\n\n (_scripts$0$parentNode = scripts[0].parentNode) === null || _scripts$0$parentNode === void 0 ? void 0 : _scripts$0$parentNode.insertBefore(scriptTag, scripts[0]);\n } else {\n document.body.appendChild(scriptTag);\n }\n}\n\n// Naive rage click implementation: If mouse has not moved than RAGE_CLICK_THRESHOLD_PX\n// over RAGE_CLICK_CLICK_COUNT clicks with max RAGE_CLICK_TIMEOUT_MS between clicks, it's\n// counted as a rage click\nvar RAGE_CLICK_THRESHOLD_PX = 30;\nvar RAGE_CLICK_TIMEOUT_MS = 1000;\nvar RAGE_CLICK_CLICK_COUNT = 3;\n\nvar RageClick = /*#__PURE__*/function () {\n function RageClick(enabled) {\n _classCallCheck(this, RageClick);\n\n this.clicks = [];\n this.enabled = enabled;\n }\n\n _createClass(RageClick, [{\n key: \"isRageClick\",\n value: function isRageClick(x, y, timestamp) {\n if (!this.enabled) {\n return false;\n }\n\n var lastClick = this.clicks[this.clicks.length - 1];\n\n if (lastClick && Math.abs(x - lastClick.x) + Math.abs(y - lastClick.y) < RAGE_CLICK_THRESHOLD_PX && timestamp - lastClick.timestamp < RAGE_CLICK_TIMEOUT_MS) {\n this.clicks.push({\n x: x,\n y: y,\n timestamp: timestamp\n });\n\n if (this.clicks.length === RAGE_CLICK_CLICK_COUNT) {\n return true;\n }\n } else {\n this.clicks = [{\n x: x,\n y: y,\n timestamp: timestamp\n }];\n }\n\n return false;\n }\n }]);\n\n return RageClick;\n}();\n\nvar autocapture = {\n _initializedTokens: [],\n _previousElementSibling: function _previousElementSibling(el) {\n if (el.previousElementSibling) {\n return el.previousElementSibling;\n } else {\n var _el = el;\n\n do {\n _el = _el.previousSibling; // resolves to ChildNode->Node, which is Element's parent class\n } while (_el && !isElementNode(_el));\n\n return _el;\n }\n },\n _getPropertiesFromElement: function _getPropertiesFromElement(elem, maskInputs, maskText) {\n var tag_name = elem.tagName.toLowerCase();\n var props = {\n tag_name: tag_name\n };\n\n if (autocaptureCompatibleElements.indexOf(tag_name) > -1 && !maskText) {\n props['$el_text'] = getSafeText(elem);\n }\n\n var classes = getClassName(elem);\n if (classes.length > 0) props['classes'] = classes.split(' ').filter(function (c) {\n return c !== '';\n });\n\n _each(elem.attributes, function (attr) {\n // Only capture attributes we know are safe\n if (isSensitiveElement(elem) && ['name', 'id', 'class'].indexOf(attr.name) === -1) return;\n\n if (!maskInputs && shouldCaptureValue(attr.value) && !isAngularStyleAttr(attr.name)) {\n props['attr__' + attr.name] = attr.value;\n }\n });\n\n var nthChild = 1;\n var nthOfType = 1;\n var currentElem = elem;\n\n while (currentElem = this._previousElementSibling(currentElem)) {\n // eslint-disable-line no-cond-assign\n nthChild++;\n\n if (currentElem.tagName === elem.tagName) {\n nthOfType++;\n }\n }\n\n props['nth_child'] = nthChild;\n props['nth_of_type'] = nthOfType;\n return props;\n },\n _getDefaultProperties: function _getDefaultProperties(eventType) {\n return {\n $event_type: eventType,\n $ce_version: 1\n };\n },\n _extractCustomPropertyValue: function _extractCustomPropertyValue(customProperty) {\n var propValues = [];\n\n _each(document.querySelectorAll(customProperty['css_selector']), function (matchedElem) {\n var value;\n\n if (['input', 'select'].indexOf(matchedElem.tagName.toLowerCase()) > -1) {\n value = matchedElem['value'];\n } else if (matchedElem['textContent']) {\n value = matchedElem['textContent'];\n }\n\n if (shouldCaptureValue(value)) {\n propValues.push(value);\n }\n });\n\n return propValues.join(', ');\n },\n // TODO: delete custom_properties after changeless typescript refactor\n _getCustomProperties: function _getCustomProperties(targetElementList) {\n var _this = this;\n\n var props = {}; // will be deleted\n\n _each(this._customProperties, function (customProperty) {\n _each(customProperty['event_selectors'], function (eventSelector) {\n var eventElements = document.querySelectorAll(eventSelector);\n\n _each(eventElements, function (eventElement) {\n if (_includes(targetElementList, eventElement) && shouldCaptureElement(eventElement)) {\n props[customProperty['name']] = _this._extractCustomPropertyValue(customProperty);\n }\n });\n });\n });\n\n return props;\n },\n _getEventTarget: function _getEventTarget(e) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Event/target#Compatibility_notes\n if (typeof e.target === 'undefined') {\n return e.srcElement || null;\n } else {\n var _e$target;\n\n if ((_e$target = e.target) !== null && _e$target !== void 0 && _e$target.shadowRoot) {\n return e.composedPath()[0] || null;\n }\n\n return e.target || null;\n }\n },\n _captureEvent: function _captureEvent(e, instance) {\n var _this2 = this;\n\n var eventName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '$autocapture';\n\n /*** Don't mess with this code without running IE8 tests on it ***/\n var target = this._getEventTarget(e);\n\n if (isTextNode(target)) {\n // defeat Safari bug (see: http://www.quirksmode.org/js/events_properties.html)\n target = target.parentNode || null;\n }\n\n if (eventName === '$autocapture' && e.type === 'click' && e instanceof MouseEvent) {\n var _this$rageclicks;\n\n if ((_this$rageclicks = this.rageclicks) !== null && _this$rageclicks !== void 0 && _this$rageclicks.isRageClick(e.clientX, e.clientY, new Date().getTime())) {\n this._captureEvent(e, instance, '$rageclick');\n }\n }\n\n if (target && shouldCaptureDomEvent(target, e, this.config)) {\n var targetElementList = [target];\n var curEl = target;\n\n while (curEl.parentNode && !isTag(curEl, 'body')) {\n if (isDocumentFragment(curEl.parentNode)) {\n targetElementList.push(curEl.parentNode.host);\n curEl = curEl.parentNode.host;\n continue;\n }\n\n targetElementList.push(curEl.parentNode);\n curEl = curEl.parentNode;\n }\n\n var elementsJson = [];\n var href,\n explicitNoCapture = false;\n\n _each(targetElementList, function (el) {\n var shouldCaptureEl = shouldCaptureElement(el); // if the element or a parent element is an anchor tag\n // include the href as a property\n\n if (el.tagName.toLowerCase() === 'a') {\n href = el.getAttribute('href');\n href = shouldCaptureEl && shouldCaptureValue(href) && href;\n } // allow users to programmatically prevent capturing of elements by adding class 'ph-no-capture'\n\n\n var classes = getClassName(el).split(' ');\n\n if (_includes(classes, 'ph-no-capture')) {\n explicitNoCapture = true;\n }\n\n elementsJson.push(_this2._getPropertiesFromElement(el, instance.get_config('mask_all_element_attributes'), instance.get_config('mask_all_text')));\n });\n\n if (!instance.get_config('mask_all_text')) {\n elementsJson[0]['$el_text'] = getSafeText(target);\n }\n\n if (href) {\n elementsJson[0]['attr__href'] = href;\n }\n\n if (explicitNoCapture) {\n return false;\n }\n\n var props = _extend(this._getDefaultProperties(e.type), {\n $elements: elementsJson\n }, this._getCustomProperties(targetElementList));\n\n instance.capture(eventName, props);\n return true;\n }\n },\n // only reason is to stub for unit tests\n // since you can't override window.location props\n _navigate: function _navigate(href) {\n window.location.href = href;\n },\n _addDomEventHandlers: function _addDomEventHandlers(instance) {\n var _this3 = this;\n\n var handler = function handler(e) {\n e = e || window.event;\n\n _this3._captureEvent(e, instance);\n };\n\n _register_event(document, 'submit', handler, false, true);\n\n _register_event(document, 'change', handler, false, true);\n\n _register_event(document, 'click', handler, false, true);\n },\n _customProperties: [],\n rageclicks: null,\n config: undefined,\n init: function init(instance) {\n var _this$config;\n\n if (typeof instance.__autocapture !== 'boolean') {\n this.config = instance.__autocapture;\n } // precompile the regex\n\n\n if ((_this$config = this.config) !== null && _this$config !== void 0 && _this$config.url_allowlist) {\n this.config.url_allowlist = this.config.url_allowlist.map(function (url) {\n return new RegExp(url);\n });\n }\n\n this.rageclicks = new RageClick(instance.get_config('rageclick'));\n },\n afterDecideResponse: function afterDecideResponse(response, instance) {\n var token = instance.get_config('token');\n\n if (this._initializedTokens.indexOf(token) > -1) {\n logger.log('autocapture already initialized for token \"' + token + '\"');\n return;\n }\n\n this._initializedTokens.push(token);\n\n if (response && response['config'] && response['config']['enable_collect_everything'] && instance.get_config('autocapture')) {\n // TODO: delete custom_properties after changeless typescript refactor\n if (response['custom_properties']) {\n this._customProperties = response['custom_properties'];\n }\n\n this._addDomEventHandlers(instance);\n } else {\n instance['__autocapture'] = false;\n }\n },\n // this is a mechanism to ramp up CE with no server-side interaction.\n // when CE is active, every page load results in a decide request. we\n // need to gently ramp this up so we don't overload decide. this decides\n // deterministically if CE is enabled for this project by modding the char\n // value of the project token.\n enabledForProject: function enabledForProject(token, numBuckets, numEnabledBuckets) {\n if (!token) {\n return true;\n }\n\n numBuckets = !_isUndefined(numBuckets) ? numBuckets : 10;\n numEnabledBuckets = !_isUndefined(numEnabledBuckets) ? numEnabledBuckets : 10;\n var charCodeSum = 0;\n\n for (var i = 0; i < token.length; i++) {\n charCodeSum += token.charCodeAt(i);\n }\n\n return charCodeSum % numBuckets < numEnabledBuckets;\n },\n isBrowserSupported: function isBrowserSupported() {\n return _isFunction(document.querySelectorAll);\n }\n};\n\n_bind_instance_methods(autocapture);\n\n_safewrap_instance_methods(autocapture);\n\nvar DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]+\\.[a-z.]{2,6}$/i; // Methods partially borrowed from quirksmode.org/js/cookies.html\n\nvar cookieStore = {\n is_supported: function is_supported() {\n return true;\n },\n error: function error(msg) {\n logger.error('cookieStore error: ' + msg);\n },\n get: function get(name) {\n try {\n var nameEQ = name + '=';\n var ca = document.cookie.split(';');\n\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length);\n }\n\n if (c.indexOf(nameEQ) === 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length));\n }\n }\n } catch (err) {}\n\n return null;\n },\n parse: function parse(name) {\n var cookie;\n\n try {\n cookie = JSON.parse(cookieStore.get(name)) || {};\n } catch (err) {// noop\n }\n\n return cookie;\n },\n set: function set(name, value, days, cross_subdomain, is_secure) {\n try {\n var cdomain = '',\n expires = '',\n secure = '';\n\n if (cross_subdomain) {\n var matches = document.location.hostname.match(DOMAIN_MATCH_REGEX),\n domain = matches ? matches[0] : '';\n cdomain = domain ? '; domain=.' + domain : '';\n }\n\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = '; expires=' + date.toUTCString();\n }\n\n if (is_secure) {\n secure = '; secure';\n }\n\n var new_cookie_val = name + '=' + encodeURIComponent(JSON.stringify(value)) + expires + '; path=/' + cdomain + secure;\n document.cookie = new_cookie_val;\n return new_cookie_val;\n } catch (err) {\n return;\n }\n },\n remove: function remove(name, cross_subdomain) {\n try {\n cookieStore.set(name, '', -1, cross_subdomain);\n } catch (err) {\n return;\n }\n }\n};\nvar _localStorage_supported = null;\nvar localStore = {\n is_supported: function is_supported() {\n if (_localStorage_supported !== null) {\n return _localStorage_supported;\n }\n\n var supported = true;\n\n if (window) {\n try {\n var key = '__mplssupport__',\n val = 'xyz';\n localStore.set(key, val);\n\n if (localStore.get(key) !== '\"xyz\"') {\n supported = false;\n }\n\n localStore.remove(key);\n } catch (err) {\n supported = false;\n }\n } else {\n supported = false;\n }\n\n if (!supported) {\n logger.error('localStorage unsupported; falling back to cookie store');\n }\n\n _localStorage_supported = supported;\n return supported;\n },\n error: function error(msg) {\n logger.error('localStorage error: ' + msg);\n },\n get: function get(name) {\n try {\n return window.localStorage.getItem(name);\n } catch (err) {\n localStore.error(err);\n }\n\n return null;\n },\n parse: function parse(name) {\n try {\n return JSON.parse(localStore.get(name)) || {};\n } catch (err) {// noop\n }\n\n return null;\n },\n set: function set(name, value) {\n try {\n window.localStorage.setItem(name, JSON.stringify(value));\n } catch (err) {\n localStore.error(err);\n }\n },\n remove: function remove(name) {\n try {\n window.localStorage.removeItem(name);\n } catch (err) {\n localStore.error(err);\n }\n }\n}; // Use localstorage for most data but still use cookie for distinct_id\n// This solves issues with cookies having too much data in them causing headers too large\n// Also makes sure we don't have to send a ton of data to the server\n\nvar localPlusCookieStore = _objectSpread2(_objectSpread2({}, localStore), {}, {\n parse: function parse(name) {\n try {\n var extend = {};\n\n try {\n // See if there's a cookie stored with data.\n extend = cookieStore.parse(name) || {};\n\n if (extend['distinct_id']) {\n cookieStore.set(name, {\n distinct_id: extend['distinct_id']\n });\n }\n } catch (err) {}\n\n var value = _extend(extend, JSON.parse(localStore.get(name) || '{}'));\n\n localStore.set(name, value);\n return value;\n } catch (err) {// noop\n }\n\n return null;\n },\n set: function set(name, value, days, cross_subdomain, is_secure) {\n try {\n localStore.set(name, value);\n\n if (value.distinct_id) {\n cookieStore.set(name, {\n distinct_id: value.distinct_id\n }, days, cross_subdomain, is_secure);\n }\n } catch (err) {\n localStore.error(err);\n }\n },\n remove: function remove(name, cross_subdomain) {\n try {\n window.localStorage.removeItem(name);\n cookieStore.remove(name, cross_subdomain);\n } catch (err) {\n localStore.error(err);\n }\n }\n});\nvar memoryStorage = {}; // Storage that only lasts the length of the pageview if we don't want to use cookies\n\nvar memoryStore = {\n is_supported: function is_supported() {\n return true;\n },\n error: function error(msg) {\n logger.error('memoryStorage error: ' + msg);\n },\n get: function get(name) {\n return memoryStorage[name] || null;\n },\n parse: function parse(name) {\n return memoryStorage[name] || null;\n },\n set: function set(name, value) {\n memoryStorage[name] = value;\n },\n remove: function remove(name) {\n delete memoryStorage[name];\n }\n};\nvar sessionStorageSupported = null;\n\nvar sessionStore = {\n is_supported: function is_supported() {\n if (sessionStorageSupported !== null) {\n return sessionStorageSupported;\n }\n\n sessionStorageSupported = true;\n\n if (window) {\n try {\n var key = '__support__',\n val = 'xyz';\n sessionStore.set(key, val);\n\n if (sessionStore.get(key) !== '\"xyz\"') {\n sessionStorageSupported = false;\n }\n\n sessionStore.remove(key);\n } catch (err) {\n sessionStorageSupported = false;\n }\n } else {\n sessionStorageSupported = false;\n }\n\n return sessionStorageSupported;\n },\n error: function error(msg) {\n if (Config.DEBUG) {\n logger.error('sessionStorage error: ', msg);\n }\n },\n get: function get(name) {\n try {\n return window.sessionStorage.getItem(name);\n } catch (err) {\n sessionStore.error(err);\n }\n\n return null;\n },\n parse: function parse(name) {\n try {\n return JSON.parse(sessionStore.get(name)) || null;\n } catch (err) {// noop\n }\n\n return null;\n },\n set: function set(name, value) {\n try {\n window.sessionStorage.setItem(name, JSON.stringify(value));\n } catch (err) {\n sessionStore.error(err);\n }\n },\n remove: function remove(name) {\n try {\n window.sessionStorage.removeItem(name);\n } catch (err) {\n sessionStore.error(err);\n }\n }\n};\n\n/**\n * GDPR utils\n *\n * The General Data Protection Regulation (GDPR) is a regulation in EU law on data protection\n * and privacy for all individuals within the European Union. It addresses the export of personal\n * data outside the EU. The GDPR aims primarily to give control back to citizens and residents\n * over their personal data and to simplify the regulatory environment for international business\n * by unifying the regulation within the EU.\n *\n * This set of utilities is intended to enable opt in/out functionality in the PostHog JS SDK.\n * These functions are used internally by the SDK and are not intended to be publicly exposed.\n */\n\n/**\n * A function used to capture a PostHog event (e.g. PostHogLib.capture)\n * @callback captureFunction\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Function} [callback] If provided, the callback function will be called after capturing the event.\n */\n\n/** Public **/\nvar GDPR_DEFAULT_PERSISTENCE_PREFIX = '__ph_opt_in_out_';\n/**\n * Opt the user in to data capturing and cookies/localstorage for the given token\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {captureFunction} [options.capture] - function used for capturing a PostHog event to record the opt-in action\n * @param {string} [options.captureEventName] - event name to be used for capturing the opt-in action\n * @param {Object} [options.captureProperties] - set of properties to be captured along with the opt-in action\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\n\nfunction optIn(token, options) {\n _optInOut(true, token, options);\n}\n/**\n * Opt the user out of data capturing and cookies/localstorage for the given token\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-out cookie expires\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-out cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-out cookie is set as secure or not\n */\n\nfunction optOut(token, options) {\n _optInOut(false, token, options);\n}\n/**\n * Check whether the user has opted in to data capturing and cookies/localstorage for the given token\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} whether the user has opted in to the given opt type\n */\n\nfunction hasOptedIn(token, options) {\n return _getStorageValue(token, options) === '1';\n}\n/**\n * Check whether the user has opted out of data capturing and cookies/localstorage for the given token\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {boolean} [options.respectDnt] - flag to take browser DNT setting into account\n * @returns {boolean} whether the user has opted out of the given opt type\n */\n\nfunction hasOptedOut(token, options) {\n if (_hasDoNotTrackFlagOn(options)) {\n return true;\n }\n\n return _getStorageValue(token, options) === '0';\n}\n/**\n * Clear the user's opt in/out status of data capturing and cookies/localstorage for the given token\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\n\nfunction clearOptInOut(token, options) {\n options = options || {};\n\n _getStorage(options).remove(_getStorageKey(token, options), !!options.crossSubdomainCookie);\n}\n/** Private **/\n\n/**\n * Get storage util\n * @param {Object} [options]\n * @param {string} [options.persistenceType]\n * @returns {object} either cookieStore or localStore\n */\n\nfunction _getStorage(options) {\n options = options || {};\n\n if (options.persistenceType === 'localStorage') {\n return localStore;\n }\n\n if (options.persistenceType === 'localStorage+cookie') {\n return localPlusCookieStore;\n }\n\n return cookieStore;\n}\n/**\n * Get the name of the cookie that is used for the given opt type (capturing, cookie, etc.)\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the name of the cookie for the given opt type\n */\n\n\nfunction _getStorageKey(token, options) {\n options = options || {};\n return (options.persistencePrefix || GDPR_DEFAULT_PERSISTENCE_PREFIX) + token;\n}\n/**\n * Get the value of the cookie that is used for the given opt type (capturing, cookie, etc.)\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the value of the cookie for the given opt type\n */\n\n\nfunction _getStorageValue(token, options) {\n return _getStorage(options).get(_getStorageKey(token, options));\n}\n/**\n * Check whether the user has set the DNT/doNotTrack setting to true in their browser\n * @param {Object} [options]\n * @param {string} [options.window] - alternate window object to check; used to force various DNT settings in browser tests\n * @param {boolean} [options.respectDnt] - flag to take browser DNT setting into account\n * @returns {boolean} whether the DNT setting is true\n */\n\n\nfunction _hasDoNotTrackFlagOn(options) {\n if (options && options.respectDnt) {\n var win$1 = options && options.window || win;\n var nav = win$1['navigator'] || {};\n var hasDntOn = false;\n\n _each([nav['doNotTrack'], // standard\n nav['msDoNotTrack'], win$1['doNotTrack']], function (dntValue) {\n if (_includes([true, 1, '1', 'yes'], dntValue)) {\n hasDntOn = true;\n }\n });\n\n return hasDntOn;\n }\n\n return false;\n}\n/**\n * Set cookie/localstorage for the user indicating that they are opted in or out for the given opt type\n * @param {boolean} optValue - whether to opt the user in or out for the given opt type\n * @param {string} token - PostHog project capturing token\n * @param {Object} [options]\n * @param {captureFunction} [options.capture] - function used for capturing a PostHog event to record the opt-in action\n * @param {string} [options.captureEventName] - event name to be used for capturing the opt-in action\n * @param {Object} [options.captureProperties] - set of properties to be captured along with the opt-in action\n * @param {string} [options.persistencePrefix=__ph_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\n\n\nfunction _optInOut(optValue, token, options) {\n if (!_isString(token) || !token.length) {\n console.error('gdpr.' + (optValue ? 'optIn' : 'optOut') + ' called with an invalid token');\n return;\n }\n\n options = options || {};\n\n _getStorage(options).set(_getStorageKey(token, options), optValue ? 1 : 0, _isNumber(options.cookieExpiration) ? options.cookieExpiration : null, options.crossSubdomainCookie, options.secureCookie);\n\n if (options.capture && optValue) {\n // only capture event if opting in (optValue=true)\n options.capture(options.captureEventName || '$opt_in', options.captureProperties || {}, {\n send_instantly: true\n });\n }\n}\n\nfunction userOptedOut(posthog, silenceErrors) {\n var optedOut = false;\n\n try {\n var token = posthog.get_config('token');\n var respectDnt = posthog.get_config('respect_dnt');\n var persistenceType = posthog.get_config('opt_out_capturing_persistence_type');\n var persistencePrefix = posthog.get_config('opt_out_capturing_cookie_prefix') || undefined;\n var win = posthog.get_config('window'); // used to override window during browser tests\n\n if (token) {\n // if there was an issue getting the token, continue method execution as normal\n optedOut = hasOptedOut(token, {\n respectDnt: respectDnt,\n persistenceType: persistenceType,\n persistencePrefix: persistencePrefix,\n window: win\n });\n }\n } catch (err) {\n if (!silenceErrors) {\n console.error('Unexpected error when checking capturing opt-out status: ' + err);\n }\n }\n\n return optedOut;\n}\n/**\n * Wrap a method with a check for whether the user is opted out of data capturing and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {PostHog} posthog - the posthog instance\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @param silenceErrors\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\n\nfunction addOptOutCheck(posthog, method, silenceErrors) {\n return function () {\n var optedOut = userOptedOut(posthog, silenceErrors);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (!optedOut) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return method.apply(this, args);\n }\n\n var callback = args[args.length - 1];\n\n if (typeof callback === 'function') {\n callback(0);\n }\n\n return;\n };\n}\n\nvar SET_ACTION = '$set';\nvar SET_ONCE_ACTION = '$set_once';\n/**\n * PostHog People Object\n * @constructor\n */\n\nvar PostHogPeople = /*#__PURE__*/function () {\n function PostHogPeople(posthog) {\n var _this = this;\n\n _classCallCheck(this, PostHogPeople);\n\n this._posthog = posthog;\n /*\n * Set properties on a user record.\n *\n * ### Usage:\n *\n * posthog.people.set('gender', 'm');\n *\n * // or set multiple properties at once\n * posthog.people.set({\n * 'Company': 'Acme',\n * 'Plan': 'Premium',\n * 'Upgrade date': new Date()\n * });\n * // properties can be strings, integers, dates, or lists\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after capturing the event.\n */\n\n this.set = addOptOutCheck(posthog, function (prop, to, callback) {\n var data = _this.set_action(prop, to);\n\n if (_isObject(prop)) {\n callback = to;\n } // make sure that the referrer info has been updated and saved\n\n\n if (_this._get_config('save_referrer')) {\n _this._posthog.persistence.update_referrer_info(document.referrer);\n } // update $set object with default people properties\n\n\n data[SET_ACTION] = _extend({}, _info.people_properties(), _this._posthog.persistence.get_referrer_info(), data[SET_ACTION]);\n return _this._send_request(data, callback);\n });\n /*\n * Set properties on a user record, only if they do not yet exist.\n * This will not overwrite previous people property values, unlike\n * people.set().\n *\n * ### Usage:\n *\n * posthog.people.set_once('First Login Date', new Date());\n *\n * // or set multiple properties at once\n * posthog.people.set_once({\n * 'First Login Date': new Date(),\n * 'Starting Plan': 'Premium'\n * });\n *\n * // properties can be strings, integers or dates\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after capturing the event.\n */\n\n this.set_once = addOptOutCheck(posthog, function (prop, to, callback) {\n var data = _this.set_once_action(prop, to);\n\n if (_isObject(prop)) {\n callback = to;\n }\n\n return _this._send_request(data, callback);\n });\n }\n\n _createClass(PostHogPeople, [{\n key: \"toString\",\n value: function toString() {\n return this._posthog.toString() + '.people';\n }\n }, {\n key: \"_send_request\",\n value: function _send_request(data, callback) {\n data['$token'] = this._get_config('token');\n data['$distinct_id'] = this._posthog.get_distinct_id();\n\n var device_id = this._posthog.get_property('$device_id');\n\n var user_id = this._posthog.get_property('$user_id');\n\n var had_persisted_distinct_id = this._posthog.get_property('$had_persisted_distinct_id');\n\n if (device_id) {\n data['$device_id'] = device_id;\n }\n\n if (user_id) {\n data['$user_id'] = user_id;\n }\n\n if (had_persisted_distinct_id) {\n data['$had_persisted_distinct_id'] = had_persisted_distinct_id;\n }\n\n var date_encoded_data = _encodeDates(data);\n\n var truncated_data = _copyAndTruncateStrings(date_encoded_data, this._get_config('properties_string_max_length'));\n\n var json_data = JSON.stringify(date_encoded_data);\n\n var encoded_data = _base64Encode(json_data);\n\n this._posthog._send_request(this._get_config('api_host') + '/engage/', {\n data: encoded_data\n }, {}, this._posthog._prepare_callback(callback, truncated_data));\n\n return truncated_data;\n }\n }, {\n key: \"_get_config\",\n value: function _get_config(conf_var) {\n return this._posthog.get_config(conf_var);\n }\n }, {\n key: \"_is_reserved_property\",\n value: function _is_reserved_property(prop) {\n return prop === '$distinct_id' || prop === '$token' || prop === '$device_id' || prop === '$user_id' || prop === '$had_persisted_distinct_id';\n } // Internal methods for posthog.people API.\n // These methods shouldn't involve network I/O.\n\n }, {\n key: \"set_action\",\n value: function set_action(prop, to) {\n return this.apiActionParser(SET_ACTION, prop, to);\n }\n }, {\n key: \"set_once_action\",\n value: function set_once_action(prop, to) {\n return this.apiActionParser(SET_ONCE_ACTION, prop, to);\n }\n }, {\n key: \"apiActionParser\",\n value: function apiActionParser(actionType, prop, to) {\n var _this2 = this;\n\n var data = {};\n var props = {};\n\n if (_isObject(prop)) {\n _each(prop, function (v, k) {\n if (!_this2._is_reserved_property(k)) {\n props[k] = v;\n }\n });\n } else {\n props[prop] = to;\n }\n\n data[actionType] = props;\n return data;\n }\n }]);\n\n return PostHogPeople;\n}();\n\nvar PERSISTENCE_ACTIVE_FEATURE_FLAGS = '$active_feature_flags';\nvar PERSISTENCE_ENABLED_FEATURE_FLAGS = '$enabled_feature_flags';\nvar PERSISTENCE_OVERRIDE_FEATURE_FLAGS = '$override_feature_flags';\nvar PERSISTENCE_FEATURE_FLAG_PAYLOADS = '$feature_flag_payloads';\nvar parseFeatureFlagDecideResponse = function parseFeatureFlagDecideResponse(response, persistence) {\n var currentFlags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var currentFlagPayloads = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var flags = response['featureFlags'];\n var flagPayloads = response['featureFlagPayloads'];\n\n if (flags) {\n // using the v1 api\n if (Array.isArray(flags)) {\n var _persistence$register;\n\n var $enabled_feature_flags = {};\n\n if (flags) {\n for (var i = 0; i < flags.length; i++) {\n $enabled_feature_flags[flags[i]] = true;\n }\n }\n\n persistence && persistence.register((_persistence$register = {}, _defineProperty(_persistence$register, PERSISTENCE_ACTIVE_FEATURE_FLAGS, flags), _defineProperty(_persistence$register, PERSISTENCE_ENABLED_FEATURE_FLAGS, $enabled_feature_flags), _persistence$register));\n } else {\n var _persistence$register2;\n\n // using the v2+ api\n var newFeatureFlags = flags;\n var newFeatureFlagPayloads = flagPayloads;\n\n if (response.errorsWhileComputingFlags) {\n // if not all flags were computed, we upsert flags instead of replacing them\n newFeatureFlags = _objectSpread2(_objectSpread2({}, currentFlags), newFeatureFlags);\n newFeatureFlagPayloads = _objectSpread2(_objectSpread2({}, currentFlagPayloads), newFeatureFlagPayloads);\n }\n\n persistence && persistence.register((_persistence$register2 = {}, _defineProperty(_persistence$register2, PERSISTENCE_ACTIVE_FEATURE_FLAGS, Object.keys(newFeatureFlags || {})), _defineProperty(_persistence$register2, PERSISTENCE_ENABLED_FEATURE_FLAGS, newFeatureFlags || {}), _defineProperty(_persistence$register2, PERSISTENCE_FEATURE_FLAG_PAYLOADS, newFeatureFlagPayloads || {}), _persistence$register2));\n }\n } else {\n if (persistence) {\n persistence.unregister(PERSISTENCE_ACTIVE_FEATURE_FLAGS);\n persistence.unregister(PERSISTENCE_ENABLED_FEATURE_FLAGS);\n persistence.unregister(PERSISTENCE_FEATURE_FLAG_PAYLOADS);\n }\n }\n};\nvar PostHogFeatureFlags = /*#__PURE__*/function () {\n function PostHogFeatureFlags(instance) {\n _classCallCheck(this, PostHogFeatureFlags);\n\n this.instance = instance;\n this._override_warning = false;\n this.flagCallReported = {};\n this.featureFlagEventHandlers = [];\n this.reloadFeatureFlagsQueued = false;\n this.reloadFeatureFlagsInAction = false;\n }\n\n _createClass(PostHogFeatureFlags, [{\n key: \"getFlags\",\n value: function getFlags() {\n return Object.keys(this.getFlagVariants());\n }\n }, {\n key: \"getFlagVariants\",\n value: function getFlagVariants() {\n var enabledFlags = this.instance.get_property(PERSISTENCE_ENABLED_FEATURE_FLAGS);\n var overriddenFlags = this.instance.get_property(PERSISTENCE_OVERRIDE_FEATURE_FLAGS);\n\n if (!overriddenFlags) {\n return enabledFlags || {};\n }\n\n var finalFlags = _extend({}, enabledFlags);\n\n var overriddenKeys = Object.keys(overriddenFlags);\n\n for (var i = 0; i < overriddenKeys.length; i++) {\n if (overriddenFlags[overriddenKeys[i]] === false) {\n delete finalFlags[overriddenKeys[i]];\n } else {\n finalFlags[overriddenKeys[i]] = overriddenFlags[overriddenKeys[i]];\n }\n }\n\n if (!this._override_warning) {\n console.warn('[PostHog] Overriding feature flags!', {\n enabledFlags: enabledFlags,\n overriddenFlags: overriddenFlags,\n finalFlags: finalFlags\n });\n this._override_warning = true;\n }\n\n return finalFlags;\n }\n }, {\n key: \"getFlagPayloads\",\n value: function getFlagPayloads() {\n var flagPayloads = this.instance.get_property(PERSISTENCE_FEATURE_FLAG_PAYLOADS);\n return flagPayloads || {};\n }\n /**\n * Reloads feature flags asynchronously.\n *\n * Constraints:\n *\n * 1. Avoid parallel requests\n * 2. Delay a few milliseconds after each reloadFeatureFlags call to batch subsequent changes together\n * 3. Don't call this during initial load (as /decide will be called instead), see posthog-core.js\n */\n\n }, {\n key: \"reloadFeatureFlags\",\n value: function reloadFeatureFlags() {\n if (!this.reloadFeatureFlagsQueued) {\n this.reloadFeatureFlagsQueued = true;\n\n this._startReloadTimer();\n }\n }\n }, {\n key: \"setAnonymousDistinctId\",\n value: function setAnonymousDistinctId(anon_distinct_id) {\n this.$anon_distinct_id = anon_distinct_id;\n }\n }, {\n key: \"setReloadingPaused\",\n value: function setReloadingPaused(isPaused) {\n this.reloadFeatureFlagsInAction = isPaused;\n }\n }, {\n key: \"resetRequestQueue\",\n value: function resetRequestQueue() {\n this.reloadFeatureFlagsQueued = false;\n }\n }, {\n key: \"_startReloadTimer\",\n value: function _startReloadTimer() {\n var _this = this;\n\n if (this.reloadFeatureFlagsQueued && !this.reloadFeatureFlagsInAction) {\n setTimeout(function () {\n if (!_this.reloadFeatureFlagsInAction && _this.reloadFeatureFlagsQueued) {\n _this.reloadFeatureFlagsQueued = false;\n\n _this._reloadFeatureFlagsRequest();\n }\n }, 5);\n }\n }\n }, {\n key: \"_reloadFeatureFlagsRequest\",\n value: function _reloadFeatureFlagsRequest() {\n var _this2 = this;\n\n this.setReloadingPaused(true);\n var token = this.instance.get_config('token');\n var json_data = JSON.stringify({\n token: token,\n distinct_id: this.instance.get_distinct_id(),\n groups: this.instance.getGroups(),\n $anon_distinct_id: this.$anon_distinct_id\n });\n\n var encoded_data = _base64Encode(json_data);\n\n this.instance._send_request(this.instance.get_config('api_host') + '/decide/?v=3', {\n data: encoded_data\n }, {\n method: 'POST'\n }, this.instance._prepare_callback(function (response) {\n // reset anon_distinct_id after at least a single request with it\n // makes it through\n _this2.$anon_distinct_id = undefined;\n\n _this2.receivedFeatureFlags(response); // :TRICKY: Reload - start another request if queued!\n\n\n _this2.setReloadingPaused(false);\n\n _this2._startReloadTimer();\n }));\n }\n /*\n * Get feature flag's value for user.\n *\n * ### Usage:\n *\n * if(posthog.getFeatureFlag('my-flag') === 'some-variant') { // do something }\n *\n * @param {Object|String} key Key of the feature flag.\n * @param {Object|String} options (optional) If {send_event: false}, we won't send an $feature_flag_call event to PostHog.\n */\n\n }, {\n key: \"getFeatureFlag\",\n value: function getFeatureFlag(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.getFlags()) {\n console.warn('getFeatureFlag for key \"' + key + '\" failed. Feature flags didn\\'t load in time.');\n return false;\n }\n\n var flagValue = this.getFlagVariants()[key];\n\n if ((options.send_event || !('send_event' in options)) && !this.flagCallReported[key]) {\n this.flagCallReported[key] = true;\n this.instance.capture('$feature_flag_called', {\n $feature_flag: key,\n $feature_flag_response: flagValue\n });\n }\n\n return flagValue;\n }\n }, {\n key: \"getFeatureFlagPayload\",\n value: function getFeatureFlagPayload(key) {\n var payloads = this.getFlagPayloads();\n return payloads[key];\n }\n /*\n * See if feature flag is enabled for user.\n *\n * ### Usage:\n *\n * if(posthog.isFeatureEnabled('beta-feature')) { // do something }\n *\n * @param {Object|String} key Key of the feature flag.\n * @param {Object|String} options (optional) If {send_event: false}, we won't send an $feature_flag_call event to PostHog.\n */\n\n }, {\n key: \"isFeatureEnabled\",\n value: function isFeatureEnabled(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.getFlags()) {\n console.warn('isFeatureEnabled for key \"' + key + '\" failed. Feature flags didn\\'t load in time.');\n return false;\n }\n\n return !!this.getFeatureFlag(key, options);\n }\n }, {\n key: \"addFeatureFlagsHandler\",\n value: function addFeatureFlagsHandler(handler) {\n this.featureFlagEventHandlers.push(handler);\n }\n }, {\n key: \"receivedFeatureFlags\",\n value: function receivedFeatureFlags(response) {\n this.instance.decideEndpointWasHit = true;\n var currentFlags = this.getFlagVariants();\n var currentFlagPayloads = this.getFlagPayloads();\n parseFeatureFlagDecideResponse(response, this.instance.persistence, currentFlags, currentFlagPayloads);\n\n var _this$_prepareFeature = this._prepareFeatureFlagsForCallbacks(),\n flags = _this$_prepareFeature.flags,\n flagVariants = _this$_prepareFeature.flagVariants;\n\n this.featureFlagEventHandlers.forEach(function (handler) {\n return handler(flags, flagVariants);\n });\n }\n /*\n * Override feature flags for debugging.\n *\n * ### Usage:\n *\n * - posthog.feature_flags.override(false)\n * - posthog.feature_flags.override(['beta-feature'])\n * - posthog.feature_flags.override({'beta-feature': 'variant', 'other-feature': True})\n *\n * @param {Object|Array|String} flags Flags to override with.\n */\n\n }, {\n key: \"override\",\n value: function override(flags) {\n this._override_warning = false;\n\n if (flags === false) {\n this.instance.persistence.unregister(PERSISTENCE_OVERRIDE_FEATURE_FLAGS);\n } else if (Array.isArray(flags)) {\n var flagsObj = {};\n\n for (var i = 0; i < flags.length; i++) {\n flagsObj[flags[i]] = true;\n }\n\n this.instance.persistence.register(_defineProperty({}, PERSISTENCE_OVERRIDE_FEATURE_FLAGS, flagsObj));\n } else {\n this.instance.persistence.register(_defineProperty({}, PERSISTENCE_OVERRIDE_FEATURE_FLAGS, flags));\n }\n }\n /*\n * Register an event listener that runs when feature flags become available or when they change.\n * If there are flags, the listener is called immediately in addition to being called on future changes.\n *\n * ### Usage:\n *\n * posthog.onFeatureFlags(function(featureFlags) { // do something })\n *\n * @param {Function} [callback] The callback function will be called once the feature flags are ready or when they are updated.\n * It'll return a list of feature flags enabled for the user.\n */\n\n }, {\n key: \"onFeatureFlags\",\n value: function onFeatureFlags(callback) {\n this.addFeatureFlagsHandler(callback);\n\n if (this.instance.decideEndpointWasHit) {\n var _this$_prepareFeature2 = this._prepareFeatureFlagsForCallbacks(),\n flags = _this$_prepareFeature2.flags,\n flagVariants = _this$_prepareFeature2.flagVariants;\n\n callback(flags, flagVariants);\n }\n }\n }, {\n key: \"_prepareFeatureFlagsForCallbacks\",\n value: function _prepareFeatureFlagsForCallbacks() {\n var flags = this.getFlags();\n var flagVariants = this.getFlagVariants(); // Return truthy\n\n var truthyFlags = flags.filter(function (flag) {\n return flagVariants[flag];\n });\n var truthyFlagVariants = Object.keys(flagVariants).filter(function (variantKey) {\n return flagVariants[variantKey];\n }).reduce(function (res, key) {\n res[key] = flagVariants[key];\n return res;\n }, {});\n return {\n flags: truthyFlags,\n flagVariants: truthyFlagVariants\n };\n }\n }]);\n\n return PostHogFeatureFlags;\n}();\n\n/*\n * Constants\n */\nvar SET_QUEUE_KEY = '__mps';\nvar SET_ONCE_QUEUE_KEY = '__mpso';\nvar UNSET_QUEUE_KEY = '__mpus';\nvar ADD_QUEUE_KEY = '__mpa';\nvar APPEND_QUEUE_KEY = '__mpap';\nvar REMOVE_QUEUE_KEY = '__mpr';\nvar UNION_QUEUE_KEY = '__mpu'; // This key is deprecated, but we want to check for it to see whether aliasing is allowed.\n\nvar PEOPLE_DISTINCT_ID_KEY = '$people_distinct_id';\nvar ALIAS_ID_KEY = '__alias';\nvar CAMPAIGN_IDS_KEY = '__cmpns';\nvar EVENT_TIMERS_KEY = '__timers';\nvar SESSION_RECORDING_ENABLED_SERVER_SIDE = '$session_recording_enabled_server_side';\nvar CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE = '$console_log_recording_enabled_server_side';\nvar SESSION_ID = '$sesid';\nvar ENABLED_FEATURE_FLAGS = '$enabled_feature_flags';\nvar USER_STATE = '$user_state';\nvar RESERVED_PROPERTIES = [SET_QUEUE_KEY, SET_ONCE_QUEUE_KEY, UNSET_QUEUE_KEY, ADD_QUEUE_KEY, APPEND_QUEUE_KEY, REMOVE_QUEUE_KEY, UNION_QUEUE_KEY, PEOPLE_DISTINCT_ID_KEY, ALIAS_ID_KEY, CAMPAIGN_IDS_KEY, EVENT_TIMERS_KEY, SESSION_RECORDING_ENABLED_SERVER_SIDE, SESSION_ID, ENABLED_FEATURE_FLAGS, USER_STATE];\n/**\n * PostHog Persistence Object\n * @constructor\n */\n\nvar PostHogPersistence = /*#__PURE__*/function () {\n function PostHogPersistence(config) {\n _classCallCheck(this, PostHogPersistence);\n\n // clean chars that aren't accepted by the http spec for cookie values\n // https://datatracker.ietf.org/doc/html/rfc2616#section-2.2\n var token = '';\n\n if (config['token']) {\n token = config['token'].replace(/\\+/g, 'PL').replace(/\\//g, 'SL').replace(/=/g, 'EQ');\n }\n\n this.props = {};\n this.campaign_params_saved = false;\n\n if (config['persistence_name']) {\n this.name = 'ph_' + config['persistence_name'];\n } else {\n this.name = 'ph_' + token + '_posthog';\n }\n\n var storage_type = config['persistence'].toLowerCase();\n\n if (storage_type !== 'cookie' && storage_type.indexOf('localstorage') === -1 && storage_type !== 'memory') {\n logger.critical('Unknown persistence type ' + storage_type + '; falling back to cookie');\n storage_type = config['persistence'] = 'cookie';\n }\n\n if (storage_type === 'localstorage' && localStore.is_supported()) {\n this.storage = localStore;\n } else if (storage_type === 'localstorage+cookie' && localPlusCookieStore.is_supported()) {\n this.storage = localPlusCookieStore;\n } else if (storage_type === 'memory') {\n this.storage = memoryStore;\n } else {\n this.storage = cookieStore;\n }\n\n this.user_state = 'anonymous';\n this.load();\n this.update_config(config);\n this.save();\n }\n\n _createClass(PostHogPersistence, [{\n key: \"properties\",\n value: function properties() {\n var p = {}; // Filter out reserved properties\n\n _each(this.props, function (v, k) {\n if (k === ENABLED_FEATURE_FLAGS && _typeof(v) === 'object') {\n var keys = Object.keys(v);\n\n for (var i = 0; i < keys.length; i++) {\n p[\"$feature/\".concat(keys[i])] = v[keys[i]];\n }\n } else if (!_include(RESERVED_PROPERTIES, k)) {\n p[k] = v;\n }\n });\n\n return p;\n }\n }, {\n key: \"load\",\n value: function load() {\n if (this.disabled) {\n return;\n }\n\n var entry = this.storage.parse(this.name);\n\n if (entry) {\n this.props = _extend({}, entry);\n }\n }\n /**\n * NOTE: Saving frequently causes issues with Recordings and Consent Management Platform (CMP) tools which\n * observe cookie changes, and modify their UI, often causing infinite loops.\n * As such callers of this should ideally check that the data has changed beforehand\n */\n\n }, {\n key: \"save\",\n value: function save() {\n if (this.disabled) {\n return;\n }\n\n this.storage.set(this.name, this.props, this.expire_days, this.cross_subdomain, this.secure);\n }\n }, {\n key: \"remove\",\n value: function remove() {\n // remove both domain and subdomain cookies\n this.storage.remove(this.name, false);\n this.storage.remove(this.name, true);\n } // removes the storage entry and deletes all loaded data\n // forced name for tests\n\n }, {\n key: \"clear\",\n value: function clear() {\n this.remove();\n this.props = {};\n }\n /**\n * @param {Object} props\n * @param {*=} default_value\n * @param {number=} days\n */\n\n }, {\n key: \"register_once\",\n value: function register_once(props, default_value, days) {\n var _this = this;\n\n if (_isObject(props)) {\n if (typeof default_value === 'undefined') {\n default_value = 'None';\n }\n\n this.expire_days = typeof days === 'undefined' ? this.default_expiry : days;\n var hasChanges = false;\n\n _each(props, function (val, prop) {\n if (!_this.props.hasOwnProperty(prop) || _this.props[prop] === default_value) {\n _this.props[prop] = val;\n hasChanges = true;\n }\n });\n\n if (hasChanges) {\n this.save();\n return true;\n }\n }\n\n return false;\n }\n /**\n * @param {Object} props\n * @param {number=} days\n */\n\n }, {\n key: \"register\",\n value: function register(props, days) {\n var _this2 = this;\n\n if (_isObject(props)) {\n this.expire_days = typeof days === 'undefined' ? this.default_expiry : days;\n var hasChanges = false;\n\n _each(props, function (val, prop) {\n if (props.hasOwnProperty(prop) && _this2.props[prop] !== val) {\n _this2.props[prop] = val;\n hasChanges = true;\n }\n });\n\n if (hasChanges) {\n this.save();\n return true;\n }\n }\n\n return false;\n }\n }, {\n key: \"unregister\",\n value: function unregister(prop) {\n if (prop in this.props) {\n delete this.props[prop];\n this.save();\n }\n }\n }, {\n key: \"update_campaign_params\",\n value: function update_campaign_params() {\n if (!this.campaign_params_saved) {\n this.register(_info.campaignParams());\n this.campaign_params_saved = true;\n }\n }\n }, {\n key: \"update_search_keyword\",\n value: function update_search_keyword(referrer) {\n this.register(_info.searchInfo(referrer));\n } // EXPORTED METHOD, we test this directly.\n\n }, {\n key: \"update_referrer_info\",\n value: function update_referrer_info(referrer) {\n this.register({\n $referrer: referrer || this.props['$referrer'] || '$direct',\n $referring_domain: _info.referringDomain(referrer) || this.props['$referring_domain'] || '$direct'\n });\n }\n }, {\n key: \"get_referrer_info\",\n value: function get_referrer_info() {\n return _strip_empty_properties({\n $referrer: this['props']['$referrer'],\n $referring_domain: this['props']['$referring_domain']\n });\n } // safely fills the passed in object with stored properties,\n // does not override any properties defined in both\n // returns the passed in object\n\n }, {\n key: \"safe_merge\",\n value: function safe_merge(props) {\n _each(this.props, function (val, prop) {\n if (!(prop in props)) {\n props[prop] = val;\n }\n });\n\n return props;\n }\n }, {\n key: \"update_config\",\n value: function update_config(config) {\n this.default_expiry = this.expire_days = config['cookie_expiration'];\n this.set_disabled(config['disable_persistence']);\n this.set_cross_subdomain(config['cross_subdomain_cookie']);\n this.set_secure(config['secure_cookie']);\n }\n }, {\n key: \"set_disabled\",\n value: function set_disabled(disabled) {\n this.disabled = disabled;\n\n if (this.disabled) {\n this.remove();\n } else {\n this.save();\n }\n }\n }, {\n key: \"set_cross_subdomain\",\n value: function set_cross_subdomain(cross_subdomain) {\n if (cross_subdomain !== this.cross_subdomain) {\n this.cross_subdomain = cross_subdomain;\n this.remove();\n this.save();\n }\n }\n }, {\n key: \"get_cross_subdomain\",\n value: function get_cross_subdomain() {\n return !!this.cross_subdomain;\n }\n }, {\n key: \"set_secure\",\n value: function set_secure(secure) {\n if (secure !== this.secure) {\n this.secure = secure;\n this.remove();\n this.save();\n }\n }\n }, {\n key: \"set_event_timer\",\n value: function set_event_timer(event_name, timestamp) {\n var timers = this.props[EVENT_TIMERS_KEY] || {};\n timers[event_name] = timestamp;\n this.props[EVENT_TIMERS_KEY] = timers;\n this.save();\n }\n }, {\n key: \"remove_event_timer\",\n value: function remove_event_timer(event_name) {\n var timers = this.props[EVENT_TIMERS_KEY] || {};\n var timestamp = timers[event_name];\n\n if (!_isUndefined(timestamp)) {\n delete this.props[EVENT_TIMERS_KEY][event_name];\n this.save();\n }\n\n return timestamp;\n }\n }, {\n key: \"get_user_state\",\n value: function get_user_state() {\n return this.props[USER_STATE] || 'anonymous';\n }\n }, {\n key: \"set_user_state\",\n value: function set_user_state(state) {\n this.props[USER_STATE] = state;\n this.save();\n }\n }]);\n\n return PostHogPersistence;\n}();\n\nvar replacementImageURI = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNOCAwSDE2TDAgMTZWOEw4IDBaIiBmaWxsPSIjMkQyRDJEIi8+CjxwYXRoIGQ9Ik0xNiA4VjE2SDhMMTYgOFoiIGZpbGw9IiMyRDJEMkQiLz4KPC9zdmc+Cg==';\nvar FULL_SNAPSHOT_EVENT_TYPE = 2;\nvar META_EVENT_TYPE = 4;\nvar INCREMENTAL_SNAPSHOT_EVENT_TYPE = 3;\nvar PLUGIN_EVENT_TYPE = 6;\nvar MUTATION_SOURCE_TYPE = 0;\n/*\n * Check whether a data payload is nearing 5mb. If it is, it checks the data for\n * data URIs (the likely culprit for large payloads). If it finds data URIs, it either replaces\n * it with a generic image (if it's an image) or removes it.\n * @data {object} the rr-web data object\n * @returns {object} the rr-web data object with data uris filtered out\n */\n\nfunction filterDataURLsFromLargeDataObjects(data) {\n if (data && _typeof(data) === 'object') {\n var stringifiedData = JSON.stringify(data); // String length of 5000000 is an approximation of 5mb\n // Note: with compression, this limit may be able to be increased\n // but we're assuming most of the size is from a data uri which\n // is unlikely to be compressed further\n\n if (stringifiedData.length > 5000000) {\n // Regex that matches the pattern for a dataURI with the shape 'data:{mime type};{encoding},{data}'. It:\n // 1) Checks if the pattern starts with 'data:' (potentially, not at the start of the string)\n // 2) Extracts the mime type of the data uri in the first group\n // 3) Determines when the data URI ends.Depending on if it's used in the src tag or css, it can end with a ) or \"\n var dataURIRegex = /data:([\\w\\/\\-\\.]+);(\\w+),([^)\"]*)/gim;\n var matches = stringifiedData.matchAll(dataURIRegex);\n\n var _iterator = _createForOfIteratorHelper(matches),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var match = _step.value;\n\n if (match[1].toLocaleLowerCase().slice(0, 6) === 'image/') {\n stringifiedData = stringifiedData.replace(match[0], replacementImageURI);\n } else {\n stringifiedData = stringifiedData.replace(match[0], '');\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n return JSON.parse(stringifiedData);\n }\n\n return data;\n}\nvar CONSOLE_LOG_PLUGIN_NAME = 'rrweb/console@1'; // The name of the rr-web plugin that emits console logs\n// Console logs can be really large. This function truncates large logs\n// It's a simple function that just truncates long strings.\n// TODO: Ideally this function would have better handling of objects + lists,\n// so they could still be rendered in a pretty way after truncation.\n\nfunction truncateLargeConsoleLogs(event) {\n var MAX_STRING_SIZE = 2000; // Maximum number of characters allowed in a string\n\n var MAX_STRINGS_PER_LOG = 10; // A log can consist of multiple strings (e.g. consol.log('string1', 'string2'))\n\n if (event && _typeof(event) === 'object' && event.type === PLUGIN_EVENT_TYPE && _typeof(event.data) === 'object' && event.data.plugin === CONSOLE_LOG_PLUGIN_NAME) {\n // Note: event.data.payload.payload comes from rr-web, and is an array of strings\n if (event.data.payload.payload.length > MAX_STRINGS_PER_LOG) {\n event.data.payload.payload = event.data.payload.payload.slice(0, MAX_STRINGS_PER_LOG);\n event.data.payload.payload.push('...[truncated]');\n }\n\n var updatedPayload = [];\n\n for (var i = 0; i < event.data.payload.payload.length; i++) {\n if (event.data.payload.payload[i] && // Value can be null\n event.data.payload.payload[i].length > MAX_STRING_SIZE) {\n updatedPayload.push(event.data.payload.payload[i].slice(0, MAX_STRING_SIZE) + '...[truncated]');\n } else {\n updatedPayload.push(event.data.payload.payload[i]);\n }\n }\n\n event.data.payload.payload = updatedPayload;\n return event;\n }\n\n return event;\n}\n\nvar BASE_ENDPOINT = '/e/';\nvar SessionRecording = /*#__PURE__*/function () {\n function SessionRecording(instance) {\n _classCallCheck(this, SessionRecording);\n\n this.instance = instance;\n this.captureStarted = false;\n this.snapshots = [];\n this.emit = false; // Controls whether data is sent to the server or not\n\n this.endpoint = BASE_ENDPOINT;\n this.stopRrweb = undefined;\n this.windowId = null;\n this.sessionId = null;\n this.receivedDecide = false;\n }\n\n _createClass(SessionRecording, [{\n key: \"startRecordingIfEnabled\",\n value: function startRecordingIfEnabled() {\n if (this.isRecordingEnabled()) {\n this.startCaptureAndTrySendingQueuedSnapshots();\n } else {\n this.stopRecording();\n }\n }\n }, {\n key: \"started\",\n value: function started() {\n return this.captureStarted;\n }\n }, {\n key: \"stopRecording\",\n value: function stopRecording() {\n if (this.captureStarted && this.stopRrweb) {\n this.stopRrweb();\n this.stopRrweb = undefined;\n this.captureStarted = false;\n }\n }\n }, {\n key: \"isRecordingEnabled\",\n value: function isRecordingEnabled() {\n var enabled_server_side = !!this.instance.get_property(SESSION_RECORDING_ENABLED_SERVER_SIDE);\n var enabled_client_side = !this.instance.get_config('disable_session_recording');\n return enabled_server_side && enabled_client_side;\n }\n }, {\n key: \"isConsoleLogCaptureEnabled\",\n value: function isConsoleLogCaptureEnabled() {\n var enabled_server_side = !!this.instance.get_property(CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE);\n var enabled_client_side = this.instance.get_config('enable_recording_console_log');\n return enabled_client_side !== null && enabled_client_side !== void 0 ? enabled_client_side : enabled_server_side;\n }\n }, {\n key: \"afterDecideResponse\",\n value: function afterDecideResponse(response) {\n var _response$sessionReco2, _response$sessionReco4;\n\n this.receivedDecide = true;\n\n if (this.instance.persistence) {\n var _response$sessionReco, _this$instance$persis;\n\n this.instance.persistence.register((_this$instance$persis = {}, _defineProperty(_this$instance$persis, SESSION_RECORDING_ENABLED_SERVER_SIDE, !!response['sessionRecording']), _defineProperty(_this$instance$persis, CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE, (_response$sessionReco = response.sessionRecording) === null || _response$sessionReco === void 0 ? void 0 : _response$sessionReco.consoleLogRecordingEnabled), _this$instance$persis));\n }\n\n if ((_response$sessionReco2 = response.sessionRecording) !== null && _response$sessionReco2 !== void 0 && _response$sessionReco2.endpoint) {\n var _response$sessionReco3;\n\n this.endpoint = (_response$sessionReco3 = response.sessionRecording) === null || _response$sessionReco3 === void 0 ? void 0 : _response$sessionReco3.endpoint;\n }\n\n if ((_response$sessionReco4 = response.sessionRecording) !== null && _response$sessionReco4 !== void 0 && _response$sessionReco4.recorderVersion) {\n this.recorderVersion = response.sessionRecording.recorderVersion;\n }\n\n this.startRecordingIfEnabled();\n }\n }, {\n key: \"startCaptureAndTrySendingQueuedSnapshots\",\n value: function startCaptureAndTrySendingQueuedSnapshots() {\n var _this = this;\n\n // Only submit data after we've received a decide response to account for\n // changing endpoints and the feature being disabled on the server side.\n if (this.receivedDecide) {\n this.emit = true;\n this.snapshots.forEach(function (properties) {\n return _this._captureSnapshot(properties);\n });\n }\n\n this._startCapture();\n }\n }, {\n key: \"_startCapture\",\n value: function _startCapture() {\n // According to the rrweb docs, rrweb is not supported on IE11 and below:\n // \"rrweb does not support IE11 and below because it uses the MutationObserver API which was supported by these browsers.\"\n // https://github.com/rrweb-io/rrweb/blob/master/guide.md#compatibility-note\n //\n // However, MutationObserver does exist on IE11, it just doesn't work well and does not detect all changes.\n // Instead, when we load \"recorder.js\", the first JS error is about \"Object.assign\" being undefined.\n // Thus instead of MutationObserver, we look for this function and block recording if it's undefined.\n if (typeof Object.assign === 'undefined') {\n return;\n }\n\n if (!this.captureStarted && !this.instance.get_config('disable_session_recording')) {\n var userSessionRecordingOptions = this.instance.get_config('session_recording'); // Always use the client side setting if given, otherwise use the server side setting\n\n this.recorderVersion = (userSessionRecordingOptions === null || userSessionRecordingOptions === void 0 ? void 0 : userSessionRecordingOptions.recorderVersion) || this.recorderVersion;\n var recorderJS = this.recorderVersion === 'v2' ? 'recorder-v2.js' : 'recorder.js';\n this.captureStarted = true; // If recorder.js is already loaded (if array.full.js snippet is used or posthog-js/dist/recorder is imported), don't load script.\n // Otherwise, remotely import recorder.js from cdn since it hasn't been loaded\n\n if (!this.instance.__loaded_recorder) {\n loadScript(this.instance.get_config('api_host') + \"/static/\".concat(recorderJS, \"?v=\").concat(Config.LIB_VERSION), this._onScriptLoaded.bind(this));\n }\n\n this._onScriptLoaded();\n }\n }\n }, {\n key: \"_updateWindowAndSessionIds\",\n value: function _updateWindowAndSessionIds(event) {\n var _event$data;\n\n // Some recording events are triggered by non-user events (e.g. \"X minutes ago\" text updating on the screen).\n // We don't want to extend the session or trigger a new session in these cases. These events are designated by event\n // type -> incremental update, and source -> mutation.\n var isNotUserInteraction = event.type === INCREMENTAL_SNAPSHOT_EVENT_TYPE && ((_event$data = event.data) === null || _event$data === void 0 ? void 0 : _event$data.source) === MUTATION_SOURCE_TYPE;\n\n var _this$instance$sessio = this.instance.sessionManager.checkAndGetSessionAndWindowId(isNotUserInteraction, event.timestamp),\n windowId = _this$instance$sessio.windowId,\n sessionId = _this$instance$sessio.sessionId; // Event types FullSnapshot and Meta mean we're already in the process of sending a full snapshot\n\n\n if ((this.windowId !== windowId || this.sessionId !== sessionId) && [FULL_SNAPSHOT_EVENT_TYPE, META_EVENT_TYPE].indexOf(event.type) === -1) {\n var _this$rrwebRecord;\n\n (_this$rrwebRecord = this.rrwebRecord) === null || _this$rrwebRecord === void 0 ? void 0 : _this$rrwebRecord.takeFullSnapshot();\n }\n\n this.windowId = windowId;\n this.sessionId = sessionId;\n }\n }, {\n key: \"_onScriptLoaded\",\n value: function _onScriptLoaded() {\n var _this$rrwebRecord2,\n _this2 = this;\n\n // rrweb config info: https://github.com/rrweb-io/rrweb/blob/7d5d0033258d6c29599fb08412202d9a2c7b9413/src/record/index.ts#L28\n var sessionRecordingOptions = {\n // select set of rrweb config options we expose to our users\n // see https://github.com/rrweb-io/rrweb/blob/master/guide.md\n blockClass: 'ph-no-capture',\n blockSelector: undefined,\n ignoreClass: 'ph-ignore-input',\n maskAllInputs: true,\n maskInputOptions: {},\n maskInputFn: undefined,\n slimDOMOptions: {},\n collectFonts: false,\n inlineStylesheet: true\n }; // We switched from loading all of rrweb to just the record part, but\n // keep backwards compatibility if someone hasn't upgraded PostHog\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n\n this.rrwebRecord = window.rrweb ? window.rrweb.record : window.rrwebRecord; // only allows user to set our 'allowlisted' options\n\n var userSessionRecordingOptions = this.instance.get_config('session_recording');\n\n for (var _i = 0, _Object$entries = Object.entries(userSessionRecordingOptions || {}); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n key = _Object$entries$_i[0],\n value = _Object$entries$_i[1];\n\n if (key in sessionRecordingOptions) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n sessionRecordingOptions[key] = value;\n }\n }\n\n this.stopRrweb = (_this$rrwebRecord2 = this.rrwebRecord) === null || _this$rrwebRecord2 === void 0 ? void 0 : _this$rrwebRecord2.call(this, _objectSpread2({\n emit: function emit(event) {\n event = truncateLargeConsoleLogs(filterDataURLsFromLargeDataObjects(event));\n\n _this2._updateWindowAndSessionIds(event);\n\n var properties = {\n $snapshot_data: event,\n $session_id: _this2.sessionId,\n $window_id: _this2.windowId\n };\n\n _this2.instance._captureMetrics.incr('rrweb-record');\n\n _this2.instance._captureMetrics.incr(\"rrweb-record-\".concat(event.type));\n\n if (_this2.emit) {\n _this2._captureSnapshot(properties);\n } else {\n _this2.snapshots.push(properties);\n }\n },\n plugins: window.rrwebConsoleRecord && this.isConsoleLogCaptureEnabled() ? [window.rrwebConsoleRecord.getRecordConsolePlugin()] : []\n }, sessionRecordingOptions)); // :TRICKY: rrweb does not capture navigation within SPA-s, so hook into our $pageview events to get access to all events.\n // Dropping the initial event is fine (it's always captured by rrweb).\n\n this.instance._addCaptureHook(function (eventName) {\n if (eventName === '$pageview') {\n var _this2$rrwebRecord;\n\n (_this2$rrwebRecord = _this2.rrwebRecord) === null || _this2$rrwebRecord === void 0 ? void 0 : _this2$rrwebRecord.addCustomEvent('$pageview', {\n href: window.location.href\n });\n }\n });\n }\n }, {\n key: \"_captureSnapshot\",\n value: function _captureSnapshot(properties) {\n // :TRICKY: Make sure we batch these requests, use a custom endpoint and don't truncate the strings.\n this.instance.capture('$snapshot', properties, {\n transport: 'XHR',\n method: 'POST',\n endpoint: this.endpoint,\n _noTruncate: true,\n _batchKey: 'sessionRecording',\n _metrics: {\n rrweb_full_snapshot: properties.$snapshot_data.type === FULL_SNAPSHOT_EVENT_TYPE\n }\n });\n }\n }]);\n\n return SessionRecording;\n}();\n\nvar PERFORMANCE_EVENTS_MAPPING = {\n // BASE_PERFORMANCE_EVENT_COLUMNS\n entryType: 0,\n timeOrigin: 1,\n name: 2,\n // RESOURCE_EVENT_COLUMNS\n startTime: 3,\n redirectStart: 4,\n redirectEnd: 5,\n workerStart: 6,\n fetchStart: 7,\n domainLookupStart: 8,\n domainLookupEnd: 9,\n connectStart: 10,\n secureConnectionStart: 11,\n connectEnd: 12,\n requestStart: 13,\n responseStart: 14,\n responseEnd: 15,\n decodedBodySize: 16,\n encodedBodySize: 17,\n initiatorType: 18,\n nextHopProtocol: 19,\n renderBlockingStatus: 20,\n responseStatus: 21,\n transferSize: 22,\n // LARGEST_CONTENTFUL_PAINT_EVENT_COLUMNS\n element: 23,\n renderTime: 24,\n loadTime: 25,\n size: 26,\n id: 27,\n url: 28,\n // NAVIGATION_EVENT_COLUMNS\n domComplete: 29,\n domContentLoadedEvent: 30,\n domInteractive: 31,\n loadEventEnd: 32,\n loadEventStart: 33,\n redirectCount: 34,\n navigationType: 35,\n unloadEventEnd: 36,\n unloadEventStart: 37,\n // Added after v1\n duration: 39,\n timestamp: 40 // NOTE: CURRENTLY UNSUPPORTED\n // EVENT_TIMING_EVENT_COLUMNS\n // processingStart: null,\n // processingEnd: null,\n // MARK_AND_MEASURE_EVENT_COLUMNS\n // detail: null,\n\n};\nvar ENTRY_TYPES_TO_OBSERVE = [// 'event', // This is too noisy as it covers all browser events\n'first-input', // 'mark', // Mark is used too liberally. We would need to filter for specific marks\n// 'measure', // Measure is used too liberally. We would need to filter for specific measures\n'navigation', 'paint', 'resource'];\nvar PERFORMANCE_INGESTION_ENDPOINT = '/e/'; // Don't monitor posthog paths because then events cause performance events which are events and the snake eats its tail 😱\n\nvar POSTHOG_PATHS_TO_IGNORE = ['/s/', PERFORMANCE_INGESTION_ENDPOINT];\nvar WebPerformanceObserver = /*#__PURE__*/function () {\n function WebPerformanceObserver(instance) {\n _classCallCheck(this, WebPerformanceObserver);\n\n this.instance = instance;\n }\n\n _createClass(WebPerformanceObserver, [{\n key: \"startObservingIfEnabled\",\n value: function startObservingIfEnabled() {\n if (this.isEnabled()) {\n this.startObserving();\n } else {\n this.stopObserving();\n }\n }\n }, {\n key: \"startObserving\",\n value: function startObserving() {\n var _this = this;\n\n if (this.observer) {\n return;\n }\n\n try {\n this.observer = new PerformanceObserver(function (list) {\n list.getEntries().forEach(function (entry) {\n _this._capturePerformanceEvent(entry);\n });\n });\n var entryTypes = PerformanceObserver.supportedEntryTypes.filter(function (x) {\n return ENTRY_TYPES_TO_OBSERVE.includes(x);\n });\n entryTypes.forEach(function (entryType) {\n var _this$observer;\n\n (_this$observer = _this.observer) === null || _this$observer === void 0 ? void 0 : _this$observer.observe({\n type: entryType,\n buffered: true\n });\n });\n } catch (e) {\n console.error('PostHog failed to start performance observer', e);\n this.stopObserving();\n }\n }\n }, {\n key: \"stopObserving\",\n value: function stopObserving() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = undefined;\n }\n }\n }, {\n key: \"isObserving\",\n value: function isObserving() {\n return !!this.observer;\n }\n }, {\n key: \"isEnabled\",\n value: function isEnabled() {\n var _ref, _this$instance$get_co;\n\n return (_ref = (_this$instance$get_co = this.instance.get_config('capture_performance')) !== null && _this$instance$get_co !== void 0 ? _this$instance$get_co : this.remoteEnabled) !== null && _ref !== void 0 ? _ref : false;\n }\n }, {\n key: \"afterDecideResponse\",\n value: function afterDecideResponse(response) {\n this.remoteEnabled = response.capturePerformance || false;\n\n if (this.isEnabled()) {\n this.startObserving();\n }\n }\n }, {\n key: \"_capturePerformanceEvent\",\n value: function _capturePerformanceEvent(event) {\n // NOTE: We don't want to capture our own request events.\n if (event.name.startsWith(this.instance.get_config('api_host'))) {\n var path = event.name.replace(this.instance.get_config('api_host'), '');\n\n if (POSTHOG_PATHS_TO_IGNORE.find(function (x) {\n return path.startsWith(x);\n })) {\n return;\n }\n }\n\n var eventJson = event.toJSON();\n var properties = {}; // kudos to sentry javascript sdk for excellent background on why to use Date.now() here\n // https://github.com/getsentry/sentry-javascript/blob/e856e40b6e71a73252e788cd42b5260f81c9c88e/packages/utils/src/time.ts#L70\n\n var timeOrigin = Math.floor(Date.now() - performance.now());\n properties[PERFORMANCE_EVENTS_MAPPING['timeOrigin']] = timeOrigin; // clickhouse can't ingest timestamps that are floats\n // (in this case representing fractions of a millisecond we don't care about anyway)\n\n properties[PERFORMANCE_EVENTS_MAPPING['timestamp']] = Math.floor(timeOrigin + event.startTime);\n\n for (var _key in PERFORMANCE_EVENTS_MAPPING) {\n if (eventJson[_key] !== undefined) {\n properties[PERFORMANCE_EVENTS_MAPPING[_key]] = eventJson[_key];\n }\n }\n\n this.capturePerformanceEvent(properties);\n\n if (exposesServerTiming(event)) {\n var _iterator = _createForOfIteratorHelper(event.serverTiming),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _this$capturePerforma;\n\n var timing = _step.value;\n this.capturePerformanceEvent((_this$capturePerforma = {}, _defineProperty(_this$capturePerforma, PERFORMANCE_EVENTS_MAPPING['timeOrigin'], timeOrigin), _defineProperty(_this$capturePerforma, PERFORMANCE_EVENTS_MAPPING['timestamp'], Math.floor(timeOrigin + event.startTime)), _defineProperty(_this$capturePerforma, PERFORMANCE_EVENTS_MAPPING['name'], timing.name), _defineProperty(_this$capturePerforma, PERFORMANCE_EVENTS_MAPPING['duration'], timing.duration), _defineProperty(_this$capturePerforma, PERFORMANCE_EVENTS_MAPPING['entryType'], 'serverTiming'), _this$capturePerforma));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }\n /**\n * :TRICKY: Make sure we batch these requests, and don't truncate the strings.\n */\n\n }, {\n key: \"capturePerformanceEvent\",\n value: function capturePerformanceEvent(properties) {\n this.instance.capture('$performance_event', properties, {\n transport: 'XHR',\n method: 'POST',\n endpoint: PERFORMANCE_INGESTION_ENDPOINT,\n _noTruncate: true,\n _batchKey: 'performanceEvent'\n });\n }\n }]);\n\n return WebPerformanceObserver;\n}();\n/**\n * Check if this PerformanceEntry is either a PerformanceResourceTiming or a PerformanceNavigationTiming\n * NB PerformanceNavigationTiming extends PerformanceResourceTiming\n * Here we don't care which interface it implements as both expose `serverTimings`\n */\n\nvar exposesServerTiming = function exposesServerTiming(event) {\n return event.entryType === 'navigation' || event.entryType === 'resource';\n};\n\nvar Decide = /*#__PURE__*/function () {\n function Decide(instance) {\n _classCallCheck(this, Decide);\n\n this.instance = instance; // don't need to wait for `decide` to return if flags were provided on initialisation\n\n this.instance.decideEndpointWasHit = this.instance._hasBootstrappedFeatureFlags();\n }\n\n _createClass(Decide, [{\n key: \"call\",\n value: function call() {\n var _this = this;\n\n /*\n Calls /decide endpoint to fetch options for autocapture, session recording, feature flags & compression.\n */\n var json_data = JSON.stringify({\n token: this.instance.get_config('token'),\n distinct_id: this.instance.get_distinct_id(),\n groups: this.instance.getGroups()\n });\n\n var encoded_data = _base64Encode(json_data);\n\n this.instance._send_request(\"\".concat(this.instance.get_config('api_host'), \"/decide/?v=3\"), {\n data: encoded_data,\n verbose: true\n }, {\n method: 'POST'\n }, function (response) {\n return _this.parseDecideResponse(response);\n });\n }\n }, {\n key: \"parseDecideResponse\",\n value: function parseDecideResponse(response) {\n var _this2 = this,\n _this$instance$sessio,\n _this$instance$webPer;\n\n if ((response === null || response === void 0 ? void 0 : response.status) === 0) {\n console.error('Failed to fetch feature flags from PostHog.');\n return;\n }\n\n this.instance.decideEndpointWasHit = true;\n\n if (!(document && document.body)) {\n console.log('document not ready yet, trying again in 500 milliseconds...');\n setTimeout(function () {\n _this2.parseDecideResponse(response);\n }, 500);\n return;\n }\n\n this.instance.toolbar.afterDecideResponse(response);\n (_this$instance$sessio = this.instance.sessionRecording) === null || _this$instance$sessio === void 0 ? void 0 : _this$instance$sessio.afterDecideResponse(response);\n autocapture.afterDecideResponse(response, this.instance);\n (_this$instance$webPer = this.instance.webPerformance) === null || _this$instance$webPer === void 0 ? void 0 : _this$instance$webPer.afterDecideResponse(response);\n this.instance.featureFlags.receivedFeatureFlags(response);\n this.instance['compression'] = {};\n\n if (response['supportedCompression'] && !this.instance.get_config('disable_compression')) {\n var compression = {};\n\n var _iterator = _createForOfIteratorHelper(response['supportedCompression']),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var method = _step.value;\n compression[method] = true;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this.instance['compression'] = compression;\n }\n\n if (response['siteApps']) {\n if (this.instance.get_config('opt_in_site_apps')) {\n var apiHost = this.instance.get_config('api_host');\n\n var _iterator2 = _createForOfIteratorHelper(response['siteApps']),\n _step2;\n\n try {\n var _loop = function _loop() {\n var _step2$value = _step2.value,\n id = _step2$value.id,\n url = _step2$value.url;\n var script = document.createElement('script');\n script.src = [apiHost, apiHost[apiHost.length - 1] === '/' && url[0] === '/' ? url.substring(1) : url].join('');\n\n script.onerror = function (e) {\n console.error(\"Error while initializing PostHog app with config id \".concat(id), e);\n };\n\n window[\"__$$ph_site_app_\".concat(id)] = _this2.instance;\n document.body.appendChild(script);\n };\n\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n _loop();\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n } else if (response['siteApps'].length > 0) {\n console.error('PostHog site apps are disabled. Enable the \"opt_in_site_apps\" config to proceed.');\n }\n }\n }\n }]);\n\n return Decide;\n}();\n\nvar POSTHOG_MANAGED_HOSTS = ['https://app.posthog.com', 'https://eu.posthog.com'];\n\nvar _excluded = [\"source\"];\nvar Toolbar = /*#__PURE__*/function () {\n function Toolbar(instance) {\n _classCallCheck(this, Toolbar);\n\n this.instance = instance;\n }\n\n _createClass(Toolbar, [{\n key: \"afterDecideResponse\",\n value: function afterDecideResponse(response) {\n var toolbarParams = response['toolbarParams'] || response['editorParams'] || (response['toolbarVersion'] ? {\n toolbarVersion: response['toolbarVersion']\n } : {});\n\n if (response['isAuthenticated'] && toolbarParams['toolbarVersion'] && toolbarParams['toolbarVersion'].indexOf('toolbar') === 0) {\n this.loadToolbar(_objectSpread2(_objectSpread2({}, toolbarParams), {}, {\n apiURL: this.instance.get_config('api_host')\n }));\n }\n }\n /**\n * To load the toolbar, we need an access token and other state. That state comes from one of three places:\n * 1. In the URL hash params\n * 2. From session storage under the key `toolbarParams` if the toolbar was initialized on a previous page\n */\n\n }, {\n key: \"maybeLoadToolbar\",\n value: function maybeLoadToolbar() {\n var location = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.location;\n var localStorage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var history = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : window.history;\n\n try {\n // Before running the code we check if we can access localStorage, if not we opt-out\n if (!localStorage) {\n try {\n window.localStorage.setItem('test', 'test');\n window.localStorage.removeItem('test');\n } catch (error) {\n return false;\n } // If localStorage was undefined, and localStorage is supported we set the default value\n\n\n localStorage = window.localStorage;\n }\n\n var stateHash = _getHashParam(location.hash, '__posthog') || _getHashParam(location.hash, 'state');\n\n var state = stateHash ? JSON.parse(decodeURIComponent(stateHash)) : null;\n var parseFromUrl = state && state['action'] === 'ph_authorize';\n var toolbarParams;\n\n if (parseFromUrl) {\n // happens if they are initializing the toolbar using an old snippet\n toolbarParams = state;\n toolbarParams.source = 'url';\n\n if (toolbarParams && Object.keys(toolbarParams).length > 0) {\n if (state['desiredHash']) {\n // hash that was in the url before the redirect\n location.hash = state['desiredHash'];\n } else if (history) {\n history.replaceState('', document.title, location.pathname + location.search); // completely remove hash\n } else {\n location.hash = ''; // clear hash (but leaves # unfortunately)\n }\n }\n } else {\n // get credentials from localStorage from a previous initialzation\n toolbarParams = JSON.parse(localStorage.getItem('_postHogToolbarParams') || '{}');\n toolbarParams.source = 'localstorage'; // delete \"add-action\" or other intent from toolbarParams, otherwise we'll have the same intent\n // every time we open the page (e.g. you just visiting your own site an hour later)\n\n delete toolbarParams.userIntent;\n }\n\n if (!toolbarParams.apiURL) {\n toolbarParams.apiURL = this.instance.get_config('api_host');\n }\n\n if (toolbarParams['token'] && this.instance.get_config('token') === toolbarParams['token']) {\n this.loadToolbar(toolbarParams);\n return true;\n } else {\n return false;\n }\n } catch (e) {\n return false;\n }\n }\n }, {\n key: \"loadToolbar\",\n value: function loadToolbar(params) {\n var _this = this;\n\n if (window['_postHogToolbarLoaded']) {\n return false;\n } // only load the toolbar once, even if there are multiple instances of PostHogLib\n window['_postHogToolbarLoaded'] = true; // the toolbar does not use the `jsURL` as that route is cached for 24 hours.\n // By design array.js, recorder.js, and toolbar.js are served from Django with no or limited caching, not from our CDN\n // Django respects the query params for caching, returning a 304 if appropriate\n\n var host = (params === null || params === void 0 ? void 0 : params['apiURL']) || this.instance.get_config('api_host');\n var timestampToNearestThirtySeconds = Math.floor(Date.now() / 30000) * 30000;\n var toolbarUrl = \"\".concat(host).concat(host.endsWith('/') ? '' : '/', \"static/toolbar.js?_ts=\").concat(timestampToNearestThirtySeconds);\n var disableToolbarMetrics = !POSTHOG_MANAGED_HOSTS.includes(this.instance.get_config('api_host')) && this.instance.get_config('advanced_disable_toolbar_metrics');\n\n var toolbarParams = _objectSpread2(_objectSpread2({\n apiURL: host,\n // defaults to api_host from the instance config if nothing else set\n jsURL: host,\n // defaults to api_host from the instance config if nothing else set\n token: this.instance.get_config('token')\n }, params), disableToolbarMetrics ? {\n instrument: false\n } : {});\n\n toolbarParams.source;\n var paramsToPersist = _objectWithoutProperties(toolbarParams, _excluded); // eslint-disable-line\n\n\n window.localStorage.setItem('_postHogToolbarParams', JSON.stringify(paramsToPersist));\n loadScript(toolbarUrl, function () {\n (window['ph_load_toolbar'] || window['ph_load_editor'])(toolbarParams, _this.instance);\n }); // Turbolinks doesn't fire an onload event but does replace the entire body, including the toolbar.\n // Thus, we ensure the toolbar is only loaded inside the body, and then reloaded on turbolinks:load.\n\n _register_event(window, 'turbolinks:load', function () {\n window['_postHogToolbarLoaded'] = false;\n\n _this.loadToolbar(toolbarParams);\n });\n\n return true;\n }\n /** @deprecated Use \"loadToolbar\" instead. */\n\n }, {\n key: \"_loadEditor\",\n value: function _loadEditor(params) {\n return this.loadToolbar(params);\n }\n /** @deprecated Use \"maybeLoadToolbar\" instead. */\n\n }, {\n key: \"maybeLoadEditor\",\n value: function maybeLoadEditor() {\n var location = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.location;\n var localStorage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var history = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : window.history;\n return this.maybeLoadToolbar(location, localStorage, history);\n }\n }]);\n\n return Toolbar;\n}();\n\nvar RequestQueueScaffold = /*#__PURE__*/function () {\n // flag to continue to recursively poll or not\n // to track empty polls\n // to become interval for reference to clear later\n function RequestQueueScaffold() {\n var pollInterval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 3000;\n\n _classCallCheck(this, RequestQueueScaffold);\n\n this.isPolling = true; // flag to continue to recursively poll or not\n\n this._event_queue = [];\n this._empty_queue_count = 0; // to track empty polls\n\n this._poller = undefined; // to become interval for reference to clear later\n\n this._pollInterval = pollInterval;\n }\n\n _createClass(RequestQueueScaffold, [{\n key: \"setPollInterval\",\n value: function setPollInterval(interval) {\n this._pollInterval = interval; // Reset interval if running already\n\n if (this.isPolling) {\n this.poll();\n }\n } // // eslint-disable-next-line no-unused-vars\n // enqueue(_requestData: Record): void {\n // return\n // }\n\n }, {\n key: \"poll\",\n value: function poll() {\n return;\n }\n }, {\n key: \"unload\",\n value: function unload() {\n return;\n }\n }, {\n key: \"getTime\",\n value: function getTime() {\n return new Date().getTime();\n }\n }]);\n\n return RequestQueueScaffold;\n}();\n\nvar RequestQueue = /*#__PURE__*/function (_RequestQueueScaffold) {\n _inherits(RequestQueue, _RequestQueueScaffold);\n\n var _super = _createSuper(RequestQueue);\n\n function RequestQueue(captureMetrics, handlePollRequest) {\n var _this;\n\n var pollInterval = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3000;\n\n _classCallCheck(this, RequestQueue);\n\n _this = _super.call(this, pollInterval);\n _this.handlePollRequest = handlePollRequest;\n _this.captureMetrics = captureMetrics;\n return _this;\n }\n\n _createClass(RequestQueue, [{\n key: \"enqueue\",\n value: function enqueue(url, data, options) {\n this.captureMetrics.incr('batch-enqueue');\n\n this._event_queue.push({\n url: url,\n data: data,\n options: options\n });\n\n if (!this.isPolling) {\n this.isPolling = true;\n this.poll();\n }\n }\n }, {\n key: \"poll\",\n value: function poll() {\n var _this2 = this;\n\n clearTimeout(this._poller);\n this._poller = setTimeout(function () {\n if (_this2._event_queue.length > 0) {\n var requests = _this2.formatQueue();\n\n var _loop = function _loop(key) {\n var _requests$key = requests[key],\n url = _requests$key.url,\n data = _requests$key.data,\n options = _requests$key.options;\n\n _each(data, function (_, dataKey) {\n data[dataKey]['offset'] = Math.abs(data[dataKey]['timestamp'] - _this2.getTime());\n delete data[dataKey]['timestamp'];\n });\n\n _this2.handlePollRequest(url, data, options);\n\n _this2.captureMetrics.incr('batch-requests');\n\n _this2.captureMetrics.incr(\"batch-requests-\".concat(url.slice(url.length - 2)));\n\n _this2.captureMetrics.incr('batch-handle', data.length);\n\n _this2.captureMetrics.incr(\"batch-handle-\".concat(url.slice(url.length - 2)), data.length);\n };\n\n for (var key in requests) {\n _loop(key);\n }\n\n _this2._event_queue.length = 0; // flush the _event_queue\n\n _this2._empty_queue_count = 0;\n } else {\n _this2._empty_queue_count++;\n }\n /**\n * _empty_queue_count will increment each time the queue is polled\n * and it is empty. To avoid empty polling (user went idle, stepped away from comp)\n * we can turn it off with the isPolling flag.\n *\n * Polling will be re enabled when the next time PostHogLib.capture is called with\n * an event that should be added to the event queue.\n */\n\n\n if (_this2._empty_queue_count > 4) {\n _this2.isPolling = false;\n _this2._empty_queue_count = 0;\n }\n\n if (_this2.isPolling) {\n _this2.poll();\n }\n }, this._pollInterval);\n }\n }, {\n key: \"updateUnloadMetrics\",\n value: function updateUnloadMetrics() {\n var requests = this.formatQueue();\n\n for (var key in requests) {\n var _requests$key2 = requests[key],\n _url = _requests$key2.url,\n _data = _requests$key2.data;\n this.captureMetrics.incr('batch-unload-requests');\n this.captureMetrics.incr(\"batch-unload-requests-\".concat(_url.slice(_url.length - 2)));\n this.captureMetrics.incr('batch-unload', _data.length);\n this.captureMetrics.incr(\"batch-unload-\".concat(_url.slice(_url.length - 2)), _data.length);\n }\n }\n }, {\n key: \"unload\",\n value: function unload() {\n var _this3 = this;\n\n clearTimeout(this._poller);\n var requests = this._event_queue.length > 0 ? this.formatQueue() : {};\n this._event_queue.length = 0;\n var requestValues = Object.values(requests); // Always force events to be sent before recordings, as events are more important, and recordings are bigger and thus less likely to arrive\n\n var sortedRequests = [].concat(_toConsumableArray(requestValues.filter(function (r) {\n return r.url.indexOf('/e') === 0;\n })), _toConsumableArray(requestValues.filter(function (r) {\n return r.url.indexOf('/e') !== 0;\n })));\n sortedRequests.map(function (_ref) {\n var url = _ref.url,\n data = _ref.data,\n options = _ref.options;\n\n _this3.handlePollRequest(url, data, _objectSpread2(_objectSpread2({}, options), {}, {\n transport: 'sendBeacon'\n }));\n });\n }\n }, {\n key: \"formatQueue\",\n value: function formatQueue() {\n var requests = {};\n\n _each(this._event_queue, function (request) {\n var url = request.url,\n data = request.data,\n options = request.options;\n var key = (options ? options._batchKey : null) || url;\n\n if (requests[key] === undefined) {\n requests[key] = {\n data: [],\n url: url,\n options: options\n };\n } // :TRICKY: Metrics-only code\n\n\n if (options && requests[key].options && requests[key].options._metrics && !requests[key].options._metrics['rrweb_full_snapshot']) {\n requests[key].options._metrics['rrweb_full_snapshot'] = options._metrics['rrweb_full_snapshot'];\n }\n\n requests[key].data.push(data);\n });\n\n return requests;\n }\n }]);\n\n return RequestQueue;\n}(RequestQueueScaffold);\n\nvar CaptureMetrics = /*#__PURE__*/function () {\n function CaptureMetrics(enabled) {\n _classCallCheck(this, CaptureMetrics);\n\n this.enabled = enabled;\n this.metrics = {};\n }\n\n _createClass(CaptureMetrics, [{\n key: \"incr\",\n value: function incr(key) {\n var by = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n if (this.enabled) {\n key = \"phjs-\".concat(key);\n this.metrics[key] = (this.metrics[key] || 0) + by;\n }\n }\n }, {\n key: \"decr\",\n value: function decr(key) {\n if (this.enabled) {\n key = \"phjs-\".concat(key);\n this.metrics[key] = (this.metrics[key] || 0) - 1;\n }\n }\n }]);\n\n return CaptureMetrics;\n}();\n\n// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n\n\nvar u8 = Uint8Array,\n u16 = Uint16Array,\n u32 = Uint32Array; // fixed length extra bits\n\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0,\n/* unused */\n0, 0,\n/* impossible */\n0]); // fixed distance extra bits\n// see fleb note\n\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13,\n/* unused */\n0, 0]); // code length index map\n\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); // get base, reverse index map from extra bits\n\nvar freb = function freb(eb, start) {\n var b = new u16(31);\n\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n } // numbers here are at max 18 bits\n\n\n var r = new u32(b[30]);\n\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = j - b[i] << 5 | i;\n }\n }\n\n return [b, r];\n};\n\nvar _a = freb(fleb, 2),\n fl = _a[0],\n revfl = _a[1]; // we can ignore the fact that the other numbers are wrong; they never happen anyway\n\n\nfl[28] = 258, revfl[258] = 28;\n\nvar _b = freb(fdeb, 0),\n revfd = _b[1]; // map of value to reverse (assuming 16 bits)\n\n\nvar rev = new u16(32768);\n\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = (i & 0xAAAA) >>> 1 | (i & 0x5555) << 1;\n x = (x & 0xCCCC) >>> 2 | (x & 0x3333) << 2;\n x = (x & 0xF0F0) >>> 4 | (x & 0x0F0F) << 4;\n rev[i] = ((x & 0xFF00) >>> 8 | (x & 0x00FF) << 8) >>> 1;\n} // create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\n\n\nvar hMap = function hMap(cd, mb, r) {\n var s = cd.length; // index\n\n var i = 0; // u16 \"map\": index -> # of codes with bit length = index\n\n var l = new u16(mb); // length of cd must be 288 (total # of codes)\n\n for (; i < s; ++i) {\n ++l[cd[i] - 1];\n } // u16 \"map\": index -> minimum code for bit length = index\n\n\n var le = new u16(mb);\n\n for (i = 0; i < mb; ++i) {\n le[i] = le[i - 1] + l[i - 1] << 1;\n }\n\n var co;\n\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb); // bits to remove for reverser\n\n var rvb = 15 - mb;\n\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = i << 4 | cd[i]; // free bits\n\n var r_1 = mb - cd[i]; // start value\n\n var v = le[cd[i] - 1]++ << r_1; // m is end value\n\n for (var m = v | (1 << r_1) - 1; v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n } else {\n co = new u16(s);\n\n for (i = 0; i < s; ++i) {\n co[i] = rev[le[cd[i] - 1]++] >>> 15 - cd[i];\n }\n }\n\n return co;\n}; // fixed length tree\n\n\nvar flt = new u8(288);\n\nfor (var i = 0; i < 144; ++i) {\n flt[i] = 8;\n}\n\nfor (var i = 144; i < 256; ++i) {\n flt[i] = 9;\n}\n\nfor (var i = 256; i < 280; ++i) {\n flt[i] = 7;\n}\n\nfor (var i = 280; i < 288; ++i) {\n flt[i] = 8;\n} // fixed distance tree\n\n\nvar fdt = new u8(32);\n\nfor (var i = 0; i < 32; ++i) {\n fdt[i] = 5;\n} // fixed length map\n\n\nvar flm = /*#__PURE__*/hMap(flt, 9, 0);\n // fixed distance map\n\nvar fdm = /*#__PURE__*/hMap(fdt, 5, 0);\n // find max of array\n\n\nvar shft = function shft(p) {\n return (p / 8 >> 0) + (p & 7 && 1);\n}; // typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\n\n\nvar slc = function slc(v, s, e) {\n if (s == null || s < 0) s = 0;\n if (e == null || e > v.length) e = v.length; // can't use .constructor in case user-supplied\n\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n}; // expands raw DEFLATE data\n\n\nvar wbits = function wbits(d, p, v) {\n v <<= p & 7;\n var o = p / 8 >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n}; // starting at p, write the minimum number of bits (>8) that can hold v to d\n\n\nvar wbits16 = function wbits16(d, p, v) {\n v <<= p & 7;\n var o = p / 8 >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n}; // creates code lengths from a frequency table\n\n\nvar hTree = function hTree(d, mb) {\n // Need extra info to make a tree\n var t = [];\n\n for (var i = 0; i < d.length; ++i) {\n if (d[i]) t.push({\n s: i,\n f: d[i]\n });\n }\n\n var s = t.length;\n var t2 = t.slice();\n if (!s) return [new u8(0), 0];\n\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n\n t.sort(function (a, b) {\n return a.f - b.f;\n }); // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n\n t.push({\n s: -1,\n f: 25001\n });\n var l = t[0],\n r = t[1],\n i0 = 0,\n i1 = 1,\n i2 = 2;\n t[0] = {\n s: -1,\n f: l.f + r.f,\n l: l,\n r: r\n }; // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = {\n s: -1,\n f: l.f + r.f,\n l: l,\n r: r\n };\n }\n\n var maxSym = t2[0].s;\n\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym) maxSym = t2[i].s;\n } // code lengths\n\n\n var tr = new u16(maxSym + 1); // max bits in tree\n\n var mbt = ln(t[i1 - 1], tr, 0);\n\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0,\n dt = 0; // left cost\n\n var lft = mbt - mb,\n cst = 1 << lft;\n t2.sort(function (a, b) {\n return tr[b.s] - tr[a.s] || a.f - b.f;\n });\n\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n\n if (tr[i2_1] > mb) {\n dt += cst - (1 << mbt - tr[i2_1]);\n tr[i2_1] = mb;\n } else break;\n }\n\n dt >>>= lft;\n\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb) dt -= 1 << mb - tr[i2_2]++ - 1;else ++i;\n }\n\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n\n mbt = mb;\n }\n\n return [new u8(tr), mbt];\n}; // get the max length and assign length codes\n\n\nvar ln = function ln(n, l, d) {\n return n.s == -1 ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1)) : l[n.s] = d;\n}; // length codes generation\n\n\nvar lc = function lc(c) {\n var s = c.length; // Note that the semicolon was intentional\n\n while (s && !c[--s]) {\n }\n\n var cl = new u16(++s); // ind num streak\n\n var cli = 0,\n cln = c[0],\n cls = 1;\n\n var w = function w(v) {\n cl[cli++] = v;\n };\n\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s) ++cls;else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138) {\n w(32754);\n }\n\n if (cls > 2) {\n w(cls > 10 ? cls - 11 << 5 | 28690 : cls - 3 << 5 | 12305);\n cls = 0;\n }\n } else if (cls > 3) {\n w(cln), --cls;\n\n for (; cls > 6; cls -= 6) {\n w(8304);\n }\n\n if (cls > 2) w(cls - 3 << 5 | 8208), cls = 0;\n }\n\n while (cls--) {\n w(cln);\n }\n\n cls = 1;\n cln = c[i];\n }\n }\n\n return [cl.subarray(0, cli), s];\n}; // calculate the length of output from tree, code lengths\n\n\nvar clen = function clen(cf, cl) {\n var l = 0;\n\n for (var i = 0; i < cl.length; ++i) {\n l += cf[i] * cl[i];\n }\n\n return l;\n}; // writes a fixed block\n// returns the new bit pos\n\n\nvar wfblk = function wfblk(out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n\n for (var i = 0; i < s; ++i) {\n out[o + i + 4] = dat[i];\n }\n\n return (o + 4 + s) * 8;\n}; // writes a block\n\n\nvar wblk = function wblk(dat, out, _final2, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, _final2);\n ++lf[256];\n\n var _a = hTree(lf, 15),\n dlt = _a[0],\n mlb = _a[1];\n\n var _b = hTree(df, 15),\n ddt = _b[0],\n mdb = _b[1];\n\n var _c = lc(dlt),\n lclt = _c[0],\n nlc = _c[1];\n\n var _d = lc(ddt),\n lcdt = _d[0],\n ndc = _d[1];\n\n var lcfreq = new u16(19);\n\n for (var i = 0; i < lclt.length; ++i) {\n lcfreq[lclt[i] & 31]++;\n }\n\n for (var i = 0; i < lcdt.length; ++i) {\n lcfreq[lcdt[i] & 31]++;\n }\n\n var _e = hTree(lcfreq, 7),\n lct = _e[0],\n mlcb = _e[1];\n\n var nlcc = 19;\n\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc) {\n }\n\n var flen = bl + 5 << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen) return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n\n for (var i = 0; i < nlcc; ++i) {\n wbits(out, p + 3 * i, lct[clim[i]]);\n }\n\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15) wbits(out, p, clct[i] >>> 5 & 127), p += clct[i] >>> 12;\n }\n }\n } else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = syms[i] >>> 18 & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7) wbits(out, p, syms[i] >>> 23 & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3) wbits16(out, p, syms[i] >>> 5 & 8191), p += fdeb[dst];\n } else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n\n wbits16(out, p, lm[256]);\n return p + ll[256];\n}; // deflate options (nice << 13) | chain\n\n\nvar deo = /*#__PURE__*/new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]); // empty\n\nvar et = /*#__PURE__*/new u8(0); // compresses data into a raw DEFLATE buffer\n\nvar dflt = function dflt(dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7000)) + post); // writing to this writes to the output buffer\n\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n\n if (e < s) {\n // write full block\n pos = wfblk(w, pos, dat.subarray(i, e));\n } else {\n // write final block\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n } else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13,\n c = opt & 8191;\n var msk_1 = (1 << plvl) - 1; // prev 2-byte val map curr 2-byte val map\n\n var prev = new u16(32768),\n head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3),\n bs2_1 = 2 * bs1_1;\n\n var hsh = function hsh(i) {\n return (dat[i] ^ dat[i + 1] << bs1_1 ^ dat[i + 2] << bs2_1) & msk_1;\n }; // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n\n\n var syms = new u32(25000); // length/literal freq distance freq\n\n var lf = new u16(288),\n df = new u16(32); // l/lcnt exbits index l/lind waitdx bitpos\n\n var lc_1 = 0,\n eb = 0,\n i = 0,\n li = 0,\n wi = 0,\n bs = 0;\n\n for (; i < s; ++i) {\n // hash value\n var hv = hsh(i); // index mod 32768\n\n var imod = i & 32767; // previous index with this value\n\n var pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod; // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n\n for (var j = 0; j < 286; ++j) {\n lf[j] = 0;\n }\n\n for (var j = 0; j < 30; ++j) {\n df[j] = 0;\n }\n } // len dist chain\n\n\n var l = 2,\n d = 0,\n ch_1 = c,\n dif = imod - pimod & 32767;\n\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i); // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n\n var ml = Math.min(258, rem);\n\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl) {\n }\n\n if (nl > l) {\n l = nl, d = dif; // break out early when we reach \"nice\" (we are satisfied enough)\n\n if (nl > maxn) break; // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j + 32768 & 32767;\n var pti = prev[ti];\n var cd = ti - pti + 32768 & 32767;\n if (cd > md) md = cd, pimod = ti;\n }\n }\n } // check the previous match\n\n\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod + 32768 & 32767;\n }\n } // d will be nonzero only when a match was found\n\n\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | revfl[l] << 18 | revfd[d];\n var lin = revfl[l] & 31,\n din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n } else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos); // this is the easiest way to avoid needing to maintain state\n\n if (!lst) pos = wfblk(w, pos, et);\n }\n\n return slc(o, 0, pre + shft(pos) + post);\n}; // CRC32 table\n\n\nvar crct = /*#__PURE__*/function () {\n var t = new u32(256);\n\n for (var i = 0; i < 256; ++i) {\n var c = i,\n k = 9;\n\n while (--k) {\n c = (c & 1 && 0xEDB88320) ^ c >>> 1;\n }\n\n t[i] = c;\n }\n\n return t;\n}(); // CRC32\n\n\nvar crc = function crc() {\n var c = 0xFFFFFFFF;\n return {\n p: function p(d) {\n // closures have awful performance\n var cr = c;\n\n for (var i = 0; i < d.length; ++i) {\n cr = crct[cr & 255 ^ d[i]] ^ cr >>> 8;\n }\n\n c = cr;\n },\n d: function d() {\n return c ^ 0xFFFFFFFF;\n }\n };\n}; // Alder32\n\nvar dopt = function dopt(dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 12 + opt.mem, pre, post, !st);\n}; // Walmart object spread\n\n\nvar wbytes = function wbytes(d, b, v) {\n for (; v; ++b) {\n d[b] = v, v >>>= 8;\n }\n}; // gzip header\n\n\nvar gzh = function gzh(c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n\n if (o.mtime != 0) wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n\n if (fn) {\n c[3] = 8;\n\n for (var i = 0; i <= fn.length; ++i) {\n c[i + 10] = fn.charCodeAt(i);\n }\n }\n}; // gzip footer: -8 to -4 = CRC, -4 to -0 is length\n\n\nvar gzhl = function gzhl(o) {\n return 10 + (o.filename && o.filename.length + 1 || 0);\n}; // zlib header\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\n\nfunction gzipSync(data, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var c = crc(),\n l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8),\n s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\n\n\nfunction strToU8(str, latin1) {\n var l = str.length;\n if (!latin1 && typeof TextEncoder != 'undefined') return new TextEncoder().encode(str);\n var ar = new u8(str.length + (str.length >>> 1));\n var ai = 0;\n\n var w = function w(v) {\n ar[ai++] = v;\n };\n\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + (l - i << 1));\n n.set(ar);\n ar = n;\n }\n\n var c = str.charCodeAt(i);\n if (c < 128 || latin1) w(c);else if (c < 2048) w(192 | c >>> 6), w(128 | c & 63);else if (c > 55295 && c < 57344) c = 65536 + (c & 1023 << 10) | str.charCodeAt(++i) & 1023, w(240 | c >>> 18), w(128 | c >>> 12 & 63), w(128 | c >>> 6 & 63), w(128 | c & 63);else w(224 | c >>> 12), w(128 | c >>> 6 & 63), w(128 | c & 63);\n }\n\n return slc(ar, 0, ai);\n}\n\n/**\n * If an array is passed for an allowlist, autocapture events will only be sent for elements matching\n * at least one of the elements in the array. Multiple allowlists can be used\n */\nvar Compression;\n\n(function (Compression) {\n Compression[\"GZipJS\"] = \"gzip-js\";\n Compression[\"LZ64\"] = \"lz64\";\n Compression[\"Base64\"] = \"base64\";\n})(Compression || (Compression = {}));\n\nfunction decideCompression(compressionSupport) {\n if (compressionSupport[Compression.GZipJS]) {\n return Compression.GZipJS;\n } else if (compressionSupport[Compression.LZ64]) {\n return Compression.LZ64;\n } else {\n return Compression.Base64;\n }\n}\nfunction compressData(compression, jsonData, options) {\n if (compression === Compression.LZ64) {\n return [{\n data: LZString.compressToBase64(jsonData),\n compression: Compression.LZ64\n }, options];\n } else if (compression === Compression.GZipJS) {\n // :TRICKY: This returns an UInt8Array. We don't encode this to a string - returning a blob will do this for us.\n return [gzipSync(strToU8(jsonData), {\n mtime: 0\n }), _objectSpread2(_objectSpread2({}, options), {}, {\n blob: true,\n urlQueryArgs: {\n compression: Compression.GZipJS\n }\n })];\n } else {\n return [{\n data: _base64Encode(jsonData)\n }, options];\n }\n}\n\nvar addParamsToURL = function addParamsToURL(url, urlQueryArgs, parameterOptions) {\n var args = urlQueryArgs || {};\n args['ip'] = parameterOptions['ip'] ? 1 : 0;\n args['_'] = new Date().getTime().toString();\n args['ver'] = Config.LIB_VERSION;\n var halves = url.split('?');\n\n if (halves.length > 1) {\n var params = halves[1].split('&');\n\n var _iterator = _createForOfIteratorHelper(params),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var p = _step.value;\n var key = p.split('=')[0];\n\n if (args[key]) {\n delete args[key];\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n var argSeparator = url.indexOf('?') > -1 ? '&' : '?';\n return url + argSeparator + _HTTPBuildQuery(args);\n};\nvar encodePostData = function encodePostData(data, options) {\n if (options.blob && data.buffer) {\n return new Blob([data.buffer], {\n type: 'text/plain'\n });\n }\n\n if (options.sendBeacon || options.blob) {\n var body = encodePostData(data, {\n method: 'POST'\n });\n return new Blob([body], {\n type: 'application/x-www-form-urlencoded'\n });\n }\n\n if (options.method !== 'POST') {\n return null;\n }\n\n var body_data;\n\n var isUint8Array = function isUint8Array(d) {\n return Object.prototype.toString.call(d) === '[object Uint8Array]';\n };\n\n if (Array.isArray(data) || isUint8Array(data)) {\n // TODO: eh? passing an Array here?\n body_data = 'data=' + encodeURIComponent(data);\n } else {\n body_data = 'data=' + encodeURIComponent(data.data);\n }\n\n if ('compression' in data && data.compression) {\n body_data += '&compression=' + data.compression;\n }\n\n return body_data;\n};\nvar xhr = function xhr(_ref) {\n var url = _ref.url,\n data = _ref.data,\n headers = _ref.headers,\n options = _ref.options,\n captureMetrics = _ref.captureMetrics,\n callback = _ref.callback,\n retriesPerformedSoFar = _ref.retriesPerformedSoFar,\n retryQueue = _ref.retryQueue,\n onXHRError = _ref.onXHRError,\n _ref$timeout = _ref.timeout,\n timeout = _ref$timeout === void 0 ? 10000 : _ref$timeout;\n var req = new XMLHttpRequest();\n req.open(options.method || 'GET', url, true);\n var body = encodePostData(data, options);\n captureMetrics.incr('_send_request');\n captureMetrics.incr('_send_request_inflight');\n\n _each(headers, function (headerValue, headerName) {\n req.setRequestHeader(headerName, headerValue);\n });\n\n if (options.method === 'POST' && !options.blob) {\n req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n\n req.timeout = timeout; // send the ph_optout cookie\n // withCredentials cannot be modified until after calling .open on Android and Mobile Safari\n\n req.withCredentials = true;\n\n req.onreadystatechange = function () {\n if (req.readyState === 4) {\n captureMetrics.incr(\"xhr-response\");\n captureMetrics.incr(\"xhr-response-\".concat(req.status));\n captureMetrics.decr('_send_request_inflight'); // XMLHttpRequest.DONE == 4, except in safari 4\n\n if (req.status === 200) {\n if (callback) {\n var response;\n\n try {\n response = JSON.parse(req.responseText);\n } catch (e) {\n logger.error(e);\n return;\n }\n\n callback(response);\n }\n } else {\n if (typeof onXHRError === 'function') {\n onXHRError(req);\n } // don't retry certain errors\n\n\n if ([401, 403, 404, 500].indexOf(req.status) < 0) {\n retryQueue.enqueue({\n url: url,\n data: data,\n options: options,\n headers: headers,\n retriesPerformedSoFar: (retriesPerformedSoFar || 0) + 1,\n callback: callback\n });\n }\n\n if (callback) {\n callback({\n status: 0\n });\n }\n }\n }\n };\n\n req.send(body);\n};\n\nvar RetryQueue = /*#__PURE__*/function (_RequestQueueScaffold) {\n _inherits(RetryQueue, _RequestQueueScaffold);\n\n var _super = _createSuper(RetryQueue);\n\n function RetryQueue(captureMetrics, onXHRError) {\n var _this;\n\n _classCallCheck(this, RetryQueue);\n\n _this = _super.call(this);\n _this.captureMetrics = captureMetrics;\n _this.isPolling = false;\n _this.queue = [];\n _this.areWeOnline = true;\n _this.onXHRError = onXHRError;\n\n if ('onLine' in window.navigator) {\n _this.areWeOnline = window.navigator.onLine;\n window.addEventListener('online', function () {\n _this._handleWeAreNowOnline();\n });\n window.addEventListener('offline', function () {\n _this.areWeOnline = false;\n });\n }\n\n return _this;\n }\n\n _createClass(RetryQueue, [{\n key: \"enqueue\",\n value: function enqueue(requestData) {\n var retriesPerformedSoFar = requestData.retriesPerformedSoFar || 0;\n\n if (retriesPerformedSoFar >= 10) {\n return;\n }\n\n var msToNextRetry = 3000 * Math.pow(2, retriesPerformedSoFar);\n var retryAt = new Date(Date.now() + msToNextRetry);\n console.warn(\"Enqueued failed request for retry in \".concat(msToNextRetry));\n this.queue.push({\n retryAt: retryAt,\n requestData: requestData\n });\n\n if (!this.isPolling) {\n this.isPolling = true;\n this.poll();\n }\n }\n }, {\n key: \"poll\",\n value: function poll() {\n var _this2 = this;\n\n this._poller && clearTimeout(this._poller);\n this._poller = setTimeout(function () {\n if (_this2.areWeOnline && _this2.queue.length > 0) {\n _this2.flush();\n }\n\n _this2.poll();\n }, this._pollInterval);\n }\n }, {\n key: \"flush\",\n value: function flush() {\n // using Date.now to make tests easier as recommended here https://codewithhugo.com/mocking-the-current-date-in-jest-tests/\n var now = new Date(Date.now());\n var toFlush = this.queue.filter(function (_ref) {\n var retryAt = _ref.retryAt;\n return retryAt < now;\n });\n\n if (toFlush.length > 0) {\n this.queue = this.queue.filter(function (_ref2) {\n var retryAt = _ref2.retryAt;\n return retryAt >= now;\n });\n\n var _iterator = _createForOfIteratorHelper(toFlush),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var requestData = _step.value.requestData;\n\n this._executeXhrRequest(requestData);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }\n }, {\n key: \"unload\",\n value: function unload() {\n if (this._poller) {\n clearTimeout(this._poller);\n this._poller = undefined;\n }\n\n var _iterator2 = _createForOfIteratorHelper(this.queue),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var requestData = _step2.value.requestData;\n var url = requestData.url,\n data = requestData.data,\n options = requestData.options;\n\n try {\n window.navigator.sendBeacon(url, encodePostData(data, _objectSpread2(_objectSpread2({}, options), {}, {\n sendBeacon: true\n })));\n } catch (e) {\n // Note sendBeacon automatically retries, and after the first retry it will loose reference to contextual `this`.\n // This means in some cases `this.getConfig` will be undefined.\n if (Config.DEBUG) {\n console.error(e);\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n this.queue = [];\n }\n }, {\n key: \"_executeXhrRequest\",\n value: function _executeXhrRequest(_ref3) {\n var url = _ref3.url,\n data = _ref3.data,\n options = _ref3.options,\n headers = _ref3.headers,\n callback = _ref3.callback,\n retriesPerformedSoFar = _ref3.retriesPerformedSoFar;\n xhr({\n url: url,\n data: data || {},\n options: options || {},\n headers: headers || {},\n retriesPerformedSoFar: retriesPerformedSoFar || 0,\n callback: callback,\n captureMetrics: this.captureMetrics,\n retryQueue: this,\n onXHRError: this.onXHRError\n });\n }\n }, {\n key: \"_handleWeAreNowOnline\",\n value: function _handleWeAreNowOnline() {\n this.areWeOnline = true;\n this.flush();\n }\n }]);\n\n return RetryQueue;\n}(RequestQueueScaffold);\n\nvar SESSION_CHANGE_THRESHOLD = 30 * 60 * 1000; // 30 mins\n\nvar SESSION_LENGTH_LIMIT = 24 * 3600 * 1000; // 24 hours\n\nvar SessionIdManager = /*#__PURE__*/function () {\n function SessionIdManager(config, persistence) {\n _classCallCheck(this, SessionIdManager);\n\n this.persistence = persistence;\n this._windowId = undefined;\n this._sessionId = undefined;\n this._sessionStartTimestamp = null;\n this._sessionActivityTimestamp = null;\n var persistenceName = config['persistence_name'] || config['token'];\n this.window_id_storage_key = 'ph_' + persistenceName + '_window_id';\n this.primary_window_exists_storage_key = 'ph_' + persistenceName + '_primary_window_exists'; // primary_window_exists is set when the DOM has been loaded and is cleared on unload\n // if it exists here it means there was no unload which suggests this window is opened as a tab duplication, window.open, etc.\n\n if (!this.persistence.disabled && sessionStore.is_supported()) {\n var lastWindowId = sessionStore.parse(this.window_id_storage_key);\n var primaryWindowExists = sessionStore.parse(this.primary_window_exists_storage_key);\n\n if (lastWindowId && !primaryWindowExists) {\n // Persist window from previous storage state\n this._windowId = lastWindowId;\n } else {\n // Wipe any reference to previous window id\n sessionStore.remove(this.window_id_storage_key);\n } // Flag this session as having a primary window\n\n\n sessionStore.set(this.primary_window_exists_storage_key, true);\n }\n\n this._listenToReloadWindow();\n } // Note: this tries to store the windowId in sessionStorage. SessionStorage is unique to the current window/tab,\n // and persists page loads/reloads. So it's uniquely suited for storing the windowId. This function also respects\n // when persistence is disabled (by user config) and when sessionStorage is not supported (it *should* be supported on all browsers),\n // and in that case, it falls back to memory (which sadly, won't persist page loads)\n\n\n _createClass(SessionIdManager, [{\n key: \"_setWindowId\",\n value: function _setWindowId(windowId) {\n if (windowId !== this._windowId) {\n this._windowId = windowId;\n\n if (!this.persistence.disabled && sessionStore.is_supported()) {\n sessionStore.set(this.window_id_storage_key, windowId);\n }\n }\n }\n }, {\n key: \"_getWindowId\",\n value: function _getWindowId() {\n if (this._windowId) {\n return this._windowId;\n }\n\n if (!this.persistence.disabled && sessionStore.is_supported()) {\n return sessionStore.parse(this.window_id_storage_key);\n } // New window id will be generated\n\n\n return null;\n } // Note: 'this.persistence.register' can be disabled in the config.\n // In that case, this works by storing sessionId and the timestamp in memory.\n\n }, {\n key: \"_setSessionId\",\n value: function _setSessionId(sessionId, sessionActivityTimestamp, sessionStartTimestamp) {\n if (sessionId !== this._sessionId || sessionActivityTimestamp !== this._sessionActivityTimestamp || sessionStartTimestamp !== this._sessionStartTimestamp) {\n this._sessionStartTimestamp = sessionStartTimestamp;\n this._sessionActivityTimestamp = sessionActivityTimestamp;\n this._sessionId = sessionId;\n this.persistence.register(_defineProperty({}, SESSION_ID, [sessionActivityTimestamp, sessionId, sessionStartTimestamp]));\n }\n }\n }, {\n key: \"_getSessionId\",\n value: function _getSessionId() {\n if (this._sessionId && this._sessionActivityTimestamp && this._sessionStartTimestamp) {\n return [this._sessionActivityTimestamp, this._sessionId, this._sessionStartTimestamp];\n }\n\n var sessionId = this.persistence.props[SESSION_ID];\n\n if (Array.isArray(sessionId) && sessionId.length === 2) {\n // Storage does not yet have a session start time. Add the last activity timestamp as the start time\n sessionId.push(sessionId[0]);\n }\n\n return sessionId || [0, null, 0];\n } // Resets the session id by setting it to null. On the subsequent call to checkAndGetSessionAndWindowId,\n // new ids will be generated.\n\n }, {\n key: \"resetSessionId\",\n value: function resetSessionId() {\n this._setSessionId(null, null, null);\n }\n /*\n * Listens to window unloads and removes the primaryWindowExists key from sessionStorage.\n * Reloaded or fresh tabs created after a DOM unloads (reloading the same tab) WILL NOT have this primaryWindowExists flag in session storage.\n * Cloned sessions (new tab, tab duplication, window.open(), ...) WILL have this primaryWindowExists flag in their copied session storage.\n * We conditionally check the primaryWindowExists value in the constructor to decide if the window id in the last session storage should be carried over.\n */\n\n }, {\n key: \"_listenToReloadWindow\",\n value: function _listenToReloadWindow() {\n var _this = this;\n\n window.addEventListener('beforeunload', function () {\n if (!_this.persistence.disabled && sessionStore.is_supported()) {\n sessionStore.remove(_this.primary_window_exists_storage_key);\n }\n });\n }\n /*\n * This function returns the current sessionId and windowId. It should be used to\n * access these values over directly calling `._sessionId` or `._windowId`. In addition\n * to returning the sessionId and windowId, this function also manages cycling the\n * sessionId and windowId when appropriate by doing the following:\n *\n * 1. If the sessionId or windowId is not set, it will generate a new one and store it.\n * 2. If the readOnly param is set to false, it will:\n * a. Check if it has been > SESSION_CHANGE_THRESHOLD since the last call with this flag set.\n * If so, it will generate a new sessionId and store it.\n * b. Update the timestamp stored with the sessionId to ensure the current session is extended\n * for the appropriate amount of time.\n *\n * @param {boolean} readOnly (optional) Defaults to False. Should be set to True when the call to the function should not extend or cycle the session (e.g. being called for non-user generated events)\n * @param {Number} timestamp (optional) Defaults to the current time. The timestamp to be stored with the sessionId (used when determining if a new sessionId should be generated)\n */\n\n }, {\n key: \"checkAndGetSessionAndWindowId\",\n value: function checkAndGetSessionAndWindowId() {\n var readOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var _timestamp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n var timestamp = _timestamp || new Date().getTime(); // eslint-disable-next-line prefer-const\n\n\n var _this$_getSessionId = this._getSessionId(),\n _this$_getSessionId2 = _slicedToArray(_this$_getSessionId, 3),\n lastTimestamp = _this$_getSessionId2[0],\n sessionId = _this$_getSessionId2[1],\n startTimestamp = _this$_getSessionId2[2];\n\n var windowId = this._getWindowId();\n\n var sessionPastMaximumLength = startTimestamp && startTimestamp > 0 && Math.abs(timestamp - startTimestamp) > SESSION_LENGTH_LIMIT;\n\n if (!sessionId || !readOnly && Math.abs(timestamp - lastTimestamp) > SESSION_CHANGE_THRESHOLD || sessionPastMaximumLength) {\n sessionId = _UUID();\n windowId = _UUID();\n startTimestamp = timestamp;\n } else if (!windowId) {\n windowId = _UUID();\n }\n\n var newTimestamp = lastTimestamp === 0 || !readOnly || sessionPastMaximumLength ? timestamp : lastTimestamp;\n var sessionStartTimestamp = startTimestamp === 0 ? new Date().getTime() : startTimestamp;\n\n this._setWindowId(windowId);\n\n this._setSessionId(sessionId, newTimestamp, sessionStartTimestamp);\n\n return {\n sessionId: sessionId,\n windowId: windowId\n };\n }\n }]);\n\n return SessionIdManager;\n}();\n\n/**\n * Integrate Sentry with PostHog. This will add a direct link to the person in Sentry, and an $exception event in PostHog\n *\n * ### Usage\n *\n * Sentry.init({\n * dsn: 'https://example',\n * integrations: [\n * new posthog.SentryIntegration(posthog)\n * ]\n * })\n *\n * @param {Object} [posthog] The posthog object\n * @param {string} [organization] Optional: The Sentry organization, used to send a direct link from PostHog to Sentry\n * @param {Number} [projectId] Optional: The Sentry project id, used to send a direct link from PostHog to Sentry\n * @param {string} [prefix] Optional: Url of a self-hosted sentry instance (default: https://sentry.io/organizations/)\n */\nvar SentryIntegration = /*#__PURE__*/_createClass(function SentryIntegration(_posthog, organization, projectId, prefix) {\n _classCallCheck(this, SentryIntegration);\n\n // setupOnce gets called by Sentry when it intializes the plugin\n // 'this' is not this: PostHogLib object, but the new class that's created.\n // TODO: refactor to a real class. The types\n this.name = 'posthog-js';\n\n this.setupOnce = function (addGlobalEventProcessor) {\n addGlobalEventProcessor(function (event) {\n var _event$exception, _exceptions$, _exceptions$2;\n\n if (event.level !== 'error' || !_posthog.__loaded) return event;\n if (!event.tags) event.tags = {};\n var host = _posthog.config.ui_host || _posthog.config.api_host;\n event.tags['PostHog Person URL'] = host + '/person/' + _posthog.get_distinct_id();\n\n if (_posthog.sessionRecordingStarted()) {\n event.tags['PostHog Recording URL'] = host + '/recordings/' + _posthog.sessionManager.checkAndGetSessionAndWindowId(true).sessionId;\n }\n\n var exceptions = ((_event$exception = event.exception) === null || _event$exception === void 0 ? void 0 : _event$exception.values) || [];\n var data = {\n $sentry_event_id: event.event_id,\n $sentry_exception: event.exception,\n $sentry_exception_message: (_exceptions$ = exceptions[0]) === null || _exceptions$ === void 0 ? void 0 : _exceptions$.value,\n $sentry_exception_type: (_exceptions$2 = exceptions[0]) === null || _exceptions$2 === void 0 ? void 0 : _exceptions$2.type,\n $sentry_tags: event.tags\n };\n if (organization && projectId) data['$sentry_url'] = (prefix || 'https://sentry.io/organizations/') + organization + '/issues/?project=' + projectId + '&query=' + event.event_id;\n\n _posthog.capture('$exception', data);\n\n return event;\n });\n };\n});\n\n/**\n * Extend Segment with extra PostHog JS functionality. Required for things like Recordings and feature flags to work correctly.\n *\n * ### Usage\n *\n * ```js\n * // After your standard segment anyalytics install\n * analytics.load(\"GOEDfA21zZTtR7clsBuDvmBKAtAdZ6Np\");\n *\n * analytics.ready(() => {\n * posthog.init('', {\n * capture_pageview: false,\n * segment: window.analytics, // NOTE: Be sure to use window.analytics here!\n * });\n * window.analytics.page();\n * })\n * ```\n */\n// Loosely based on https://github.com/segmentio/analytics-next/blob/master/packages/core/src/plugins/index.ts\nvar createSegmentIntegration = function createSegmentIntegration(posthog) {\n var enrichEvent = function enrichEvent(ctx, eventName) {\n if (!ctx.event.userId && ctx.event.anonymousId !== posthog.get_distinct_id()) {\n // This is our only way of detecting that segment's analytics.reset() has been called so we also call it\n posthog.reset();\n }\n\n if (ctx.event.userId && ctx.event.userId !== posthog.get_distinct_id()) {\n posthog.register({\n distinct_id: ctx.event.userId\n });\n posthog.reloadFeatureFlags();\n }\n\n var additionalProperties = posthog._calculate_event_properties(eventName, ctx.event.properties);\n\n ctx.event.properties = Object.assign({}, additionalProperties, ctx.event.properties);\n return ctx;\n };\n\n return {\n name: 'PostHog JS',\n type: 'enrichment',\n version: '1.0.0',\n isLoaded: function isLoaded() {\n return true;\n },\n load: function load() {\n return Promise.resolve();\n },\n track: function track(ctx) {\n return enrichEvent(ctx, ctx.event.event);\n },\n page: function page(ctx) {\n return enrichEvent(ctx, '$pageview');\n },\n identify: function identify(ctx) {\n return enrichEvent(ctx, '$identify');\n },\n screen: function screen(ctx) {\n return enrichEvent(ctx, '$screen');\n }\n };\n};\n\nvar PageViewIdManager = /*#__PURE__*/function () {\n function PageViewIdManager() {\n _classCallCheck(this, PageViewIdManager);\n\n _defineProperty(this, \"_seenFirstPageView\", false);\n }\n\n _createClass(PageViewIdManager, [{\n key: \"onPageview\",\n value: function onPageview() {\n // As the first $pageview event may come after a different event,\n // we only reset the ID _after_ the second $pageview event.\n if (this._seenFirstPageView) {\n this._pageViewId = _UUID();\n }\n\n this._seenFirstPageView = true;\n }\n }, {\n key: \"getPageViewId\",\n value: function getPageViewId() {\n if (!this._pageViewId) {\n this._pageViewId = _UUID();\n }\n\n return this._pageViewId;\n }\n }]);\n\n return PageViewIdManager;\n}();\n\n/*\nSIMPLE STYLE GUIDE:\n\nthis.x === public function\nthis._x === internal - only use within this file\nthis.__x === private - only use within the class\n\nGlobals should be all caps\n*/\n\nvar InitType;\n\n(function (InitType) {\n InitType[InitType[\"INIT_MODULE\"] = 0] = \"INIT_MODULE\";\n InitType[InitType[\"INIT_SNIPPET\"] = 1] = \"INIT_SNIPPET\";\n})(InitType || (InitType = {}));\n\nvar init_type; // TODO: the type of this is very loose. Sometimes it's also PostHogLib itself\n\nvar posthog_master; // some globals for comparisons\n\nvar __NOOP = function __NOOP() {};\n\nvar __NOOPTIONS = {};\nvar PRIMARY_INSTANCE_NAME = 'posthog';\n/*\n * Dynamic... constants? Is that an oxymoron?\n */\n// http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/\n// https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#withCredentials\n\nvar USE_XHR = win.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest(); // IE<10 does not support cross-origin XHR's but script tags\n// with defer won't block window.onload; ENQUEUE_REQUESTS\n// should only be true for Opera<12\n\nvar ENQUEUE_REQUESTS = !USE_XHR && userAgent.indexOf('MSIE') === -1 && userAgent.indexOf('Mozilla') === -1;\n\nvar defaultConfig = function defaultConfig() {\n var _document$location, _document$location$ho, _window$location;\n\n return {\n api_host: 'https://app.posthog.com',\n api_method: 'POST',\n api_transport: 'XHR',\n ui_host: null,\n token: '',\n autocapture: true,\n rageclick: true,\n cross_subdomain_cookie: (document$1 === null || document$1 === void 0 ? void 0 : (_document$location = document$1.location) === null || _document$location === void 0 ? void 0 : (_document$location$ho = _document$location.hostname) === null || _document$location$ho === void 0 ? void 0 : _document$location$ho.indexOf('herokuapp.com')) === -1,\n persistence: 'cookie',\n persistence_name: '',\n cookie_name: '',\n loaded: __NOOP,\n store_google: true,\n save_referrer: true,\n test: false,\n verbose: false,\n img: false,\n capture_pageview: true,\n capture_pageleave: true,\n // We'll only capture pageleave events if capture_pageview is also true\n debug: false,\n cookie_expiration: 365,\n upgrade: false,\n disable_session_recording: false,\n disable_persistence: false,\n disable_cookie: false,\n enable_recording_console_log: undefined,\n // When undefined, it falls back to the server-side setting\n secure_cookie: (win === null || win === void 0 ? void 0 : (_window$location = win.location) === null || _window$location === void 0 ? void 0 : _window$location.protocol) === 'https:',\n ip: true,\n opt_out_capturing_by_default: false,\n opt_out_persistence_by_default: false,\n opt_out_capturing_persistence_type: 'localStorage',\n opt_out_capturing_cookie_prefix: null,\n opt_in_site_apps: false,\n property_blacklist: [],\n respect_dnt: false,\n sanitize_properties: null,\n xhr_headers: {},\n // { header: value, header2: value }\n inapp_protocol: '//',\n inapp_link_new_window: false,\n request_batching: true,\n properties_string_max_length: 65535,\n session_recording: {\n // select set of rrweb config options we expose to our users\n // see https://github.com/rrweb-io/rrweb/blob/master/guide.md\n blockClass: 'ph-no-capture',\n blockSelector: null,\n ignoreClass: 'ph-ignore-input',\n maskAllInputs: true,\n maskInputOptions: {},\n maskInputFn: null,\n slimDOMOptions: {},\n collectFonts: false,\n inlineStylesheet: true\n },\n mask_all_element_attributes: false,\n mask_all_text: false,\n advanced_disable_decide: false,\n advanced_disable_toolbar_metrics: false,\n on_xhr_error: function on_xhr_error(req) {\n var error = 'Bad HTTP status: ' + req.status + ' ' + req.statusText;\n console.error(error);\n },\n get_device_id: function get_device_id(uuid) {\n return uuid;\n },\n // Used for internal testing\n _onCapture: __NOOP,\n _capture_metrics: false,\n capture_performance: undefined,\n name: 'posthog',\n callback_fn: 'posthog._jsc',\n bootstrap: {},\n disable_compression: false\n };\n};\n/**\n * create_mplib(token:string, config:object, name:string)\n *\n * This function is used by the init method of PostHogLib objects\n * as well as the main initializer at the end of the JSLib (that\n * initializes document.posthog as well as any additional instances\n * declared before this file has loaded).\n */\n\n\nvar create_mplib = function create_mplib(token, config, name) {\n var instance;\n var target = name === PRIMARY_INSTANCE_NAME || !posthog_master ? posthog_master : name ? posthog_master[name] : undefined;\n\n if (target && init_type === InitType.INIT_MODULE) {\n instance = target;\n } else {\n if (target && !_isArray(target)) {\n console.error('You have already initialized ' + name); // TODO: throw something instead?\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n\n return;\n }\n\n instance = new PostHog();\n }\n\n instance._init(token, config, name);\n\n instance.toolbar.maybeLoadToolbar();\n instance.sessionRecording = new SessionRecording(instance);\n instance.sessionRecording.startRecordingIfEnabled();\n instance.webPerformance = new WebPerformanceObserver(instance);\n instance.webPerformance.startObservingIfEnabled();\n instance.__autocapture = instance.get_config('autocapture');\n\n if (instance.get_config('autocapture')) {\n instance.__autocapture = instance.get_config('autocapture');\n var num_buckets = 100;\n var num_enabled_buckets = 100;\n\n if (!autocapture.enabledForProject(instance.get_config('token'), num_buckets, num_enabled_buckets)) {\n instance.__autocapture = false;\n logger.log('Not in active bucket: disabling Automatic Event Collection.');\n } else if (!autocapture.isBrowserSupported()) {\n instance.__autocapture = false;\n logger.log('Disabling Automatic Event Collection because this browser is not supported');\n } else {\n autocapture.init(instance);\n }\n } // if any instance on the page has debug = true, we set the\n // global debug to be true\n\n\n Config.DEBUG = Config.DEBUG || instance.get_config('debug'); // if target is not defined, we called init after the lib already\n // loaded, so there won't be an array of things to execute\n\n if (typeof target !== 'undefined' && _isArray(target)) {\n // Crunch through the people queue first - we queue this data up &\n // flush on identify, so it's better to do all these operations first\n instance._execute_array.call(instance.people, target.people);\n\n instance._execute_array(target);\n }\n\n return instance;\n};\n/**\n * PostHog Library Object\n * @constructor\n */\n\n\nvar PostHog = /*#__PURE__*/function () {\n // flag that checks if recorder.js is loaded already\n function PostHog() {\n var _this = this;\n\n _classCallCheck(this, PostHog);\n\n this.config = defaultConfig();\n this.compression = {};\n this.decideEndpointWasHit = false;\n this.SentryIntegration = SentryIntegration;\n\n this.segmentIntegration = function () {\n return createSegmentIntegration(_this);\n };\n\n this.__captureHooks = [];\n this.__request_queue = [];\n this.__loaded = false;\n this.__loaded_recorder = false;\n this.__autocapture = undefined;\n\n this._jsc = function () {};\n\n this.people = new PostHogPeople(this);\n this.featureFlags = new PostHogFeatureFlags(this);\n this.feature_flags = this.featureFlags;\n this.toolbar = new Toolbar(this);\n this.pageViewIdManager = new PageViewIdManager(); // these are created in _init() after we have the config\n\n this._captureMetrics = undefined;\n this._requestQueue = undefined;\n this._retryQueue = undefined;\n this.persistence = undefined;\n this.sessionManager = undefined;\n } // Initialization methods\n\n /**\n * This function initializes a new instance of the PostHog capturing object.\n * All new instances are added to the main posthog object as sub properties (such as\n * posthog.library_name) and also returned by this function. To define a\n * second instance on the page, you would call:\n *\n * posthog.init('new token', { your: 'config' }, 'library_name');\n *\n * and use it like so:\n *\n * posthog.library_name.capture(...);\n *\n * @param {String} token Your PostHog API token\n * @param {Object} [config] A dictionary of config options to override. See a list of default config options.\n * @param {String} [name] The name for the new posthog instance that you want created\n */\n\n\n _createClass(PostHog, [{\n key: \"init\",\n value: function init(token, config, name) {\n if (_isUndefined(name)) {\n console.error('You must name your new library: init(token, config, name)');\n return;\n }\n\n if (name === PRIMARY_INSTANCE_NAME) {\n console.error('You must initialize the main posthog object right after you include the PostHog js snippet');\n return;\n }\n\n var instance = create_mplib(token, config, name);\n posthog_master[name] = instance;\n\n instance._loaded();\n\n return instance;\n } // posthog._init(token:string, config:object, name:string)\n //\n // This function sets up the current instance of the posthog\n // library. The difference between this method and the init(...)\n // method is this one initializes the actual instance, whereas the\n // init(...) method sets up a new library and calls _init on it.\n //\n\n }, {\n key: \"_init\",\n value: function _init(token) {\n var _window$rrweb, _config$bootstrap;\n\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var name = arguments.length > 2 ? arguments[2] : undefined;\n this.__loaded = true;\n this.config = {}; // will be set right below\n\n this._triggered_notifs = [];\n this.set_config(_extend({}, defaultConfig(), config, {\n name: name,\n token: token,\n callback_fn: (name === PRIMARY_INSTANCE_NAME ? name : PRIMARY_INSTANCE_NAME + '.' + name) + '._jsc'\n }));\n\n this._jsc = function () {}; // Check if recorder.js is already loaded\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n\n\n if (win !== null && win !== void 0 && (_window$rrweb = win.rrweb) !== null && _window$rrweb !== void 0 && _window$rrweb.record || win !== null && win !== void 0 && win.rrwebRecord) {\n this.__loaded_recorder = true;\n }\n\n this._captureMetrics = new CaptureMetrics(this.get_config('_capture_metrics'));\n this._requestQueue = new RequestQueue(this._captureMetrics, this._handle_queued_event.bind(this));\n this._retryQueue = new RetryQueue(this._captureMetrics, this.get_config('on_xhr_error'));\n this.__captureHooks = [];\n this.__request_queue = [];\n this.persistence = new PostHogPersistence(this.config);\n this.sessionManager = new SessionIdManager(this.config, this.persistence);\n\n this._gdpr_init();\n\n if (config.segment) {\n // Use segments anonymousId instead\n this.config.get_device_id = function () {\n return config.segment.user().anonymousId();\n }; // If a segment user ID exists, set it as the distinct_id\n\n\n if (config.segment.user().id()) {\n this.register({\n distinct_id: config.segment.user().id()\n });\n this.persistence.set_user_state('identified');\n }\n\n config.segment.register(this.segmentIntegration());\n }\n\n if (((_config$bootstrap = config.bootstrap) === null || _config$bootstrap === void 0 ? void 0 : _config$bootstrap.distinctID) !== undefined) {\n var _config$bootstrap2, _config$bootstrap3;\n\n var uuid = this.get_config('get_device_id')(_UUID());\n var deviceID = (_config$bootstrap2 = config.bootstrap) !== null && _config$bootstrap2 !== void 0 && _config$bootstrap2.isIdentifiedID ? uuid : config.bootstrap.distinctID;\n this.persistence.set_user_state((_config$bootstrap3 = config.bootstrap) !== null && _config$bootstrap3 !== void 0 && _config$bootstrap3.isIdentifiedID ? 'identified' : 'anonymous');\n this.register({\n distinct_id: config.bootstrap.distinctID,\n $device_id: deviceID\n });\n }\n\n if (this._hasBootstrappedFeatureFlags()) {\n var _config$bootstrap4, _config$bootstrap7;\n\n var activeFlags = Object.keys(((_config$bootstrap4 = config.bootstrap) === null || _config$bootstrap4 === void 0 ? void 0 : _config$bootstrap4.featureFlags) || {}).filter(function (flag) {\n var _config$bootstrap5, _config$bootstrap5$fe;\n\n return !!((_config$bootstrap5 = config.bootstrap) !== null && _config$bootstrap5 !== void 0 && (_config$bootstrap5$fe = _config$bootstrap5.featureFlags) !== null && _config$bootstrap5$fe !== void 0 && _config$bootstrap5$fe[flag]);\n }).reduce(function (res, key) {\n var _config$bootstrap6, _config$bootstrap6$fe;\n\n return res[key] = ((_config$bootstrap6 = config.bootstrap) === null || _config$bootstrap6 === void 0 ? void 0 : (_config$bootstrap6$fe = _config$bootstrap6.featureFlags) === null || _config$bootstrap6$fe === void 0 ? void 0 : _config$bootstrap6$fe[key]) || false, res;\n }, {});\n var featureFlagPayloads = Object.keys(((_config$bootstrap7 = config.bootstrap) === null || _config$bootstrap7 === void 0 ? void 0 : _config$bootstrap7.featureFlagPayloads) || {}).filter(function (key) {\n return activeFlags[key];\n }).reduce(function (res, key) {\n var _config$bootstrap8, _config$bootstrap8$fe;\n\n if ((_config$bootstrap8 = config.bootstrap) !== null && _config$bootstrap8 !== void 0 && (_config$bootstrap8$fe = _config$bootstrap8.featureFlagPayloads) !== null && _config$bootstrap8$fe !== void 0 && _config$bootstrap8$fe[key]) {\n var _config$bootstrap9, _config$bootstrap9$fe;\n\n res[key] = (_config$bootstrap9 = config.bootstrap) === null || _config$bootstrap9 === void 0 ? void 0 : (_config$bootstrap9$fe = _config$bootstrap9.featureFlagPayloads) === null || _config$bootstrap9$fe === void 0 ? void 0 : _config$bootstrap9$fe[key];\n }\n\n return res;\n }, {});\n this.featureFlags.receivedFeatureFlags({\n featureFlags: activeFlags,\n featureFlagPayloads: featureFlagPayloads\n });\n }\n\n if (!this.get_distinct_id()) {\n // There is no need to set the distinct id\n // or the device id if something was already stored\n // in the persitence\n var _uuid = this.get_config('get_device_id')(_UUID());\n\n this.register_once({\n distinct_id: _uuid,\n $device_id: _uuid\n }, ''); // distinct id == $device_id is a proxy for anonymous user\n\n this.persistence.set_user_state('anonymous');\n } // Set up event handler for pageleave\n // Use `onpagehide` if available, see https://calendar.perfplanet.com/2020/beaconing-in-practice/#beaconing-reliability-avoiding-abandons\n\n\n win.addEventListener && win.addEventListener('onpagehide' in self ? 'pagehide' : 'unload', this._handle_unload.bind(this));\n } // Private methods\n\n }, {\n key: \"_loaded\",\n value: function _loaded() {\n // Pause `reloadFeatureFlags` calls in config.loaded callback.\n // These feature flags are loaded in the decide call made right afterwards\n this.featureFlags.setReloadingPaused(true);\n\n try {\n this.get_config('loaded')(this);\n } catch (err) {\n console.error('`loaded` function failed', err);\n }\n\n this._start_queue_if_opted_in(); // this happens after so a user can call identify in\n // the loaded callback\n\n\n if (this.get_config('capture_pageview')) {\n this.capture('$pageview', {}, {\n send_instantly: true\n });\n } // Call decide to get what features are enabled and other settings.\n // As a reminder, if the /decide endpoint is disabled, feature flags, toolbar, session recording, autocapture,\n // and compression will not be available.\n\n\n if (!this.get_config('advanced_disable_decide')) {\n new Decide(this).call();\n }\n\n this.featureFlags.resetRequestQueue();\n this.featureFlags.setReloadingPaused(false);\n }\n }, {\n key: \"_start_queue_if_opted_in\",\n value: function _start_queue_if_opted_in() {\n if (!this.has_opted_out_capturing()) {\n if (this.get_config('request_batching')) {\n this._requestQueue.poll();\n }\n }\n }\n }, {\n key: \"_dom_loaded\",\n value: function _dom_loaded() {\n var _this2 = this;\n\n if (!this.has_opted_out_capturing()) {\n _eachArray(this.__request_queue, function (item) {\n _this2._send_request.apply(_this2, _toConsumableArray(item));\n });\n }\n\n this.__request_queue = [];\n\n this._start_queue_if_opted_in();\n }\n /**\n * _prepare_callback() should be called by callers of _send_request for use\n * as the callback argument.\n *\n * If there is no callback, this returns null.\n * If we are going to make XHR/XDR requests, this returns a function.\n * If we are going to use script tags, this returns a string to use as the\n * callback GET param.\n */\n // TODO: get rid of the \"| string\"\n\n }, {\n key: \"_prepare_callback\",\n value: function _prepare_callback(callback, data) {\n if (_isUndefined(callback)) {\n return null;\n }\n\n if (USE_XHR) {\n return function (response) {\n callback(response, data);\n };\n } else {\n // if the user gives us a callback, we store as a random\n // property on this instances jsc function and update our\n // callback string to reflect that.\n var jsc = this._jsc;\n var randomized_cb = '' + Math.floor(Math.random() * 100000000);\n var callback_string = this.get_config('callback_fn') + '[' + randomized_cb + ']';\n\n jsc[randomized_cb] = function (response) {\n delete jsc[randomized_cb];\n callback(response, data);\n };\n\n return callback_string;\n }\n }\n }, {\n key: \"_handle_unload\",\n value: function _handle_unload() {\n if (!this.get_config('request_batching')) {\n if (this.get_config('capture_pageview') && this.get_config('capture_pageleave')) {\n this.capture('$pageleave', null, {\n transport: 'sendBeacon'\n });\n }\n\n return;\n }\n\n if (this.get_config('capture_pageview') && this.get_config('capture_pageleave')) {\n this.capture('$pageleave');\n }\n\n if (this.get_config('_capture_metrics')) {\n this._requestQueue.updateUnloadMetrics();\n\n this.capture('$capture_metrics', this._captureMetrics.metrics);\n }\n\n this._requestQueue.unload();\n\n this._retryQueue.unload();\n }\n }, {\n key: \"_handle_queued_event\",\n value: function _handle_queued_event(url, data, options) {\n var jsonData = JSON.stringify(data);\n\n this.__compress_and_send_json_request(url, jsonData, options || __NOOPTIONS, __NOOP);\n }\n }, {\n key: \"__compress_and_send_json_request\",\n value: function __compress_and_send_json_request(url, jsonData, options, callback) {\n var _compressData = compressData(decideCompression(this.compression), jsonData, options),\n _compressData2 = _slicedToArray(_compressData, 2),\n data = _compressData2[0],\n _options = _compressData2[1];\n\n this._send_request(url, data, _options, callback);\n }\n }, {\n key: \"_send_request\",\n value: function _send_request(url, data, options, callback) {\n if (ENQUEUE_REQUESTS) {\n this.__request_queue.push([url, data, options, callback]);\n\n return;\n }\n\n var DEFAULT_OPTIONS = {\n method: this.get_config('api_method'),\n transport: this.get_config('api_transport'),\n verbose: this.get_config('verbose')\n };\n options = _extend(DEFAULT_OPTIONS, options || {});\n\n if (!USE_XHR) {\n options.method = 'GET';\n }\n\n var useSendBeacon = 'sendBeacon' in win.navigator && options.transport === 'sendBeacon';\n url = addParamsToURL(url, options.urlQueryArgs || {}, {\n ip: this.get_config('ip')\n });\n\n if (_isObject(data) && this.get_config('img')) {\n var img = document$1.createElement('img');\n img.src = url;\n document$1.body.appendChild(img);\n } else if (useSendBeacon) {\n // beacon documentation https://w3c.github.io/beacon/\n // beacons format the message and use the type property\n // also no need to try catch as sendBeacon does not report errors\n // and is defined as best effort attempt\n try {\n win.navigator.sendBeacon(url, encodePostData(data, _objectSpread2(_objectSpread2({}, options), {}, {\n sendBeacon: true\n })));\n } catch (e) {\n if (this.get_config('debug')) {\n console.error(e);\n }\n }\n } else if (USE_XHR) {\n try {\n xhr({\n url: url,\n data: data,\n headers: this.get_config('xhr_headers'),\n options: options,\n captureMetrics: this._captureMetrics,\n callback: callback,\n retriesPerformedSoFar: 0,\n retryQueue: this._retryQueue,\n onXHRError: this.get_config('on_xhr_error')\n });\n } catch (e) {\n console.error(e);\n }\n } else {\n var _s$parentNode;\n\n var script = document$1.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = url;\n var s = document$1.getElementsByTagName('script')[0];\n (_s$parentNode = s.parentNode) === null || _s$parentNode === void 0 ? void 0 : _s$parentNode.insertBefore(script, s);\n }\n }\n /**\n * _execute_array() deals with processing any posthog function\n * calls that were called before the PostHog library were loaded\n * (and are thus stored in an array so they can be called later)\n *\n * Note: we fire off all the posthog function calls && user defined\n * functions BEFORE we fire off posthog capturing calls. This is so\n * identify/register/set_config calls can properly modify early\n * capturing calls.\n *\n * @param {Array} array\n */\n\n }, {\n key: \"_execute_array\",\n value: function _execute_array(array) {\n var _this3 = this;\n\n var fn_name;\n var alias_calls = [];\n var other_calls = [];\n var capturing_calls = [];\n\n _eachArray(array, function (item) {\n if (item) {\n fn_name = item[0];\n\n if (_isArray(fn_name)) {\n capturing_calls.push(item); // chained call e.g. posthog.get_group().set()\n } else if (typeof item === 'function') {\n item.call(_this3);\n } else if (_isArray(item) && fn_name === 'alias') {\n alias_calls.push(item);\n } else if (_isArray(item) && fn_name.indexOf('capture') !== -1 && typeof _this3[fn_name] === 'function') {\n capturing_calls.push(item);\n } else {\n other_calls.push(item);\n }\n }\n });\n\n var execute = function execute(calls, thisArg) {\n _eachArray(calls, function (item) {\n if (_isArray(item[0])) {\n // chained call\n var caller = thisArg;\n\n _each(item, function (call) {\n caller = caller[call[0]].apply(caller, call.slice(1));\n });\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this[item[0]].apply(this, item.slice(1));\n }\n }, thisArg);\n };\n\n execute(alias_calls, this);\n execute(other_calls, this);\n execute(capturing_calls, this);\n }\n }, {\n key: \"_hasBootstrappedFeatureFlags\",\n value: function _hasBootstrappedFeatureFlags() {\n var _this$config$bootstra, _this$config$bootstra2;\n\n return ((_this$config$bootstra = this.config.bootstrap) === null || _this$config$bootstra === void 0 ? void 0 : _this$config$bootstra.featureFlags) && Object.keys((_this$config$bootstra2 = this.config.bootstrap) === null || _this$config$bootstra2 === void 0 ? void 0 : _this$config$bootstra2.featureFlags).length > 0 || false;\n }\n /**\n * push() keeps the standard async-array-push\n * behavior around after the lib is loaded.\n * This is only useful for external integrations that\n * do not wish to rely on our convenience methods\n * (created in the snippet).\n *\n * ### Usage:\n * posthog.push(['register', { a: 'b' }]);\n *\n * @param {Array} item A [function_name, args...] array to be executed\n */\n\n }, {\n key: \"push\",\n value: function push(item) {\n this._execute_array([item]);\n }\n /**\n * Capture an event. This is the most important and\n * frequently used PostHog function.\n *\n * ### Usage:\n *\n * // capture an event named 'Registered'\n * posthog.capture('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * // capture an event using navigator.sendBeacon\n * posthog.capture('Left page', {'duration_seconds': 35}, {transport: 'sendBeacon'});\n *\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Object} [options] Optional configuration for this capture request.\n * @param {String} [options.transport] Transport method for network request ('XHR' or 'sendBeacon').\n * @param {Date} [options.timestamp] Timestamp is a Date object. If not set, it'll automatically be set to the current time.\n */\n\n }, {\n key: \"capture\",\n value: function capture(event_name, properties) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : __NOOPTIONS;\n\n // While developing, a developer might purposefully _not_ call init(),\n // in this case, we would like capture to be a noop.\n if (!this.__loaded) {\n return;\n }\n\n if (userOptedOut(this, false)) {\n return;\n }\n\n this._captureMetrics.incr('capture');\n\n if (event_name === '$snapshot') {\n this._captureMetrics.incr('snapshot');\n }\n\n options = options || __NOOPTIONS;\n var transport = options['transport']; // external API, don't minify 'transport' prop\n\n if (transport) {\n options.transport = transport; // 'transport' prop name can be minified internally\n } // typing doesn't prevent interesting data\n\n\n if (_isUndefined(event_name) || typeof event_name !== 'string') {\n console.error('No event name provided to posthog.capture');\n return;\n }\n\n if (_isBlockedUA(userAgent)) {\n return;\n } // update persistence\n\n\n this.persistence.update_search_keyword(document$1.referrer);\n\n if (this.get_config('store_google')) {\n this.persistence.update_campaign_params();\n }\n\n if (this.get_config('save_referrer')) {\n this.persistence.update_referrer_info(document$1.referrer);\n }\n\n var data = {\n event: event_name,\n properties: this._calculate_event_properties(event_name, properties || {})\n };\n\n if (event_name === '$identify' && options.$set) {\n data['$set'] = options['$set'];\n }\n\n data = _copyAndTruncateStrings(data, options._noTruncate ? null : this.get_config('properties_string_max_length'));\n data.timestamp = options.timestamp || new Date();\n\n if (this.get_config('debug')) {\n logger.log('PostHog.js send', data);\n }\n\n var jsonData = JSON.stringify(data);\n var url = this.get_config('api_host') + (options.endpoint || '/e/');\n var has_unique_traits = options !== __NOOPTIONS;\n\n if (this.get_config('request_batching') && (!has_unique_traits || options._batchKey) && !options.send_instantly) {\n this._requestQueue.enqueue(url, data, options);\n } else {\n this.__compress_and_send_json_request(url, jsonData, options);\n }\n\n this._invokeCaptureHooks(event_name, data);\n\n return data;\n }\n }, {\n key: \"_addCaptureHook\",\n value: function _addCaptureHook(callback) {\n this.__captureHooks.push(callback);\n }\n }, {\n key: \"_invokeCaptureHooks\",\n value: function _invokeCaptureHooks(eventName, eventData) {\n this.config._onCapture(eventName, eventData);\n\n _each(this.__captureHooks, function (callback) {\n return callback(eventName);\n });\n }\n }, {\n key: \"_calculate_event_properties\",\n value: function _calculate_event_properties(event_name, event_properties) {\n var _this$webPerformance;\n\n // set defaults\n var start_timestamp = this.persistence.remove_event_timer(event_name);\n\n var properties = _objectSpread2({}, event_properties);\n\n properties['token'] = this.get_config('token');\n\n if (event_name === '$snapshot') {\n var persistenceProps = this.persistence.properties();\n properties['distinct_id'] = persistenceProps.distinct_id;\n return properties;\n }\n\n var infoProperties = _info.properties();\n\n if (this.sessionManager) {\n var _this$sessionManager$ = this.sessionManager.checkAndGetSessionAndWindowId(),\n sessionId = _this$sessionManager$.sessionId,\n windowId = _this$sessionManager$.windowId;\n\n properties['$session_id'] = sessionId;\n properties['$window_id'] = windowId;\n }\n\n if ((_this$webPerformance = this.webPerformance) !== null && _this$webPerformance !== void 0 && _this$webPerformance.isEnabled) {\n if (event_name === '$pageview') {\n this.pageViewIdManager.onPageview();\n }\n\n properties = _extend(properties, {\n $pageview_id: this.pageViewIdManager.getPageViewId()\n });\n }\n\n if (event_name === '$performance_event') {\n var _persistenceProps = this.persistence.properties(); // Early exit for $performance_event as we only need session and $current_url\n\n\n properties['distinct_id'] = _persistenceProps.distinct_id;\n properties['$current_url'] = infoProperties.$current_url;\n return properties;\n } // set $duration if time_event was previously called for this event\n\n\n if (typeof start_timestamp !== 'undefined') {\n var duration_in_ms = new Date().getTime() - start_timestamp;\n properties['$duration'] = parseFloat((duration_in_ms / 1000).toFixed(3));\n } // note: extend writes to the first object, so lets make sure we\n // don't write to the persistence properties object and info\n // properties object by passing in a new object\n // update properties with pageview info and super-properties\n\n\n properties = _extend({}, infoProperties, this.persistence.properties(), properties);\n var property_blacklist = this.get_config('property_blacklist');\n\n if (_isArray(property_blacklist)) {\n _each(property_blacklist, function (blacklisted_prop) {\n delete properties[blacklisted_prop];\n });\n } else {\n console.error('Invalid value for property_blacklist config: ' + property_blacklist);\n }\n\n var sanitize_properties = this.get_config('sanitize_properties');\n\n if (sanitize_properties) {\n properties = sanitize_properties(properties, event_name);\n }\n\n return properties;\n }\n /**\n * Register a set of super properties, which are included with all\n * events. This will overwrite previous super property values.\n *\n * ### Usage:\n *\n * // register 'Gender' as a super property\n * posthog.register({'Gender': 'Female'});\n *\n * // register several super properties when a user signs up\n * posthog.register({\n * 'Email': 'jdoe@example.com',\n * 'Account Type': 'Free'\n * });\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {Number} [days] How many days since the user's last visit to store the super properties\n */\n\n }, {\n key: \"register\",\n value: function register(properties, days) {\n this.persistence.register(properties, days);\n }\n /**\n * Register a set of super properties only once. This will not\n * overwrite previous super property values, unlike register().\n *\n * ### Usage:\n *\n * // register a super property for the first time only\n * posthog.register_once({\n * 'First Login Date': new Date().toISOString()\n * });\n *\n * ### Notes:\n *\n * If default_value is specified, current super properties\n * with that value will be overwritten.\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {*} [default_value] Value to override if already set in super properties (ex: 'False') Default: 'None'\n * @param {Number} [days] How many days since the users last visit to store the super properties\n */\n\n }, {\n key: \"register_once\",\n value: function register_once(properties, default_value, days) {\n this.persistence.register_once(properties, default_value, days);\n }\n /**\n * Delete a super property stored with the current user.\n *\n * @param {String} property The name of the super property to remove\n */\n\n }, {\n key: \"unregister\",\n value: function unregister(property) {\n this.persistence.unregister(property);\n }\n }, {\n key: \"_register_single\",\n value: function _register_single(prop, value) {\n this.register(_defineProperty({}, prop, value));\n }\n /*\n * Get feature flag value for user (supports multivariate flags).\n *\n * ### Usage:\n *\n * if(posthog.getFeatureFlag('beta-feature') === 'some-value') { // do something }\n *\n * @param {Object|String} prop Key of the feature flag.\n * @param {Object|String} options (optional) If {send_event: false}, we won't send an $feature_flag_call event to PostHog.\n */\n\n }, {\n key: \"getFeatureFlag\",\n value: function getFeatureFlag(key, options) {\n return this.featureFlags.getFeatureFlag(key, options);\n }\n /*\n * Get feature flag payload value matching key for user (supports multivariate flags).\n *\n * ### Usage:\n *\n * if(posthog.getFeatureFlag('beta-feature') === 'some-value') {\n * const someValue = posthog.getFeatureFlagPayload('beta-feature')\n * // do something\n * }\n *\n * @param {Object|String} prop Key of the feature flag.\n */\n\n }, {\n key: \"getFeatureFlagPayload\",\n value: function getFeatureFlagPayload(key) {\n var payload = this.featureFlags.getFeatureFlagPayload(key);\n\n try {\n return JSON.parse(payload);\n } catch (_unused) {\n return payload;\n }\n }\n /*\n * See if feature flag is enabled for user.\n *\n * ### Usage:\n *\n * if(posthog.isFeatureEnabled('beta-feature')) { // do something }\n *\n * @param {Object|String} prop Key of the feature flag.\n * @param {Object|String} options (optional) If {send_event: false}, we won't send an $feature_flag_call event to PostHog.\n */\n\n }, {\n key: \"isFeatureEnabled\",\n value: function isFeatureEnabled(key, options) {\n return this.featureFlags.isFeatureEnabled(key, options);\n }\n }, {\n key: \"reloadFeatureFlags\",\n value: function reloadFeatureFlags() {\n this.featureFlags.reloadFeatureFlags();\n }\n /*\n * Register an event listener that runs when feature flags become available or when they change.\n * If there are flags, the listener is called immediately in addition to being called on future changes.\n *\n * ### Usage:\n *\n * posthog.onFeatureFlags(function(featureFlags) { // do something })\n *\n * @param {Function} [callback] The callback function will be called once the feature flags are ready or when they are updated.\n * It'll return a list of feature flags enabled for the user.\n */\n\n }, {\n key: \"onFeatureFlags\",\n value: function onFeatureFlags(callback) {\n return this.featureFlags.onFeatureFlags(callback);\n }\n /**\n * Identify a user with a unique ID instead of a PostHog\n * randomly generated distinct_id. If the method is never called,\n * then unique visitors will be identified by a UUID that is generated\n * the first time they visit the site.\n *\n * If user properties are passed, they are also sent to posthog.\n *\n * ### Usage:\n *\n * posthog.identify('[user unique id]')\n * posthog.identify('[user unique id]', { email: 'john@example.com' })\n * posthog.identify('[user unique id]', {}, { referral_code: '12345' })\n *\n * ### Notes:\n *\n * You can call this function to overwrite a previously set\n * unique ID for the current user.\n *\n * If the user has been identified ($user_state in persistence is set to 'identified'),\n * then capture of $identify is skipped to avoid merging users. For example,\n * if your system allows an admin user to impersonate another user.\n *\n * Then a single browser instance can have:\n *\n * `identify('a') -> capture(1) -> identify('b') -> capture(2)`\n *\n * and capture 1 and capture 2 will have the correct distinct_id.\n * but users a and b will NOT be merged in posthog.\n *\n * However, if reset is called then:\n *\n * `identify('a') -> capture(1) -> reset() -> capture(2) -> identify('b') -> capture(3)`\n *\n * users a and b are not merged.\n * Capture 1 is associated with user a.\n * A new distinct id is generated for capture 2.\n * which is merged with user b.\n * So, capture 2 and 3 are associated with user b.\n *\n * If you want to merge two identified users, you can call posthog.alias\n *\n * @param {String} [new_distinct_id] A string that uniquely identifies a user. If not provided, the distinct_id currently in the persistent store (cookie or localStorage) will be used.\n * @param {Object} [userPropertiesToSet] Optional: An associative array of properties to store about the user\n * @param {Object} [userPropertiesToSetOnce] Optional: An associative array of properties to store about the user. If property is previously set, this does not override that value.\n */\n\n }, {\n key: \"identify\",\n value: function identify(new_distinct_id, userPropertiesToSet, userPropertiesToSetOnce) {\n //if the new_distinct_id has not been set ignore the identify event\n if (!new_distinct_id) {\n console.error('Unique user id has not been set in posthog.identify');\n return;\n }\n\n this._captureMetrics.incr('identify');\n\n var previous_distinct_id = this.get_distinct_id();\n this.register({\n $user_id: new_distinct_id\n });\n\n if (!this.get_property('$device_id')) {\n // The persisted distinct id might not actually be a device id at all\n // it might be a distinct id of the user from before\n var device_id = previous_distinct_id;\n this.register_once({\n $had_persisted_distinct_id: true,\n $device_id: device_id\n }, '');\n } // if the previous distinct id had an alias stored, then we clear it\n\n\n if (new_distinct_id !== previous_distinct_id && new_distinct_id !== this.get_property(ALIAS_ID_KEY)) {\n this.unregister(ALIAS_ID_KEY);\n this.register({\n distinct_id: new_distinct_id\n });\n }\n\n var isKnownAnonymous = this.persistence.get_user_state() === 'anonymous'; // send an $identify event any time the distinct_id is changing and the old ID is an anoymous ID\n // - logic on the server will determine whether or not to do anything with it.\n\n if (new_distinct_id !== previous_distinct_id && isKnownAnonymous) {\n this.persistence.set_user_state('identified');\n this.capture('$identify', {\n distinct_id: new_distinct_id,\n $anon_distinct_id: previous_distinct_id\n }, {\n $set: userPropertiesToSet || {},\n $set_once: userPropertiesToSetOnce || {}\n }); // let the reload feature flag request know to send this previous distinct id\n // for flag consistency\n\n this.featureFlags.setAnonymousDistinctId(previous_distinct_id);\n } else {\n if (userPropertiesToSet) {\n this.people.set(userPropertiesToSet);\n }\n\n if (userPropertiesToSetOnce) {\n this.people.set_once(userPropertiesToSetOnce);\n }\n } // Reload active feature flags if the user identity changes.\n // Note we don't reload this on property changes as these get processed async\n\n\n if (new_distinct_id !== previous_distinct_id) {\n this.reloadFeatureFlags();\n }\n }\n /**\n * Alpha feature: don't use unless you know what you're doing!\n *\n * Sets group analytics information for subsequent events and reloads feature flags.\n *\n * @param {String} groupType Group type (example: 'organization')\n * @param {String} groupKey Group key (example: 'org::5')\n * @param {Object} groupPropertiesToSet Optional properties to set for group\n */\n\n }, {\n key: \"group\",\n value: function group(groupType, groupKey, groupPropertiesToSet) {\n if (!groupType || !groupKey) {\n console.error('posthog.group requires a group type and group key');\n return;\n }\n\n this._captureMetrics.incr('group');\n\n var existingGroups = this.getGroups();\n this.register({\n $groups: _objectSpread2(_objectSpread2({}, existingGroups), {}, _defineProperty({}, groupType, groupKey))\n });\n\n if (groupPropertiesToSet) {\n this.capture('$groupidentify', {\n $group_type: groupType,\n $group_key: groupKey,\n $group_set: groupPropertiesToSet\n });\n } // If groups change, reload feature flags.\n\n\n if (existingGroups[groupType] !== groupKey) {\n this.reloadFeatureFlags();\n }\n }\n /**\n * Resets only the group properties of the user currently logged in.\n */\n\n }, {\n key: \"resetGroups\",\n value: function resetGroups() {\n this.register({\n $groups: {}\n }); // If groups changed, reload feature flags.\n\n this.reloadFeatureFlags();\n }\n /**\n * Clears super properties and generates a new random distinct_id for this instance.\n * Useful for clearing data when a user logs out.\n */\n\n }, {\n key: \"reset\",\n value: function reset(reset_device_id) {\n var device_id = this.get_property('$device_id');\n this.persistence.clear();\n this.persistence.set_user_state('anonymous');\n this.sessionManager.resetSessionId();\n var uuid = this.get_config('get_device_id')(_UUID());\n this.register_once({\n distinct_id: uuid,\n $device_id: reset_device_id ? uuid : device_id\n }, '');\n }\n /**\n * Returns the current distinct id of the user. This is either the id automatically\n * generated by the library or the id that has been passed by a call to identify().\n *\n * ### Notes:\n *\n * get_distinct_id() can only be called after the PostHog library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // set distinct_id after the posthog library has loaded\n * posthog.init('YOUR PROJECT TOKEN', {\n * loaded: function(posthog) {\n * distinct_id = posthog.get_distinct_id();\n * }\n * });\n */\n\n }, {\n key: \"get_distinct_id\",\n value: function get_distinct_id() {\n return this.get_property('distinct_id');\n }\n }, {\n key: \"getGroups\",\n value: function getGroups() {\n return this.get_property('$groups') || {};\n }\n /**\n * Create an alias, which PostHog will use to link two distinct_ids going forward (not retroactively).\n * Multiple aliases can map to the same original ID, but not vice-versa. Aliases can also be chained - the\n * following is a valid scenario:\n *\n * posthog.alias('new_id', 'existing_id');\n * ...\n * posthog.alias('newer_id', 'new_id');\n *\n * If the original ID is not passed in, we will use the current distinct_id - probably the auto-generated GUID.\n *\n * ### Notes:\n *\n * The best practice is to call alias() when a unique ID is first created for a user\n * (e.g., when a user first registers for an account and provides an email address).\n * alias() should never be called more than once for a given user, except to\n * chain a newer ID to a previously new ID, as described above.\n *\n * @param {String} alias A unique identifier that you want to use for this user in the future.\n * @param {String} [original] The current identifier being used for this user.\n */\n\n }, {\n key: \"alias\",\n value: function alias(_alias, original) {\n // If the $people_distinct_id key exists in persistence, there has been a previous\n // posthog.people.identify() call made for this user. It is VERY BAD to make an alias with\n // this ID, as it will duplicate users.\n if (_alias === this.get_property(PEOPLE_DISTINCT_ID_KEY)) {\n logger.critical('Attempting to create alias for existing People user - aborting.');\n return -2;\n }\n\n if (_isUndefined(original)) {\n original = this.get_distinct_id();\n }\n\n if (_alias !== original) {\n this._register_single(ALIAS_ID_KEY, _alias);\n\n return this.capture('$create_alias', {\n alias: _alias,\n distinct_id: original\n });\n } else {\n console.error('alias matches current distinct_id - skipping api call.');\n this.identify(_alias);\n return -1;\n }\n }\n /**\n * Update the configuration of a posthog library instance.\n *\n * The default config is:\n *\n * {\n * // PostHog API host\n * api_host: 'https://app.posthog.com',\n *\n * // HTTP method for capturing requests\n * api_method: 'POST'\n *\n * // PostHog web app host, currently only used by the Sentry integration.\n * // This will only be different from api_host when using a reverse-proxied API host – in that case\n * // the original web app host needs to be passed here so that links to the web app are still convenient.\n * ui_host: 'https://app.posthog.com',\n *\n * // Automatically capture clicks, form submissions and change events\n * autocapture: true\n *\n * // Capture rage clicks\n * rageclick: true\n *\n * // transport for sending requests ('XHR' or 'sendBeacon')\n * // NB: sendBeacon should only be used for scenarios such as\n * // page unload where a \"best-effort\" attempt to send is\n * // acceptable; the sendBeacon API does not support callbacks\n * // or any way to know the result of the request. PostHog\n * // capturing via sendBeacon will not support any event-\n * // batching or retry mechanisms.\n * api_transport: 'XHR'\n *\n * // super properties cookie expiration (in days)\n * cookie_expiration: 365\n *\n * // super properties span subdomains\n * cross_subdomain_cookie: true\n *\n * // debug mode\n * debug: false\n *\n * // if this is true, the posthog cookie or localStorage entry\n * // will be deleted, and no user persistence will take place\n * disable_persistence: false\n *\n * // if this is true, PostHog will automatically determine\n * // City, Region and Country data using the IP address of\n * //the client\n * ip: true\n *\n * // opt users out of capturing by this PostHog instance by default\n * opt_out_capturing_by_default: false\n *\n * // opt users out of browser data storage by this PostHog instance by default\n * opt_out_persistence_by_default: false\n *\n * // persistence mechanism used by opt-in/opt-out methods - cookie\n * // or localStorage - falls back to cookie if localStorage is unavailable\n * opt_out_capturing_persistence_type: 'localStorage'\n *\n * // customize the name of cookie/localStorage set by opt-in/opt-out methods\n * opt_out_capturing_cookie_prefix: null\n *\n * // type of persistent store for super properties (cookie/\n * // localStorage) if set to 'localStorage', any existing\n * // posthog cookie value with the same persistence_name\n * // will be transferred to localStorage and deleted\n * persistence: 'cookie'\n *\n * // name for super properties persistent store\n * persistence_name: ''\n *\n * // names of properties/superproperties which should never\n * // be sent with capture() calls\n * property_blacklist: []\n *\n * // if this is true, posthog cookies will be marked as\n * // secure, meaning they will only be transmitted over https\n * secure_cookie: false\n *\n * // should we capture a page view on page load\n * capture_pageview: true\n *\n * // if you set upgrade to be true, the library will check for\n * // a cookie from our old js library and import super\n * // properties from it, then the old cookie is deleted\n * // The upgrade config option only works in the initialization,\n * // so make sure you set it when you create the library.\n * upgrade: false\n *\n * // if this is true, session recording is always disabled.\n * disable_session_recording: false,\n *\n * // extra HTTP request headers to set for each API request, in\n * // the format {'Header-Name': value}\n * xhr_headers: {}\n *\n * // protocol for fetching in-app message resources, e.g.\n * // 'https://' or 'http://'; defaults to '//' (which defers to the\n * // current page's protocol)\n * inapp_protocol: '//'\n *\n * // whether to open in-app message link in new tab/window\n * inapp_link_new_window: false\n *\n * // a set of rrweb config options that PostHog users can configure\n * // see https://github.com/rrweb-io/rrweb/blob/master/guide.md\n * session_recording: {\n * blockClass: 'ph-no-capture',\n * blockSelector: null,\n * ignoreClass: 'ph-ignore-input',\n * maskAllInputs: true,\n * maskInputOptions: {},\n * maskInputFn: null,\n * slimDOMOptions: {},\n * collectFonts: false\n * }\n *\n * // prevent autocapture from capturing any attribute names on elements\n * mask_all_element_attributes: false\n *\n * // prevent autocapture from capturing textContent on all elements\n * mask_all_text: false\n *\n * // Anonymous users get a random UUID as their device by default.\n * // This option allows overriding that option.\n * get_device_id: (uuid) => uuid\n * }\n *\n *\n * @param {Object} config A dictionary of new configuration values to update\n */\n\n }, {\n key: \"set_config\",\n value: function set_config(config) {\n var oldConfig = _objectSpread2({}, this.config);\n\n if (_isObject(config)) {\n _extend(this.config, config);\n\n if (!this.get_config('persistence_name')) {\n this.config.persistence_name = this.config.cookie_name;\n }\n\n if (!this.get_config('disable_persistence')) {\n this.config.disable_persistence = this.config.disable_cookie;\n }\n\n if (this.persistence) {\n this.persistence.update_config(this.config);\n }\n\n if (localStore.is_supported() && localStore.get('ph_debug') === 'true') {\n this.config.debug = true;\n }\n\n if (this.get_config('debug')) {\n Config.DEBUG = true;\n }\n\n if (this.sessionRecording && typeof config.disable_session_recording !== 'undefined') {\n if (oldConfig.disable_session_recording !== config.disable_session_recording) {\n if (config.disable_session_recording) {\n this.sessionRecording.stopRecording();\n } else {\n this.sessionRecording.startRecordingIfEnabled();\n }\n }\n }\n }\n }\n /**\n * turns session recording on, and updates the config option\n * disable_session_recording to false\n */\n\n }, {\n key: \"startSessionRecording\",\n value: function startSessionRecording() {\n this.set_config({\n disable_session_recording: false\n });\n }\n /**\n * turns session recording off, and updates the config option\n * disable_session_recording to true\n */\n\n }, {\n key: \"stopSessionRecording\",\n value: function stopSessionRecording() {\n this.set_config({\n disable_session_recording: true\n });\n }\n /**\n * returns a boolean indicating whether session recording\n * is currently running\n */\n\n }, {\n key: \"sessionRecordingStarted\",\n value: function sessionRecordingStarted() {\n var _this$sessionRecordin;\n\n return !!((_this$sessionRecordin = this.sessionRecording) !== null && _this$sessionRecordin !== void 0 && _this$sessionRecordin.started());\n }\n /**\n * returns a boolean indicating whether the toolbar loaded\n * @param toolbarParams\n */\n\n }, {\n key: \"loadToolbar\",\n value: function loadToolbar(params) {\n return this.toolbar.loadToolbar(params);\n }\n /**\n * returns the current config object for the library.\n */\n\n }, {\n key: \"get_config\",\n value: function get_config(prop_name) {\n var _this$config;\n\n return (_this$config = this.config) === null || _this$config === void 0 ? void 0 : _this$config[prop_name];\n }\n /**\n * Returns the value of the super property named property_name. If no such\n * property is set, get_property() will return the undefined value.\n *\n * ### Notes:\n *\n * get_property() can only be called after the PostHog library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // grab value for 'user_id' after the posthog library has loaded\n * posthog.init('YOUR PROJECT TOKEN', {\n * loaded: function(posthog) {\n * user_id = posthog.get_property('user_id');\n * }\n * });\n *\n * @param {String} property_name The name of the super property you want to retrieve\n */\n\n }, {\n key: \"get_property\",\n value: function get_property(property_name) {\n return this.persistence['props'][property_name];\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var _this$get_config;\n\n var name = (_this$get_config = this.get_config('name')) !== null && _this$get_config !== void 0 ? _this$get_config : PRIMARY_INSTANCE_NAME;\n\n if (name !== PRIMARY_INSTANCE_NAME) {\n name = PRIMARY_INSTANCE_NAME + '.' + name;\n }\n\n return name;\n } // perform some housekeeping around GDPR opt-in/out state\n\n }, {\n key: \"_gdpr_init\",\n value: function _gdpr_init() {\n var is_localStorage_requested = this.get_config('opt_out_capturing_persistence_type') === 'localStorage'; // try to convert opt-in/out cookies to localStorage if possible\n\n if (is_localStorage_requested && localStore.is_supported()) {\n if (!this.has_opted_in_capturing() && this.has_opted_in_capturing({\n persistence_type: 'cookie'\n })) {\n this.opt_in_capturing({\n enable_persistence: false\n });\n }\n\n if (!this.has_opted_out_capturing() && this.has_opted_out_capturing({\n persistence_type: 'cookie'\n })) {\n this.opt_out_capturing({\n clear_persistence: false\n });\n }\n\n this.clear_opt_in_out_capturing({\n persistence_type: 'cookie',\n enable_persistence: false\n });\n } // check whether the user has already opted out - if so, clear & disable persistence\n\n\n if (this.has_opted_out_capturing()) {\n this._gdpr_update_persistence({\n clear_persistence: true\n }); // check whether we should opt out by default\n // note: we don't clear persistence here by default since opt-out default state is often\n // used as an initial state while GDPR information is being collected\n\n } else if (!this.has_opted_in_capturing() && (this.get_config('opt_out_capturing_by_default') || cookieStore.get('ph_optout'))) {\n cookieStore.remove('ph_optout');\n this.opt_out_capturing({\n clear_persistence: this.get_config('opt_out_persistence_by_default')\n });\n }\n }\n /**\n * Enable or disable persistence based on options\n * only enable/disable if persistence is not already in this state\n * @param {boolean} [options.clear_persistence] If true, will delete all data stored by the sdk in persistence and disable it\n * @param {boolean} [options.enable_persistence] If true, will re-enable sdk persistence\n */\n\n }, {\n key: \"_gdpr_update_persistence\",\n value: function _gdpr_update_persistence(options) {\n var disabled;\n\n if (options && options['clear_persistence']) {\n disabled = true;\n } else if (options && options['enable_persistence']) {\n disabled = false;\n } else {\n return;\n }\n\n if (!this.get_config('disable_persistence') && this.persistence.disabled !== disabled) {\n this.persistence.set_disabled(disabled);\n }\n } // call a base gdpr function after constructing the appropriate token and options args\n\n }, {\n key: \"_gdpr_call_func\",\n value: function _gdpr_call_func(func, options) {\n options = _extend({\n capture: this.capture.bind(this),\n persistence_type: this.get_config('opt_out_capturing_persistence_type'),\n cookie_prefix: this.get_config('opt_out_capturing_cookie_prefix'),\n cookie_expiration: this.get_config('cookie_expiration'),\n cross_subdomain_cookie: this.get_config('cross_subdomain_cookie'),\n secure_cookie: this.get_config('secure_cookie')\n }, options || {}); // check if localStorage can be used for recording opt out status, fall back to cookie if not\n\n if (!localStore.is_supported() && options['persistence_type'] === 'localStorage') {\n options['persistence_type'] = 'cookie';\n }\n\n return func(this.get_config('token'), {\n capture: options['capture'],\n captureEventName: options['capture_event_name'],\n captureProperties: options['capture_properties'],\n persistenceType: options['persistence_type'],\n persistencePrefix: options['cookie_prefix'],\n cookieExpiration: options['cookie_expiration'],\n crossSubdomainCookie: options['cross_subdomain_cookie'],\n secureCookie: options['secure_cookie']\n });\n }\n /**\n * Opt the user in to data capturing and cookies/localstorage for this PostHog instance\n *\n * ### Usage\n *\n * // opt user in\n * posthog.opt_in_capturing();\n *\n * // opt user in with specific event name, properties, cookie configuration\n * posthog.opt_in_capturing({\n * capture_event_name: 'User opted in',\n * capture_event_properties: {\n * 'Email': 'jdoe@example.com'\n * },\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {function} [options.capture] Function used for capturing a PostHog event to record the opt-in action (default is this PostHog instance's capture method)\n * @param {string} [options.capture_event_name=$opt_in] Event name to be used for capturing the opt-in action\n * @param {Object} [options.capture_properties] Set of properties to be captured along with the opt-in action\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__ph_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this PostHog instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this PostHog instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this PostHog instance's config)\n */\n\n }, {\n key: \"opt_in_capturing\",\n value: function opt_in_capturing(options) {\n options = _extend({\n enable_persistence: true\n }, options || {});\n\n this._gdpr_call_func(optIn, options);\n\n this._gdpr_update_persistence(options);\n }\n /**\n * Opt the user out of data capturing and cookies/localstorage for this PostHog instance\n *\n * ### Usage\n *\n * // opt user out\n * posthog.opt_out_capturing();\n *\n * // opt user out with different cookie configuration from PostHog instance\n * posthog.opt_out_capturing({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.clear_persistence=true] If true, will delete all data stored by the sdk in persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__ph_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this PostHog instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this PostHog instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this PostHog instance's config)\n */\n\n }, {\n key: \"opt_out_capturing\",\n value: function opt_out_capturing(options) {\n var _options = _extend({\n clear_persistence: true\n }, options || {});\n\n this._gdpr_call_func(optOut, _options);\n\n this._gdpr_update_persistence(_options);\n }\n /**\n * Check whether the user has opted in to data capturing and cookies/localstorage for this PostHog instance\n *\n * ### Usage\n *\n * const has_opted_in = posthog.has_opted_in_capturing();\n * // use has_opted_in value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__ph_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-in status\n */\n\n }, {\n key: \"has_opted_in_capturing\",\n value: function has_opted_in_capturing(options) {\n return this._gdpr_call_func(hasOptedIn, options);\n }\n /**\n * Check whether the user has opted out of data capturing and cookies/localstorage for this PostHog instance\n *\n * ### Usage\n *\n * const has_opted_out = posthog.has_opted_out_capturing();\n * // use has_opted_out value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__ph_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-out status\n */\n\n }, {\n key: \"has_opted_out_capturing\",\n value: function has_opted_out_capturing(options) {\n return this._gdpr_call_func(hasOptedOut, options);\n }\n /**\n * Clear the user's opt in/out status of data capturing and cookies/localstorage for this PostHog instance\n *\n * ### Usage\n *\n * // clear user's opt-in/out status\n * posthog.clear_opt_in_out_capturing();\n *\n * // clear user's opt-in/out status with specific cookie configuration - should match\n * // configuration used when opt_in_capturing/opt_out_capturing methods were called.\n * posthog.clear_opt_in_out_capturing({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__ph_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this PostHog instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this PostHog instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this PostHog instance's config)\n */\n\n }, {\n key: \"clear_opt_in_out_capturing\",\n value: function clear_opt_in_out_capturing(options) {\n var _options = _extend({\n enable_persistence: true\n }, options !== null && options !== void 0 ? options : {});\n\n this._gdpr_call_func(clearOptInOut, _options);\n\n this._gdpr_update_persistence(_options);\n }\n }, {\n key: \"debug\",\n value: function debug(_debug) {\n if (_debug === false) {\n win.console.log(\"You've disabled debug mode.\");\n localStorage && localStorage.removeItem('ph_debug');\n this.set_config({\n debug: false\n });\n } else {\n win.console.log(\"You're now in debug mode. All calls to PostHog will be logged in your console.\\nYou can disable this with `posthog.debug(false)`.\");\n localStorage && localStorage.setItem('ph_debug', 'true');\n this.set_config({\n debug: true\n });\n }\n }\n }, {\n key: \"decodeLZ64\",\n value: function decodeLZ64(input) {\n return LZString.decompressFromBase64(input || null);\n }\n }]);\n\n return PostHog;\n}();\n\n_safewrap_class(PostHog, ['identify']);\n\nvar instances = {};\n\nvar extend_mp = function extend_mp() {\n // add all the sub posthog instances\n _each(instances, function (instance, name) {\n if (name !== PRIMARY_INSTANCE_NAME) {\n posthog_master[name] = instance;\n }\n });\n};\n\nvar override_ph_init_func = function override_ph_init_func() {\n // we override the snippets init function to handle the case where a\n // user initializes the posthog library after the script loads & runs\n posthog_master['init'] = function (token, config, name) {\n if (name) {\n // initialize a sub library\n if (!posthog_master[name]) {\n posthog_master[name] = instances[name] = create_mplib(token || '', config || {}, name);\n\n posthog_master[name]._loaded();\n }\n\n return posthog_master[name];\n } else {\n var instance = posthog_master;\n\n if (instances[PRIMARY_INSTANCE_NAME]) {\n // main posthog lib already initialized\n instance = instances[PRIMARY_INSTANCE_NAME];\n } else if (token) {\n // intialize the main posthog lib\n instance = create_mplib(token, config || {}, PRIMARY_INSTANCE_NAME);\n\n instance._loaded();\n\n instances[PRIMARY_INSTANCE_NAME] = instance;\n }\n posthog_master = instance;\n\n if (init_type === InitType.INIT_SNIPPET) {\n win[PRIMARY_INSTANCE_NAME] = posthog_master;\n }\n\n extend_mp();\n return instance;\n }\n };\n};\n\nvar add_dom_loaded_handler = function add_dom_loaded_handler() {\n // Cross browser DOM Loaded support\n function dom_loaded_handler() {\n // function flag since we only want to execute this once\n if (dom_loaded_handler.done) {\n return;\n }\n dom_loaded_handler.done = true;\n ENQUEUE_REQUESTS = false;\n\n _each(instances, function (inst) {\n inst._dom_loaded();\n });\n }\n\n if (document$1.addEventListener) {\n if (document$1.readyState === 'complete') {\n // safari 4 can fire the DOMContentLoaded event before loading all\n // external JS (including this file). you will see some copypasta\n // on the internet that checks for 'complete' and 'loaded', but\n // 'loaded' is an IE thing\n dom_loaded_handler();\n } else {\n document$1.addEventListener('DOMContentLoaded', dom_loaded_handler, false);\n }\n } // fallback handler, always will work\n\n\n _register_event(win, 'load', dom_loaded_handler, true);\n};\nfunction init_as_module() {\n init_type = InitType.INIT_MODULE;\n posthog_master = new PostHog();\n override_ph_init_func();\n posthog_master['init']();\n add_dom_loaded_handler();\n return posthog_master;\n}\n\nvar posthog = init_as_module();\n\nexport { Compression, PostHog, posthog as default, posthog };\n//# sourceMappingURL=es.js.map\n"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","configurable","writable","_createClass","protoProps","staticProps","value","_inherits","subClass","superClass","create","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","bind","__proto__","p","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","result","Super","_possibleConstructorReturn","self","_assertThisInitialized","_slicedToArray","arr","_arrayWithHoles","Array","isArray","_iterableToArrayLimit","_s","_e","_i","_arr","_n","_d","next","done","err","_unsupportedIterableToArray","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_arrayLikeToArray","_iterableToArray","iter","from","_nonIterableSpread","minLen","n","toString","slice","name","test","len","arr2","_createForOfIteratorHelper","allowArrayLike","it","F","s","f","normalCompletion","didErr","step","return","T","UA","Compression","InitType","init_type","posthog_master","String","fromCharCode","keyStrBase64","keyStrUriSafe","baseReverseDic","getBaseValue","alphabet","character","charAt","LZString","compressToBase64","input","res","_compress","a","decompressFromBase64","_decompress","index","compressToUTF16","decompressFromUTF16","compressed","charCodeAt","compressToUint8Array","uncompressed","compress","buf","Uint8Array","TotalLen","current_value","decompressFromUint8Array","decompress","c","join","compressToEncodedURIComponent","decompressFromEncodedURIComponent","replace","bitsPerChar","getCharFromInt","ii","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data_val","context_data_position","context_dictionary","context_dictionaryToCreate","context_data","hasOwnProperty","Math","pow","resetValue","getNextValue","w","bits","resb","maxpower","power","dictionary","data","val","position","enlargeIn","dictSize","numBits","entry","Config","DEBUG","LIB_VERSION","ArrayProto","ObjProto","win","window","navigator","userAgent","document$1","document","nativeForEach","nativeIndexOf","indexOf","breaker","logger","log","_isUndefined","console","_len","args","_key","_eachArray","arg","error","_len2","_args","_key2","concat","critical","_len3","_key3","_trim","str","_each","thisArg","l","_key4","_extend","_len4","_key5","prop","_isArray","nativeIsArray","_isFunction","x","_include","found","_includes","needle","_isObject","_isString","_formatDate","d","pad","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","_safewrap","_len5","_key7","_strip_empty_properties","ret","v","k","LONG_STRINGS_ALLOW_LIST","_copyAndTruncateStrings","maxStringLength","customizer","COPY_IN_PROGRESS_SET","Set","internalDeepCircularCopy","has","add","_base64Encode","h1","h2","h3","h4","b64","ac","enc","tmp_arr","_utf8Encode","o1","o2","string","start","end","utftext","stringl","c1","substring","_UUID","Date","ch","buffer","xor","byte_array","j","tmp","ua","unshift","se","screen","height","width","random","_HTTPBuildQuery","formdata","use_val","use_key","arg_separator","undefined","tph_arr","encodeURIComponent","_getQueryParam","url","param","results","regex","exec","decodeURIComponent","_getHashParam","hash","matches","match","_register_event","fixEvent","event","preventDefault","stopPropagation","returnValue","cancelBubble","element","type","handler","oldSchool","useCapture","addEventListener","ontype","old_handler","old_result","old_handlers","new_result","new_handler","_info","campaignParams","params","split","kwkey","kw","URL","searchEngine","referrer","search","searchInfo","keyword","browser","user_agent","vendor","opera","browserVersion","versionRegexs","Chrome","Safari","Opera","Firefox","Konqueror","BlackBerry","Mozilla","parseFloat","browserLanguage","language","userLanguage","os","device","deviceType","referringDomain","properties","$os","$browser","$device","$device_type","$current_url","location","href","$host","host","$pathname","pathname","$browser_version","$browser_language","$screen_height","$screen_width","$viewport_height","innerHeight","$viewport_width","innerWidth","$lib","$lib_version","$insert_id","$time","_timestamp","now","people_properties","getClassName","el","className","baseVal","getAttribute","getSafeText","elText","shouldCaptureElement","isSensitiveElement","childNodes","child","isTextNode","textContent","shouldCaptureValue","isElementNode","nodeType","isTag","tag","tagName","toLowerCase","isDocumentFragment","autocaptureCompatibleElements","curEl","parentNode","classes","id","sensitiveNameRegex","allowedInputTypes","includes","ccRegex","ssnRegex","loadScript","scriptUrlToLoad","callback","_scripts$0$parentNode","scriptTag","createElement","src","onload","scripts","querySelectorAll","insertBefore","body","appendChild","RageClick","enabled","clicks","y","timestamp","lastClick","abs","autocapture","_initializedTokens","_previousElementSibling","previousElementSibling","_el","previousSibling","_getPropertiesFromElement","elem","maskInputs","maskText","tag_name","attributes","attr","attributeName","nthChild","nthOfType","currentElem","_getDefaultProperties","eventType","$event_type","$ce_version","_extractCustomPropertyValue","customProperty","propValues","matchedElem","_getCustomProperties","targetElementList","_this","_customProperties","eventSelector","eventElement","_getEventTarget","_e$target","srcElement","shadowRoot","composedPath","_captureEvent","_this2","eventName","MouseEvent","_this$rageclicks","rageclicks","isRageClick","clientX","clientY","getTime","shouldCaptureDomEvent","autocaptureConfig","url_allowlist","allowlist","some","dom_event_allowlist","_allowlist","element_allowlist","_allowlist2","elementType","css_selector_allowlist","_allowlist3","selector","parentIsUsefulElement","_compStyles","getComputedStyle","getPropertyValue","compStyles","config","elementsJson","explicitNoCapture","shouldCaptureEl","get_config","$elements","capture","_navigate","_addDomEventHandlers","_this3","init","_this$config","__autocapture","map","RegExp","afterDecideResponse","response","token","enabledForProject","numBuckets","numEnabledBuckets","charCodeSum","isBrowserSupported","_bind_instance_methods","func","_safewrap_instance_methods","DOMAIN_MATCH_REGEX","cookieStore","is_supported","msg","get","nameEQ","ca","cookie","parse","JSON","set","days","cross_subdomain","is_secure","cdomain","expires","secure","hostname","domain","date","setTime","toUTCString","new_cookie_val","stringify","remove","_localStorage_supported","localStore","supported","localStorage","getItem","setItem","removeItem","localPlusCookieStore","extend","distinct_id","memoryStorage","memoryStore","sessionStorageSupported","sessionStore","sessionStorage","optIn","options","_optInOut","optOut","hasOptedIn","_getStorageValue","hasOptedOut","_hasDoNotTrackFlagOn","respectDnt","win$1","nav","hasDntOn","dntValue","clearOptInOut","_getStorage","_getStorageKey","crossSubdomainCookie","persistenceType","persistencePrefix","optValue","_isNumber","cookieExpiration","secureCookie","captureEventName","captureProperties","send_instantly","userOptedOut","posthog","silenceErrors","optedOut","addOptOutCheck","method","SET_ACTION","PostHogPeople","_posthog","to","set_action","_get_config","persistence","update_referrer_info","get_referrer_info","_send_request","set_once","set_once_action","get_distinct_id","device_id","get_property","user_id","had_persisted_distinct_id","date_encoded_data","_encodeDates","truncated_data","encoded_data","_prepare_callback","conf_var","apiActionParser","actionType","_is_reserved_property","PERSISTENCE_ACTIVE_FEATURE_FLAGS","PERSISTENCE_ENABLED_FEATURE_FLAGS","PERSISTENCE_OVERRIDE_FEATURE_FLAGS","PERSISTENCE_FEATURE_FLAG_PAYLOADS","parseFeatureFlagDecideResponse","currentFlags","currentFlagPayloads","flags","flagPayloads","_persistence$register","$enabled_feature_flags","register","_persistence$register2","newFeatureFlags","newFeatureFlagPayloads","errorsWhileComputingFlags","unregister","PostHogFeatureFlags","_override_warning","flagCallReported","featureFlagEventHandlers","reloadFeatureFlagsQueued","reloadFeatureFlagsInAction","getFlagVariants","enabledFlags","overriddenFlags","finalFlags","overriddenKeys","warn","_startReloadTimer","anon_distinct_id","$anon_distinct_id","isPaused","setTimeout","_reloadFeatureFlagsRequest","setReloadingPaused","groups","getGroups","receivedFeatureFlags","getFlags","flagValue","send_event","$feature_flag","$feature_flag_response","payloads","getFlagPayloads","getFeatureFlag","decideEndpointWasHit","_this$_prepareFeature","_prepareFeatureFlagsForCallbacks","flagVariants","flagsObj","addFeatureFlagsHandler","_this$_prepareFeature2","flag","variantKey","reduce","PEOPLE_DISTINCT_ID_KEY","ALIAS_ID_KEY","EVENT_TIMERS_KEY","SESSION_RECORDING_ENABLED_SERVER_SIDE","CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE","SESSION_ID","ENABLED_FEATURE_FLAGS","USER_STATE","RESERVED_PROPERTIES","PostHogPersistence","campaign_params_saved","storage_type","storage","user_state","load","update_config","save","disabled","expire_days","default_value","default_expiry","hasChanges","$referrer","$referring_domain","set_disabled","set_cross_subdomain","set_secure","event_name","timers","state","SessionRecording","captureStarted","snapshots","emit","endpoint","stopRrweb","windowId","sessionId","receivedDecide","isRecordingEnabled","startCaptureAndTrySendingQueuedSnapshots","stopRecording","enabled_server_side","enabled_client_side","_response$sessionReco2","_response$sessionReco4","_response$sessionReco","_this$instance$persis","_response$sessionReco3","sessionRecording","consoleLogRecordingEnabled","recorderVersion","startRecordingIfEnabled","_captureSnapshot","_startCapture","assign","userSessionRecordingOptions","recorderJS","__loaded_recorder","_onScriptLoaded","_event$data","_this$rrwebRecord","isNotUserInteraction","_this$instance$sessio","sessionManager","checkAndGetSessionAndWindowId","rrwebRecord","takeFullSnapshot","_this$rrwebRecord2","sessionRecordingOptions","blockClass","blockSelector","ignoreClass","maskAllInputs","maskInputOptions","maskInputFn","slimDOMOptions","collectFonts","inlineStylesheet","rrweb","record","_Object$entries","entries","_Object$entries$_i","truncateLargeConsoleLogs","plugin","payload","updatedPayload","filterDataURLsFromLargeDataObjects","stringifiedData","_step","_iterator","matchAll","toLocaleLowerCase","_updateWindowAndSessionIds","$snapshot_data","$session_id","$window_id","_captureMetrics","incr","plugins","rrwebConsoleRecord","isConsoleLogCaptureEnabled","getRecordConsolePlugin","_addCaptureHook","_this2$rrwebRecord","addCustomEvent","transport","_noTruncate","_batchKey","_metrics","rrweb_full_snapshot","PERFORMANCE_EVENTS_MAPPING","entryType","timeOrigin","startTime","redirectStart","redirectEnd","workerStart","fetchStart","domainLookupStart","domainLookupEnd","connectStart","secureConnectionStart","connectEnd","requestStart","responseStart","responseEnd","decodedBodySize","encodedBodySize","initiatorType","nextHopProtocol","renderBlockingStatus","responseStatus","transferSize","renderTime","loadTime","size","domComplete","domContentLoadedEvent","domInteractive","loadEventEnd","loadEventStart","redirectCount","navigationType","unloadEventEnd","unloadEventStart","duration","ENTRY_TYPES_TO_OBSERVE","POSTHOG_PATHS_TO_IGNORE","WebPerformanceObserver","isEnabled","startObserving","stopObserving","observer","PerformanceObserver","list","getEntries","_capturePerformanceEvent","entryTypes","supportedEntryTypes","_this$observer","observe","buffered","disconnect","_ref","_this$instance$get_co","remoteEnabled","capturePerformance","startsWith","path","find","eventJson","toJSON","floor","performance","capturePerformanceEvent","exposesServerTiming","serverTiming","_this$capturePerforma","timing","Decide","_hasBootstrappedFeatureFlags","verbose","parseDecideResponse","_this$instance$webPer","status","toolbar","webPerformance","featureFlags","compression","_step2","apiHost","_iterator2","_loop","_step2$value","script","onerror","POSTHOG_MANAGED_HOSTS","_excluded","Toolbar","toolbarParams","toolbarVersion","loadToolbar","apiURL","history","stateHash","replaceState","title","userIntent","timestampToNearestThirtySeconds","toolbarUrl","endsWith","disableToolbarMetrics","jsURL","instrument","paramsToPersist","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","maybeLoadToolbar","RequestQueueScaffold","pollInterval","isPolling","_event_queue","_empty_queue_count","_poller","_pollInterval","interval","poll","RequestQueue","_RequestQueueScaffold","_super","captureMetrics","handlePollRequest","clearTimeout","requests","formatQueue","_requests$key","_","dataKey","_requests$key2","_url","_data","requestValues","values","sortedRequests","r","request","CaptureMetrics","metrics","by","u8","u16","Uint16Array","u32","Uint32Array","fleb","fdeb","clim","freb","eb","b","_a","fl","revfl","revfd","_b","rev","hMap","cd","mb","co","le","rvb","sv","r_1","m","flt","fdt","flm","fdm","shft","slc","subarray","wbits","wbits16","hTree","t","t2","sort","i0","i1","i2","maxSym","tr","mbt","ln","dt","lft","cst","i2_1","i2_2","i2_3","max","lc","cl","cli","cln","cls","clen","cf","wfblk","out","pos","dat","wblk","_final2","syms","lf","df","li","bs","bl","lm","ll","dm","dl","dlt","mlb","ddt","mdb","_c","lclt","nlc","lcdt","ndc","lcfreq","lct","mlcb","nlcc","flen","ftlen","dtlen","llm","lcts","clct","dst","deo","et","dflt","lvl","plvl","pre","post","lst","opt","msk_1","prev","head","bs1_1","ceil","bs2_1","hsh","lc_1","wi","hv","imod","pimod","rem","ch_1","dif","maxn","min","maxd","ml","nl","mmd","md","ti","pti","lin","din","crct","crc","cr","wbytes","gzh","fn","filename","level","mtime","addParamsToURL","urlQueryArgs","parameterOptions","halves","argSeparator","encodePostData","body_data","blob","Blob","sendBeacon","xhr","headers","retriesPerformedSoFar","retryQueue","onXHRError","_ref$timeout","timeout","req","XMLHttpRequest","open","headerValue","headerName","setRequestHeader","withCredentials","onreadystatechange","readyState","decr","responseText","enqueue","send","RetryQueue","queue","areWeOnline","onLine","_handleWeAreNowOnline","requestData","msToNextRetry","retryAt","flush","toFlush","_ref2","_executeXhrRequest","_ref3","SessionIdManager","_windowId","_sessionId","_sessionStartTimestamp","_sessionActivityTimestamp","persistenceName","window_id_storage_key","primary_window_exists_storage_key","lastWindowId","primaryWindowExists","_listenToReloadWindow","sessionActivityTimestamp","sessionStartTimestamp","_setSessionId","readOnly","_this$_getSessionId2","_getSessionId","lastTimestamp","startTimestamp","_getWindowId","sessionPastMaximumLength","_setWindowId","SentryIntegration","organization","projectId","prefix","setupOnce","addGlobalEventProcessor","__loaded","tags","_event$exception","_exceptions$","_exceptions$2","ui_host","api_host","sessionRecordingStarted","exceptions","exception","$sentry_event_id","event_id","$sentry_exception","$sentry_exception_message","$sentry_exception_type","$sentry_tags","createSegmentIntegration","enrichEvent","ctx","userId","anonymousId","reset","reloadFeatureFlags","additionalProperties","_calculate_event_properties","version","isLoaded","Promise","resolve","track","page","identify","PageViewIdManager","_seenFirstPageView","_pageViewId","__NOOP","__NOOPTIONS","PRIMARY_INSTANCE_NAME","USE_XHR","ENQUEUE_REQUESTS","defaultConfig","_document$location","_document$location$ho","_window$location","api_method","api_transport","rageclick","cross_subdomain_cookie","persistence_name","cookie_name","loaded","store_google","save_referrer","img","capture_pageview","capture_pageleave","debug","cookie_expiration","upgrade","disable_session_recording","disable_persistence","disable_cookie","enable_recording_console_log","secure_cookie","protocol","ip","opt_out_capturing_by_default","opt_out_persistence_by_default","opt_out_capturing_persistence_type","opt_out_capturing_cookie_prefix","opt_in_site_apps","property_blacklist","respect_dnt","sanitize_properties","xhr_headers","inapp_protocol","inapp_link_new_window","request_batching","properties_string_max_length","session_recording","mask_all_element_attributes","mask_all_text","advanced_disable_decide","advanced_disable_toolbar_metrics","on_xhr_error","statusText","get_device_id","uuid","_onCapture","_capture_metrics","capture_performance","callback_fn","bootstrap","disable_compression","create_mplib","INIT_MODULE","PostHog","_init","startObservingIfEnabled","_execute_array","people","segmentIntegration","__captureHooks","__request_queue","_jsc","feature_flags","pageViewIdManager","_requestQueue","_retryQueue","_loaded","_triggered_notifs","set_config","_window$rrweb","_handle_queued_event","_gdpr_init","segment","user","set_user_state","_config$bootstrap","distinctID","_config$bootstrap2","_config$bootstrap3","deviceID","isIdentifiedID","$device_id","_config$bootstrap4","_config$bootstrap7","activeFlags","_config$bootstrap5","_config$bootstrap5$fe","_config$bootstrap6","_config$bootstrap6$fe","featureFlagPayloads","_config$bootstrap8","_config$bootstrap8$fe","_config$bootstrap9","_config$bootstrap9$fe","_uuid","register_once","_handle_unload","_start_queue_if_opted_in","resetRequestQueue","has_opted_out_capturing","item","jsc","randomized_cb","callback_string","updateUnloadMetrics","unload","jsonData","__compress_and_send_json_request","opts","compressionSupport","_compressData2","GZipJS","LZ64","Base64","strToU8","latin1","TextEncoder","encode","ar","ai","mem","_options","useSendBeacon","_s$parentNode","async","defer","getElementsByTagName","array","fn_name","alias_calls","other_calls","capturing_calls","execute","calls","caller","_this$config$bootstra","_this$config$bootstra2","update_search_keyword","update_campaign_params","$set","has_unique_traits","_invokeCaptureHooks","eventData","event_properties","_this$webPerformance","start_timestamp","remove_event_timer","persistenceProps","infoProperties","_this$sessionManager$","onPageview","$pageview_id","getPageViewId","_persistenceProps","duration_in_ms","toFixed","blacklisted_prop","property","getFeatureFlagPayload","_unused","isFeatureEnabled","onFeatureFlags","new_distinct_id","userPropertiesToSet","userPropertiesToSetOnce","previous_distinct_id","$user_id","$had_persisted_distinct_id","isKnownAnonymous","get_user_state","$set_once","setAnonymousDistinctId","groupType","groupKey","groupPropertiesToSet","existingGroups","$groups","$group_type","$group_key","$group_set","reset_device_id","clear","resetSessionId","_alias","original","_register_single","alias","oldConfig","_this$sessionRecordin","started","prop_name","property_name","_this$get_config","has_opted_in_capturing","persistence_type","opt_in_capturing","enable_persistence","opt_out_capturing","clear_persistence","clear_opt_in_out_capturing","_gdpr_update_persistence","cookie_prefix","_gdpr_call_func","_debug","_safewrap_class","klass","functions","instances","extend_mp","INIT_SNIPPET","add_dom_loaded_handler","dom_loaded_handler","inst","_dom_loaded"],"sourceRoot":""}