{"version":3,"file":"512-ca618b7543e20920a604.js","mappings":"qtEACIA,EAAiBC,OAAOC,UAAUC,SAStC,SAASC,EAAQC,GACf,OAAQL,EAAeM,KAAKD,IAC1B,IAAK,iBACL,IAAK,qBACL,IAAK,wBACH,OAAO,EAET,QACE,OAAOE,EAAaF,EAAKG,QAY/B,SAASC,EAAUJ,EAAKK,GACtB,OAAOV,EAAeM,KAAKD,KAAS,WAAWM,OAAOD,EAAW,KAWnE,SAASE,EAAaP,GACpB,OAAOI,EAAUJ,EAAK,cAWxB,SAASQ,EAAWR,GAClB,OAAOI,EAAUJ,EAAK,YAuBxB,SAASS,EAAST,GAChB,OAAOI,EAAUJ,EAAK,UAWxB,SAAS,EAAYA,GACnB,OAAe,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAW3D,SAASU,EAAcV,GACrB,OAAOI,EAAUJ,EAAK,UAWxB,SAASW,EAAQX,GACf,MAAwB,oBAAVY,OAAyBV,EAAaF,EAAKY,OAgC3D,SAASC,EAAWb,GAElB,OAAOc,QAAQd,GAAOA,EAAIe,MAA4B,mBAAbf,EAAIe,MAuB/C,SAAS,EAAMf,GACb,MAAsB,iBAARA,GAAoBA,GAAQA,EAY5C,SAASE,EAAaF,EAAKgB,GACzB,IACE,OAAOhB,aAAegB,EACtB,MAAOC,GACP,OAAO,G,IC1LPC,E,UCAAC,GAAS,UAQb,SAASC,EAAiBC,EAAMC,GAK9B,IAWE,IAVA,IAQIC,EARAC,EAAcH,EAGdI,EAAM,GACNC,EAAS,EACTC,EAAM,EAENC,EADY,MACUC,OAGnBL,GAAeE,IATI,KAeR,UALhBH,EAAUO,EAAqBN,EAAaF,KAKlBI,EAAS,GAAKC,EAAMF,EAAII,OAASD,EAAYL,EAAQM,QAd5D,KAkBnBJ,EAAIM,KAAKR,GACTI,GAAOJ,EAAQM,OACfL,EAAcA,EAAYQ,WAG5B,OAAOP,EAAIQ,UAAUC,KAnBL,OAoBhB,MAAOC,GACP,MAAO,aAUX,SAASL,EAAqBM,EAAId,GAChC,IAEIjB,EACAgC,EACAC,EACAC,EACAC,EANAnB,EAAOe,EACPX,EAAM,GAOV,IAAKJ,IAASA,EAAKoB,QACjB,MAAO,GAGThB,EAAIM,KAAKV,EAAKoB,QAAQC,eAEtB,IAAIC,EAAerB,GAAYA,EAASO,OAASP,EAASsB,QAAO,SAAUC,GACzE,OAAOxB,EAAKyB,aAAaD,MACxBE,KAAI,SAAUF,GACf,MAAO,CAACA,EAASxB,EAAKyB,aAAaD,OAChC,KAEL,GAAIF,GAAgBA,EAAad,OAC/Bc,EAAaK,SAAQ,SAAUC,GAC7BxB,EAAIM,KAAK,IAAIzB,OAAO2C,EAAY,GAAI,MAAO3C,OAAO2C,EAAY,GAAI,eAUpE,GAPI5B,EAAK6B,IACPzB,EAAIM,KAAK,IAAIzB,OAAOe,EAAK6B,MAI3B7C,EAAYgB,EAAKhB,YAEAI,EAASJ,GAGxB,IAFAgC,EAAUhC,EAAU8C,MAAM,OAErBX,EAAI,EAAGA,EAAIH,EAAQR,OAAQW,IAC9Bf,EAAIM,KAAK,IAAIzB,OAAO+B,EAAQG,KAKlC,IAAIY,EAAe,CAAC,OAAQ,OAAQ,QAAS,OAE7C,IAAKZ,EAAI,EAAGA,EAAIY,EAAavB,OAAQW,IACnCF,EAAMc,EAAaZ,IACnBD,EAAOlB,EAAKyB,aAAaR,KAGvBb,EAAIM,KAAK,IAAIzB,OAAOgC,EAAK,MAAOhC,OAAOiC,EAAM,OAIjD,OAAOd,EAAIS,KAAK,IClGlB,SAASmB,EAASC,GAChB,IAAIC,EAAMC,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAE9E,MAAmB,iBAARF,GAA4B,IAARC,GAIxBD,EAAIzB,QAAU0B,EAHZD,EAGwB,GAAGhD,OAAOgD,EAAII,OAAO,EAAGH,GAAM,OA8DjE,SAASI,EAASC,EAAOC,GACvB,IAAKC,MAAMC,QAAQH,GACjB,MAAO,GAKT,IAFA,IAAII,EAAS,GAEJxB,EAAI,EAAGA,EAAIoB,EAAM/B,OAAQW,IAAK,CACrC,IAAIyB,EAAQL,EAAMpB,GAElB,IACEwB,EAAOjC,KAAKmC,OAAOD,IACnB,MAAOE,GACPH,EAAOjC,KAAK,iCAIhB,OAAOiC,EAAO9B,KAAK2B,GASrB,SAASO,EAAkBH,EAAOI,GAChC,QAAK5D,EAASwD,KHkCP7D,EG9BMiE,EH8BS,UG7BbA,EAAQC,KAAKL,GAGC,iBAAZI,IAC0B,IAA5BJ,EAAMM,QAAQF,IChHzB,SAASG,EAAQC,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAASO,EAAcC,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAKgC,EAAQ5E,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmBZ,EAAQ5E,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAiB7gB,SAASK,EAAKJ,EAAQK,EAAMC,GAC1B,GAAMD,KAAQL,EAAd,CAIA,IAAIO,EAAWP,EAAOK,GAClBG,EAAUF,EAAmBC,GAGjC,GAAuB,mBAAZC,EACT,IACEC,EAAoBD,EAASD,GAC7B,MAAOG,IAKXV,EAAOK,GAAQG,GAWjB,SAASG,EAAyBC,EAAKP,EAAMxB,GAC3CrE,OAAO2F,eAAeS,EAAKP,EAAM,CAE/BxB,MAAOA,EACPgC,UAAU,EACVC,cAAc,IAYlB,SAASL,EAAoBD,EAASD,GACpC,IAAIQ,EAAQR,EAAS9F,WAAa,GAClC+F,EAAQ/F,UAAY8F,EAAS9F,UAAYsG,EACzCJ,EAAyBH,EAAS,sBAAuBD,GAW3D,SAASS,EAAoBC,GAC3B,OAAOA,EAAKC,oBAyBd,SAASC,EAAqBtC,GAC5B,GAAIlE,EAAQkE,GACV,OAAOiB,EAAc,CACnBsB,QAASvC,EAAMuC,QACff,KAAMxB,EAAMwB,KACZgB,MAAOxC,EAAMwC,OACZC,EAAiBzC,IACf,GAAItD,EAAQsD,GAAQ,CACzB,IAAI0C,EAASzB,EAAc,CACzB0B,KAAM3C,EAAM2C,KACZzB,OAAQ0B,EAAqB5C,EAAMkB,QACnC2B,cAAeD,EAAqB5C,EAAM6C,gBACzCJ,EAAiBzC,IAMpB,MAJ2B,oBAAhB8C,aAA+B7G,EAAa+D,EAAO8C,eAC5DJ,EAAOK,OAAS/C,EAAM+C,QAGjBL,EAEP,OAAO1C,EAMX,SAAS4C,EAAqB1B,GAC5B,IACE,OJRenF,EIQEmF,EJPO,oBAAZ8B,SAA2B/G,EAAaF,EAAKiH,SIO9B7F,EAAiB+D,GAAUvF,OAAOC,UAAUC,SAASG,KAAKkF,GACrF,MAAOhD,GACP,MAAO,YJVX,IAAmBnC,EIgBnB,SAAS0G,EAAiBV,GACxB,GAAmB,iBAARA,GAA4B,OAARA,EAAc,CAC3C,IAAIkB,EAAiB,GAErB,IAAK,IAAIC,KAAYnB,EACfpG,OAAOC,UAAUuH,eAAenH,KAAK+F,EAAKmB,KAC5CD,EAAeC,GAAYnB,EAAImB,IAInC,OAAOD,EAEP,MAAO,GAUX,SAASG,EAA+BC,GACtC,IAAIC,EAAY/D,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAChFmB,EAAO/E,OAAO+E,KAAK4B,EAAqBe,IAG5C,GAFA3C,EAAK6C,QAEA7C,EAAK9C,OACR,MAAO,uBAGT,GAAI8C,EAAK,GAAG9C,QAAU0F,EACpB,OAAOlE,EAASsB,EAAK,GAAI4C,GAG3B,IAAK,IAAIE,EAAe9C,EAAK9C,OAAQ4F,EAAe,EAAGA,IAAgB,CACrE,IAAIC,EAAa/C,EAAKgD,MAAM,EAAGF,GAAcvF,KAAK,MAElD,KAAIwF,EAAW7F,OAAS0F,GAIxB,OAAIE,IAAiB9C,EAAK9C,OACjB6F,EAGFrE,EAASqE,EAAYH,GAG9B,MAAO,GAUT,SAASK,EAAkBC,GAMzB,OAAOC,EAAmBD,EAFL,IAAIE,KAK3B,SAASD,EAAmBD,EAAYG,GACtC,GAAItH,EAAcmH,GAAa,CAE7B,IAAII,EAAUD,EAAeE,IAAIL,GAEjC,QAAgBpE,IAAZwE,EACF,OAAOA,EAGT,IAAIE,EAAc,GAElBH,EAAeI,IAAIP,EAAYM,GAE/B,IAAK,IAAIE,EAAK,EAAGC,EAAe1I,OAAO+E,KAAKkD,GAAaQ,EAAKC,EAAazG,OAAQwG,IAAM,CACvF,IAAI/F,EAAMgG,EAAaD,QAEQ,IAApBR,EAAWvF,KACpB6F,EAAY7F,GAAOwF,EAAmBD,EAAWvF,GAAM0F,IAI3D,OAAOG,EAGT,GAAIrE,MAAMC,QAAQ8D,GAAa,CAE7B,IAAIU,EAAWP,EAAeE,IAAIL,GAElC,QAAiBpE,IAAb8E,EACF,OAAOA,EAGT,IAAIC,EAAe,GAMnB,OAJAR,EAAeI,IAAIP,EAAYW,GAC/BX,EAAW7E,SAAQ,SAAUyF,GAC3BD,EAAazG,KAAK+F,EAAmBW,EAAMT,OAEtCQ,EAGT,OAAOX,EHrPT,IAAIa,EAAgC,WAClC,SAASA,KACP,OAAgBC,KAAMD,GAEtBA,EAAiB7I,UAAU+I,OAAO3I,KAAK0I,MA2CzC,OApCA,OAAaD,EAAkB,CAAC,CAC9BpG,IAAK,SACL2B,MAIA,WACE0E,KAAKlD,KAAOiD,EAAiBxF,KAM9B,CACDZ,IAAK,YACL2B,MAAO,WAEL/C,EAA2B2H,SAAShJ,UAAUC,SAE9C+I,SAAShJ,UAAUC,SAAW,WAG5B,IAFA,IAAIgJ,EAAU1C,EAAoBuC,OAASA,KAElCI,EAAOvF,UAAU3B,OAAQmH,EAAO,IAAIlF,MAAMiF,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQzF,UAAUyF,GAGzB,OAAO/H,EAAyB+D,MAAM6D,EAASE,OAGjD,CAAC,CACH1G,IAAK,eACL2B,MAAO,WACL0E,KAAKzF,GAAK,uBAIPwF,EA/C2B,GAkDpCA,EAAiBQ,e,IIwBbC,E,UA7EAC,EAAS,iBACTC,EAAiB,CAAC,QAAS,OAAQ,OAAQ,QAAS,MAAO,SAAU,SAQzE,SAASC,EAAeC,GACtB,KAAM,YAAa,MACjB,OAAOA,IAGT,IAAIC,EAAkB,aAClBC,EAAgB,GAEpBJ,EAAerG,SAAQ,SAAU0G,GAE/B,IAAIC,EAAsBH,EAAgBE,IAAUF,EAAgBE,GAAOpD,oBAEvEoD,KAASF,GAAmBG,IAC9BF,EAAcC,GAASF,EAAgBE,GACvCF,EAAgBE,GAASC,MAI7B,IACE,OAAOJ,IACP,QAEA3J,OAAO+E,KAAK8E,GAAezG,SAAQ,SAAU0G,GAC3CF,EAAgBE,GAASD,EAAcC,OAK7C,SAASE,IACP,IAAIC,GAAU,EACVV,EAAS,CACXW,OAAQ,WACND,GAAU,GAEZE,QAAS,WACPF,GAAU,IA6Bd,MAzBgC,oBAArBG,kBAAoCA,iBAC7CX,EAAerG,SAAQ,SAAUyC,GAE/B0D,EAAO1D,GAAQ,WACb,IAAK,IAAIsD,EAAOvF,UAAU3B,OAAQmH,EAAO,IAAIlF,MAAMiF,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQzF,UAAUyF,GAGrBY,GACFP,GAAe,WACb,IAAIW,GAEHA,EAAsB,cAAoBxE,GAAMR,MAAMgF,EAAqB,CAAC,GAAG3J,OAAO8I,EAAQ,KAAK9I,OAAOmF,EAAM,OAAOnF,OAAO0I,WAMvIK,EAAerG,SAAQ,SAAUyC,GAC/B0D,EAAO1D,GAAQ,gBAMZ0D,EC1ET,SAAS,EAAQ1E,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,EAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,EAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,EAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAW7gB,SAAS+E,IACP,IAAIC,EAAM,KACNC,EAASD,EAAIC,QAAUD,EAAIE,SAE/B,GAAID,GAAUA,EAAOE,WACnB,OAAOF,EAAOE,aAAaC,QAAQ,KAAM,IAG3C,IAAIC,EAAgBJ,GAAUA,EAAOK,gBAAkB,WACrD,OAAOL,EAAOK,gBAAgB,IAAIC,WAAW,IAAI,IAC/C,WACF,OAAuB,GAAhBC,KAAKC,UAId,OAAQ,CAAC,KAAO,IAAM,IAAM,IAAM,MAAML,QAAQ,UAAU,SAAUM,GAClE,OACGA,GAAuB,GAAlBL,MAAyBK,EAAI,GAAG/K,SAAS,OAKrD,SAASgL,EAAkBC,GACzB,OAAOA,EAAMzD,WAAayD,EAAMzD,UAAU0D,OAASD,EAAMzD,UAAU0D,OAAO,QAAKvH,EAQjF,SAASwH,EAAoBF,GAC3B,IAAIvE,EAAUuE,EAAMvE,QAChB0E,EAAUH,EAAMI,SAEpB,GAAI3E,EACF,OAAOA,EAGT,IAAI4E,EAAiBN,EAAkBC,GAEvC,OAAIK,EACEA,EAAexE,MAAQwE,EAAenH,MACjC,GAAG3D,OAAO8K,EAAexE,KAAM,MAAMtG,OAAO8K,EAAenH,OAG7DmH,EAAexE,MAAQwE,EAAenH,OAASiH,GAAW,YAG5DA,GAAW,YAWpB,SAASG,EAAsBN,EAAO9G,EAAO2C,GAC3C,IAAIU,EAAYyD,EAAMzD,UAAYyD,EAAMzD,WAAa,GACjD0D,EAAS1D,EAAU0D,OAAS1D,EAAU0D,QAAU,GAChDI,EAAiBJ,EAAO,GAAKA,EAAO,IAAM,GAEzCI,EAAenH,QAClBmH,EAAenH,MAAQA,GAAS,IAG7BmH,EAAexE,OAClBwE,EAAexE,KAAOA,GAAQ,SAYlC,SAAS0E,EAAsBP,EAAOQ,GACpC,IAAIH,EAAiBN,EAAkBC,GAEvC,GAAKK,EAAL,CAIA,IAIII,EAAmBJ,EAAeK,UAGtC,GAFAL,EAAeK,UAAY,EAAc,EAAc,EAAc,GAL9C,CACrB7E,KAAM,UACN8E,SAAS,IAGiFF,GAAmBD,GAE3GA,GAAgB,SAAUA,EAAc,CAC1C,IAAII,EAAa,EAAc,EAAc,GAAIH,GAAoBA,EAAiBI,MAAOL,EAAaK,MAE1GR,EAAeK,UAAUG,KAAOD,ID/BlCxC,EAD8B,oBAArBa,kBAAoCA,kBACpC,QAAmB,SAAUJ,GAE7BA,ICsGX,SAASiC,GAAwBvE,GAE/B,GAAIA,GAAaA,EAAUwE,oBACzB,OAAO,EAGT,IAGE/F,EAAyBuB,EAAW,uBAAuB,GAC3D,MAAOyE,IAGT,OAAO,EAUT,SAASC,GAASC,GAChB,OAAOnI,MAAMC,QAAQkI,GAAcA,EAAa,CAACA,GC7MnD,IAAIC,GAAwB,CAAC,oBAAqB,iDAK9CC,GAA8B,WAChC,SAASA,IACP,IAAIC,EAAW5I,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,IAEnF,OAAgBmF,KAAMwD,GAGtBxD,KAAKyD,SAAWA,EAEhBD,EAAetM,UAAU+I,OAAO3I,KAAK0I,MAoDvC,OA7CA,OAAawD,EAAgB,CAAC,CAC5B7J,IAAK,SACL2B,MAIA,WACE0E,KAAKlD,KAAO0G,EAAejJ,KAE5B,CACDZ,IAAK,YACL2B,MAAO,SAAmBoI,EAAyBC,GACjD,IAAIC,EAAe,SAAsBxB,GACvC,IAAIyB,EAAMF,IAEV,GAAIE,EAAK,CACP,IAAIC,EAAOD,EAAIE,eAAeP,GAE9B,GAAIM,EAAM,CACR,IAAIE,EAASH,EAAII,YACbC,EAAgBF,EAASA,EAAOG,aAAe,GAE/CC,EA8BhB,WACE,IAAIC,EAAkBxJ,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GACtFqJ,EAAgBrJ,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GACxF,MAAO,CACLyJ,UAAW,GAAG3M,QAAO,OAAmB0M,EAAgBC,WAAa,KAAK,OAAmBJ,EAAcI,WAAa,KACxHC,SAAU,GAAG5M,QAAO,OAAmB0M,EAAgBE,UAAY,KAAK,OAAmBL,EAAcK,UAAY,KACrHC,aAAc,GAAG7M,QAAO,OAAmB0M,EAAgBG,cAAgB,KAAK,OAAmBN,EAAcM,cAAgB,IAAKjB,IACtIkB,oBAAmD3J,IAAnCuJ,EAAgBI,gBAA+BJ,EAAgBI,gBArCzDC,CAAcZ,EAAKL,SAAUS,GAE3C,OAyCZ,SAA0B9B,EAAOgC,GAC/B,GAAIA,EAAQK,gBAoFd,SAAwBrC,GACtB,IAGE,MAA0C,gBAAnCA,EAAMzD,UAAU0D,OAAO,GAAGpE,KACjC,MAAOzC,IAGT,OAAO,EA5FuBmJ,CAAevC,GAE3C,OAD6B,oBAArBf,kBAAoCA,mBAAqBb,EAAOoE,KAAK,6DAA6DjN,OAAO2K,EAAoBF,MAC9J,EAGT,GAkBF,SAAyBA,EAAOoC,GAC9B,IAAKA,IAAiBA,EAAatL,OACjC,OAAO,EAGT,OAiCF,SAAmCkJ,GACjC,GAAIA,EAAMvE,QACR,MAAO,CAACuE,EAAMvE,SAGhB,GAAIuE,EAAMzD,UACR,IACE,IAAIkG,EAAOzC,EAAMzD,UAAU0D,QAAUD,EAAMzD,UAAU0D,OAAO,IAAM,GAC9DyC,EAAYD,EAAK5G,KACjBA,OAAqB,IAAd6G,EAAuB,GAAKA,EACnCC,EAAaF,EAAKvJ,MAClBA,OAAuB,IAAfyJ,EAAwB,GAAKA,EAEzC,MAAO,CAAC,GAAGpN,OAAO2D,GAAQ,GAAG3D,OAAOsG,EAAM,MAAMtG,OAAO2D,IACvD,MAAO0J,GAEP,OAD6B,oBAArB3D,kBAAoCA,mBAAqBb,EAAOyE,MAAM,oCAAoCtN,OAAO2K,EAAoBF,KACtI,GAIX,MAAO,GArDA8C,CAA0B9C,GAAO+C,MAAK,SAAUtH,GACrD,OAAO2G,EAAaW,MAAK,SAAUzJ,GACjC,OAAOD,EAAkBoC,EAASnC,SAzBlC0J,CAAgBhD,EAAOgC,EAAQI,cAEjC,OAD6B,oBAArBnD,kBAAoCA,mBAAqBb,EAAOoE,KAAK,wEAAwEjN,OAAO2K,EAAoBF,MACzK,EAGT,GAyBF,SAAsBA,EAAOmC,GAE3B,IAAKA,IAAaA,EAASrL,OACzB,OAAO,EAGT,IAAImM,EAAMC,GAAmBlD,GAE7B,QAAQiD,GAAcd,EAASY,MAAK,SAAUzJ,GAC5C,OAAOD,EAAkB4J,EAAK3J,MAlC5B6J,CAAanD,EAAOgC,EAAQG,UAE9B,OAD6B,oBAArBlD,kBAAoCA,mBAAqBb,EAAOoE,KAAK,oEAAoEjN,OAAO2K,EAAoBF,GAAQ,YAAYzK,OAAO2N,GAAmBlD,MACnN,EAGT,IAiCF,SAAuBA,EAAOkC,GAE5B,IAAKA,IAAcA,EAAUpL,OAC3B,OAAO,EAGT,IAAImM,EAAMC,GAAmBlD,GAE7B,OAAQiD,GAAaf,EAAUa,MAAK,SAAUzJ,GAC5C,OAAOD,EAAkB4J,EAAK3J,MA1C3B8J,CAAcpD,EAAOgC,EAAQE,WAEhC,OAD6B,oBAArBjD,kBAAoCA,mBAAqBb,EAAOoE,KAAK,yEAAyEjN,OAAO2K,EAAoBF,GAAQ,YAAYzK,OAAO2N,GAAmBlD,MACxN,EAGT,OAAO,EA9DUqD,CAAiBrD,EAAOgC,GAAW,KAAOhC,GAIrD,OAAOA,GAGTwB,EAAarJ,GAAKyF,KAAKlD,KACvB4G,EAAwBE,MAExB,CAAC,CACHjK,IAAK,eACL2B,MAIA,WACE0E,KAAKzF,GAAK,qBAIPiJ,EA7DyB,GA+LlC,SAAS8B,GAAmBlD,GAC1B,IACE,IAAIsD,EAEJ,IAEEA,EAAStD,EAAMzD,UAAU0D,OAAO,GAAGsD,WAAWD,OAC9C,MAAOlK,IAGT,OAAOkK,EAxBX,WAGE,IAFA,IAAIA,EAAS7K,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAExEhB,EAAI6L,EAAOxM,OAAS,EAAGW,GAAK,EAAGA,IAAK,CAC3C,IAAI+L,EAAQF,EAAO7L,GAEnB,GAAI+L,GAA4B,gBAAnBA,EAAMC,UAAiD,kBAAnBD,EAAMC,SACrD,OAAOD,EAAMC,UAAY,KAI7B,OAAO,KAaWC,CAAiBJ,GAAU,KAC3C,MAAOV,GAEP,OAD6B,oBAArB3D,kBAAoCA,mBAAqBb,EAAOyE,MAAM,gCAAgCtN,OAAO2K,EAAoBF,KAClI,MA5IXoB,GAAejD,e,ICpEXwF,G,sBAwBJ,SAASC,GAAoB1K,GAC3B,OAAO,IAAI2K,IAAY,SAAUC,GAC/BA,EAAQ5K,MAWZ,SAAS6K,GAAoBC,GAC3B,OAAO,IAAIH,IAAY,SAAUI,EAAGC,GAClCA,EAAOF,OArCX,SAAWL,GAGTA,EAAOA,EAAgB,QADT,GACwB,UAItCA,EAAOA,EAAiB,SADT,GACyB,WAIxCA,EAAOA,EAAiB,SADT,GACyB,WAX1C,CAYGA,KAAWA,GAAS,KAkCvB,IAAIE,GAA2B,WAC7B,SAASA,EAAYM,IACnB,OAAgBvG,KAAMiG,GAItBA,EAAY/O,UAAU+I,OAAO3I,KAAK0I,MAElCiG,EAAY/O,UAAUsP,QAAQlP,KAAK0I,MAEnCiG,EAAY/O,UAAUuP,QAAQnP,KAAK0I,MAEnCiG,EAAY/O,UAAUwP,QAAQpP,KAAK0I,MAEnCiG,EAAY/O,UAAUyP,QAAQrP,KAAK0I,MAEnCiG,EAAY/O,UAAU0P,QAAQtP,KAAK0I,MAEnC,IACEuG,EAASvG,KAAK6G,SAAU7G,KAAK8G,SAC7B,MAAOtL,GACPwE,KAAK8G,QAAQtL,IA4KjB,OAtKA,OAAayK,EAAa,CAAC,CACzBtM,IAAK,SACL2B,MAAO,WACL0E,KAAK+G,OAAShB,GAAOiB,UAEtB,CACDrN,IAAK,UACL2B,MAAO,WACL0E,KAAKiH,UAAY,KAElB,CACDtN,IAAK,OACL2B,MAAO,SAAc4L,EAAaC,GAChC,IAAIC,EAAQpH,KAEZ,OAAO,IAAIiG,GAAY,SAAUC,EAASI,GACxCc,EAAMH,UAAU7N,KAAK,EAAC,EAAO,SAAUiO,GACrC,GAAKH,EAKH,IACEhB,EAAQgB,EAAYG,IACpB,MAAO7L,GACP8K,EAAO9K,QALT0K,EAAQmB,IAQT,SAAUjB,GACX,GAAKe,EAGH,IACEjB,EAAQiB,EAAWf,IACnB,MAAO5K,GACP8K,EAAO9K,QALT8K,EAAOF,MAUXgB,EAAME,wBAKT,CACD3N,IAAK,QACL2B,MAAO,SAAgB6L,GACrB,OAAOnH,KAAK5H,MAAK,SAAUmP,GACzB,OAAOA,IACNJ,KAIJ,CACDxN,IAAK,UACL2B,MAAO,SAAkBkM,GACvB,IAAIC,EAASzH,KAEb,OAAO,IAAIiG,GAAY,SAAUC,EAASI,GACxC,IAAIiB,EACAG,EACJ,OAAOD,EAAOrP,MAAK,SAAUkD,GAC3BoM,GAAa,EACbH,EAAMjM,EAEFkM,GACFA,OAED,SAAUpB,GACXsB,GAAa,EACbH,EAAMnB,EAEFoB,GACFA,OAEDpP,MAAK,WACFsP,EACFpB,EAAOiB,GAITrB,EAAQqB,WAMb,CACD5N,IAAK,UACL2B,MAAO,WACL,IAAIqM,EAAS3H,KAEbA,KAAK6G,SAAW,SAAUvL,GACxBqM,EAAOC,WAAW7B,GAAO8B,SAAUvM,MAKtC,CACD3B,IAAK,UACL2B,MAAO,WACL,IAAIwM,EAAS9H,KAEbA,KAAK8G,QAAU,SAAUV,GACvB0B,EAAOF,WAAW7B,GAAOgC,SAAU3B,MAKtC,CACDzM,IAAK,UACL2B,MAAO,WACL,IAAI0M,EAAShI,KAEbA,KAAK4H,WAAa,SAAUK,EAAO3M,GAC7B0M,EAAOjB,SAAWhB,GAAOiB,UAIzB9O,EAAWoD,GACRA,EAAMlD,KAAK4P,EAAOnB,SAAUmB,EAAOlB,UAI1CkB,EAAOjB,OAASkB,EAChBD,EAAOE,OAAS5M,EAEhB0M,EAAOV,wBAKV,CACD3N,IAAK,UACL2B,MAAO,WACL,IAAI6M,EAASnI,KAEbA,KAAKsH,iBAAmB,WACtB,GAAIa,EAAOpB,SAAWhB,GAAOiB,QAA7B,CAIA,IAAIoB,EAAiBD,EAAOlB,UAAUjI,QAEtCmJ,EAAOlB,UAAY,GACnBmB,EAAe/N,SAAQ,SAAUgO,GAC3BA,EAAQ,KAIRF,EAAOpB,SAAWhB,GAAO8B,UAE3BQ,EAAQ,GAAGF,EAAOD,QAGhBC,EAAOpB,SAAWhB,GAAOgC,UAC3BM,EAAQ,GAAGF,EAAOD,QAGpBG,EAAQ,IAAK,YAMdpC,EAjMsB,GC7C/B,SAASqC,GAAYnI,GAEnB,IAAIoI,GAAe,EAAAC,GAAA,MACfC,EAAU,CACZC,IAAKnH,IACLoH,MAAM,EACNC,UAAWL,EACXM,QAASN,EACTO,SAAU,EACVC,OAAQ,KACRC,OAAQ,EACRC,gBAAgB,EAChBC,OAAQ,WACN,OAoIN,SAAuBT,GACrB,OAAOxJ,EAAkB,CACvByJ,IAAK,GAAG/Q,OAAO8Q,EAAQC,KACvBC,KAAMF,EAAQE,KAEdE,QAAS,IAAIM,KAAuB,IAAlBV,EAAQI,SAAgBO,cAC1CR,UAAW,IAAIO,KAAyB,IAApBV,EAAQG,WAAkBQ,cAC9CL,OAAQN,EAAQM,OAChBC,OAAQP,EAAQO,OAChBK,IAA4B,iBAAhBZ,EAAQY,KAA2C,iBAAhBZ,EAAQY,IAAmB,GAAG1R,OAAO8Q,EAAQY,UAAOvO,EACnGgO,SAAUL,EAAQK,SAClBQ,MAAO,CACLC,QAASd,EAAQc,QACjBC,YAAaf,EAAQe,YACrBC,WAAYhB,EAAQiB,UACpBC,WAAYlB,EAAQmB,aAnJbC,CAAcpB,KAQzB,OAJItI,GACF2J,GAAcrB,EAAStI,GAGlBsI,EAgBT,SAASqB,GAAcrB,GACrB,IAAItI,EAAUtF,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAmClF,GAjCIsF,EAAQ4J,QACLtB,EAAQiB,WAAavJ,EAAQ4J,KAAKN,aACrChB,EAAQiB,UAAYvJ,EAAQ4J,KAAKN,YAG9BhB,EAAQY,KAAQlJ,EAAQkJ,MAC3BZ,EAAQY,IAAMlJ,EAAQ4J,KAAKxP,IAAM4F,EAAQ4J,KAAKC,OAAS7J,EAAQ4J,KAAKE,WAIxExB,EAAQG,UAAYzI,EAAQyI,YAAa,EAAAJ,GAAA,MAErCrI,EAAQ8I,iBACVR,EAAQQ,eAAiB9I,EAAQ8I,gBAG/B9I,EAAQuI,MAEVD,EAAQC,IAA6B,KAAvBvI,EAAQuI,IAAIxP,OAAgBiH,EAAQuI,IAAMnH,UAGrCzG,IAAjBqF,EAAQwI,OACVF,EAAQE,KAAOxI,EAAQwI,OAGpBF,EAAQY,KAAOlJ,EAAQkJ,MAC1BZ,EAAQY,IAAM,GAAG1R,OAAOwI,EAAQkJ,MAGH,iBAApBlJ,EAAQ0I,UACjBJ,EAAQI,QAAU1I,EAAQ0I,SAGxBJ,EAAQQ,eACVR,EAAQK,cAAWhO,OACd,GAAgC,iBAArBqF,EAAQ2I,SACxBL,EAAQK,SAAW3I,EAAQ2I,aACtB,CACL,IAAIA,EAAWL,EAAQG,UAAYH,EAAQI,QAC3CJ,EAAQK,SAAWA,GAAY,EAAIA,EAAW,EAG5C3I,EAAQoJ,UACVd,EAAQc,QAAUpJ,EAAQoJ,SAGxBpJ,EAAQqJ,cACVf,EAAQe,YAAcrJ,EAAQqJ,cAG3Bf,EAAQiB,WAAavJ,EAAQuJ,YAChCjB,EAAQiB,UAAYvJ,EAAQuJ,YAGzBjB,EAAQmB,WAAazJ,EAAQyJ,YAChCnB,EAAQmB,UAAYzJ,EAAQyJ,WAGA,iBAAnBzJ,EAAQ6I,SACjBP,EAAQO,OAAS7I,EAAQ6I,QAGvB7I,EAAQ4I,SACVN,EAAQM,OAAS5I,EAAQ4I,QC5G7B,SAAS,GAAQjN,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,GAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAQ7gB,IAMI0N,GAAqB,WAoCvB,SAASA,KACP,OAAgBlK,KAAMkK,GAEtBlK,KAAKmK,qBAAsB,EAC3BnK,KAAKoK,gBAAkB,GACvBpK,KAAKqK,iBAAmB,GACxBrK,KAAKsK,aAAe,GACpBtK,KAAKuK,aAAe,GACpBvK,KAAKwK,MAAQ,GACbxK,KAAKyK,MAAQ,GACbzK,KAAK0K,OAAS,GACd1K,KAAK2K,UAAY,GACjB3K,KAAK4K,uBAAyB,GAojBhC,OA5iBA,OAAaV,EAAO,CAAC,CACnBvQ,IAAK,mBACL2B,MAKA,SAA0BsF,GACxBZ,KAAKoK,gBAAgBhR,KAAKwH,KAM3B,CACDjH,IAAK,oBACL2B,MAAO,SAA2BsF,GAGhC,OAFAZ,KAAKqK,iBAAiBjR,KAAKwH,GAEpBZ,OAMR,CACDrG,IAAK,UACL2B,MAAO,SAAiByO,GAWtB,OAVA/J,KAAKwK,MAAQT,GAAQ,GAEjB/J,KAAK6K,UACPf,GAAc9J,KAAK6K,SAAU,CAC3Bd,KAAMA,IAIV/J,KAAK8K,wBAEE9K,OAMR,CACDrG,IAAK,UACL2B,MAAO,WACL,OAAO0E,KAAKwK,QAMb,CACD7Q,IAAK,oBACL2B,MAAO,WACL,OAAO0E,KAAK+K,kBAMb,CACDpR,IAAK,oBACL2B,MAAO,SAA2B0P,GAEhC,OADAhL,KAAK+K,gBAAkBC,EAChBhL,OAMR,CACDrG,IAAK,UACL2B,MAAO,SAAiB2P,GAKtB,OAJAjL,KAAKyK,MAAQ,GAAc,GAAc,GAAIzK,KAAKyK,OAAQQ,GAE1DjL,KAAK8K,wBAEE9K,OAMR,CACDrG,IAAK,SACL2B,MAAO,SAAgB3B,EAAK2B,GAK1B,OAJA0E,KAAKyK,MAAQ,GAAc,GAAc,GAAIzK,KAAKyK,OAAQ,IAAI,OAAgB,GAAI9Q,EAAK2B,IAEvF0E,KAAK8K,wBAEE9K,OAMR,CACDrG,IAAK,YACL2B,MAAO,SAAmB4P,GAKxB,OAJAlL,KAAK0K,OAAS,GAAc,GAAc,GAAI1K,KAAK0K,QAASQ,GAE5DlL,KAAK8K,wBAEE9K,OAMR,CACDrG,IAAK,WACL2B,MAAO,SAAkB3B,EAAKwR,GAK5B,OAJAnL,KAAK0K,OAAS,GAAc,GAAc,GAAI1K,KAAK0K,QAAS,IAAI,OAAgB,GAAI/Q,EAAKwR,IAEzFnL,KAAK8K,wBAEE9K,OAMR,CACDrG,IAAK,iBACL2B,MAAO,SAAwB8P,GAK7B,OAJApL,KAAKqL,aAAeD,EAEpBpL,KAAK8K,wBAEE9K,OAMR,CACDrG,IAAK,WACL2B,MAAO,SACPyF,GAKE,OAJAf,KAAKsL,OAASvK,EAEdf,KAAK8K,wBAEE9K,OAMR,CACDrG,IAAK,qBACL2B,MAAO,SAA4BwB,GAKjC,OAJAkD,KAAKuL,iBAAmBzO,EAExBkD,KAAK8K,wBAEE9K,OAMR,CACDrG,IAAK,aACL2B,MAAO,SAAoB3B,EAAKwG,GAU9B,OATgB,OAAZA,SAEKH,KAAK2K,UAAUhR,GAEtBqG,KAAK2K,UAAY,GAAc,GAAc,GAAI3K,KAAK2K,WAAY,IAAI,OAAgB,GAAIhR,EAAKwG,IAGjGH,KAAK8K,wBAEE9K,OAMR,CACDrG,IAAK,UACL2B,MAAO,SAAiBkQ,GAKtB,OAJAxL,KAAKyL,MAAQD,EAEbxL,KAAK8K,wBAEE9K,OAMR,CACDrG,IAAK,UACL2B,MAAO,WACL,OAAO0E,KAAKyL,QAMb,CACD9R,IAAK,iBACL2B,MAAO,WAGL,IAAIkQ,EAAOxL,KAAK0L,UAChB,OAAOF,GAAQA,EAAKG,cAMrB,CACDhS,IAAK,aACL2B,MAAO,SAAoBmN,GASzB,OARKA,EAGHzI,KAAK6K,SAAWpC,SAFTzI,KAAK6K,SAKd7K,KAAK8K,wBAEE9K,OAMR,CACDrG,IAAK,aACL2B,MAAO,WACL,OAAO0E,KAAK6K,WAMb,CACDlR,IAAK,SACL2B,MAAO,SAAgBsQ,GACrB,IAAKA,EACH,OAAO5L,KAGT,GAA8B,mBAAnB4L,EAA+B,CACxC,IAAIC,EAAeD,EAAe5L,MAClC,OAAO6L,aAAwB3B,EAAQ2B,EAAe7L,KA+CxD,OA5CI4L,aAA0B1B,GAC5BlK,KAAKyK,MAAQ,GAAc,GAAc,GAAIzK,KAAKyK,OAAQmB,EAAenB,OACzEzK,KAAK0K,OAAS,GAAc,GAAc,GAAI1K,KAAK0K,QAASkB,EAAelB,QAC3E1K,KAAK2K,UAAY,GAAc,GAAc,GAAI3K,KAAK2K,WAAYiB,EAAejB,WAE7EiB,EAAepB,OAASvT,OAAO+E,KAAK4P,EAAepB,OAAOtR,SAC5D8G,KAAKwK,MAAQoB,EAAepB,OAG1BoB,EAAeN,SACjBtL,KAAKsL,OAASM,EAAeN,QAG3BM,EAAeP,eACjBrL,KAAKqL,aAAeO,EAAeP,cAGjCO,EAAeb,kBACjB/K,KAAK+K,gBAAkBa,EAAeb,kBAE/BhT,EAAc6T,KAEvBA,EAAiBA,EACjB5L,KAAKyK,MAAQ,GAAc,GAAc,GAAIzK,KAAKyK,OAAQmB,EAAeX,MACzEjL,KAAK0K,OAAS,GAAc,GAAc,GAAI1K,KAAK0K,QAASkB,EAAeT,OAC3EnL,KAAK2K,UAAY,GAAc,GAAc,GAAI3K,KAAK2K,WAAYiB,EAAeE,UAE7EF,EAAe7B,OACjB/J,KAAKwK,MAAQoB,EAAe7B,MAG1B6B,EAAe7K,QACjBf,KAAKsL,OAASM,EAAe7K,OAG3B6K,EAAeR,cACjBpL,KAAKqL,aAAeO,EAAeR,aAGjCQ,EAAeZ,iBACjBhL,KAAK+K,gBAAkBa,EAAeZ,iBAInChL,OAMR,CACDrG,IAAK,QACL2B,MAAO,WAgBL,OAfA0E,KAAKsK,aAAe,GACpBtK,KAAKyK,MAAQ,GACbzK,KAAK0K,OAAS,GACd1K,KAAKwK,MAAQ,GACbxK,KAAK2K,UAAY,GACjB3K,KAAKsL,YAASxQ,EACdkF,KAAKuL,sBAAmBzQ,EACxBkF,KAAKqL,kBAAevQ,EACpBkF,KAAK+K,qBAAkBjQ,EACvBkF,KAAKyL,WAAQ3Q,EACbkF,KAAK6K,cAAW/P,EAEhBkF,KAAK8K,wBAEL9K,KAAKuK,aAAe,GACbvK,OAMR,CACDrG,IAAK,gBACL2B,MAAO,SAAuByQ,EAAYC,GACxC,IAAIC,EAAsC,iBAAnBD,EAA8BA,EAzY7B,IA2YxB,GAAIC,GAAa,EACf,OAAOjM,KAGT,IAAIkM,EAAmB,GAAc,CACnCtD,WAAW,YACVmD,GAMH,OAJA/L,KAAKsK,aAAe,GAAG3S,QAAO,OAAmBqI,KAAKsK,cAAe,CAAC4B,IAAmBlN,OAAOiN,GAEhGjM,KAAK8K,wBAEE9K,OAMR,CACDrG,IAAK,mBACL2B,MAAO,WAKL,OAJA0E,KAAKsK,aAAe,GAEpBtK,KAAK8K,wBAEE9K,OAMR,CACDrG,IAAK,gBACL2B,MAAO,SAAuB6Q,GAG5B,OAFAnM,KAAKuK,aAAanR,KAAK+S,GAEhBnM,OAMR,CACDrG,IAAK,iBACL2B,MAAO,WACL,OAAO0E,KAAKuK,eAMb,CACD5Q,IAAK,mBACL2B,MAAO,WAEL,OADA0E,KAAKuK,aAAe,GACbvK,OAUR,CACDrG,IAAK,eACL2B,MAAO,SAAsB8G,GAC3B,IAAIgK,EAAOvR,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GA6B/E,GA3BImF,KAAK0K,QAAUzT,OAAO+E,KAAKgE,KAAK0K,QAAQxR,SAC1CkJ,EAAM+I,MAAQ,GAAc,GAAc,GAAInL,KAAK0K,QAAStI,EAAM+I,QAGhEnL,KAAKyK,OAASxT,OAAO+E,KAAKgE,KAAKyK,OAAOvR,SACxCkJ,EAAM6I,KAAO,GAAc,GAAc,GAAIjL,KAAKyK,OAAQrI,EAAM6I,OAG9DjL,KAAKwK,OAASvT,OAAO+E,KAAKgE,KAAKwK,OAAOtR,SACxCkJ,EAAM2H,KAAO,GAAc,GAAc,GAAI/J,KAAKwK,OAAQpI,EAAM2H,OAG9D/J,KAAK2K,WAAa1T,OAAO+E,KAAKgE,KAAK2K,WAAWzR,SAChDkJ,EAAM0J,SAAW,GAAc,GAAc,GAAI9L,KAAK2K,WAAYvI,EAAM0J,WAGtE9L,KAAKsL,SACPlJ,EAAMrB,MAAQf,KAAKsL,QAGjBtL,KAAKuL,mBACPnJ,EAAMuJ,YAAc3L,KAAKuL,kBAMvBvL,KAAKyL,MAAO,CACdrJ,EAAM0J,SAAW,GAAc,CAC7BO,MAAOrM,KAAKyL,MAAMa,mBACjBlK,EAAM0J,UACT,IAAIS,EAAkBvM,KAAKyL,MAAME,aAAe3L,KAAKyL,MAAME,YAAY7O,KAEnEyP,IACFnK,EAAM6I,KAAO,GAAc,CACzBU,YAAaY,GACZnK,EAAM6I,OASb,OALAjL,KAAKwM,kBAAkBpK,GAEvBA,EAAMqK,YAAc,GAAG9U,QAAO,OAAmByK,EAAMqK,aAAe,KAAK,OAAmBzM,KAAKsK,eACnGlI,EAAMqK,YAAcrK,EAAMqK,YAAYvT,OAAS,EAAIkJ,EAAMqK,iBAAc3R,EACvEsH,EAAMsK,sBAAwB,GAAc,GAAc,GAAItK,EAAMsK,uBAAwB1M,KAAK4K,wBAC1F5K,KAAK2M,uBAAuB,GAAGhV,QAAO,OAAmBiV,OAA6B,OAAmB5M,KAAKqK,mBAAoBjI,EAAOgK,KAMjJ,CACDzS,IAAK,2BACL2B,MAAO,SAAkCuR,GAEvC,OADA7M,KAAK4K,uBAAyB,GAAc,GAAc,GAAI5K,KAAK4K,wBAAyBiC,GACrF7M,OAMR,CACDrG,IAAK,yBACL2B,MAAO,SAAgCwR,EAAY1K,EAAOgK,GACxD,IAAIhF,EAAQpH,KAER+M,EAAQlS,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAChF,OAAO,IAAIoL,IAAY,SAAUC,EAASI,GACxC,IAAI0G,EAAYF,EAAWC,GAE3B,GAAc,OAAV3K,GAAuC,mBAAd4K,EAC3B9G,EAAQ9D,OACH,CACL,IAAIiF,EAAS2F,EAAU,GAAc,GAAI5K,GAAQgK,IACpB,oBAArB/K,kBAAoCA,mBAAqB2L,EAAUzS,IAAiB,OAAX8M,GAAmB7G,EAAOyM,IAAI,oBAAqBtV,OAAOqV,EAAUzS,GAAI,oBAErJrC,EAAWmP,GACRA,EAAOjP,MAAK,SAAU8U,GACzB,OAAO9F,EAAMuF,uBAAuBG,EAAYI,EAAOd,EAAMW,EAAQ,GAAG3U,KAAK8N,MAC5E9N,KAAK,KAAMkO,GAETc,EAAMuF,uBAAuBG,EAAYzF,EAAQ+E,EAAMW,EAAQ,GAAG3U,KAAK8N,GAAS9N,KAAK,KAAMkO,SASvG,CACD3M,IAAK,wBACL2B,MAAO,WACL,IAAImM,EAASzH,KAKRA,KAAKmK,sBACRnK,KAAKmK,qBAAsB,EAE3BnK,KAAKoK,gBAAgB/P,SAAQ,SAAUuG,GACrCA,EAAS6G,MAGXzH,KAAKmK,qBAAsB,KAQ9B,CACDxQ,IAAK,oBACL2B,MAAO,SAA2B8G,GAEhCA,EAAMgJ,YAAchJ,EAAMgJ,YAAc/H,GAASjB,EAAMgJ,aAAe,GAElEpL,KAAKqL,eACPjJ,EAAMgJ,YAAchJ,EAAMgJ,YAAYzT,OAAOqI,KAAKqL,eAIhDjJ,EAAMgJ,cAAgBhJ,EAAMgJ,YAAYlS,eACnCkJ,EAAMgJ,eAGf,CAAC,CACHzR,IAAK,QACL2B,MAAO,SAAe6R,GACpB,IAAIC,EAAW,IAAIlD,EAkBnB,OAhBIiD,IACFC,EAAS9C,cAAe,OAAmB6C,EAAM7C,cACjD8C,EAAS3C,MAAQ,GAAc,GAAI0C,EAAM1C,OACzC2C,EAAS1C,OAAS,GAAc,GAAIyC,EAAMzC,QAC1C0C,EAASzC,UAAY,GAAc,GAAIwC,EAAMxC,WAC7CyC,EAAS5C,MAAQ2C,EAAM3C,MACvB4C,EAAS9B,OAAS6B,EAAM7B,OACxB8B,EAAS3B,MAAQ0B,EAAM1B,MACvB2B,EAASvC,SAAWsC,EAAMtC,SAC1BuC,EAAS7B,iBAAmB4B,EAAM5B,iBAClC6B,EAAS/B,aAAe8B,EAAM9B,aAC9B+B,EAAS/C,kBAAmB,OAAmB8C,EAAM9C,kBACrD+C,EAASrC,gBAAkBoC,EAAMpC,gBACjCqC,EAAS7C,cAAe,OAAmB4C,EAAM5C,eAG5C6C,MAIJlD,EApmBgB,GA2mBzB,SAAS0C,KACP,OAAO,QAAmB,yBAAyB,WACjD,MAAO,MASX,SAASlJ,GAAwB9C,GAC/BgM,KAA2BxT,KAAKwH,GCxoBlC,SAAS,GAAQ9E,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,GAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAc7gB,IAgBI6Q,GAAmB,WAWrB,SAASA,EAAIrJ,GACX,IAAImJ,EAAQtS,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,IAAIqP,GAEhFoD,EAAWzS,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GA9BhE,GAgCd,OAAgBmF,KAAMqN,GAGtBrN,KAAKsN,SAAWA,EAEhBD,EAAInW,UAAU+I,OAAO3I,KAAK0I,MAE1BA,KAAKuN,cAAcJ,MAAQA,EAEvBnJ,GACFhE,KAAKwN,WAAWxJ,GA8epB,OAteA,OAAaqJ,EAAK,CAAC,CACjB1T,IAAK,SACL2B,MAEA,WACE0E,KAAKyN,OAAS,CAAC,MAEhB,CACD9T,IAAK,cACL2B,MAAO,SAAqBoS,GAC1B,OAAO1N,KAAKsN,SAAWI,IAMxB,CACD/T,IAAK,aACL2B,MAAO,SAAoB0I,GACfhE,KAAKuN,cACXvJ,OAASA,EAETA,GAAUA,EAAO2J,mBACnB3J,EAAO2J,sBAOV,CACDhU,IAAK,YACL2B,MAAO,WAEL,IAAI6R,EAAQjD,GAAM0D,MAAM5N,KAAK6N,YAK7B,OAJA7N,KAAK8N,WAAW1U,KAAK,CACnB4K,OAAQhE,KAAKiE,YACbkJ,MAAOA,IAEFA,IAMR,CACDxT,IAAK,WACL2B,MAAO,WACL,QAAI0E,KAAK8N,WAAW5U,QAAU,MACrB8G,KAAK8N,WAAWC,QAM1B,CACDpU,IAAK,YACL2B,MAAO,SAAmBsF,GACxB,IAAIuM,EAAQnN,KAAKgO,YAEjB,IACEpN,EAASuM,GACT,QACAnN,KAAKiO,cAOR,CACDtU,IAAK,YACL2B,MAAO,WACL,OAAO0E,KAAKuN,cAAcvJ,SAI3B,CACDrK,IAAK,WACL2B,MAAO,WACL,OAAO0E,KAAKuN,cAAcJ,QAI3B,CACDxT,IAAK,WACL2B,MAAO,WACL,OAAO0E,KAAKyN,SAIb,CACD9T,IAAK,cACL2B,MAAO,WACL,OAAO0E,KAAKyN,OAAOzN,KAAKyN,OAAOvU,OAAS,KAOzC,CACDS,IAAK,mBACL2B,MAAO,SAA0BqD,EAAWyN,GAC1C,IAAI7J,EAAUvC,KAAKkO,aAAe9B,GAAQA,EAAK5J,SAAW4J,EAAK5J,SAAWjB,IACtE4M,EAAqB,IAAI3W,MAAM,6BAWnC,OATAwI,KAAKoO,aAAY,SAAUpK,EAAQmJ,GACjCnJ,EAAOqK,iBAAiB1P,EAAW,GAAc,GAAc,CAC7D2P,kBAAmB3P,EACnBwP,mBAAoBA,GACnB/B,GAAO,GAAI,CACZ5J,SAAUD,IACR4K,MAGC5K,IAMR,CACD5I,IAAK,iBACL2B,MAAO,SAAwBuC,EAC/BkD,EAAOqL,GACL,IAAI7J,EAAUvC,KAAKkO,aAAe9B,GAAQA,EAAK5J,SAAW4J,EAAK5J,SAAWjB,IACtE4M,EAAqB,IAAI3W,MAAMqG,GAWnC,OATAmC,KAAKoO,aAAY,SAAUpK,EAAQmJ,GACjCnJ,EAAOuK,eAAe1Q,EAASkD,EAAO,GAAc,GAAc,CAChEuN,kBAAmBzQ,EACnBsQ,mBAAoBA,GACnB/B,GAAO,GAAI,CACZ5J,SAAUD,IACR4K,MAGC5K,IAMR,CACD5I,IAAK,eACL2B,MAAO,SAAsB8G,EAAOgK,GAClC,IAAI7J,EAAU6J,GAAQA,EAAK5J,SAAW4J,EAAK5J,SAAWjB,IAYtD,MAVmB,gBAAfa,EAAMnE,OACR+B,KAAKkO,aAAe3L,GAGtBvC,KAAKoO,aAAY,SAAUpK,EAAQmJ,GACjCnJ,EAAOwK,aAAapM,EAAO,GAAc,GAAc,GAAIgK,GAAO,GAAI,CACpE5J,SAAUD,IACR4K,MAGC5K,IAMR,CACD5I,IAAK,cACL2B,MAAO,WACL,OAAO0E,KAAKkO,eAMb,CACDvU,IAAK,gBACL2B,MAAO,SAAuByQ,EAAYK,GACxC,IAAIqC,EAAoBzO,KAAKuN,cACzBJ,EAAQsB,EAAkBtB,MAC1BnJ,EAASyK,EAAkBzK,OAE/B,GAAKmJ,GAAUnJ,EAAf,CAEA,IAAIa,EAAOb,EAAOG,YAAcH,EAAOG,cAAgB,GACnDuK,EAAwB7J,EAAK8J,iBAC7BA,OAA6C,IAA1BD,EAAmC,KAAOA,EAC7DE,EAAsB/J,EAAKmH,eAC3BA,OAAyC,IAAxB4C,EAvOD,IAuOwDA,EAE5E,KAAI5C,GAAkB,GAAtB,CACA,IAEIE,EAAmB,GAAc,CACnCtD,WAHc,YAIbmD,GAEC8C,EAAkBF,EAAmBhO,GAAe,WACtD,OAAOgO,EAAiBzC,EAAkBE,MACvCF,EACmB,OAApB2C,GACJ1B,EAAM2B,cAAcD,EAAiB7C,OAMtC,CACDrS,IAAK,UACL2B,MAAO,SAAiByO,GACtB,IAAIoD,EAAQnN,KAAK6N,WACbV,GAAOA,EAAM4B,QAAQhF,KAM1B,CACDpQ,IAAK,UACL2B,MAAO,SAAiB2P,GACtB,IAAIkC,EAAQnN,KAAK6N,WACbV,GAAOA,EAAM6B,QAAQ/D,KAM1B,CACDtR,IAAK,YACL2B,MAAO,SAAmB4P,GACxB,IAAIiC,EAAQnN,KAAK6N,WACbV,GAAOA,EAAM8B,UAAU/D,KAM5B,CACDvR,IAAK,SACL2B,MAAO,SAAgB3B,EAAK2B,GAC1B,IAAI6R,EAAQnN,KAAK6N,WACbV,GAAOA,EAAM+B,OAAOvV,EAAK2B,KAM9B,CACD3B,IAAK,WACL2B,MAAO,SAAkB3B,EAAKwR,GAC5B,IAAIgC,EAAQnN,KAAK6N,WACbV,GAAOA,EAAMgC,SAASxV,EAAKwR,KAOhC,CACDxR,IAAK,aACL2B,MAAO,SAAoBwB,EAAMqD,GAC/B,IAAIgN,EAAQnN,KAAK6N,WACbV,GAAOA,EAAMiC,WAAWtS,EAAMqD,KAMnC,CACDxG,IAAK,iBACL2B,MAAO,SAAwBsF,GAC7B,IAAIyO,EAAqBrP,KAAKuN,cAC1BJ,EAAQkC,EAAmBlC,MAC3BnJ,EAASqL,EAAmBrL,OAE5BmJ,GAASnJ,GACXpD,EAASuM,KAOZ,CACDxT,IAAK,MACL2B,MAAO,SAAasF,GAClB,IAAI0O,EAASC,GAASvP,MAEtB,IACEY,EAASZ,MACT,QACAuP,GAASD,MAOZ,CACD3V,IAAK,iBACL2B,MAAO,SAAwBkU,GAC7B,IAAIxL,EAAShE,KAAKiE,YAClB,IAAKD,EAAQ,OAAO,KAEpB,IACE,OAAOA,EAAOD,eAAeyL,GAC7B,MAAOhW,GAEP,OAD6B,oBAArB6H,kBAAoCA,mBAAqBb,EAAOoE,KAAK,+BAA+BjN,OAAO6X,EAAYjV,GAAI,0BAC5H,QAOV,CACDZ,IAAK,mBACL2B,MAAO,SAA0B6E,EAASsP,GACxC,OAAOzP,KAAK0P,qBAAqB,mBAAoBvP,EAASsP,KAM/D,CACD9V,IAAK,eACL2B,MAAO,WACL,OAAO0E,KAAK0P,qBAAqB,kBAMlC,CACD/V,IAAK,iBACL2B,MAAO,WACL,IAAIqU,EAAa9U,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,IAAmBA,UAAU,GAGhF,GAAI8U,EACF,OAAO3P,KAAK2P,aAId3P,KAAK4P,uBAMN,CACDjW,IAAK,aACL2B,MAAO,WACL,IAAIuU,EAAQ7P,KAAKuN,cACbJ,EAAQ0C,GAASA,EAAM1C,MACvB1E,EAAU0E,GAASA,EAAM2C,aAEzBrH,GFzSV,SAAsBA,EAASM,GAC7B,IAAI5I,EAAU,GAEV4I,EACF5I,EAAU,CACR4I,OAAQA,GAEkB,OAAnBN,EAAQM,SACjB5I,EAAU,CACR4I,OAAQ,WAIZe,GAAcrB,EAAStI,GE6RjB4P,CAAatH,GAGfzI,KAAK4P,qBAGDzC,GACFA,EAAM6C,eAOT,CACDrW,IAAK,eACL2B,MAAO,SAAsB6E,GAC3B,IAAI8P,EAAqBjQ,KAAKuN,cAC1BJ,EAAQ8C,EAAmB9C,MAC3BnJ,EAASiM,EAAmBjM,OAE5BkM,EAAQlM,GAAUA,EAAOG,cAAgB,GACzCoF,EAAU2G,EAAM3G,QAChBC,EAAc0G,EAAM1G,YAIpBI,GADQ,gBAAwB,IACdA,UAElBnB,EAAUH,GAAY,GAAc,GAAc,GAAc,CAClEiB,QAASA,EACTC,YAAaA,GACZ2D,GAAS,CACVpD,KAAMoD,EAAMgD,YACVvG,GAAa,CACfA,UAAWA,IACTzJ,IAEJ,GAAIgN,EAAO,CAET,IAAIiD,EAAiBjD,EAAM2C,YAAc3C,EAAM2C,aAE3CM,GAA4C,OAA1BA,EAAerH,QACnCe,GAAcsG,EAAgB,CAC5BrH,OAAQ,WAIZ/I,KAAK2P,aAELxC,EAAM6C,WAAWvH,GAGnB,OAAOA,IAOR,CACD9O,IAAK,uBACL2B,MAAO,WACL,IAAI0I,EAAShE,KAAKiE,YACdG,EAAUJ,GAAUA,EAAOG,aAC/B,OAAOhM,QAAQiM,GAAWA,EAAQiM,kBAMnC,CACD1W,IAAK,qBACL2B,MAAO,WACL,IAAIgV,EAAqBtQ,KAAKuN,cAC1BJ,EAAQmD,EAAmBnD,MAC3BnJ,EAASsM,EAAmBtM,OAEhC,GAAKmJ,EAAL,CACA,IAAI1E,EAAU0E,EAAM2C,aAEhBrH,GACEzE,GAAUA,EAAOuM,gBACnBvM,EAAOuM,eAAe9H,MAW3B,CACD9O,IAAK,cACL2B,MAAO,SAAqBsF,GAC1B,IAAI4P,EAAqBxQ,KAAKuN,cAC1BJ,EAAQqD,EAAmBrD,MAC3BnJ,EAASwM,EAAmBxM,OAE5BA,GACFpD,EAASoD,EAAQmJ,KASpB,CACDxT,IAAK,uBACL2B,MAAO,SAA8BmV,GACnC,IAAIC,EAAUC,KACVC,EAASF,EAAQG,WAErB,GAAID,GAAUA,EAAOE,YAAmD,mBAA9BF,EAAOE,WAAWL,GAAwB,CAClF,IAAK,IAAIrQ,EAAOvF,UAAU3B,OAAQmH,EAAO,IAAIlF,MAAMiF,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGD,EAAKC,EAAO,GAAKzF,UAAUyF,GAG7B,OAAOsQ,EAAOE,WAAWL,GAAQnU,MAAM0D,KAAMK,IAGlB,oBAArBgB,kBAAoCA,mBAAqBb,EAAOoE,KAAK,oBAAoBjN,OAAO8Y,EAAQ,2CAI7GpD,EAxgBc,GAmhBvB,SAASsD,KAKP,OAJA,gBAAwB,iBAAyB,CAC/CG,WAAY,GACZjN,SAAK/I,GAEA,KAST,SAASyU,GAAS1L,GAChB,IAAIkN,EAAWJ,KACXrB,EAAS0B,GAAkBD,GAE/B,OADAE,GAAgBF,EAAUlN,GACnByL,EAWT,SAAS3L,KAEP,IAAIoN,EAAWJ,KAOf,OALKO,GAAgBH,KAAaC,GAAkBD,GAAUI,YApkB9C,IAqkBdF,GAAgBF,EAAU,IAAI1D,KAI5B,WAaN,SAAgC0D,GAC9B,IACE,IAAIH,EAASD,KAAiBE,WAE1BO,EAAeR,GAAUA,EAAOE,YAAcF,EAAOE,WAAWO,QAAUT,EAAOE,WAAWO,OAAOC,OAEvG,IAAKF,EACH,OAAOJ,GAAkBD,GAI3B,IAAKG,GAAgBE,IAAiBJ,GAAkBI,GAAcD,YAjmBxD,GAimBkF,CAC9F,IAAII,EAAsBP,GAAkBD,GAAUxD,cACtD0D,GAAgBG,EAAc,IAAI/D,GAAIkE,EAAoBvN,OAAQkG,GAAM0D,MAAM2D,EAAoBpE,SAIpG,OAAO6D,GAAkBI,GACzB,MAAOjU,GAEP,OAAO6T,GAAkBD,IAhClBS,CAAuBT,GAIzBC,GAAkBD,GAqC3B,SAASG,GAAgBR,GACvB,SAAUA,GAAWA,EAAQG,YAAcH,EAAQG,WAAWhN,KAUhE,SAASmN,GAAkBN,GACzB,OAAO,QAAmB,OAAO,WAC/B,OAAO,IAAIrD,KACVqD,GAUL,SAASO,GAAgBP,EAAS7M,GAChC,QAAK6M,KAEYA,EAAQG,WAAaH,EAAQG,YAAc,IAEjDhN,IAAMA,GACV,GCrqBT,IAAI4N,GAAc,SCElB,SAAS,GAAQ3V,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAoBlV,SAASqS,GAAiB1P,EAAWiN,GACnC,OAAOjI,KAAgB0K,iBAAiB1P,EAAW,CACjDiN,eAAgBA,IAYpB,SAAS2C,GAAe1Q,EACxB+N,GAGE,IAAI7K,EAAkC,iBAAnB6K,EAA8BA,OAAiB9Q,EAC9DqF,EAAoC,iBAAnByL,EAA8B,CACjDA,eAAgBA,QACd9Q,EACJ,OAAO6I,KAAgB4K,eAAe1Q,EAASkD,EAAOZ,GAUxD,SAASqO,GAAapM,EAAOgK,GAC3B,OAAOzI,KAAgB6K,aAAapM,EAAOgK,GAQ7C,SAASsF,GAAe9Q,GACtB+C,KAAgB+N,eAAe9Q,GAYjC,SAASkO,GAAc/C,GACrBpI,KAAgBmL,cAAc/C,GAUhC,SAASqD,GAAWtS,EAAMqD,GACxBwD,KAAgByL,WAAWtS,EAAMqD,GAQnC,SAAS8O,GAAU/D,GACjBvH,KAAgBsL,UAAU/D,GAS5B,SAASiE,GAASxV,EAAKwR,GACrBxH,KAAgBwL,SAASxV,EAAKwR,GAQhC,SAAS6D,GAAQ/D,GACftH,KAAgBqL,QAAQ/D,GAY1B,SAASiE,GAAOvV,EAAK2B,GACnBqI,KAAgBuL,OAAOvV,EAAK2B,GAS9B,SAASyT,GAAQhF,GACfpG,KAAgBoL,QAAQhF,GAiB1B,SAAS4H,GAAU/Q,GACjB+C,KAAgBgO,UAAU/Q,GAwB5B,SAASgR,GAAiBzR,EAASsP,GACjC,OAAO9L,KAAgBiO,iBAlLzB,SAAuBpV,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAkLne,CAAc,GAAI2D,GAAUsP,G,+CC/KtE,SAASoC,GAAaC,GAAW,IAAIC,EAErC,WAAuC,GAAuB,oBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFha,QAAQjB,UAAUkb,QAAQ9a,KAAK0a,QAAQC,UAAU9Z,QAAS,IAAI,iBAAyB,EAAQ,MAAOqD,GAAK,OAAO,GAF9P6W,GAA6B,OAAO,WAAkC,IAAsChL,EAAlCiL,GAAQ,QAAgBR,GAAkB,GAAIC,EAA2B,CAAE,IAAIQ,GAAY,QAAgBvS,MAAMwS,YAAanL,EAAS2K,QAAQC,UAAUK,EAAOzX,UAAW0X,QAAqBlL,EAASiL,EAAMhW,MAAM0D,KAAMnF,WAAc,OAAO,QAA2BmF,KAAMqH,IAK5Z,IAAIoL,GAA2B,SAAUC,IACvC,QAAUD,EAAaC,GAEvB,IAAIC,EAASd,GAAaY,GAG1B,SAASA,EAAY5U,GACnB,IAAIuJ,EAEAwL,EAAW/X,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,OAanF,OAXA,OAAgBmF,KAAMyS,IAEtBrL,EAAQuL,EAAOrb,KAAK0I,KAAMnC,IACpBA,QAAUA,EAEhBuJ,EAAMtK,MAAQkD,gBAAgByS,EAAczS,KAAKwS,iBAAc,GAAQtb,UAAUsb,YAAY1V,KAI7F7F,OAAO4b,gBAAe,QAAuBzL,IAASpH,gBAAgByS,EAAczS,KAAKwS,iBAAc,GAAQtb,WAC/GkQ,EAAMwL,SAAWA,EACVxL,EAGT,OAAOqL,EAzBsB,EA0Bf,E,QAAA,GAAiBjb,QC/BjC,SAASsb,GAAkBC,GACzB,IAAIC,EAAS,GAab,SAASC,EAAOC,GACd,OAAOF,EAAOG,OAAOH,EAAOpX,QAAQsX,GAAO,GAAG,GA2EhD,MAAO,CACLE,EAAGJ,EACHK,IA/DF,SAAaC,GACX,UA1BiBxY,IAAViY,GAAuBC,EAAO9Z,OAAS6Z,GA2B5C,OAAO5M,GAAoB,IAAIsM,GAAY,yDAI7C,IAAIS,EAAOI,IAeX,OAb8B,IAA1BN,EAAOpX,QAAQsX,IACjBF,EAAO5Z,KAAK8Z,GAGTA,EAAK9a,MAAK,WACb,OAAO6a,EAAOC,MAIf9a,KAAK,MAAM,WACV,OAAO6a,EAAOC,GAAM9a,KAAK,MAAM,kBAG1B8a,GA2CPK,MA9BF,SAAeC,GACb,OAAO,IAAIvN,IAAY,SAAUC,EAASI,GACxC,IAAImN,EAAUT,EAAO9Z,OAErB,IAAKua,EACH,OAAOvN,GAAQ,GAIjB,IAAIwN,EAAqBC,YAAW,WAC9BH,GAAWA,EAAU,GACvBtN,GAAQ,KAETsN,GAEHR,EAAO3Y,SAAQ,SAAUyF,GAClBkG,GAAoBlG,GAAM1H,MAAK,aAE1Bqb,IACNG,aAAaF,GACbxN,GAAQ,MAETI,W,eCrFX,SAASuN,KACP,IAAIC,EAAgC,mBAAZC,QACpBC,EAAQF,EAAa,IAAIC,QAAY,GAsCzC,MAAO,CApCP,SAAiB1W,GACf,GAAIyW,EACF,QAAIE,EAAMC,IAAI5W,KAId2W,EAAMX,IAAIhW,IACH,GAIT,IAAK,IAAIxD,EAAI,EAAGA,EAAIma,EAAM9a,OAAQW,IAAK,CAGrC,GAFYma,EAAMna,KAEJwD,EACZ,OAAO,EAKX,OADA2W,EAAM5a,KAAKiE,IACJ,GAGT,SAAmBA,GACjB,GAAIyW,EACFE,EAAME,OAAO7W,QAEb,IAAK,IAAIxD,EAAI,EAAGA,EAAIma,EAAM9a,OAAQW,IAChC,GAAIma,EAAMna,KAAOwD,EAAK,CACpB2W,EAAMb,OAAOtZ,EAAG,GAChB,SCtCV,SAAS,GAAQiC,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,GAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAE7gB,SAAS2X,GAA2BC,EAAGC,GAAkB,IAAIC,EAAuB,oBAAXC,QAA0BH,EAAEG,OAAOC,WAAaJ,EAAE,cAAe,IAAKE,EAAI,CAAE,GAAInZ,MAAMC,QAAQgZ,KAAOE,EAE9K,SAAqCF,EAAGK,GAAU,IAAKL,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAOM,GAAkBN,EAAGK,GAAS,IAAIE,EAAI1d,OAAOC,UAAUC,SAASG,KAAK8c,GAAGpV,MAAM,GAAI,GAAc,WAAN2V,GAAkBP,EAAE5B,cAAamC,EAAIP,EAAE5B,YAAY1V,MAAM,GAAU,QAAN6X,GAAqB,QAANA,EAAa,OAAOxZ,MAAMyZ,KAAKR,GAAI,GAAU,cAANO,GAAqB,2CAA2ChZ,KAAKgZ,GAAI,OAAOD,GAAkBN,EAAGK,GAFnOI,CAA4BT,KAAOC,GAAkBD,GAAyB,iBAAbA,EAAElb,OAAqB,CAAMob,IAAIF,EAAIE,GAAI,IAAIza,EAAI,EAAOib,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGH,EAAG,WAAe,OAAI9a,GAAKua,EAAElb,OAAe,CAAE8b,MAAM,GAAe,CAAEA,MAAM,EAAO1Z,MAAO8Y,EAAEva,OAAW2B,EAAG,SAAWlD,GAAM,MAAMA,GAAO2c,EAAGH,GAAO,MAAM,IAAII,UAAU,yIAA4I,IAA6C9R,EAAzC+R,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEL,EAAG,WAAeT,EAAKA,EAAGhd,KAAK8c,IAAOO,EAAG,WAAe,IAAIU,EAAOf,EAAGgB,OAAsC,OAA9BH,EAAmBE,EAAKL,KAAaK,GAAS7Z,EAAG,SAAW+Z,GAAOH,GAAS,EAAMhS,EAAMmS,GAAQN,EAAG,WAAe,IAAWE,GAAiC,MAAbb,EAAGkB,QAAgBlB,EAAGkB,SAAY,QAAU,GAAIJ,EAAQ,MAAMhS,KAIz9B,SAASsR,GAAkBe,EAAKzc,IAAkB,MAAPA,GAAeA,EAAMyc,EAAIvc,UAAQF,EAAMyc,EAAIvc,QAAQ,IAAK,IAAIW,EAAI,EAAG6b,EAAO,IAAIva,MAAMnC,GAAMa,EAAIb,EAAKa,IAAO6b,EAAK7b,GAAK4b,EAAI5b,GAAM,OAAO6b,EAYhL,SAASC,KACP,IAAK,IAAIvV,EAAOvF,UAAU3B,OAAQ0c,EAAU,IAAIza,MAAMiF,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAClFsV,EAAQtV,GAAQzF,UAAUyF,GAG5B,IAAIuV,EAAgBD,EAAQ/W,MAAK,SAAUiX,EAAGC,GAC5C,OAAOD,EAAE,GAAKC,EAAE,MACf3b,KAAI,SAAU4b,GACf,OAAOA,EAAE,MAEX,OAAO,SAAUlY,GACf,IAIImY,EAJAC,EAAYrb,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAChF6K,EAAS,GAETyQ,EAAYhC,GAA2BrW,EAAMtD,MAAM,MAAMwE,MAAMkX,IAGnE,IACE,IAAKC,EAAUpB,MAAOkB,EAAQE,EAAUxB,KAAKK,MAAO,CAClD,IAMIoB,EANAC,EAAOJ,EAAM3a,MAGbgb,EAAcD,EAAKzU,QAAQ,kBAAmB,MAE9C2U,EAAapC,GAA2B0B,GAG5C,IACE,IAAKU,EAAWxB,MAAOqB,EAASG,EAAW5B,KAAKK,MAAO,CACrD,IAAIwB,EAASJ,EAAO9a,MAChBsK,EAAQ4Q,EAAOF,GAEnB,GAAI1Q,EAAO,CACTF,EAAOtM,KAAKwM,GACZ,QAGJ,MAAOxC,GACPmT,EAAW/a,EAAE4H,GACb,QACAmT,EAAWtB,MAGf,MAAO7R,GACP+S,EAAU3a,EAAE4H,GACZ,QACA+S,EAAUlB,IAGZ,OAAOwB,GAA4B/Q,IAWvC,SAASgR,GAAkCC,GACzC,OAAIxb,MAAMC,QAAQub,GACThB,GAAkBrZ,WAAM,GAAQ,OAAmBqa,IAGrDA,EAOT,SAASF,GAA4B3Y,GACnC,IAAKA,EAAM5E,OACT,MAAO,GAGT,IAAI0d,EAAa9Y,EACb+Y,EAAqBD,EAAW,GAAGE,UAAY,GAC/CC,EAAoBH,EAAWA,EAAW1d,OAAS,GAAG4d,UAAY,GAYtE,OAVsD,IAAlDD,EAAmBjb,QAAQ,oBAAgF,IAApDib,EAAmBjb,QAAQ,sBACpFgb,EAAaA,EAAW5X,MAAM,KAIoB,IAAhD+X,EAAkBnb,QAAQ,mBAC5Bgb,EAAaA,EAAW5X,MAAM,GAAI,IAI7B4X,EAAW5X,MAAM,EApGH,IAoGwB5E,KAAI,SAAUwL,GACzD,OAAO,GAAc,GAAc,GAAIA,GAAQ,GAAI,CACjDC,SAAUD,EAAMC,UAAY+Q,EAAW,GAAG/Q,SAC1CiR,SAAUlR,EAAMkR,UAAY,SAE7Bxd,UAGL,IAAI0d,GAAsB,cAK1B,SAASC,GAAgBC,GACvB,IACE,OAAKA,GAAoB,mBAAPA,GAIXA,EAAGpa,MAHDka,GAIT,MAAOxb,GAGP,OAAOwb,IC/GX,SAASG,GAAUlc,GACjB,IAAImc,EAAQvc,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAMwc,EAAAA,EAC7EC,EAAgBzc,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAMwc,EAAAA,EAEzF,IAEE,OAAOE,GAAM,GAAItc,EAAOmc,EAAOE,GAC/B,MAAOlU,GACP,MAAO,CACLoU,MAAO,yBAAyB7f,OAAOyL,EAAK,OAOlD,SAASqU,GACT3b,GACE,IAAIsb,EAAQvc,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC5E6c,EAAU7c,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,OAC9E8c,EAAaR,GAAUrb,EAAQsb,GAEnC,OAAIQ,GAASD,GAAcD,EAClBD,GAAgB3b,EAAQsb,EAAQ,EAAGM,GAGrCC,EAaT,SAASJ,GAAM5d,EAAK2B,GAClB,IAAI8b,EAAQvc,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAMwc,EAAAA,EAC7EC,EAAgBzc,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAMwc,EAAAA,EACrFQ,EAAOhd,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAKgZ,KAE3EiE,GAAQ,QAAeD,EAAM,GAC7BE,EAAUD,EAAM,GAChBE,EAAYF,EAAM,GAGtB,GAAc,OAAVxc,GAAkB,CAAC,SAAU,UAAW,UAAU2c,gBAAgB3c,KAAW,EAAMA,GACrF,OAAOA,EAGT,IAAI4c,EAAcC,GAAexe,EAAK2B,GAGtC,IAAK4c,EAAYE,WAAW,YAC1B,OAAOF,EAOT,GAAI5c,EAAqC,8BACvC,OAAOA,EAIT,GAAc,IAAV8b,EAEF,OAAOc,EAAYtW,QAAQ,UAAW,IAIxC,GAAImW,EAAQzc,GACV,MAAO,eAIT,IAAI+c,EAAkB/c,EAEtB,GAAI+c,GAAqD,mBAA3BA,EAAgBnP,OAC5C,IACE,IAAIoP,EAAYD,EAAgBnP,SAEhC,OAAOqO,GAAM,GAAIe,EAAWlB,EAAQ,EAAGE,EAAeO,GACtD,MAAOzU,IAOX,IAAIuU,EAAaxc,MAAMC,QAAQE,GAAS,GAAK,GACzCid,EAAW,EAGXC,EAAY5a,EAAqBtC,GAErC,IAAK,IAAImd,KAAYD,EAEnB,GAAKvhB,OAAOC,UAAUuH,eAAenH,KAAKkhB,EAAWC,GAArD,CAIA,GAAIF,GAAYjB,EAAe,CAC7BK,EAAWc,GAAY,oBACvB,MAIF,IAAIC,EAAaF,EAAUC,GAC3Bd,EAAWc,GAAYlB,GAAMkB,EAAUC,EAAYtB,EAAQ,EAAGE,EAAeO,GAC7EU,GAAY,EAMd,OAFAP,EAAU1c,GAEHqc,EAaT,SAASQ,GAAexe,EAExB2B,GACE,IACE,MAAY,WAAR3B,GAAoB2B,GAA0B,iBAAVA,GAAsBA,EAAMqd,QAC3D,WAGG,kBAARhf,EACK,uBAKa,IAAX,EAAAif,GAA0Btd,IAAU,EAAAsd,EACtC,WAIa,oBAAXC,QAA0Bvd,IAAUud,OACtC,WAIe,oBAAbC,UAA4Bxd,IAAUwd,SACxC,alBvBJ/gB,EADiBV,EkB4BDiE,IlB3BM,gBAAiBjE,GAAO,mBAAoBA,GAAO,oBAAqBA,EkB4B1F,mBAGY,iBAAViE,GAAsBA,GAAUA,EAClC,aAIK,IAAVA,EACK,cAGY,mBAAVA,EACF,cAAc3D,OAAOsf,GAAgB3b,GAAQ,KAGjC,iBAAVA,EACF,IAAI3D,OAAO4D,OAAOD,GAAQ,KAId,iBAAVA,EACF,YAAY3D,OAAO4D,OAAOD,GAAQ,KAOpC,WAAW3D,OAAOV,OAAO8hB,eAAezd,GAAOkX,YAAY1V,KAAM,KACxE,MAAOsG,GACP,MAAO,yBAAyBzL,OAAOyL,EAAK,KlB5DhD,IAA0B/L,EkB0E1B,SAASugB,GAAStc,GAChB,OATF,SAAoBA,GAElB,QAAS0d,UAAU1d,GAAOd,MAAM,SAAStB,OAOlC+f,CAAWC,KAAKC,UAAU7d,ICxOnC,SAAS,GAA2B8Y,EAAGC,GAAkB,IAAIC,EAAuB,oBAAXC,QAA0BH,EAAEG,OAAOC,WAAaJ,EAAE,cAAe,IAAKE,EAAI,CAAE,GAAInZ,MAAMC,QAAQgZ,KAAOE,EAE9K,SAAqCF,EAAGK,GAAU,IAAKL,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGK,GAAS,IAAIE,EAAI1d,OAAOC,UAAUC,SAASG,KAAK8c,GAAGpV,MAAM,GAAI,GAAc,WAAN2V,GAAkBP,EAAE5B,cAAamC,EAAIP,EAAE5B,YAAY1V,MAAM,GAAU,QAAN6X,GAAqB,QAANA,EAAa,OAAOxZ,MAAMyZ,KAAKR,GAAI,GAAU,cAANO,GAAqB,2CAA2ChZ,KAAKgZ,GAAI,OAAO,GAAkBP,EAAGK,GAFnO,CAA4BL,KAAOC,GAAkBD,GAAyB,iBAAbA,EAAElb,OAAqB,CAAMob,IAAIF,EAAIE,GAAI,IAAIza,EAAI,EAAOib,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGH,EAAG,WAAe,OAAI9a,GAAKua,EAAElb,OAAe,CAAE8b,MAAM,GAAe,CAAEA,MAAM,EAAO1Z,MAAO8Y,EAAEva,OAAW2B,EAAG,SAAWlD,GAAM,MAAMA,GAAO2c,EAAGH,GAAO,MAAM,IAAII,UAAU,yIAA4I,IAA6C9R,EAAzC+R,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEL,EAAG,WAAeT,EAAKA,EAAGhd,KAAK8c,IAAOO,EAAG,WAAe,IAAIU,EAAOf,EAAGgB,OAAsC,OAA9BH,EAAmBE,EAAKL,KAAaK,GAAS7Z,EAAG,SAAW+Z,GAAOH,GAAS,EAAMhS,EAAMmS,GAAQN,EAAG,WAAe,IAAWE,GAAiC,MAAbb,EAAGkB,QAAgBlB,EAAGkB,SAAY,QAAU,GAAIJ,EAAQ,MAAMhS,KAIz9B,SAAS,GAAkBqS,EAAKzc,IAAkB,MAAPA,GAAeA,EAAMyc,EAAIvc,UAAQF,EAAMyc,EAAIvc,QAAQ,IAAK,IAAIW,EAAI,EAAG6b,EAAO,IAAIva,MAAMnC,GAAMa,EAAIb,EAAKa,IAAO6b,EAAK7b,GAAK4b,EAAI5b,GAAM,OAAO6b,EAUhL,SAAS0D,GAAeC,GACtB,IAAIC,EAAQze,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAChF,MAAO,CAACwe,EAASC,GASnB,SAASC,GAAkBC,EAAUC,GACnC,IAAIC,GAAY,QAAeF,EAAU,GACrCH,EAAUK,EAAU,GACpBJ,EAAQI,EAAU,GAEtB,MAAO,CAACL,EAAS,GAAG1hB,QAAO,OAAmB2hB,GAAQ,CAACG,KAQzD,SAASE,GAAoBH,EAAU5Y,GACjB4Y,EAAS,GACfnf,SAAQ,SAAUuf,GAC9B,IAAIC,EAAmBD,EAAa,GAAG3b,KACvC2C,EAASgZ,EAAcC,MAI3B,SAASC,GAAW7e,EAAO8e,GAEzB,OADWA,GAAe,IAAIC,aAClBC,OAAOhf,GAOrB,SAASif,GAAkBV,EAAUO,GACnC,IAAII,GAAa,QAAeX,EAAU,GACtCY,EAAaD,EAAW,GACxBb,EAAQa,EAAW,GAGnBE,EAAQnB,KAAKC,UAAUiB,GAE3B,SAASE,EAAOhF,GACO,iBAAV+E,EACTA,EAAwB,iBAAT/E,EAAoB+E,EAAQ/E,EAAO,CAACwE,GAAWO,EAAON,GAAczE,GAEnF+E,EAAMjhB,KAAqB,iBAATkc,EAAoBwE,GAAWxE,EAAMyE,GAAezE,GAI1E,IACIW,EADAE,EAAY,GAA2BmD,GAG3C,IACE,IAAKnD,EAAUpB,MAAOkB,EAAQE,EAAUxB,KAAKK,MAAO,CAClD,IAAIlV,EAAOmW,EAAM3a,MAEbif,GAAQ,QAAeza,EAAM,GAC7B0a,EAAcD,EAAM,GACpBE,EAAUF,EAAM,GAIpB,GAFAD,EAAO,KAAK3iB,OAAOuhB,KAAKC,UAAUqB,GAAc,OAEzB,iBAAZC,GAAwBA,aAAmB1Y,WACpDuY,EAAOG,OACF,CACL,IAAIC,OAAqB,EAEzB,IACEA,EAAqBxB,KAAKC,UAAUsB,GACpC,MAAOjf,GAIPkf,EAAqBxB,KAAKC,UAAUhC,GAAUsD,IAGhDH,EAAOI,KAGX,MAAOtX,GACP+S,EAAU3a,EAAE4H,GACZ,QACA+S,EAAUlB,IAGZ,MAAwB,iBAAVoF,EAAqBA,EAGrC,SAAuBM,GACrB,IAOIvE,EAPAwE,EAAcD,EAAQE,QAAO,SAAUC,EAAKC,GAC9C,OAAOD,EAAMC,EAAI7hB,SAChB,GACC8hB,EAAS,IAAIjZ,WAAW6Y,GACxBK,EAAS,EAET1E,EAAa,GAA2BoE,GAG5C,IACE,IAAKpE,EAAWxB,MAAOqB,EAASG,EAAW5B,KAAKK,MAAO,CACrD,IAAIhC,EAASoD,EAAO9a,MACpB0f,EAAOvb,IAAIuT,EAAQiI,GACnBA,GAAUjI,EAAO9Z,QAEnB,MAAOkK,GACPmT,EAAW/a,EAAE4H,GACb,QACAmT,EAAWtB,IAGb,OAAO+F,EAzBoCE,CAAcb,GAgC3D,SAASc,GAA6BhP,EAAY4N,GAChD,IAAI/G,EAAoC,iBAApB7G,EAAWlJ,KAAoB6W,GAAW3N,EAAWlJ,KAAM8W,GAAe5N,EAAWlJ,KACzG,MAAO,CAAChE,EAAkB,CACxBhB,KAAM,aACN/E,OAAQ8Z,EAAO9Z,OACf2M,SAAUsG,EAAWtG,SACrBuV,aAAcjP,EAAWkP,YACzBC,gBAAiBnP,EAAWoP,iBAC1BvI,GAGN,IAAIwI,GAAiC,CACnC/S,QAAS,UACTgT,SAAU,UACVtP,WAAY,aACZR,YAAa,cACbvJ,MAAO,QACPsZ,cAAe,WACfC,YAAa,WAMf,SAASC,GAA+B3d,GACtC,OAAOud,GAA+Bvd,GCpKxC,SAAS,GAA2BmW,EAAGC,GAAkB,IAAIC,EAAuB,oBAAXC,QAA0BH,EAAEG,OAAOC,WAAaJ,EAAE,cAAe,IAAKE,EAAI,CAAE,GAAInZ,MAAMC,QAAQgZ,KAAOE,EAE9K,SAAqCF,EAAGK,GAAU,IAAKL,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGK,GAAS,IAAIE,EAAI1d,OAAOC,UAAUC,SAASG,KAAK8c,GAAGpV,MAAM,GAAI,GAAc,WAAN2V,GAAkBP,EAAE5B,cAAamC,EAAIP,EAAE5B,YAAY1V,MAAM,GAAU,QAAN6X,GAAqB,QAANA,EAAa,OAAOxZ,MAAMyZ,KAAKR,GAAI,GAAU,cAANO,GAAqB,2CAA2ChZ,KAAKgZ,GAAI,OAAO,GAAkBP,EAAGK,GAFnO,CAA4BL,KAAOC,GAAkBD,GAAyB,iBAAbA,EAAElb,OAAqB,CAAMob,IAAIF,EAAIE,GAAI,IAAIza,EAAI,EAAOib,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGH,EAAG,WAAe,OAAI9a,GAAKua,EAAElb,OAAe,CAAE8b,MAAM,GAAe,CAAEA,MAAM,EAAO1Z,MAAO8Y,EAAEva,OAAW2B,EAAG,SAAWlD,GAAM,MAAMA,GAAO2c,EAAGH,GAAO,MAAM,IAAII,UAAU,yIAA4I,IAA6C9R,EAAzC+R,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEL,EAAG,WAAeT,EAAKA,EAAGhd,KAAK8c,IAAOO,EAAG,WAAe,IAAIU,EAAOf,EAAGgB,OAAsC,OAA9BH,EAAmBE,EAAKL,KAAaK,GAAS7Z,EAAG,SAAW+Z,GAAOH,GAAS,EAAMhS,EAAMmS,GAAQN,EAAG,WAAe,IAAWE,GAAiC,MAAbb,EAAGkB,QAAgBlB,EAAGkB,SAAY,QAAU,GAAIJ,EAAQ,MAAMhS,KAIz9B,SAAS,GAAkBqS,EAAKzc,IAAkB,MAAPA,GAAeA,EAAMyc,EAAIvc,UAAQF,EAAMyc,EAAIvc,QAAQ,IAAK,IAAIW,EAAI,EAAG6b,EAAO,IAAIva,MAAMnC,GAAMa,EAAIb,EAAKa,IAAO6b,EAAK7b,GAAK4b,EAAI5b,GAAM,OAAO6b,EAEhL,SAAS,GAAQ5Z,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,GAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAY7gB,SAASqf,GAAsBC,GAC7B,IAAIC,EAAMlhB,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAKsO,KAAK4S,MAC/EC,EAAcC,SAAS,GAAGtkB,OAAOmkB,GAAS,IAE9C,IAAKI,MAAMF,GACT,OAAqB,IAAdA,EAGT,IAAIG,EAAahT,KAAKiT,MAAM,GAAGzkB,OAAOmkB,IAEtC,OAAKI,MAAMC,GAnBa,IAoBfA,EAAaJ,EAUxB,SAASM,GAAcC,EAAQC,GAC7B,OAAOD,EAAOC,IAAaD,EAAOE,KAAO,EAO3C,SAASC,GAAcH,EAAQC,GAC7B,IAAIR,EAAMlhB,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAKsO,KAAK4S,MACnF,OAAOM,GAAcC,EAAQC,GAAYR,EAQ3C,SAASW,GAAiBJ,EAAQzX,GAChC,IAAI8X,EAAa9X,EAAK8X,WAClBtD,EAAUxU,EAAKwU,QACf0C,EAAMlhB,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAKsO,KAAK4S,MAE/Ea,EAAoB,GAAc,GAAIN,GAItCO,EAAkBxD,GAAWA,EAAQ,wBACrCyD,EAAmBzD,GAAWA,EAAQ,eAE1C,GAAIwD,EAAiB,CAanB,IACI5G,EADAE,EAAY,GAA2B0G,EAAgBE,OAAOviB,MAAM,MAGxE,IACE,IAAK2b,EAAUpB,MAAOkB,EAAQE,EAAUxB,KAAKK,MAAO,CAClD,IAAIjC,EAAQkD,EAAM3a,MAEd0hB,EAAejK,EAAMvY,MAAM,IAAK,GAChCyiB,GAAgB,QAAeD,EAAc,GAC7CE,EAAaD,EAAc,GAC3BE,EAAaF,EAAc,GAE3BjB,EAAcC,SAASiB,EAAY,IACnCE,EAAmD,KAAzClB,MAAMF,GAA6B,GAAdA,GAEnC,GAAKmB,EAEE,CACL,IACI/G,EADAG,EAAa,GAA2B4G,EAAW3iB,MAAM,MAG7D,IACE,IAAK+b,EAAWxB,MAAOqB,EAASG,EAAW5B,KAAKK,MAAO,CACrD,IAAIuH,EAAWnG,EAAO9a,MACtBshB,EAAkBL,GAAYR,EAAMqB,GAEtC,MAAOha,GACPmT,EAAW/a,EAAE4H,GACb,QACAmT,EAAWtB,UAbb2H,EAAkBJ,IAAMT,EAAMqB,GAiBlC,MAAOha,GACP+S,EAAU3a,EAAE4H,GACZ,QACA+S,EAAUlB,UAEH6H,EACTF,EAAkBJ,IAAMT,EAAMF,GAAsBiB,EAAkBf,GAC9C,MAAfY,IACTC,EAAkBJ,IAAMT,EAAM,KAGhC,OAAOa,EC1HT,SAASS,GAAgBjZ,EAASkZ,GAChC,IAAItK,EAASnY,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAKiY,GAAkB1O,EAAQmZ,YATzE,IAU9BC,EAAa,GAEbC,EAAQ,SAAejK,GACzB,OAAOR,EAAOO,MAAMC,IAGtB,SAASkK,EAAKlE,GACZ,IAAImE,EAAwB,GAY5B,GAVAhE,GAAoBH,GAAU,SAAU1Z,EAAM7B,GAC5C,IAAI2f,EAA2BhC,GAA+B3d,GAE1Dwe,GAAce,EAAYI,GAC5BxZ,EAAQyZ,mBAAmB,oBAAqBD,GAEhDD,EAAsBvkB,KAAK0G,MAIM,IAAjC6d,EAAsBzkB,OACxB,OAAO8M,KAIT,IAAI8X,EAAmB1E,GAAeI,EAAS,GAAImE,GAE/CI,EAAqB,SAA4B3X,GACnDuT,GAAoBmE,GAAkB,SAAUzX,EAAGpI,GACjDmG,EAAQyZ,mBAAmBzX,EAAQwV,GAA+B3d,QAoBtE,OAAO+U,EAAOK,KAhBI,WAChB,OAAOiK,EAAY,CACjBU,KAAM9D,GAAkB4D,EAAkB1Z,EAAQ2V,eACjD3hB,MAAK,SAAU6lB,QAEYnjB,IAAxBmjB,EAAStB,aAA6BsB,EAAStB,WAAa,KAAOsB,EAAStB,YAAc,OAC/D,oBAArBtb,kBAAoCA,mBAAqBb,EAAOoE,KAAK,qCAAqCjN,OAAOsmB,EAAStB,WAAY,oBAGhJa,EAAad,GAAiBc,EAAYS,MACzC,SAAUhZ,IACkB,oBAArB5D,kBAAoCA,mBAAqBb,EAAOyE,MAAM,8BAA+BA,GAC7G8Y,EAAmB,uBAIQ3lB,MAAK,SAAUiP,GAC5C,OAAOA,KACN,SAAUpC,GACX,GAAIA,aAAiBwN,GAGnB,OAF6B,oBAArBpR,kBAAoCA,mBAAqBb,EAAOyE,MAAM,iDAC9E8Y,EAAmB,kBACZ/X,KAEP,MAAMf,KAKZ,MAAO,CACLyY,KAAMA,EACND,MAAOA,GCxEX,SAAS,GAAQ3hB,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,GAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAI7gB,IAAI,GAAS,KACT0hB,GAAgB,EAKpB,SAASC,KACP,OAAOD,GAAgB,EAOzB,SAASE,KAEPF,IAAiB,EACjBvK,YAAW,WACTuK,IAAiB,KAcrB,SAASG,GAAKnH,GACZ,IAAI9S,EAAUvJ,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC9EyjB,EACFzjB,UAAU3B,OAAS,EAAI2B,UAAU,QAAKC,EAQxC,GAAkB,mBAAPoc,EACT,OAAOA,EAGT,IAGE,IAAIqH,EAAUrH,EAAGsH,mBAEjB,GAAID,EACF,OAAOA,EAIT,GAAI9gB,EAAoByZ,GACtB,OAAOA,EAET,MAAO1b,GAIP,OAAO0b,EAMT,IAAIuH,EAAgB,WAClB,IAAIpe,EAAOlF,MAAMjE,UAAU8H,MAAM1H,KAAKuD,WAEtC,IACMyjB,GAA4B,mBAAXA,GACnBA,EAAOhiB,MAAM0D,KAAMnF,WAIrB,IAAI6jB,EAAmBre,EAAKjG,KAAI,SAAUukB,GACxC,OAAON,GAAKM,EAAKva,MAMnB,OAAO8S,EAAG5a,MAAM0D,KAAM0e,GACtB,MAAOE,GAgBP,MAfAR,KACAzM,IAAU,SAAUxE,GAClBA,EAAM0R,mBAAkB,SAAUzc,GAShC,OARIgC,EAAQtB,YACVJ,EAAsBN,OAAOtH,OAAWA,GACxC6H,EAAsBP,EAAOgC,EAAQtB,YAGvCV,EAAM+I,MAAQ,GAAc,GAAc,GAAI/I,EAAM+I,OAAQ,GAAI,CAC9DtQ,UAAWwF,IAEN+B,KAETiM,GAAiBuQ,MAEbA,IAQV,IACE,IAAK,IAAIpgB,KAAY0Y,EACfjgB,OAAOC,UAAUuH,eAAenH,KAAK4f,EAAI1Y,KAC3CigB,EAAcjgB,GAAY0Y,EAAG1Y,IAGjC,MAAOhF,IAKT0D,EAAoBuhB,EAAevH,GACnC9Z,EAAyB8Z,EAAI,qBAAsBuH,GAEnD,IACE,IAAIK,EAAa7nB,OAAOmF,yBAAyBqiB,EAAe,QAE5DK,EAAWvhB,cACbtG,OAAO2F,eAAe6hB,EAAe,OAAQ,CAC3Clf,IAAK,WACH,OAAO2X,EAAGpa,QAKhB,MAAOtD,IAET,OAAOilB,EC/IT,IAAI,IAAS,UA2Db,SAASM,KACP,KAAM,UAAW,IACf,OAAO,EAGT,IAIE,OAHA,IAAIC,QACJ,IAAIC,QAAQ,0BACZ,IAAIC,UACG,EACP,MAAO1jB,GACP,OAAO,GASX,SAAS2jB,GAAczhB,GACrB,OAAOA,GAAQ,mDAAmD/B,KAAK+B,EAAKvG,YCjF9E,SAAS,GAAQ2E,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,GAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAE7gB,SAAS,GAA2B4X,EAAGC,GAAkB,IAAIC,EAAuB,oBAAXC,QAA0BH,EAAEG,OAAOC,WAAaJ,EAAE,cAAe,IAAKE,EAAI,CAAE,GAAInZ,MAAMC,QAAQgZ,KAAOE,EAE9K,SAAqCF,EAAGK,GAAU,IAAKL,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGK,GAAS,IAAIE,EAAI1d,OAAOC,UAAUC,SAASG,KAAK8c,GAAGpV,MAAM,GAAI,GAAc,WAAN2V,GAAkBP,EAAE5B,cAAamC,EAAIP,EAAE5B,YAAY1V,MAAM,GAAU,QAAN6X,GAAqB,QAANA,EAAa,OAAOxZ,MAAMyZ,KAAKR,GAAI,GAAU,cAANO,GAAqB,2CAA2ChZ,KAAKgZ,GAAI,OAAO,GAAkBP,EAAGK,GAFnO,CAA4BL,KAAOC,GAAkBD,GAAyB,iBAAbA,EAAElb,OAAqB,CAAMob,IAAIF,EAAIE,GAAI,IAAIza,EAAI,EAAOib,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGH,EAAG,WAAe,OAAI9a,GAAKua,EAAElb,OAAe,CAAE8b,MAAM,GAAe,CAAEA,MAAM,EAAO1Z,MAAO8Y,EAAEva,OAAW2B,EAAG,SAAWlD,GAAM,MAAMA,GAAO2c,EAAGH,GAAO,MAAM,IAAII,UAAU,yIAA4I,IAA6C9R,EAAzC+R,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEL,EAAG,WAAeT,EAAKA,EAAGhd,KAAK8c,IAAOO,EAAG,WAAe,IAAIU,EAAOf,EAAGgB,OAAsC,OAA9BH,EAAmBE,EAAKL,KAAaK,GAAS7Z,EAAG,SAAW+Z,GAAOH,GAAS,EAAMhS,EAAMmS,GAAQN,EAAG,WAAe,IAAWE,GAAiC,MAAbb,EAAGkB,QAAgBlB,EAAGkB,SAAY,QAAU,GAAIJ,EAAQ,MAAMhS,KAIz9B,SAAS,GAAkBqS,EAAKzc,IAAkB,MAAPA,GAAeA,EAAMyc,EAAIvc,UAAQF,EAAMyc,EAAIvc,QAAQ,IAAK,IAAIW,EAAI,EAAG6b,EAAO,IAAIva,MAAMnC,GAAMa,EAAIb,EAAKa,IAAO6b,EAAK7b,GAAK4b,EAAI5b,GAAM,OAAO6b,EAShL,IAqSI0J,GArSA,IAAS,UAYTC,GAAW,GACXC,GAAe,GAGnB,SAASC,GAAWthB,GAClB,IAAIqhB,GAAarhB,GAMjB,OAFAqhB,GAAarhB,IAAQ,EAEbA,GACN,IAAK,WA2ET,WACE,KAAM,YAAa,IACjB,OAGFyC,EAAerG,SAAQ,SAAU0G,GACzBA,KAAS,GAAOye,SAItB3iB,EAAK,GAAO2iB,QAASze,GAAO,SAAU0e,GACpC,OAAO,WACL,IAAK,IAAIrf,EAAOvF,UAAU3B,OAAQmH,EAAO,IAAIlF,MAAMiF,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQzF,UAAUyF,GAGzBof,GAAgB,UAAW,CACzBrf,KAAMA,EACNU,MAAOA,IAGL0e,GACFA,EAAsBnjB,MAAM,GAAOkjB,QAASnf,UAhGhDsf,GACA,MAEF,IAAK,OAicT,WACE,KAAM,aAAc,IAClB,OAMF,IAAIC,EAAoBF,GAAgBG,KAAK,KAAM,OAC/CC,EAAwBC,GAAoBH,GAAmB,GACnE,GAAO9G,SAASkH,iBAAiB,QAASF,GAAuB,GACjE,GAAOhH,SAASkH,iBAAiB,WAAYF,GAAuB,GAMpE,CAAC,cAAe,QAAQzlB,SAAQ,SAAUmC,GAExC,IAAIgB,EAAQ,GAAOhB,IAAW,GAAOA,GAAQtF,UAExCsG,GAAUA,EAAMiB,gBAAmBjB,EAAMiB,eAAe,sBAI7D5B,EAAKW,EAAO,oBAAoB,SAAUyiB,GACxC,OAAO,SAAUhiB,EAAMiiB,EAAU9b,GAC/B,GAAa,UAATnG,GAA4B,YAARA,EACtB,IACE,IAAIxE,EAAKuG,KAELiH,EAAYxN,EAAG0mB,oCAAsC1mB,EAAG0mB,qCAAuC,GAE/FC,EAAiBnZ,EAAUhJ,GAAQgJ,EAAUhJ,IAAS,CACxDoiB,SAAU,GAGZ,IAAKD,EAAe/X,QAAS,CAC3B,IAAIA,EAAU0X,GAAoBH,GAClCQ,EAAe/X,QAAUA,EACzB4X,EAAyB3oB,KAAK0I,KAAM/B,EAAMoK,EAASjE,GAGrDgc,EAAeC,UAAY,EAC3B,MAAO7kB,IAKX,OAAOykB,EAAyB3oB,KAAK0I,KAAM/B,EAAMiiB,EAAU9b,OAG/DvH,EAAKW,EAAO,uBAAuB,SAAU8iB,GAC3C,OAAO,SAAUriB,EAAMiiB,EAAU9b,GAC/B,GAAa,UAATnG,GAA4B,YAARA,EACtB,IACE,IAAIxE,EAAKuG,KAELugB,EAAa9mB,EAAG0mB,qCAAuC,GAEvDC,EAAiBG,EAAWtiB,GAE5BmiB,IACFA,EAAeC,UAAY,EAEvBD,EAAeC,UAAY,IAC7BC,EAA4BhpB,KAAK0I,KAAM/B,EAAMmiB,EAAe/X,QAASjE,GACrEgc,EAAe/X,aAAUvN,SAClBylB,EAAWtiB,IAImB,IAAnChH,OAAO+E,KAAKukB,GAAYrnB,eACnBO,EAAG0mB,qCAGd,MAAO3kB,IAKX,OAAO8kB,EAA4BhpB,KAAK0I,KAAM/B,EAAMiiB,EAAU9b,WAjhBhEoc,GACA,MAEF,IAAK,OAiLT,WACE,KAAM,mBAAoB,IACxB,OAGF,IAAIC,EAAWC,eAAexpB,UAC9B2F,EAAK4jB,EAAU,QAAQ,SAAUE,GAC/B,OAAO,WACL,IAAK,IAAIC,EAAQ/lB,UAAU3B,OAAQmH,EAAO,IAAIlF,MAAMylB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFxgB,EAAKwgB,GAAShmB,UAAUgmB,GAI1B,IAAIC,EAAM9gB,KACNqF,EAAMhF,EAAK,GACX0gB,EAAUD,EAAIE,eAAiB,CAEjCvQ,OAAQ3Y,EAASuI,EAAK,IAAMA,EAAK,GAAG4gB,cAAgB5gB,EAAK,GACzDgF,IAAKhF,EAAK,IAIRvI,EAASuN,IAA2B,SAAnB0b,EAAQtQ,QAAqBpL,EAAI6b,MAAM,gBAC1DJ,EAAIK,wBAAyB,GAG/B,IAAIC,EAA4B,WAC9B,GAAuB,IAAnBN,EAAIO,WAAkB,CACxB,IAGEN,EAAQO,YAAcR,EAAI/X,OAC1B,MAAOvN,IAITkkB,GAAgB,MAAO,CACrBrf,KAAMA,EACNkhB,aAAcpY,KAAK4S,MACnByF,eAAgBrY,KAAK4S,MACrB+E,IAAKA,MAqBX,MAhBI,uBAAwBA,GAAyC,mBAA3BA,EAAIW,mBAC5C5kB,EAAKikB,EAAK,sBAAsB,SAAU9jB,GACxC,OAAO,WACLokB,IAEA,IAAK,IAAIM,EAAQ7mB,UAAU3B,OAAQyoB,EAAiB,IAAIxmB,MAAMumB,GAAQE,EAAQ,EAAGA,EAAQF,EAAOE,IAC9FD,EAAeC,GAAS/mB,UAAU+mB,GAGpC,OAAO5kB,EAASV,MAAMwkB,EAAKa,OAI/Bb,EAAId,iBAAiB,mBAAoBoB,GAGpCT,EAAarkB,MAAMwkB,EAAKzgB,OAGnCxD,EAAK4jB,EAAU,QAAQ,SAAUoB,GAC/B,OAAO,WACL,IAAK,IAAIC,EAAQjnB,UAAU3B,OAAQmH,EAAO,IAAIlF,MAAM2mB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF1hB,EAAK0hB,GAASlnB,UAAUknB,GAY1B,OATI/hB,KAAKghB,qBAA8BlmB,IAAZuF,EAAK,KAC9BL,KAAKghB,eAAehD,KAAO3d,EAAK,IAGlCqf,GAAgB,MAAO,CACrBrf,KAAMA,EACNmhB,eAAgBrY,KAAK4S,MACrB+E,IAAK9gB,OAEA6hB,EAAavlB,MAAM0D,KAAMK,OA/PhC2hB,GACA,MAEF,IAAK,SA8FT,WACE,IDzDF,WACE,IAAKjD,KACH,OAAO,EAKT,GAAII,GAAc,GAAO8C,OACvB,OAAO,EAKT,IAAI5a,GAAS,EACT6a,EAAM,GAAOpJ,SAEjB,GAAIoJ,GAAoC,mBAAtBA,EAAIC,cACpB,IACE,IAAIC,EAAUF,EAAIC,cAAc,UAChCC,EAAQC,QAAS,EACjBH,EAAII,KAAKC,YAAYH,GAEjBA,EAAQI,eAAiBJ,EAAQI,cAAcP,QAEjD5a,EAAS8X,GAAciD,EAAQI,cAAcP,QAG/CC,EAAII,KAAKG,YAAYL,GACrB,MAAOhf,IACsB,oBAArB/B,kBAAoCA,mBAAqBb,EAAOoE,KAAK,kFAAmFxB,GAIpK,OAAOiE,ECwBFqb,GACH,OAGF7lB,EAAK,GAAQ,SAAS,SAAU8lB,GAC9B,OAAO,WACL,IAAK,IAAIC,EAAQ/nB,UAAU3B,OAAQmH,EAAO,IAAIlF,MAAMynB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFxiB,EAAKwiB,GAAShoB,UAAUgoB,GAG1B,IAAIC,EAAc,CAChBziB,KAAMA,EACN0iB,UAAW,CACTtS,OAAQuS,GAAe3iB,GACvBgF,IAAK4d,GAAY5iB,IAEnBmhB,eAAgBrY,KAAK4S,OAIvB,OAFA2D,GAAgB,QAAS,GAAc,GAAIoD,IAEpCH,EAAcrmB,MAAM,GAAQ+D,GAAMjI,MAAK,SAAU6lB,GAKtD,OAJAyB,GAAgB,QAAS,GAAc,GAAc,GAAIoD,GAAc,GAAI,CACzEvB,aAAcpY,KAAK4S,MACnBkC,SAAUA,KAELA,KACN,SAAUhZ,GAQX,MAPAya,GAAgB,QAAS,GAAc,GAAc,GAAIoD,GAAc,GAAI,CACzEvB,aAAcpY,KAAK4S,MACnB9W,MAAOA,KAKHA,SAhIRie,GACA,MAEF,IAAK,WAgQT,WACE,ID/IF,WAOE,IAAIC,EAAS,GAAOA,OAChBC,EAAsBD,GAAUA,EAAOE,KAAOF,EAAOE,IAAIC,QAGzDC,EAAgB,YAAa,MAAY,GAAOC,QAAQC,aAAe,GAAOD,QAAQE,aAC1F,OAAQN,GAAuBG,ECmI1BI,GACH,OAGF,IAAIC,EAAgB,GAAOC,WA6B3B,SAASC,EAA2BC,GAClC,OAAO,WACL,IAAK,IAAIC,EAAQnpB,UAAU3B,OAAQmH,EAAO,IAAIlF,MAAM6oB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF5jB,EAAK4jB,GAASppB,UAAUopB,GAG1B,IAAI5e,EAAMhF,EAAKnH,OAAS,EAAImH,EAAK,QAAKvF,EAEtC,GAAIuK,EAAK,CAEP,IAAIuP,EAAOwK,GACP8E,EAAK3oB,OAAO8J,GAEhB+Z,GAAW8E,EACXxE,GAAgB,UAAW,CACzB9K,KAAMA,EACNsP,GAAIA,IAIR,OAAOH,EAAwBznB,MAAM0D,KAAMK,IA/C/C,GAAOwjB,WAAa,WAClB,IAAIK,EAAK,GAAOC,SAASC,KAErBxP,EAAOwK,GAOX,GANAA,GAAW8E,EACXxE,GAAgB,UAAW,CACzB9K,KAAMA,EACNsP,GAAIA,IAGFN,EAIF,IACE,IAAK,IAAIS,EAAQxpB,UAAU3B,OAAQmH,EAAO,IAAIlF,MAAMkpB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFjkB,EAAKikB,GAASzpB,UAAUypB,GAG1B,OAAOV,EAActnB,MAAM0D,KAAMK,GACjC,MAAO7G,MA+BbqD,EAAK,GAAO2mB,QAAS,YAAaM,GAClCjnB,EAAK,GAAO2mB,QAAS,eAAgBM,GA1TjCS,GACA,MAEF,IAAK,QA4gBPC,GAAqB,GAAOC,QAE5B,GAAOA,QAAU,SAAUC,EAAKrf,EAAKgR,EAAMsO,EAAQ1f,GASjD,OARAya,GAAgB,QAAS,CACvBiF,OAAQA,EACR1f,MAAOA,EACPoR,KAAMA,EACNqO,IAAKA,EACLrf,IAAKA,MAGHmf,IAEKA,GAAmBloB,MAAM0D,KAAMnF,YAvhBtC,MAEF,IAAK,qBAgiBP+pB,GAAkC,GAAOC,qBAEzC,GAAOA,qBAAuB,SAAUrpB,GAGtC,OAFAkkB,GAAgB,qBAAsBlkB,IAElCopB,IAEKA,GAAgCtoB,MAAM0D,KAAMnF,YAriBnD,MAEF,QAEE,aAD6B,oBAArBwG,kBAAoCA,mBAAqBb,EAAOoE,KAAK,gCAAiC3G,KAWpH,SAAS6mB,GAA0B7mB,EAAM2C,GACvCye,GAASphB,GAAQohB,GAASphB,IAAS,GACnCohB,GAASphB,GAAM7E,KAAKwH,GACpB2e,GAAWthB,GAKb,SAASyhB,GAAgBzhB,EAAMgF,GAC7B,GAAKhF,GAASohB,GAASphB,GAAvB,CAIA,IACIgY,EADAE,EAAY,GAA2BkJ,GAASphB,IAAS,IAG7D,IACE,IAAKkY,EAAUpB,MAAOkB,EAAQE,EAAUxB,KAAKK,MAAO,CAClD,IAAI3M,EAAU4N,EAAM3a,MAEpB,IACE+M,EAAQpF,GACR,MAAOzH,IACsB,oBAArB6F,kBAAoCA,mBAAqBb,EAAOyE,MAAM,0DAA0DtN,OAAOsG,EAAM,YAAYtG,OAAOsf,GAAgB5O,GAAU,YAAa7M,KAGnN,MAAO4H,GACP+S,EAAU3a,EAAE4H,GACZ,QACA+S,EAAUlB,MAkFd,SAAS+N,KACP,IAAI+B,EAAYlqB,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAEpF,MAAI,YAAa,IAAUtD,EAAawtB,EAAU,GAAI9F,UAAY8F,EAAU,GAAGtU,OACtElV,OAAOwpB,EAAU,GAAGtU,QAAQwQ,cAGjC8D,EAAU,IAAMA,EAAU,GAAGtU,OACxBlV,OAAOwpB,EAAU,GAAGtU,QAAQwQ,cAG9B,MAKT,SAASgC,KACP,IAAI8B,EAAYlqB,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAEpF,MAA4B,iBAAjBkqB,EAAU,GACZA,EAAU,GAGf,YAAa,IAAUxtB,EAAawtB,EAAU,GAAI9F,SAC7C8F,EAAU,GAAG1f,IAGf9J,OAAOwpB,EAAU,IA4J1B,IACIC,GACAC,GAOJ,SAASC,GAAmCC,EAAUC,GAEpD,IAAKD,EACH,OAAO,EAIT,GAAIA,EAASlnB,OAASmnB,EAAQnnB,KAC5B,OAAO,EAGT,IAGE,GAAIknB,EAAS3oB,SAAW4oB,EAAQ5oB,OAC9B,OAAO,EAET,MAAOhB,IAOT,OAAO,EAQT,SAAS6pB,GAAmBjjB,GAE1B,GAAmB,aAAfA,EAAMnE,KACR,OAAO,EAGT,IACE,IAAIzB,EAAS4F,EAAM5F,OAEnB,IAAKA,IAAWA,EAAO1C,QACrB,OAAO,EAKT,GAAuB,UAAnB0C,EAAO1C,SAA0C,aAAnB0C,EAAO1C,SAA0B0C,EAAO8oB,kBACxE,OAAO,EAET,MAAO9pB,IAIT,OAAO,EAWT,SAASukB,GAAoB1X,GAC3B,IAAIkd,EAAiB1qB,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,IAAmBA,UAAU,GACpF,OAAO,SAAUuH,GAIf,GAAKA,GAAS6iB,KAAsB7iB,IAKhCijB,GAAmBjjB,GAAvB,CAIA,IAAItF,EAAsB,aAAfsF,EAAMnE,KAAsB,QAAUmE,EAAMnE,WAE/BnD,IAApBkqB,IASKE,GAAmCD,GAAmB7iB,MAR7DiG,EAAQ,CACNjG,MAAOA,EACPtF,KAAMA,EACN0oB,OAAQD,IAEVN,GAAoB7iB,GAatBwR,aAAaoR,IACbA,GAAkB,GAAOrR,YAAW,WAClCqR,QAAkBlqB,IAhHD,OA8MvB,IAAI0pB,GAAqB,KAwBzB,IAAII,GAAkC,KC7lBtC,SAAS,GAAQ9oB,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,GAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAQ7gB,SAASipB,GAAmB9O,EAAaiI,GAEvC,IAAIlZ,EAASggB,GAAiB/O,EAAaiI,GACvCjgB,EAAY,CACdV,KAAM2gB,GAAMA,EAAG9hB,KACfxB,MAAOqqB,GAAe/G,IAaxB,OAVIlZ,EAAOxM,SACTyF,EAAUgH,WAAa,CACrBD,OAAQA,SAIW5K,IAAnB6D,EAAUV,MAA0C,KAApBU,EAAUrD,QAC5CqD,EAAUrD,MAAQ,8BAGbqD,EAyCT,SAASinB,GAAejP,EAAaiI,GACnC,MAAO,CACLjgB,UAAW,CACT0D,OAAQ,CAACojB,GAAmB9O,EAAaiI,MAO/C,SAAS8G,GAAiB/O,EAAaiI,GAIrC,IAAIjZ,EAAaiZ,EAAGjZ,YAAciZ,EAAG9gB,OAAS,GAC1C+nB,EAaN,SAAoBjH,GAClB,GAAIA,EAAI,CACN,GAA8B,iBAAnBA,EAAGkH,YACZ,OAAOlH,EAAGkH,YAGZ,GAAIC,GAAoBpqB,KAAKijB,EAAG/gB,SAC9B,OAAO,EAIX,OAAO,EAxBOmoB,CAAWpH,GAEzB,IACE,OAAOjI,EAAYhR,EAAYkgB,GAC/B,MAAOrqB,IAGT,MAAO,GAIT,IAAIuqB,GAAsB,8BAsB1B,SAASJ,GAAe/G,GACtB,IAAI/gB,EAAU+gB,GAAMA,EAAG/gB,QAEvB,OAAKA,EAIDA,EAAQoH,OAA0C,iBAA1BpH,EAAQoH,MAAMpH,QACjCA,EAAQoH,MAAMpH,QAGhBA,EAPE,mBAkCX,SAAS,GAAiB8Y,EAAa9Y,GACrC,IAAIkD,EAAQlG,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,OAC5EuR,EAAOvR,UAAU3B,OAAS,EAAI2B,UAAU,QAAKC,EAC7CmrB,EAAmBprB,UAAU3B,OAAS,EAAI2B,UAAU,QAAKC,EACzDqT,EAAqB/B,GAAQA,EAAK+B,yBAAsBrT,EACxDsH,EAAQ8jB,GAAgBvP,EAAa9Y,EAASsQ,EAAoB8X,GAOtE,OANA7jB,EAAMrB,MAAQA,EAEVqL,GAAQA,EAAK5J,WACfJ,EAAMI,SAAW4J,EAAK5J,UAGjBwD,GAAoB5D,GAO7B,SAAS+jB,GAAsBxP,EAAahY,EAAWwP,EAAoB8X,EAAkBG,GAC3F,IAAIhkB,EAEJ,GAAIxK,EAAa+G,IAAcA,EAAUsG,MAGvC,OAAO2gB,GAAejP,EADLhY,EAC6BsG,OAUhD,GAAIpN,EAAW8G,IzB7HRlH,EyB6HqCkH,EzB7HtB,gByB6HkC,CACtD,IAAI0nB,EAAe1nB,EAEnB,GAAI,UAAWA,EACbyD,EAAQwjB,GAAejP,EAAahY,OAC/B,CACL,IAAI7B,EAAOupB,EAAavpB,OAASjF,EAAWwuB,GAAgB,WAAa,gBACrExoB,EAAUwoB,EAAaxoB,QAAU,GAAGlG,OAAOmF,EAAM,MAAMnF,OAAO0uB,EAAaxoB,SAAWf,EAE1F4F,EADAN,EAAQ8jB,GAAgBvP,EAAa9Y,EAASsQ,EAAoB8X,GACrCpoB,GAS/B,MANI,SAAUwoB,IACZjkB,EAAM6I,KAAO,GAAc,GAAc,GAAI7I,EAAM6I,MAAO,GAAI,CAC5D,oBAAqB,GAAGtT,OAAO0uB,EAAaC,SAIzClkB,EAGT,OAAIhL,EAAQuH,GAEHinB,GAAejP,EAAahY,GAGjC5G,EAAc4G,IAAc3G,EAAQ2G,IAKtCyD,EA1LJ,SAA8BuU,EAAahY,EAAWwP,EAAoBiY,GACxE,IACIpiB,EADML,KACOM,YACbsiB,EAAiBviB,GAAUA,EAAOG,aAAaoiB,eAC/CnkB,EAAQ,CACVzD,UAAW,CACT0D,OAAQ,CAAC,CACPpE,KAAMjG,EAAQ2G,GAAaA,EAAU6T,YAAY1V,KAAOspB,EAAuB,qBAAuB,QACtG9qB,MAAO,aAAa3D,OAAOyuB,EAAuB,oBAAsB,YAAa,yBAAyBzuB,OAAO+G,EAA+BC,OAGxJwM,MAAO,CACLqb,eAAgB/O,GAAgB9Y,EAAW4nB,KAI/C,GAAIpY,EAAoB,CACtB,IAAIzI,EAASggB,GAAiB/O,EAAaxI,GAEvCzI,EAAOxM,SAETkJ,EAAMzD,UAAU0D,OAAO,GAAGsD,WAAa,CACrCD,OAAQA,IAKd,OAAOtD,EA+JGqkB,CAAqB9P,EADPhY,EACqCwP,EAAoBiY,GAC/EzjB,EAAsBP,EAAO,CAC3BskB,WAAW,IAENtkB,IAaTM,EADAN,EAAQ8jB,GAAgBvP,EAAahY,EAAWwP,EAAoB8X,GACvC,GAAGtuB,OAAOgH,QAAY7D,GACnD6H,EAAsBP,EAAO,CAC3BskB,WAAW,IAENtkB,GAOT,SAAS8jB,GAAgBvP,EAAa1b,EAAOkT,EAAoB8X,GAC/D,IAAI7jB,EAAQ,CACVvE,QAAS5C,GAGX,GAAIgrB,GAAoB9X,EAAoB,CAC1C,IAAIzI,EAASggB,GAAiB/O,EAAaxI,GAEvCzI,EAAOxM,SACTkJ,EAAMzD,UAAY,CAChB0D,OAAQ,CAAC,CACP/G,MAAOL,EACP0K,WAAY,CACVD,OAAQA,OAOlB,OAAOtD,EC1QT,SAAS,GAAQtG,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAYlV,IAAI2qB,GAA8B,WAEhC,SAASA,EAAeviB,IACtB,OAAgBpE,KAAM2mB,GAItBA,EAAezvB,UAAU+I,OAAO3I,KAAK0I,MAErC2mB,EAAezvB,UAAUsP,QAAQlP,KAAK0I,MAEtCA,KAAKyD,SArBT,SAAuBjH,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAqBzf,CAAc,CAC5BioB,SAAS,EACTI,sBAAsB,GACrBzgB,GA4DL,OArDA,OAAauiB,EAAgB,CAAC,CAC5BhtB,IAAK,SACL2B,MAIA,WACE0E,KAAKlD,KAAO6pB,EAAepsB,KAS5B,CACDZ,IAAK,UACL2B,MAAO,WACL0E,KAAK4mB,aAAe,CAClBnC,QAASoC,GACThC,qBAAsBiC,MAGzB,CACDntB,IAAK,YACL2B,MAAO,WACL9D,MAAMuvB,gBAAkB,GACxB,IAuLoB9oB,EAvLhBmG,EAAUpE,KAAKyD,SAInB,IAAK,IAAI9J,KAAOyK,EAAS,CACvB,IAAI4iB,EAAchnB,KAAK4mB,aAAajtB,GAEhCqtB,GAAe5iB,EAAQzK,KAgLTsE,EA/KCtE,GAgLI,oBAArB0H,kBAAoCA,mBAAqBb,EAAOyM,IAAI,4BAA4BtV,OAAOsG,IA/KvG+oB,IACAhnB,KAAK4mB,aAAajtB,QAAOmB,OAI7B,CAAC,CACHnB,IAAK,eACL2B,MAIA,WACE0E,KAAKzF,GAAK,qBAIPosB,EA1EyB,GAiFlC,SAASE,KACP/B,GAA0B,SAC1B,SAAU7hB,GACR,IAAIgkB,EAAoBC,KACpBC,GAAqB,QAAeF,EAAmB,GACvDpjB,EAAMsjB,EAAmB,GACzBxQ,EAAcwQ,EAAmB,GACjClB,EAAmBkB,EAAmB,GAE1C,GAAKtjB,EAAIE,eAAe4iB,IAAxB,CAIA,IAAIjC,EAAMzhB,EAAKyhB,IACXrf,EAAMpC,EAAKoC,IACXgR,EAAOpT,EAAKoT,KACZsO,EAAS1hB,EAAK0hB,OACd1f,EAAQhC,EAAKgC,MAEjB,KAAIkZ,MAAyBlZ,GAASA,EAAMkc,wBAA5C,CAIA,IAAI/e,OAAkBtH,IAAVmK,GAAuBnN,EAAS4sB,GA0EhD,SAAqCA,EAAKrf,EAAKgR,EAAMsO,GACnD,IAAIyC,EAAiB,2GAEjBvpB,EAAUjG,EAAa8sB,GAAOA,EAAI7mB,QAAU6mB,EAC5C5nB,EAAO,QACPuqB,EAASxpB,EAAQqjB,MAAMkG,GAEvBC,IACFvqB,EAAOuqB,EAAO,GACdxpB,EAAUwpB,EAAO,IAWnB,OAAOC,GARK,CACV3oB,UAAW,CACT0D,OAAQ,CAAC,CACPpE,KAAMnB,EACNxB,MAAOuC,MAI+BwH,EAAKgR,EAAMsO,GA9FF4C,CAA4B7C,EAAKrf,EAAKgR,EAAMsO,GAAU2C,GAA8BnB,GAAsBxP,EAAa1R,GAASyf,OAAK5pB,EAAWmrB,GAAkB,GAAQ5gB,EAAKgR,EAAMsO,GACxOviB,EAAMrB,MAAQ,QACdymB,GAAuB3jB,EAAKoB,EAAO7C,EAAO,gBAM9C,SAAS0kB,KACPhC,GAA0B,sBAC1B,SAAUtpB,GACR,IAAIisB,EAAqBP,KACrBQ,GAAqB,QAAeD,EAAoB,GACxD5jB,EAAM6jB,EAAmB,GACzB/Q,EAAc+Q,EAAmB,GACjCzB,EAAmByB,EAAmB,GAE1C,GAAK7jB,EAAIE,eAAe4iB,IAAxB,CAIA,IAAI1hB,EAAQzJ,EAEZ,IAGM,WAAYA,EACdyJ,EAAQzJ,EAAE4K,OAMH,WAAY5K,GAAK,WAAYA,EAAE6C,SACtC4G,EAAQzJ,EAAE6C,OAAO+H,QAEnB,MAAO5M,IAGT,GAAI2kB,MAAyBlZ,GAASA,EAAMkc,uBAC1C,OAAO,EAGT,IAAI/e,EAAQ,EAAY6C,GAenB,CACLtG,UAAW,CACT0D,OAAQ,CAAC,CACPpE,KAAM,qBAEN3C,MAAO,oDAAoD3D,OAAO4D,OApBJ0J,QAASkhB,GAAsBxP,EAAa1R,OAAOnK,EAAWmrB,GAAkB,GAClJ7jB,EAAMrB,MAAQ,QACdymB,GAAuB3jB,EAAKoB,EAAO7C,EAAO,4BAuD9C,SAASklB,GAA8BllB,EAAOiD,EAAKgR,EAAMsO,GAEvD,IAAInpB,EAAI4G,EAAMzD,UAAYyD,EAAMzD,WAAa,GAEzCgpB,EAAKnsB,EAAE6G,OAAS7G,EAAE6G,QAAU,GAE5BulB,EAAMD,EAAG,GAAKA,EAAG,IAAM,GAEvBE,EAAOD,EAAIjiB,WAAaiiB,EAAIjiB,YAAc,GAE1CmiB,EAAQD,EAAKniB,OAASmiB,EAAKniB,QAAU,GACrCqiB,EAAQ7L,MAAMD,SAAS0I,EAAQ,UAAO7pB,EAAY6pB,EAClDqD,EAAS9L,MAAMD,SAAS5F,EAAM,UAAOvb,EAAYub,EACjDxQ,EAAW/N,EAASuN,IAAQA,EAAInM,OAAS,EAAImM,ExBxHnD,WACE,IACE,OAAO7M,EAAOsgB,SAASqL,SAASC,KAChC,MAAOpf,GACP,MAAO,IwBoH8CijB,GAYvD,OAVqB,IAAjBH,EAAM5uB,QACR4uB,EAAM1uB,KAAK,CACT2uB,MAAOA,EACPliB,SAAUA,EACViR,SAAU,IACVoR,QAAQ,EACRF,OAAQA,IAIL5lB,EAOT,SAASolB,GAAuB3jB,EAAKoB,EAAO7C,EAAOnE,GACjD0E,EAAsBP,EAAO,CAC3BW,SAAS,EACT9E,KAAMA,IAER4F,EAAI2K,aAAapM,EAAO,CACtBkM,kBAAmBrJ,IAIvB,SAASiiB,KACP,IAAIrjB,EAAMF,KACNK,EAASH,EAAII,YACbG,EAAUJ,GAAUA,EAAOG,cAAgB,CAC7CwS,YAAa,WACX,MAAO,IAETsP,kBAAkB,GAEpB,MAAO,CAACpiB,EAAKO,EAAQuS,YAAavS,EAAQ6hB,kBC5Q5C,SAAS,GAAQnqB,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,ED0FlV2qB,GAAepmB,eCpFf,IAAI4nB,GAAuB,CAAC,cAAe,SAAU,OAAQ,mBAAoB,iBAAkB,oBAAqB,kBAAmB,cAAe,aAAc,qBAAsB,cAAe,aAAc,iBAAkB,eAAgB,kBAAmB,cAAe,cAAe,eAAgB,qBAAsB,SAAU,YAAa,eAAgB,gBAAiB,YAAa,kBAAmB,SAAU,iBAAkB,4BAA6B,wBAGjeC,GAAwB,WAM1B,SAASA,EAAShkB,IAChB,OAAgBpE,KAAMooB,GAItBA,EAASlxB,UAAU+I,OAAO3I,KAAK0I,MAE/BA,KAAKyD,SApBT,SAAuBjH,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAoBzf,CAAc,CAC5BkkB,gBAAgB,EAChB2H,aAAa,EACbC,uBAAuB,EACvBC,aAAa,EACb5U,YAAY,GACXvP,GAsDL,OA9CA,OAAagkB,EAAU,CAAC,CACtBzuB,IAAK,SACL2B,MAIA,WACE0E,KAAKlD,KAAOsrB,EAAS7tB,KAEtB,CACDZ,IAAK,YACL2B,MAAO,WACD0E,KAAKyD,SAASkQ,YAChB9W,EAAK,GAAQ,aAAc2rB,IAGzBxoB,KAAKyD,SAAS8kB,aAChB1rB,EAAK,GAAQ,cAAe2rB,IAG1BxoB,KAAKyD,SAAS6kB,uBAChBzrB,EAAK,GAAQ,wBAAyB4rB,IAGpCzoB,KAAKyD,SAASid,gBAAkB,mBAAoB,IACtD7jB,EAAK6jB,eAAexpB,UAAW,OAAQwxB,IAGzC,IAAIC,EAAoB3oB,KAAKyD,SAAS4kB,YAElCM,IACgBxtB,MAAMC,QAAQutB,GAAqBA,EAAoBR,IAC7D9tB,QAAQuuB,OAGtB,CAAC,CACHjvB,IAAK,eACL2B,MAIA,WACE0E,KAAKzF,GAAK,eAIP6tB,EAzEmB,GAgF5B,SAASI,GAAkBxrB,GAEzB,OAAO,WACL,IAAK,IAAIoD,EAAOvF,UAAU3B,OAAQmH,EAAO,IAAIlF,MAAMiF,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQzF,UAAUyF,GAGzB,IAAIuoB,EAAmBxoB,EAAK,GAU5B,OATAA,EAAK,GAAKge,GAAKwK,EAAkB,CAC/B/lB,UAAW,CACTG,KAAM,CACJ6T,SAAUG,GAAgBja,IAE5B+F,SAAS,EACT9E,KAAM,gBAGHjB,EAASV,MAAM0D,KAAMK,IAOhC,SAASooB,GAASzrB,GAEhB,OAAO,SAAU4D,GAEf,OAAO5D,EAASV,MAAM0D,KAAM,CAACqe,GAAKzd,EAAU,CAC1CkC,UAAW,CACTG,KAAM,CACJ6T,SAAU,wBACVzO,QAAS4O,GAAgBja,IAE3B+F,SAAS,EACT9E,KAAM,mBAQd,SAASyqB,GAAS7G,GAEhB,OAAO,WAEL,IAAIf,EAAM9gB,KACN8oB,EAAsB,CAAC,SAAU,UAAW,aAAc,sBAC9DA,EAAoBzuB,SAAQ,SAAU0uB,GAChCA,KAAQjI,GAA4B,mBAAdA,EAAIiI,IAE5BlsB,EAAKikB,EAAKiI,GAAM,SAAU/rB,GACxB,IAAIgsB,EAAc,CAChBlmB,UAAW,CACTG,KAAM,CACJ6T,SAAUiS,EACV1gB,QAAS4O,GAAgBja,IAE3B+F,SAAS,EACT9E,KAAM,eAINgrB,EAAmBxrB,EAAoBT,GAO3C,OALIisB,IACFD,EAAYlmB,UAAUG,KAAKoF,QAAU4O,GAAgBgS,IAIhD5K,GAAKrhB,EAAUgsB,SAK5B,IAAK,IAAIpG,EAAQ/nB,UAAU3B,OAAQmH,EAAO,IAAIlF,MAAMynB,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFxiB,EAAKwiB,GAAShoB,UAAUgoB,GAG1B,OAAOhB,EAAavlB,MAAM0D,KAAMK,IAMpC,SAASuoB,GAAiBpsB,GAExB,IAAI0sB,EAAe,GAEf1rB,EAAQ0rB,EAAa1sB,IAAW0sB,EAAa1sB,GAAQtF,UAEpDsG,GAAUA,EAAMiB,gBAAmBjB,EAAMiB,eAAe,sBAI7D5B,EAAKW,EAAO,oBAAoB,SAAUR,GACxC,OAAO,SACPmsB,EAAWjS,EAAI9S,GACb,IACgC,mBAAnB8S,EAAGkS,cAOZlS,EAAGkS,YAAc/K,GAAKnH,EAAGkS,YAAa,CACpCtmB,UAAW,CACTG,KAAM,CACJ6T,SAAU,cACVzO,QAAS4O,GAAgBC,GACzB1a,OAAQA,GAEVuG,SAAS,EACT9E,KAAM,iBAIZ,MAAOmF,IAGT,OAAOpG,EAASV,MAAM0D,KAAM,CAACmpB,EAC7B9K,GAAKnH,EAAI,CACPpU,UAAW,CACTG,KAAM,CACJ6T,SAAU,mBACVzO,QAAS4O,GAAgBC,GACzB1a,OAAQA,GAEVuG,SAAS,EACT9E,KAAM,gBAENmG,QAGRvH,EAAKW,EAAO,uBAAuB,SAAU8iB,GAE3C,OAAO,SACP6I,EAAWjS,EAAI9S,GAkBb,IAAIilB,EAAsBnS,EAE1B,IACE,IAAIoS,EAAuBD,GAAuBA,EAAoB7K,mBAElE8K,GACFhJ,EAA4BhpB,KAAK0I,KAAMmpB,EAAWG,EAAsBllB,GAE1E,MAAO5I,IAGT,OAAO8kB,EAA4BhpB,KAAK0I,KAAMmpB,EAAWE,EAAqBjlB,QA5KpFgkB,GAAS7nB,eChFT,IAAIgpB,GAAsB,CAAC,QAAS,QAAS,UAAW,MAAO,OAAQ,SAqBvE,SAASC,GAAwBzoB,GAC/B,MAAiB,SAAVA,EAAmB,UAAYwoB,GAAoBtR,SAASlX,GAASA,EAAQ,MCxBtF,SAAS0oB,GAASpkB,GAChB,IAAKA,EACH,MAAO,GAGT,IAAI6b,EAAQ7b,EAAI6b,MAAM,gEAEtB,IAAKA,EACH,MAAO,GAIT,IAAIwI,EAAQxI,EAAM,IAAM,GACpByI,EAAWzI,EAAM,IAAM,GAC3B,MAAO,CACL0I,KAAM1I,EAAM,GACZ2I,KAAM3I,EAAM,GACZ4I,SAAU5I,EAAM,GAChB6I,SAAU7I,EAAM,GAAKwI,EAAQC,GCrBjC,SAAS,GAAQ7tB,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,GAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAS7gB,IAAIwtB,GAA4B,cAM5BC,GAA2B,WAS7B,SAASA,EAAY7lB,IACnB,OAAgBpE,KAAMiqB,GAItBA,EAAY/yB,UAAU+I,OAAO3I,KAAK0I,MAElCA,KAAKoE,QAAU,GAAc,CAC3Bob,SAAS,EACT0K,KAAK,EACLjI,OAAO,EACPuB,SAAS,EACT5S,QAAQ,EACRkQ,KAAK,GACJ1c,GAuDL,OA3CA,OAAa6lB,EAAa,CAAC,CACzBtwB,IAAK,SACL2B,MAIA,WACE0E,KAAKlD,KAAOmtB,EAAY1vB,KAEzB,CACDZ,IAAK,YACL2B,MAAO,WACD0E,KAAKoE,QAAQob,SACfsF,GAA0B,UAAWqF,IAGnCnqB,KAAKoE,QAAQ8lB,KACfpF,GAA0B,MAqClC,SAAwBoF,GAEtB,SAASE,EAAoBtH,GAC3B,IAAItmB,EACA7D,EAA0B,iBAARuxB,EAAmBA,EAAIG,wBAAqBvvB,EAE1C,iBAAbnC,IACTA,EAAW,CAACA,IAId,IACE6D,EAASsmB,EAAY1gB,MAAM5F,OAAS/D,EAAiBqqB,EAAY1gB,MAAM5F,OAAQ7D,GAAYF,EAAiBqqB,EAAY1gB,MAAOzJ,GAC/H,MAAO6C,GACPgB,EAAS,YAGW,IAAlBA,EAAOtD,QAIXyK,KAAgBmL,cAAc,CAC5ByN,SAAU,MAAM5kB,OAAOmrB,EAAYhmB,MACnCe,QAASrB,GACR,CACD4F,MAAO0gB,EAAY1gB,MACnBtF,KAAMgmB,EAAYhmB,KAClB0oB,OAAQ1C,EAAY0C,SAIxB,OAAO4E,EApEgCE,CAAetqB,KAAKoE,QAAQ8lB,MAG3DlqB,KAAKoE,QAAQ0c,KACfgE,GAA0B,MAAOyF,IAG/BvqB,KAAKoE,QAAQ6d,OACf6C,GAA0B,QAAS0F,IAGjCxqB,KAAKoE,QAAQof,SACfsB,GAA0B,UAAW2F,OAGvC,CAAC,CACH9wB,IAAK,eACL2B,MAIA,WACE0E,KAAKzF,GAAKyvB,OAIPC,EA9EsB,GAgI/B,SAASE,GAAmBrH,GAO1B,IAAK,IAAIjpB,EAAI,EAAGA,EAAIipB,EAAYziB,KAAKnH,OAAQW,IAC3C,GAA4B,aAAxBipB,EAAYziB,KAAKxG,GAAmB,CACtCipB,EAAYziB,KAAKxG,EAAI,GAAK,UAC1B,MAIJ,IAAIkS,EAAa,CACfwQ,SAAU,UACVtZ,KAAM,CACJpI,UAAWioB,EAAYziB,KACvBG,OAAQ,WAEVO,MAAOyoB,GAAwB1G,EAAY/hB,OAC3ClD,QAAS7C,EAAS8nB,EAAYziB,KAAM,MAGtC,GAA0B,WAAtByiB,EAAY/hB,MAAoB,CAClC,IAA4B,IAAxB+hB,EAAYziB,KAAK,GAKnB,OAJA0L,EAAWlO,QAAU,qBAAqBlG,OAAOqD,EAAS8nB,EAAYziB,KAAKrB,MAAM,GAAI,MAAQ,kBAC7F+M,EAAW9I,KAAKpI,UAAYioB,EAAYziB,KAAKrB,MAAM,GAOvD2E,KAAgBmL,cAAc/C,EAAY,CACxC9Q,MAAO6nB,EAAYziB,KACnBU,MAAO+hB,EAAY/hB,QASvB,SAASwpB,GAAezH,GACtB,GAAIA,EAAYvB,aAAhB,CAEE,GAAIuB,EAAYhC,IAAIK,uBAClB,OAGF,IAAItc,EAAOie,EAAYhC,IAAIE,gBAAkB,GACzCvQ,EAAS5L,EAAK4L,OACdpL,EAAMR,EAAKQ,IACXic,EAAczc,EAAKyc,YACnBtD,EAAOnZ,EAAKmZ,KAEhBra,KAAgBmL,cAAc,CAC5ByN,SAAU,MACVtZ,KAAM,CACJwN,OAAQA,EACRpL,IAAKA,EACLic,YAAaA,GAEfrjB,KAAM,QACL,CACD6iB,IAAKgC,EAAYhC,IACjB7lB,MAAO+iB,UAWb,SAASwM,GAAiB1H,GAEnBA,EAAYvB,eAIbuB,EAAYC,UAAU1d,IAAI6b,MAAM,eAAkD,SAAjC4B,EAAYC,UAAUtS,SAKvEqS,EAAY7d,MACdtB,KAAgBmL,cAAc,CAC5ByN,SAAU,QACVtZ,KAAM6f,EAAYC,UAClBhiB,MAAO,QACP9C,KAAM,QACL,CACDgF,KAAM6f,EAAY7d,MAClBhK,MAAO6nB,EAAYziB,OAGrBsD,KAAgBmL,cAAc,CAC5ByN,SAAU,QACVtZ,KAAM,GAAc,GAAc,GAAI6f,EAAYC,WAAY,GAAI,CAChEzB,YAAawB,EAAY7E,SAASlV,SAEpC9K,KAAM,QACL,CACDhD,MAAO6nB,EAAYziB,KACnB4d,SAAU6E,EAAY7E,aAU5B,SAASwM,GAAmB3H,GAC1B,IAAIlO,EAAOkO,EAAYlO,KACnBsP,EAAKpB,EAAYoB,GACjBwG,EAAYjB,GAAS,kBACrBkB,EAAalB,GAAS7U,GACtBgW,EAAWnB,GAASvF,GAEnByG,EAAWd,OACdc,EAAaD,GAKXA,EAAUZ,WAAac,EAASd,UAAYY,EAAUd,OAASgB,EAAShB,OAC1E1F,EAAK0G,EAASb,UAGZW,EAAUZ,WAAaa,EAAWb,UAAYY,EAAUd,OAASe,EAAWf,OAC9EhV,EAAO+V,EAAWZ,UAGpBpmB,KAAgBmL,cAAc,CAC5ByN,SAAU,aACVtZ,KAAM,CACJ2R,KAAMA,EACNsP,GAAIA,KA/LV+F,GAAY1pB,eChGZ,IAAIsqB,GAAc,QAIdC,GAA4B,WAY9B,SAASA,IACP,IAAI1mB,EAAUvJ,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,IAElF,OAAgBmF,KAAM8qB,GAItBA,EAAa5zB,UAAU+I,OAAO3I,KAAK0I,MAEnCA,KAAKM,KAAO8D,EAAQzK,KAAOkxB,GAC3B7qB,KAAK+qB,OAAS3mB,EAAQ2O,OAzBN,EAkElB,OAlCA,OAAa+X,EAAc,CAAC,CAC1BnxB,IAAK,SACL2B,MAIA,WACE0E,KAAKlD,KAAOguB,EAAavwB,KAE1B,CACDZ,IAAK,YACL2B,MAAO,WACL,IAAI0I,EAASL,KAAgBM,YAExBD,GAILN,IAAwB,SAAUtB,EAAOgK,GACvC,IAAItI,EAAOH,KAAgBI,eAAe+mB,GAC1C,OAAOhnB,EAuBf,SAAkB0S,EAAQ7c,EAAKoZ,EAAO3Q,EAAOgK,GAC3C,KAAKhK,EAAMzD,WAAcyD,EAAMzD,UAAU0D,QAAW+J,GAAS7U,EAAa6U,EAAKkC,kBAAmB9W,QAChG,OAAO4K,EAGT,IAAI4oB,EAAeC,GAAezU,EAAQzD,EAAO3G,EAAKkC,kBAAmB3U,GAGzE,OADAyI,EAAMzD,UAAU0D,OAAS,GAAG1K,QAAO,OAAmBqzB,IAAe,OAAmB5oB,EAAMzD,UAAU0D,SACjGD,EA/Ba8oB,CAASlnB,EAAOG,aAAawS,YAAa7S,EAAKxD,KAAMwD,EAAKinB,OAAQ3oB,EAAOgK,GAAQhK,QAGjG,CAAC,CACHzI,IAAK,eACL2B,MAIA,WACE0E,KAAKzF,GAAK,mBAIPuwB,EA/DuB,GAuFhC,SAASG,GAAezU,EAAQzD,EAAO9N,EAAOtL,GAC5C,IAAImE,EAAQjD,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAEhF,IAAKtD,EAAa0N,EAAMtL,GAAMnC,QAAUsG,EAAM5E,OAAS,GAAK6Z,EAC1D,OAAOjV,EAGT,IAAIa,EAAY8mB,GAAmBjP,EAAQvR,EAAMtL,IACjD,OAAOsxB,GAAezU,EAAQzD,EAAO9N,EAAMtL,GAAMA,EAAK,CAACgF,GAAWhH,QAAO,OAAmBmG,KCrG9F,SAAS,GAAQhC,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,GAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EDsE7gBsuB,GAAavqB,eChEb,IAAI4qB,GAA2B,WAC7B,SAASA,KACP,OAAgBnrB,KAAMmrB,GAEtBA,EAAYj0B,UAAU+I,OAAO3I,KAAK0I,MAkEpC,OA3DA,OAAamrB,EAAa,CAAC,CACzBxxB,IAAK,SACL2B,MAIA,WACE0E,KAAKlD,KAAOquB,EAAY5wB,KAMzB,CACDZ,IAAK,YACL2B,MAAO,WACLoI,IAAwB,SAAUtB,GAChC,GAAIuB,KAAgBI,eAAeonB,GAAc,CAE/C,IAAK,eAAqB,cAAoB,YAC5C,OAAO/oB,EAIT,IAAIiD,EAAMjD,EAAMgpB,SAAWhpB,EAAMgpB,QAAQ/lB,KAAO,aAAmB,iBAG/DgmB,GADO,aAAmB,IACVA,SAGhBzhB,GADQ,cAAoB,IACVA,UAElByP,EAAU,GAAc,GAAc,GAAc,GAAIjX,EAAMgpB,SAAWhpB,EAAMgpB,QAAQ/R,SAAUgS,GAAY,CAC/GC,QAASD,IACPzhB,GAAa,CACf,aAAcA,IAGZwhB,EAAU,GAAc,GAAc,GAAI/lB,GAAO,CACnDA,IAAKA,IACH,GAAI,CACNgU,QAASA,IAGX,OAAO,GAAc,GAAc,GAAIjX,GAAQ,GAAI,CACjDgpB,QAASA,IAIb,OAAOhpB,QAGT,CAAC,CACHzI,IAAK,eACL2B,MAAO,WACL0E,KAAKzF,GAAK,kBAIP4wB,EAtEsB,GAyE/BA,GAAY5qB,eChFZ,IAAIgrB,GAAsB,WACxB,SAASA,KACP,OAAgBvrB,KAAMurB,GAEtBA,EAAOr0B,UAAU+I,OAAO3I,KAAK0I,MAyD/B,OAlDA,OAAaurB,EAAQ,CAAC,CACpB5xB,IAAK,SACL2B,MAIA,WACE0E,KAAKlD,KAAOyuB,EAAOhxB,KAUpB,CACDZ,IAAK,YACL2B,MAAO,SAAmBoI,EAAyBC,GACjD,IAAI6nB,EAAiB,SAAwBC,GAC3C,IAAI3nB,EAAOH,IAAgBI,eAAewnB,GAE1C,GAAIznB,EAAM,CAER,IACE,GA+BZ,SAA0B2nB,EAAcC,GACtC,IAAKA,EACH,OAAO,EAGT,GAaF,SAA6BD,EAAcC,GACzC,IAAIC,EAAiBF,EAAa5tB,QAC9B+tB,EAAkBF,EAAc7tB,QAEpC,IAAK8tB,IAAmBC,EACtB,OAAO,EAIT,GAAID,IAAmBC,IAAoBD,GAAkBC,EAC3D,OAAO,EAGT,GAAID,IAAmBC,EACrB,OAAO,EAGT,IAAKC,GAAmBJ,EAAcC,GACpC,OAAO,EAGT,IAAKI,GAAkBL,EAAcC,GACnC,OAAO,EAGT,OAAO,EAtCHK,CAAoBN,EAAcC,GACpC,OAAO,EAGT,GAuCF,SAA+BD,EAAcC,GAC3C,IAAIM,EAAoBC,GAAuBP,GAE3CQ,EAAmBD,GAAuBR,GAE9C,IAAKO,IAAsBE,EACzB,OAAO,EAGT,GAAIF,EAAkB/tB,OAASiuB,EAAiBjuB,MAAQ+tB,EAAkB1wB,QAAU4wB,EAAiB5wB,MACnG,OAAO,EAGT,IAAKuwB,GAAmBJ,EAAcC,GACpC,OAAO,EAGT,IAAKI,GAAkBL,EAAcC,GACnC,OAAO,EAGT,OAAO,EA5DHS,CAAsBV,EAAcC,GACtC,OAAO,EAGT,OAAO,EA5CO,CAAiBD,EAAc3nB,EAAKsoB,gBAEtC,OAD6B,oBAArB/qB,kBAAoCA,mBAAqBb,EAAOoE,KAAK,wEACtE,KAET,MAAOpL,GACP,OAAOsK,EAAKsoB,eAAiBX,EAG/B,OAAO3nB,EAAKsoB,eAAiBX,EAG/B,OAAOA,GAGTD,EAAejxB,GAAKyF,KAAKlD,KACzB4G,EAAwB8nB,MAExB,CAAC,CACH7xB,IAAK,eACL2B,MAAO,WACL0E,KAAKzF,GAAK,aAIPgxB,EA7DiB,GA8I1B,SAASO,GAAkBL,EAAcC,GACvC,IAAIW,EAAgBC,GAAoBb,GAEpCc,EAAiBD,GAAoBZ,GAGzC,IAAKW,IAAkBE,EACrB,OAAO,EAIT,GAAIF,IAAkBE,IAAmBF,GAAiBE,EACxD,OAAO,EAMT,GAHAF,EAAgBA,GAChBE,EAAiBA,GAEErzB,SAAWmzB,EAAcnzB,OAC1C,OAAO,EAIT,IAAK,IAAIW,EAAI,EAAGA,EAAI0yB,EAAerzB,OAAQW,IAAK,CAC9C,IAAI2yB,EAASD,EAAe1yB,GACxB4yB,EAASJ,EAAcxyB,GAE3B,GAAI2yB,EAAO3mB,WAAa4mB,EAAO5mB,UAAY2mB,EAAOxE,SAAWyE,EAAOzE,QAAUwE,EAAOzE,QAAU0E,EAAO1E,OAASyE,EAAO1V,WAAa2V,EAAO3V,SACxI,OAAO,EAIX,OAAO,EAKT,SAAS+U,GAAmBJ,EAAcC,GACxC,IAAIgB,EAAqBjB,EAAargB,YAClCuhB,EAAsBjB,EAActgB,YAExC,IAAKshB,IAAuBC,EAC1B,OAAO,EAIT,GAAID,IAAuBC,IAAwBD,GAAsBC,EACvE,OAAO,EAGTD,EAAqBA,EACrBC,EAAsBA,EAEtB,IACE,QAAUD,EAAmBnzB,KAAK,MAAQozB,EAAoBpzB,KAAK,KACnE,MAAOC,GACP,OAAO,GAMX,SAASyyB,GAAuB7pB,GAC9B,OAAOA,EAAMzD,WAAayD,EAAMzD,UAAU0D,QAAUD,EAAMzD,UAAU0D,OAAO,GAK7E,SAASiqB,GAAoBlqB,GAC3B,IAAIzD,EAAYyD,EAAMzD,UAEtB,GAAIA,EACF,IAEE,OAAOA,EAAU0D,OAAO,GAAGsD,WAAWD,OACtC,MAAOlM,GACP,QA1JN+xB,GAAOhrB,e,eCjEHqsB,GAAY,kEAgBhB,SAASC,GAAYC,GACnB,IAAIC,EAAelyB,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,IAAmBA,UAAU,GAC9E+uB,EAAOkD,EAAIlD,KACXC,EAAOiD,EAAIjD,KACXmD,EAAOF,EAAIE,KACXC,EAAOH,EAAIG,KACXC,EAAYJ,EAAII,UAChBpD,EAAWgD,EAAIhD,SACfqD,EAAYL,EAAIK,UACpB,MAAO,GAAGx1B,OAAOmyB,EAAU,OAAOnyB,OAAOw1B,GAAWx1B,OAAOo1B,GAAgBC,EAAO,IAAIr1B,OAAOq1B,GAAQ,IAAM,IAAIr1B,OAAOiyB,GAAMjyB,OAAOs1B,EAAO,IAAIt1B,OAAOs1B,GAAQ,GAAI,KAAKt1B,OAAOkyB,EAAO,GAAGlyB,OAAOkyB,EAAM,KAAOA,GAAMlyB,OAAOu1B,GAwD1N,SAASE,GAAkBC,GACzB,MAAO,CACLvD,SAAUuD,EAAWvD,SACrBqD,UAAWE,EAAWF,WAAa,GACnCH,KAAMK,EAAWL,MAAQ,GACzBpD,KAAMyD,EAAWzD,KACjBqD,KAAMI,EAAWJ,MAAQ,GACzBpD,KAAMwD,EAAWxD,MAAQ,GACzBqD,UAAWG,EAAWH,WAoC1B,SAASI,GAAQ1Y,GACf,IAAIyY,EAA6B,iBAATzY,EA3F1B,SAAuBja,GACrB,IAAIumB,EAAQ0L,GAAUW,KAAK5yB,GAE3B,IAAKumB,EACH,MAAM,IAAIzO,GAAY,uBAAuB9a,OAAOgD,IAGtD,IAAI6yB,EAAetM,EAAMliB,MAAM,GAC3ByuB,GAAgB,QAAeD,EAAc,GAC7C1D,EAAW2D,EAAc,GACzBN,EAAYM,EAAc,GAC1BC,EAAiBD,EAAc,GAC/BT,OAA0B,IAAnBU,EAA4B,GAAKA,EACxC9D,EAAO6D,EAAc,GACrBE,EAAkBF,EAAc,GAChCR,OAA2B,IAApBU,EAA6B,GAAKA,EAGzC9D,EAAO,GACPqD,EAHWO,EAAc,GAIzBjzB,EAAQ0yB,EAAU1yB,MAAM,KAO5B,GALIA,EAAMtB,OAAS,IACjB2wB,EAAOrvB,EAAMwE,MAAM,GAAI,GAAGzF,KAAK,KAC/B2zB,EAAY1yB,EAAMuT,OAGhBmf,EAAW,CACb,IAAIU,EAAeV,EAAUhM,MAAM,QAE/B0M,IACFV,EAAYU,EAAa,IAI7B,OAAOR,GAAkB,CACvBxD,KAAMA,EACNoD,KAAMA,EACNnD,KAAMA,EACNqD,UAAWA,EACXD,KAAMA,EACNnD,SAAUA,EACVqD,UAAWA,IAiD+BU,CAAcjZ,GAAQwY,GAAkBxY,GAEpF,OAnCF,SAAqBkY,GACnB,GAAkC,oBAArBzrB,kBAAoCA,iBAAjD,CAIA,IAAI4rB,EAAOH,EAAIG,KACXC,EAAYJ,EAAII,UAChBpD,EAAWgD,EAAIhD,SAQnB,GAPyB,CAAC,WAAY,YAAa,OAAQ,aACxCzvB,SAAQ,SAAUyzB,GACnC,IAAKhB,EAAIgB,GACP,MAAM,IAAIrb,GAAY,uBAAuB9a,OAAOm2B,EAAW,iBAI9DZ,EAAUhM,MAAM,SACnB,MAAM,IAAIzO,GAAY,yCAAyC9a,OAAOu1B,IAGxE,IA9GF,SAAyBpD,GACvB,MAAoB,SAAbA,GAAoC,UAAbA,EA6GzBiE,CAAgBjE,GACnB,MAAM,IAAIrX,GAAY,wCAAwC9a,OAAOmyB,IAGvE,GAAImD,GAAQ/Q,MAAMD,SAASgR,EAAM,KAC/B,MAAM,IAAIxa,GAAY,oCAAoC9a,OAAOs1B,KAUnEe,CAAYX,GACLA,EClIT,SAAS,GAAQvxB,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAQlV,SAASiyB,GAAmBnB,GAC1B,IAAIhD,EAAWgD,EAAIhD,SAAW,GAAGnyB,OAAOm1B,EAAIhD,SAAU,KAAO,GACzDmD,EAAOH,EAAIG,KAAO,IAAIt1B,OAAOm1B,EAAIG,MAAQ,GAC7C,MAAO,GAAGt1B,OAAOmyB,EAAU,MAAMnyB,OAAOm1B,EAAIlD,MAAMjyB,OAAOs1B,GAAMt1B,OAAOm1B,EAAIjD,KAAO,IAAIlyB,OAAOm1B,EAAIjD,MAAQ,GAAI,SAK9G,SAASqE,GAAmBpB,GAC1B,MAAO,GAAGn1B,OAAOs2B,GAAmBnB,IAAMn1B,OAAOm1B,EAAII,UAAW,cAKlE,SAASiB,GAAarB,EAAKsB,GACzB,O/BkEiBtyB,E+BvFnB,SAAuBU,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAqB1f,CAAc,CAG7B6xB,WAAYvB,EAAIK,UAChBmB,eAtBqB,KAuBpBF,GAAW,CACZG,cAAe,GAAG52B,OAAOy2B,EAAQtxB,KAAM,KAAKnF,OAAOy2B,EAAQ1gB,W/B6DtDzW,OAAO+E,KAAKF,GAAQ1B,KAAI,SAAUT,GACvC,MAAO,GAAGhC,OAAO62B,mBAAmB70B,GAAM,KAAKhC,OAAO62B,mBAAmB1yB,EAAOnC,QAC/EJ,KAAK,KAHV,IAAmBuC,E+BlDnB,SAAS2yB,GAAsC3B,GAC7C,IAAI4B,EAAkB7zB,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAItF8zB,EAAoC,iBAApBD,EAA+BA,EAAkBA,EAAgBC,OACjFP,EAAqC,iBAApBM,GAAiCA,EAAgBE,UAAwBF,EAAgBE,UAAUC,SAAtC/zB,EAClF,OAAO6zB,GAAkB,GAAGh3B,OAAOu2B,GAAmBpB,GAAM,KAAKn1B,OAAOw2B,GAAarB,EAAKsB,IAK5F,SAASU,GAAwBC,EAASC,GACxC,IAAIlC,EAAMQ,GAAQyB,GACdE,EAAW,GAAGt3B,OAAOs2B,GAAmBnB,GAAM,qBAC9CoC,EAAiB,OAAOv3B,OAAOk1B,GAAYC,IAE/C,IAAK,IAAInzB,KAAOq1B,EACd,GAAY,QAARr1B,EAIJ,GAAY,SAARA,EAAgB,CAClB,IAAIoQ,EAAOilB,EAAcjlB,KAEzB,IAAKA,EACH,SAGEA,EAAKjN,OACPoyB,GAAkB,SAASv3B,OAAO62B,mBAAmBzkB,EAAKjN,QAGxDiN,EAAKC,QACPklB,GAAkB,UAAUv3B,OAAO62B,mBAAmBzkB,EAAKC,cAG7DklB,GAAkB,IAAIv3B,OAAO62B,mBAAmB70B,GAAM,KAAKhC,OAAO62B,mBAAmBQ,EAAcr1B,KAIvG,MAAO,GAAGhC,OAAOs3B,EAAU,KAAKt3B,OAAOu3B,GC/EzC,SAAS,GAAQpzB,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,GAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAK7gB,SAAS2yB,GAAgCC,GACvC,GAAKA,GAAaA,EAASP,IAA3B,CAIA,IAAIQ,EAAgBD,EAASP,IAG7B,MAAO,CACL/xB,KAHSuyB,EAAcvyB,KAIvB4Q,QAHY2hB,EAAc3hB,UAkD9B,SAAS4hB,GAAoBltB,EAAO0qB,EAAKsC,EAAUT,GACjD,IAAIP,EAAUe,GAAgCC,GAC1CG,EAAYntB,EAAMnE,MAAQ,SAxChC,SAAiCmE,EAAOgsB,GACjCA,IAILhsB,EAAMysB,IAAMzsB,EAAMysB,KAAO,GACzBzsB,EAAMysB,IAAI/xB,KAAOsF,EAAMysB,IAAI/xB,MAAQsxB,EAAQtxB,KAC3CsF,EAAMysB,IAAInhB,QAAUtL,EAAMysB,IAAInhB,SAAW0gB,EAAQ1gB,QACjDtL,EAAMysB,IAAIW,aAAe,GAAG73B,QAAO,OAAmByK,EAAMysB,IAAIW,cAAgB,KAAK,OAAmBpB,EAAQoB,cAAgB,KAChIptB,EAAMysB,IAAIY,SAAW,GAAG93B,QAAO,OAAmByK,EAAMysB,IAAIY,UAAY,KAAK,OAAmBrB,EAAQqB,UAAY,MAgCpHC,CAAwBttB,EAAOgtB,GAAYA,EAASP,KACpD,IAAIc,EAYN,SAAoCvtB,EAAOgsB,EAASO,EAAQ7B,GAC1D,IAAI8C,EAAyBxtB,EAAMsK,uBAAyBtK,EAAMsK,sBAAsBkjB,uBACxF,OAAO,GAAc,GAAc,GAAc,CAC/CptB,SAAUJ,EAAMI,SAChBqtB,SAAS,IAAI1mB,MAAOC,eACnBglB,GAAW,CACZS,IAAKT,MACDO,GAAU,CACd7B,IAAKD,GAAYC,KACA,gBAAf1qB,EAAMnE,MAA0B2xB,GAA0B,CAC5DvjB,MAAOpN,EAAkB,GAAc,GAAI2wB,MAtBvBE,CAA2B1tB,EAAOgsB,EAASO,EAAQ7B,GASzE,cAJO1qB,EAAMsK,sBAIN0M,GAAeuW,EAAiB,CAHvB,CAAC,CACf1xB,KAAMsxB,GACLntB,KC1EL,IAAI2tB,GAAwB,GA4B5B,SAASC,GAAuB5rB,GAC9B,IAAI6rB,EAAsB7rB,EAAQ6rB,qBAAuB,GACrDC,EAAmB9rB,EAAQorB,aAE/BS,EAAoB51B,SAAQ,SAAUmV,GACpCA,EAAY2gB,mBAAoB,KAYlC,IAAIC,EAnCN,SAA0BZ,GACxB,IAAIa,EAAqB,GAYzB,OAXAb,EAAan1B,SAAQ,SAAUi2B,GAC7B,IAAIxzB,EAAOwzB,EAAgBxzB,KACvByzB,EAAmBF,EAAmBvzB,GAGtCyzB,IAAqBA,EAAiBJ,mBAAqBG,EAAgBH,oBAI/EE,EAAmBvzB,GAAQwzB,MAEtBr5B,OAAOoL,OAAOguB,GAsBGG,CARpBr1B,MAAMC,QAAQ80B,GACD,GAAGv4B,QAAO,OAAmBs4B,IAAsB,OAAmBC,IAChD,mBAArBA,EACD7sB,GAAS6sB,EAAiBD,IAE1BA,GAQbQ,EAAaL,EAAkBM,WAAU,SAAUlhB,GACrD,MAA4B,UAArBA,EAAY1S,QAGrB,IAAoB,IAAhB2zB,EAAmB,CACrB,IAAIE,EAAwBP,EAAkBjd,OAAOsd,EAAY,GAE7DG,GADyB,QAAeD,EAAuB,GACxB,GAE3CP,EAAkBh3B,KAAKw3B,GAGzB,OAAOR,EC7DT,SAAS,GAA2Bhc,EAAGC,GAAkB,IAAIC,EAAuB,oBAAXC,QAA0BH,EAAEG,OAAOC,WAAaJ,EAAE,cAAe,IAAKE,EAAI,CAAE,GAAInZ,MAAMC,QAAQgZ,KAAOE,EAE9K,SAAqCF,EAAGK,GAAU,IAAKL,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGK,GAAS,IAAIE,EAAI1d,OAAOC,UAAUC,SAASG,KAAK8c,GAAGpV,MAAM,GAAI,GAAc,WAAN2V,GAAkBP,EAAE5B,cAAamC,EAAIP,EAAE5B,YAAY1V,MAAM,GAAU,QAAN6X,GAAqB,QAANA,EAAa,OAAOxZ,MAAMyZ,KAAKR,GAAI,GAAU,cAANO,GAAqB,2CAA2ChZ,KAAKgZ,GAAI,OAAO,GAAkBP,EAAGK,GAFnO,CAA4BL,KAAOC,GAAkBD,GAAyB,iBAAbA,EAAElb,OAAqB,CAAMob,IAAIF,EAAIE,GAAI,IAAIza,EAAI,EAAOib,EAAI,aAAiB,MAAO,CAAEC,EAAGD,EAAGH,EAAG,WAAe,OAAI9a,GAAKua,EAAElb,OAAe,CAAE8b,MAAM,GAAe,CAAEA,MAAM,EAAO1Z,MAAO8Y,EAAEva,OAAW2B,EAAG,SAAWlD,GAAM,MAAMA,GAAO2c,EAAGH,GAAO,MAAM,IAAII,UAAU,yIAA4I,IAA6C9R,EAAzC+R,GAAmB,EAAMC,GAAS,EAAY,MAAO,CAAEL,EAAG,WAAeT,EAAKA,EAAGhd,KAAK8c,IAAOO,EAAG,WAAe,IAAIU,EAAOf,EAAGgB,OAAsC,OAA9BH,EAAmBE,EAAKL,KAAaK,GAAS7Z,EAAG,SAAW+Z,GAAOH,GAAS,EAAMhS,EAAMmS,GAAQN,EAAG,WAAe,IAAWE,GAAiC,MAAbb,EAAGkB,QAAgBlB,EAAGkB,SAAY,QAAU,GAAIJ,EAAQ,MAAMhS,KAIz9B,SAAS,GAAkBqS,EAAKzc,IAAkB,MAAPA,GAAeA,EAAMyc,EAAIvc,UAAQF,EAAMyc,EAAIvc,QAAQ,IAAK,IAAIW,EAAI,EAAG6b,EAAO,IAAIva,MAAMnC,GAAMa,EAAIb,EAAKa,IAAO6b,EAAK7b,GAAK4b,EAAI5b,GAAM,OAAO6b,EAEhL,SAAS,GAAQ5Z,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,GAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAQ7gB,IAAIq0B,GAAqB,8DAiCrBC,GAA0B,WAM5B,SAASA,EAAW1sB,GAelB,IAdA,OAAgBpE,KAAM8wB,GAItBA,EAAW55B,UAAU+I,OAAO3I,KAAK0I,MAEjC8wB,EAAW55B,UAAUsP,QAAQlP,KAAK0I,MAElC8wB,EAAW55B,UAAUuP,QAAQnP,KAAK0I,MAElC8wB,EAAW55B,UAAUwP,QAAQpP,KAAK0I,MAElCA,KAAKyD,SAAWW,EAEZA,EAAQ0oB,IAAK,CACf9sB,KAAK+wB,KAAOzD,GAAQlpB,EAAQ0oB,KAC5B,IAAIznB,EAAMopB,GAAsCzuB,KAAK+wB,KAAM3sB,GAC3DpE,KAAKgxB,WAAa5sB,EAAQ6sB,UAAU,GAAc,GAAc,CAC9DpT,mBAAoB7d,KAAK6d,mBAAmBgC,KAAK7f,OAChDoE,EAAQ8sB,kBAAmB,GAAI,CAChC7rB,IAAKA,UAGsB,oBAArBhE,kBAAoCA,mBAAqBb,EAAOoE,KAAK,iDAkvBjF,OAzuBA,OAAaksB,EAAY,CAAC,CACxBn3B,IAAK,SACL2B,MAMA,WACE0E,KAAKmxB,cAAgB,KAItB,CACDx3B,IAAK,UACL2B,MAAO,WACL0E,KAAKoxB,0BAA2B,IAIjC,CACDz3B,IAAK,UACL2B,MAAO,WACL0E,KAAKqxB,eAAiB,IAIvB,CACD13B,IAAK,UACL2B,MAAO,WACL0E,KAAKsxB,UAAY,KAElB,CACD33B,IAAK,mBACL2B,MAAO,SAA0BqD,EAAWyN,EAAMe,GAChD,IAAI/F,EAAQpH,KAGZ,IAAIkD,GAAwBvE,GAA5B,CAKA,IAAI4D,EAAU6J,GAAQA,EAAK5J,SAQ3B,OANAxC,KAAKuxB,SAASvxB,KAAKwxB,mBAAmB7yB,EAAWyN,GAAMhU,MAAK,SAAUgK,GACpE,OAAOgF,EAAMqqB,cAAcrvB,EAAOgK,EAAMe,MACvC/U,MAAK,SAAUiP,GAChB9E,EAAU8E,MAGL9E,GAZwB,oBAArBlB,kBAAoCA,mBAAqBb,EAAOyM,IAAI4jB,MAkB/E,CACDl3B,IAAK,iBACL2B,MAAO,SAAwBuC,EAC/BkD,EAAOqL,EAAMe,GACX,IAAI1F,EAASzH,KAETuC,EAAU6J,GAAQA,EAAK5J,SACvBkvB,EAAgB,EAAY7zB,GAAWmC,KAAK2xB,iBAAiBp2B,OAAOsC,GAAUkD,EAAOqL,GAAQpM,KAAKwxB,mBAAmB3zB,EAASuO,GAQlI,OANApM,KAAKuxB,SAASG,EAAct5B,MAAK,SAAUgK,GACzC,OAAOqF,EAAOgqB,cAAcrvB,EAAOgK,EAAMe,MACxC/U,MAAK,SAAUiP,GAChB9E,EAAU8E,MAGL9E,IAMR,CACD5I,IAAK,eACL2B,MAAO,SAAsB8G,EAAOgK,EAAMe,GAExC,KAAIf,GAAQA,EAAKkC,mBAAqBpL,GAAwBkJ,EAAKkC,oBAAnE,CAKA,IAAI/L,EAAU6J,GAAQA,EAAK5J,SAM3B,OAJAxC,KAAKuxB,SAASvxB,KAAKyxB,cAAcrvB,EAAOgK,EAAMe,GAAO/U,MAAK,SAAUiP,GAClE9E,EAAU8E,MAGL9E,GAVwB,oBAArBlB,kBAAoCA,mBAAqBb,EAAOyM,IAAI4jB,MAgB/E,CACDl3B,IAAK,iBACL2B,MAAO,SAAwBmN,GACxBzI,KAAK4xB,aAKuB,iBAApBnpB,EAAQc,SACU,oBAArBlI,kBAAoCA,mBAAqBb,EAAOoE,KAAK,+DAE7E5E,KAAK6xB,YAAYppB,GAEjBqB,GAAcrB,EAAS,CACrBE,MAAM,MAVqB,oBAArBtH,kBAAoCA,mBAAqBb,EAAOoE,KAAK,gDAkBhF,CACDjL,IAAK,SACL2B,MAAO,WACL,OAAO0E,KAAK+wB,OAMb,CACDp3B,IAAK,aACL2B,MAAO,WACL,OAAO0E,KAAKyD,WAMb,CACD9J,IAAK,eACL2B,MAAO,WACL,OAAO0E,KAAKgxB,aAMb,CACDr3B,IAAK,QACL2B,MAAO,SAAekY,GACpB,IAAIyd,EAAYjxB,KAAKgxB,WAErB,OAAIC,EACKjxB,KAAK8xB,wBAAwBte,GAASpb,MAAK,SAAU25B,GAC1D,OAAOd,EAAUxT,MAAMjK,GAASpb,MAAK,SAAU45B,GAC7C,OAAOD,GAAkBC,QAItBhsB,IAAoB,KAO9B,CACDrM,IAAK,QACL2B,MAAO,SAAekY,GACpB,IAAI7L,EAAS3H,KAEb,OAAOA,KAAKyd,MAAMjK,GAASpb,MAAK,SAAUiP,GAExC,OADAM,EAAOxD,aAAajD,SAAU,EACvBmG,OAOV,CACD1N,IAAK,oBACL2B,MAAO,WDxMX,IAA2Bk0B,EACrByC,ECwMIjyB,KAAK4xB,eAAiB5xB,KAAKoxB,2BAC7BpxB,KAAKmxB,eD1Mc3B,EC0MqBxvB,KAAKyD,SAAS+rB,aDzMxDyC,EAAmB,GACvBzC,EAAan1B,SAAQ,SAAUmV,GAC7ByiB,EAAiBziB,EAAY1S,MAAQ0S,GAEoB,IAArDugB,GAAsBn0B,QAAQ4T,EAAY1S,QAC5C0S,EAAY0iB,UAAUxuB,GAAyBC,IAC/CosB,GAAsB32B,KAAKoW,EAAY1S,OACV,oBAArBuE,kBAAoCA,mBAAqBb,EAAOyM,IAAI,0BAA0BtV,OAAO6X,EAAY1S,WAGtHm1B,GCgMDjyB,KAAKoxB,0BAA2B,KASnC,CACDz3B,IAAK,qBACL2B,MAAO,SAA4B62B,GACjC,OAAOnyB,KAAKmxB,cAAcgB,KAM3B,CACDx4B,IAAK,iBACL2B,MAAO,SAAwBkU,GAC7B,IACE,OAAOxP,KAAKmxB,cAAc3hB,EAAYjV,KAAO,KAC7C,MAAOf,GAEP,OAD6B,oBAArB6H,kBAAoCA,mBAAqBb,EAAOoE,KAAK,+BAA+BjN,OAAO6X,EAAYjV,GAAI,6BAC5H,QAOV,CACDZ,IAAK,YACL2B,MAAO,SAAmB8G,GACxB,IAAIgK,EAAOvR,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAE/E,GAAImF,KAAK+wB,KAAM,CACb,IAGI9a,EAHAmc,EAAM9C,GAAoBltB,EAAOpC,KAAK+wB,KAAM/wB,KAAKyD,SAASmrB,UAAW5uB,KAAKyD,SAASkrB,QAEnFxY,EAAY,GAA2B/J,EAAKimB,aAAe,IAG/D,IACE,IAAKlc,EAAUpB,MAAOkB,EAAQE,EAAUxB,KAAKK,MAAO,CAClD,IAAI7I,EAAa8J,EAAM3a,MACvB82B,EAAM7Y,GAAkB6Y,EAAKjX,GAA6BhP,EAAYnM,KAAKyD,SAASytB,kBAAoBlxB,KAAKyD,SAASytB,iBAAiBnX,eAEzI,MAAO3W,GACP+S,EAAU3a,EAAE4H,GACZ,QACA+S,EAAUlB,IAGZjV,KAAKsyB,cAAcF,MAOtB,CACDz4B,IAAK,cACL2B,MAAO,SAAqBmN,GAC1B,GAAIzI,KAAK+wB,KAAM,CACb,IAAIqB,EF7SZ,SAA+B3pB,EAASqkB,EAAKsC,EAAUT,GACrD,IAAIP,EAAUe,GAAgCC,GAe9C,OAAOhW,GAbe,GAAc,GAAc,CAChDyW,SAAS,IAAI1mB,MAAOC,eACnBglB,GAAW,CACZS,IAAKT,MACDO,GAAU,CACd7B,IAAKD,GAAYC,KAQoB,CALpB,eAAgBrkB,EAAU,CAAC,CAC5CxK,KAAM,YACLwK,GAAW,CAAC,CACbxK,KAAM,WACLwK,KE8Ra8pB,CAAsB9pB,EAASzI,KAAK+wB,KAAM/wB,KAAKyD,SAASmrB,UAAW5uB,KAAKyD,SAASkrB,QAE3F3uB,KAAKsyB,cAAcF,MAOtB,CACDz4B,IAAK,qBACL2B,MAAO,SAA4B8K,EAAQmW,GACzC,GAAIvc,KAAKyD,SAAS+uB,kBAAmB,CAOnC,IAAI74B,EAAM,GAAGhC,OAAOyO,EAAQ,KAAKzO,OAAO4kB,IACX,oBAArBlb,kBAAoCA,mBAAqBb,EAAOyM,IAAI,oBAAqBtV,OAAOgC,EAAK,MAE7GqG,KAAKsxB,UAAU33B,GAAOqG,KAAKsxB,UAAU33B,GAAO,GAAK,KAKpD,CACDA,IAAK,0BACL2B,MAAO,SAAiCmN,EAASrG,GAC/C,IAAIqwB,GAAU,EACVC,GAAU,EACVC,EAAavwB,EAAMzD,WAAayD,EAAMzD,UAAU0D,OAEpD,GAAIswB,EAAY,CACdD,GAAU,EAEV,IACItc,EADAG,EAAa,GAA2Boc,GAG5C,IACE,IAAKpc,EAAWxB,MAAOqB,EAASG,EAAW5B,KAAKK,MAAO,CACrD,IACIlS,EADKsT,EAAO9a,MACGwH,UAEnB,GAAIA,IAAmC,IAAtBA,EAAUC,QAAmB,CAC5C0vB,GAAU,EACV,QAGJ,MAAOrvB,GACPmT,EAAW/a,EAAE4H,GACb,QACAmT,EAAWtB,KAOf,IAAI2d,EAAwC,OAAnBnqB,EAAQM,QACP6pB,GAAyC,IAAnBnqB,EAAQO,QAAgB4pB,GAAsBH,KAG5F3oB,GAAcrB,EAAS,GAAc,GAAc,GAAIgqB,GAAW,CAChE1pB,OAAQ,YACN,GAAI,CACNC,OAAQP,EAAQO,QAAU6pB,OAAOH,GAAWD,MAE9CzyB,KAAKuQ,eAAe9H,MAcvB,CACD9O,IAAK,0BACL2B,MAAO,SAAiCkY,GACtC,IAAI1L,EAAS9H,KAEb,OAAO,IAAIiG,IAAY,SAAUC,GAC/B,IAAI4sB,EAAS,EAETC,EAAWxK,aAAY,WACI,GAAzBzgB,EAAOupB,gBACT2B,cAAcD,GACd7sB,GAAQ,KAER4sB,GANO,EAQHtf,GAAWsf,GAAUtf,IACvBwf,cAAcD,GACd7sB,GAAQ,OAVH,QAkBd,CACDvM,IAAK,aACL2B,MAAO,WACL,OAAqC,IAA9B0E,KAAKmE,aAAajD,cAAmCpG,IAAdkF,KAAK+wB,OAiBpD,CACDp3B,IAAK,gBACL2B,MAAO,SAAuB8G,EAAOgK,EAAMe,GACzC,IAAInF,EAAShI,KAETizB,EAAmBjzB,KAAKmE,aACxB+uB,EAAwBD,EAAiB1M,eACzCA,OAA2C,IAA1B2M,EAAmC,EAAIA,EACxDC,EAAyBF,EAAiBG,oBAC1CA,OAAiD,IAA3BD,EAAoC,IAAOA,EAEjEE,EAAW,GAAc,GAAc,GAAIjxB,GAAQ,GAAI,CACzDI,SAAUJ,EAAMI,UAAY4J,EAAK5J,UAAYjB,IAC7CqH,UAAWxG,EAAMwG,YAAa,aAGhC5I,KAAKszB,oBAAoBD,GAEzBrzB,KAAKuzB,2BAA2BF,GAIhC,IAAIG,EAAarmB,EAEbf,EAAKR,iBACP4nB,EAAatpB,GAAM0D,MAAM4lB,GAAYC,OAAOrnB,EAAKR,iBAInD,IAAIvE,EAASrB,GAAoBqtB,GAGjC,GAAIG,EAAY,CAEd,IAAInB,EAAc,GAAG16B,QAAO,OAAmByU,EAAKimB,aAAe,KAAK,OAAmBmB,EAAWE,mBAElGrB,EAAYn5B,SACdkT,EAAKimB,YAAcA,GAIrBhrB,EAASmsB,EAAWG,aAAaN,EAAUjnB,GAG7C,OAAO/E,EAAOjP,MAAK,SAAUw7B,GAC3B,MAA8B,iBAAnBrN,GAA+BA,EAAiB,EAClDve,EAAO6rB,gBAAgBD,EAAKrN,EAAgB6M,GAG9CQ,OAcV,CACDj6B,IAAK,kBACL2B,MAAO,SAAyB8G,EAAOgV,EAAO0c,GAC5C,IAAK1xB,EACH,OAAO,KAGT,IAAIuV,EAAa,GAAc,GAAc,GAAc,GAAc,GAAc,GAAIvV,GAAQA,EAAMqK,aAAe,CACtHA,YAAarK,EAAMqK,YAAYrS,KAAI,SAAU2b,GAC3C,OAAO,GAAc,GAAc,GAAIA,GAAIA,EAAE9S,MAAQ,CACnDA,KAAMkU,GAAUpB,EAAE9S,KAAMmU,EAAO0c,UAGjC1xB,EAAM2H,MAAQ,CAChBA,KAAMoN,GAAU/U,EAAM2H,KAAMqN,EAAO0c,KACjC1xB,EAAM0J,UAAY,CACpBA,SAAUqL,GAAU/U,EAAM0J,SAAUsL,EAAO0c,KACzC1xB,EAAM+I,OAAS,CACjBA,MAAOgM,GAAU/U,EAAM+I,MAAOiM,EAAO0c,KA8BvC,OApBI1xB,EAAM0J,UAAY1J,EAAM0J,SAASO,OAASsL,EAAW7L,WACvD6L,EAAW7L,SAASO,MAAQjK,EAAM0J,SAASO,MAEvCjK,EAAM0J,SAASO,MAAMpJ,OACvB0U,EAAW7L,SAASO,MAAMpJ,KAAOkU,GAAU/U,EAAM0J,SAASO,MAAMpJ,KAAMmU,EAAO0c,KAK7E1xB,EAAM2xB,QACRpc,EAAWoc,MAAQ3xB,EAAM2xB,MAAM35B,KAAI,SAAUoR,GAM3C,OAJIA,EAAKvI,OACPuI,EAAKvI,KAAOkU,GAAU3L,EAAKvI,KAAMmU,EAAO0c,IAGnCtoB,MAIJmM,IASR,CACDhe,IAAK,sBACL2B,MAAO,SAA6B8G,GAClC,IAAIgC,EAAUpE,KAAKmE,aACfqF,EAAcpF,EAAQoF,YACtBD,EAAUnF,EAAQmF,QAClByqB,EAAO5vB,EAAQ4vB,KACfC,EAAwB7vB,EAAQ8vB,eAChCA,OAA2C,IAA1BD,EAAmC,IAAMA,EAExD,gBAAiB7xB,IACrBA,EAAMoH,YAAc,gBAAiBpF,EAAUoF,EAAc,mBAGzC1O,IAAlBsH,EAAMmH,cAAqCzO,IAAZyO,IACjCnH,EAAMmH,QAAUA,QAGCzO,IAAfsH,EAAM4xB,WAA+Bl5B,IAATk5B,IAC9B5xB,EAAM4xB,KAAOA,GAGX5xB,EAAMvE,UACRuE,EAAMvE,QAAUnD,EAAS0H,EAAMvE,QAASq2B,IAG1C,IAAIv1B,EAAYyD,EAAMzD,WAAayD,EAAMzD,UAAU0D,QAAUD,EAAMzD,UAAU0D,OAAO,GAEhF1D,GAAaA,EAAUrD,QACzBqD,EAAUrD,MAAQZ,EAASiE,EAAUrD,MAAO44B,IAG9C,IAAI9I,EAAUhpB,EAAMgpB,QAEhBA,GAAWA,EAAQ/lB,MACrB+lB,EAAQ/lB,IAAM3K,EAAS0wB,EAAQ/lB,IAAK6uB,MAQvC,CACDv6B,IAAK,6BACL2B,MAAO,SAAoC8G,GACzC,IAAI+xB,EAAoBl9B,OAAO+E,KAAKgE,KAAKmxB,eAErCgD,EAAkBj7B,OAAS,IAC7BkJ,EAAMysB,IAAMzsB,EAAMysB,KAAO,GACzBzsB,EAAMysB,IAAIW,aAAe,GAAG73B,QAAO,OAAmByK,EAAMysB,IAAIW,cAAgB,KAAK,OAAmB2E,OAU3G,CACDx6B,IAAK,gBACL2B,MAAO,SAAuB8G,GAC5B,IAAIgK,EAAOvR,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC3EsS,EAAQtS,UAAU3B,OAAS,EAAI2B,UAAU,QAAKC,EAClD,OAAOkF,KAAKo0B,cAAchyB,EAAOgK,EAAMe,GAAO/U,MAAK,SAAUi8B,GAC3D,OAAOA,EAAW7xB,YACjB,SAAU4D,GACX,GAAgC,oBAArB/E,kBAAoCA,iBAAkB,CAG/D,IAAIizB,EAAcluB,EAEW,QAAzBkuB,EAAY1hB,SACdpS,EAAOyM,IAAIqnB,EAAYz2B,SAEvB2C,EAAOoE,KAAK0vB,SAqBnB,CACD36B,IAAK,gBACL2B,MAAO,SAAuB8G,EAAOgK,EAAMe,GACzC,IAAIhF,EAASnI,KAEToE,EAAUpE,KAAKmE,aACfowB,EAAanwB,EAAQmwB,WAEzB,IAAKv0B,KAAK4xB,aACR,OAAOzrB,GAAoB,IAAIsM,GAAY,2CAA4C,QAGzF,IAAI+hB,EAA+B,gBAAfpyB,EAAMnE,KACtBw2B,EAA0BD,EAAgB,wBAA0B,aACpEE,EAAsBtwB,EAAQqwB,GAIlC,OAAKD,GAAuC,iBAAfD,GAA2BvyB,KAAKC,SAAWsyB,GACtEv0B,KAAK6d,mBAAmB,cAAe,SAChC1X,GAAoB,IAAIsM,GAAY,oFAAoF9a,OAAO48B,EAAY,KAAM,SAGnJv0B,KAAK20B,cAAcvyB,EAAOgK,EAAMe,GAAO/U,MAAK,SAAUi7B,GAC3D,GAAiB,OAAbA,EAGF,MAFAlrB,EAAO0V,mBAAmB,kBAAmBzb,EAAMnE,MAAQ,SAErD,IAAIwU,GAAY,2DAA4D,OAKpF,OAF0BrG,EAAKnJ,OAAiC,IAAzBmJ,EAAKnJ,KAAK2xB,aAErBF,EACnBrB,EA2HjB,SAAmCwB,EAAkBJ,GACnD,IAAIK,EAAoB,IAAIn9B,OAAO88B,EAAyB,0CAE5D,GAAIv8B,EAAW28B,GACb,OAAOA,EAAiBz8B,MAAK,SAAUgK,GACrC,IAAKrK,EAAcqK,IAAoB,OAAVA,EAC3B,MAAM,IAAIqQ,GAAYqiB,GAGxB,OAAO1yB,KACN,SAAU5G,GACX,MAAM,IAAIiX,GAAY,IAAI9a,OAAO88B,EAAyB,oBAAoB98B,OAAO6D,OAElF,IAAKzD,EAAc88B,IAA0C,OAArBA,EAC7C,MAAM,IAAIpiB,GAAYqiB,GAGxB,OAAOD,EAxIME,CADgBL,EAAoBrB,EAAUjnB,GACFqoB,MAClDr8B,MAAK,SAAU48B,GAChB,GAAuB,OAAnBA,EAGF,MAFA7sB,EAAO0V,mBAAmB,cAAezb,EAAMnE,MAAQ,SAEjD,IAAIwU,GAAY,IAAI9a,OAAO88B,EAAyB,2CAA4C,OAGxG,IAAIhsB,EAAU0E,GAASA,EAAM2C,cAExB0kB,GAAiB/rB,GACpBN,EAAO8sB,wBAAwBxsB,EAASusB,GAM1C,IAAIE,EAAkBF,EAAeG,iBAErC,GAAIX,GAAiBU,GAAmBF,EAAerpB,cAAgBvJ,EAAMuJ,YAAa,CACxF,IAAIlP,EAAS,SACbu4B,EAAeG,iBAAmB,GAAc,GAAc,GAAID,GAAkB,GAAI,CACtFz4B,OAAQA,EACR24B,QAAS,GAAGz9B,QAAO,OAAmBu9B,EAAgBE,SAAU,CAAC,CAC/D34B,OAAQA,EAERmM,UAAWosB,EAAepsB,UAC1BysB,aAAcH,EAAgBG,kBAOpC,OAFAltB,EAAOmtB,UAAUN,EAAgB5oB,GAE1B4oB,KACN58B,KAAK,MAAM,SAAUgO,GACtB,GAAIA,aAAkBqM,GACpB,MAAMrM,EAUR,MAPA+B,EAAOkG,iBAAiBjI,EAAQ,CAC9BnD,KAAM,CACJ2xB,YAAY,GAEdtmB,kBAAmBlI,IAGf,IAAIqM,GAAY,8HAA8H9a,OAAOyO,SAO9J,CACDzM,IAAK,WACL2B,MAAO,SAAkBi6B,GACvB,IAAIC,EAASx1B,KAEbA,KAAKqxB,gBAAkB,EAClBkE,EAAQn9B,MAAK,SAAUkD,GAE1B,OADAk6B,EAAOnE,gBAAkB,EAClB/1B,KACN,SAAU8K,GAEX,OADAovB,EAAOnE,gBAAkB,EAClBjrB,OAOV,CACDzM,IAAK,gBACL2B,MAAO,SAAuBke,GACxBxZ,KAAKgxB,YAAchxB,KAAK+wB,KAC1B/wB,KAAKgxB,WAAWtT,KAAKlE,GAAUphB,KAAK,MAAM,SAAUgO,IACrB,oBAArB/E,kBAAoCA,mBAAqBb,EAAOyE,MAAM,6BAA8BmB,OAGjF,oBAArB/E,kBAAoCA,mBAAqBb,EAAOyE,MAAM,wBAOjF,CACDtL,IAAK,iBACL2B,MAAO,WACL,IAAIm6B,EAAWz1B,KAAKsxB,UAEpB,OADAtxB,KAAKsxB,UAAY,GACVr6B,OAAO+E,KAAKy5B,GAAUr7B,KAAI,SAAUT,GACzC,IAAI+7B,EAAa/7B,EAAIa,MAAM,KACvBm7B,GAAc,QAAeD,EAAY,GAI7C,MAAO,CACLtvB,OAJWuvB,EAAY,GAKvBpZ,SAJaoZ,EAAY,GAKzBC,SAAUH,EAAS97B,WAWpBm3B,EAhxBqB,GChD9B,SAAS,GAAahf,GAAW,IAAIC,EAErC,WAAuC,GAAuB,oBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFha,QAAQjB,UAAUkb,QAAQ9a,KAAK0a,QAAQC,UAAU9Z,QAAS,IAAI,iBAAyB,EAAQ,MAAOqD,GAAK,OAAO,GAF9P,GAA6B,OAAO,WAAkC,IAAsC6L,EAAlCiL,GAAQ,QAAgBR,GAAkB,GAAIC,EAA2B,CAAE,IAAIQ,GAAY,QAAgBvS,MAAMwS,YAAanL,EAAS2K,QAAQC,UAAUK,EAAOzX,UAAW0X,QAAqBlL,EAASiL,EAAMhW,MAAM0D,KAAMnF,WAAc,OAAO,QAA2BmF,KAAMqH,IAgB5Z,IAAIwuB,GAA6B,SAAUC,IACzC,QAAUD,EAAeC,GAEzB,IAAInjB,EAAS,GAAakjB,GAO1B,SAASA,EAAczxB,GACrB,IAAIgD,EAuBJ,OArBA,OAAgBpH,KAAM61B,GAEtBzxB,EAAQwqB,UAAYxqB,EAAQwqB,WAAa,GACzCxqB,EAAQwqB,UAAUC,IAAMzqB,EAAQwqB,UAAUC,KAAO,CAC/C/xB,KAAM,4BACN2yB,SAAU,CAAC,CACT3yB,KAAM,sBACN4Q,QAAS+D,KAEX/D,QAAS+D,IAEXrK,EAAQuL,EAAOrb,KAAK0I,KAAMoE,GAEtBA,EAAQouB,mBAAqB,aAC/B,6BAAiC,oBAAoB,WACX,WAApC,6BACFprB,EAAM2uB,oBAKL3uB,EA0GT,OAnGA,OAAayuB,EAAe,CAAC,CAC3Bl8B,IAAK,qBACL2B,MAAO,SAA4BqD,EAAWyN,GAC5C,OduEN,SAA4BuK,EAAahY,EAAWyN,EAAM6Z,GACxD,IACI7jB,EAAQ+jB,GAAsBxP,EAAahY,EADtByN,GAAQA,EAAK+B,yBAAsBrT,EACkBmrB,GAS9E,OARAtjB,EAAsBP,GAEtBA,EAAMrB,MAAQ,QAEVqL,GAAQA,EAAK5J,WACfJ,EAAMI,SAAW4J,EAAK5J,UAGjBwD,GAAoB5D,GclFhB,CAAoBpC,KAAKyD,SAASkT,YAAahY,EAAWyN,EAAMpM,KAAKyD,SAASwiB,oBAMtF,CACDtsB,IAAK,mBACL2B,MAAO,SAA0BuC,GAC/B,IAAIkD,EAAQlG,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,OAC5EuR,EAAOvR,UAAU3B,OAAS,EAAI2B,UAAU,QAAKC,EACjD,OAAO,GAAkBkF,KAAKyD,SAASkT,YAAa9Y,EAASkD,EAAOqL,EAAMpM,KAAKyD,SAASwiB,oBAMzF,CACDtsB,IAAK,YACL2B,MAAO,SAAmB8G,EAAOgK,GAO/B,IAAI4pB,EAAwBh2B,KAAKi2B,mBAAmBjM,IAEhDgM,GAGJA,EAAsB5xB,SAAW4xB,EAAsB5xB,QAAQwM,QAC7DjN,KAAgBmL,cAAc,CAC5ByN,SAAU,UAAU5kB,OAAsB,gBAAfyK,EAAMnE,KAAyB,cAAgB,SAC1EuE,SAAUJ,EAAMI,SAChBzB,MAAOqB,EAAMrB,MACblD,QAASyE,EAAoBF,IAC5B,CACDA,MAAOA,KAIX,SAAK,QAAgByzB,EAAc3+B,WAAY,YAAa8I,MAAM1I,KAAK0I,KAAMoC,EAAOgK,KAMrF,CACDzS,IAAK,gBACL2B,MAAO,SAAuB8G,EAAOgK,EAAMe,GAEzC,OADA/K,EAAM8zB,SAAW9zB,EAAM8zB,UAAY,cAC5B,SAAK,QAAgBL,EAAc3+B,WAAY,gBAAiB8I,MAAM1I,KAAK0I,KAAMoC,EAAOgK,EAAMe,KAMtG,CACDxT,IAAK,iBACL2B,MAAO,WACL,IAAIm6B,EAAWz1B,KAAKm2B,iBAEpB,GAAwB,IAApBV,EAASv8B,OAKb,GAAK8G,KAAK+wB,KAAV,EAK6B,oBAArB1vB,kBAAoCA,mBAAqBb,EAAOyM,IAAI,oBAAqBwoB,GACjG,ICrI8BW,EAAkBtJ,EAAKlkB,EDqIjDvD,EAAMopB,GAAsCzuB,KAAK+wB,KAAM/wB,KAAKyD,UAC5D+V,GCtI0B4c,EDsIYX,EC/HvCrc,IAP6C0T,EDsII9sB,KAAKyD,SAASkrB,QAAU9B,GAAY7sB,KAAK+wB,OC/HrE,CAC1BjE,IAAKA,GACH,GAAI,CARe,CAAC,CACtB7uB,KAAM,iBACL,CACD2K,UAAWA,IAAa,WACxBwtB,iBAAkBA,ODmIhB,IAIE,GAHqF,uBAA/Dn/B,OAAOC,UAAUC,SAASG,KAAK,IAAU,eACe,mBAAhC,0BAExB0I,KAAKyD,SAASytB,iBAEjB,6BAAiC,aAClDmF,CAAWhxB,EAAK6U,GAAkBV,SAIlCxZ,KAAKsyB,cAAc9Y,GAErB,MAAOhe,IACsB,oBAArB6F,kBAAoCA,mBAAqBb,EAAOyE,MAAMzJ,SAtBjD,oBAArB6F,kBAAoCA,mBAAqBb,EAAOyM,IAAI,gDAL/C,oBAArB5L,kBAAoCA,mBAAqBb,EAAOyM,IAAI,2BAgC3E4oB,EA5IwB,CA6I/B/E,IElKEwF,QAAkBx7B,EAwCtB,SAASy7B,KACP,GAAID,GACF,OAAOA,GAMT,GAAInX,GAAc,UAChB,OAAOmX,GAAkB,cAAkB,IAG7C,IAAIxd,EAAW,YACX0d,EAAY,SAEhB,GAAI1d,GAA8C,mBAA3BA,EAASqJ,cAC9B,IACE,IAAIC,EAAUtJ,EAASqJ,cAAc,UACrCC,EAAQC,QAAS,EACjBvJ,EAASwJ,KAAKC,YAAYH,GAC1B,IAAII,EAAgBJ,EAAQI,cAExBA,GAAiBA,EAAcP,QACjCuU,EAAYhU,EAAcP,OAG5BnJ,EAASwJ,KAAKG,YAAYL,GAC1B,MAAO5mB,IACsB,oBAArB6F,kBAAoCA,mBAAqBb,EAAOoE,KAAK,kFAAmFpJ,GAIpK,OAAO86B,GAAkBE,EAAU3W,KAAK,IAM1C,SAAS4W,KACPH,QAAkBx7B,EC/EpB,SAAS,GAAQgB,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,GAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAS7gB,SAASk6B,GAAmBtyB,GAC1B,IAAIuyB,EAAc97B,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK07B,KAEtF,SAASjZ,EAAY8N,GACnB,IAAIwL,EAAiB,GAAc,CACjC5Y,KAAMoN,EAAQpN,KACdvN,OAAQ,OACRomB,eAAgB,SAChBxd,QAASjV,EAAQiV,QAUjByd,UAAW1L,EAAQpN,KAAK9kB,QAAU,OACjCkL,EAAQ2yB,cAEX,IACE,OAAOJ,EAAYvyB,EAAQiB,IAAKuxB,GAAgBx+B,MAAK,SAAU6lB,GAC7D,MAAO,CACLtB,WAAYsB,EAASlV,OACrBsQ,QAAS,CACP,uBAAwB4E,EAAS5E,QAAQ9Z,IAAI,wBAC7C,cAAe0e,EAAS5E,QAAQ9Z,IAAI,oBAI1C,MAAO/D,GAEP,OADAi7B,KACOtwB,GAAoB3K,IAI/B,OAAO6hB,GAAgBjZ,EAASkZ,GClClC,SAAS0Z,GAAiB5yB,GA8BxB,OAAOiZ,GAAgBjZ,GA7BvB,SAAqBgnB,GACnB,OAAO,IAAInlB,IAAY,SAAUC,EAASI,GACxC,IAAIwa,EAAM,IAAIJ,eAiBd,IAAK,IAAI5E,KAhBTgF,EAAI2D,QAAUne,EAEdwa,EAAIW,mBAAqB,WAXL,IAYdX,EAAIO,YACNnb,EAAQ,CACNyW,WAAYmE,EAAI/X,OAChBsQ,QAAS,CACP,uBAAwByH,EAAImW,kBAAkB,wBAC9C,cAAenW,EAAImW,kBAAkB,mBAM7CnW,EAAIoW,KAAK,OAAQ9yB,EAAQiB,KAENjB,EAAQiV,QACrBpiB,OAAOC,UAAUuH,eAAenH,KAAK8M,EAAQiV,QAASyC,IACxDgF,EAAIqW,iBAAiBrb,EAAQ1X,EAAQiV,QAAQyC,IAIjDgF,EAAIpD,KAAK0N,EAAQpN,YCvCvB,IAAIoZ,GAAmB,IAOvB,SAASC,GAAYxxB,EAAUnI,EAAMsqB,EAAQD,GAC3C,IAAIniB,EAAQ,CACVC,SAAUA,EACViR,SAAUpZ,EAEVwqB,QAAQ,GAWV,YAReptB,IAAXktB,IACFpiB,EAAMoiB,OAASA,QAGHltB,IAAVitB,IACFniB,EAAMmiB,MAAQA,GAGTniB,EAIT,IAAI0xB,GAAc,sLACdC,GAAkB,gCAkClBC,GAAwB,CA3DN,GA2BT,SAAgBnhB,GAC3B,IAAIgE,EAAQid,GAAY/J,KAAKlX,GAE7B,GAAIgE,EAAO,CAGT,GAFaA,EAAM,IAAmC,IAA7BA,EAAM,GAAGze,QAAQ,QAE9B,CACV,IAAI67B,EAAWF,GAAgBhK,KAAKlT,EAAM,IAEtCod,IAEFpd,EAAM,GAAKod,EAAS,GAEpBpd,EAAM,GAAKod,EAAS,GAEpBpd,EAAM,GAAKod,EAAS,IAMxB,IAAIC,EAAwBC,GAA8Btd,EAAM,IAAM+c,GAAkB/c,EAAM,IAC1Fud,GAAyB,QAAeF,EAAuB,GAC/Dh6B,EAAOk6B,EAAuB,GAGlC,OAAOP,GAFQO,EAAuB,GAETl6B,EAAM2c,EAAM,IAAMA,EAAM,QAAKvf,EAAWuf,EAAM,IAAMA,EAAM,QAAKvf,MAU5F+8B,GAAa,sOACbC,GAAiB,gDAmCjBC,GAAuB,CAjGN,GAgET,SAAe1hB,GACzB,IAAIgE,EAAQwd,GAAWtK,KAAKlX,GAE5B,GAAIgE,EAAO,CAGT,GAFaA,EAAM,IAAMA,EAAM,GAAGze,QAAQ,YAAc,EAE5C,CACV,IAAI67B,EAAWK,GAAevK,KAAKlT,EAAM,IAErCod,IAEFpd,EAAM,GAAKA,EAAM,IAAM,OACvBA,EAAM,GAAKod,EAAS,GACpBpd,EAAM,GAAKod,EAAS,GACpBpd,EAAM,GAAK,IAIf,IAAIxU,EAAWwU,EAAM,GACjB3c,EAAO2c,EAAM,IAAM+c,GAEnBY,EAAyBL,GAA8Bj6B,EAAMmI,GAE7DoyB,GAAyB,QAAeD,EAAwB,GAIpE,OAFAt6B,EAAOu6B,EAAuB,GAEvBZ,GADPxxB,EAAWoyB,EAAuB,GACLv6B,EAAM2c,EAAM,IAAMA,EAAM,QAAKvf,EAAWuf,EAAM,IAAMA,EAAM,QAAKvf,MAO5Fo9B,GAAa,gHAObC,GAAuB,CA1GN,GAqGT,SAAe9hB,GACzB,IAAIgE,EAAQ6d,GAAW3K,KAAKlX,GAC5B,OAAOgE,EAAQgd,GAAYhd,EAAM,GAAIA,EAAM,IAAM+c,IAAmB/c,EAAM,GAAIA,EAAM,IAAMA,EAAM,QAAKvf,QAAaA,IAIhHs9B,GAAe,8DAOfC,GAAyB,CArHN,GAgHT,SAAiBhiB,GAC7B,IAAIgE,EAAQ+d,GAAa7K,KAAKlX,GAC9B,OAAOgE,EAAQgd,GAAYhd,EAAM,GAAIA,EAAM,IAAM+c,IAAmB/c,EAAM,SAAMvf,IAI9Ew9B,GAAe,oGAOfC,GAAyB,CA5HN,GAuHT,SAAiBliB,GAC7B,IAAIgE,EAAQie,GAAa/K,KAAKlX,GAC9B,OAAOgE,EAAQgd,GAAYhd,EAAM,GAAIA,EAAM,IAAMA,EAAM,IAAM+c,IAAmB/c,EAAM,IAAKA,EAAM,SAAMvf,IAIrG09B,GAA0B,CAAChB,GAAuBO,GAAsBI,IACxEM,GAAqB9iB,GAAkBrZ,WAAM,EAAQk8B,IAsBrDb,GAAgC,SAAuCj6B,EAAMmI,GAC/E,IAAI6yB,GAA0D,IAAtCh7B,EAAK9B,QAAQ,oBACjC+8B,GAAiE,IAA1Cj7B,EAAK9B,QAAQ,wBACxC,OAAO88B,GAAqBC,EAAuB,EAAwB,IAAvBj7B,EAAK9B,QAAQ,KAAc8B,EAAKlD,MAAM,KAAK,GAAK48B,GAAkBsB,EAAoB,oBAAoB/gC,OAAOkO,GAAY,wBAAwBlO,OAAOkO,IAAa,CAACnI,EAAMmI,IChJtO,SAAS+yB,GAAYC,EAAaz0B,IACV,IAAlBA,EAAQ00B,QACsB,oBAArBz3B,kBAAoCA,iBAC7Cb,EAAOW,SAIPqe,QAAQ5a,KAAK,iFAIjB,IAAIf,EAAMF,KACNwJ,EAAQtJ,EAAIgK,WAEZV,GACFA,EAAMsmB,OAAOrvB,EAAQ20B,cAGvB,IAAI/0B,EAAS,IAAI60B,EAAYz0B,GAC7BP,EAAI2J,WAAWxJ,GC7BjB,SAAS,GAAQlI,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,GAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAiB7gB,IAAIyzB,GAAsB,CAAC,IAAI,GAA+B,IAAI,EAAiC,IAAI7H,GAAY,IAAI6B,GAAe,IAAItD,GAAkB,IAAImE,GAAgB,IAAIS,GAAU,IAAIJ,IA2DlM,SAASxiB,KACP,IAAIvE,EAAUvJ,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,QAE9CC,IAAhCsJ,EAAQ6rB,sBACV7rB,EAAQ6rB,oBAAsBA,SAGRn1B,IAApBsJ,EAAQmF,SAEN,mBAAyB,uBAC3BnF,EAAQmF,QAAU,2BAIczO,IAAhCsJ,EAAQ40B,sBACV50B,EAAQ40B,qBAAsB,QAGEl+B,IAA9BsJ,EAAQouB,oBACVpuB,EAAQouB,mBAAoB,GAG9B,IAAItuB,EAAgB,GAAc,GAAc,GAAIE,GAAU,GAAI,CAChEuS,YAAaD,GAAkCtS,EAAQuS,aAAe8hB,IACtEjJ,aAAcQ,GAAuB5rB,GACrC6sB,UAAW7sB,EAAQ6sB,YAAclS,KAAkB2X,GAAqBM,MAG1E4B,GAAY/C,GAAe3xB,GAEvBE,EAAQ40B,qBACVC,KAUJ,SAASC,KACP,IAAI90B,EAAUvJ,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC9EgJ,EAAMhJ,UAAU3B,OAAS,QAAsB4B,IAAjBD,UAAU,GAAmBA,UAAU,GAAK8I,KAG9E,GAAK,YAAL,CAKA,IAAIw1B,EAAmBt1B,EAAI0J,cACvBvJ,EAASm1B,EAAiBn1B,OAC1BmJ,EAAQgsB,EAAiBhsB,MAEzB2f,EAAM1oB,EAAQ0oB,KAAO9oB,GAAUA,EAAOo1B,SAE1C,GAAKtM,EAAL,CAKI3f,IACF/I,EAAQ2F,KAAO,GAAc,GAAc,GAAIoD,EAAMgD,WAAY/L,EAAQ2F,OAGtE3F,EAAQ7B,UACX6B,EAAQ7B,QAAUsB,EAAIw1B,eAGxB,IAAIC,EAAS,0BAA8B,UAC3CA,EAAOC,OAAQ,EACfD,EAAOE,IAAM1K,GAAwBhC,EAAK1oB,GAEtCA,EAAQq1B,SAEVH,EAAOI,OAASt1B,EAAQq1B,QAG1B,IAAIE,EAAiB,kBAAwB,iBAEzCA,EACFA,EAAepX,YAAY+W,IAEE,oBAArBj4B,kBAAoCA,mBAAqBb,EAAOyE,MAAM,sEA1BjD,oBAArB5D,kBAAoCA,mBAAqBb,EAAOyE,MAAM,qDAXjD,oBAArB5D,kBAAoCA,mBAAqBb,EAAOyE,MAAM,wDA+ClF,SAASo0B,KACP,OAAO11B,KAAgB01B,cAQzB,SAASO,MAQT,SAASH,GAAO74B,GACdA,IAYF,SAAS6c,GAAMjK,GACb,IAAIxP,EAASL,KAAgBM,YAE7B,OAAID,EACKA,EAAOyZ,MAAMjK,KAGO,oBAArBnS,kBAAoCA,mBAAqBb,EAAOoE,KAAK,2CACtEoB,IAAoB,IAY7B,SAAS,GAAMwN,GACb,IAAIxP,EAASL,KAAgBM,YAE7B,OAAID,EACKA,EAAO61B,MAAMrmB,KAGO,oBAArBnS,kBAAoCA,mBAAqBb,EAAOoE,KAAK,2DACtEoB,IAAoB,IAY7B,SAAS,GAAKkR,GACZ,OAAOmH,GAAOnH,EAAPmH,GAGT,SAASyb,GAAkBj2B,GACzBA,EAAIk2B,aAAa,CACf9wB,gBAAgB,IAElBpF,EAAI0M,iBAON,SAAS0oB,KACP,QAA+B,IAApB,YAAX,CAKA,IAAIp1B,EAAMF,KAOLE,EAAI0M,iBAQTupB,GAAkBj2B,GAElBihB,GAA0B,WAAW,SAAUjgB,GAC7C,IAAI+P,EAAO/P,EAAK+P,KACZsP,EAAKrf,EAAKqf,QAGCppB,IAAT8Z,GAAsBA,IAASsP,GACnC4V,GAAkBn2B,eA3BS,oBAArBtC,kBAAoCA,mBAAqBb,EAAOoE,KAAK,sFCnQjF,SAAS,GAAQ9I,EAAQC,GAAkB,IAAIC,EAAO/E,OAAO+E,KAAKF,GAAS,GAAI7E,OAAOgF,sBAAuB,CAAE,IAAIC,EAAUjF,OAAOgF,sBAAsBH,GAAaC,IAAkBG,EAAUA,EAAQjC,QAAO,SAAUkC,GAAO,OAAOlF,OAAOmF,yBAAyBN,EAAQK,GAAKE,eAAkBL,EAAK5C,KAAKkD,MAAMN,EAAME,GAAY,OAAOF,EAElV,SAAS,GAAcQ,GAAU,IAAK,IAAI3C,EAAI,EAAGA,EAAIgB,UAAU3B,OAAQW,IAAK,CAAE,IAAI4C,EAAyB,MAAhB5B,UAAUhB,GAAagB,UAAUhB,GAAK,GAAQA,EAAI,EAAK,GAAQ5C,OAAOwF,IAAS,GAAMpC,SAAQ,SAAUV,IAAO,OAAgB6C,EAAQ7C,EAAK8C,EAAO9C,OAAsB1C,OAAOyF,0BAA6BzF,OAAO0F,iBAAiBH,EAAQvF,OAAOyF,0BAA0BD,IAAmB,GAAQxF,OAAOwF,IAASpC,SAAQ,SAAUV,GAAO1C,OAAO2F,eAAeJ,EAAQ7C,EAAK1C,OAAOmF,yBAAyBK,EAAQ9C,OAAe,OAAO6C,EAmB7gB,IAAIw9B,GAAqB,GAErB,WAAiB,yBACnBA,GAAqB,wBAGvB,IAAIC,GAAe,GAAc,GAAc,GAAc,GAAID,IAAqB,GAAe,I,qBCjBrG,SAASE,IAGP,QCM4C,oBAA9BC,2BAA+CA,4BDNiD,qBAAjFljC,OAAOC,UAAUC,SAASG,KAAwB,oBAAZ8iC,QAA0BA,QAAU,GAUzG,SAASC,EAAeC,EAAKlP,GAE3B,OAAOkP,EAAIC,QAAQnP,G,sLExBrB,IAAI5yB,GAAS,UAaTgiC,EAAsB,CACxBC,WAAY,WACV,OAAOtxB,KAAK4S,MAAQ,MAsExB,IAAI2e,GAAsB,UAb1B,WACE,IAEE,OADgB,QAAeC,EAAQ,cACtBC,YACjB,MAAOv0B,GACP,QAQoCw0B,GAvDxC,WACE,IAAID,EAAcpiC,EAAOoiC,YAEzB,GAAKA,GAAgBA,EAAY7e,IA0BjC,MAAO,CACLA,IAAK,WACH,OAAO6e,EAAY7e,OAErB+e,WALe3xB,KAAK4S,MAAQ6e,EAAY7e,OA2BmBgf,GAC3DC,OAA0ClgC,IAAxB4/B,EAAoCF,EAAsB,CAC9EC,WAAY,WACV,OAAQC,EAAoBI,WAAaJ,EAAoB3e,OAAS,MAOtEkf,EAAyBT,EAAoBC,WAAW5a,KAAK2a,GAa7DU,EAAqBF,EAAgBP,WAAW5a,KAAKmb,IAmBtB,WAIjC,IAAIJ,EAAcpiC,EAAOoiC,YAEzB,GAAKA,GAAgBA,EAAY7e,IAAjC,CAKA,IAAIof,EAAY,KACZC,EAAiBR,EAAY7e,MAC7Bsf,EAAUlyB,KAAK4S,MAEfuf,EAAkBV,EAAYE,WAAa94B,KAAKu5B,IAAIX,EAAYE,WAAaM,EAAiBC,GAAWF,EACzGK,EAAuBF,EAAkBH,EAOzCM,EAAkBb,EAAYc,QAAUd,EAAYc,OAAOD,gBAG3DE,EAFgD,iBAApBF,EAEgBz5B,KAAKu5B,IAAIE,EAAkBL,EAAiBC,GAAWF,EAGvG,OAAIK,GAF4BG,EAAuBR,EAIjDG,GAAmBK,GACe,aAC7Bf,EAAYE,aAEiB,kBAC7BW,IAKyB,UAC7BJ,GAnC+B,OAPL,I,8GCtGnC,SAASO,EAAYv+B,GACnB,OAAOA,GAAOA,EAAI2E,MAAQA,KAAO3E,OAAMvC,EAKzC,IAAI+gC,EAAkC,iBAAdC,YAA0BF,EAAYE,aAC7C,iBAAVjjB,QAAsB+iB,EAAY/iB,SAA0B,iBAAR/U,MAAoB83B,EAAY93B,OAA0B,iBAAV,EAAA8U,GAAsBgjB,EAAY,EAAAhjB,IAAW,WACtJ,OAAO5Y,KAD+I,IAEjJ,GAMP,SAAS+7B,IACP,OAAOF,EAeT,SAASG,EAAmBl/B,EAAMm/B,EAAS5+B,GACzC,IAAImE,EAAMnE,GAAOw+B,EAEbhrB,EAAarP,EAAIqP,WAAarP,EAAIqP,YAAc,GAGpD,OADgBA,EAAW/T,KAAU+T,EAAW/T,GAAQm/B","sources":["webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/is.js","webpack://shadepro-gatsby/./node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/browser.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/string.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/object.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/logger.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/misc.js","webpack://shadepro-gatsby/./node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/syncpromise.js","webpack://shadepro-gatsby/./node_modules/@sentry/core/esm/session.js","webpack://shadepro-gatsby/./node_modules/@sentry/core/esm/scope.js","webpack://shadepro-gatsby/./node_modules/@sentry/core/esm/hub.js","webpack://shadepro-gatsby/./node_modules/@sentry/core/esm/version.js","webpack://shadepro-gatsby/./node_modules/@sentry/core/esm/exports.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/error.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/promisebuffer.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/memo.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/stacktrace.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/normalize.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/envelope.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/ratelimit.js","webpack://shadepro-gatsby/./node_modules/@sentry/core/esm/transports/base.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/helpers.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/supports.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/instrument.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/eventbuilder.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/severity.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/url.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/integrations/httpcontext.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/integrations/dedupe.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/dsn.js","webpack://shadepro-gatsby/./node_modules/@sentry/core/esm/api.js","webpack://shadepro-gatsby/./node_modules/@sentry/core/esm/envelope.js","webpack://shadepro-gatsby/./node_modules/@sentry/core/esm/integration.js","webpack://shadepro-gatsby/./node_modules/@sentry/core/esm/baseclient.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/client.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/clientreport.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/transports/utils.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/transports/fetch.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/transports/xhr.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/stack-parsers.js","webpack://shadepro-gatsby/./node_modules/@sentry/core/esm/sdk.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/sdk.js","webpack://shadepro-gatsby/./node_modules/@sentry/browser/esm/index.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/node.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/env.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/time.js","webpack://shadepro-gatsby/./node_modules/@sentry/utils/esm/worldwide.js"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/unbound-method\nvar objectToString = Object.prototype.toString;\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\n\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\n\n\nfunction isBuiltin(wat, className) {\n return objectToString.call(wat) === \"[object \".concat(className, \"]\");\n}\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\n\n\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\n\n\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\n\n\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\n\n\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\n\n\nfunction isPrimitive(wat) {\n return wat === null || typeof wat !== 'object' && typeof wat !== 'function';\n}\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\n\n\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\n\n\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\n\n\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\n\n\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\n\n\nfunction isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\n\n\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\n\n\nfunction isNaN(wat) {\n return typeof wat === 'number' && wat !== wat;\n}\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\n\n\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isNaN, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable };","import _classCallCheck from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/createClass\";\nimport { getOriginalFunction } from '@sentry/utils';\nvar originalFunctionToString;\n/** Patch toString calls to return proper name for wrapped functions */\n\nvar FunctionToString = /*#__PURE__*/function () {\n function FunctionToString() {\n _classCallCheck(this, FunctionToString);\n\n FunctionToString.prototype.__init.call(this);\n }\n /**\n * @inheritDoc\n */\n\n\n _createClass(FunctionToString, [{\n key: \"__init\",\n value:\n /**\n * @inheritDoc\n */\n function __init() {\n this.name = FunctionToString.id;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setupOnce\",\n value: function setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString; // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n Function.prototype.toString = function () {\n var context = getOriginalFunction(this) || this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return originalFunctionToString.apply(context, args);\n };\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.id = 'FunctionToString';\n }\n }]);\n\n return FunctionToString;\n}();\n\nFunctionToString.__initStatic();\n\nexport { FunctionToString };","import { isString } from './is.js';\nimport { getGlobalObject } from './worldwide.js'; // eslint-disable-next-line deprecation/deprecation\n\nvar WINDOW = getGlobalObject();\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\n\nfunction htmlTreeAsString(elem, keyAttrs) {\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n var currentElem = elem;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n var height = 0;\n var len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n var nextStr; // eslint-disable-next-line no-plusplus\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs); // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n\n if (nextStr === 'html' || height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN) {\n break;\n }\n\n out.push(nextStr);\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\n\n\nfunction _htmlElementAsString(el, keyAttrs) {\n var elem = el;\n var out = [];\n var className;\n var classes;\n var key;\n var attr;\n var i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase()); // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n\n var keyAttrPairs = keyAttrs && keyAttrs.length ? keyAttrs.filter(function (keyAttr) {\n return elem.getAttribute(keyAttr);\n }).map(function (keyAttr) {\n return [keyAttr, elem.getAttribute(keyAttr)];\n }) : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(function (keyAttrPair) {\n out.push(\"[\".concat(keyAttrPair[0], \"=\\\"\").concat(keyAttrPair[1], \"\\\"]\"));\n });\n } else {\n if (elem.id) {\n out.push(\"#\".concat(elem.id));\n } // eslint-disable-next-line prefer-const\n\n\n className = elem.className;\n\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n\n for (i = 0; i < classes.length; i++) {\n out.push(\".\".concat(classes[i]));\n }\n }\n }\n\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n\n if (attr) {\n out.push(\"[\".concat(key, \"=\\\"\").concat(attr, \"\\\"]\"));\n }\n }\n\n return out.join('');\n}\n/**\n * A safe form of location.href\n */\n\n\nfunction getLocationHref() {\n try {\n return WINDOW.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n/**\n * Gets a DOM element by using document.querySelector.\n *\n * This wrapper will first check for the existance of the function before\n * actually calling it so that we don't have to take care of this check,\n * every time we want to access the DOM.\n *\n * Reason: DOM/querySelector is not available in all environments.\n *\n * We have to cast to any because utils can be consumed by a variety of environments,\n * and we don't want to break TS users. If you know what element will be selected by\n * `document.querySelector`, specify it as part of the generic call. For example,\n * `const element = getDomElement('selector');`\n *\n * @param selector the selector string passed on to document.querySelector\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction getDomElement(selector) {\n if (WINDOW.document && WINDOW.document.querySelector) {\n return WINDOW.document.querySelector(selector);\n }\n\n return null;\n}\n\nexport { getDomElement, getLocationHref, htmlTreeAsString };","import { isString, isRegExp } from './is.js';\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\n\nfunction truncate(str) {\n var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n\n return str.length <= max ? str : \"\".concat(str.substr(0, max), \"...\");\n}\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\n\n\nfunction snipLine(line, colno) {\n var newLine = line;\n var lineLength = newLine.length;\n\n if (lineLength <= 150) {\n return newLine;\n }\n\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n var start = Math.max(colno - 60, 0);\n\n if (start < 5) {\n start = 0;\n }\n\n var end = Math.min(start + 140, lineLength);\n\n if (end > lineLength - 5) {\n end = lineLength;\n }\n\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n\n if (start > 0) {\n newLine = \"'{snip} \".concat(newLine);\n }\n\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n var output = []; // eslint-disable-next-line @typescript-eslint/prefer-for-of\n\n for (var i = 0; i < input.length; i++) {\n var value = input[i];\n\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\n\n\nfunction isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n\n return false;\n}\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\n\n\nfunction escapeStringForRegex(regexString) {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n\nexport { escapeStringForRegex, isMatchingPattern, safeJoin, snipLine, truncate };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { htmlTreeAsString } from './browser.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { truncate } from './string.js';\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\n\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n var original = source[name];\n var wrapped = replacementFactory(original); // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {// This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\n\n\nfunction addNonEnumerableProperty(obj, name, value) {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true\n });\n}\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\n\n\nfunction markFunctionWrapped(wrapped, original) {\n var proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\n\n\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\n\n\nfunction urlEncode(object) {\n return Object.keys(object).map(function (key) {\n return \"\".concat(encodeURIComponent(key), \"=\").concat(encodeURIComponent(object[key]));\n }).join('&');\n}\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\n\n\nfunction convertToPlainObject(value) {\n if (isError(value)) {\n return _objectSpread({\n message: value.message,\n name: value.name,\n stack: value.stack\n }, getOwnProperties(value));\n } else if (isEvent(value)) {\n var newObj = _objectSpread({\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget)\n }, getOwnProperties(value));\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n/** Creates a string representation of the target of an `Event` object */\n\n\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n/** Filters out all but an object's own properties */\n\n\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n var extractedProps = {};\n\n for (var property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = obj[property];\n }\n }\n\n return extractedProps;\n } else {\n return {};\n }\n}\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n\n\nfunction extractExceptionKeysForMessage(exception) {\n var maxLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 40;\n var keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n\n if (serialized.length > maxLength) {\n continue;\n }\n\n if (includedKeys === keys.length) {\n return serialized;\n }\n\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\n\n\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n var memoizationMap = new Map(); // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPlainObject(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n var memoVal = memoizationMap.get(inputValue);\n\n if (memoVal !== undefined) {\n return memoVal;\n }\n\n var returnValue = {}; // Store the mapping of this value in case we visit it again, in case of circular data\n\n memoizationMap.set(inputValue, returnValue);\n\n for (var _i = 0, _Object$keys = Object.keys(inputValue); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n var _memoVal = memoizationMap.get(inputValue);\n\n if (_memoVal !== undefined) {\n return _memoVal;\n }\n\n var _returnValue = []; // Store the mapping of this value in case we visit it again, in case of circular data\n\n memoizationMap.set(inputValue, _returnValue);\n inputValue.forEach(function (item) {\n _returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n return _returnValue;\n }\n\n return inputValue;\n}\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\n\n\nfunction objectify(wat) {\n var objectified;\n\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new wat.constructor(wat);\n break;\n // by process of elimination, at this point we know that `wat` must already be an object\n\n default:\n objectified = wat;\n break;\n }\n\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };","import { GLOBAL_OBJ, getGlobalSingleton } from './worldwide.js';\n/** Prefix for logging strings */\n\nvar PREFIX = 'Sentry Logger ';\nvar CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'];\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\n\nfunction consoleSandbox(callback) {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n var originalConsole = GLOBAL_OBJ.console;\n var wrappedLevels = {}; // Restore all wrapped console methods\n\n CONSOLE_LEVELS.forEach(function (level) {\n // TODO(v7): Remove this check as it's only needed for Node 6\n var originalWrappedFunc = originalConsole[level] && originalConsole[level].__sentry_original__;\n\n if (level in originalConsole && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level];\n originalConsole[level] = originalWrappedFunc;\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(function (level) {\n originalConsole[level] = wrappedLevels[level];\n });\n }\n}\n\nfunction makeLogger() {\n var enabled = false;\n var logger = {\n enable: function enable() {\n enabled = true;\n },\n disable: function disable() {\n enabled = false;\n }\n };\n\n if (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) {\n CONSOLE_LEVELS.forEach(function (name) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (enabled) {\n consoleSandbox(function () {\n var _GLOBAL_OBJ$console;\n\n (_GLOBAL_OBJ$console = GLOBAL_OBJ.console)[name].apply(_GLOBAL_OBJ$console, [\"\".concat(PREFIX, \"[\").concat(name, \"]:\")].concat(args));\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(function (name) {\n logger[name] = function () {\n return undefined;\n };\n });\n }\n\n return logger;\n} // Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\n\n\nvar logger;\n\nif (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\n\nfunction uuid4() {\n var gbl = GLOBAL_OBJ;\n var crypto = gbl.crypto || gbl.msCrypto;\n\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n\n var getRandomByte = crypto && crypto.getRandomValues ? function () {\n return crypto.getRandomValues(new Uint8Array(1))[0];\n } : function () {\n return Math.random() * 16;\n }; // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n\n return ([1e7] + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, function (c) {\n return (// eslint-disable-next-line no-bitwise\n (c ^ (getRandomByte() & 15) >> c / 4).toString(16)\n );\n });\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\n\n\nfunction getEventDescription(event) {\n var message = event.message,\n eventId = event.event_id;\n\n if (message) {\n return message;\n }\n\n var firstException = getFirstException(event);\n\n if (firstException) {\n if (firstException.type && firstException.value) {\n return \"\".concat(firstException.type, \": \").concat(firstException.value);\n }\n\n return firstException.type || firstException.value || eventId || '';\n }\n\n return eventId || '';\n}\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\n\n\nfunction addExceptionTypeValue(event, value, type) {\n var exception = event.exception = event.exception || {};\n var values = exception.values = exception.values || [];\n var firstException = values[0] = values[0] || {};\n\n if (!firstException.value) {\n firstException.value = value || '';\n }\n\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\n\n\nfunction addExceptionMechanism(event, newMechanism) {\n var firstException = getFirstException(event);\n\n if (!firstException) {\n return;\n }\n\n var defaultMechanism = {\n type: 'generic',\n handled: true\n };\n var currentMechanism = firstException.mechanism;\n firstException.mechanism = _objectSpread(_objectSpread(_objectSpread({}, defaultMechanism), currentMechanism), newMechanism);\n\n if (newMechanism && 'data' in newMechanism) {\n var mergedData = _objectSpread(_objectSpread({}, currentMechanism && currentMechanism.data), newMechanism.data);\n\n firstException.mechanism.data = mergedData;\n }\n} // https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\n\n\nvar SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n/**\n * Represents Semantic Versioning object\n */\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\n\nfunction parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4]\n };\n}\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\n\n\nfunction addContextToFrame(lines, frame) {\n var linesOfContext = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5;\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n frame.pre_context = lines.slice(Math.max(0, sourceLine - linesOfContext), sourceLine).map(function (line) {\n return snipLine(line, 0);\n });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines.slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext).map(function (line) {\n return snipLine(line, 0);\n });\n}\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\n\n\nfunction checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && exception.__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception, '__sentry_captured__', true);\n } catch (err) {// `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n/**\n * Checks whether the given input is already an array, and if it isn't, wraps it in one.\n *\n * @param maybeArray Input to turn into an array, if necessary\n * @returns The input, if already an array, or an array with the input as the only element, if not\n */\n\n\nfunction arrayify(maybeArray) {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray];\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, arrayify, checkOrSetAlreadyCaught, getEventDescription, parseSemver, uuid4 };","import _toConsumableArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/createClass\";\nimport { logger, getEventDescription, isMatchingPattern } from '@sentry/utils'; // \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\n\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n/** Options for the InboundFilters integration */\n\n/** Inbound filters configurable by the user */\n\nvar InboundFilters = /*#__PURE__*/function () {\n function InboundFilters() {\n var _options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, InboundFilters);\n\n ;\n this._options = _options;\n\n InboundFilters.prototype.__init.call(this);\n }\n /**\n * @inheritDoc\n */\n\n\n _createClass(InboundFilters, [{\n key: \"__init\",\n value:\n /**\n * @inheritDoc\n */\n function __init() {\n this.name = InboundFilters.id;\n }\n }, {\n key: \"setupOnce\",\n value: function setupOnce(addGlobalEventProcessor, getCurrentHub) {\n var eventProcess = function eventProcess(event) {\n var hub = getCurrentHub();\n\n if (hub) {\n var self = hub.getIntegration(InboundFilters);\n\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n\n var options = _mergeOptions(self._options, clientOptions);\n\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n\n return event;\n };\n\n eventProcess.id = this.name;\n addGlobalEventProcessor(eventProcess);\n }\n }], [{\n key: \"__initStatic\",\n value:\n /**\n * @inheritDoc\n */\n function __initStatic() {\n this.id = 'InboundFilters';\n }\n }]);\n\n return InboundFilters;\n}();\n\nInboundFilters.__initStatic();\n/** JSDoc */\n\n\nfunction _mergeOptions() {\n var internalOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var clientOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return {\n allowUrls: [].concat(_toConsumableArray(internalOptions.allowUrls || []), _toConsumableArray(clientOptions.allowUrls || [])),\n denyUrls: [].concat(_toConsumableArray(internalOptions.denyUrls || []), _toConsumableArray(clientOptions.denyUrls || [])),\n ignoreErrors: [].concat(_toConsumableArray(internalOptions.ignoreErrors || []), _toConsumableArray(clientOptions.ignoreErrors || []), DEFAULT_IGNORE_ERRORS),\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true\n };\n}\n/** JSDoc */\n\n\nfunction _shouldDropEvent(event, options) {\n if (options.ignoreInternal && _isSentryError(event)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(\"Event dropped due to being internal Sentry Error.\\nEvent: \".concat(getEventDescription(event)));\n return true;\n }\n\n if (_isIgnoredError(event, options.ignoreErrors)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(\"Event dropped due to being matched by `ignoreErrors` option.\\nEvent: \".concat(getEventDescription(event)));\n return true;\n }\n\n if (_isDeniedUrl(event, options.denyUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(\"Event dropped due to being matched by `denyUrls` option.\\nEvent: \".concat(getEventDescription(event), \".\\nUrl: \").concat(_getEventFilterUrl(event)));\n return true;\n }\n\n if (!_isAllowedUrl(event, options.allowUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(\"Event dropped due to not being matched by `allowUrls` option.\\nEvent: \".concat(getEventDescription(event), \".\\nUrl: \").concat(_getEventFilterUrl(event)));\n return true;\n }\n\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n if (!ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(function (message) {\n return ignoreErrors.some(function (pattern) {\n return isMatchingPattern(message, pattern);\n });\n });\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n\n var url = _getEventFilterUrl(event);\n\n return !url ? false : denyUrls.some(function (pattern) {\n return isMatchingPattern(url, pattern);\n });\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n\n var url = _getEventFilterUrl(event);\n\n return !url ? true : allowUrls.some(function (pattern) {\n return isMatchingPattern(url, pattern);\n });\n}\n\nfunction _getPossibleEventMessages(event) {\n if (event.message) {\n return [event.message];\n }\n\n if (event.exception) {\n try {\n var _ref = event.exception.values && event.exception.values[0] || {},\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? '' : _ref$type,\n _ref$value = _ref.value,\n value = _ref$value === void 0 ? '' : _ref$value;\n\n return [\"\".concat(value), \"\".concat(type, \": \").concat(value)];\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(\"Cannot extract message for event \".concat(getEventDescription(event)));\n return [];\n }\n }\n\n return [];\n}\n\nfunction _isSentryError(event) {\n try {\n // @ts-ignore can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {// ignore\n }\n\n return false;\n}\n\nfunction _getLastValidUrl() {\n var frames = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n for (var i = frames.length - 1; i >= 0; i--) {\n var frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n var frames;\n\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {// ignore\n }\n\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(\"Cannot extract url for event \".concat(getEventDescription(event)));\n return null;\n }\n}\n\nexport { InboundFilters, _mergeOptions, _shouldDropEvent };","import _classCallCheck from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/createClass\";\nimport { isThenable } from './is.js';\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\n/** SyncPromise internal states */\n\nvar States;\n\n(function (States) {\n /** Pending */\n var PENDING = 0;\n States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n\n var RESOLVED = 1;\n States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n\n var REJECTED = 2;\n States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {})); // Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\n\n\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(function (resolve) {\n resolve(value);\n });\n}\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\n\n\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise(function (_, reject) {\n reject(reason);\n });\n}\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\n\n\nvar SyncPromise = /*#__PURE__*/function () {\n function SyncPromise(executor) {\n _classCallCheck(this, SyncPromise);\n\n ;\n\n SyncPromise.prototype.__init.call(this);\n\n SyncPromise.prototype.__init2.call(this);\n\n SyncPromise.prototype.__init3.call(this);\n\n SyncPromise.prototype.__init4.call(this);\n\n SyncPromise.prototype.__init5.call(this);\n\n SyncPromise.prototype.__init6.call(this);\n\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n /** JSDoc */\n\n\n _createClass(SyncPromise, [{\n key: \"__init\",\n value: function __init() {\n this._state = States.PENDING;\n }\n }, {\n key: \"__init2\",\n value: function __init2() {\n this._handlers = [];\n }\n }, {\n key: \"then\",\n value: function then(onfulfilled, onrejected) {\n var _this = this;\n\n return new SyncPromise(function (resolve, reject) {\n _this._handlers.push([false, function (result) {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n }, function (reason) {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n }]);\n\n _this._executeHandlers();\n });\n }\n /** JSDoc */\n\n }, {\n key: \"catch\",\n value: function _catch(onrejected) {\n return this.then(function (val) {\n return val;\n }, onrejected);\n }\n /** JSDoc */\n\n }, {\n key: \"finally\",\n value: function _finally(onfinally) {\n var _this2 = this;\n\n return new SyncPromise(function (resolve, reject) {\n var val;\n var isRejected;\n return _this2.then(function (value) {\n isRejected = false;\n val = value;\n\n if (onfinally) {\n onfinally();\n }\n }, function (reason) {\n isRejected = true;\n val = reason;\n\n if (onfinally) {\n onfinally();\n }\n }).then(function () {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val);\n });\n });\n }\n /** JSDoc */\n\n }, {\n key: \"__init3\",\n value: function __init3() {\n var _this3 = this;\n\n this._resolve = function (value) {\n _this3._setResult(States.RESOLVED, value);\n };\n }\n /** JSDoc */\n\n }, {\n key: \"__init4\",\n value: function __init4() {\n var _this4 = this;\n\n this._reject = function (reason) {\n _this4._setResult(States.REJECTED, reason);\n };\n }\n /** JSDoc */\n\n }, {\n key: \"__init5\",\n value: function __init5() {\n var _this5 = this;\n\n this._setResult = function (state, value) {\n if (_this5._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void value.then(_this5._resolve, _this5._reject);\n return;\n }\n\n _this5._state = state;\n _this5._value = value;\n\n _this5._executeHandlers();\n };\n }\n /** JSDoc */\n\n }, {\n key: \"__init6\",\n value: function __init6() {\n var _this6 = this;\n\n this._executeHandlers = function () {\n if (_this6._state === States.PENDING) {\n return;\n }\n\n var cachedHandlers = _this6._handlers.slice();\n\n _this6._handlers = [];\n cachedHandlers.forEach(function (handler) {\n if (handler[0]) {\n return;\n }\n\n if (_this6._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](_this6._value);\n }\n\n if (_this6._state === States.REJECTED) {\n handler[2](_this6._value);\n }\n\n handler[0] = true;\n });\n };\n }\n }]);\n\n return SyncPromise;\n}();\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };","import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\n\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n var startingTime = timestampInSeconds();\n var session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: function toJSON() {\n return sessionToJSON(session);\n }\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\n\n\nfunction updateSession(session) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n\n if (context.init !== undefined) {\n session.init = context.init;\n }\n\n if (!session.did && context.did) {\n session.did = \"\".concat(context.did);\n }\n\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n var duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n\n if (context.release) {\n session.release = context.release;\n }\n\n if (context.environment) {\n session.environment = context.environment;\n }\n\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n\n if (context.status) {\n session.status = context.status;\n }\n}\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\n\n\nfunction closeSession(session, status) {\n var context = {};\n\n if (status) {\n context = {\n status: status\n };\n } else if (session.status === 'ok') {\n context = {\n status: 'exited'\n };\n }\n\n updateSession(session, context);\n}\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\n\n\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: \"\".concat(session.sid),\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? \"\".concat(session.did) : undefined,\n duration: session.duration,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent\n }\n });\n}\n\nexport { closeSession, makeSession, updateSession };","import _toConsumableArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/createClass\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { isPlainObject, dateTimestampInSeconds, SyncPromise, logger, isThenable, arrayify, getGlobalSingleton } from '@sentry/utils';\nimport { updateSession } from './session.js';\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\n\nvar DEFAULT_MAX_BREADCRUMBS = 100;\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\n\nvar Scope = /*#__PURE__*/function () {\n /** Flag if notifying is happening. */\n\n /** Callback for client to receive scope changes. */\n\n /** Callback list that will be called after {@link applyToEvent}. */\n\n /** Array of breadcrumbs. */\n\n /** User */\n\n /** Tags */\n\n /** Extra */\n\n /** Contexts */\n\n /** Attachments */\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n\n /** Fingerprint */\n\n /** Severity */\n // eslint-disable-next-line deprecation/deprecation\n\n /** Transaction Name */\n\n /** Span */\n\n /** Session */\n\n /** Request Mode Session Status */\n function Scope() {\n _classCallCheck(this, Scope);\n\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n }\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n\n\n _createClass(Scope, [{\n key: \"addScopeListener\",\n value:\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n function addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"addEventProcessor\",\n value: function addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setUser\",\n value: function setUser(user) {\n this._user = user || {};\n\n if (this._session) {\n updateSession(this._session, {\n user: user\n });\n }\n\n this._notifyScopeListeners();\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"getUser\",\n value: function getUser() {\n return this._user;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"getRequestSession\",\n value: function getRequestSession() {\n return this._requestSession;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setRequestSession\",\n value: function setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setTags\",\n value: function setTags(tags) {\n this._tags = _objectSpread(_objectSpread({}, this._tags), tags);\n\n this._notifyScopeListeners();\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setTag\",\n value: function setTag(key, value) {\n this._tags = _objectSpread(_objectSpread({}, this._tags), {}, _defineProperty({}, key, value));\n\n this._notifyScopeListeners();\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setExtras\",\n value: function setExtras(extras) {\n this._extra = _objectSpread(_objectSpread({}, this._extra), extras);\n\n this._notifyScopeListeners();\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setExtra\",\n value: function setExtra(key, extra) {\n this._extra = _objectSpread(_objectSpread({}, this._extra), {}, _defineProperty({}, key, extra));\n\n this._notifyScopeListeners();\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setFingerprint\",\n value: function setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n\n this._notifyScopeListeners();\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setLevel\",\n value: function setLevel( // eslint-disable-next-line deprecation/deprecation\n level) {\n this._level = level;\n\n this._notifyScopeListeners();\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setTransactionName\",\n value: function setTransactionName(name) {\n this._transactionName = name;\n\n this._notifyScopeListeners();\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setContext\",\n value: function setContext(key, context) {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts = _objectSpread(_objectSpread({}, this._contexts), {}, _defineProperty({}, key, context));\n }\n\n this._notifyScopeListeners();\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setSpan\",\n value: function setSpan(span) {\n this._span = span;\n\n this._notifyScopeListeners();\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"getSpan\",\n value: function getSpan() {\n return this._span;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"getTransaction\",\n value: function getTransaction() {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n var span = this.getSpan();\n return span && span.transaction;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setSession\",\n value: function setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n\n this._notifyScopeListeners();\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"getSession\",\n value: function getSession() {\n return this._session;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"update\",\n value: function update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n var updatedScope = captureContext(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = _objectSpread(_objectSpread({}, this._tags), captureContext._tags);\n this._extra = _objectSpread(_objectSpread({}, this._extra), captureContext._extra);\n this._contexts = _objectSpread(_objectSpread({}, this._contexts), captureContext._contexts);\n\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext;\n this._tags = _objectSpread(_objectSpread({}, this._tags), captureContext.tags);\n this._extra = _objectSpread(_objectSpread({}, this._extra), captureContext.extra);\n this._contexts = _objectSpread(_objectSpread({}, this._contexts), captureContext.contexts);\n\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"clear\",\n value: function clear() {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n\n this._notifyScopeListeners();\n\n this._attachments = [];\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"addBreadcrumb\",\n value: function addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n var maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS; // No data has been changed, so don't notify scope listeners\n\n if (maxCrumbs <= 0) {\n return this;\n }\n\n var mergedBreadcrumb = _objectSpread({\n timestamp: dateTimestampInSeconds()\n }, breadcrumb);\n\n this._breadcrumbs = [].concat(_toConsumableArray(this._breadcrumbs), [mergedBreadcrumb]).slice(-maxCrumbs);\n\n this._notifyScopeListeners();\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"clearBreadcrumbs\",\n value: function clearBreadcrumbs() {\n this._breadcrumbs = [];\n\n this._notifyScopeListeners();\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"addAttachment\",\n value: function addAttachment(attachment) {\n this._attachments.push(attachment);\n\n return this;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"getAttachments\",\n value: function getAttachments() {\n return this._attachments;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"clearAttachments\",\n value: function clearAttachments() {\n this._attachments = [];\n return this;\n }\n /**\n * Applies data from the scope to the event and runs all event processors on it.\n *\n * @param event Event\n * @param hint Object containing additional information about the original exception, for use by the event processors.\n * @hidden\n */\n\n }, {\n key: \"applyToEvent\",\n value: function applyToEvent(event) {\n var hint = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = _objectSpread(_objectSpread({}, this._extra), event.extra);\n }\n\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = _objectSpread(_objectSpread({}, this._tags), event.tags);\n }\n\n if (this._user && Object.keys(this._user).length) {\n event.user = _objectSpread(_objectSpread({}, this._user), event.user);\n }\n\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = _objectSpread(_objectSpread({}, this._contexts), event.contexts);\n }\n\n if (this._level) {\n event.level = this._level;\n }\n\n if (this._transactionName) {\n event.transaction = this._transactionName;\n } // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n\n\n if (this._span) {\n event.contexts = _objectSpread({\n trace: this._span.getTraceContext()\n }, event.contexts);\n var transactionName = this._span.transaction && this._span.transaction.name;\n\n if (transactionName) {\n event.tags = _objectSpread({\n transaction: transactionName\n }, event.tags);\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [].concat(_toConsumableArray(event.breadcrumbs || []), _toConsumableArray(this._breadcrumbs));\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n event.sdkProcessingMetadata = _objectSpread(_objectSpread({}, event.sdkProcessingMetadata), this._sdkProcessingMetadata);\n return this._notifyEventProcessors([].concat(_toConsumableArray(getGlobalEventProcessors()), _toConsumableArray(this._eventProcessors)), event, hint);\n }\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n\n }, {\n key: \"setSDKProcessingMetadata\",\n value: function setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = _objectSpread(_objectSpread({}, this._sdkProcessingMetadata), newData);\n return this;\n }\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n\n }, {\n key: \"_notifyEventProcessors\",\n value: function _notifyEventProcessors(processors, event, hint) {\n var _this = this;\n\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n return new SyncPromise(function (resolve, reject) {\n var processor = processors[index];\n\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n var result = processor(_objectSpread({}, event), hint);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && processor.id && result === null && logger.log(\"Event processor \\\"\".concat(processor.id, \"\\\" dropped event\"));\n\n if (isThenable(result)) {\n void result.then(function (final) {\n return _this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve);\n }).then(null, reject);\n } else {\n void _this._notifyEventProcessors(processors, result, hint, index + 1).then(resolve).then(null, reject);\n }\n }\n });\n }\n /**\n * This will be called on every set call.\n */\n\n }, {\n key: \"_notifyScopeListeners\",\n value: function _notifyScopeListeners() {\n var _this2 = this;\n\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n\n this._scopeListeners.forEach(function (callback) {\n callback(_this2);\n });\n\n this._notifyingListeners = false;\n }\n }\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n\n }, {\n key: \"_applyFingerprint\",\n value: function _applyFingerprint(event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint ? arrayify(event.fingerprint) : []; // If we have something on the scope, then merge it with event\n\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n } // If we have no data at all, remove empty array default\n\n\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n }], [{\n key: \"clone\",\n value: function clone(scope) {\n var newScope = new Scope();\n\n if (scope) {\n newScope._breadcrumbs = _toConsumableArray(scope._breadcrumbs);\n newScope._tags = _objectSpread({}, scope._tags);\n newScope._extra = _objectSpread({}, scope._extra);\n newScope._contexts = _objectSpread({}, scope._contexts);\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = _toConsumableArray(scope._eventProcessors);\n newScope._requestSession = scope._requestSession;\n newScope._attachments = _toConsumableArray(scope._attachments);\n }\n\n return newScope;\n }\n }]);\n\n return Scope;\n}();\n/**\n * Returns the global event processors.\n */\n\n\nfunction getGlobalEventProcessors() {\n return getGlobalSingleton('globalEventProcessors', function () {\n return [];\n });\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\n\n\nfunction addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n\nexport { Scope, addGlobalEventProcessor };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/createClass\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { uuid4, dateTimestampInSeconds, consoleSandbox, logger, GLOBAL_OBJ, isNodeEnv, getGlobalSingleton } from '@sentry/utils';\nimport { Scope } from './scope.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\n\nvar API_VERSION = 4;\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\n\nvar DEFAULT_BREADCRUMBS = 100;\n/**\n * A layer in the process stack.\n * @hidden\n */\n\n/**\n * @inheritDoc\n */\n\nvar Hub = /*#__PURE__*/function () {\n /** Contains the last event id of a captured event. */\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n function Hub(client) {\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Scope();\n\n var _version = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : API_VERSION;\n\n _classCallCheck(this, Hub);\n\n ;\n this._version = _version;\n\n Hub.prototype.__init.call(this);\n\n this.getStackTop().scope = scope;\n\n if (client) {\n this.bindClient(client);\n }\n }\n /**\n * @inheritDoc\n */\n\n\n _createClass(Hub, [{\n key: \"__init\",\n value:\n /** Is a {@link Layer}[] containing the client and scope */\n function __init() {\n this._stack = [{}];\n }\n }, {\n key: \"isOlderThan\",\n value: function isOlderThan(version) {\n return this._version < version;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"bindClient\",\n value: function bindClient(client) {\n var top = this.getStackTop();\n top.client = client;\n\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"pushScope\",\n value: function pushScope() {\n // We want to clone the content of prev scope\n var scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope: scope\n });\n return scope;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"popScope\",\n value: function popScope() {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"withScope\",\n value: function withScope(callback) {\n var scope = this.pushScope();\n\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"getClient\",\n value: function getClient() {\n return this.getStackTop().client;\n }\n /** Returns the scope of the top stack. */\n\n }, {\n key: \"getScope\",\n value: function getScope() {\n return this.getStackTop().scope;\n }\n /** Returns the scope stack for domains or the process. */\n\n }, {\n key: \"getStack\",\n value: function getStack() {\n return this._stack;\n }\n /** Returns the topmost scope layer in the order domain > local > process. */\n\n }, {\n key: \"getStackTop\",\n value: function getStackTop() {\n return this._stack[this._stack.length - 1];\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n }, {\n key: \"captureException\",\n value: function captureException(exception, hint) {\n var eventId = this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4();\n var syntheticException = new Error('Sentry syntheticException');\n\n this._withClient(function (client, scope) {\n client.captureException(exception, _objectSpread(_objectSpread({\n originalException: exception,\n syntheticException: syntheticException\n }, hint), {}, {\n event_id: eventId\n }), scope);\n });\n\n return eventId;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"captureMessage\",\n value: function captureMessage(message, // eslint-disable-next-line deprecation/deprecation\n level, hint) {\n var eventId = this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4();\n var syntheticException = new Error(message);\n\n this._withClient(function (client, scope) {\n client.captureMessage(message, level, _objectSpread(_objectSpread({\n originalException: message,\n syntheticException: syntheticException\n }, hint), {}, {\n event_id: eventId\n }), scope);\n });\n\n return eventId;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"captureEvent\",\n value: function captureEvent(event, hint) {\n var eventId = hint && hint.event_id ? hint.event_id : uuid4();\n\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n\n this._withClient(function (client, scope) {\n client.captureEvent(event, _objectSpread(_objectSpread({}, hint), {}, {\n event_id: eventId\n }), scope);\n });\n\n return eventId;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"lastEventId\",\n value: function lastEventId() {\n return this._lastEventId;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"addBreadcrumb\",\n value: function addBreadcrumb(breadcrumb, hint) {\n var _this$getStackTop = this.getStackTop(),\n scope = _this$getStackTop.scope,\n client = _this$getStackTop.client;\n\n if (!scope || !client) return; // eslint-disable-next-line @typescript-eslint/unbound-method\n\n var _ref = client.getOptions && client.getOptions() || {},\n _ref$beforeBreadcrumb = _ref.beforeBreadcrumb,\n beforeBreadcrumb = _ref$beforeBreadcrumb === void 0 ? null : _ref$beforeBreadcrumb,\n _ref$maxBreadcrumbs = _ref.maxBreadcrumbs,\n maxBreadcrumbs = _ref$maxBreadcrumbs === void 0 ? DEFAULT_BREADCRUMBS : _ref$maxBreadcrumbs;\n\n if (maxBreadcrumbs <= 0) return;\n var timestamp = dateTimestampInSeconds();\n\n var mergedBreadcrumb = _objectSpread({\n timestamp: timestamp\n }, breadcrumb);\n\n var finalBreadcrumb = beforeBreadcrumb ? consoleSandbox(function () {\n return beforeBreadcrumb(mergedBreadcrumb, hint);\n }) : mergedBreadcrumb;\n if (finalBreadcrumb === null) return;\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setUser\",\n value: function setUser(user) {\n var scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setTags\",\n value: function setTags(tags) {\n var scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setExtras\",\n value: function setExtras(extras) {\n var scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setTag\",\n value: function setTag(key, value) {\n var scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setExtra\",\n value: function setExtra(key, extra) {\n var scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n }, {\n key: \"setContext\",\n value: function setContext(name, context) {\n var scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"configureScope\",\n value: function configureScope(callback) {\n var _this$getStackTop2 = this.getStackTop(),\n scope = _this$getStackTop2.scope,\n client = _this$getStackTop2.client;\n\n if (scope && client) {\n callback(scope);\n }\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"run\",\n value: function run(callback) {\n var oldHub = makeMain(this);\n\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"getIntegration\",\n value: function getIntegration(integration) {\n var client = this.getClient();\n if (!client) return null;\n\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(\"Cannot retrieve integration \".concat(integration.id, \" from the current Hub\"));\n return null;\n }\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"startTransaction\",\n value: function startTransaction(context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"traceHeaders\",\n value: function traceHeaders() {\n return this._callExtensionMethod('traceHeaders');\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"captureSession\",\n value: function captureSession() {\n var endSession = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n } // only send the update\n\n\n this._sendSessionUpdate();\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"endSession\",\n value: function endSession() {\n var layer = this.getStackTop();\n var scope = layer && layer.scope;\n var session = scope && scope.getSession();\n\n if (session) {\n closeSession(session);\n }\n\n this._sendSessionUpdate(); // the session is over; take it off of the scope\n\n\n if (scope) {\n scope.setSession();\n }\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"startSession\",\n value: function startSession(context) {\n var _this$getStackTop3 = this.getStackTop(),\n scope = _this$getStackTop3.scope,\n client = _this$getStackTop3.client;\n\n var _ref2 = client && client.getOptions() || {},\n release = _ref2.release,\n environment = _ref2.environment; // Will fetch userAgent if called from browser sdk\n\n\n var _ref3 = GLOBAL_OBJ.navigator || {},\n userAgent = _ref3.userAgent;\n\n var session = makeSession(_objectSpread(_objectSpread(_objectSpread({\n release: release,\n environment: environment\n }, scope && {\n user: scope.getUser()\n }), userAgent && {\n userAgent: userAgent\n }), context));\n\n if (scope) {\n // End existing session if there's one\n var currentSession = scope.getSession && scope.getSession();\n\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, {\n status: 'exited'\n });\n }\n\n this.endSession(); // Afterwards we set the new session on the scope\n\n scope.setSession(session);\n }\n\n return session;\n }\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n */\n\n }, {\n key: \"shouldSendDefaultPii\",\n value: function shouldSendDefaultPii() {\n var client = this.getClient();\n var options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n /**\n * Sends the current Session on the scope\n */\n\n }, {\n key: \"_sendSessionUpdate\",\n value: function _sendSessionUpdate() {\n var _this$getStackTop4 = this.getStackTop(),\n scope = _this$getStackTop4.scope,\n client = _this$getStackTop4.client;\n\n if (!scope) return;\n var session = scope.getSession();\n\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n\n }, {\n key: \"_withClient\",\n value: function _withClient(callback) {\n var _this$getStackTop5 = this.getStackTop(),\n scope = _this$getStackTop5.scope,\n client = _this$getStackTop5.client;\n\n if (client) {\n callback(client, scope);\n }\n }\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n }, {\n key: \"_callExtensionMethod\",\n value: function _callExtensionMethod(method) {\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return sentry.extensions[method].apply(this, args);\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(\"Extension method \".concat(method, \" couldn't be found, doing nothing.\"));\n }\n }]);\n\n return Hub;\n}();\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\n\n\nfunction getMainCarrier() {\n GLOBAL_OBJ.__SENTRY__ = GLOBAL_OBJ.__SENTRY__ || {\n extensions: {},\n hub: undefined\n };\n return GLOBAL_OBJ;\n}\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\n\n\nfunction makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\n\n\nfunction getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier(); // If there's no hub, or its an old API, assign a new one\n\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n } // Prefer domains over global if they are there (applicable only to Node environment)\n\n\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n } // Return hub that lives on a global object\n\n\n return getHubFromCarrier(registry);\n}\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\n\n\nfunction getHubFromActiveDomain(registry) {\n try {\n var sentry = getMainCarrier().__SENTRY__;\n\n var activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active; // If there's no active domain, just return global hub\n\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n } // If there's no hub on current domain, or it's an old API, assign a new one\n\n\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n } // Return hub that lives on a domain\n\n\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\n\n\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\n\n\nfunction getHubFromCarrier(carrier) {\n return getGlobalSingleton('hub', function () {\n return new Hub();\n }, carrier);\n}\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\n\n\nfunction setHubOnCarrier(carrier, hub) {\n if (!carrier) return false;\n\n var __SENTRY__ = carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n\n __SENTRY__.hub = hub;\n return true;\n}\n\nexport { API_VERSION, Hub, getCurrentHub, getHubFromCarrier, getMainCarrier, makeMain, setHubOnCarrier };","var SDK_VERSION = '7.18.0';\nexport { SDK_VERSION };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { getCurrentHub } from './hub.js'; // Note: All functions in this file are typed with a return value of `ReturnType`,\n// where HUB_FUNCTION is some method on the Hub class.\n//\n// This is done to make sure the top level SDK methods stay in sync with the hub methods.\n// Although every method here has an explicit return type, some of them (that map to void returns) do not\n// contain `return` keywords. This is done to save on bundle size, as `return` is not minifiable.\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @param captureContext Additional scope data to apply to exception event.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\nfunction captureException(exception, captureContext) {\n return getCurrentHub().captureException(exception, {\n captureContext: captureContext\n });\n}\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\n\n\nfunction captureMessage(message, // eslint-disable-next-line deprecation/deprecation\ncaptureContext) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? {\n captureContext: captureContext\n } : undefined;\n return getCurrentHub().captureMessage(message, level, context);\n}\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\n\n\nfunction captureEvent(event, hint) {\n return getCurrentHub().captureEvent(event, hint);\n}\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\n\n\nfunction configureScope(callback) {\n getCurrentHub().configureScope(callback);\n}\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\n\n\nfunction addBreadcrumb(breadcrumb) {\n getCurrentHub().addBreadcrumb(breadcrumb);\n}\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction setContext(name, context) {\n getCurrentHub().setContext(name, context);\n}\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\n\n\nfunction setExtras(extras) {\n getCurrentHub().setExtras(extras);\n}\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\n\n\nfunction setExtra(key, extra) {\n getCurrentHub().setExtra(key, extra);\n}\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\n\n\nfunction setTags(tags) {\n getCurrentHub().setTags(tags);\n}\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\n\n\nfunction setTag(key, value) {\n getCurrentHub().setTag(key, value);\n}\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\n\n\nfunction setUser(user) {\n getCurrentHub().setUser(user);\n}\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\n\n\nfunction withScope(callback) {\n getCurrentHub().withScope(callback);\n}\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * NOTE: This function should only be used for *manual* instrumentation. Auto-instrumentation should call\n * `startTransaction` directly on the hub.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\n\n\nfunction startTransaction(context, customSamplingContext) {\n return getCurrentHub().startTransaction(_objectSpread({}, context), customSamplingContext);\n}\n\nexport { addBreadcrumb, captureEvent, captureException, captureMessage, configureScope, setContext, setExtra, setExtras, setTag, setTags, setUser, startTransaction, withScope };","import _classCallCheck from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _assertThisInitialized from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _wrapNativeSuper from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n/** An error emitted by Sentry SDKs and related utilities. */\nvar SentryError = /*#__PURE__*/function (_Error) {\n _inherits(SentryError, _Error);\n\n var _super = _createSuper(SentryError);\n\n /** Display name of this error instance. */\n function SentryError(message) {\n var _this;\n\n var logLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'warn';\n\n _classCallCheck(this, SentryError);\n\n _this = _super.call(this, message);\n _this.message = message;\n ;\n _this.name = (this instanceof SentryError ? this.constructor : void 0).prototype.constructor.name; // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n\n Object.setPrototypeOf(_assertThisInitialized(_this), (this instanceof SentryError ? this.constructor : void 0).prototype);\n _this.logLevel = logLevel;\n return _this;\n }\n\n return SentryError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport { SentryError };","import { SentryError } from './error.js';\nimport { rejectedSyncPromise, SyncPromise, resolvedSyncPromise } from './syncpromise.js';\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\n\nfunction makePromiseBuffer(limit) {\n var buffer = [];\n\n function isReady() {\n return limit === undefined || buffer.length < limit;\n }\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n\n\n function remove(task) {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n\n\n function add(taskProducer) {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise because buffer limit was reached.'));\n } // start the task and add its promise to the queue\n\n\n var task = taskProducer();\n\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n\n void task.then(function () {\n return remove(task);\n }) // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, function () {\n return remove(task).then(null, function () {// We have to add another catch here because `remove()` starts a new promise chain.\n });\n });\n return task;\n }\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n\n\n function drain(timeout) {\n return new SyncPromise(function (resolve, reject) {\n var counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n } // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n\n\n var capturedSetTimeout = setTimeout(function () {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout); // if all promises resolve in time, cancel the timer and resolve to `true`\n\n buffer.forEach(function (item) {\n void resolvedSyncPromise(item).then(function () {\n // eslint-disable-next-line no-plusplus\n if (! --counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add: add,\n drain: drain\n };\n}\n\nexport { makePromiseBuffer };","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n var hasWeakSet = typeof WeakSet === 'function';\n var inner = hasWeakSet ? new WeakSet() : [];\n\n function memoize(obj) {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n\n inner.add(obj);\n return false;\n } // eslint-disable-next-line @typescript-eslint/prefer-for-of\n\n\n for (var i = 0; i < inner.length; i++) {\n var value = inner[i];\n\n if (value === obj) {\n return true;\n }\n }\n\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj) {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (var i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n\n return [memoize, unmemoize];\n}\n\nexport { memoBuilder };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { _optionalChain } from './buildPolyfills';\nvar STACKTRACE_LIMIT = 50;\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\n\nfunction createStackParser() {\n for (var _len = arguments.length, parsers = new Array(_len), _key = 0; _key < _len; _key++) {\n parsers[_key] = arguments[_key];\n }\n\n var sortedParsers = parsers.sort(function (a, b) {\n return a[0] - b[0];\n }).map(function (p) {\n return p[1];\n });\n return function (stack) {\n var skipFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var frames = [];\n\n var _iterator = _createForOfIteratorHelper(stack.split('\\n').slice(skipFirst)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var line = _step.value;\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n var cleanedLine = line.replace(/\\(error: (.*)\\)/, '$1');\n\n var _iterator2 = _createForOfIteratorHelper(sortedParsers),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var parser = _step2.value;\n var frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\n\n\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser.apply(void 0, _toConsumableArray(stackParser));\n }\n\n return stackParser;\n}\n/**\n * @hidden\n */\n\n\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n\n var localStack = stack;\n var firstFrameFunction = localStack[0].function || '';\n var lastFrameFunction = localStack[localStack.length - 1].function || ''; // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n } // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n\n\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n } // The frame where the crash happened, should be the last entry in the array\n\n\n return localStack.slice(0, STACKTRACE_LIMIT).map(function (frame) {\n return _objectSpread(_objectSpread({}, frame), {}, {\n filename: frame.filename || localStack[0].filename,\n function: frame.function || '?'\n });\n }).reverse();\n}\n\nvar defaultFunctionName = '';\n/**\n * Safely extract function name from itself\n */\n\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n} // eslint-disable-next-line complexity\n\n\nfunction node(getModule) {\n var FILENAME_MATCH = /^\\s*[-]{4,}$/;\n var FULL_MATCH = /at (?:async )?(?:(.+?)\\s+\\()?(?:(.+):(\\d+):(\\d+)?|([^)]+))\\)?/; // eslint-disable-next-line complexity\n\n return function (line) {\n if (line.match(FILENAME_MATCH)) {\n return {\n filename: line\n };\n }\n\n var lineMatch = line.match(FULL_MATCH);\n\n if (!lineMatch) {\n return undefined;\n }\n\n var object;\n var method;\n var functionName;\n var typeName;\n var methodName;\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n var methodStart = functionName.lastIndexOf('.');\n\n if (functionName[methodStart - 1] === '.') {\n // eslint-disable-next-line no-plusplus\n methodStart--;\n }\n\n if (methodStart > 0) {\n object = functionName.substr(0, methodStart);\n method = functionName.substr(methodStart + 1);\n var objectEnd = object.indexOf('.Module');\n\n if (objectEnd > 0) {\n functionName = functionName.substr(objectEnd + 1);\n object = object.substr(0, objectEnd);\n }\n }\n\n typeName = undefined;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '') {\n methodName = undefined;\n functionName = undefined;\n }\n\n if (functionName === undefined) {\n methodName = methodName || '';\n functionName = typeName ? \"\".concat(typeName, \".\").concat(methodName) : methodName;\n }\n\n var filename = _optionalChain([lineMatch, 'access', function (_) {\n return _[2];\n }, 'optionalAccess', function (_2) {\n return _2.startsWith;\n }, 'call', function (_3) {\n return _3('file://');\n }]) ? lineMatch[2].substr(7) : lineMatch[2];\n var isNative = lineMatch[5] === 'native';\n var isInternal = isNative || filename && !filename.startsWith('/') && !filename.startsWith('.') && filename.indexOf(':\\\\') !== 1; // in_app is all that's not an internal Node function or a module within node_modules\n // note that isNative appears to return true even for node core libraries\n // see https://github.com/getsentry/raven-node/issues/176\n\n var in_app = !isInternal && filename !== undefined && !filename.includes('node_modules/');\n return {\n filename: filename,\n module: _optionalChain([getModule, 'optionalCall', function (_4) {\n return _4(filename);\n }]),\n function: functionName,\n lineno: parseInt(lineMatch[3], 10) || undefined,\n colno: parseInt(lineMatch[4], 10) || undefined,\n in_app: in_app\n };\n };\n}\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\n\n\nfunction nodeStackLineParser(getModule) {\n return [90, node(getModule)];\n}\n\nexport { createStackParser, getFunctionName, nodeStackLineParser, stackParserFromStackParserOptions, stripSentryFramesAndReverse };","import _slicedToArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport { isNaN, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nfunction normalize(input) {\n var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : +Infinity;\n var maxProperties = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : +Infinity;\n\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return {\n ERROR: \"**non-serializable** (\".concat(err, \")\")\n };\n }\n}\n/** JSDoc */\n\n\nfunction normalizeToSize( // eslint-disable-next-line @typescript-eslint/no-explicit-any\nobject) {\n var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;\n var maxSize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100 * 1024;\n var normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized;\n}\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\n\n\nfunction visit(key, value) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : +Infinity;\n var maxProperties = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : +Infinity;\n var memo = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : memoBuilder();\n\n var _memo = _slicedToArray(memo, 2),\n memoize = _memo[0],\n unmemoize = _memo[1]; // Get the simple cases out of the way first\n\n\n if (value === null || ['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value)) {\n return value;\n }\n\n var stringified = stringifyValue(key, value); // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n\n if (!stringified.startsWith('[object ')) {\n return stringified;\n } // From here on, we can assert that `value` is either an object or an array.\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n\n\n if (value['__sentry_skip_normalization__']) {\n return value;\n } // We're also done if we've reached the max depth\n\n\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n } // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n\n\n if (memoize(value)) {\n return '[Circular ~]';\n } // If the value has a `toJSON` method, we call it to extract more information\n\n\n var valueWithToJSON = value;\n\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n var jsonValue = valueWithToJSON.toJSON(); // We need to normalize the return value of `.toJSON()` in case it has circular references\n\n return visit('', jsonValue, depth - 1, maxProperties, memo);\n } catch (err) {// pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n } // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n\n\n var normalized = Array.isArray(value) ? [] : {};\n var numAdded = 0; // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n\n var visitable = convertToPlainObject(value);\n\n for (var visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n } // Recursively visit all the child nodes\n\n\n var visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n numAdded += 1;\n } // Once we've visited all the branches, remove the parent from memo storage\n\n\n unmemoize(value); // Return accumulated values\n\n return normalized;\n}\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\n\n\nfunction stringifyValue(key, // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n// our internal use, it'll do\nvalue) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && value._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n } // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n } // eslint-disable-next-line no-restricted-globals\n\n\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n } // eslint-disable-next-line no-restricted-globals\n\n\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n } // React's SyntheticEvent thingy\n\n\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n } // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n\n\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return \"[Function: \".concat(getFunctionName(value), \"]\");\n }\n\n if (typeof value === 'symbol') {\n return \"[\".concat(String(value), \"]\");\n } // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n\n\n if (typeof value === 'bigint') {\n return \"[BigInt: \".concat(String(value), \"]\");\n } // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n\n\n return \"[object \".concat(Object.getPrototypeOf(value).constructor.name, \"]\");\n } catch (err) {\n return \"**non-serializable** (\".concat(err, \")\");\n }\n}\n/** Calculates bytes size of input string */\n\n\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\nexport { normalize, normalizeToSize, visit as walk };","import _toConsumableArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { normalize } from './normalize.js';\nimport { dropUndefinedKeys } from './object.js';\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\n\nfunction createEnvelope(headers) {\n var items = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return [headers, items];\n}\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\n\n\nfunction addItemToEnvelope(envelope, newItem) {\n var _envelope = _slicedToArray(envelope, 2),\n headers = _envelope[0],\n items = _envelope[1];\n\n return [headers, [].concat(_toConsumableArray(items), [newItem])];\n}\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n */\n\n\nfunction forEachEnvelopeItem(envelope, callback) {\n var envelopeItems = envelope[1];\n envelopeItems.forEach(function (envelopeItem) {\n var envelopeItemType = envelopeItem[0].type;\n callback(envelopeItem, envelopeItemType);\n });\n}\n\nfunction encodeUTF8(input, textEncoder) {\n var utf8 = textEncoder || new TextEncoder();\n return utf8.encode(input);\n}\n/**\n * Serializes an envelope.\n */\n\n\nfunction serializeEnvelope(envelope, textEncoder) {\n var _envelope2 = _slicedToArray(envelope, 2),\n envHeaders = _envelope2[0],\n items = _envelope2[1]; // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n\n\n var parts = JSON.stringify(envHeaders);\n\n function append(next) {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);\n }\n }\n\n var _iterator = _createForOfIteratorHelper(items),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n\n var _item = _slicedToArray(item, 2),\n itemHeaders = _item[0],\n payload = _item[1];\n\n append(\"\\n\".concat(JSON.stringify(itemHeaders), \"\\n\"));\n\n if (typeof payload === 'string' || payload instanceof Uint8Array) {\n append(payload);\n } else {\n var stringifiedPayload = void 0;\n\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch (e) {\n // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.strinify()` still\n // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n // performance impact but in this case a performance hit is better than throwing.\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n\n append(stringifiedPayload);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n var totalLength = buffers.reduce(function (acc, buf) {\n return acc + buf.length;\n }, 0);\n var merged = new Uint8Array(totalLength);\n var offset = 0;\n\n var _iterator2 = _createForOfIteratorHelper(buffers),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var buffer = _step2.value;\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return merged;\n}\n/**\n * Creates attachment envelope items\n */\n\n\nfunction createAttachmentEnvelopeItem(attachment, textEncoder) {\n var buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;\n return [dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType\n }), buffer];\n}\n\nvar ITEM_TYPE_TO_DATA_CATEGORY_MAP = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default'\n};\n/**\n * Maps the type of an envelope item to a data category.\n */\n\nfunction envelopeItemTypeToDataCategory(type) {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, envelopeItemTypeToDataCategory, forEachEnvelopeItem, serializeEnvelope };","import _slicedToArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\nvar DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\n\nfunction parseRetryAfterHeader(header) {\n var now = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Date.now();\n var headerDelay = parseInt(\"\".concat(header), 10);\n\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n var headerDate = Date.parse(\"\".concat(header));\n\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\n\n\nfunction disabledUntil(limits, category) {\n return limits[category] || limits.all || 0;\n}\n/**\n * Checks if a category is rate limited\n */\n\n\nfunction isRateLimited(limits, category) {\n var now = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Date.now();\n return disabledUntil(limits, category) > now;\n}\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\n\n\nfunction updateRateLimits(limits, _ref) {\n var statusCode = _ref.statusCode,\n headers = _ref.headers;\n var now = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Date.now();\n\n var updatedRateLimits = _objectSpread({}, limits); // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n\n\n var rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n var retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
,
,..\n * where each
is of the form\n * : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n var _iterator = _createForOfIteratorHelper(rateLimitHeader.trim().split(',')),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var limit = _step.value;\n\n var _limit$split = limit.split(':', 2),\n _limit$split2 = _slicedToArray(_limit$split, 2),\n retryAfter = _limit$split2[0],\n categories = _limit$split2[1];\n\n var headerDelay = parseInt(retryAfter, 10);\n var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n var _iterator2 = _createForOfIteratorHelper(categories.split(';')),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var category = _step2.value;\n updatedRateLimits[category] = now + delay;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };","import { forEachEnvelopeItem, envelopeItemTypeToDataCategory, isRateLimited, resolvedSyncPromise, createEnvelope, serializeEnvelope, logger, updateRateLimits, SentryError, makePromiseBuffer } from '@sentry/utils';\nvar DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\n\nfunction createTransport(options, makeRequest) {\n var buffer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE);\n var rateLimits = {};\n\n var flush = function flush(timeout) {\n return buffer.drain(timeout);\n };\n\n function send(envelope) {\n var filteredEnvelopeItems = []; // Drop rate limited items from envelope\n\n forEachEnvelopeItem(envelope, function (item, type) {\n var envelopeItemDataCategory = envelopeItemTypeToDataCategory(type);\n\n if (isRateLimited(rateLimits, envelopeItemDataCategory)) {\n options.recordDroppedEvent('ratelimit_backoff', envelopeItemDataCategory);\n } else {\n filteredEnvelopeItems.push(item);\n }\n }); // Skip sending if envelope is empty after filtering out rate limited events\n\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise();\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n var filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems); // Creates client report for each item in an envelope\n\n var recordEnvelopeLoss = function recordEnvelopeLoss(reason) {\n forEachEnvelopeItem(filteredEnvelope, function (_, type) {\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n });\n };\n\n var requestTask = function requestTask() {\n return makeRequest({\n body: serializeEnvelope(filteredEnvelope, options.textEncoder)\n }).then(function (response) {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(\"Sentry responded with status code \".concat(response.statusCode, \" to sent event.\"));\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n }, function (error) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Failed while sending event:', error);\n recordEnvelopeLoss('network_error');\n });\n };\n\n return buffer.add(requestTask).then(function (result) {\n return result;\n }, function (error) {\n if (error instanceof SentryError) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise();\n } else {\n throw error;\n }\n });\n }\n\n return {\n send: send,\n flush: flush\n };\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { withScope, captureException } from '@sentry/core';\nimport { GLOBAL_OBJ, getOriginalFunction, addExceptionTypeValue, addExceptionMechanism, markFunctionWrapped, addNonEnumerableProperty } from '@sentry/utils';\nvar WINDOW = GLOBAL_OBJ;\nvar ignoreOnError = 0;\n/**\n * @hidden\n */\n\nfunction shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n/**\n * @hidden\n */\n\n\nfunction ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(function () {\n ignoreOnError -= 1;\n });\n}\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\n\n\nfunction wrap(fn) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var before // eslint-disable-next-line @typescript-eslint/no-explicit-any\n = arguments.length > 2 ? arguments[2] : undefined;\n\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n var wrapper = fn.__sentry_wrapped__;\n\n if (wrapper) {\n return wrapper;\n } // We don't wanna wrap it twice\n\n\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n /* eslint-disable prefer-rest-params */\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n\n\n var sentryWrapped = function sentryWrapped() {\n var args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n\n\n var wrappedArguments = args.map(function (arg) {\n return wrap(arg, options);\n }); // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n withScope(function (scope) {\n scope.addEventProcessor(function (event) {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = _objectSpread(_objectSpread({}, event.extra), {}, {\n arguments: args\n });\n return event;\n });\n captureException(ex);\n });\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n\n\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n\n\n markFunctionWrapped(sentryWrapped, fn);\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped); // Restore original function name (not all browsers allow that)\n\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name');\n\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get: function get() {\n return fn.name;\n }\n });\n } // eslint-disable-next-line no-empty\n\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n/**\n * All properties the report dialog supports\n */\n\n\nexport { WINDOW, ignoreNextOnError, shouldIgnoreOnError, wrap };","import { logger } from './logger.js';\nimport { getGlobalObject } from './worldwide.js'; // eslint-disable-next-line deprecation/deprecation\n\nvar WINDOW = getGlobalObject();\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\n\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\n\n\nfunction supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\n\n\nfunction supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\n\n\nfunction supportsFetch() {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n new Request('http://www.example.com');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\n\n\nfunction isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\n\n\nfunction supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n } // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n\n\n if (isNativeFetch(WINDOW.fetch)) {\n return true;\n } // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n\n\n var result = false;\n var doc = WINDOW.document; // eslint-disable-next-line deprecation/deprecation\n\n if (doc && typeof doc.createElement === 'function') {\n try {\n var sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n\n doc.head.removeChild(sandbox);\n } catch (err) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\n\n\nfunction supportsReportingObserver() {\n return 'ReportingObserver' in WINDOW;\n}\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\n\n\nfunction supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin'\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\n\n\nfunction supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var chrome = WINDOW.chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n var hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;\n return !isChromePackagedApp && hasHistoryApi;\n}\n\nexport { isNativeFetch, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsHistory, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { isInstanceOf, isString } from './is.js';\nimport { logger, CONSOLE_LEVELS } from './logger.js';\nimport { fill } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\nimport { supportsNativeFetch, supportsHistory } from './supports.js';\nimport { getGlobalObject } from './worldwide.js'; // eslint-disable-next-line deprecation/deprecation\n\nvar WINDOW = getGlobalObject();\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nvar handlers = {};\nvar instrumented = {};\n/** Instruments given API */\n\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n\n case 'dom':\n instrumentDOM();\n break;\n\n case 'xhr':\n instrumentXHR();\n break;\n\n case 'fetch':\n instrumentFetch();\n break;\n\n case 'history':\n instrumentHistory();\n break;\n\n case 'error':\n instrumentError();\n break;\n\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n\n default:\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\n\n\nfunction addInstrumentationHandler(type, callback) {\n handlers[type] = handlers[type] || [];\n handlers[type].push(callback);\n instrument(type);\n}\n/** JSDoc */\n\n\nfunction triggerHandlers(type, data) {\n if (!type || !handlers[type]) {\n return;\n }\n\n var _iterator = _createForOfIteratorHelper(handlers[type] || []),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var handler = _step.value;\n\n try {\n handler(data);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(\"Error while triggering instrumentation handler.\\nType: \".concat(type, \"\\nName: \").concat(getFunctionName(handler), \"\\nError:\"), e);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n}\n/** JSDoc */\n\n\nfunction instrumentConsole() {\n if (!('console' in WINDOW)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in WINDOW.console)) {\n return;\n }\n\n fill(WINDOW.console, level, function (originalConsoleMethod) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n triggerHandlers('console', {\n args: args,\n level: level\n }); // this fails for some browsers. :(\n\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(WINDOW.console, args);\n }\n };\n });\n });\n}\n/** JSDoc */\n\n\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(WINDOW, 'fetch', function (originalFetch) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var handlerData = {\n args: args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args)\n },\n startTimestamp: Date.now()\n };\n triggerHandlers('fetch', _objectSpread({}, handlerData)); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n return originalFetch.apply(WINDOW, args).then(function (response) {\n triggerHandlers('fetch', _objectSpread(_objectSpread({}, handlerData), {}, {\n endTimestamp: Date.now(),\n response: response\n }));\n return response;\n }, function (error) {\n triggerHandlers('fetch', _objectSpread(_objectSpread({}, handlerData), {}, {\n endTimestamp: Date.now(),\n error: error\n })); // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n\n throw error;\n });\n };\n });\n}\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** Extract `method` from fetch call arguments */\n\n\nfunction getFetchMethod() {\n var fetchArgs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if ('Request' in WINDOW && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n\n return 'GET';\n}\n/** Extract `url` from fetch call arguments */\n\n\nfunction getFetchUrl() {\n var fetchArgs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n\n if ('Request' in WINDOW && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\n\n\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in WINDOW)) {\n return;\n }\n\n var xhrproto = XMLHttpRequest.prototype;\n fill(xhrproto, 'open', function (originalOpen) {\n return function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var url = args[1];\n var xhrInfo = xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1]\n }; // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n var onreadystatechangeHandler = function onreadystatechangeHandler() {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args: args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr: xhr\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function () {\n onreadystatechangeHandler();\n\n for (var _len4 = arguments.length, readyStateArgs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n readyStateArgs[_key4] = arguments[_key4];\n }\n\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n fill(xhrproto, 'send', function (originalSend) {\n return function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args: args,\n startTimestamp: Date.now(),\n xhr: this\n });\n return originalSend.apply(this, args);\n };\n });\n}\n\nvar lastHref;\n/** JSDoc */\n\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n var oldOnPopState = WINDOW.onpopstate;\n\n WINDOW.onpopstate = function () {\n var to = WINDOW.location.href; // keep track of the current URL state, as we always receive only the updated state\n\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to\n });\n\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return oldOnPopState.apply(this, args);\n } catch (_oO) {// no-empty\n }\n }\n };\n /** @hidden */\n\n\n function historyReplacementFunction(originalHistoryFunction) {\n return function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var url = args.length > 2 ? args[2] : undefined;\n\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url); // keep track of the current URL state, as we always receive only the updated state\n\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to\n });\n }\n\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(WINDOW.history, 'pushState', historyReplacementFunction);\n fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n\nvar debounceDuration = 1000;\nvar debounceTimerID;\nvar lastCapturedEvent;\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\n\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n } // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n\n\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {// just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n } // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n\n\n return false;\n}\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\n\n\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n var target = event.target;\n\n if (!target || !target.tagName) {\n return true;\n } // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n\n\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {// just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\n\n\nfunction makeDOMEventHandler(handler) {\n var globalListener = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return function (event) {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n } // We always want to skip _some_ events.\n\n\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n var name = event.type === 'keypress' ? 'input' : event.type; // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name: name,\n global: globalListener\n });\n lastCapturedEvent = event;\n } // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name: name,\n global: globalListener\n });\n lastCapturedEvent = event;\n } // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n\n\n clearTimeout(debounceTimerID);\n debounceTimerID = WINDOW.setTimeout(function () {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n/** JSDoc */\n\n\nfunction instrumentDOM() {\n if (!('document' in WINDOW)) {\n return;\n } // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n\n\n var triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n var globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false); // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n\n ['EventTarget', 'Node'].forEach(function (target) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = WINDOW[target] && WINDOW[target].prototype; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n\n var _handlers = el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {};\n\n var handlerForType = _handlers[type] = _handlers[type] || {\n refCount: 0\n };\n\n if (!handlerForType.handler) {\n var handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount += 1;\n } catch (e) {// Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n\n var _handlers2 = el.__sentry_instrumentation_handlers__ || {};\n\n var handlerForType = _handlers2[type];\n\n if (handlerForType) {\n handlerForType.refCount -= 1; // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete _handlers2[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n } // If there are no longer any custom handlers of any type on this element, cleanup everything.\n\n\n if (Object.keys(_handlers2).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {// Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n });\n });\n}\n\nvar _oldOnErrorHandler = null;\n/** JSDoc */\n\nfunction instrumentError() {\n _oldOnErrorHandler = WINDOW.onerror;\n\n WINDOW.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column: column,\n error: error,\n line: line,\n msg: msg,\n url: url\n });\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nvar _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\n\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = WINDOW.onunhandledrejection;\n\n WINDOW.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n\nexport { addInstrumentationHandler };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { getCurrentHub } from '@sentry/core';\nimport { isEvent, extractExceptionKeysForMessage, normalizeToSize, addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject } from '@sentry/utils';\n/**\n * This function creates an exception from a JavaScript Error\n */\n\nfunction exceptionFromError(stackParser, ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n var frames = parseStackFrames(stackParser, ex);\n var exception = {\n type: ex && ex.name,\n value: extractMessage(ex)\n };\n\n if (frames.length) {\n exception.stacktrace = {\n frames: frames\n };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n/**\n * @hidden\n */\n\n\nfunction eventFromPlainObject(stackParser, exception, syntheticException, isUnhandledRejection) {\n var hub = getCurrentHub();\n var client = hub.getClient();\n var normalizeDepth = client && client.getOptions().normalizeDepth;\n var event = {\n exception: {\n values: [{\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: \"Non-Error \".concat(isUnhandledRejection ? 'promise rejection' : 'exception', \" captured with keys: \").concat(extractExceptionKeysForMessage(exception))\n }]\n },\n extra: {\n __serialized__: normalizeToSize(exception, normalizeDepth)\n }\n };\n\n if (syntheticException) {\n var frames = parseStackFrames(stackParser, syntheticException);\n\n if (frames.length) {\n // event.exception.values[0] has been set above\n event.exception.values[0].stacktrace = {\n frames: frames\n };\n }\n }\n\n return event;\n}\n/**\n * @hidden\n */\n\n\nfunction eventFromError(stackParser, ex) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)]\n }\n };\n}\n/** Parses stack frames from an error */\n\n\nfunction parseStackFrames(stackParser, ex) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace || ex.stack || '';\n var popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {// no-empty\n }\n\n return [];\n} // Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\n\n\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex) {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\n\n\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n\n if (!message) {\n return 'No error message';\n }\n\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n\n return message;\n}\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\n\n\nfunction eventFromException(stackParser, exception, hint, attachStacktrace) {\n var syntheticException = hint && hint.syntheticException || undefined;\n var event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n\n event.level = 'error';\n\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n\n return resolvedSyncPromise(event);\n}\n/**\n * Builds and Event from a Message\n * @hidden\n */\n\n\nfunction eventFromMessage(stackParser, message) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'info';\n var hint = arguments.length > 3 ? arguments[3] : undefined;\n var attachStacktrace = arguments.length > 4 ? arguments[4] : undefined;\n var syntheticException = hint && hint.syntheticException || undefined;\n var event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n\n return resolvedSyncPromise(event);\n}\n/**\n * @hidden\n */\n\n\nfunction eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace, isUnhandledRejection) {\n var event;\n\n if (isErrorEvent(exception) && exception.error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception;\n return eventFromError(stackParser, errorEvent.error);\n } // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n\n\n if (isDOMError(exception) || isDOMException(exception)) {\n var domException = exception;\n\n if ('stack' in exception) {\n event = eventFromError(stackParser, exception);\n } else {\n var name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? \"\".concat(name, \": \").concat(domException.message) : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n\n if ('code' in domException) {\n event.tags = _objectSpread(_objectSpread({}, event.tags), {}, {\n 'DOMException.code': \"\".concat(domException.code)\n });\n }\n\n return event;\n }\n\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n var objectException = exception;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true\n });\n return event;\n } // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n\n\n event = eventFromString(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, \"\".concat(exception), undefined);\n addExceptionMechanism(event, {\n synthetic: true\n });\n return event;\n}\n/**\n * @hidden\n */\n\n\nfunction eventFromString(stackParser, input, syntheticException, attachStacktrace) {\n var event = {\n message: input\n };\n\n if (attachStacktrace && syntheticException) {\n var frames = parseStackFrames(stackParser, syntheticException);\n\n if (frames.length) {\n event.exception = {\n values: [{\n value: input,\n stacktrace: {\n frames: frames\n }\n }]\n };\n }\n }\n\n return event;\n}\n\nexport { eventFromError, eventFromException, eventFromMessage, eventFromPlainObject, eventFromString, eventFromUnknownInput, exceptionFromError, parseStackFrames };","import _slicedToArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/createClass\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, isString, isPrimitive, isErrorEvent, getLocationHref, logger, addExceptionMechanism } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** Global handlers */\n\nvar GlobalHandlers = /*#__PURE__*/function () {\n /** JSDoc */\n function GlobalHandlers(options) {\n _classCallCheck(this, GlobalHandlers);\n\n ;\n\n GlobalHandlers.prototype.__init.call(this);\n\n GlobalHandlers.prototype.__init2.call(this);\n\n this._options = _objectSpread({\n onerror: true,\n onunhandledrejection: true\n }, options);\n }\n /**\n * @inheritDoc\n */\n\n\n _createClass(GlobalHandlers, [{\n key: \"__init\",\n value:\n /**\n * @inheritDoc\n */\n function __init() {\n this.name = GlobalHandlers.id;\n }\n /** JSDoc */\n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n\n }, {\n key: \"__init2\",\n value: function __init2() {\n this._installFunc = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler\n };\n }\n }, {\n key: \"setupOnce\",\n value: function setupOnce() {\n Error.stackTraceLimit = 50;\n var options = this._options; // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n // eslint-disable-next-line guard-for-in\n\n for (var key in options) {\n var installFunc = this._installFunc[key];\n\n if (installFunc && options[key]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key] = undefined;\n }\n }\n }\n }], [{\n key: \"__initStatic\",\n value:\n /**\n * @inheritDoc\n */\n function __initStatic() {\n this.id = 'GlobalHandlers';\n }\n }]);\n\n return GlobalHandlers;\n}();\n\nGlobalHandlers.__initStatic();\n/** JSDoc */\n\n\nfunction _installGlobalOnErrorHandler() {\n addInstrumentationHandler('error', // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function (data) {\n var _getHubAndOptions = getHubAndOptions(),\n _getHubAndOptions2 = _slicedToArray(_getHubAndOptions, 3),\n hub = _getHubAndOptions2[0],\n stackParser = _getHubAndOptions2[1],\n attachStacktrace = _getHubAndOptions2[2];\n\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n\n var msg = data.msg,\n url = data.url,\n line = data.line,\n column = data.column,\n error = data.error;\n\n if (shouldIgnoreOnError() || error && error.__sentry_own_request__) {\n return;\n }\n\n var event = error === undefined && isString(msg) ? _eventFromIncompleteOnError(msg, url, line, column) : _enhanceEventWithInitialFrame(eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false), url, line, column);\n event.level = 'error';\n addMechanismAndCapture(hub, error, event, 'onerror');\n });\n}\n/** JSDoc */\n\n\nfunction _installGlobalOnUnhandledRejectionHandler() {\n addInstrumentationHandler('unhandledrejection', // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function (e) {\n var _getHubAndOptions3 = getHubAndOptions(),\n _getHubAndOptions4 = _slicedToArray(_getHubAndOptions3, 3),\n hub = _getHubAndOptions4[0],\n stackParser = _getHubAndOptions4[1],\n attachStacktrace = _getHubAndOptions4[2];\n\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n\n var error = e; // dig the object of the rejection out of known event types\n\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n } // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {// no-empty\n }\n\n if (shouldIgnoreOnError() || error && error.__sentry_own_request__) {\n return true;\n }\n\n var event = isPrimitive(error) ? _eventFromRejectionWithPrimitive(error) : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n event.level = 'error';\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n });\n}\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\n\n\nfunction _eventFromRejectionWithPrimitive(reason) {\n return {\n exception: {\n values: [{\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: \"Non-Error promise rejection captured with value: \".concat(String(reason))\n }]\n }\n };\n}\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction _eventFromIncompleteOnError(msg, url, line, column) {\n var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i; // If 'message' is ErrorEvent, get real message from inside\n\n var message = isErrorEvent(msg) ? msg.message : msg;\n var name = 'Error';\n var groups = message.match(ERROR_TYPES_RE);\n\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n var event = {\n exception: {\n values: [{\n type: name,\n value: message\n }]\n }\n };\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n // event.exception\n var e = event.exception = event.exception || {}; // event.exception.values\n\n var ev = e.values = e.values || []; // event.exception.values[0]\n\n var ev0 = ev[0] = ev[0] || {}; // event.exception.values[0].stacktrace\n\n var ev0s = ev0.stacktrace = ev0.stacktrace || {}; // event.exception.values[0].stacktrace.frames\n\n var ev0sf = ev0s.frames = ev0s.frames || [];\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref(); // event.exception.values[0].stacktrace.frames\n\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno: colno,\n filename: filename,\n function: '?',\n in_app: true,\n lineno: lineno\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(\"Global Handler attached: \".concat(type));\n}\n\nfunction addMechanismAndCapture(hub, error, event, type) {\n addExceptionMechanism(event, {\n handled: false,\n type: type\n });\n hub.captureEvent(event, {\n originalException: error\n });\n}\n\nfunction getHubAndOptions() {\n var hub = getCurrentHub();\n var client = hub.getClient();\n var options = client && client.getOptions() || {\n stackParser: function stackParser() {\n return [];\n },\n attachStacktrace: false\n };\n return [hub, options.stackParser, options.attachStacktrace];\n}\n\nexport { GlobalHandlers };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/createClass\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\nimport { WINDOW, wrap } from '../helpers.js';\nvar DEFAULT_EVENT_TARGET = ['EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode', 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase', 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow', 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList', 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'];\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\n\nvar TryCatch = /*#__PURE__*/function () {\n /** JSDoc */\n\n /**\n * @inheritDoc\n */\n function TryCatch(options) {\n _classCallCheck(this, TryCatch);\n\n ;\n\n TryCatch.prototype.__init.call(this);\n\n this._options = _objectSpread({\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true\n }, options);\n }\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n\n\n _createClass(TryCatch, [{\n key: \"__init\",\n value:\n /**\n * @inheritDoc\n */\n function __init() {\n this.name = TryCatch.id;\n }\n }, {\n key: \"setupOnce\",\n value: function setupOnce() {\n if (this._options.setTimeout) {\n fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(WINDOW, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n var eventTargetOption = this._options.eventTarget;\n\n if (eventTargetOption) {\n var eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n }], [{\n key: \"__initStatic\",\n value:\n /**\n * @inheritDoc\n */\n function __initStatic() {\n this.id = 'TryCatch';\n }\n }]);\n\n return TryCatch;\n}();\n\nTryCatch.__initStatic();\n/** JSDoc */\n\n\nfunction _wrapTimeFunction(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: {\n function: getFunctionName(original)\n },\n handled: true,\n type: 'instrument'\n }\n });\n return original.apply(this, args);\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction _wrapRAF(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original)\n },\n handled: true,\n type: 'instrument'\n }\n })]);\n };\n}\n/** JSDoc */\n\n\nfunction _wrapXHR(originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n xmlHttpRequestProps.forEach(function (prop) {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n var wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original)\n },\n handled: true,\n type: 'instrument'\n }\n }; // If Instrument integration has been called before TryCatch, get the name of original function\n\n var originalFunction = getOriginalFunction(original);\n\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n } // Otherwise wrap directly\n\n\n return wrap(original, wrapOptions);\n });\n }\n });\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return originalSend.apply(this, args);\n };\n}\n/** JSDoc */\n\n\nfunction _wrapEventTarget(target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var globalObject = WINDOW; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\n var proto = globalObject[target] && globalObject[target].prototype; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original) {\n return function ( // eslint-disable-next-line @typescript-eslint/no-explicit-any\n eventName, fn, options) {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n // eslint-disable-next-line @typescript-eslint/unbound-method\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target: target\n },\n handled: true,\n type: 'instrument'\n }\n });\n }\n } catch (err) {// can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [eventName, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target: target\n },\n handled: true,\n type: 'instrument'\n }\n }), options]);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) {\n return function ( // eslint-disable-next-line @typescript-eslint/no-explicit-any\n eventName, fn, options) {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n var wrappedEventHandler = fn;\n\n try {\n var originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {// ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n });\n}\n\nexport { TryCatch };","// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\nvar validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\n\nfunction severityFromString(level) {\n return severityLevelFromString(level);\n}\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\n\n\nfunction severityLevelFromString(level) {\n return level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log';\n}\n\nexport { severityFromString, severityLevelFromString, validSeverityLevels };","/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url) {\n if (!url) {\n return {};\n }\n\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n } // coerce to undefined values to empty string so we don't get 'undefined'\n\n\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment // everything minus origin\n\n };\n}\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\n\n\nfunction stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n/**\n * Returns number of URL segments of a passed string URL.\n */\n\n\nfunction getNumberOfUrlSegments(url) {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(function (s) {\n return s.length > 0 && s !== ',';\n }).length;\n}\n\nexport { getNumberOfUrlSegments, parseUrl, stripUrlQueryAndFragment };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/createClass\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, htmlTreeAsString, severityLevelFromString, safeJoin, parseUrl } from '@sentry/utils';\nimport { WINDOW } from '../helpers.js';\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\n\nvar BREADCRUMB_INTEGRATION_ID = 'Breadcrumbs';\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\n\nvar Breadcrumbs = /*#__PURE__*/function () {\n /**\n * Options of the breadcrumbs integration.\n */\n // This field is public, because we use it in the browser client to check if the `sentry` option is enabled.\n\n /**\n * @inheritDoc\n */\n function Breadcrumbs(options) {\n _classCallCheck(this, Breadcrumbs);\n\n ;\n\n Breadcrumbs.prototype.__init.call(this);\n\n this.options = _objectSpread({\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true\n }, options);\n }\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n\n\n _createClass(Breadcrumbs, [{\n key: \"__init\",\n value:\n /**\n * @inheritDoc\n */\n function __init() {\n this.name = Breadcrumbs.id;\n }\n }, {\n key: \"setupOnce\",\n value: function setupOnce() {\n if (this.options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n\n if (this.options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this.options.dom));\n }\n\n if (this.options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n\n if (this.options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n\n if (this.options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n }], [{\n key: \"__initStatic\",\n value:\n /**\n * @inheritDoc\n */\n function __initStatic() {\n this.id = BREADCRUMB_INTEGRATION_ID;\n }\n }]);\n\n return Breadcrumbs;\n}();\n\nBreadcrumbs.__initStatic();\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction _domBreadcrumb(dom) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _innerDomBreadcrumb(handlerData) {\n var target;\n var keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n } // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n\n\n try {\n target = handlerData.event.target ? htmlTreeAsString(handlerData.event.target, keyAttrs) : htmlTreeAsString(handlerData.event, keyAttrs);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb({\n category: \"ui.\".concat(handlerData.name),\n message: target\n }, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global\n });\n }\n\n return _innerDomBreadcrumb;\n}\n/**\n * Creates breadcrumbs from console API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction _consoleBreadcrumb(handlerData) {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/6010\n // see: https://github.com/getsentry/sentry-javascript/issues/5916\n for (var i = 0; i < handlerData.args.length; i++) {\n if (handlerData.args[i] === 'ref=Ref<') {\n handlerData.args[i + 1] = 'viewRef';\n break;\n }\n }\n\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console'\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' ')\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = \"Assertion failed: \".concat(safeJoin(handlerData.args.slice(1), ' ') || 'console.assert');\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level\n });\n}\n/**\n * Creates breadcrumbs from XHR API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction _xhrBreadcrumb(handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n var _ref = handlerData.xhr.__sentry_xhr__ || {},\n method = _ref.method,\n url = _ref.url,\n status_code = _ref.status_code,\n body = _ref.body;\n\n getCurrentHub().addBreadcrumb({\n category: 'xhr',\n data: {\n method: method,\n url: url,\n status_code: status_code\n },\n type: 'http'\n }, {\n xhr: handlerData.xhr,\n input: body\n });\n return;\n }\n}\n/**\n * Creates breadcrumbs from fetch API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction _fetchBreadcrumb(handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: handlerData.fetchData,\n level: 'error',\n type: 'http'\n }, {\n data: handlerData.error,\n input: handlerData.args\n });\n } else {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: _objectSpread(_objectSpread({}, handlerData.fetchData), {}, {\n status_code: handlerData.response.status\n }),\n type: 'http'\n }, {\n input: handlerData.args,\n response: handlerData.response\n });\n }\n}\n/**\n * Creates breadcrumbs from history API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction _historyBreadcrumb(handlerData) {\n var from = handlerData.from;\n var to = handlerData.to;\n var parsedLoc = parseUrl(WINDOW.location.href);\n var parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to); // Initial pushState doesn't provide `from` information\n\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n } // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n\n\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from: from,\n to: to\n }\n });\n}\n\nexport { BREADCRUMB_INTEGRATION_ID, Breadcrumbs };","import _toConsumableArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/createClass\";\nimport { getCurrentHub, addGlobalEventProcessor } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder.js';\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n/** Adds SDK info to an event. */\n\nvar LinkedErrors = /*#__PURE__*/function () {\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n function LinkedErrors() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, LinkedErrors);\n\n ;\n\n LinkedErrors.prototype.__init.call(this);\n\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n /**\n * @inheritDoc\n */\n\n\n _createClass(LinkedErrors, [{\n key: \"__init\",\n value:\n /**\n * @inheritDoc\n */\n function __init() {\n this.name = LinkedErrors.id;\n }\n }, {\n key: \"setupOnce\",\n value: function setupOnce() {\n var client = getCurrentHub().getClient();\n\n if (!client) {\n return;\n }\n\n addGlobalEventProcessor(function (event, hint) {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(client.getOptions().stackParser, self._key, self._limit, event, hint) : event;\n });\n }\n }], [{\n key: \"__initStatic\",\n value:\n /**\n * @inheritDoc\n */\n function __initStatic() {\n this.id = 'LinkedErrors';\n }\n }]);\n\n return LinkedErrors;\n}();\n\nLinkedErrors.__initStatic();\n/**\n * @inheritDoc\n */\n\n\nfunction _handler(parser, key, limit, event, hint) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n\n var linkedErrors = _walkErrorTree(parser, limit, hint.originalException, key);\n\n event.exception.values = [].concat(_toConsumableArray(linkedErrors), _toConsumableArray(event.exception.values));\n return event;\n}\n/**\n * JSDOC\n */\n\n\nfunction _walkErrorTree(parser, limit, error, key) {\n var stack = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n\n var exception = exceptionFromError(parser, error[key]);\n return _walkErrorTree(parser, limit, error[key], key, [exception].concat(_toConsumableArray(stack)));\n}\n\nexport { LinkedErrors, _handler, _walkErrorTree };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/createClass\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { WINDOW } from '../helpers.js';\n/** HttpContext integration collects information about HTTP request headers */\n\nvar HttpContext = /*#__PURE__*/function () {\n function HttpContext() {\n _classCallCheck(this, HttpContext);\n\n HttpContext.prototype.__init.call(this);\n }\n /**\n * @inheritDoc\n */\n\n\n _createClass(HttpContext, [{\n key: \"__init\",\n value:\n /**\n * @inheritDoc\n */\n function __init() {\n this.name = HttpContext.id;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setupOnce\",\n value: function setupOnce() {\n addGlobalEventProcessor(function (event) {\n if (getCurrentHub().getIntegration(HttpContext)) {\n // if none of the information we want exists, don't bother\n if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n return event;\n } // grab as much info as exists and add it to the event\n\n\n var url = event.request && event.request.url || WINDOW.location && WINDOW.location.href;\n\n var _ref = WINDOW.document || {},\n referrer = _ref.referrer;\n\n var _ref2 = WINDOW.navigator || {},\n userAgent = _ref2.userAgent;\n\n var headers = _objectSpread(_objectSpread(_objectSpread({}, event.request && event.request.headers), referrer && {\n Referer: referrer\n }), userAgent && {\n 'User-Agent': userAgent\n });\n\n var request = _objectSpread(_objectSpread({}, url && {\n url: url\n }), {}, {\n headers: headers\n });\n\n return _objectSpread(_objectSpread({}, event), {}, {\n request: request\n });\n }\n\n return event;\n });\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.id = 'HttpContext';\n }\n }]);\n\n return HttpContext;\n}();\n\nHttpContext.__initStatic();\n\nexport { HttpContext };","import _classCallCheck from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/createClass\";\nimport { logger } from '@sentry/utils';\n/** Deduplication filter */\n\nvar Dedupe = /*#__PURE__*/function () {\n function Dedupe() {\n _classCallCheck(this, Dedupe);\n\n Dedupe.prototype.__init.call(this);\n }\n /**\n * @inheritDoc\n */\n\n\n _createClass(Dedupe, [{\n key: \"__init\",\n value:\n /**\n * @inheritDoc\n */\n function __init() {\n this.name = Dedupe.id;\n }\n /**\n * @inheritDoc\n */\n\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"setupOnce\",\n value: function setupOnce(addGlobalEventProcessor, getCurrentHub) {\n var eventProcessor = function eventProcessor(currentEvent) {\n var self = getCurrentHub().getIntegration(Dedupe);\n\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return self._previousEvent = currentEvent;\n }\n\n return self._previousEvent = currentEvent;\n }\n\n return currentEvent;\n };\n\n eventProcessor.id = this.name;\n addGlobalEventProcessor(eventProcessor);\n }\n }], [{\n key: \"__initStatic\",\n value: function __initStatic() {\n this.id = 'Dedupe';\n }\n }]);\n\n return Dedupe;\n}();\n\nDedupe.__initStatic();\n/** JSDoc */\n\n\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n/** JSDoc */\n\n\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n var currentMessage = currentEvent.message;\n var previousMessage = previousEvent.message; // If neither event has a message property, they were both exceptions, so bail out\n\n if (!currentMessage && !previousMessage) {\n return false;\n } // If only one event has a stacktrace, but not the other one, they are not the same\n\n\n if (currentMessage && !previousMessage || !currentMessage && previousMessage) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n/** JSDoc */\n\n\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n var previousException = _getExceptionFromEvent(previousEvent);\n\n var currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n/** JSDoc */\n\n\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n var currentFrames = _getFramesFromEvent(currentEvent);\n\n var previousFrames = _getFramesFromEvent(previousEvent); // If neither event has a stacktrace, they are assumed to be the same\n\n\n if (!currentFrames && !previousFrames) {\n return true;\n } // If only one event has a stacktrace, but not the other one, they are not the same\n\n\n if (currentFrames && !previousFrames || !currentFrames && previousFrames) {\n return false;\n }\n\n currentFrames = currentFrames;\n previousFrames = previousFrames; // If number of frames differ, they are not the same\n\n if (previousFrames.length !== currentFrames.length) {\n return false;\n } // Otherwise, compare the two\n\n\n for (var i = 0; i < previousFrames.length; i++) {\n var frameA = previousFrames[i];\n var frameB = currentFrames[i];\n\n if (frameA.filename !== frameB.filename || frameA.lineno !== frameB.lineno || frameA.colno !== frameB.colno || frameA.function !== frameB.function) {\n return false;\n }\n }\n\n return true;\n}\n/** JSDoc */\n\n\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n var currentFingerprint = currentEvent.fingerprint;\n var previousFingerprint = previousEvent.fingerprint; // If neither event has a fingerprint, they are assumed to be the same\n\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n } // If only one event has a fingerprint, but not the other one, they are not the same\n\n\n if (currentFingerprint && !previousFingerprint || !currentFingerprint && previousFingerprint) {\n return false;\n }\n\n currentFingerprint = currentFingerprint;\n previousFingerprint = previousFingerprint; // Otherwise, compare the two\n\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n/** JSDoc */\n\n\nfunction _getExceptionFromEvent(event) {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n/** JSDoc */\n\n\nfunction _getFramesFromEvent(event) {\n var exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n\n return undefined;\n}\n\nexport { Dedupe };","import _slicedToArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport { SentryError } from './error.js';\n/** Regular expression used to parse a Dsn. */\n\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n return protocol === 'http' || protocol === 'https';\n}\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\n\n\nfunction dsnToString(dsn) {\n var withPassword = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var host = dsn.host,\n path = dsn.path,\n pass = dsn.pass,\n port = dsn.port,\n projectId = dsn.projectId,\n protocol = dsn.protocol,\n publicKey = dsn.publicKey;\n return \"\".concat(protocol, \"://\").concat(publicKey).concat(withPassword && pass ? \":\".concat(pass) : '') + \"@\".concat(host).concat(port ? \":\".concat(port) : '', \"/\").concat(path ? \"\".concat(path, \"/\") : path).concat(projectId);\n}\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents\n */\n\n\nfunction dsnFromString(str) {\n var match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(\"Invalid Sentry Dsn: \".concat(str));\n }\n\n var _match$slice = match.slice(1),\n _match$slice2 = _slicedToArray(_match$slice, 6),\n protocol = _match$slice2[0],\n publicKey = _match$slice2[1],\n _match$slice2$ = _match$slice2[2],\n pass = _match$slice2$ === void 0 ? '' : _match$slice2$,\n host = _match$slice2[3],\n _match$slice2$2 = _match$slice2[4],\n port = _match$slice2$2 === void 0 ? '' : _match$slice2$2,\n lastPath = _match$slice2[5];\n\n var path = '';\n var projectId = lastPath;\n var split = projectId.split('/');\n\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop();\n }\n\n if (projectId) {\n var projectMatch = projectId.match(/^\\d+/);\n\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({\n host: host,\n pass: pass,\n path: path,\n projectId: projectId,\n port: port,\n protocol: protocol,\n publicKey: publicKey\n });\n}\n\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId\n };\n}\n\nfunction validateDsn(dsn) {\n if (!(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n return;\n }\n\n var port = dsn.port,\n projectId = dsn.projectId,\n protocol = dsn.protocol;\n var requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(function (component) {\n if (!dsn[component]) {\n throw new SentryError(\"Invalid Sentry Dsn: \".concat(component, \" missing\"));\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(\"Invalid Sentry Dsn: Invalid projectId \".concat(projectId));\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(\"Invalid Sentry Dsn: Invalid protocol \".concat(protocol));\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(\"Invalid Sentry Dsn: Invalid port \".concat(port));\n }\n\n return true;\n}\n/** The Sentry Dsn, identifying a Sentry instance and project. */\n\n\nfunction makeDsn(from) {\n var components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n validateDsn(components);\n return components;\n}\n\nexport { dsnFromString, dsnToString, makeDsn };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { urlEncode, makeDsn, dsnToString } from '@sentry/utils';\nvar SENTRY_API_VERSION = '7';\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\n\nfunction getBaseApiEndpoint(dsn) {\n var protocol = dsn.protocol ? \"\".concat(dsn.protocol, \":\") : '';\n var port = dsn.port ? \":\".concat(dsn.port) : '';\n return \"\".concat(protocol, \"//\").concat(dsn.host).concat(port).concat(dsn.path ? \"/\".concat(dsn.path) : '', \"/api/\");\n}\n/** Returns the ingest API endpoint for target. */\n\n\nfunction _getIngestEndpoint(dsn) {\n return \"\".concat(getBaseApiEndpoint(dsn)).concat(dsn.projectId, \"/envelope/\");\n}\n/** Returns a URL-encoded string with auth config suitable for a query string. */\n\n\nfunction _encodedAuth(dsn, sdkInfo) {\n return urlEncode(_objectSpread({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION\n }, sdkInfo && {\n sentry_client: \"\".concat(sdkInfo.name, \"/\").concat(sdkInfo.version)\n }));\n}\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n\n\nfunction getEnvelopeEndpointWithUrlEncodedAuth(dsn) {\n var tunnelOrOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // TODO (v8): Use this code instead\n // const { tunnel, _metadata = {} } = options;\n // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`;\n var tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel;\n var sdkInfo = typeof tunnelOrOptions === 'string' || !tunnelOrOptions._metadata ? undefined : tunnelOrOptions._metadata.sdk;\n return tunnel ? tunnel : \"\".concat(_getIngestEndpoint(dsn), \"?\").concat(_encodedAuth(dsn, sdkInfo));\n}\n/** Returns the url to the report dialog endpoint. */\n\n\nfunction getReportDialogEndpoint(dsnLike, dialogOptions) {\n var dsn = makeDsn(dsnLike);\n var endpoint = \"\".concat(getBaseApiEndpoint(dsn), \"embed/error-page/\");\n var encodedOptions = \"dsn=\".concat(dsnToString(dsn));\n\n for (var key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n var user = dialogOptions.user;\n\n if (!user) {\n continue;\n }\n\n if (user.name) {\n encodedOptions += \"&name=\".concat(encodeURIComponent(user.name));\n }\n\n if (user.email) {\n encodedOptions += \"&email=\".concat(encodeURIComponent(user.email));\n }\n } else {\n encodedOptions += \"&\".concat(encodeURIComponent(key), \"=\").concat(encodeURIComponent(dialogOptions[key]));\n }\n }\n\n return \"\".concat(endpoint, \"?\").concat(encodedOptions);\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { dsnToString, createEnvelope, dropUndefinedKeys } from '@sentry/utils';\n/** Extract sdk info from from the API metadata */\n\nfunction getSdkMetadataForEnvelopeHeader(metadata) {\n if (!metadata || !metadata.sdk) {\n return;\n }\n\n var _metadata$sdk = metadata.sdk,\n name = _metadata$sdk.name,\n version = _metadata$sdk.version;\n return {\n name: name,\n version: version\n };\n}\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\n\n\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [].concat(_toConsumableArray(event.sdk.integrations || []), _toConsumableArray(sdkInfo.integrations || []));\n event.sdk.packages = [].concat(_toConsumableArray(event.sdk.packages || []), _toConsumableArray(sdkInfo.packages || []));\n return event;\n}\n/** Creates an envelope from a Session */\n\n\nfunction createSessionEnvelope(session, dsn, metadata, tunnel) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n\n var envelopeHeaders = _objectSpread(_objectSpread({\n sent_at: new Date().toISOString()\n }, sdkInfo && {\n sdk: sdkInfo\n }), !!tunnel && {\n dsn: dsnToString(dsn)\n });\n\n var envelopeItem = 'aggregates' in session ? [{\n type: 'sessions'\n }, session] : [{\n type: 'session'\n }, session];\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n/**\n * Create an Envelope from an event.\n */\n\n\nfunction createEventEnvelope(event, dsn, metadata, tunnel) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n var eventType = event.type || 'event';\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n var envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn); // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n\n delete event.sdkProcessingMetadata;\n var eventItem = [{\n type: eventType\n }, event];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\nfunction createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn) {\n var dynamicSamplingContext = event.sdkProcessingMetadata && event.sdkProcessingMetadata.dynamicSamplingContext;\n return _objectSpread(_objectSpread(_objectSpread({\n event_id: event.event_id,\n sent_at: new Date().toISOString()\n }, sdkInfo && {\n sdk: sdkInfo\n }), !!tunnel && {\n dsn: dsnToString(dsn)\n }), event.type === 'transaction' && dynamicSamplingContext && {\n trace: dropUndefinedKeys(_objectSpread({}, dynamicSamplingContext))\n });\n}\n\nexport { createEventEnvelope, createSessionEnvelope };","import _slicedToArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport { arrayify, logger } from '@sentry/utils';\nimport { getCurrentHub } from './hub.js';\nimport { addGlobalEventProcessor } from './scope.js';\nvar installedIntegrations = [];\n/** Map of integrations assigned to a client */\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preseve the order of integrations in the array.\n *\n * @private\n */\n\nfunction filterDuplicates(integrations) {\n var integrationsByName = {};\n integrations.forEach(function (currentInstance) {\n var name = currentInstance.name;\n var existingInstance = integrationsByName[name]; // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n return Object.values(integrationsByName);\n}\n/** Gets integrations to install */\n\n\nfunction getIntegrationsToSetup(options) {\n var defaultIntegrations = options.defaultIntegrations || [];\n var userIntegrations = options.integrations; // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n\n defaultIntegrations.forEach(function (integration) {\n integration.isDefaultInstance = true;\n });\n var integrations;\n\n if (Array.isArray(userIntegrations)) {\n integrations = [].concat(_toConsumableArray(defaultIntegrations), _toConsumableArray(userIntegrations));\n } else if (typeof userIntegrations === 'function') {\n integrations = arrayify(userIntegrations(defaultIntegrations));\n } else {\n integrations = defaultIntegrations;\n }\n\n var finalIntegrations = filterDuplicates(integrations); // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend` or\n // `beforeSendTransaction`. It therefore has to run after all other integrations, so that the changes of all event\n // processors will be reflected in the printed values. For lack of a more elegant way to guarantee that, we therefore\n // locate it and, assuming it exists, pop it out of its current spot and shove it onto the end of the array.\n\n var debugIndex = finalIntegrations.findIndex(function (integration) {\n return integration.name === 'Debug';\n });\n\n if (debugIndex !== -1) {\n var _finalIntegrations$sp = finalIntegrations.splice(debugIndex, 1),\n _finalIntegrations$sp2 = _slicedToArray(_finalIntegrations$sp, 1),\n debugInstance = _finalIntegrations$sp2[0];\n\n finalIntegrations.push(debugInstance);\n }\n\n return finalIntegrations;\n}\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\n\n\nfunction setupIntegrations(integrations) {\n var integrationIndex = {};\n integrations.forEach(function (integration) {\n integrationIndex[integration.name] = integration;\n\n if (installedIntegrations.indexOf(integration.name) === -1) {\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(\"Integration installed: \".concat(integration.name));\n }\n });\n return integrationIndex;\n}\n\nexport { getIntegrationsToSetup, installedIntegrations, setupIntegrations };","import _slicedToArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { makeDsn, logger, checkOrSetAlreadyCaught, isPrimitive, resolvedSyncPromise, addItemToEnvelope, createAttachmentEnvelopeItem, SyncPromise, uuid4, dateTimestampInSeconds, normalize, truncate, rejectedSyncPromise, SentryError, isThenable, isPlainObject } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegrations as _setupIntegrations } from './integration.js';\nimport { Scope } from './scope.js';\nimport { updateSession } from './session.js';\nvar ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\n\nvar BaseClient = /*#__PURE__*/function () {\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n function BaseClient(options) {\n _classCallCheck(this, BaseClient);\n\n ;\n\n BaseClient.prototype.__init.call(this);\n\n BaseClient.prototype.__init2.call(this);\n\n BaseClient.prototype.__init3.call(this);\n\n BaseClient.prototype.__init4.call(this);\n\n this._options = options;\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n var url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options);\n this._transport = options.transport(_objectSpread(_objectSpread({\n recordDroppedEvent: this.recordDroppedEvent.bind(this)\n }, options.transportOptions), {}, {\n url: url\n }));\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('No DSN provided, client will not do anything.');\n }\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n\n _createClass(BaseClient, [{\n key: \"__init\",\n value:\n /** Options passed to the SDK. */\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n\n /** Array of set up integrations. */\n function __init() {\n this._integrations = {};\n }\n /** Indicates whether this client's integrations have been set up. */\n\n }, {\n key: \"__init2\",\n value: function __init2() {\n this._integrationsInitialized = false;\n }\n /** Number of calls being processed */\n\n }, {\n key: \"__init3\",\n value: function __init3() {\n this._numProcessing = 0;\n }\n /** Holds flushable */\n\n }, {\n key: \"__init4\",\n value: function __init4() {\n this._outcomes = {};\n }\n }, {\n key: \"captureException\",\n value: function captureException(exception, hint, scope) {\n var _this = this;\n\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n var eventId = hint && hint.event_id;\n\n this._process(this.eventFromException(exception, hint).then(function (event) {\n return _this._captureEvent(event, hint, scope);\n }).then(function (result) {\n eventId = result;\n }));\n\n return eventId;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"captureMessage\",\n value: function captureMessage(message, // eslint-disable-next-line deprecation/deprecation\n level, hint, scope) {\n var _this2 = this;\n\n var eventId = hint && hint.event_id;\n var promisedEvent = isPrimitive(message) ? this.eventFromMessage(String(message), level, hint) : this.eventFromException(message, hint);\n\n this._process(promisedEvent.then(function (event) {\n return _this2._captureEvent(event, hint, scope);\n }).then(function (result) {\n eventId = result;\n }));\n\n return eventId;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"captureEvent\",\n value: function captureEvent(event, hint, scope) {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n var eventId = hint && hint.event_id;\n\n this._process(this._captureEvent(event, hint, scope).then(function (result) {\n eventId = result;\n }));\n\n return eventId;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"captureSession\",\n value: function captureSession(session) {\n if (!this._isEnabled()) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session); // After sending, we set init false to indicate it's not the first occurrence\n\n updateSession(session, {\n init: false\n });\n }\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"getDsn\",\n value: function getDsn() {\n return this._dsn;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"getOptions\",\n value: function getOptions() {\n return this._options;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"getTransport\",\n value: function getTransport() {\n return this._transport;\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"flush\",\n value: function flush(timeout) {\n var transport = this._transport;\n\n if (transport) {\n return this._isClientDoneProcessing(timeout).then(function (clientFinished) {\n return transport.flush(timeout).then(function (transportFlushed) {\n return clientFinished && transportFlushed;\n });\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"close\",\n value: function close(timeout) {\n var _this3 = this;\n\n return this.flush(timeout).then(function (result) {\n _this3.getOptions().enabled = false;\n return result;\n });\n }\n /**\n * Sets up the integrations\n */\n\n }, {\n key: \"setupIntegrations\",\n value: function setupIntegrations() {\n if (this._isEnabled() && !this._integrationsInitialized) {\n this._integrations = _setupIntegrations(this._options.integrations);\n this._integrationsInitialized = true;\n }\n }\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n */\n\n }, {\n key: \"getIntegrationById\",\n value: function getIntegrationById(integrationId) {\n return this._integrations[integrationId];\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"getIntegration\",\n value: function getIntegration(integration) {\n try {\n return this._integrations[integration.id] || null;\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(\"Cannot retrieve integration \".concat(integration.id, \" from the current Client\"));\n return null;\n }\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"sendEvent\",\n value: function sendEvent(event) {\n var hint = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this._dsn) {\n var env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n var _iterator = _createForOfIteratorHelper(hint.attachments || []),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var attachment = _step.value;\n env = addItemToEnvelope(env, createAttachmentEnvelopeItem(attachment, this._options.transportOptions && this._options.transportOptions.textEncoder));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this._sendEnvelope(env);\n }\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"sendSession\",\n value: function sendSession(session) {\n if (this._dsn) {\n var env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n\n this._sendEnvelope(env);\n }\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"recordDroppedEvent\",\n value: function recordDroppedEvent(reason, category) {\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n var key = \"\".concat(reason, \":\").concat(category);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(\"Adding outcome: \\\"\".concat(key, \"\\\"\")); // The following works because undefined + 1 === NaN and NaN is falsy\n\n this._outcomes[key] = this._outcomes[key] + 1 || 1;\n }\n }\n /** Updates existing session based on the provided event */\n\n }, {\n key: \"_updateSessionFromEvent\",\n value: function _updateSessionFromEvent(session, event) {\n var crashed = false;\n var errored = false;\n var exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n var _iterator2 = _createForOfIteratorHelper(exceptions),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var ex = _step2.value;\n var mechanism = ex.mechanism;\n\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n } // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n\n\n var sessionNonTerminal = session.status === 'ok';\n var shouldUpdateAndSend = sessionNonTerminal && session.errors === 0 || sessionNonTerminal && crashed;\n\n if (shouldUpdateAndSend) {\n updateSession(session, _objectSpread(_objectSpread({}, crashed && {\n status: 'crashed'\n }), {}, {\n errors: session.errors || Number(errored || crashed)\n }));\n this.captureSession(session);\n }\n }\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n\n }, {\n key: \"_isClientDoneProcessing\",\n value: function _isClientDoneProcessing(timeout) {\n var _this4 = this;\n\n return new SyncPromise(function (resolve) {\n var ticked = 0;\n var tick = 1;\n var interval = setInterval(function () {\n if (_this4._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n\n }, {\n key: \"_isEnabled\",\n value: function _isEnabled() {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n\n }, {\n key: \"_prepareEvent\",\n value: function _prepareEvent(event, hint, scope) {\n var _this5 = this;\n\n var _this$getOptions = this.getOptions(),\n _this$getOptions$norm = _this$getOptions.normalizeDepth,\n normalizeDepth = _this$getOptions$norm === void 0 ? 3 : _this$getOptions$norm,\n _this$getOptions$norm2 = _this$getOptions.normalizeMaxBreadth,\n normalizeMaxBreadth = _this$getOptions$norm2 === void 0 ? 1000 : _this$getOptions$norm2;\n\n var prepared = _objectSpread(_objectSpread({}, event), {}, {\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds()\n });\n\n this._applyClientOptions(prepared);\n\n this._applyIntegrationsMetadata(prepared); // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n\n\n var finalScope = scope;\n\n if (hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n } // We prepare the result here with a resolved Event.\n\n\n var result = resolvedSyncPromise(prepared); // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n\n if (finalScope) {\n // Collect attachments from the hint and scope\n var attachments = [].concat(_toConsumableArray(hint.attachments || []), _toConsumableArray(finalScope.getAttachments()));\n\n if (attachments.length) {\n hint.attachments = attachments;\n } // In case we have a hub we reassign it.\n\n\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(function (evt) {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return _this5._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n\n return evt;\n });\n }\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n\n }, {\n key: \"_normalizeEvent\",\n value: function _normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n var normalized = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, event), event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(function (b) {\n return _objectSpread(_objectSpread({}, b), b.data && {\n data: normalize(b.data, depth, maxBreadth)\n });\n })\n }), event.user && {\n user: normalize(event.user, depth, maxBreadth)\n }), event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth)\n }), event.extra && {\n extra: normalize(event.extra, depth, maxBreadth)\n }); // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n\n\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace; // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n } // event.spans[].data may contain circular/dangerous data so we need to normalize it\n\n\n if (event.spans) {\n normalized.spans = event.spans.map(function (span) {\n // We cannot use the spread operator here because `toJSON` on `span` is non-enumerable\n if (span.data) {\n span.data = normalize(span.data, depth, maxBreadth);\n }\n\n return span;\n });\n }\n\n return normalized;\n }\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n\n }, {\n key: \"_applyClientOptions\",\n value: function _applyClientOptions(event) {\n var options = this.getOptions();\n var environment = options.environment,\n release = options.release,\n dist = options.dist,\n _options$maxValueLeng = options.maxValueLength,\n maxValueLength = _options$maxValueLeng === void 0 ? 250 : _options$maxValueLeng;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n var exception = event.exception && event.exception.values && event.exception.values[0];\n\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n var request = event.request;\n\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n }\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n\n }, {\n key: \"_applyIntegrationsMetadata\",\n value: function _applyIntegrationsMetadata(event) {\n var integrationsArray = Object.keys(this._integrations);\n\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [].concat(_toConsumableArray(event.sdk.integrations || []), _toConsumableArray(integrationsArray));\n }\n }\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n\n }, {\n key: \"_captureEvent\",\n value: function _captureEvent(event) {\n var hint = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var scope = arguments.length > 2 ? arguments[2] : undefined;\n return this._processEvent(event, hint, scope).then(function (finalEvent) {\n return finalEvent.event_id;\n }, function (reason) {\n if (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n var sentryError = reason;\n\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n\n return undefined;\n });\n }\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n\n }, {\n key: \"_processEvent\",\n value: function _processEvent(event, hint, scope) {\n var _this6 = this;\n\n var options = this.getOptions();\n var sampleRate = options.sampleRate;\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.', 'log'));\n }\n\n var isTransaction = event.type === 'transaction';\n var beforeSendProcessorName = isTransaction ? 'beforeSendTransaction' : 'beforeSend';\n var beforeSendProcessor = options[beforeSendProcessorName]; // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error');\n return rejectedSyncPromise(new SentryError(\"Discarding event because it's not included in the random sample (sampling rate = \".concat(sampleRate, \")\"), 'log'));\n }\n\n return this._prepareEvent(event, hint, scope).then(function (prepared) {\n if (prepared === null) {\n _this6.recordDroppedEvent('event_processor', event.type || 'error');\n\n throw new SentryError('An event processor returned `null`, will not send event.', 'log');\n }\n\n var isInternalException = hint.data && hint.data.__sentry__ === true;\n\n if (isInternalException || !beforeSendProcessor) {\n return prepared;\n }\n\n var beforeSendResult = beforeSendProcessor(prepared, hint);\n return _validateBeforeSendResult(beforeSendResult, beforeSendProcessorName);\n }).then(function (processedEvent) {\n if (processedEvent === null) {\n _this6.recordDroppedEvent('before_send', event.type || 'error');\n\n throw new SentryError(\"`\".concat(beforeSendProcessorName, \"` returned `null`, will not send event.\"), 'log');\n }\n\n var session = scope && scope.getSession();\n\n if (!isTransaction && session) {\n _this6._updateSessionFromEvent(session, processedEvent);\n } // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n\n\n var transactionInfo = processedEvent.transaction_info;\n\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n var source = 'custom';\n processedEvent.transaction_info = _objectSpread(_objectSpread({}, transactionInfo), {}, {\n source: source,\n changes: [].concat(_toConsumableArray(transactionInfo.changes), [{\n source: source,\n // use the same timestamp as the processed event.\n timestamp: processedEvent.timestamp,\n propagations: transactionInfo.propagations\n }])\n });\n }\n\n _this6.sendEvent(processedEvent, hint);\n\n return processedEvent;\n }).then(null, function (reason) {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n _this6.captureException(reason, {\n data: {\n __sentry__: true\n },\n originalException: reason\n });\n\n throw new SentryError(\"Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: \".concat(reason));\n });\n }\n /**\n * Occupies the client with processing and event\n */\n\n }, {\n key: \"_process\",\n value: function _process(promise) {\n var _this7 = this;\n\n this._numProcessing += 1;\n void promise.then(function (value) {\n _this7._numProcessing -= 1;\n return value;\n }, function (reason) {\n _this7._numProcessing -= 1;\n return reason;\n });\n }\n /**\n * @inheritdoc\n */\n\n }, {\n key: \"_sendEnvelope\",\n value: function _sendEnvelope(envelope) {\n if (this._transport && this._dsn) {\n this._transport.send(envelope).then(null, function (reason) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Error while sending event:', reason);\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Transport disabled');\n }\n }\n /**\n * Clears outcomes on this client and returns them.\n */\n\n }, {\n key: \"_clearOutcomes\",\n value: function _clearOutcomes() {\n var outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(function (key) {\n var _key$split = key.split(':'),\n _key$split2 = _slicedToArray(_key$split, 2),\n reason = _key$split2[0],\n category = _key$split2[1];\n\n return {\n reason: reason,\n category: category,\n quantity: outcomes[key]\n };\n });\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n\n }]);\n\n return BaseClient;\n}();\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\n\n\nfunction _validateBeforeSendResult(beforeSendResult, beforeSendProcessorName) {\n var invalidValueError = \"`\".concat(beforeSendProcessorName, \"` must return `null` or a valid event.\");\n\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(function (event) {\n if (!isPlainObject(event) && event !== null) {\n throw new SentryError(invalidValueError);\n }\n\n return event;\n }, function (e) {\n throw new SentryError(\"`\".concat(beforeSendProcessorName, \"` rejected with \").concat(e));\n });\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw new SentryError(invalidValueError);\n }\n\n return beforeSendResult;\n}\n\nexport { BaseClient };","import _classCallCheck from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/createClass\";\nimport _get from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/get\";\nimport _inherits from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport { BaseClient, SDK_VERSION, getCurrentHub, getEnvelopeEndpointWithUrlEncodedAuth } from '@sentry/core';\nimport { getEventDescription, logger, createClientReportEnvelope, dsnToString, serializeEnvelope } from '@sentry/utils';\nimport { eventFromException as _eventFromException, eventFromMessage as _eventFromMessage } from './eventbuilder.js';\nimport { WINDOW } from './helpers.js';\nimport { BREADCRUMB_INTEGRATION_ID } from './integrations/breadcrumbs.js';\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\n\nvar BrowserClient = /*#__PURE__*/function (_BaseClient) {\n _inherits(BrowserClient, _BaseClient);\n\n var _super = _createSuper(BrowserClient);\n\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n function BrowserClient(options) {\n var _this;\n\n _classCallCheck(this, BrowserClient);\n\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [{\n name: 'npm:@sentry/browser',\n version: SDK_VERSION\n }],\n version: SDK_VERSION\n };\n _this = _super.call(this, options);\n\n if (options.sendClientReports && WINDOW.document) {\n WINDOW.document.addEventListener('visibilitychange', function () {\n if (WINDOW.document.visibilityState === 'hidden') {\n _this._flushOutcomes();\n }\n });\n }\n\n return _this;\n }\n /**\n * @inheritDoc\n */\n\n\n _createClass(BrowserClient, [{\n key: \"eventFromException\",\n value: function eventFromException(exception, hint) {\n return _eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"eventFromMessage\",\n value: function eventFromMessage(message) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'info';\n var hint = arguments.length > 2 ? arguments[2] : undefined;\n return _eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"sendEvent\",\n value: function sendEvent(event, hint) {\n // We only want to add the sentry event breadcrumb when the user has the breadcrumb integration installed and\n // activated its `sentry` option.\n // We also do not want to use the `Breadcrumbs` class here directly, because we do not want it to be included in\n // bundles, if it is not used by the SDK.\n // This all sadly is a bit ugly, but we currently don't have a \"pre-send\" hook on the integrations so we do it this\n // way for now.\n var breadcrumbIntegration = this.getIntegrationById(BREADCRUMB_INTEGRATION_ID);\n\n if (breadcrumbIntegration && // We check for definedness of `options`, even though it is not strictly necessary, because that access to\n // `.sentry` below does not throw, in case users provided their own integration with id \"Breadcrumbs\" that does\n // not have an`options` field\n breadcrumbIntegration.options && breadcrumbIntegration.options.sentry) {\n getCurrentHub().addBreadcrumb({\n category: \"sentry.\".concat(event.type === 'transaction' ? 'transaction' : 'event'),\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event)\n }, {\n event: event\n });\n }\n\n _get(_getPrototypeOf(BrowserClient.prototype), \"sendEvent\", this).call(this, event, hint);\n }\n /**\n * @inheritDoc\n */\n\n }, {\n key: \"_prepareEvent\",\n value: function _prepareEvent(event, hint, scope) {\n event.platform = event.platform || 'javascript';\n return _get(_getPrototypeOf(BrowserClient.prototype), \"_prepareEvent\", this).call(this, event, hint, scope);\n }\n /**\n * Sends client reports as an envelope.\n */\n\n }, {\n key: \"_flushOutcomes\",\n value: function _flushOutcomes() {\n var outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No outcomes to send');\n return;\n }\n\n if (!this._dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('Sending outcomes:', outcomes);\n var url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, this._options);\n var envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n try {\n var isRealNavigator = Object.prototype.toString.call(WINDOW && WINDOW.navigator) === '[object Navigator]';\n var hasSendBeacon = isRealNavigator && typeof WINDOW.navigator.sendBeacon === 'function'; // Make sure beacon is not used if user configures custom transport options\n\n if (hasSendBeacon && !this._options.transportOptions) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n var sendBeacon = WINDOW.navigator.sendBeacon.bind(WINDOW.navigator);\n sendBeacon(url, serializeEnvelope(envelope));\n } else {\n // If beacon is not supported or if they are using the tunnel option\n // use our regular transport to send client reports to Sentry.\n this._sendEnvelope(envelope);\n }\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(e);\n }\n }\n }]);\n\n return BrowserClient;\n}(BaseClient);\n\nexport { BrowserClient };","import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\n\nfunction createClientReportEnvelope(discarded_events, dsn, timestamp) {\n var clientReportItem = [{\n type: 'client_report'\n }, {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events: discarded_events\n }];\n return createEnvelope(dsn ? {\n dsn: dsn\n } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };","import { isNativeFetch, logger } from '@sentry/utils';\nimport { WINDOW } from '../helpers.js';\nvar cachedFetchImpl = undefined;\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\n\nfunction getNativeFetchImplementation() {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n /* eslint-disable @typescript-eslint/unbound-method */\n // Fast path to avoid DOM I/O\n\n\n if (isNativeFetch(WINDOW.fetch)) {\n return cachedFetchImpl = WINDOW.fetch.bind(WINDOW);\n }\n\n var document = WINDOW.document;\n var fetchImpl = WINDOW.fetch; // eslint-disable-next-line deprecation/deprecation\n\n if (document && typeof document.createElement === 'function') {\n try {\n var sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n var contentWindow = sandbox.contentWindow;\n\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n\n document.head.removeChild(sandbox);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return cachedFetchImpl = fetchImpl.bind(WINDOW);\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n/** Clears cached fetch impl */\n\n\nfunction clearCachedFetchImplementation() {\n cachedFetchImpl = undefined;\n}\n\nexport { clearCachedFetchImplementation, getNativeFetchImplementation };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createTransport } from '@sentry/core';\nimport { rejectedSyncPromise } from '@sentry/utils';\nimport { clearCachedFetchImplementation, getNativeFetchImplementation } from './utils.js';\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\n\nfunction makeFetchTransport(options) {\n var nativeFetch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getNativeFetchImplementation();\n\n function makeRequest(request) {\n var requestOptions = _objectSpread({\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n // frequently sending events right before the user is switching pages (eg. whenfinishing navigation transactions).\n // Gotchas:\n // - `keepalive` isn't supported by Firefox\n // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch), a request with `keepalive: true`\n // and a content length of > 64 kibibytes returns a network error. We will therefore only activate the flag when\n // we're below that limit.\n keepalive: request.body.length <= 65536\n }, options.fetchOptions);\n\n try {\n return nativeFetch(options.url, requestOptions).then(function (response) {\n return {\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After')\n }\n };\n });\n } catch (e) {\n clearCachedFetchImplementation();\n return rejectedSyncPromise(e);\n }\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeFetchTransport };","import { createTransport } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\n\nvar XHR_READYSTATE_DONE = 4;\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\n\nfunction makeXHRTransport(options) {\n function makeRequest(request) {\n return new SyncPromise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.onerror = reject;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n resolve({\n statusCode: xhr.status,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After')\n }\n });\n }\n };\n\n xhr.open('POST', options.url);\n\n for (var header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeXHRTransport };","import _slicedToArray from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport { createStackParser } from '@sentry/utils'; // global reference to slice\n\nvar UNKNOWN_FUNCTION = '?';\nvar OPERA10_PRIORITY = 10;\nvar OPERA11_PRIORITY = 20;\nvar CHROME_PRIORITY = 30;\nvar WINJS_PRIORITY = 40;\nvar GECKO_PRIORITY = 50;\n\nfunction createFrame(filename, func, lineno, colno) {\n var frame = {\n filename: filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n} // Chromium based browsers: Chrome, Brave, new Opera, new Edge\n\n\nvar chromeRegex = /^\\s*at (?:(.*\\).*?|.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nvar chrome = function chrome(line) {\n var parts = chromeRegex.exec(line);\n\n if (parts) {\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n var subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n\n parts[3] = subMatch[2]; // line\n\n parts[4] = subMatch[3]; // column\n }\n } // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n\n\n var _extractSafariExtensi = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]),\n _extractSafariExtensi2 = _slicedToArray(_extractSafariExtensi, 2),\n func = _extractSafariExtensi2[0],\n filename = _extractSafariExtensi2[1];\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nvar chromeStackLineParser = [CHROME_PRIORITY, chrome]; // gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\n\nvar geckoREgex = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|safari-extension|safari-web-extension|capacitor)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nvar gecko = function gecko(line) {\n var parts = geckoREgex.exec(line);\n\n if (parts) {\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n\n if (isEval) {\n var subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n var filename = parts[3];\n var func = parts[1] || UNKNOWN_FUNCTION;\n\n var _extractSafariExtensi3 = extractSafariExtensionDetails(func, filename);\n\n var _extractSafariExtensi4 = _slicedToArray(_extractSafariExtensi3, 2);\n\n func = _extractSafariExtensi4[0];\n filename = _extractSafariExtensi4[1];\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nvar geckoStackLineParser = [GECKO_PRIORITY, gecko];\nvar winjsRegex = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nvar winjs = function winjs(line) {\n var parts = winjsRegex.exec(line);\n return parts ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined) : undefined;\n};\n\nvar winjsStackLineParser = [WINJS_PRIORITY, winjs];\nvar opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nvar opera10 = function opera10(line) {\n var parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nvar opera10StackLineParser = [OPERA10_PRIORITY, opera10];\nvar opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nvar opera11 = function opera11(line) {\n var parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nvar opera11StackLineParser = [OPERA11_PRIORITY, opera11];\nvar defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\nvar defaultStackParser = createStackParser.apply(void 0, defaultStackLineParsers);\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\n\nvar extractSafariExtensionDetails = function extractSafariExtensionDetails(func, filename) {\n var isSafariExtension = func.indexOf('safari-extension') !== -1;\n var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n return isSafariExtension || isSafariWebExtension ? [func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION, isSafariExtension ? \"safari-extension:\".concat(filename) : \"safari-web-extension:\".concat(filename)] : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };","import { logger } from '@sentry/utils';\nimport { getCurrentHub } from './hub.js';\n/** A class object that can instantiate Client objects. */\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\n\nfunction initAndBind(clientClass, options) {\n if (options.debug === true) {\n if (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n }\n }\n\n var hub = getCurrentHub();\n var scope = hub.getScope();\n\n if (scope) {\n scope.update(options.initialScope);\n }\n\n var client = new clientClass(options);\n hub.bindClient(client);\n}\n\nexport { initAndBind };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { Integrations, getIntegrationsToSetup, initAndBind, getReportDialogEndpoint, getCurrentHub } from '@sentry/core';\nimport { stackParserFromStackParserOptions, supportsFetch, logger, resolvedSyncPromise, addInstrumentationHandler } from '@sentry/utils';\nimport { BrowserClient } from './client.js';\nimport { WINDOW, wrap as wrap$1 } from './helpers.js';\nimport './integrations/index.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport './transports/index.js';\nimport { TryCatch } from './integrations/trycatch.js';\nimport { Breadcrumbs } from './integrations/breadcrumbs.js';\nimport { GlobalHandlers } from './integrations/globalhandlers.js';\nimport { LinkedErrors } from './integrations/linkederrors.js';\nimport { Dedupe } from './integrations/dedupe.js';\nimport { HttpContext } from './integrations/httpcontext.js';\nimport { makeFetchTransport } from './transports/fetch.js';\nimport { makeXHRTransport } from './transports/xhr.js';\nvar defaultIntegrations = [new Integrations.InboundFilters(), new Integrations.FunctionToString(), new TryCatch(), new Breadcrumbs(), new GlobalHandlers(), new LinkedErrors(), new Dedupe(), new HttpContext()];\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\n\nfunction init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n\n if (options.release === undefined) {\n // This supports the variable that sentry-webpack-plugin injects\n if (WINDOW.SENTRY_RELEASE && WINDOW.SENTRY_RELEASE.id) {\n options.release = WINDOW.SENTRY_RELEASE.id;\n }\n }\n\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n var clientOptions = _objectSpread(_objectSpread({}, options), {}, {\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport)\n });\n\n initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\n\n\nfunction showReportDialog() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var hub = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentHub();\n\n // doesn't work without a document (React Native)\n if (!WINDOW.document) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n var _hub$getStackTop = hub.getStackTop(),\n client = _hub$getStackTop.client,\n scope = _hub$getStackTop.scope;\n\n var dsn = options.dsn || client && client.getDsn();\n\n if (!dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = _objectSpread(_objectSpread({}, scope.getUser()), options.user);\n }\n\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n\n var script = WINDOW.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n\n var injectionPoint = WINDOW.document.head || WINDOW.document.body;\n\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\n\n\nfunction lastEventId() {\n return getCurrentHub().lastEventId();\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\n\n\nfunction forceLoad() {// Noop\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\n\n\nfunction onLoad(callback) {\n callback();\n}\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\n\n\nfunction flush(timeout) {\n var client = getCurrentHub().getClient();\n\n if (client) {\n return client.flush(timeout);\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events. No client defined.');\n return resolvedSyncPromise(false);\n}\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\n\n\nfunction close(timeout) {\n var client = getCurrentHub().getClient();\n\n if (client) {\n return client.close(timeout);\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return resolvedSyncPromise(false);\n}\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\nfunction wrap(fn) {\n return wrap$1(fn)();\n}\n\nfunction startSessionOnHub(hub) {\n hub.startSession({\n ignoreDuration: true\n });\n hub.captureSession();\n}\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\n\n\nfunction startSessionTracking() {\n if (typeof WINDOW.document === 'undefined') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n var hub = getCurrentHub(); // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n\n if (!hub.captureSession) {\n return;\n } // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n\n\n startSessionOnHub(hub); // We want to create a session for every navigation as well\n\n addInstrumentationHandler('history', function (_ref) {\n var from = _ref.from,\n to = _ref.to;\n\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n\nexport { close, defaultIntegrations, flush, forceLoad, init, lastEventId, onLoad, showReportDialog, wrap };","import _defineProperty from \"/builds/monserp/front-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport './exports.js';\nimport { Integrations } from '@sentry/core';\nexport { FunctionToString, Hub, InboundFilters, SDK_VERSION, Scope, addBreadcrumb, addGlobalEventProcessor, captureEvent, captureException, captureMessage, configureScope, createTransport, getCurrentHub, getHubFromCarrier, makeMain, setContext, setExtra, setExtras, setTag, setTags, setUser, startTransaction, withScope } from '@sentry/core';\nimport { WINDOW } from './helpers.js';\nexport { WINDOW } from './helpers.js';\nimport * as index from './integrations/index.js';\nexport { BrowserClient } from './client.js';\nexport { makeFetchTransport } from './transports/fetch.js';\nexport { makeXHRTransport } from './transports/xhr.js';\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser } from './stack-parsers.js';\nexport { close, defaultIntegrations, flush, forceLoad, init, lastEventId, onLoad, showReportDialog, wrap } from './sdk.js';\nexport { GlobalHandlers } from './integrations/globalhandlers.js';\nexport { TryCatch } from './integrations/trycatch.js';\nexport { Breadcrumbs } from './integrations/breadcrumbs.js';\nexport { LinkedErrors } from './integrations/linkederrors.js';\nexport { HttpContext } from './integrations/httpcontext.js';\nexport { Dedupe } from './integrations/dedupe.js';\nvar windowIntegrations = {}; // This block is needed to add compatibility with the integrations packages when used with a CDN\n\nif (WINDOW.Sentry && WINDOW.Sentry.Integrations) {\n windowIntegrations = WINDOW.Sentry.Integrations;\n}\n\nvar INTEGRATIONS = _objectSpread(_objectSpread(_objectSpread({}, windowIntegrations), Integrations), index);\n\nexport { INTEGRATIONS as Integrations };","import { isBrowserBundle } from './env.js';\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\n\nfunction isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return !isBrowserBundle() && Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n}\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n\n\nfunction dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\n\n\nfunction loadModule(moduleName) {\n var mod;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {// no-empty\n }\n\n try {\n var _dynamicRequire = dynamicRequire(module, 'process'),\n cwd = _dynamicRequire.cwd;\n\n mod = dynamicRequire(module, \"\".concat(cwd(), \"/node_modules/\").concat(moduleName));\n } catch (e) {// no-empty\n }\n\n return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\nexport { isBrowserBundle };","import { dynamicRequire, isNodeEnv } from './node.js';\nimport { getGlobalObject } from './worldwide.js'; // eslint-disable-next-line deprecation/deprecation\n\nvar WINDOW = getGlobalObject();\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\n\nvar dateTimestampSource = {\n nowSeconds: function nowSeconds() {\n return Date.now() / 1000;\n }\n};\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\n\nfunction getBrowserPerformance() {\n var performance = WINDOW.performance;\n\n if (!performance || !performance.now) {\n return undefined;\n } // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n\n\n var timeOrigin = Date.now() - performance.now();\n return {\n now: function now() {\n return performance.now();\n },\n timeOrigin: timeOrigin\n };\n}\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\n\n\nfunction getNodePerformance() {\n try {\n var perfHooks = dynamicRequire(module, 'perf_hooks');\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n/**\n * The Performance API implementation for the current platform, if available.\n */\n\n\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\nvar timestampSource = platformPerformance === undefined ? dateTimestampSource : {\n nowSeconds: function nowSeconds() {\n return (platformPerformance.timeOrigin + platformPerformance.now()) / 1000;\n }\n};\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\n\nvar dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\n\nvar timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource); // Re-exported with an old name for backwards-compatibility.\n\nvar timestampWithMs = timestampInSeconds;\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\n\nvar usingPerformanceAPI = platformPerformance !== undefined;\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\n\nvar _browserPerformanceTimeOriginMode;\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\n\n\nvar browserPerformanceTimeOrigin = function () {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n var performance = WINDOW.performance;\n\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n var threshold = 3600 * 1000;\n var performanceNow = performance.now();\n var dateNow = Date.now(); // if timeOrigin isn't available set delta to threshold so it isn't used\n\n var timeOriginDelta = performance.timeOrigin ? Math.abs(performance.timeOrigin + performanceNow - dateNow) : threshold;\n var timeOriginIsReliable = timeOriginDelta < threshold; // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n\n var navigationStart = performance.timing && performance.timing.navigationStart;\n var hasNavigationStart = typeof navigationStart === 'number'; // if navigationStart isn't available set delta to threshold so it isn't used\n\n var navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n var navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n } // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n\n\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n}();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds, timestampWithMs, usingPerformanceAPI };","import \"core-js/modules/esnext.global-this.js\";\n\n/** Internal global with common properties and Sentry extensions */\n// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification\n// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js\n// core-js has the following licence:\n//\n// Copyright (c) 2014-2022 Denis Pushkarev\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/** Returns 'obj' if it's the global object, otherwise returns undefined */\nfunction isGlobalObj(obj) {\n return obj && obj.Math == Math ? obj : undefined;\n}\n/** Get's the global object for the current JavaScript runtime */\n\n\nvar GLOBAL_OBJ = typeof globalThis == 'object' && isGlobalObj(globalThis) || // eslint-disable-next-line no-restricted-globals\ntypeof window == 'object' && isGlobalObj(window) || typeof self == 'object' && isGlobalObj(self) || typeof global == 'object' && isGlobalObj(global) || function () {\n return this;\n}() || {};\n/**\n * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8\n */\n\n\nfunction getGlobalObject() {\n return GLOBAL_OBJ;\n}\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\n\n\nfunction getGlobalSingleton(name, creator, obj) {\n var gbl = obj || GLOBAL_OBJ;\n\n var __SENTRY__ = gbl.__SENTRY__ = gbl.__SENTRY__ || {};\n\n var singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n\nexport { GLOBAL_OBJ, getGlobalObject, getGlobalSingleton };"],"names":["objectToString","Object","prototype","toString","isError","wat","call","isInstanceOf","Error","isBuiltin","className","concat","isErrorEvent","isDOMError","isString","isPlainObject","isEvent","Event","isThenable","Boolean","then","base","_e","originalFunctionToString","WINDOW","htmlTreeAsString","elem","keyAttrs","nextStr","currentElem","out","height","len","sepLength","length","_htmlElementAsString","push","parentNode","reverse","join","_oO","el","classes","key","attr","i","tagName","toLowerCase","keyAttrPairs","filter","keyAttr","getAttribute","map","forEach","keyAttrPair","id","split","allowedAttrs","truncate","str","max","arguments","undefined","substr","safeJoin","input","delimiter","Array","isArray","output","value","String","e","isMatchingPattern","pattern","test","indexOf","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","target","source","getOwnPropertyDescriptors","defineProperties","defineProperty","fill","name","replacementFactory","original","wrapped","markFunctionWrapped","_Oo","addNonEnumerableProperty","obj","writable","configurable","proto","getOriginalFunction","func","__sentry_original__","convertToPlainObject","message","stack","getOwnProperties","newObj","type","serializeEventTarget","currentTarget","CustomEvent","detail","Element","extractedProps","property","hasOwnProperty","extractExceptionKeysForMessage","exception","maxLength","sort","includedKeys","serialized","slice","dropUndefinedKeys","inputValue","_dropUndefinedKeys","Map","memoizationMap","memoVal","get","returnValue","set","_i","_Object$keys","_memoVal","_returnValue","item","FunctionToString","this","__init","Function","context","_len","args","_key","__initStatic","logger","PREFIX","CONSOLE_LEVELS","consoleSandbox","callback","originalConsole","wrappedLevels","level","originalWrappedFunc","makeLogger","enabled","enable","disable","__SENTRY_DEBUG__","_GLOBAL_OBJ$console","uuid4","gbl","crypto","msCrypto","randomUUID","replace","getRandomByte","getRandomValues","Uint8Array","Math","random","c","getFirstException","event","values","getEventDescription","eventId","event_id","firstException","addExceptionTypeValue","addExceptionMechanism","newMechanism","currentMechanism","mechanism","handled","mergedData","data","checkOrSetAlreadyCaught","__sentry_captured__","err","arrayify","maybeArray","DEFAULT_IGNORE_ERRORS","InboundFilters","_options","addGlobalEventProcessor","getCurrentHub","eventProcess","hub","self","getIntegration","client","getClient","clientOptions","getOptions","options","internalOptions","allowUrls","denyUrls","ignoreErrors","ignoreInternal","_mergeOptions","_isSentryError","warn","_ref","_ref$type","_ref$value","oO","error","_getPossibleEventMessages","some","_isIgnoredError","url","_getEventFilterUrl","_isDeniedUrl","_isAllowedUrl","_shouldDropEvent","frames","stacktrace","frame","filename","_getLastValidUrl","States","resolvedSyncPromise","SyncPromise","resolve","rejectedSyncPromise","reason","_","reject","executor","__init2","__init3","__init4","__init5","__init6","_resolve","_reject","_state","PENDING","_handlers","onfulfilled","onrejected","_this","result","_executeHandlers","val","onfinally","_this2","isRejected","_this3","_setResult","RESOLVED","_this4","REJECTED","_this5","state","_value","_this6","cachedHandlers","handler","makeSession","startingTime","time","session","sid","init","timestamp","started","duration","status","errors","ignoreDuration","toJSON","Date","toISOString","did","attrs","release","environment","ip_address","ipAddress","user_agent","userAgent","sessionToJSON","updateSession","user","email","username","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_attachments","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","_session","_notifyScopeListeners","_requestSession","requestSession","tags","extras","extra","fingerprint","_fingerprint","_level","_transactionName","span","_span","getSpan","transaction","captureContext","updatedScope","contexts","breadcrumb","maxBreadcrumbs","maxCrumbs","mergedBreadcrumb","attachment","hint","trace","getTraceContext","transactionName","_applyFingerprint","breadcrumbs","sdkProcessingMetadata","_notifyEventProcessors","getGlobalEventProcessors","newData","processors","index","processor","log","final","scope","newScope","Hub","_version","getStackTop","bindClient","_stack","version","setupIntegrations","clone","getScope","getStack","pop","pushScope","popScope","_lastEventId","syntheticException","_withClient","captureException","originalException","captureMessage","captureEvent","_this$getStackTop","_ref$beforeBreadcrumb","beforeBreadcrumb","_ref$maxBreadcrumbs","finalBreadcrumb","addBreadcrumb","setUser","setTags","setExtras","setTag","setExtra","setContext","_this$getStackTop2","oldHub","makeMain","integration","customSamplingContext","_callExtensionMethod","endSession","_sendSessionUpdate","layer","getSession","closeSession","setSession","_this$getStackTop3","_ref2","getUser","currentSession","sendDefaultPii","_this$getStackTop4","captureSession","_this$getStackTop5","method","carrier","getMainCarrier","sentry","__SENTRY__","extensions","registry","getHubFromCarrier","setHubOnCarrier","hasHubOnCarrier","isOlderThan","activeDomain","domain","active","registryHubTopStack","getHubFromActiveDomain","SDK_VERSION","configureScope","withScope","startTransaction","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","_isNativeReflectConstruct","Super","NewTarget","constructor","SentryError","_Error","_super","logLevel","setPrototypeOf","makePromiseBuffer","limit","buffer","remove","task","splice","$","add","taskProducer","drain","timeout","counter","capturedSetTimeout","setTimeout","clearTimeout","memoBuilder","hasWeakSet","WeakSet","inner","has","delete","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","minLen","_arrayLikeToArray","n","from","_unsupportedIterableToArray","F","s","done","f","TypeError","normalCompletion","didErr","step","next","_e2","return","arr","arr2","createStackParser","parsers","sortedParsers","a","b","p","_step","skipFirst","_iterator","_step2","line","cleanedLine","_iterator2","parser","stripSentryFramesAndReverse","stackParserFromStackParserOptions","stackParser","localStack","firstFrameFunction","function","lastFrameFunction","defaultFunctionName","getFunctionName","fn","normalize","depth","Infinity","maxProperties","visit","ERROR","normalizeToSize","maxSize","normalized","jsonSize","memo","_memo","memoize","unmemoize","includes","stringified","stringifyValue","startsWith","valueWithToJSON","jsonValue","numAdded","visitable","visitKey","visitValue","_events","g","window","document","getPrototypeOf","encodeURI","utf8Length","JSON","stringify","createEnvelope","headers","items","addItemToEnvelope","envelope","newItem","_envelope","forEachEnvelopeItem","envelopeItem","envelopeItemType","encodeUTF8","textEncoder","TextEncoder","encode","serializeEnvelope","_envelope2","envHeaders","parts","append","_item","itemHeaders","payload","stringifiedPayload","buffers","totalLength","reduce","acc","buf","merged","offset","concatBuffers","createAttachmentEnvelopeItem","content_type","contentType","attachment_type","attachmentType","ITEM_TYPE_TO_DATA_CATEGORY_MAP","sessions","client_report","user_report","envelopeItemTypeToDataCategory","parseRetryAfterHeader","header","now","headerDelay","parseInt","isNaN","headerDate","parse","disabledUntil","limits","category","all","isRateLimited","updateRateLimits","statusCode","updatedRateLimits","rateLimitHeader","retryAfterHeader","trim","_limit$split","_limit$split2","retryAfter","categories","delay","createTransport","makeRequest","bufferSize","rateLimits","flush","send","filteredEnvelopeItems","envelopeItemDataCategory","recordDroppedEvent","filteredEnvelope","recordEnvelopeLoss","body","response","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","wrap","before","wrapper","__sentry_wrapped__","sentryWrapped","wrappedArguments","arg","ex","addEventProcessor","descriptor","supportsFetch","Headers","Request","Response","isNativeFetch","lastHref","handlers","instrumented","instrument","console","originalConsoleMethod","triggerHandlers","instrumentConsole","triggerDOMHandler","bind","globalDOMEventHandler","makeDOMEventHandler","addEventListener","originalAddEventListener","listener","__sentry_instrumentation_handlers__","handlerForType","refCount","originalRemoveEventListener","_handlers2","instrumentDOM","xhrproto","XMLHttpRequest","originalOpen","_len3","_key3","xhr","xhrInfo","__sentry_xhr__","toUpperCase","match","__sentry_own_request__","onreadystatechangeHandler","readyState","status_code","endTimestamp","startTimestamp","onreadystatechange","_len4","readyStateArgs","_key4","originalSend","_len5","_key5","instrumentXHR","fetch","doc","createElement","sandbox","hidden","head","appendChild","contentWindow","removeChild","supportsNativeFetch","originalFetch","_len2","_key2","handlerData","fetchData","getFetchMethod","getFetchUrl","instrumentFetch","chrome","isChromePackagedApp","app","runtime","hasHistoryApi","history","pushState","replaceState","supportsHistory","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","_len7","_key7","to","location","href","_len6","_key6","instrumentHistory","_oldOnErrorHandler","onerror","msg","column","_oldOnUnhandledRejectionHandler","onunhandledrejection","addInstrumentationHandler","fetchArgs","debounceTimerID","lastCapturedEvent","shouldShortcircuitPreviousDebounce","previous","current","shouldSkipDOMEvent","isContentEditable","globalListener","global","exceptionFromError","parseStackFrames","extractMessage","eventFromError","popSize","framesToPop","reactMinifiedRegexp","getPopSize","attachStacktrace","eventFromString","eventFromUnknownInput","isUnhandledRejection","domException","code","normalizeDepth","__serialized__","eventFromPlainObject","synthetic","GlobalHandlers","_installFunc","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","stackTraceLimit","installFunc","_getHubAndOptions","getHubAndOptions","_getHubAndOptions2","ERROR_TYPES_RE","groups","_enhanceEventWithInitialFrame","_eventFromIncompleteOnError","addMechanismAndCapture","_getHubAndOptions3","_getHubAndOptions4","ev","ev0","ev0s","ev0sf","colno","lineno","getLocationHref","in_app","DEFAULT_EVENT_TARGET","TryCatch","eventTarget","requestAnimationFrame","setInterval","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","_wrapEventTarget","originalCallback","xmlHttpRequestProps","prop","wrapOptions","originalFunction","globalObject","eventName","handleEvent","wrappedEventHandler","originalEventHandler","validSeverityLevels","severityLevelFromString","parseUrl","query","fragment","host","path","protocol","relative","BREADCRUMB_INTEGRATION_ID","Breadcrumbs","dom","_consoleBreadcrumb","_innerDomBreadcrumb","serializeAttribute","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","parsedLoc","parsedFrom","parsedTo","DEFAULT_KEY","LinkedErrors","_limit","linkedErrors","_walkErrorTree","_handler","HttpContext","request","referrer","Referer","Dedupe","eventProcessor","currentEvent","previousEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","_isSameMessageEvent","previousException","_getExceptionFromEvent","currentException","_isSameExceptionEvent","_previousEvent","currentFrames","_getFramesFromEvent","previousFrames","frameA","frameB","currentFingerprint","previousFingerprint","DSN_REGEX","dsnToString","dsn","withPassword","pass","port","projectId","publicKey","dsnFromComponents","components","makeDsn","exec","_match$slice","_match$slice2","_match$slice2$","_match$slice2$2","projectMatch","dsnFromString","component","isValidProtocol","validateDsn","getBaseApiEndpoint","_getIngestEndpoint","_encodedAuth","sdkInfo","sentry_key","sentry_version","sentry_client","encodeURIComponent","getEnvelopeEndpointWithUrlEncodedAuth","tunnelOrOptions","tunnel","_metadata","sdk","getReportDialogEndpoint","dsnLike","dialogOptions","endpoint","encodedOptions","getSdkMetadataForEnvelopeHeader","metadata","_metadata$sdk","createEventEnvelope","eventType","integrations","packages","enhanceEventWithSdkInfo","envelopeHeaders","dynamicSamplingContext","sent_at","createEventEnvelopeHeaders","installedIntegrations","getIntegrationsToSetup","defaultIntegrations","userIntegrations","isDefaultInstance","finalIntegrations","integrationsByName","currentInstance","existingInstance","filterDuplicates","debugIndex","findIndex","_finalIntegrations$sp","debugInstance","ALREADY_SEEN_ERROR","BaseClient","_dsn","_transport","transport","transportOptions","_integrations","_integrationsInitialized","_numProcessing","_outcomes","_process","eventFromException","_captureEvent","promisedEvent","eventFromMessage","_isEnabled","sendSession","_isClientDoneProcessing","clientFinished","transportFlushed","integrationIndex","setupOnce","integrationId","env","attachments","_sendEnvelope","createSessionEnvelope","sendClientReports","crashed","errored","exceptions","sessionNonTerminal","Number","ticked","interval","clearInterval","_this$getOptions","_this$getOptions$norm","_this$getOptions$norm2","normalizeMaxBreadth","prepared","_applyClientOptions","_applyIntegrationsMetadata","finalScope","update","getAttachments","applyToEvent","evt","_normalizeEvent","maxBreadth","spans","dist","_options$maxValueLeng","maxValueLength","integrationsArray","_processEvent","finalEvent","sentryError","sampleRate","isTransaction","beforeSendProcessorName","beforeSendProcessor","_prepareEvent","__sentry__","beforeSendResult","invalidValueError","_validateBeforeSendResult","processedEvent","_updateSessionFromEvent","transactionInfo","transaction_info","changes","propagations","sendEvent","promise","_this7","outcomes","_key$split","_key$split2","quantity","BrowserClient","_BaseClient","_flushOutcomes","breadcrumbIntegration","getIntegrationById","platform","_clearOutcomes","discarded_events","sendBeacon","cachedFetchImpl","getNativeFetchImplementation","fetchImpl","clearCachedFetchImplementation","makeFetchTransport","nativeFetch","requestOptions","referrerPolicy","keepalive","fetchOptions","makeXHRTransport","getResponseHeader","open","setRequestHeader","UNKNOWN_FUNCTION","createFrame","chromeRegex","chromeEvalRegex","chromeStackLineParser","subMatch","_extractSafariExtensi","extractSafariExtensionDetails","_extractSafariExtensi2","geckoREgex","geckoEvalRegex","geckoStackLineParser","_extractSafariExtensi3","_extractSafariExtensi4","winjsRegex","winjsStackLineParser","opera10Regex","opera10StackLineParser","opera11Regex","opera11StackLineParser","defaultStackLineParsers","defaultStackParser","isSafariExtension","isSafariWebExtension","initAndBind","clientClass","debug","initialScope","autoSessionTracking","startSessionTracking","showReportDialog","_hub$getStackTop","getDsn","lastEventId","script","async","src","onLoad","onload","injectionPoint","forceLoad","close","startSessionOnHub","startSession","windowIntegrations","INTEGRATIONS","isNodeEnv","__SENTRY_BROWSER_BUNDLE__","process","dynamicRequire","mod","require","dateTimestampSource","nowSeconds","platformPerformance","module","performance","getNodePerformance","timeOrigin","getBrowserPerformance","timestampSource","dateTimestampInSeconds","timestampInSeconds","threshold","performanceNow","dateNow","timeOriginDelta","abs","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","isGlobalObj","GLOBAL_OBJ","globalThis","getGlobalObject","getGlobalSingleton","creator"],"sourceRoot":""}