{"version":3,"file":"chunks/85c35b20ce798e.js","mappings":"2EACAA,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIC,EAA+B,WAC/B,SAASA,EAAcC,EAAYC,EAAaC,EAAQC,EAAmBC,EAAoBC,EAAyBC,QACzF,IAAvBF,IAAiCA,EAAqB,SAC1B,IAA5BC,IAAsCA,EAA0B,SACrC,IAA3BC,IAAqCA,EAAyB,MAClEC,KAAKC,wBAA0B,KAC/BD,KAAKT,MAAQW,KAAKC,MAAMD,KAAKE,UAAUV,QAAiDA,EAAc,CAAC,IACvGM,KAAKK,MAAQZ,EACbO,KAAKM,QAAUX,QAAuCA,EAAS,GAC/DK,KAAKO,oBAAsBV,EAC3BG,KAAKQ,yBAA2BV,EAChCE,KAAKS,mBAAqBb,EAC1BI,KAAKC,wBAA0BF,CACnC,CAoCA,OAnCAP,EAAckB,UAAUC,IAAM,SAAUC,EAAKC,EAAcC,GACvD,IAAIC,EAAIC,EACJC,EAAMjB,KAAKkB,SAASN,EAAKC,GAC7B,GAAW,MAAPI,EACA,OAAOJ,EAEX,IAAIM,EAAeC,MAAMC,QAAQR,GAC3B,eACOA,EACTS,EAAaF,MAAMC,QAAQJ,GAAO,eAAiBA,EACvD,OAAIH,EACIA,EAAUG,GACHA,GAE6B,QAAvCF,EAAKf,KAAKC,+BAA4C,IAAPc,GAAyBA,EAAGQ,KAAKvB,KAAMA,KAAMY,EAAKO,EAAcG,GACzGT,GAES,MAAhBA,GAAwBM,IAAiBG,EAClCL,GAE6B,QAAvCD,EAAKhB,KAAKC,+BAA4C,IAAPe,GAAyBA,EAAGO,KAAKvB,KAAMA,KAAMY,EAAKO,EAAcG,GACzGT,EACX,EACArB,EAAckB,UAAUQ,SAAW,SAAUN,EAAKC,GAC9C,OAAW,MAAPD,EACOZ,KAAKT,OAEI,MAAhBsB,IACAA,EAAe,MAEI,MAAnBb,KAAKT,MAAMqB,GACJC,EAEJb,KAAKT,MAAMqB,GACtB,EACOpB,CACX,CAlDkC,GAmDlCF,EAAA,QAAkBE,C,wBCpDlB,IAAIgC,EAAaxB,MAAQA,KAAKwB,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUzC,GAAS,IAAM0C,EAAKL,EAAUM,KAAK3C,GAAS,CAAE,MAAO4C,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAS7C,GAAS,IAAM0C,EAAKL,EAAiB,MAAErC,GAAS,CAAE,MAAO4C,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAe9C,EAIa8C,EAAOC,KAAOR,EAAQO,EAAO9C,QAJ1CA,EAIyD8C,EAAO9C,MAJhDA,aAAiBoC,EAAIpC,EAAQ,IAAIoC,GAAE,SAAUG,GAAWA,EAAQvC,EAAQ,KAIjBgD,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EACIO,EAAezC,MAAQA,KAAKyC,aAAgB,SAAUhB,EAASiB,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOtD,IAAM,GAAI8C,EACvJ,SAASM,EAAKG,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAId,EAAG,MAAM,IAAIe,UAAU,mCAC3B,KAAOZ,IAAMA,EAAI,EAAGW,EAAG,KAAOV,EAAI,IAAKA,OACnC,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARY,EAAG,GAASb,EAAU,OAAIa,EAAG,GAAKb,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEtB,KAAKqB,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAEtB,KAAKqB,EAAGa,EAAG,KAAKnB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGY,EAAK,CAAS,EAARA,EAAG,GAAQZ,EAAEtD,QACzBkE,EAAG,IACP,KAAK,EAAG,KAAK,EAAGZ,EAAIY,EAAI,MACxB,KAAK,EAAc,OAAXV,EAAEC,QAAgB,CAAEzD,MAAOkE,EAAG,GAAInB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIa,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKV,EAAEI,IAAIQ,MAAOZ,EAAEG,KAAKS,MAAO,SACxC,QACI,MAAkBd,GAAZA,EAAIE,EAAEG,MAAYU,OAAS,GAAKf,EAAEA,EAAEe,OAAS,KAAkB,IAAVH,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEV,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVU,EAAG,MAAcZ,GAAMY,EAAG,GAAKZ,EAAE,IAAMY,EAAG,GAAKZ,EAAE,IAAM,CAAEE,EAAEC,MAAQS,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYV,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIY,EAAI,KAAO,CACpE,GAAIZ,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIU,KAAKJ,GAAK,KAAO,CAC9DZ,EAAE,IAAIE,EAAEI,IAAIQ,MAChBZ,EAAEG,KAAKS,MAAO,SAEtBF,EAAKf,EAAKnB,KAAKE,EAASsB,EAC5B,CAAE,MAAOZ,GAAKsB,EAAK,CAAC,EAAGtB,GAAIS,EAAI,CAAG,CAAE,QAAUD,EAAIE,EAAI,CAAG,CACzD,GAAY,EAARY,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAElE,MAAOkE,EAAG,GAAKA,EAAG,QAAK,EAAQnB,MAAM,EAC9E,CAtBgDL,CAAK,CAACsB,EAAGC,GAAK,CAAG,CAuBrE,EACApE,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQwE,uBAAoB,EAC5B,IAAIC,EAAW,EAAQ,OACvBzE,EAAQwE,kBAAoB,0CAC5B,IAAIE,EAA+B,WAC/B,SAASA,EAAcC,GACnBjE,KAAKkE,MAAQ,IAAIC,IACjBnE,KAAKoE,QAAUH,CACnB,CAuGA,OAtGAD,EAActD,UAAU2D,oBAAsB,SAAUC,GACpDtE,KAAKuE,iBAAmBD,CAC5B,EACAN,EAActD,UAAU8D,SAAW,SAAUC,EAAKC,GAC9C1E,KAAK2E,SAASF,EAAKC,GAAM,WAEzB,GACJ,EACAV,EAActD,UAAUiE,SAAW,SAAUF,EAAKC,EAAME,EAASC,GAC7D,IAAIC,EAAQ9E,KACZ,IACI,IAAIqC,EAASqC,IACb,OAAIrC,aAAkBR,QACXQ,EAAO0C,OAAM,SAAU5C,GAC1B,OAAO2C,EAAME,UAAUP,EAAKtC,EAAGyC,EAASC,EAC5C,IAEGxC,CACX,CACA,MAAO4C,GACH,OAAOjF,KAAKgF,UAAUP,EAAKQ,EAAOL,EAASC,EAC/C,CACJ,EACAb,EAActD,UAAUwE,UAAY,SAAUT,EAAKQ,EAAOJ,GAEtD,IACoCrD,EAFxBxB,UAEyC,OAAQ,GAAQ,WAC7D,IAAImF,EAAOpE,EAAIqE,EAAWC,EAASC,EAAMC,EAAMC,EAAU9C,EACrD1B,EACJ,OAAOyB,EAAYzC,MAAM,SAAUyF,GAC/B,OAAQA,EAAGzC,OACP,KAAK,EACD,MAA8B,mBAAjB6B,EAAqC,CAAC,EAAa,GACzD,CAAC,EAAaA,KACzB,KAAK,EAED,OADA9D,EAAK0E,EAAGxC,OACD,CAAC,EAAa,GACzB,KAAK,EACDlC,EAAK,KACL0E,EAAGzC,MAAQ,EACf,KAAK,EAKD,OAJAmC,EAAQpE,EACRqE,EAAaH,QAAqCA,EAAQS,MAAM,6BAChEL,EAAUD,aAAqBM,MAC/BJ,EAAOD,EAAUD,EAAUE,KAAO,UAC9BtF,KAAKkE,MAAMyB,IAAIL,GACR,CAAC,IACZtF,KAAKkE,MAAM0B,IAAIN,GACfC,EAAOF,EACDD,EAAUS,MACV7F,KAAK8F,gBAAgBV,GAC3BI,EAA4C,QAAhCxE,EAAKhB,KAAKuE,wBAAqC,IAAPvD,EAAgBA,EAAK,CAAC,EAC1E0B,EAAOxC,KAAKE,UAAU,CAClBqE,IAAKA,EACLsB,UAAWT,EACXC,KAAMA,EACNjB,gBAAiBkB,EACjBL,MAAOA,QAAqCA,EAAQ,CAAC,IAElD,CAAC,EAAca,MAAM1G,EAAQwE,kBAAmB,CAC/CmC,OAAQ,OACRC,QAAS,CACL,kBAAmBlG,KAAKoE,QACxB,mBAAoB+B,OAAOX,EAAkB,SAC7C,sBAAuBW,OAAOX,EAAqB,YACnD,eAAgB,mBAChB,iBAAkB,GAAGY,OAAO1D,EAAKkB,SAErClB,KAAMA,MAG1B,GACJ,IAEKH,MAAK,WAEV,IACKwC,OAAM,WAEX,GACJ,CACA,MAAOsB,GAEP,CACJ,EACArC,EAActD,UAAUsE,UAAY,SAAUP,EAAKQ,EAAOL,EAASC,GAC/D,GAAII,aAAiBlB,EAASuC,2BAC1BrB,aAAiBlB,EAASwC,4BAC1B,MAAMtB,EAIV,OAFAuB,QAAQvB,MAAM,8CAA+CA,GAC7DjF,KAAKkF,UAAUT,EAAKQ,EAAOJ,GACpBD,GACX,EACAZ,EAActD,UAAUoF,gBAAkB,SAAUW,GAChD,IACI,OAAOvG,KAAKE,UAAUqG,EAC1B,CACA,MAAO1F,GACH,MAAO,2CACX,CACJ,EACOiD,CACX,CA5GkC,GA6GlC1E,EAAA,QAAkB0E,C,sBCrJlB,IACQ0C,EAgBJC,EAjBAC,EAAa5G,MAAQA,KAAK4G,YACtBF,EAAgB,SAAUG,EAAGC,GAI7B,OAHAJ,EAAgBtH,OAAO2H,gBAClB,CAAEC,UAAW,cAAgB5F,OAAS,SAAUyF,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAO1H,OAAOsB,UAAUwG,eAAe3F,KAAKuF,EAAGG,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EAC7FP,EAAcG,EAAGC,EAC5B,EACO,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIpD,UAAU,uBAAyByC,OAAOW,GAAK,iCAE7D,SAASK,IAAOnH,KAAKoH,YAAcP,CAAG,CADtCH,EAAcG,EAAGC,GAEjBD,EAAEnG,UAAkB,OAANoG,EAAa1H,OAAOiI,OAAOP,IAAMK,EAAGzG,UAAYoG,EAAEpG,UAAW,IAAIyG,EACnF,GAEJ/H,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQiH,4BAA8BjH,EAAQgH,0BAA4BhH,EAAQqH,yBAAsB,EAExG,SAAWA,GACPA,EAA8C,yBAAI,2BAClDA,EAA6C,wBAAI,kDACjDA,EAAsD,iCAAI,0CAC7D,CAJD,CAIGA,EAAsBrH,EAAQqH,sBAAwBrH,EAAQqH,oBAAsB,CAAC,IACxF,IAAIL,EAA2C,SAAUgB,GAErD,SAAShB,EAA0BiB,GAC/B,IAAIzC,EAAQwC,EAAO/F,KAAKvB,KAAMuH,QAAyCA,EAAUZ,EAAoBa,0BAA4BxH,KAEjI,OADAZ,OAAO2H,eAAejC,EAAOwB,EAA0B5F,WAChDoE,CACX,CACA,OANA8B,EAAUN,EAA2BgB,GAM9BhB,CACX,CAR8C,CAQ5CZ,OACFpG,EAAQgH,0BAA4BA,EACpC,IAAIC,EAA6C,SAAUe,GAEvD,SAASf,EAA4BgB,GACjC,IAAIzC,EAAQwC,EAAO/F,KAAKvB,KAAMuH,IAAYvH,KAE1C,OADAZ,OAAO2H,eAAejC,EAAOyB,EAA4B7F,WAClDoE,CACX,CACA,OANA8B,EAAUL,EAA6Be,GAMhCf,CACX,CARgD,CAQ9Cb,OACFpG,EAAQiH,4BAA8BA,C,gBC1CtCnH,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIkI,EAAuB,WACvB,SAASA,EAAMnC,EAAMoC,EAAY/H,EAAQC,EAAmB+H,EAAsB9H,EAAoB+H,EAA+B9H,EAAyB+H,QAC7H,IAAzBF,IAAmCA,EAAuB,WACnC,IAAvB9H,IAAiCA,EAAqB,SACpB,IAAlC+H,IAA4CA,EAAgC,SAChD,IAA5B9H,IAAsCA,EAA0B,SACzC,IAAvB+H,IAAiCA,EAAqB,IAC1D7H,KAAK8H,sBAAwBH,EAC7B3H,KAAKK,MAAQiF,EACbtF,KAAK+H,OAAS7H,KAAKC,MAAMD,KAAKE,UAAUsH,QAA+CA,EAAa,CAAC,IACrG1H,KAAKM,QAAUX,QAAuCA,EAAS,GAC/DK,KAAKS,mBAAqBb,EAC1BI,KAAKO,oBAAsBV,EAC3BG,KAAKgI,+BAAiCJ,EACtC5H,KAAKQ,yBAA2BV,EAChCE,KAAKiI,oBAAsBJ,CAC/B,CA6CA,OA5CAJ,EAAMS,QAAU,SAAU5C,EAAM/F,EAAOI,EAAQC,EAAmB+H,EAAsB9H,EAAoB+H,EAA+B9H,EAAyB+H,GAMhK,YAL6B,IAAzBF,IAAmCA,EAAuB,WACnC,IAAvB9H,IAAiCA,EAAqB,SACpB,IAAlC+H,IAA4CA,EAAgC,SAChD,IAA5B9H,IAAsCA,EAA0B,SACzC,IAAvB+H,IAAiCA,EAAqB,IACnD,IAAIJ,EAAMnC,EAAM/F,EAAOI,EAAQC,EAAmB+H,EAAsB9H,EAAoB+H,EAA+B9H,EAAyB+H,EAC/J,EACAJ,EAAM/G,UAAUC,IAAM,SAAUC,EAAKC,EAAcC,GAC/C,IAAIgE,EAAQ9E,KACRiB,EAAMjB,KAAK+H,OAAOnH,GACtB,GAAW,MAAPK,EACA,OAAOJ,EAEX,IAAIsH,EAAe,WAEf,OADArD,EAAMsD,2BAA2BxH,GAC1BK,CACX,EACA,OAAIH,EACOA,EAAUG,GAAOkH,IAAiBtH,EAEzB,MAAhBA,UAGOI,UAAeJ,GACtBO,MAAMC,QAAQR,KAAkBO,MAAMC,QAAQJ,GAHvCkH,IAMJtH,CACX,EACA4G,EAAM/G,UAAUQ,SAAW,SAAUN,EAAKC,GAClBwH,MAAhBxH,IACAA,EAAe,MAEnB,IAAII,EAAMjB,KAAK+H,OAAOnH,GAItB,OAHW,MAAPK,GACAjB,KAAKoI,2BAA2BxH,GAE7BK,QAAiCA,EAAMJ,CAClD,EACA4G,EAAM/G,UAAU0H,2BAA6B,SAAUE,GACnD,IAAIvH,EACkC,QAArCA,EAAKf,KAAK8H,6BAA0C,IAAP/G,GAAyBA,EAAGQ,KAAKvB,KAAMA,KAAMsI,EAC/F,EACOb,CACX,CA9D0B,GA+D1BnI,EAAA,QAAkBmI,C,uBChElB,IAAIc,EAAmBvI,MAAQA,KAAKuI,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,EACApJ,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQoJ,4BAA8BpJ,EAAQqJ,8BAAgCrJ,EAAQsJ,mBAAqBtJ,EAAQuJ,iBAAc,EACjI,IAAIC,EAAwBP,EAAgB,EAAQ,QACpDjJ,EAAQuJ,YAAc,kCAItBvJ,EAAQsJ,mBAHR,WACI,MAAO,CAAEG,MAAO,CAAC,EAAGC,QAAS,CAAC,EAAGC,OAAQ,CAAC,EAC9C,EAcA3J,EAAQqJ,8BAZR,WACI,IAAIO,EAAMJ,EAAsBK,QAAQC,QAAQ9J,EAAQuJ,aACxD,GAAIK,EACA,IACI,OAAOhJ,KAAKC,MAAM+I,EACtB,CACA,MAAOjE,GAEP,CAEJ,MAbO,CAAE8D,MAAO,CAAC,EAAGC,QAAS,CAAC,EAAGC,OAAQ,CAAC,EAc9C,EAKA3J,EAAQoJ,4BAHR,SAAqCW,GACjCP,EAAsBK,QAAQG,QAAQhK,EAAQuJ,YAAa3I,KAAKE,UAAUiJ,GAC9E,C,sBC1BA,IAAIE,EAAYvJ,MAAQA,KAAKuJ,UAAa,WAStC,OARAA,EAAWnK,OAAOoK,QAAU,SAAS3G,GACjC,IAAK,IAAI4G,EAAGC,EAAI,EAAGnG,EAAIoG,UAAU/F,OAAQ8F,EAAInG,EAAGmG,IAE5C,IAAK,IAAIzC,KADTwC,EAAIE,UAAUD,GACOtK,OAAOsB,UAAUwG,eAAe3F,KAAKkI,EAAGxC,KACzDpE,EAAEoE,GAAKwC,EAAExC,IAEjB,OAAOpE,CACX,EACO0G,EAAS/G,MAAMxC,KAAM2J,UAChC,EACAvK,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IAmBtDD,EAAA,QAlBA,SAAsBsK,EAAWC,EAAMvF,EAAiB/E,EAAOiG,EAAU3F,QACvD,IAAVN,IAAoBA,EAAQ,WACf,IAAbiG,IAAuBA,EAAW,MACtC,IAAIsE,EAAUD,EAKd,OAJIC,aAAyC,EAASA,EAAQC,2BAC1DD,EAAUP,EAAS,CAAC,EAAGM,IACRE,kBAEZ,CACHC,KAAMC,KAAKC,MACXN,UAAWA,EACXtF,gBAAiBA,EACjBuF,KAAMC,EACNvK,MAAOA,EACPiG,SAAUA,EACV3F,mBAAoBA,EAE5B,C,gBC7BAT,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ6K,aAAU,EAElB7K,EAAQ6K,QAAU,O,wBCHlB,IAAIZ,EAAYvJ,MAAQA,KAAKuJ,UAAa,WAStC,OARAA,EAAWnK,OAAOoK,QAAU,SAAS3G,GACjC,IAAK,IAAI4G,EAAGC,EAAI,EAAGnG,EAAIoG,UAAU/F,OAAQ8F,EAAInG,EAAGmG,IAE5C,IAAK,IAAIzC,KADTwC,EAAIE,UAAUD,GACOtK,OAAOsB,UAAUwG,eAAe3F,KAAKkI,EAAGxC,KACzDpE,EAAEoE,GAAKwC,EAAExC,IAEjB,OAAOpE,CACX,EACO0G,EAAS/G,MAAMxC,KAAM2J,UAChC,EACIS,EAAmBpK,MAAQA,KAAKoK,kBAAqBhL,OAAOiI,OAAS,SAAUgD,EAAGC,EAAGC,EAAGC,QAC7EnC,IAAPmC,IAAkBA,EAAKD,GAC3B,IAAIE,EAAOrL,OAAOsL,yBAAyBJ,EAAGC,GACzCE,KAAS,QAASA,GAAQH,EAAE7B,WAAagC,EAAKE,UAAYF,EAAKG,gBAClEH,EAAO,CAAEI,YAAY,EAAMlK,IAAK,WAAa,OAAO2J,EAAEC,EAAI,IAE5DnL,OAAOC,eAAegL,EAAGG,EAAIC,EAChC,EAAI,SAAUJ,EAAGC,EAAGC,EAAGC,QACTnC,IAAPmC,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGO,EAAsB9K,MAAQA,KAAK8K,qBAAwB1L,OAAOiI,OAAS,SAAUgD,EAAG7G,GACxFpE,OAAOC,eAAegL,EAAG,UAAW,CAAEQ,YAAY,EAAMtL,MAAOiE,GAClE,EAAI,SAAS6G,EAAG7G,GACb6G,EAAW,QAAI7G,CACnB,GACIuH,EAAgB/K,MAAQA,KAAK+K,cAAiB,SAAUvC,GACxD,GAAIA,GAAOA,EAAIC,WAAY,OAAOD,EAClC,IAAInG,EAAS,CAAC,EACd,GAAW,MAAPmG,EAAa,IAAK,IAAI+B,KAAK/B,EAAe,YAAN+B,GAAmBnL,OAAOsB,UAAUwG,eAAe3F,KAAKiH,EAAK+B,IAAIH,EAAgB/H,EAAQmG,EAAK+B,GAEtI,OADAO,EAAmBzI,EAAQmG,GACpBnG,CACX,EACIb,EAAaxB,MAAQA,KAAKwB,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUzC,GAAS,IAAM0C,EAAKL,EAAUM,KAAK3C,GAAS,CAAE,MAAO4C,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAS7C,GAAS,IAAM0C,EAAKL,EAAiB,MAAErC,GAAS,CAAE,MAAO4C,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAe9C,EAIa8C,EAAOC,KAAOR,EAAQO,EAAO9C,QAJ1CA,EAIyD8C,EAAO9C,MAJhDA,aAAiBoC,EAAIpC,EAAQ,IAAIoC,GAAE,SAAUG,GAAWA,EAAQvC,EAAQ,KAIjBgD,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EACIO,EAAezC,MAAQA,KAAKyC,aAAgB,SAAUhB,EAASiB,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOtD,IAAM,GAAI8C,EACvJ,SAASM,EAAKG,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAId,EAAG,MAAM,IAAIe,UAAU,mCAC3B,KAAOZ,IAAMA,EAAI,EAAGW,EAAG,KAAOV,EAAI,IAAKA,OACnC,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARY,EAAG,GAASb,EAAU,OAAIa,EAAG,GAAKb,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEtB,KAAKqB,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAEtB,KAAKqB,EAAGa,EAAG,KAAKnB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGY,EAAK,CAAS,EAARA,EAAG,GAAQZ,EAAEtD,QACzBkE,EAAG,IACP,KAAK,EAAG,KAAK,EAAGZ,EAAIY,EAAI,MACxB,KAAK,EAAc,OAAXV,EAAEC,QAAgB,CAAEzD,MAAOkE,EAAG,GAAInB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIa,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKV,EAAEI,IAAIQ,MAAOZ,EAAEG,KAAKS,MAAO,SACxC,QACI,MAAkBd,GAAZA,EAAIE,EAAEG,MAAYU,OAAS,GAAKf,EAAEA,EAAEe,OAAS,KAAkB,IAAVH,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEV,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVU,EAAG,MAAcZ,GAAMY,EAAG,GAAKZ,EAAE,IAAMY,EAAG,GAAKZ,EAAE,IAAM,CAAEE,EAAEC,MAAQS,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYV,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIY,EAAI,KAAO,CACpE,GAAIZ,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIU,KAAKJ,GAAK,KAAO,CAC9DZ,EAAE,IAAIE,EAAEI,IAAIQ,MAChBZ,EAAEG,KAAKS,MAAO,SAEtBF,EAAKf,EAAKnB,KAAKE,EAASsB,EAC5B,CAAE,MAAOZ,GAAKsB,EAAK,CAAC,EAAGtB,GAAIS,EAAI,CAAG,CAAE,QAAUD,EAAIE,EAAI,CAAG,CACzD,GAAY,EAARY,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAElE,MAAOkE,EAAG,GAAKA,EAAG,QAAK,EAAQnB,MAAM,EAC9E,CAtBgDL,CAAK,CAACsB,EAAGC,GAAK,CAAG,CAuBrE,EACI+E,EAAmBvI,MAAQA,KAAKuI,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,EACApJ,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIyL,EAAkBzC,EAAgB,EAAQ,QAC1C0C,EAAkB1C,EAAgB,EAAQ,QAC1CxE,EAAW,EAAQ,OACnBmH,EAAU3C,EAAgB,EAAQ,QAClC4C,EAAoB5C,EAAgB,EAAQ,QAC5C6C,EAAkB7C,EAAgB,EAAQ,QAC1C8C,EAAmB9C,EAAgB,EAAQ,QAC3C+C,EAAsB/C,EAAgB,EAAQ,QAC9CgD,EAAiBR,EAAa,EAAQ,QACtCjC,EAAwBP,EAAgB,EAAQ,QAChDiD,EAAW,EAAQ,OACnBC,EAAalD,EAAgB,EAAQ,QACrCmD,EAAmB,EAAQ,MAC3BC,EAA+B,WAC/B,SAASA,EAAc1H,EAAQ4F,EAAM+B,GACjC,IAAI9G,EAAQ9E,KAcZ,GAbAA,KAAK6L,aAAc,EACnB7L,KAAK8L,oBAAsB,KAC3B9L,KAAK+L,mCAAqC,SAAUC,EAAO1D,EAAe2D,QAC7C,IAArBA,IAA+BA,GAAmB,GACtD,IAAIC,EAAsB,GACtBC,EAAYH,EAAMhE,+BAClBoE,EAAaJ,EAAM/D,oBAAoBoE,SAAS/D,GAChD8D,IACAF,EAAsBF,EAAMxL,yBAC5B2L,EAAYH,EAAMzL,qBAEtBuE,EAAMwH,QAAQC,iBAAiBzH,EAAM0H,UAAUC,MAAOT,EAAM3L,MAAO2L,EAAM1L,QAAS6L,EAAWD,EAAqB5D,EAAe8D,EAAYJ,EAAMvL,mBAAoBwL,EAC3K,GAC8E,KAAzEL,aAAyC,EAASA,EAAQc,aACxC,iBAAXzI,IAAwBA,EAAO0I,WAAW,YAClD,MAAM,IAAI5I,EAASwC,4BAA4B,uGAEnDvG,KAAK4M,YAAa,EAAIpB,EAAStB,OAC/BlK,KAAK6M,eAAiB,IAAI5B,EAAgB9B,QAAQlF,GAClDjE,KAAK8M,QAAS,EACd9M,KAAK+M,SAAW,IAAIzB,EAAoBnC,QAAQyC,GAChD9C,EAAsBK,QAAQ6D,SAAWhN,KAAK+M,SAASE,oBACvDjN,KAAKkN,YAAa,EAAIxB,EAAiB/C,iCACvC3I,KAAKwM,UAAY,IAAIrB,EAAkBhC,QAAQlF,EAAQjE,KAAKmN,eAAetD,QAAmCA,EAAO,MAAO7J,KAAK+M,SAASK,kBAC1IpN,KAAKqN,SAAW,IAAIhC,EAAiBlC,QAAQnJ,KAAK+M,SAAU/M,KAAKwM,UAAWxM,KAAK6M,gBACjF7M,KAAKsM,QAAU,IAAIlB,EAAgBjC,QAAQnJ,KAAK+M,SAAU/M,KAAKwM,UAAWxM,KAAKqN,SAAUrN,KAAK6M,gBAC9F7M,KAAKsN,OAAS,IAAI/B,EAAepC,QAAQnJ,KAAKwM,UAAWxM,KAAKsM,QAAQiB,8BAA+BvN,KAAK+M,SAASS,kBACnHxN,KAAK6M,eAAexI,oBAAoBrE,KAAKwM,UAAUjI,kBACjB,MAAlCvE,KAAK+M,SAASS,mBACdxN,KAAK8M,QAAS,EACd9M,KAAK6L,aAAc,EACnB4B,YAAW,WAAc,OAAO3I,EAAM4I,eAAiB,GAAG,IAElE,CAgbA,OA/aA/B,EAAcjL,UAAUiN,oBAAsB,SAAUH,GACpD,IAAI1I,EAAQ9E,KACZA,KAAK6M,eAAelI,SAAS,uBAAuB,WAChDG,EAAMwI,OAAOM,UAAUJ,GAClB1I,EAAMgI,SAGPhI,EAAMgI,QAAS,EACfhI,EAAM+G,aAAc,GAIxB/G,EAAMwH,QAAQuB,mBAClB,IAAG,WACC/I,EAAMgI,QAAS,EACfhI,EAAM+G,aAAc,CACxB,GACJ,EACAF,EAAcjL,UAAUoN,gBAAkB,WACtC,OAAOtM,EAAUxB,UAAM,OAAQ,GAAQ,WACnC,IAAI8E,EAAQ9E,KACZ,OAAOyC,EAAYzC,MAAM,SAAUe,GAC/B,MAAO,CAAC,EAAcf,KAAK6M,eAAelI,SAAS,mBAAmB,WAAc,OAAOnD,EAAUsD,OAAO,OAAQ,GAAQ,WACpH,IAAI+E,EACA/E,EAAQ9E,KACZ,OAAOyC,EAAYzC,MAAM,SAAUe,GAC/B,OAAgC,MAA5Bf,KAAK8L,oBACE,CAAC,EAAc9L,KAAK8L,qBAE3B9L,KAAK8M,OACE,CAAC,EAAcjL,QAAQC,YAElC9B,KAAK6L,aAAc,EACf7L,KAAK+M,SAASL,UACP,CAAC,EAAc7K,QAAQC,YAElC+H,EAAO7J,KAAKwM,UAAUC,MACtBzM,KAAK8L,oBAAsB9L,KAAK+N,oBAAoBlE,EAAM7J,KAAK+M,SAASiB,eACnEzL,MAAK,WAEV,IACKwC,OAAM,SAAU5C,GAEjB,OADA2C,EAAM+H,eAAe3H,UAAU,qCAAsC/C,GAC9D,CAAE8L,SAAS,EAAO1G,QAASpF,EAAEoF,QACxC,IACKhF,MAAK,WAEV,IACK2L,SAAQ,WAAc,OAAO1M,EAAUsD,OAAO,OAAQ,GAAQ,WAC/D,OAAOrC,EAAYzC,MAAM,SAAUe,GAI/B,OAHAf,KAAK8L,oBAAsB,KAC3B9L,KAAK8M,QAAS,EACd9M,KAAK0N,gBACE,CAAC,EACZ,GACJ,GAAI,IACG,CAAC,EAAc1N,KAAK8L,sBAC/B,GACJ,GAAI,IAAG,WAGH,OAFAhH,EAAMgI,QAAS,EACfhI,EAAM+G,aAAc,EACbhK,QAAQC,SACnB,IACR,GACJ,GACJ,EACA6J,EAAcjL,UAAUyN,qBAAuB,WAC3C,IAAIrJ,EAAQ9E,KACZ,OAAOA,KAAK6M,eAAelI,SAAS,wBAAwB,WACxD,OAAOG,EAAMwI,OAAOc,4BACxB,IAAG,WACC,MAAO,CACHpE,KAAMC,KAAKC,MACXmE,OAAQ9C,EAAe+C,iBAAiB5I,MAEhD,GACJ,EAOAiG,EAAcjL,UAAU6N,UAAY,SAAUC,GAC1C,OAAOxO,KAAKyO,eAAeD,EAAU,YACzC,EACA7C,EAAcjL,UAAUgO,qCAAuC,SAAUF,GACrE,OAAOxO,KAAKyO,eAAeD,EAAU,uCACzC,EACA7C,EAAcjL,UAAUiO,gBAAkB,SAAUH,GAChD,IAAI1J,EAAQ9E,KACZA,KAAK6M,eAAerI,SAAS,mBAAmB,WAC5CM,EAAM8J,qBAAqBJ,EAC/B,GACJ,EAOA7C,EAAcjL,UAAUmO,UAAY,SAAUpP,GAC1C,OAAOO,KAAK8O,eAAerP,EAAY,YAC3C,EACAkM,EAAcjL,UAAUqO,qCAAuC,SAAUtP,GACrE,OAAOO,KAAK8O,eAAerP,EAAY,uCAC3C,EACAkM,EAAcjL,UAAUsO,kBAAoB,SAAUvP,GAClD,IAAIqF,EAAQ9E,KACZA,KAAK6M,eAAerI,SAAS,qBAAqB,WAC9CM,EAAMmK,uBAAuBxP,EACjC,GACJ,EACAkM,EAAcjL,UAAUwO,cAAgB,SAAUC,GAC9C,OAAOnP,KAAK6O,UAAUM,EAC1B,EACAxD,EAAcjL,UAAU0O,yCAA2C,SAAUD,GACzE,OAAOnP,KAAK+O,qCAAqCI,EACrD,EACAxD,EAAcjL,UAAU2O,sBAAwB,SAAUF,GACtDnP,KAAKgP,kBAAkBG,EAC3B,EACAxD,EAAcjL,UAAU4O,SAAW,SAAUC,GACzC,OAAOvP,KAAKwP,cAAcD,EAAW,WACzC,EACA5D,EAAcjL,UAAU+O,oCAAsC,SAAUF,GACpE,OAAOvP,KAAKwP,cAAcD,EAAW,sCACzC,EACA5D,EAAcjL,UAAUgP,0BAA4B,SAAUH,EAAWjH,GACrE,IAAIxD,EAAQ9E,KACZA,KAAK6M,eAAerI,SAAS,6BAA6B,WACtD,IAAIwH,EAAQlH,EAAM6K,mBAAmB,KAAMJ,GAC3CzK,EAAMiH,mCAAmCC,EAAO1D,GAAe,EACnE,GACJ,EACAqD,EAAcjL,UAAUkP,SAAW,SAAUhG,EAAWrK,EAAOiG,GAC3D,IAAIV,EAAQ9E,UACE,IAAVT,IAAoBA,EAAQ,WACf,IAAbiG,IAAuBA,EAAW,MACtCxF,KAAK6M,eAAerI,SAAS,YAAY,WACrC,IAAKM,EAAMwH,UAAYxH,EAAM0H,UAAUpI,QACnC,MAAM,IAAIL,EAASuC,0BAA0BvC,EAAS4C,oBAAoBkJ,kCAE9E,GAAyB,iBAAdjG,GAA+C,IAArBA,EAAUhG,OAA/C,CAGA,IAAIkM,GAAQ,EAAIrE,EAAWtC,SAASS,EAAW9E,EAAM0H,UAAUC,MAAO3H,EAAM0H,UAAUjI,iBAAkBhF,EAAOiG,GAC/GV,EAAMwH,QAAQyD,IAAID,EAFlB,CAGJ,GACJ,EACAnE,EAAcjL,UAAUsP,qBAAuB,SAAUnG,EAAMoG,GAC3D,IAEIC,EAFApL,EAAQ9E,KACRmQ,EAAkBlG,KAAKC,MAE3B,OAAOlK,KAAK6M,eAAelI,SAAS,wBAAwB,WACxD,IAAKG,EAAMsL,mBACP,MAAM,IAAIrM,EAASuC,0BAA0BvC,EAAS4C,oBAAoB0J,0BAS9E,OAPAH,EAAyB,SAAUjC,EAAShJ,GACxC,IAAIqL,EAAKxL,EAAMiI,SAASwD,6BACxBD,SAAwCA,EAAGrG,KAAKC,MAAQiG,EAAiBlC,EAAShJ,EACtF,EACAH,EAAM0H,UAAUC,MAAQ3H,EAAMqI,eAAetD,GAC7C/E,EAAMwI,OAAOM,UAAUqC,GACvBC,GAAuB,EAAM,OACtB,CACX,IAAG,WAEC,OADAA,SAAgFA,GAAuB,EAAO,wDACvG,CACX,GACJ,EACAvE,EAAcjL,UAAU8P,WAAa,SAAU3G,GAC3C,OAAOrI,EAAUxB,UAAM,OAAQ,GAAQ,WACnC,IAAImQ,EAAiBD,EACjBpL,EAAQ9E,KACZ,OAAOyC,EAAYzC,MAAM,SAAUe,GAE/B,OADAoP,EAAkBlG,KAAKC,MAChB,CAAC,EAAclK,KAAK6M,eAAelI,SAAS,cAAc,WAAc,OAAOnD,EAAUsD,OAAO,OAAQ,GAAQ,WAC/G,IAAI2L,EACA3L,EAAQ9E,KACZ,OAAOyC,EAAYzC,MAAM,SAAUe,GAC/B,OAAQA,EAAGiC,OACP,KAAK,EACD,IAAKhD,KAAKoQ,mBACN,MAAM,IAAIrM,EAASuC,0BAA0BvC,EAAS4C,oBAAoB0J,0BAS9E,OAPAH,EAAyB,SAAUjC,EAAShJ,GACxC,IAAIqL,EAAKxL,EAAMiI,SAASwD,6BACxBD,SAAwCA,EAAGrG,KAAKC,MAAQiG,EAAiBlC,EAAShJ,EACtF,EACAjF,KAAKwM,UAAUC,MAAQzM,KAAKmN,eAAetD,GAC3C7J,KAAKsN,OAAOkD,aACZxQ,KAAKsM,QAAQoE,kBACqB,MAA5B1Q,KAAK8L,oBAAqC,CAAC,EAAa,GACvD,CAAC,EAAa9L,KAAK8L,qBAC9B,KAAK,EACD/K,EAAGkC,OACHlC,EAAGiC,MAAQ,EACf,KAAK,EACD,OAAIhD,KAAK+M,SAASL,WACdwD,GAAuB,EAAM,MACtB,CAAC,EAAcrO,QAAQC,SAAQ,MAE1C2O,EAAczQ,KAAKwM,UAAUC,MAC7BzM,KAAK8L,oBAAsB9L,KAAK+N,oBAAoB0C,GAAavC,SAAQ,WACrEpJ,EAAMgH,oBAAsB,IAChC,IACO,CAAC,EAAc9L,KAAK8L,oBAClBvJ,MAAK,WAEN,OADA2N,GAAuB,EAAM,MACtBrO,QAAQC,SAAQ,EAC3B,IACKiD,OAAM,SAAUE,GAEjB,OADAiL,GAAuB,EAAO,0BAA0B9J,OAAOnB,IACxDpD,QAAQC,SAAQ,EAC3B,MAEhB,GACJ,GAAI,IAAG,WAEH,OADAoO,GAAuB,EAAO,uDACvBrO,QAAQC,SAAQ,EAC3B,IACR,GACJ,GACJ,EAKA6J,EAAcjL,UAAUiQ,SAAW,WAC/B,IAAI7L,EAAQ9E,KACZA,KAAK6M,eAAerI,SAAS,YAAY,WACrCM,EAAMwH,QAAQqE,UAClB,GACJ,EAIAhF,EAAcjL,UAAUkQ,YAAc,WAClC,IAAI9L,EAAQ9E,KACZ,OAAOA,KAAK6M,eAAelI,SAAS,eAAe,WAAc,OAAOG,EAAM0H,UAAUjI,iBAAiBsM,QAAU,IAAG,WAAc,MAAO,EAAI,GACnJ,EACAlF,EAAcjL,UAAU0P,iBAAmB,WACvC,OAAOpQ,KAAK6L,WAChB,EACAF,EAAcjL,UAAUoQ,aAAe,SAAUC,EAAM1O,GACnDrC,KAAKgR,aAAa,QAASD,EAAM1O,EACrC,EACAsJ,EAAcjL,UAAUuQ,eAAiB,SAAUC,EAAQ7O,GACvDrC,KAAKgR,aAAa,UAAWE,EAAQ7O,EACzC,EACAsJ,EAAcjL,UAAUyQ,cAAgB,SAAUnF,EAAO3J,GACrDrC,KAAKgR,aAAa,SAAUhF,EAAO3J,EACvC,EACAsJ,EAAcjL,UAAU0Q,aAAe,SAAU/H,GAC7C,IAAIvE,EAAQ9E,KACZA,KAAK6M,eAAerI,SAAS,gBAAgB,WACzCM,EAAMoI,WAAa7D,QAA6CA,GAAY,EAAIqC,EAAiB9C,uBACjG,EAAI8C,EAAiBhD,6BAA6B5D,EAAMoI,WAC5D,GACJ,EACAvB,EAAcjL,UAAU2Q,aAAe,WACnC,IAAIvM,EAAQ9E,KACZ,OAAOA,KAAK6M,eAAelI,SAAS,gBAAgB,WAAc,OAAOG,EAAMoI,UAAY,IAAG,WAAc,OAAO,EAAIxB,EAAiB9C,qBAAuB,GACnK,EAEA+C,EAAcjL,UAAUgN,cAAgB,WACpC,IAAI5I,EAAQ9E,KACZA,KAAK6M,eAAerI,SAAS,gBAAgB,WACzCM,EAAM0H,UAAU8E,eAChBxM,EAAMwH,QAAQuB,oBAAoBtL,MAAK,WAEvC,GACJ,GACJ,EACAoJ,EAAcjL,UAAUyM,eAAiB,SAAUtD,GAC/C,IAAI0H,EAAW,CAAC,EAChB,IACIA,EAAWrR,KAAKC,MAAMD,KAAKE,UAAUyJ,GACzC,CACA,MAAO5E,GACH,MAAM,IAAIlB,EAASwC,4BAA4B,kDACnD,CAIA,OAHiC,MAA7BvG,KAAK+M,SAASyE,cACdD,EAAWhI,EAASA,EAAS,CAAC,EAAGgI,GAAW,CAAEE,mBAAoBzR,KAAK+M,SAASyE,eAE7ED,CACX,EACA5F,EAAcjL,UAAUgR,mBAAqB,WACzC,IAAK1R,KAAKsN,OAAOqE,WACb,MAAM,IAAI5N,EAASuC,yBAE3B,EACAqF,EAAcjL,UAAUkR,8BAAgC,WACpD,MAAO,CACH5H,KAAMC,KAAKC,MACXmE,OAAQ9C,EAAe+C,iBAAiB5I,MAEhD,EACAiG,EAAcjL,UAAUqN,oBAAsB,SAAUlE,EAAMgI,GAE1D,YADgB,IAAZA,IAAsBA,EAAU7R,KAAK+M,SAASiB,eAC3CxM,EAAUxB,UAAM,OAAQ,GAAQ,WACnC,IAAI8R,EAAWC,EACXjN,EAAQ9E,KACZ,OAAOyC,EAAYzC,MAAM,SAAUe,GAI/B,OAFA+Q,EAAY9R,KAAKsN,OAAO0E,kBAAkBnI,GAC1CkI,EAAwB/R,KAAKsN,OAAO2E,yBAAyBpI,GACtD,CAAC,EAAc7J,KAAKqN,SAClB6E,YAAYrI,EAAMiI,EAAWD,EAASE,GACtCI,YAAW,SAAUC,IAClBA,aAAmC,EAASA,EAAKC,cACjDvN,EAAMwI,OAAOgF,KAAKzI,EAAMuI,GAAM,EAEtC,IACK7P,MAAK,SAAU6P,GAAQ,OAAO5Q,EAAUsD,OAAO,OAAQ,GAAQ,WAChE,IAAIA,EAAQ9E,KACZ,OAAOyC,EAAYzC,MAAM,SAAUe,GAC/B,MAAO,CAAC,EAAcf,KAAK6M,eAAerI,SAAS,sBAAsB,WAAc,OAAOhD,EAAUsD,OAAO,OAAQ,GAAQ,WACvH,OAAOrC,EAAYzC,MAAM,SAAUe,GAC/B,OAAQA,EAAGiC,OACP,KAAK,EACD,OAAMoP,aAAmC,EAASA,EAAKC,aAChD,CAAC,EAAarS,KAAKsN,OAAOgF,KAAKzI,EAAMuI,IADgC,CAAC,EAAa,GAE9F,KAAK,EAED,OADArR,EAAGkC,OACI,CAAC,EAAa,GACzB,KAAK,GACGmP,aAAmC,EAASA,EAAKG,gBACjDvS,KAAKsN,OAAOkF,oBAAoBjH,EAAe+C,iBAAiBmE,oBAEpE1R,EAAGiC,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAI,IACZ,GACJ,GAAI,IACZ,GACJ,GACJ,EACA2I,EAAcjL,UAAU+N,eAAiB,SAAUD,EAAUkE,GACzD,IAAI5N,EAAQ9E,KACZ,OAAOA,KAAK6M,eAAelI,SAAS+N,GAAU,WAC1C,GAAgD,kBAArC5N,EAAMoI,WAAWnE,MAAMyF,GAC9B,OAAO1J,EAAMoI,WAAWnE,MAAMyF,GAElC,IAAInM,EAASyC,EAAM6N,kBAAkBnE,GAIrC,MAHiB,cAAbkE,GACA5N,EAAM8J,qBAAqBJ,EAAUnM,IAEZ,IAAtBA,EAAO0O,KAAKxR,KACvB,IAAG,WAAc,OAAO,CAAO,GACnC,EACAoM,EAAcjL,UAAUiS,kBAAoB,SAAUnE,GAElD,GADAxO,KAAK0R,qBACmB,iBAAblD,GAA6C,IAApBA,EAAS5K,OACzC,MAAM,IAAIG,EAASwC,4BAA4B,6CAEnD,OAAOvG,KAAKsN,OAAOiB,UAAUC,EACjC,EACA7C,EAAcjL,UAAUkO,qBAAuB,SAAUJ,EAAUoE,GAC/D,IAAI3G,GAAoB2G,EACpBvQ,EAASuQ,QAAiDA,EAAc5S,KAAK2S,kBAAkBnE,GAC/FuC,EAAO1O,EAAO0O,KAClB/Q,KAAKsM,QAAQqC,gBAAgB3O,KAAKwM,UAAUC,MAAO+B,EAAUuC,EAAKxR,MAAOwR,EAAK8B,QAAS9B,EAAK+B,oBAAqBzQ,EAAOzC,kBAAmBqM,EAC/I,EACAN,EAAcjL,UAAUoO,eAAiB,SAAUrP,EAAYiT,GAC3D,IAAI5N,EAAQ9E,KACZ,OAAOA,KAAK6M,eAAelI,SAAS+N,GAAU,WAC1C,GAAI5N,EAAMoI,WAAWlE,QAAQvJ,GACzB,OAAO,IAAIuL,EAAgB7B,QAAQ1J,EAAYqF,EAAMoI,WAAWlE,QAAQvJ,GAAa,iBAAkB,CACnG4O,OAAQ9C,EAAe+C,iBAAiByE,cACxC/I,KAAMC,KAAKC,QAGnB,IAAI7H,EAASyC,EAAMkO,oBAAoBvT,GAIvC,MAHiB,cAAbiT,GACA5N,EAAMmK,uBAAuBxP,EAAY4C,GAEtCA,CACX,IAAG,WAAc,OAAOyC,EAAMmO,gBAAgBxT,EAAa,GAC/D,EACAkM,EAAcjL,UAAUsS,oBAAsB,SAAUvT,GAEpD,GADAO,KAAK0R,qBACqB,iBAAfjS,GAAiD,IAAtBA,EAAWmE,OAC7C,MAAM,IAAIG,EAASwC,4BAA4B,+CAEnD,OAAOvG,KAAKsN,OAAOuB,UAAUpP,EACjC,EACAkM,EAAcjL,UAAUuO,uBAAyB,SAAUxP,EAAYyR,GACnE,IAAIjF,GAAoBiF,EACpBgC,EAAchC,QAAuCA,EAASlR,KAAKgT,oBAAoBvT,GAC3FO,KAAKsM,QAAQ0C,kBAAkBhP,KAAKwM,UAAUC,MAAOhN,EAAYyT,EAAY5S,QAAS4S,EAAY3S,oBAAqB2S,EAAYzS,mBAAoBwL,EAC3J,EACAN,EAAcjL,UAAU8O,cAAgB,SAAUD,EAAWmD,GACzD,IAAI5N,EAAQ9E,KACZ,OAAOA,KAAK6M,eAAelI,SAAS+N,GAAU,WAC1C,GAAI5N,EAAMoI,WAAWjE,OAAOsG,GACxB,OAAOrE,EAAQ/B,QAAQjB,QAAQqH,EAAWzK,EAAMoI,WAAWjE,OAAOsG,GAAY,iBAAkB,CAC5FlB,OAAQ9C,EAAe+C,iBAAiByE,cACxC/I,KAAMC,KAAKC,QAGnB,IAAIiJ,EAAuB,aAAbT,EACR5N,EAAMiH,mCACN,KACN,OAAOjH,EAAM6K,mBAAmBwD,EAAS5D,EAC7C,IAAG,WACC,OAAOrE,EAAQ/B,QAAQjB,QAAQqH,EAAW,CAAC,EAAG,GAAIzK,EAAM8M,gCAC5D,GACJ,EACAjG,EAAcjL,UAAUiP,mBAAqB,SAAUhI,EAAsB4H,GAEzE,GADAvP,KAAK0R,qBACoB,iBAAdnC,GAA+C,IAArBA,EAAU3L,OAC3C,MAAM,IAAIG,EAASwC,4BAA4B,8CAEnD,OAAOvG,KAAKsN,OAAOgC,SAAS3H,EAAsB4H,EACtD,EACA5D,EAAcjL,UAAUuS,gBAAkB,SAAUxT,GAChD,OAAO,IAAIuL,EAAgB7B,QAAQ1J,EAAY,CAAC,EAAG,GAAIO,KAAK4R,gCAChE,EACAjG,EAAcjL,UAAUsQ,aAAe,SAAUoC,EAAMxS,EAAKyB,GAC1C,MAAVA,SACOrC,KAAKkN,WAAWkG,GAAMxS,GAG7BZ,KAAKkN,WAAWkG,GAAMxS,GAAOyB,EAEjCrC,KAAKoR,aAAapR,KAAKkN,WAC3B,EACOvB,CACX,CArdkC,GAsdlCrM,EAAA,QAAkBqM,C,wBC7iBlB,IAAIpD,EAAmBvI,MAAQA,KAAKuI,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,EACApJ,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAI8T,EAAc,EAAQ,OACtBC,EAAY,EAAQ,OACpBxK,EAAwBP,EAAgB,EAAQ,QAChDgL,EAAe,EAAQ,OACvBC,EAA0B,WAC1B,SAASA,EAASvP,EAAQ4F,EAAMuD,GAC5B,IAAIrM,EACJf,KAAKyT,SAAW,UAChBzT,KAAKoE,QAAUH,EACfjE,KAAKyM,MAAQ5C,EACb7J,KAAK0T,YAAcH,EAAapJ,QAChC,IAAI0G,EAAWzD,EACfyD,EAC8I,QAAzI9P,EAAK8P,QAA2CA,EAAW/H,EAAsBK,QAAQC,QAAQiK,EAAYM,8BAA2C,IAAP5S,EAAgBA,EAAKf,KAAK4T,WAChL5T,KAAKuE,iBAAmB,CACpBsM,SAAUA,EACVgD,QAAS7T,KAAKyT,SACdK,WAAY9T,KAAK0T,YAEzB,CA4BA,OA3BAF,EAAS9S,UAAU4Q,aAAe,WACQ,MAAlCtR,KAAKuE,iBAAiBsM,UACtB/H,EAAsBK,QAAQG,QAAQ+J,EAAYM,sBAAuB3T,KAAKuE,iBAAiBsM,SAEvG,EACA2C,EAAS9S,UAAUqT,gBAAkB,WACjC,OAAO,EAAIT,EAAUS,iBAAiB/T,KAAKyM,MAC/C,EACA+G,EAAS9S,UAAUkT,SAAW,WAE1B,IADA,IAAII,EAAO,GACFtK,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACf,IAANA,GAAiB,KAANA,GAAkB,KAANA,GAAkB,KAANA,IACnCsK,GAAQ,KAEZ,IAAIC,EAA+B,GAAhBC,KAAKC,SAAiB,EAErCH,GADM,KAANtK,EACQ,IAEG,KAANA,GACmB,EAAduK,EAAmB,GAAGG,SAAS,IAGjCH,EAAYG,SAAS,GAErC,CACA,OAAOJ,CACX,EACOR,CACX,CA5C6B,GA6C7BlU,EAAA,QAAkBkU,C,wBCrDlB,IAAIhS,EAAaxB,MAAQA,KAAKwB,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUzC,GAAS,IAAM0C,EAAKL,EAAUM,KAAK3C,GAAS,CAAE,MAAO4C,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAS7C,GAAS,IAAM0C,EAAKL,EAAiB,MAAErC,GAAS,CAAE,MAAO4C,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAe9C,EAIa8C,EAAOC,KAAOR,EAAQO,EAAO9C,QAJ1CA,EAIyD8C,EAAO9C,MAJhDA,aAAiBoC,EAAIpC,EAAQ,IAAIoC,GAAE,SAAUG,GAAWA,EAAQvC,EAAQ,KAIjBgD,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EACIO,EAAezC,MAAQA,KAAKyC,aAAgB,SAAUhB,EAASiB,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOtD,IAAM,GAAI8C,EACvJ,SAASM,EAAKG,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAId,EAAG,MAAM,IAAIe,UAAU,mCAC3B,KAAOZ,IAAMA,EAAI,EAAGW,EAAG,KAAOV,EAAI,IAAKA,OACnC,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARY,EAAG,GAASb,EAAU,OAAIa,EAAG,GAAKb,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEtB,KAAKqB,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAEtB,KAAKqB,EAAGa,EAAG,KAAKnB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGY,EAAK,CAAS,EAARA,EAAG,GAAQZ,EAAEtD,QACzBkE,EAAG,IACP,KAAK,EAAG,KAAK,EAAGZ,EAAIY,EAAI,MACxB,KAAK,EAAc,OAAXV,EAAEC,QAAgB,CAAEzD,MAAOkE,EAAG,GAAInB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIa,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKV,EAAEI,IAAIQ,MAAOZ,EAAEG,KAAKS,MAAO,SACxC,QACI,MAAkBd,GAAZA,EAAIE,EAAEG,MAAYU,OAAS,GAAKf,EAAEA,EAAEe,OAAS,KAAkB,IAAVH,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEV,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVU,EAAG,MAAcZ,GAAMY,EAAG,GAAKZ,EAAE,IAAMY,EAAG,GAAKZ,EAAE,IAAM,CAAEE,EAAEC,MAAQS,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYV,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIY,EAAI,KAAO,CACpE,GAAIZ,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIU,KAAKJ,GAAK,KAAO,CAC9DZ,EAAE,IAAIE,EAAEI,IAAIQ,MAChBZ,EAAEG,KAAKS,MAAO,SAEtBF,EAAKf,EAAKnB,KAAKE,EAASsB,EAC5B,CAAE,MAAOZ,GAAKsB,EAAK,CAAC,EAAGtB,GAAIS,EAAI,CAAG,CAAE,QAAUD,EAAIE,EAAI,CAAG,CACzD,GAAY,EAARY,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAElE,MAAOkE,EAAG,GAAKA,EAAG,QAAK,EAAQnB,MAAM,EAC9E,CAtBgDL,CAAK,CAACsB,EAAGC,GAAK,CAAG,CAuBrE,EACI+E,EAAmBvI,MAAQA,KAAKuI,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,EACApJ,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIkM,EAAalD,EAAgB,EAAQ,QACrC8C,EAAmB,EAAQ,OAC3BgI,EAAc,EAAQ,OACtBvK,EAAwBP,EAAgB,EAAQ,QAChD8L,EAAwB,YACxBC,EAAwBD,EAAwB,kBAChDE,EAAuBF,EAAwB,iBAC/CG,EAAsBH,EAAwB,gBAC9CI,EAAoBJ,EAAwB,mBAC5CK,EAAwBL,EAAwB,8BAIhDM,EAAyB,OACzBC,EAA+B,WAC/B,SAASA,EAAchJ,EAASiJ,EAAUC,EAASC,GAC/C,IAAIjQ,EAAQ9E,KACZA,KAAKgV,qBAAuB,EAC5BhV,KAAKuN,8BAAgC,SAAU1D,EAAMtC,EAAS/B,GAC1D,IAAIyP,GAAoB,EAAIxJ,EAAWtC,SAASuL,EAAuB7K,EAAM/E,EAAM0H,UAAUjI,iBAAkBgD,EAAS/B,GACxHV,EAAMiL,IAAIkF,GACVnQ,EAAMoQ,cAActP,IAAI2B,EAC5B,EACAvH,KAAK+M,SAAWnB,EAChB5L,KAAKwM,UAAYqI,EACjB7U,KAAKqN,SAAWyH,EAChB9U,KAAK6M,eAAiBkI,EACtB/U,KAAKmV,OAAS,GACdnV,KAAKoV,eAAiB,KACtBpV,KAAKkV,cAAgB,IAAI/Q,IACzBnE,KAAKqV,iBAAmB,GACxBrV,KAAKsV,oBAAsB,CAAC,EAC5BtV,KAAKgV,qBAAuB,EAC5BhV,KAAKuV,OACT,CAwUA,OAvUAX,EAAclU,UAAUqP,IAAM,SAAUD,GACpC,IACI,IAAK9P,KAAK+M,SAASyI,2BACG,oBAAXC,QACG,MAAVA,QAC2B,iBAApBA,OAAOC,UACkB,iBAAzBD,OAAOC,SAASC,KAAmB,CAE1C,IAAIC,EAAQH,OAAOC,SAASC,KAAKE,MAAM,SAClCD,aAAqC,EAASA,EAAMhS,QAAU,IAC/DkM,EAAMxL,gBAAgBwR,YAAcF,EAAM,GAElD,CACJ,CACA,MAAOG,GAAM,CACb/V,KAAKmV,OAAOtR,KAAKiM,GACb9P,KAAKmV,OAAOvR,QAAU5D,KAAK+M,SAASiJ,sBACpChW,KAAKiW,OAEb,EACArB,EAAclU,UAAUgQ,gBAAkB,WACtC1Q,KAAKsV,oBAAsB,CAAC,CAChC,EACAV,EAAclU,UAAUiO,gBAAkB,SAAU9E,EAAM2E,EAAU0H,EAAWvW,EAAQE,EAAoBsW,EAASlK,GAChH,IAAImK,EAAY5H,EAAWrI,OAAO+P,GAAavW,EAASwW,EAAQ9H,OAChE,GAAKrO,KAAKqW,mBAAmBD,GAA7B,CAGA,IAAI5Q,EAAW,CACXuL,KAAMvC,EACN0H,UAAW/P,OAAO+P,GAClBvW,OAAQA,EACR0O,OAAQ8H,EAAQ9H,OAChBrE,KAAMmM,EAAQnM,MAEdiC,IACAzG,EAA2B,iBAAI,QAEnC,IAAI8Q,GAAe,EAAI7K,EAAWtC,SAASqL,EAAqB3K,EAAM7J,KAAKwM,UAAUjI,iBAAkB,KAAMiB,EAAU3F,GACvHG,KAAK+P,IAAIuG,EAZT,CAaJ,EACA1B,EAAclU,UAAUsO,kBAAoB,SAAUnF,EAAMpK,EAAYE,EAAQE,EAAoBsW,EAASlK,GACzG,IAAImK,EAAY3W,EAAaE,EAASwW,EAAQ9H,OAC9C,GAAKrO,KAAKqW,mBAAmBD,GAA7B,CAGA,IAAI5Q,EAAW,CACX0L,OAAQzR,EACRE,OAAQA,EACR0O,OAAQ8H,EAAQ9H,OAChBrE,KAAMmM,EAAQnM,MAEdiC,IACAzG,EAA2B,iBAAI,QAEnC,IAAI+Q,GAAiB,EAAI9K,EAAWtC,SAASmL,EAAuBzK,EAAM7J,KAAKwM,UAAUjI,iBAAkB,KAAMiB,EAAU3F,GAC3HG,KAAK+P,IAAIwG,EAXT,CAYJ,EACA3B,EAAclU,UAAU6L,iBAAmB,SAAU1C,EAAMpK,EAAYE,EAAQE,EAAoBqM,EAAqB5D,EAAekO,EAAqBL,EAASlK,GACjK,IAAImK,EAAY,CACZ3W,EACAE,EACAuM,EACA5D,EACAnC,OAAOqQ,GACPL,EAAQ9H,QACVoI,KAAK,KACP,GAAKzW,KAAKqW,mBAAmBD,GAA7B,CAGA,IAAI5Q,EAAW,CACX0L,OAAQzR,EACRE,OAAQA,EACRuM,oBAAqBA,EACrB5D,cAAeA,EACfkO,oBAAqBrQ,OAAOqQ,GAC5BnI,OAAQ8H,EAAQ9H,OAChBrE,KAAMmM,EAAQnM,MAEdiC,IACAzG,EAA2B,iBAAI,QAEnC,IAAI+Q,GAAiB,EAAI9K,EAAWtC,SAASoL,EAAsB1K,EAAM7J,KAAKwM,UAAUjI,iBAAkB,KAAMiB,EAAU3F,GAC1HG,KAAK+P,IAAIwG,EAdT,CAeJ,EACA3B,EAAclU,UAAUiQ,SAAW,WAC3B3Q,KAAKoV,iBACLsB,cAAc1W,KAAKoV,gBACnBpV,KAAKoV,eAAiB,MAE1BpV,KAAKiW,OAAM,EACf,EACArB,EAAclU,UAAUuV,MAAQ,SAAUU,GACtC,IAAI7R,EAAQ9E,KAEZ,QADkB,IAAd2W,IAAwBA,GAAY,GACb,IAAvB3W,KAAKmV,OAAOvR,OAAhB,CAGA,IAAIU,EAAkBtE,KAAKwM,UAAUjI,iBACjCqS,EAAW5W,KAAKmV,OAEpB,GADAnV,KAAKmV,OAAS,GACVwB,IACC3W,KAAKqN,SAASwJ,qBACM,oBAAdC,WACM,MAAbA,WAEAA,UAAUC,WACG/W,KAAKqN,SAAS2J,cAAc,CACrCC,OAAQL,EACRtS,gBAAiBA,MAGjBtE,KAAKmV,OAASyB,EAASxQ,OAAOpG,KAAKmV,QAC/BnV,KAAKmV,OAAOvR,OAAS,IACrB5D,KAAKkX,kBAAkB,CACnBD,OAAQjX,KAAKmV,OACb7Q,gBAAiBA,EACjB0F,KAAMC,KAAKC,QAEflK,KAAKmV,OAAS,IAElBnV,KAAKmX,2BApBb,CAwBA,IAAIC,EAAYpX,KAChBA,KAAKqN,SACAgK,eAAehM,EAAiBiM,gBAAgBC,MAAO,CACxDN,OAAQL,EACRtS,gBAAiBA,GAClB,EAAiB,IAAoBqS,GACnCpU,MAAK,SAAUiV,GAChB,IAAKA,EAASC,GACV,MAAMD,CAEd,IACKzS,OAAM,SAAUE,GACS,mBAAfA,EAAMyS,KACbzS,EAAMyS,OAAOnV,MAAK,SAAUoV,GACxB7S,EAAM+H,eAAe3H,UAAUuP,EAAmBxP,GAAO,WAAc,OAAOzD,EAAUsD,OAAO,OAAQ,GAAQ,WAC3G,OAAOrC,EAAYzC,MAAM,SAAUe,GAC/B,MAAO,CAAC,EAAc,CACd6W,WAAYhB,EAAShT,OACrBqB,MAAO0S,GAEnB,GACJ,GAAI,GACR,IAGA7S,EAAM+H,eAAe3H,UAAUuP,EAAmBxP,GAAO,WAAc,OAAOzD,EAAUsD,OAAO,OAAQ,GAAQ,WAC3G,OAAOrC,EAAYzC,MAAM,SAAUe,GAC/B,MAAO,CAAC,EAAc,CACd6W,WAAYhB,EAAShT,OACrBqB,MAAOA,EAAMsC,SAEzB,GACJ,GAAI,IAER6P,EAAUS,kBAAkBpD,EAAmBmC,EACnD,IACK1I,SAAQ,WAAc,OAAO1M,EAAUsD,OAAO,OAAQ,GAAQ,WAC/D,OAAOrC,EAAYzC,MAAM,SAAUe,GAC/B,OAAQA,EAAGiC,OACP,KAAK,EACD,OAAK2T,GACD3W,KAAKmV,OAAOvR,OAAS,IACrB5D,KAAKkX,kBAAkB,CACnBD,OAAQjX,KAAKmV,OACb7Q,gBAAiBA,EACjB0F,KAAMC,KAAKC,QAGflK,KAAKmV,OAAS,IAEX,CAAC,EAAaiC,EAAUD,wBAVR,CAAC,EAAa,GAWzC,KAAK,EACDpW,EAAGkC,OACHlC,EAAGiC,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAI,GA1DJ,CA3BA,CAsFJ,EACA4R,EAAclU,UAAUmN,kBAAoB,WACxC,OAAOrM,EAAUxB,UAAM,OAAQ,GAAQ,WACnC,IAAI8X,EAAgBC,EAAeC,EAAeC,EAASC,EAAQC,EAAIC,EAAiBC,EACpFvT,EAAQ9E,KACZ,OAAOyC,EAAYzC,MAAM,SAAUe,GAG/B,GAFAgX,GAAgB,EAEM,OADtBD,EAAiBhP,EAAsBK,QAAQC,QAAQiK,EAAYiF,4CAG/D,OADAtY,KAAKuY,6BACE,CAAC,GAERT,EAAelU,OAAS+Q,IACxBoD,GAAgB,GAEpBC,EAAgB,GAChB,IAsBI,IArBAA,EAAgB9X,KAAKC,MAAM2X,GAC3BG,EAAU,SAAUI,GACG,MAAfA,GACAA,EAAYpB,QACZ7V,MAAMC,QAAQgX,EAAYpB,SAC1BiB,EAAO7K,SACFgK,eAAehM,EAAiBiM,gBAAgBC,MAAOc,GACvD9V,MAAK,SAAUiV,GAChB,IAAKA,EAASC,GACV,MAAM/R,MAAM8R,EAASgB,OAAS,GAEtC,IACKzT,OAAM,SAAUgR,GACbgC,GAGJjT,EAAMoS,kBAAkBmB,EAC5B,GAER,EACAH,EAASlY,KACJmY,EAAK,EAAGC,EAAkBJ,EAAeG,EAAKC,EAAgBxU,OAAQuU,IACvEE,EAAcD,EAAgBD,GAC9BF,EAAQI,EAEhB,CACA,MAAOtC,GACP,CACA,QACI/V,KAAKuY,4BACT,CACA,MAAO,CAAC,EACZ,GACJ,GACJ,EACA3D,EAAclU,UAAU6U,MAAQ,WAC5B,IAAIzQ,EAAQ9E,KAgBZ,GAfsB,oBAAXyV,QAC4B,mBAA5BA,OAAOgD,mBACdhD,OAAOgD,iBAAiB,QAAQ,WAAc,OAAO3T,EAAMmR,OAAM,EAAO,IACxER,OAAOgD,iBAAiB,gBAAgB,WAAc,OAAO3T,EAAMmR,OAAM,EAAO,IAChFR,OAAOgD,iBAAiB,QAAQ,WAC5BhL,YAAW,WAAc,OAAO3I,EAAMmR,OAAS,GAAG,KAClDxI,YAAW,WAAc,OAAO3I,EAAMmR,OAAS,GAAG,IACtD,KAEoB,oBAAbyC,UAC8B,mBAA9BA,SAASD,kBAChBC,SAASD,iBAAiB,oBAAoB,WAC1C3T,EAAMmR,MAAmC,YAA7ByC,SAASC,gBACzB,KAEC3Y,KAAK+M,SAAS6L,uBACI,oBAAXnD,QAAoC,MAAVA,UAIlCzV,KAAK+M,SAASL,UAAlB,CAIA,IAAImM,EAAK7Y,KACTA,KAAKoV,eAAiB0D,aAAY,WAC9BD,EAAG5C,OACP,GAAGjW,KAAK+M,SAASgM,uBAEjBtL,YAAW,WAAc,OAAO3I,EAAMmR,OAAS,GAAG,KAClDxI,YAAW,WAAc,OAAO3I,EAAMmR,OAAS,GAAG,IAPlD,CAQJ,EACArB,EAAclU,UAAU2V,mBAAqB,SAAUzV,GACnD,IAAIoY,EAAWhZ,KAAKsV,oBAAoB1U,GACpCsJ,EAAMD,KAAKC,MACf,QAAgB,MAAZ8O,GAIAA,GAAY9O,EAAM,MAHlBlK,KAAKsV,oBAAoB1U,GAAOsJ,EACzB,GAOf,EACA0K,EAAclU,UAAUyW,oBAAsB,WAC1C,OAAO3V,EAAUxB,UAAM,OAAQ,GAAQ,WACnC,IAAIiZ,EACJ,OAAOxW,EAAYzC,MAAM,SAAUe,GAC/B,GAAIf,KAAKqV,iBAAiBzR,OAAS,EAAG,CAElC,IADAqV,EAAe/Y,KAAKE,UAAUJ,KAAKqV,mBAClBzR,OAAS+Q,EAEtB,OADA3U,KAAKuY,6BACE,CAAC,GAEZzP,EAAsBK,QAAQG,QAAQ+J,EAAYiF,0CAA2CW,EACjG,CACA,MAAO,CAAC,EACZ,GACJ,GACJ,EACArE,EAAclU,UAAUwW,kBAAoB,SAAUmB,GAClD,KAAIA,EAAYrO,KAAOC,KAAKC,MApUT,OAuUflK,KAAKqV,iBAAiBzR,OAtUP,KAsUnB,CAGA,IAAIsV,EAAmBb,EAAYpB,OAAOrT,OACtC5D,KAAKgV,qBAAuBkE,EAzUhB,MA4UhBlZ,KAAKqV,iBAAiBxR,KAAKwU,GAC3BrY,KAAKgV,sBAAwBkE,EAN7B,CAOJ,EACAtE,EAAclU,UAAU6X,2BAA6B,WACjDzP,EAAsBK,QAAQgQ,WAAW9F,EAAYiF,0CACzD,EACA1D,EAAclU,UAAUmX,kBAAoB,SAAUvS,EAAM8T,GACpDpZ,KAAKkV,cAAcvP,IAAIL,KAG3BtF,KAAKkV,cAActP,IAAIN,GACvBtF,KAAKqV,iBAAiBxR,KAAK,CACvBoT,OAAQmC,EACR9U,gBAAiBtE,KAAKwM,UAAUjI,iBAChCyF,KAAMC,KAAKC,QAEflK,KAAKmX,sBAAsB5U,MAAK,WAAc,IAClD,EACOqS,CACX,CA7VkC,GA8VlCtV,EAAA,QAAkBsV,C,sBCpZlB,IAsCI0C,EAtCA9V,EAAaxB,MAAQA,KAAKwB,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUzC,GAAS,IAAM0C,EAAKL,EAAUM,KAAK3C,GAAS,CAAE,MAAO4C,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAS7C,GAAS,IAAM0C,EAAKL,EAAiB,MAAErC,GAAS,CAAE,MAAO4C,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAe9C,EAIa8C,EAAOC,KAAOR,EAAQO,EAAO9C,QAJ1CA,EAIyD8C,EAAO9C,MAJhDA,aAAiBoC,EAAIpC,EAAQ,IAAIoC,GAAE,SAAUG,GAAWA,EAAQvC,EAAQ,KAIjBgD,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EACIO,EAAezC,MAAQA,KAAKyC,aAAgB,SAAUhB,EAASiB,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOtD,IAAM,GAAI8C,EACvJ,SAASM,EAAKG,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAId,EAAG,MAAM,IAAIe,UAAU,mCAC3B,KAAOZ,IAAMA,EAAI,EAAGW,EAAG,KAAOV,EAAI,IAAKA,OACnC,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARY,EAAG,GAASb,EAAU,OAAIa,EAAG,GAAKb,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEtB,KAAKqB,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAEtB,KAAKqB,EAAGa,EAAG,KAAKnB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGY,EAAK,CAAS,EAARA,EAAG,GAAQZ,EAAEtD,QACzBkE,EAAG,IACP,KAAK,EAAG,KAAK,EAAGZ,EAAIY,EAAI,MACxB,KAAK,EAAc,OAAXV,EAAEC,QAAgB,CAAEzD,MAAOkE,EAAG,GAAInB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIa,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKV,EAAEI,IAAIQ,MAAOZ,EAAEG,KAAKS,MAAO,SACxC,QACI,MAAkBd,GAAZA,EAAIE,EAAEG,MAAYU,OAAS,GAAKf,EAAEA,EAAEe,OAAS,KAAkB,IAAVH,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEV,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVU,EAAG,MAAcZ,GAAMY,EAAG,GAAKZ,EAAE,IAAMY,EAAG,GAAKZ,EAAE,IAAM,CAAEE,EAAEC,MAAQS,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYV,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIY,EAAI,KAAO,CACpE,GAAIZ,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIU,KAAKJ,GAAK,KAAO,CAC9DZ,EAAE,IAAIE,EAAEI,IAAIQ,MAChBZ,EAAEG,KAAKS,MAAO,SAEtBF,EAAKf,EAAKnB,KAAKE,EAASsB,EAC5B,CAAE,MAAOZ,GAAKsB,EAAK,CAAC,EAAGtB,GAAIS,EAAI,CAAG,CAAE,QAAUD,EAAIE,EAAI,CAAG,CACzD,GAAY,EAARY,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAElE,MAAOkE,EAAG,GAAKA,EAAG,QAAK,EAAQnB,MAAM,EAC9E,CAtBgDL,CAAK,CAACsB,EAAGC,GAAK,CAAG,CAuBrE,EACApE,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQgY,qBAAkB,EAE1B,SAAWA,GACPA,EAA4B,WAAI,aAChCA,EAAuB,MAAI,QAC3BA,EAAgC,eAAI,kBACvC,CAJD,CAIGA,EAAkBhY,EAAQgY,kBAAoBhY,EAAQgY,gBAAkB,CAAC,IAC5E,IACI+B,EAAgC,WAChC,SAASA,EAAezN,EAASiJ,EAAUE,GACvC/U,KAAKsZ,WAAa,CACd,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GAETtZ,KAAKuZ,iBAAkB,EACvBvZ,KAAK+M,SAAWnB,EAChB5L,KAAKwM,UAAYqI,EACjB7U,KAAK6M,eAAiBkI,EACtB/U,KAAKwZ,YAAc,CAAC,EACpBxZ,KAAKuV,OACT,CA6OA,OA5OA8D,EAAe3Y,UAAUwR,YAAc,SAAUrI,EAAMiI,EAAWD,EAASE,GACvE,IAAI0H,EAAQ,CACR5P,KAAMA,EACNvF,gBAAiBtE,KAAKwM,UAAUjI,iBAChCuN,UAAWA,QAA6CA,OAAYzJ,EACpEqR,KAAM,OACN3H,sBAAuBA,GAE3B,OAAO/R,KAAK2Z,iBAAiBrC,EAAgBsC,WAAYH,EAAO5H,EAChE,EACJ,EACAwH,EAAe3Y,UAAUsW,cAAgB,SAAU6C,GAC/C,GAAI7Z,KAAK+M,SAASL,UACd,OAAO,EAEX,IAAIoN,EAAM,IAAIC,IAAI/Z,KAAK+M,SAASiN,gBAAkB1C,EAAgB2C,gBAClEH,EAAII,aAAaC,OAAO,IAAKna,KAAKwM,UAAUpI,SAC5CyV,EAAQO,WAAanQ,KAAKC,MAAQ,GAClC,IAAImQ,EAAgB,KACpB,IACIA,EAAgBna,KAAKE,UAAUyZ,EACnC,CACA,MAAO9D,GACH,OAAO,CACX,CACA,OAAOe,UAAUC,WAAW+C,EAAI1F,WAAYiG,EAChD,EACAhB,EAAe3Y,UAAU2W,eAAiB,SAAUiD,EAAc5X,EAAM6X,EAASC,EAASC,GAItF,YAHgB,IAAZF,IAAsBA,EAAU,QACpB,IAAZC,IAAsBA,EAAU,UACf,IAAjBC,IAA2BA,GAAe,GACvCjZ,EAAUxB,UAAM,OAAQ,GAAQ,WACnC,IAAI0a,EAAKZ,EAAKa,EAASC,EAAUtW,EAAiBuW,EAC9C/V,EAAQ9E,KACZ,OAAOyC,EAAYzC,MAAM,SAAUe,GAC/B,OAAIf,KAAK+M,SAASL,UACP,CAAC,EAAc7K,QAAQE,OAAO,qCAEpB,mBAAViE,MAEA,CAAC,EAAcnE,QAAQE,OAAO,yBAEnB,oBAAX0T,QAA2BzV,KAAK+M,SAAS6L,uBAIpD8B,EAAM,CAACpD,EAAgBsC,YAAYvN,SAASiO,GACtCta,KAAK+M,SAAS2N,IACd1a,KAAK+M,SAASiN,gBACpBF,EAAMY,EAAMJ,EAEG,OADfK,EAAU3a,KAAKwZ,YAAYM,KACJa,GAAW,GACvB,CAAC,EAAc9Y,QAAQE,OAAO,IAAI2D,MAAM,6EAG/C1F,KAAKwZ,YAAYM,GADN,MAAXa,EACwB,EAGAA,EAAU,EAEtCC,EAAW1a,KAAKE,UAAUsC,GAC1B4B,EAAkBtE,KAAKwM,UAAUjI,iBACjCsW,EAAS,CACL5U,OAAQ,OACRvD,KAAMkY,EACN1U,QAAS,CACL,eAAgB,kCAChB,kBAAmBlG,KAAKwM,UAAUpI,QAClC,sBAAuB6F,KAAKC,MAAQ,GACpC,mBAAoB5F,EAAgBuP,QACpC,sBAAuBvP,EAAgBwP,aAG3C9T,KAAKuZ,iBAAmBkB,IACxBI,EAAOC,WAAY,GAEhB,CAAC,EAAc9U,MAAM8T,EAAKe,GACxBtY,MAAK,SAAUwY,GAAO,OAAOvZ,EAAUsD,OAAO,OAAQ,GAAQ,WAC/D,IAAIkW,EAAiBtD,EAAMC,EAC3B,OAAOlV,EAAYzC,MAAM,SAAUe,GAC/B,OAAQA,EAAGiC,OACP,KAAK,EACD,OAAK+X,EAAItD,IACTuD,EAAkBD,EAvGrC,MAwGyBA,EAAIvC,OAA+B,CAAC,EAAa,IACvDwC,EAAgBC,KAAO,CAAE5I,aAAa,EAAOE,eAAe,GACrD,CAAC,EAAa,KAJD,CAAC,EAAa,GAKtC,KAAK,EAAG,MAAO,CAAC,EAAawI,EAAIrD,QACjC,KAAK,EACDA,EAAO3W,EAAGkC,OACV+X,EAAgBC,KAAO/a,KAAKC,MAAMuX,GAClC3W,EAAGiC,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAcnB,QAAQC,QAAQkZ,IAC9C,KAAK,EAID,OAHKhb,KAAKsZ,WAAWyB,EAAIvC,UACrB+B,EAAU,GAEP,CAAC,EAAaQ,EAAIrD,QAC7B,KAAK,EAED,OADAC,EAAY5W,EAAGkC,OACR,CAAC,EAAcpB,QAAQE,OAAO,IAAI2D,MAAM,GAAGU,OAAO2U,EAAIvC,OAAQ,MAAMpS,OAAOuR,MAE9F,GACJ,GAAI,IACC5S,OAAM,SAAU5C,GACjB,OAAIoY,EAAU,EACH,IAAI1Y,SAAQ,SAAUC,EAASC,GAClC0L,YAAW,WACP3I,EAAM0U,YAAYM,GAAO5F,KAAKgH,IAAIpW,EAAM0U,YAAYM,GAAO,EAAG,GAC9DhV,EAAMuS,eAAeiD,EAAc5X,EAAM6X,EAAU,EAAa,EAAVC,EAAaC,GAC9DlY,KAAKT,GACLiD,MAAMhD,EACf,GAAGyY,EACP,IAEG3Y,QAAQE,OAAOI,EAC1B,IACK+L,SAAQ,WACTpJ,EAAM0U,YAAYM,GAAO5F,KAAKgH,IAAIpW,EAAM0U,YAAYM,GAAO,EAAG,EAClE,OA3EO,CAAC,EAAcjY,QAAQE,OAAO,yBA4E7C,GACJ,GACJ,EACAsX,EAAe3Y,UAAUmW,kBAAoB,WACzC,OAAO7W,KAAKuZ,eAChB,EACAF,EAAe3Y,UAAU6U,MAAQ,WAC7B,IAAKvV,KAAK+M,SAASoO,wBACf,IACInb,KAAKuZ,gBAAkB,cAAe,IAAI6B,QAAQ,GACtD,CACA,MAAOrF,GAAM,CAErB,EACAsD,EAAe3Y,UAAUiZ,iBAAmB,SAAUW,EAAc5X,EAAMmP,EAAS0I,EAASC,GACxF,IAAI1V,EAAQ9E,UACI,IAAZ6R,IAAsBA,EAAU,QACpB,IAAZ0I,IAAsBA,EAAU,QACpB,IAAZC,IAAsBA,EAAU,KACpC,IAAIa,GAAc,EACdC,EAAQ,KACRC,EAAoB,KACpBC,EAAY,GAUD,GAAX3J,IACAyJ,EAAQ,IAAIzZ,SAAQ,SAAUC,EAASC,GACnC0L,YAAW,WACP4N,GAAc,EACdtZ,EAAO,IAAI2D,MAAM,iCAAiCU,OAAOyL,EAAS,8DACtE,GAAGA,EACP,KAEJ,IAjB2B4J,EAiBvBC,EAAe1b,KAAKqX,eAAeiD,EAAc5X,EAAM6X,EAASC,GAC/DjY,MAAK,SAAUwY,GAChB,IAAKA,EAAItD,GACL,OAAO5V,QAAQE,OAAO,IAAI2D,MAAM,cAAcU,OAAOkU,EAAc,wBAAwBlU,OAAO2U,EAAIvC,UAE1G,GAAwB,iBAAbuC,EAAIE,KAAmB,CAC9B,IAAIhW,EAAQ,IAAIS,MAAM,cAAcU,OAAOkU,EAAc,gEAAgElU,cAAc2U,EAAIE,KAAM,MAMjJ,OALAnW,EAAM+H,eAAe3H,UAAU,4BAA6BD,GAAO,WAAc,OAAOzD,EAAUsD,OAAO,OAAQ,GAAQ,WACrH,OAAOrC,EAAYzC,MAAM,SAAUe,GAC/B,MAAO,CAAC,EAAcf,KAAK2b,cAAcrB,EAAc5X,EAAM6X,EAASC,EAASO,GACnF,GACJ,GAAI,IACGlZ,QAAQE,OAAOkD,EAC1B,CACA,IAAImN,EAAO2I,EAAIE,KACf,OAAOnW,EAAM+H,eAAelI,SAAS,mBAAmB,WAAc,OAAOnD,EAAUsD,OAAO,OAAQ,GAAQ,WAC1G,OAAOrC,EAAYzC,MAAM,SAAUe,GAM/B,OALAwa,EAAoBnJ,EAChBiJ,IACAG,EAAUI,SAAQ,SAAUC,GAAM,OAAOA,EAAGzJ,EAAO,IACnDoJ,EAAY,IAET,CAAC,EAAc3Z,QAAQC,QAAQsQ,GAC1C,GACJ,GAAI,IAAG,WACH,OAAOvQ,QAAQC,QAAQ,CAAC,EAC5B,IAAG,WAAc,OAAON,EAAUsD,OAAO,OAAQ,GAAQ,WACrD,OAAOrC,EAAYzC,MAAM,SAAUe,GAC/B,MAAO,CAAC,EAAcf,KAAK2b,cAAcrB,EAAc5X,EAAM6X,EAASC,EAASO,GACnF,GACJ,GAAI,GACR,IACKhW,OAAM,SAAU5C,GACjB,OAAON,QAAQE,OAAOI,EAC1B,IACI2Z,EAAiBR,EAAQzZ,QAAQka,KAAK,CAACL,EAAcJ,IAAUI,EAEnE,OADAI,EAAc3J,YArDasJ,EAqDWK,EArDU,SAAUD,GAOtD,OANIR,GAAeE,EACfM,EAAGN,GAGHC,EAAU3X,KAAKgY,GAEZJ,CACX,GA8COK,CACX,EACAzC,EAAe3Y,UAAUib,cAAgB,SAAUrB,EAAc5X,EAAM6X,EAASC,EAASO,GACrF,IAAIha,EACJ,OAAOS,EAAUxB,UAAM,OAAQ,GAAQ,WACnC,IAAIgc,EACJ,OAAOvZ,EAAYzC,MAAM,SAAUgB,GAC/B,IAKI,OAJAgb,EAAY,CAAC,GACW,QAAtBjb,EAAKga,EAAI7U,eAA4B,IAAPnF,EAAgBA,EAAK,IAAI6a,SAAQ,SAAUrc,EAAOqB,GAC9Eob,EAAUpb,GAAOrB,CACrB,IACO,CAAC,EAAc,CACd0c,aAAc,CACV/V,QAAS8V,EACTxD,OAAQuC,EAAIvC,OACZ0D,WAAYnB,EAAImB,WAChB9I,KAAM2H,EAAI3H,KACV0G,IAAKiB,EAAIjB,IACTqC,WAAYpB,EAAIoB,WAChBC,YAAarB,EAAIE,KAAO/a,KAAKE,UAAU2a,EAAIE,MAAMoB,MAAM,EAAG,KAAO,MAErEC,YAAa,CACThC,aAAcA,EACd8B,YAAalc,KAAKE,UAAUsC,GAAM2Z,MAAM,EAAG,KAC3C9B,QAASA,EACTC,QAASA,IAGzB,CACA,MAAOzE,GACH,MAAO,CAAC,EAAc,CACdmG,WAAY,yCAExB,CACA,MAAO,CAAC,EACZ,GACJ,GACJ,EACO7C,CACX,CAhQmC,GAiQnC/Z,EAAA,QAAkB+Z,C,gBC9SlBja,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQid,6BAA0B,EAGlCjd,EAAQid,wBAA0B,IAClC,IAAIC,EAAmC,WACnC,SAASA,EAAkB5Q,GACvB,IAAI7K,EAAIC,EAAIyE,EAAIgX,EAAI1G,EAAI2G,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACzC,MAAXtR,IACAA,EAAU,CAAC,GAEf,IAAI8O,EAA6B,QAAtB3Z,EAAK6K,EAAQ8O,WAAwB,IAAP3Z,EAAgBA,EATlC,+BAUvBf,KAAK0a,IAAMA,EAAIyC,SAAS,KAAOzC,EAAMA,EAAM,IAC3C1a,KAAKwV,0BAAyE,QAA5CxU,EAAK4K,EAAQ4J,iCAA8C,IAAPxU,GAAgBA,EACtGhB,KAAKwR,YAA6C,QAA9B/L,EAAKmG,EAAQ4F,mBAAgC,IAAP/L,EAAgBA,EAAK,KAC/EzF,KAAK+Y,sBAAwB/Y,KAAKod,qBAAqBxR,EAAQmN,sBAAuB,CAClF5P,QAAS,IACTkU,IAAK,IACLnC,IAAK,MAETlb,KAAKgW,qBAAuBhW,KAAKod,qBAAqBxR,EAAQoK,qBAAsB,CAChF7M,QAAS,IACTkU,IAAK,EACLnC,IAAK,MAETlb,KAAKmb,wBAAqE,QAA1CsB,EAAK7Q,EAAQuP,+BAA4C,IAAPsB,GAAgBA,EAClGzc,KAAKoN,iBAAuD,QAAnC2I,EAAKnK,EAAQwB,wBAAqC,IAAP2I,EAAgBA,EAAK,KACzF/V,KAAK0M,UAAyC,QAA5BgQ,EAAK9Q,EAAQc,iBAA8B,IAAPgQ,GAAgBA,EACtE1c,KAAKgO,cACDpC,EAAQoC,eAAiBpC,EAAQoC,eAAiB,EAC5CpC,EAAQoC,cACR1O,EAAQid,wBAClBvc,KAAKsd,oBAA6D,QAAtCX,EAAK/Q,EAAQ0R,2BAAwC,IAAPX,GAAgBA,EAC1F3c,KAAKud,0BAAyE,QAA5CX,EAAKhR,EAAQ2R,iCAA8C,IAAPX,GAAgBA,EACtG5c,KAAKwN,iBAAuD,QAAnCqP,EAAKjR,EAAQ4B,wBAAqC,IAAPqP,EAAgBA,EAAK,KACzF,IAAI7C,EAAyG,QAAtF+C,EAAwC,QAAlCD,EAAKlR,EAAQoO,uBAAoC,IAAP8C,EAAgBA,EAAKlR,EAAQ8O,WAAwB,IAAPqC,EAAgBA,EAhC7G,oCAiCxB/c,KAAKga,gBAAkBA,EAAgBmD,SAAS,KAC1CnD,EACAA,EAAkB,IACxBha,KAAKiN,oBAA6D,QAAtC+P,EAAKpR,EAAQqB,2BAAwC,IAAP+P,GAAgBA,EAC1Fhd,KAAK4Y,sBAAmH,QAA1FqE,EAAKrR,aAAyC,EAASA,EAAQgN,6BAA0C,IAAPqE,GAAgBA,EAChJjd,KAAKuQ,6BAAiI,QAAjG2M,EAAKtR,aAAyC,EAASA,EAAQ2E,oCAAiD,IAAP2M,EAAgBA,EAAK,IACvK,CAOA,OANAV,EAAkB9b,UAAU0c,qBAAuB,SAAU3D,EAAO+D,GAChE,OAAa,MAAT/D,EACO+D,EAAOrU,QAEX+K,KAAKgH,IAAIhH,KAAKmJ,IAAI5D,EAAO+D,EAAOtC,KAAMsC,EAAOH,IACxD,EACOb,CACX,CA7CsC,GA8CtCld,EAAA,QAAkBkd,C,wBCnDlB,IAAIhb,EAAaxB,MAAQA,KAAKwB,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUzC,GAAS,IAAM0C,EAAKL,EAAUM,KAAK3C,GAAS,CAAE,MAAO4C,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAS7C,GAAS,IAAM0C,EAAKL,EAAiB,MAAErC,GAAS,CAAE,MAAO4C,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAe9C,EAIa8C,EAAOC,KAAOR,EAAQO,EAAO9C,QAJ1CA,EAIyD8C,EAAO9C,MAJhDA,aAAiBoC,EAAIpC,EAAQ,IAAIoC,GAAE,SAAUG,GAAWA,EAAQvC,EAAQ,KAIjBgD,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EACIO,EAAezC,MAAQA,KAAKyC,aAAgB,SAAUhB,EAASiB,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOtD,IAAM,GAAI8C,EACvJ,SAASM,EAAKG,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAId,EAAG,MAAM,IAAIe,UAAU,mCAC3B,KAAOZ,IAAMA,EAAI,EAAGW,EAAG,KAAOV,EAAI,IAAKA,OACnC,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARY,EAAG,GAASb,EAAU,OAAIa,EAAG,GAAKb,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEtB,KAAKqB,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAEtB,KAAKqB,EAAGa,EAAG,KAAKnB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGY,EAAK,CAAS,EAARA,EAAG,GAAQZ,EAAEtD,QACzBkE,EAAG,IACP,KAAK,EAAG,KAAK,EAAGZ,EAAIY,EAAI,MACxB,KAAK,EAAc,OAAXV,EAAEC,QAAgB,CAAEzD,MAAOkE,EAAG,GAAInB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIa,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKV,EAAEI,IAAIQ,MAAOZ,EAAEG,KAAKS,MAAO,SACxC,QACI,MAAkBd,GAAZA,EAAIE,EAAEG,MAAYU,OAAS,GAAKf,EAAEA,EAAEe,OAAS,KAAkB,IAAVH,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEV,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVU,EAAG,MAAcZ,GAAMY,EAAG,GAAKZ,EAAE,IAAMY,EAAG,GAAKZ,EAAE,IAAM,CAAEE,EAAEC,MAAQS,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYV,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIY,EAAI,KAAO,CACpE,GAAIZ,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIU,KAAKJ,GAAK,KAAO,CAC9DZ,EAAE,IAAIE,EAAEI,IAAIQ,MAChBZ,EAAEG,KAAKS,MAAO,SAEtBF,EAAKf,EAAKnB,KAAKE,EAASsB,EAC5B,CAAE,MAAOZ,GAAKsB,EAAK,CAAC,EAAGtB,GAAIS,EAAI,CAAG,CAAE,QAAUD,EAAIE,EAAI,CAAG,CACzD,GAAY,EAARY,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAElE,MAAOkE,EAAG,GAAKA,EAAG,QAAK,EAAQnB,MAAM,EAC9E,CAtBgDL,CAAK,CAACsB,EAAGC,GAAK,CAAG,CAuBrE,EACI+E,EAAmBvI,MAAQA,KAAKuI,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,EACApJ,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQgP,sBAAmB,EAC3B,IAMIA,EANAtD,EAAkBzC,EAAgB,EAAQ,QAC1C2C,EAAU3C,EAAgB,EAAQ,QAClCkV,EAAuBlV,EAAgB,EAAQ,QAC/C8K,EAAc,EAAQ,OACtBC,EAAY,EAAQ,OACpBxK,EAAwBP,EAAgB,EAAQ,SAEpD,SAAW+F,GACPA,EAA0B,QAAI,UAC9BA,EAA4B,UAAI,YAChCA,EAAmC,iBAAI,mBACvCA,EAAwB,MAAI,QAC5BA,EAA+B,aAAI,eACnCA,EAAgC,cAAI,gBACpCA,EAAwB,MAAI,QAC5BA,EAAqC,mBAAI,qBACzCA,EAAgC,cAAI,eACvC,CAVD,CAUGA,EAAmBhP,EAAQgP,mBAAqBhP,EAAQgP,iBAAmB,CAAC,IAC/E,IACIoP,EAA8B,WAC9B,SAASA,EAAa7I,EAAU9U,EAAwByN,GACpDxN,KAAKwM,UAAYqI,EACjB7U,KAAKC,wBAA0BF,EAC/BC,KAAK2d,cAAgB3d,KAAKwM,UAAUuH,kBACpC/T,KAAK4d,QAAU,CAAC,EAChB5d,KAAK6d,YAAc7d,KAAK8d,6BACxB9d,KAAK+d,SAAU,EACf/d,KAAKge,QAAU1P,EAAiB2P,cAC5BzQ,EACAxN,KAAK4N,UAAUJ,GAGfxN,KAAKke,uBAEb,CAmQA,OAlQAR,EAAahd,UAAU8P,WAAa,WAEhC,OADAxQ,KAAK2d,cAAgB3d,KAAKwM,UAAUuH,kBAC7B/T,KAAKme,wBAChB,EACAT,EAAahd,UAAUkN,UAAY,SAAUJ,GACzC,IAAIzM,EAAIC,EAAIyE,EACR7E,EAAMZ,KAAKwM,UAAUuH,kBACrBlK,EAAO7J,KAAKwM,UAAUC,MACtB4B,EAASoP,EAAqBtU,QAAQiV,QAAQvU,EAAM2D,GAClDc,EAAiB+P,UACjB/P,EAAiBgQ,iBAIvBte,KAAK+d,SAAU,EACf,IACI/d,KAAK6d,YAAYU,cAA0D,QAAzCxd,EAAKyM,EAAiB+Q,qBAAkC,IAAPxd,EAAgBA,EAAK,CAAC,EACzGf,KAAK6d,YAAYW,gBAA8D,QAA3Cxd,EAAKwM,EAAiBgR,uBAAoC,IAAPxd,EAAgBA,EAAK,CAAC,EAC7GhB,KAAK6d,YAAYY,cAA0D,QAAzChZ,EAAK+H,EAAiBiR,qBAAkC,IAAPhZ,EAAgBA,EAAK,CAAC,EACzGzF,KAAK6d,YAAYa,gBAAkBzU,KAAKC,MACxClK,KAAK6d,YAAY7T,KAAOC,KAAKC,MAC7BlK,KAAK4d,QAAQhd,GAAOZ,KAAK6d,YACzB7d,KAAKge,QAAU3P,CACnB,CACA,MAAO0H,GACH,MACJ,CACJ,EACA2H,EAAahd,UAAUiR,SAAW,WAC9B,OAAO3R,KAAK+d,OAChB,EACAL,EAAahd,UAAUsR,kBAAoB,SAAUnI,GACjD,IAAI8U,GAAW,EAAIrL,EAAUsL,mBAAmB/U,GAChD,OAAI7J,KAAK6d,YAAYgB,WAAaF,EACvB3e,KAAK6d,YAAY7T,KAErB,IACX,EACA0T,EAAahd,UAAUuR,yBAA2B,SAAUpI,GACxD,IAAI8U,GAAW,EAAIrL,EAAUsL,mBAAmB/U,GAChD,GAAI7J,KAAK6d,YAAYgB,WAAaF,EAC9B,OAAO3e,KAAK6d,YAAYiB,cAGhC,EACApB,EAAahd,UAAU8R,oBAAsB,SAAUuM,GACnD/e,KAAKge,QAAUe,CACnB,EACArB,EAAahd,UAAU4R,KAAO,SAAUzI,EAAMmV,EAAaC,GAEvD,YADoB,IAAhBA,IAA0BA,GAAc,GACrCzd,EAAUxB,UAAM,OAAQ,GAAQ,WACnC,IAAIkf,EAAuBC,EAAcC,EAAYre,EACrD,OAAO0B,EAAYzC,MAAM,SAAUgB,GAC/B,OAAQA,EAAGgC,OACP,KAAK,EAcD,OAbAkc,GAAwB,EAAI5L,EAAUS,iBAAiBlK,GACvDsV,EAAeH,EACfhf,KAAKqf,oCAAoCF,EAAcnf,KAAK4d,QAASsB,EAAuBrV,GAAM,SAAUuV,GAAc,OAAOA,CAAY,IACzIH,IACAG,EAAapf,KAAK4d,QAAQsB,KAEtBA,GACAA,GAAyBlf,KAAK2d,gBAC9B3d,KAAK6d,YAAcuB,EACnBpf,KAAKge,QAAU1P,EAAiBgR,SAGxCve,EAAKf,KACE,CAAC,EAAaA,KAAKuf,sBAAsBvf,KAAK4d,UACzD,KAAK,EAED,OADA7c,EAAG6c,QAAU5c,EAAGiC,OACT,CAAC,GAEpB,GACJ,GACJ,EACAya,EAAahd,UAAU6N,UAAY,SAAUC,GACzC,IAAIzN,EACAye,GAAe,EAAIlM,EAAUmM,cAAcjR,GAC3C0H,EAAY,CACZ5Q,KAAMkJ,EACNjP,OAAO,EACPsT,QAAS,GACTC,oBAAqB,IAGrBvT,EAAoC,QAA3BwB,EAAKf,KAAK6d,mBAAgC,IAAP9c,OAAgB,EAASA,EAAGwd,cAAciB,GAK1F,OAJIjgB,IACA2W,EAAY3W,GAGT,CAAEK,kBADCI,KAAK0f,sBAA+B,MAATngB,GACAwR,KAAMmF,EAC/C,EACAwH,EAAahd,UAAUmO,UAAY,SAAUpP,GACzC,IAAIsB,EAAIC,EAEJtB,EACAyW,EAFAwJ,GAAiB,EAAIrM,EAAUmM,cAAchgB,GAGjD,GAAyG,OAAxE,QAA3BsB,EAAKf,KAAK6d,mBAAgC,IAAP9c,OAAgB,EAASA,EAAGyd,gBAAgBmB,IAA0B,CAC3G,IAAIC,EAA6C,QAA3B5e,EAAKhB,KAAK6d,mBAAgC,IAAP7c,OAAgB,EAASA,EAAGwd,gBAAgBmB,GACrGxJ,EAAUnW,KAAK0f,uBAAsB,GACrChgB,EAAcM,KAAK6f,qBAAqBpgB,EAAYmgB,EAAgBzJ,EACxE,MAEIA,EAAUnW,KAAK0f,uBAAsB,GACrChgB,EAAc,IAAIsL,EAAgB7B,QAAQ1J,EAAY,CAAC,EAAG,GAAI0W,GAElE,OAAOzW,CACX,EACAge,EAAahd,UAAU4O,SAAW,SAAU3H,EAAsB4H,GAC9D,IAAIxO,EAAIC,EAAIyE,EACRqa,EAAc9f,KAAK+f,gBAAgBxQ,EAAW,iBAC9C4G,EAAUnW,KAAK0f,sBAAqC,MAAfI,GACzC,OAAO5U,EAAQ/B,QAAQjB,QAAQqH,EAAkG,QAAtFxO,EAAK+e,aAAiD,EAASA,EAAYvgB,aAA0B,IAAPwB,EAAgBA,EAAK,CAAC,EAA4F,QAAxFC,EAAK8e,aAAiD,EAASA,EAAYjN,eAA4B,IAAP7R,EAAgBA,EAAK,GAAImV,EAASxO,EAAsBmY,aAAiD,EAASA,EAAYhN,oBAAqBgN,aAAiD,EAASA,EAAYE,gCAA4I,QAA1Gva,EAAKqa,aAAiD,EAASA,EAAYG,iCAA8C,IAAPxa,EAAgBA,EAAK,GAAIqa,aAAiD,EAASA,EAAYI,oBACntB,EACAxC,EAAahd,UAAU0N,2BAA6B,WAChD,IAAIrN,EAAIC,EACR,MAAO,CACHqN,OAAgC,QAAvBtN,EAAKf,KAAKge,eAA4B,IAAPjd,EAAgBA,EAAKuN,EAAiB2P,cAC9EjU,KAAkD,QAA3ChJ,EAAKhB,KAAK6d,YAAYa,uBAAoC,IAAP1d,EAAgBA,EAAK,EAEvF,EACA0c,EAAahd,UAAUwd,sBAAwB,WAC3Cle,KAAKmgB,mBAAmBrX,EAAsBK,QAAQC,QAAQiK,EAAY+M,qBAC1EpgB,KAAK+d,SAAU,CACnB,EACAL,EAAahd,UAAUyf,mBAAqB,SAAUE,GAClD,IACIrgB,KAAK4d,QAAUyC,EAAYngB,KAAKC,MAAMkgB,GAAargB,KAAK4d,QACxD5d,KAAKme,wBACT,CACA,MAAOhc,GAEHnC,KAAKsgB,mBAAmBjN,EAAY+M,mBACxC,CACJ,EACA1C,EAAahd,UAAUyd,uBAAyB,WAC5C,IAAIpd,EACAwf,EAAevgB,KAAK4d,QAAQ5d,KAAK2d,eACrC,OAAoB,MAAhB4C,GACAvgB,KAAKwgB,mBACLxgB,KAAKge,QAAU1P,EAAiB2P,cACzB,OAEXje,KAAK6d,YAAc0C,EACnBvgB,KAAKge,QAAU1P,EAAiBmS,MACe,QAAvC1f,EAAKwf,EAAa7B,uBAAoC,IAAP3d,EAAgBA,EAAK,EAChF,EACA2c,EAAahd,UAAU4f,mBAAqB,SAAU1f,GAClDkI,EAAsBK,QAAQgQ,WAAWvY,EAC7C,EAIA8c,EAAahd,UAAU2e,oCAAsC,SAAUpE,EAAMyF,EAAWxB,EAAuBrV,EAAM8W,GACjH,GAAIzB,EAAuB,CACvB,IAAI0B,EAAsB5gB,KAAK6gB,6BAA6B5F,EAAMiE,GAClE,GAAIjE,EAAK5I,aAAe4I,EAAKjR,KAAM,CAC/B,IAAI2U,GAAW,EAAIrL,EAAUsL,mBAAmB/U,GAChD+W,EAAoB/B,UAAYF,CACpC,CACA+B,EAAUxB,GAAyByB,EAAQC,EAAqB1B,EACpE,CACJ,EACAxB,EAAahd,UAAUod,2BAA6B,WAChD,MAAO,CACHS,cAAe,CAAC,EAChBE,cAAe,CAAC,EAChBD,gBAAiB,CAAC,EAClBxU,KAAM,EACN0U,gBAAiB,EACjBrM,aAAa,EAErB,EAMAqL,EAAahd,UAAU6e,sBAAwB,SAAUuB,GACrD,OAAOtf,EAAUxB,UAAM,OAAQ,GAAQ,WACnC,IAAI+gB,EACJ,OAAOte,EAAYzC,MAAM,SAAUe,GAiB/B,OAhBAggB,EAAiB3hB,OAAO4hB,QAAQF,GAC3BG,MAAK,SAAUlgB,EAAIC,GACpB,IAAIyE,EAAIgX,EACJyE,EAAIngB,EAAG,GACP+F,EAAI9F,EAAG,GACX,OAAS,MAALkgB,EACO,EAEF,MAALpa,GACQ,GAEgE,QAAlErB,EAAKqB,aAA6B,EAASA,EAAE4X,uBAAoC,IAAPjZ,EAAgBA,EAAKqB,aAA6B,EAASA,EAAEkD,OAA4E,QAAlEyS,EAAKyE,aAA6B,EAASA,EAAExC,uBAAoC,IAAPjC,EAAgBA,EAAKyE,aAA6B,EAASA,EAAElX,KACtS,IACKqS,MAAM,EArNC,IAsNZyE,EAAgB1hB,OAAO+hB,YAAYJ,GACnCjY,EAAsBK,QAAQG,QAAQ+J,EAAY+M,mBAAoBlgB,KAAKE,UAAU0gB,IAC9E,CAAC,EAAcA,EAC1B,GACJ,GACJ,EACApD,EAAahd,UAAUqf,gBAAkB,SAAUza,EAAM8b,GACrD,IAAIrgB,EAAIC,EAAIyE,EAAIgX,EAAIC,EAChBhD,GAAO,EAAIpG,EAAUmM,cAAcna,GACvC,OAAqJ,QAA5IG,EAA6F,QAAvFzE,EAAiC,QAA3BD,EAAKf,KAAK6d,mBAAgC,IAAP9c,OAAgB,EAASA,EAAGqgB,UAAiC,IAAPpgB,OAAgB,EAASA,EAAG0Y,UAA0B,IAAPjU,EAAgBA,EAA6F,QAAvFiX,EAAiC,QAA3BD,EAAKzc,KAAK6d,mBAAgC,IAAPpB,OAAgB,EAASA,EAAG2E,UAAiC,IAAP1E,OAAgB,EAASA,EAAGpX,EAClT,EACAoY,EAAahd,UAAUmf,qBAAuB,SAAUva,EAAM+b,EAAWlL,GACrE,IAAIpV,EAAIC,EAAIyE,EACZ,OAAO,IAAIuF,EAAgB7B,QAAQ7D,EAAuF,QAAhFvE,EAAKsgB,aAA6C,EAASA,EAAU9hB,aAA0B,IAAPwB,EAAgBA,EAAK,CAAC,EAAsF,QAAlFC,EAAKqgB,aAA6C,EAASA,EAAUxO,eAA4B,IAAP7R,EAAgBA,EAAK,GAAImV,EAASkL,aAA6C,EAASA,EAAUvO,oBAA0H,QAApGrN,EAAK4b,aAA6C,EAASA,EAAUpB,iCAA8C,IAAPxa,EAAgBA,EAAK,GAAIzF,KAAKshB,kCAAkCthB,KAAKwM,UAAUC,OAC7iB,EACAiR,EAAahd,UAAUgf,sBAAwB,SAAU6B,EAAaC,GAClE,IAAIzgB,EACJ,OAAIwgB,EACO,CACHlT,OAAQrO,KAAKge,QACbhU,KAAkD,QAA3CjJ,EAAKf,KAAK6d,YAAYa,uBAAoC,IAAP3d,EAAgBA,EAAKkJ,KAAKC,OAIjF,CACHmE,OAAQmT,QAAuDA,EAAkBxhB,KAAKge,SAAW1P,EAAiB2P,cAC5G3P,EAAiB2P,cACjB3P,EAAiBmT,aACvBzX,KAAMC,KAAKC,MAGvB,EACAwT,EAAahd,UAAU8f,iBAAmB,WACtCxgB,KAAK6d,YAAc7d,KAAK8d,4BAC5B,EACAJ,EAAahd,UAAUmgB,6BAA+B,SAAU5F,EAAMyG,GAElE,MAAO,CACHnD,cAAetD,EAAKsD,cACpBE,cAAexD,EAAKwD,cACpBD,gBAAiBvD,EAAKuD,gBACtBxU,KAAmB,MAAbiR,EAAKjR,MAAgB2X,MAAM1G,EAAKjR,MAAQ,EAAIiR,EAAKjR,KACvD0U,gBAAiBzU,KAAKC,MACtB4U,eAAgB7D,EAAK6D,eAE7B,EACApB,EAAahd,UAAU4gB,kCAAoC,SAAUzX,GACjE,IAAI/E,EAAQ9E,KACZ,OAAO,SAAUkR,EAAQ0Q,EAAWC,EAAkBC,GAC7Chd,EAAM6M,YAGX7M,EAAM7E,wBAAwB4J,EAAM,aAAazD,OAAOwb,EAAW,wBAAwBxb,OAAO0b,EAAW,uDAAuD1b,OAAOyb,GAAmB,CAC1Lvc,KAAM4L,EAAO7Q,MACbV,OAAQuR,EAAO5Q,QACfshB,UAAWA,EACXC,iBAAkBA,EAClBC,UAAWA,GAEnB,CACJ,EACOpE,CACX,CAnRiC,GAoRjCpe,EAAA,QAAkBoe,C,wBChVlB,IAAIlc,EAAaxB,MAAQA,KAAKwB,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUzC,GAAS,IAAM0C,EAAKL,EAAUM,KAAK3C,GAAS,CAAE,MAAO4C,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAAS7C,GAAS,IAAM0C,EAAKL,EAAiB,MAAErC,GAAS,CAAE,MAAO4C,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAe9C,EAIa8C,EAAOC,KAAOR,EAAQO,EAAO9C,QAJ1CA,EAIyD8C,EAAO9C,MAJhDA,aAAiBoC,EAAIpC,EAAQ,IAAIoC,GAAE,SAAUG,GAAWA,EAAQvC,EAAQ,KAIjBgD,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EACIO,EAAezC,MAAQA,KAAKyC,aAAgB,SAAUhB,EAASiB,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOtD,IAAM,GAAI8C,EACvJ,SAASM,EAAKG,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAId,EAAG,MAAM,IAAIe,UAAU,mCAC3B,KAAOZ,IAAMA,EAAI,EAAGW,EAAG,KAAOV,EAAI,IAAKA,OACnC,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARY,EAAG,GAASb,EAAU,OAAIa,EAAG,GAAKb,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEtB,KAAKqB,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAEtB,KAAKqB,EAAGa,EAAG,KAAKnB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGY,EAAK,CAAS,EAARA,EAAG,GAAQZ,EAAEtD,QACzBkE,EAAG,IACP,KAAK,EAAG,KAAK,EAAGZ,EAAIY,EAAI,MACxB,KAAK,EAAc,OAAXV,EAAEC,QAAgB,CAAEzD,MAAOkE,EAAG,GAAInB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIa,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKV,EAAEI,IAAIQ,MAAOZ,EAAEG,KAAKS,MAAO,SACxC,QACI,MAAkBd,GAAZA,EAAIE,EAAEG,MAAYU,OAAS,GAAKf,EAAEA,EAAEe,OAAS,KAAkB,IAAVH,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEV,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVU,EAAG,MAAcZ,GAAMY,EAAG,GAAKZ,EAAE,IAAMY,EAAG,GAAKZ,EAAE,IAAM,CAAEE,EAAEC,MAAQS,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYV,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIY,EAAI,KAAO,CACpE,GAAIZ,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIU,KAAKJ,GAAK,KAAO,CAC9DZ,EAAE,IAAIE,EAAEI,IAAIQ,MAChBZ,EAAEG,KAAKS,MAAO,SAEtBF,EAAKf,EAAKnB,KAAKE,EAASsB,EAC5B,CAAE,MAAOZ,GAAKsB,EAAK,CAAC,EAAGtB,GAAIS,EAAI,CAAG,CAAE,QAAUD,EAAIE,EAAI,CAAG,CACzD,GAAY,EAARY,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAElE,MAAOkE,EAAG,GAAKA,EAAG,QAAK,EAAQnB,MAAM,EAC9E,CAtBgDL,CAAK,CAACsB,EAAGC,GAAK,CAAG,CAuBrE,EACI+E,EAAmBvI,MAAQA,KAAKuI,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,EACApJ,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQgP,iBAAmBhP,EAAQE,mBAAgB,EACnD,IAAIuE,EAAW,EAAQ,OACnBge,EAAkBxZ,EAAgB,EAAQ,QAC1CgD,EAAiB,EAAQ,OACzBP,EAAkB,EAAQ,OAC9B5L,OAAOC,eAAeC,EAAS,gBAAiB,CAAEuL,YAAY,EAAMlK,IAAK,WAAc,OAAO4H,EAAgByC,GAAiB7B,OAAS,IACxI,IAAI6Y,EAAiB,EAAQ,OAC7B5iB,OAAOC,eAAeC,EAAS,mBAAoB,CAAEuL,YAAY,EAAMlK,IAAK,WAAc,OAAOqhB,EAAe1T,gBAAkB,IAClI,IAAI2T,EAAyB,WACzB,SAASA,IACT,CAuHA,OAtHAA,EAAQC,WAAa,SAAUje,EAAQ4F,EAAM+B,GACzC,IAAI7K,EACJ,OAAOS,EAAUxB,UAAM,OAAQ,GAAQ,WACnC,IAAImiB,EACJ,OAAO1f,EAAYzC,MAAM,SAAUgB,GAK/B,OAJAmhB,EAAmC,QAA3BphB,EAAKkhB,EAAQG,gBAA6B,IAAPrhB,EAAgBA,EAAK,IAAIghB,EAAgB5Y,QAAQlF,EAAQ4F,EAAM+B,GACrGqW,EAAQG,WACTH,EAAQG,SAAWD,GAEhB,CAAC,EAAcA,EAAKrU,kBAC/B,GACJ,GACJ,EACAmU,EAAQtU,oBAAsB,SAAUH,GACpCyU,EAAQI,cAAc1U,oBAAoBH,EAC9C,EAEAyU,EAAQ1T,UAAY,SAAUC,GAC1B,OAAOyT,EAAQI,cAAc9T,UAAUC,EAC3C,EACAyT,EAAQvT,qCAAuC,SAAUF,GACrD,OAAOyT,EAAQI,cAAc3T,qCAAqCF,EACtE,EACAyT,EAAQK,wBAA0B,SAAU9T,GACxCyT,EAAQI,cAAc1T,gBAAgBH,EAC1C,EAEAyT,EAAQpT,UAAY,SAAUpP,GAC1B,OAAOwiB,EAAQI,cAAcxT,UAAUpP,EAC3C,EACAwiB,EAAQlT,qCAAuC,SAAUtP,GACrD,OAAOwiB,EAAQI,cAActT,qCAAqCtP,EACtE,EACAwiB,EAAQM,0BAA4B,SAAU9iB,GAC1CwiB,EAAQI,cAAcrT,kBAAkBvP,EAC5C,EAEAwiB,EAAQ/S,cAAgB,SAAUC,GAC9B,OAAO8S,EAAQI,cAAcnT,cAAcC,EAC/C,EACA8S,EAAQ7S,yCAA2C,SAAUD,GACzD,OAAO8S,EAAQI,cAAcjT,yCAAyCD,EAC1E,EACA8S,EAAQO,8BAAgC,SAAU/iB,GAC9CwiB,EAAQI,cAAchT,sBAAsB5P,EAChD,EAEAwiB,EAAQ3S,SAAW,SAAUC,GACzB,OAAO0S,EAAQI,cAAc/S,SAASC,EAC1C,EACA0S,EAAQxS,oCAAsC,SAAUF,GACpD,OAAO0S,EAAQI,cAAc5S,oCAAoCF,EACrE,EACA0S,EAAQQ,kCAAoC,SAAUlT,EAAWjH,GAC7D2Z,EAAQI,cAAc3S,0BAA0BH,EAAWjH,EAC/D,EACA2Z,EAAQrS,SAAW,SAAUhG,EAAWrK,EAAOiG,GAG3C,YAFc,IAAVjG,IAAoBA,EAAQ,WACf,IAAbiG,IAAuBA,EAAW,MAC/Byc,EAAQI,cAAczS,SAAShG,EAAWrK,EAAOiG,EAC5D,EACAyc,EAAQzR,WAAa,SAAU3G,GAC3B,OAAOoY,EAAQI,cAAc7R,WAAW3G,EAC5C,EACAoY,EAAQjS,qBAAuB,SAAUnG,EAAMoG,GAC3C,OAAOgS,EAAQI,cAAcrS,qBAAqBnG,EAAMoG,EAC5D,EACAgS,EAAQtR,SAAW,WACfsR,EAAQI,cAAc1R,WACtBsR,EAAQG,SAAW,IACvB,EACAH,EAAQnR,aAAe,SAAUC,EAAM1O,GACnC4f,EAAQI,cAAcvR,aAAaC,EAAM1O,EAC7C,EACA4f,EAAQhR,eAAiB,SAAUC,EAAQ7O,GACvC4f,EAAQI,cAAcpR,eAAeC,EAAQ7O,EACjD,EACA4f,EAAQ9Q,cAAgB,SAAUnF,EAAO3J,GACrC4f,EAAQI,cAAclR,cAAcnF,EAAO3J,EAC/C,EACA4f,EAAQ7Q,aAAe,SAAU/H,GAC7B4Y,EAAQI,cAAcjR,aAAa/H,EACvC,EACA4Y,EAAQ5Q,aAAe,WACnB,OAAO4Q,EAAQI,cAAchR,cACjC,EAIA4Q,EAAQrR,YAAc,WAClB,OAAOqR,EAAQI,cAAczR,aACjC,EAMAqR,EAAQ9T,qBAAuB,WAC3B,IAAIpN,EAAIC,EACR,OAA0G,QAAjGA,EAAiC,QAA3BD,EAAKkhB,EAAQG,gBAA6B,IAAPrhB,OAAgB,EAASA,EAAGoN,8BAA2C,IAAPnN,EAAgBA,EAAK,CACnIqN,OAAQ9C,EAAe+C,iBAAiB2P,cACxCjU,KAAM,EAEd,EAKAiY,EAAQ7R,iBAAmB,WACvB,OAA2B,MAApB6R,EAAQG,UAAoBH,EAAQG,SAAShS,kBACxD,EACA6R,EAAQI,YAAc,WAClB,IAAKJ,EAAQG,SACT,MAAM,IAAIre,EAASuC,0BAEvB,OAAO2b,EAAQG,QACnB,EACAH,EAAQG,SAAW,KACZH,CACX,CA1H4B,GA2H5B3iB,EAAA,QAAkB2iB,C,sBC3KlB,IAAI1Y,EAAYvJ,MAAQA,KAAKuJ,UAAa,WAStC,OARAA,EAAWnK,OAAOoK,QAAU,SAAS3G,GACjC,IAAK,IAAI4G,EAAGC,EAAI,EAAGnG,EAAIoG,UAAU/F,OAAQ8F,EAAInG,EAAGmG,IAE5C,IAAK,IAAIzC,KADTwC,EAAIE,UAAUD,GACOtK,OAAOsB,UAAUwG,eAAe3F,KAAKkI,EAAGxC,KACzDpE,EAAEoE,GAAKwC,EAAExC,IAEjB,OAAOpE,CACX,EACO0G,EAAS/G,MAAMxC,KAAM2J,UAChC,EACAvK,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAImjB,EAAoC,WACpC,SAASA,IACT,CAgEA,OA/DAA,EAAmBtE,QAAU,SAAUvU,EAAMoG,GACzC,IACI,IAAI0S,EAAgB1S,EAAuB,eAC3C,IAAK0S,GAA0C,iBAAlBA,EACzB,OAAO,EAEX,IAAIC,EAAsB5iB,KAAK6iB,WAAWF,GACtCG,EAAwB,MAARjZ,EAAe,KAAO7J,KAAK6iB,WAAWhZ,GAC1D,OAAQ6Y,EAAmBK,SAASH,EAAqBE,IACrDJ,EAAmBK,SAASD,EAAeF,EACnD,CACA,MAAO3d,GAEP,CACA,OAAO,CACX,EACAyd,EAAmBK,SAAW,SAAUC,EAAKC,GACzC,GAAW,MAAPD,EACA,OAAc,MAAPC,EAEN,GAAW,MAAPA,EACL,OAAO,EAEX,IAAK,IAAI9K,EAAK,EAAGpX,EAAK3B,OAAO4hB,QAAQgC,GAAM7K,EAAKpX,EAAG6C,OAAQuU,IAAM,CAC7D,IAAInX,EAAKD,EAAGoX,GAAKvX,EAAMI,EAAG,GAAIzB,EAAQyB,EAAG,GACzC,GAAY,aAARJ,EAAJ,CAGA,UAAWrB,UAAiB0jB,EAAIriB,GAC5B,OAAO,EAEX,GAAqB,iBAAVrB,EAKN,MAAqB,iBAAVA,GACLS,KAAK+iB,SAASxjB,EAAO0jB,EAAIriB,IALhC,GAAIrB,IAAU0jB,EAAIriB,GACd,OAAO,CANf,CAgBJ,CACA,OAAO,CACX,EACA8hB,EAAmBG,WAAa,SAAUpc,GACtC,GAAW,MAAPA,EACA,OAAO,KAEX,IAAIyc,EAAO,CAAC,EAIZ,IAHIzc,aAAiC,EAASA,EAAI0c,UAC9CD,EAAa,OAAIzc,aAAiC,EAASA,EAAI0c,QAE/D1c,aAAiC,EAASA,EAAI2c,UAAW,CACzD,IAAIA,EAAY7Z,EAAS,CAAC,EAAG9C,EAAI2c,kBAC1BA,EAAoB,SACW,IAAlChkB,OAAOikB,KAAKD,GAAWxf,SACvBsf,EAAgB,UAAIE,EAE5B,CACA,OAAOF,CACX,EACOR,CACX,CAnEuC,GAoEvCpjB,EAAA,QAAkBojB,C,gBChFlBtjB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQgkB,mBAAqBhkB,EAAQgZ,0CAA4ChZ,EAAQqU,sBAAwBrU,EAAQ8gB,wBAAqB,EAC9I9gB,EAAQ8gB,mBAAqB,gBAC7B9gB,EAAQqU,sBAAwB,oBAChCrU,EAAQgZ,0CAA4C,eACpDhZ,EAAQgkB,mBAAqB,CACzBlD,oBAAoB,EACpBzM,uBAAuB,EACvB2E,2CAA2C,E,gBCN/C,SAASiL,EAAWhkB,GAEhB,IADA,IAAIma,EAAO,EACFhQ,EAAI,EAAGA,EAAInK,EAAMqE,OAAQ8F,IAE9BgQ,GAAQA,GAAQ,GAAKA,EADLna,EAAMikB,WAAW9Z,GAEjCgQ,GAAcA,EAElB,OAAOvT,OAAOuT,IAAS,EAC3B,CAUA,SAAS+J,EAAgBC,GACrB,GAAc,MAAVA,EACA,OAAO,KAEX,IAAIL,EAAOjkB,OAAOikB,KAAKK,GAAQzC,OAC3B0C,EAAe,CAAC,EAQpB,OAPAN,EAAKzH,SAAQ,SAAUhb,GACnB,IAAIrB,EAAQmkB,EAAO9iB,GACfrB,aAAiBH,SACjBG,EAAQkkB,EAAgBlkB,IAE5BokB,EAAa/iB,GAAOrB,CACxB,IACOokB,CACX,CAlCAvkB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQyU,gBAAkBzU,EAAQmkB,gBAAkBnkB,EAAQsf,kBAAoBtf,EAAQmgB,aAAengB,EAAQikB,gBAAa,EAU5HjkB,EAAQikB,WAAaA,EAIrBjkB,EAAQmgB,aAHR,SAAsBlgB,GAClB,OAAOgkB,EAAWhkB,EACtB,EAKAD,EAAQsf,kBAHR,SAA2B8E,GACvB,OAAOH,EAAWrjB,KAAKE,UAAUqjB,EAAgBC,IACrD,EAiBApkB,EAAQmkB,gBAAkBA,EAa1BnkB,EAAQyU,gBAZR,SAAyBlK,GACrB,IAAI9I,EACAH,EAAM,UAAUwF,OAAOD,OAA0E,QAAlEpF,EAAK8I,aAAmC,EAASA,EAAKsZ,cAA2B,IAAPpiB,EAAgBA,EAAK,KAC9HqiB,EAAYvZ,aAAmC,EAASA,EAAKuZ,UACjE,GAAiB,MAAbA,EACA,IAAK,IAAIjL,EAAK,EAAGnX,EAAK5B,OAAO4hB,QAAQoC,GAAYjL,EAAKnX,EAAG4C,OAAQuU,IAAM,CACnE,IAAI1S,EAAKzE,EAAGmX,GAAK/E,EAAO3N,EAAG,GAAIlG,EAAQkG,EAAG,GAC1C7E,GAAO,IAAIwF,OAAOgN,EAAM,KAAKhN,OAAO7G,EACxC,CAEJ,OAAOgkB,EAAW3iB,EACtB,C,gBC/CAxB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,IAAIqkB,EAAqC,WACrC,SAASA,IACT,CAiDA,OAhDAA,EAAoBxa,QAAU,SAAUxI,GACpC,IAAIG,EACJ,IACI,GAAIf,KAAK6jB,sBACL,OAAOpO,OAAOqO,aAAa1a,QAAQxI,EAE3C,CACA,MAAOuB,GAAK,CACZ,OAAiD,QAAzCpB,EAAKf,KAAK+jB,qBAAqBnjB,UAAyB,IAAPG,EAAgBA,EAAK,IAClF,EACA6iB,EAAoBta,QAAU,SAAU1I,EAAKrB,GACzC,IACI,GAAIS,KAAK6jB,sBAEL,YADApO,OAAOqO,aAAaxa,QAAQ1I,EAAKrB,EAGzC,CACA,MAAO4C,GAAK,CACZnC,KAAK+jB,qBAAqBnjB,GAAOrB,CACrC,EACAqkB,EAAoBzK,WAAa,SAAUvY,GACvC,IACI,GAAIZ,KAAK6jB,sBAEL,YADApO,OAAOqO,aAAa3K,WAAWvY,EAGvC,CACA,MAAOuB,GAAK,QACLnC,KAAK+jB,qBAAqBnjB,EACrC,EACAgjB,EAAoBC,oBAAsB,SAAUG,QACnB,IAAzBA,IAAmCA,GAAuB,GACvB,MAAnChkB,KAAKikB,6BACLjkB,KAAKikB,2BACkB,oBAAZC,SACe,oBAAXzO,QACG,MAAVA,QACuB,MAAvBA,OAAOqO,cAEnB,IAAIK,EAAYnkB,KAAKikB,2BACrB,OAAID,IAGIhkB,KAAKgN,WAFFmX,CAGf,EACAP,EAAoB5W,UAAW,EAC/B4W,EAAoBG,qBAAuB,CAAC,EAC5CH,EAAoBK,2BAA6B,KAC1CL,CACX,CApDwC,GAqDxCtkB,EAAA,QAAkBskB,C,gBCpDlB,SAAS1Z,IACL,MAA2B,oBAAhBka,aAAgCA,YAGhB,EAApBA,YAAYla,MAFRD,KAAKC,KAGpB,CAPA9K,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ+kB,WAAa/kB,EAAQ4K,SAAM,EAOnC5K,EAAQ4K,IAAMA,EAId5K,EAAQ+kB,WAHR,SAAoBra,GAChB,OAAOE,IAAQF,CACnB,C,wGCJMsa,EAAqB,SAAHC,GAAwC,IAAAC,EAAlCC,EAAQF,EAARE,SACtBC,GAAwD,QAAnCF,EAACG,EAAAA,EAAAA,UAAkB,wBAAgB,IAAAH,EAAAA,EAAI,IAAII,QACpE,MACA,IAKF,OAFiBF,GAA6C,KAAvBA,EAInCG,EAAAA,cAACC,EAAAA,2BAA0B,CACzBlZ,QAAS,CACPmZ,OAAQ,uCACRvT,YAAawT,EAAAA,uBAAAA,YACbC,UAAW,wBAEbC,YAAa,CAAER,mBAAAA,IAEdD,GAIE,IAEX,EAEMU,EAAe,WAQnB,OAPiBC,IAAAA,mBACf,mBACA,aACA,GAIK,IACT,EAUA,QARgB,WACd,OACEP,EAAAA,cAACP,EAAkB,KACjBO,EAAAA,cAACM,EAAY,MAGnB,C,kBClDA/lB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD,MAAM8lB,EAAW,EAAQ,OACnBC,EAAU,EAAQ,OAClBC,EAAY,EAAQ,OAM1B,MAAMC,EACFC,4BAA4BC,GACxB,MAAM,UAAET,GAAcS,EAChB5L,EAAM,iCAAiCmL,IAC7C,IACI,aAAajlB,KAAK2lB,aAAa7L,EAAK,MAAO4L,EAC/C,CACA,MAAOzgB,GACH,GAAIA,aAAiBS,MACjB,MAAMT,EAEV,MAAMS,MAAM,oCAChB,CACJ,CACA+f,mCAAmCC,EAAgBR,EAAaU,GAC5D,MAAMvN,EAAc,CAChB6M,cACAU,mBACAX,UAAWS,EAAeT,WAE9B,IACI,aAAajlB,KAAK2lB,aAAa,oCAAqC,OAAQD,EAAgBrN,EAChG,CACA,MAAOpT,GACH,GAAIA,aAAiBS,MACjB,MAAMT,EAEV,MAAMS,MAAM,uCAChB,CACJ,CACA+f,iCAAiCjO,GAC7B,IAAKA,EAASC,GAAI,CAEd,MAAM/U,QAAa8U,EAASE,OAC5B,MAAM,IAAI2N,EAASQ,cAAc,6CAA6CrO,EAASgB,iBAAiBtY,KAAKE,UAAUsC,KAC3H,CACA,GAAwB,MAApB8U,EAASgB,OACT,MAAM,IAAI6M,EAASQ,cAAc,0BAEzC,CACAJ,iCAAiCjO,GAC7B,MAAMjY,QAAciY,EAASE,OAC7B,OAAOxX,KAAKC,MAAMZ,EACtB,CACAkmB,kBAAkBK,EAAYC,GAAgB,GAC1C,GAAIA,EACA,MA/Ca,qBAiDjB,OAAQD,GACJ,KAAKR,EAAQN,uBAAuBgB,YAChC,MApDK,sCAqDT,KAAKV,EAAQN,uBAAuBiB,QAChC,MAvDS,sCAwDb,QACI,MA1DM,kCA4DlB,CACAR,0BAA0BS,EAAMjgB,EAAQyf,EAAgBhjB,GACpD,MAAMyjB,EAAUX,EAAQY,WAAWV,EAAelU,YAAakU,EAAeW,eACxEC,EAAeZ,EAAea,gBAhET,IAiE3B,IAAIC,EACJ,GAAIC,YAAY5U,QACZ2U,EAAcC,YAAY5U,QAAQyU,QAEjC,GAAII,gBAAiB,CACtB,MAAMC,EAAkB,IAAID,gBAC5BF,EAAcG,EAAgBC,OAC9BnZ,YAAW,IAAMkZ,EAAgBE,SAASP,EAC9C,CACA,MAAM9O,QAAiBxR,MAAM,GAAGmgB,IAAUD,IAAQ9mB,OAAOoK,OAAO,CAAEvD,SAAQC,QAAS,CAC3E,eAAgB,mBAChB,gBAAiB,yBACjB,mBAAoBqf,EAAUuB,eAC9B,YAAapB,EAAeX,QAC7B6B,OAAQJ,GAAgB9jB,GAAQ,CAAEA,KAAMxC,KAAKE,UAAUsC,MAE9D,aADM1C,KAAK+mB,oBAAoBvP,SAClBxX,KAAKgnB,oBAAoBxP,EAC1C,EAEJlY,EAAA,QAAkBkmB,C,gBCxFlBpmB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQumB,mBAAgB,EACxB,MAAMA,UAAsBngB,MACxB0B,YAAYG,GACR0f,MAAM1f,EACV,EAEJjI,EAAQumB,cAAgBA,C,wBCPxB,IAAItd,EAAmBvI,MAAQA,KAAKuI,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,EACApJ,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAA,aAAkB,EAClB,IAAI4nB,EAAY,EAAQ,OACxB9nB,OAAOC,eAAeC,EAAS,UAAW,CAAEuL,YAAY,EAAMlK,IAAK,WAAc,OAAO4H,EAAgB2e,GAAW/d,OAAS,G,wBCN5H,IAAIiB,EAAmBpK,MAAQA,KAAKoK,kBAAqBhL,OAAOiI,OAAS,SAAUgD,EAAGC,EAAGC,EAAGC,QAC7EnC,IAAPmC,IAAkBA,EAAKD,GAC3B,IAAIE,EAAOrL,OAAOsL,yBAAyBJ,EAAGC,GACzCE,KAAS,QAASA,GAAQH,EAAE7B,WAAagC,EAAKE,UAAYF,EAAKG,gBAClEH,EAAO,CAAEI,YAAY,EAAMlK,IAAK,WAAa,OAAO2J,EAAEC,EAAI,IAE5DnL,OAAOC,eAAegL,EAAGG,EAAIC,EAChC,EAAI,SAAUJ,EAAGC,EAAGC,EAAGC,QACTnC,IAAPmC,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGO,EAAsB9K,MAAQA,KAAK8K,qBAAwB1L,OAAOiI,OAAS,SAAUgD,EAAG7G,GACxFpE,OAAOC,eAAegL,EAAG,UAAW,CAAEQ,YAAY,EAAMtL,MAAOiE,GAClE,EAAI,SAAS6G,EAAG7G,GACb6G,EAAW,QAAI7G,CACnB,GACIuH,EAAgB/K,MAAQA,KAAK+K,cAAiB,SAAUvC,GACxD,GAAIA,GAAOA,EAAIC,WAAY,OAAOD,EAClC,IAAInG,EAAS,CAAC,EACd,GAAW,MAAPmG,EAAa,IAAK,IAAI+B,KAAK/B,EAAe,YAAN+B,GAAmBnL,OAAOsB,UAAUwG,eAAe3F,KAAKiH,EAAK+B,IAAIH,EAAgB/H,EAAQmG,EAAK+B,GAEtI,OADAO,EAAmBzI,EAAQmG,GACpBnG,CACX,EACI8kB,EAAgBnnB,MAAQA,KAAKmnB,cAAiB,SAAS7c,EAAGhL,GAC1D,IAAK,IAAI2H,KAAKqD,EAAa,YAANrD,GAAoB7H,OAAOsB,UAAUwG,eAAe3F,KAAKjC,EAAS2H,IAAImD,EAAgB9K,EAASgL,EAAGrD,EAC3H,EACImgB,EAAUpnB,MAAQA,KAAKonB,QAAW,SAAU3d,EAAGtH,GAC/C,IAAIU,EAAI,CAAC,EACT,IAAK,IAAIoE,KAAKwC,EAAOrK,OAAOsB,UAAUwG,eAAe3F,KAAKkI,EAAGxC,IAAM9E,EAAEklB,QAAQpgB,GAAK,IAC9EpE,EAAEoE,GAAKwC,EAAExC,IACb,GAAS,MAALwC,GAAqD,mBAAjCrK,OAAOkoB,sBACtB,KAAI5d,EAAI,EAAb,IAAgBzC,EAAI7H,OAAOkoB,sBAAsB7d,GAAIC,EAAIzC,EAAErD,OAAQ8F,IAC3DvH,EAAEklB,QAAQpgB,EAAEyC,IAAM,GAAKtK,OAAOsB,UAAU6mB,qBAAqBhmB,KAAKkI,EAAGxC,EAAEyC,MACvE7G,EAAEoE,EAAEyC,IAAMD,EAAExC,EAAEyC,IAF4B,CAItD,OAAO7G,CACX,EACI0F,EAAmBvI,MAAQA,KAAKuI,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,EACApJ,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQgP,iBAAmBhP,EAAQE,mBAAgB,EACnD,MAAMgoB,EAAoBzc,EAAa,EAAQ,QAC/C,IAAI0c,EAAoB,EAAQ,OAChCroB,OAAOC,eAAeC,EAAS,gBAAiB,CAAEuL,YAAY,EAAMlK,IAAK,WAAc,OAAO8mB,EAAkBjoB,aAAe,IAC/HJ,OAAOC,eAAeC,EAAS,mBAAoB,CAAEuL,YAAY,EAAMlK,IAAK,WAAc,OAAO8mB,EAAkBnZ,gBAAkB,IACrI,MAAMoZ,EAAYnf,EAAgB,EAAQ,QAC1C4e,EAAa,EAAQ,OAAY7nB,GACjC,MAAMqoB,EAAqB,qBAC3B,MAAMvC,EACFK,wBAAwBmC,EAAe1C,EAAaU,GAChD,OAAIR,EAAayC,aACbrhB,QAAQshB,KAAK,4CACN1C,EAAayC,cAExBzC,EAAa2C,YAAcH,EAC3BxC,EAAayC,YAAczC,EAAa4C,KAAKJ,EAAe1C,EAAaU,GAAkBrjB,MAAK,KAC5F6iB,EAAa6C,eAAgB,CAAI,IAE9B7C,EAAayC,YACxB,CACApC,kCAAkCmC,EAAe1C,EAAaU,EAAkBpY,EAAmB,CAAC,GAChG,OAAI4X,EAAayC,aACbrhB,QAAQshB,KAAK,4CACN1C,EAAayC,cAExBzC,EAAa2C,YAAcH,EAC3BxC,EAAayC,YAAczC,EAAa8C,eAAeN,EAAe1C,EAAaU,EAAkBpY,GAAkBjL,MAAK,KACxH6iB,EAAa6C,eAAgB,CAAI,IAE9B7C,EAAayC,YACxB,CAOApC,wBAAwB0C,EAAcjD,EAAaU,SAEzCR,EAAagD,yCADc,IAAMV,EAAUve,QAAQkf,sBAAsBF,EAAcjD,EAAaU,GAAkBrjB,MAAMiV,GAAaA,EAAS8Q,oBACnEpD,EAAaU,EACtG,CAQAH,kCAAkCP,EAAaU,EAAkBpY,EAAmB,CAAC,SAE3E4X,EAAagD,yCADc,IAAMvmB,QAAQC,QAAQ0L,IAC8B0X,EAAaU,EACtG,CACAH,0BACI,OAAmC,MAA5BL,EAAayC,WACxB,CACApC,6BACI,OAAOL,EAAa6C,aACxB,CACAxC,iBAAiBjX,GACb,OAAOgZ,EAAkBre,QAAQoF,UAAUC,EAC/C,CAcAiX,qBAAqBtW,EAAgBvD,GACjC,IACI,MAAM2c,EAAiB,CACnBC,wBAAwB,IAEtB,uBAAEA,GAA2BppB,OAAOoK,OAAOpK,OAAOoK,OAAO,CAAC,EAAG+e,GAAiB3c,GAIpF,OAHmB4c,EACbhB,EAAkBre,QAAQ+F,cAAcuZ,KAAKjB,EAAkBre,SAC/Dqe,EAAkBre,QAAQiG,yCAAyCqZ,KAAKjB,EAAkBre,UAC9EgG,EACtB,CACA,MAAOlK,GAWH,OATKmgB,EAAasD,gCACdliB,QAAQshB,KAAK,CACTa,IAAK,mGACLxZ,iBACAlK,UAEJmgB,EAAasD,+BAAgC,GAG1C,IAAIlB,EAAkBhoB,cAAc2P,EAAgB,CAAC,EAAG,GAAI,CAC/DnF,KAAMC,KAAKC,MACXmE,OAAQmZ,EAAkBlZ,iBAAiB5I,OAEnD,CACJ,CA8BA+f,0BAA0BtW,EAAgB7G,EAAezH,EAAc+K,GACnE,MAAMgd,EAAaxD,EAAalW,cAAcC,EAAgBvD,GAC9D,IACI,MAAM2c,EAAiB,CAAC,GAClB,UAAEznB,GAAc1B,OAAOoK,OAAOpK,OAAOoK,OAAO,CAAC,EAAG+e,GAAiB3c,GACvE,OAAOgd,EAAWjoB,IAAI2H,EAAezH,EAAcC,EACvD,CACA,MAAOmE,GAYH,OAVKmgB,EAAayD,qCACdriB,QAAQshB,KAAK,CACTa,IAAK,yGACLxZ,iBACAtO,eACA+K,UACA3G,UAEJmgB,EAAayD,oCAAqC,GAE/ChoB,CACX,CACJ,CACA4kB,qCAAqCtW,GACjCqY,EAAkBre,QAAQqZ,8BAA8BrT,EAC5D,CACAsW,yBACI+B,EAAkBre,QAAQwH,UAC9B,CAeA8U,oBAAoBjX,EAAUjP,GAC1BioB,EAAkBre,QAAQ2H,aAAatC,EAAUjP,EACrD,CAKAkmB,yBAAyBjX,GACrBgZ,EAAkBre,QAAQ2H,aAAatC,EAAU,KACrD,CAeAiX,sBAAsBtW,EAAgBc,GAClCuX,EAAkBre,QAAQ8H,eAAe9B,EAAgBc,EAC7D,CAKAwV,2BAA2BtW,GACvBqY,EAAkBre,QAAQ8H,eAAe9B,EAAgB,KAC7D,CAcAsW,oBAAoBpc,GAChBme,EAAkBre,QAAQiI,aAAa/H,EAC3C,CAIAoc,2BACI+B,EAAkBre,QAAQiI,aAAa,KAC3C,CASAqU,kBAAkBmC,EAAe1C,EAAaU,GAC1C,MAAMkD,EAA0B1pB,OAAOoK,OAAOpK,OAAOoK,OAAO,CAAC,EAAGoe,GAAgB,CAAEpS,2BAA2B,IAC7G,IAAI8S,EACJ,IAGI,MAAMS,EAAsBrB,EAAUve,QAAQ6f,eAAepB,GAAerlB,MAAMhD,GAAWupB,EAAwB7kB,OAAS1E,EAAM0pB,eAC9HC,EAA0BxB,EAAUve,QAAQkf,sBAAsBT,EAAe1C,EAAaU,IAG7F,CAAEuD,SAAgCtnB,QAAQunB,IAAI,CACjDL,EACAG,IAEJZ,EAAmBa,EAAuBb,gBAC9C,CACA,MAAOrjB,GAMH,MALIA,aAAiBS,OACjBc,QAAQvB,MAAM,+EAA+EA,aAAqC,EAASA,EAAMsC,WAErJf,QAAQshB,KAAK,oDACP1C,EAAa8C,eAAeY,EAAyB5D,EAAaU,GAClE3gB,CACV,OACMjF,KAAKkoB,eAAeY,EAAyB5D,EAAaU,EAAkB0C,EACtF,CAUA7C,4BAA4BmC,EAAe1C,EAAaU,EAAkBpY,EAAmB,CAAC,GAC1F,MAAM3D,EAAO7J,KAAKqpB,cAAcnE,EAAaU,GAC7CR,EAAakE,mBAAqBpE,EAClCE,EAAamE,kBAAoB3D,EAC5BgC,EAAc3jB,SACf2jB,EAAc3jB,OAAS0jB,GAE3B,MAAM,OAAE1jB,GAAW2jB,EACb4B,EAAiBxpB,KAAKypB,iBAAiB7B,EAAepa,GAC5D,UACUga,EAAkBre,QAAQ+Y,WAAWje,EAAQ4F,EAAM2f,EAC7D,CACA,MAAOvkB,GAMH,MALIA,aAAiBS,OACjBc,QAAQvB,MAAM,uEAAuEA,aAAqC,EAASA,EAAMsC,WAE7If,QAAQshB,KAAK,6EACPN,EAAkBre,QAAQ+Y,WAAWyF,EAAoB9d,EAAMzK,OAAOoK,OAAOpK,OAAOoK,OAAO,CAAC,EAAGggB,GAAiB,CAAEhc,iBAAkB,CAAC,KACrIvI,CACV,CACJ,CAQAwgB,qBAAqBP,EAAaU,GAC9B,MAAM/b,EAAO,CACTuZ,UAAW8B,EACXwE,OAAQ9D,GAKZ,OAHIV,EAAYR,qBACZ7a,EAAKsZ,OAAS+B,EAAYR,oBAEvB7a,CACX,CASA4b,qDAAqDkE,EAAqBzE,EAAaU,GACnF,IAAKR,EAAayC,YACd,MAAM,IAAIniB,MAAM,+EAGpB,GAAI0f,EAAawE,cAAc1E,EAAaU,GACxC,OAAOR,EAAayC,YAGxB,MAAMgC,EAAsBzE,EAAayC,YACzC,UACUzC,EAAayC,WACvB,CACA,MAAOiC,GAGP,CACA,MAAMC,EAA0BJ,IAC1BK,EAAoB5E,EAAa6E,wBAAwBF,EAAyB7E,EAAaU,GAOrG,OAJAR,EAAayC,YAAcmC,EAAkBjlB,OAAM,KAE/CqgB,EAAayC,YAAcgC,CAAmB,IAE3CG,CACX,CASAvE,qCAAqCsE,EAAyB7E,EAAaU,GACvE,IAAI7kB,EAAIC,EACR,IAAIwM,EAAkB3D,EACtB,IACI2D,QAAyBuc,EACzBlgB,EAAOub,EAAaiE,cAAcnE,EAAaU,EACnD,CACA,MAAOkE,GAGH,MAAMI,EAASJ,aAAepkB,MAAQokB,EAAIviB,QAAUrH,KAAKE,UAAU0pB,GAEnE,MADwE,QAAvE9oB,GAAMD,EAAKqkB,EAAa2C,aAAaxX,oCAAiD,IAAPvP,GAAyBA,EAAGO,KAAKR,GAAI,EAAOmpB,GACtHJ,CACV,CAEA,IADgBtC,EAAkBre,QAAQ6G,qBAAqBnG,EAAM2D,GAMjE,MAAM,IAAI9H,MAAM,uDAJhB0f,EAAakE,mBAAqBpE,EAClCE,EAAamE,kBAAoB3D,CAKzC,CAOAH,wBAAwB7Z,EAAS4B,GAC7B,MAAM,OAGNvJ,EAAM,6BAGNsM,GAAiC3E,EAASue,EAAoB/C,EAAOxb,EAAS,CAAC,SAAU,iCACzF,OAAOxM,OAAOoK,OAAOpK,OAAOoK,OAAOpK,OAAOoK,OAAO,CAAC,EAAG2gB,GAAoB,CAAE3c,mBAAkBgE,YAAa,CAClG4Y,KAAMxe,EAAQ4F,aACfgE,2BAA2B,IAAU5J,EAAQ2E,8BAAgC,CAChFA,6BAA8B6U,EAAaiF,sCAAsCze,EAAQ2E,+BAEjG,CAOAkV,6CAA6C6E,GAMzC,MAAO,CAACC,EAAWtc,EAAS1G,KACxB+iB,EAASrc,EAAS1G,EAAQ,CAElC,CACAke,qBAAqBP,EAAaU,GAC9B,OAAQR,EAAaoF,cAAcpF,EAAakE,mBAAoBpE,IAChEE,EAAaoF,cAAcpF,EAAamE,kBAAmB3D,EACnE,CACAH,qBAAqBgF,EAASC,GAC1B,IAAKD,IAAYC,EACb,OAAO,EAEX,IAAKD,IAAYC,EACb,OAAO,EAEX,MAAMC,EAAWvrB,OAAO4hB,QAAQyJ,GAC1BG,EAAWxrB,OAAO4hB,QAAQ0J,GAChC,GAAIC,EAAS/mB,SAAWgnB,EAAShnB,OAC7B,OAAO,EAEX,MAAMinB,EAAoB,EAAEC,IAAQC,KAAUD,EAAKE,cAAcD,GACjEJ,EAAS1J,KAAK4J,GACdD,EAAS3J,KAAK4J,GACd,IAAK,IAAInhB,EAAI,EAAGA,EAAIihB,EAAS/mB,OAAQ8F,IAAK,CACtC,MAAO,CAAEuhB,GAAUN,EAASjhB,IACrB,CAAEwhB,GAAUN,EAASlhB,GAC5B,GAAIuhB,IAAWC,EACX,OAAO,CAEf,CACA,OAAO,CACX,EAEJ9F,EAAayC,YAAc,KAC3BzC,EAAa6C,eAAgB,EAC7B7C,EAAasD,+BAAgC,EAC7CtD,EAAayD,oCAAqC,EAClDvpB,EAAA,QAAkB8lB,OAIH/c,IAAXoN,SACAA,OAAO0V,oBAAsB/F,E,gBCtejC,IAAIgG,EAKApG,EAVJ5lB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ0lB,uBAAyB1lB,EAAQ8rB,gBAAa,EAKtD,SAAWA,GACPA,EAAqB,SAAI,WACzBA,EAAoB,QAAI,SAC3B,CAHD,CAGGA,IAAe9rB,EAAQ8rB,WAAaA,EAAa,CAAC,IAErD,SAAWpG,GACPA,EAAoC,YAAI,cACxCA,EAAgC,QAAI,UACpCA,EAAmC,WAAI,YAC1C,CAJD,CAIGA,IAA2B1lB,EAAQ0lB,uBAAyBA,EAAyB,CAAC,G,gBCfzF5lB,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQwnB,oBAAiB,EACzBxnB,EAAQwnB,eAAiB,O,wBCFzB,IAAIve,EAAmBvI,MAAQA,KAAKuI,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,EACApJ,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQwlB,gCAA6B,EACrC,MAAMuG,EAAU,EAAQ,OAClBC,EAA2B/iB,EAAgB,EAAQ,QACnDgjB,EAAU,EAAQ,MAkCxBjsB,EAAQwlB,2BA7B2B,EAAGL,WAAU+G,WAAU,EAAMtG,cAAaU,mBAAkBha,UAAS6f,wBAAuBC,cAC3H,MAAOC,EAAeC,IAAkB,EAAIP,EAAQQ,WAAU,GAIxDC,GAAa,EAAIT,EAAQU,QAAQngB,GAsBvC,OArBA,EAAIyf,EAAQW,YAAW,KACnBF,EAAWG,QAAUrgB,CAAO,GAC7B,CAACA,KACJ,EAAIyf,EAAQW,YAAW,KACfR,GACAI,GAAe,IACKN,EAAyBniB,QAAQiH,mBAC/Ckb,EAAyBniB,QAAQqH,WAAWsb,EAAWG,QAAS/G,EAAaU,GAC7E0F,EAAyBniB,QAAQ+Y,WAAW4J,EAAWG,QAAS/G,EAAaU,IAE9E7gB,OAAO+kB,IAAQ,EAAIyB,EAAQW,SAASpC,KACpCvnB,MAAMunB,IACP8B,GAAe,GACfF,SAAkDA,EAAQ5B,QAAOzhB,EAAU,MAI/EujB,GAAe,GACfF,SAAkDA,IACtD,GACD,CAACF,EAAStG,EAAaU,KACnB,EAAI2F,EAAQY,mBAAmBX,EAASG,EAAelH,EAAUgH,EAAsB,EAGlGnsB,EAAA,QAAkBA,EAAQwlB,0B,wBC1C1B,IAAIvc,EAAmBvI,MAAQA,KAAKuI,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,EACApJ,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ8sB,4CAAyC,EACjD,MAAMf,EAAU,EAAQ,OAClBC,EAA2B/iB,EAAgB,EAAQ,QACnDgjB,EAAU,EAAQ,MAkCxBjsB,EAAQ8sB,uCA7BuC,EAAG3H,WAAU+G,WAAU,EAAMtG,cAAaU,mBAAkBha,UAAS8f,cAChH,MAAOC,EAAeC,IAAkB,EAAIP,EAAQQ,WAAU,GAIxDC,GAAa,EAAIT,EAAQU,QAAQngB,GAsBvC,OArBA,EAAIyf,EAAQW,YAAW,KACnBF,EAAWG,QAAUrgB,CAAO,GAC7B,CAACA,KACJ,EAAIyf,EAAQW,YAAW,KACfR,GACAI,GAAe,IACKN,EAAyBniB,QAAQiH,mBAC/Ckb,EAAyBniB,QAAQ6G,qBAAqBkV,EAAaU,GACnE0F,EAAyBniB,QAAQkjB,qBAAqBjtB,OAAOoK,OAAO,CAAEvF,OAAQ,sBAAyB6nB,EAAWG,SAAW,CAAC,GAAK/G,EAAaU,IAEjJ7gB,OAAO+kB,IAAQ,EAAIyB,EAAQW,SAASpC,KACpCvnB,MAAMunB,IACP8B,GAAe,GACfF,SAAkDA,EAAQ5B,QAAOzhB,EAAU,MAI/EujB,GAAe,GACfF,SAAkDA,IACtD,GACD,CAACF,EAAStG,EAAaU,KACnB,EAAI2F,EAAQY,mBAAmBX,EAASG,EAAelH,EAAS,EAG3EnlB,EAAA,QAAkBA,EAAQ8sB,sC,wBC1C1B,IAAI7jB,EAAmBvI,MAAQA,KAAKuI,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,EACApJ,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQgtB,0CAAuC,EAC/C,MAAMjB,EAAU,EAAQ,OAClBC,EAA2B/iB,EAAgB,EAAQ,QACnDgjB,EAAU,EAAQ,MAkCxBjsB,EAAQgtB,qCA7BqC,EAAG7H,WAAU+G,WAAU,EAAMtG,cAAaU,mBAAkBha,UAAS4B,mBAAkBke,cAChI,MAAOC,EAAeC,IAAkB,EAAIP,EAAQQ,WAAU,GAIxDC,GAAa,EAAIT,EAAQU,QAAQngB,GAsBvC,OArBA,EAAIyf,EAAQW,YAAW,KACnBF,EAAWG,QAAUrgB,CAAO,GAC7B,CAACA,KACJ,EAAIyf,EAAQW,YAAW,KACfR,GACAI,GAAe,IACKN,EAAyBniB,QAAQiH,mBAC/Ckb,EAAyBniB,QAAQ6G,qBAAqBkV,EAAaU,EAAkBpY,GACrF8d,EAAyBniB,QAAQkjB,qBAAqBP,EAAWG,QAAS/G,EAAaU,EAAkBpY,IAE1GzI,OAAO+kB,IAAQ,EAAIyB,EAAQW,SAASpC,KACpCvnB,MAAMunB,IACP8B,GAAe,GACfF,SAAkDA,EAAQ5B,QAAOzhB,EAAU,MAI/EujB,GAAe,GACfF,SAAkDA,IACtD,GACD,CAACF,EAAStG,EAAaU,EAAkBpY,KACrC,EAAI+d,EAAQY,mBAAmBX,EAASG,EAAelH,EAAS,EAG3EnlB,EAAA,QAAkBA,EAAQgtB,oC,uBC1C1B,IAAIliB,EAAmBpK,MAAQA,KAAKoK,kBAAqBhL,OAAOiI,OAAS,SAAUgD,EAAGC,EAAGC,EAAGC,QAC7EnC,IAAPmC,IAAkBA,EAAKD,GAC3B,IAAIE,EAAOrL,OAAOsL,yBAAyBJ,EAAGC,GACzCE,KAAS,QAASA,GAAQH,EAAE7B,WAAagC,EAAKE,UAAYF,EAAKG,gBAClEH,EAAO,CAAEI,YAAY,EAAMlK,IAAK,WAAa,OAAO2J,EAAEC,EAAI,IAE5DnL,OAAOC,eAAegL,EAAGG,EAAIC,EAChC,EAAI,SAAUJ,EAAGC,EAAGC,EAAGC,QACTnC,IAAPmC,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACG4c,EAAgBnnB,MAAQA,KAAKmnB,cAAiB,SAAS7c,EAAGhL,GAC1D,IAAK,IAAI2H,KAAKqD,EAAa,YAANrD,GAAoB7H,OAAOsB,UAAUwG,eAAe3F,KAAKjC,EAAS2H,IAAImD,EAAgB9K,EAASgL,EAAGrD,EAC3H,EACA7H,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtD4nB,EAAa,EAAQ,OAAiC7nB,GACtD6nB,EAAa,EAAQ,OAA6C7nB,GAClE6nB,EAAa,EAAQ,OAA2C7nB,E,uBCjBhE,IAAIiJ,EAAmBvI,MAAQA,KAAKuI,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,EACxD,EACApJ,OAAOC,eAAeC,EAAS,aAAc,CAAEC,OAAO,IACtDD,EAAQ4sB,QAAU5sB,EAAQ6sB,uBAAoB,EAC9C,MAAMd,EAAU9iB,EAAgB,EAAQ,QAUxCjJ,EAAQ6sB,kBATR,SAA2BX,EAASG,EAAelH,EAAUgH,GACzD,OAAKD,GAAWG,EACLN,EAAQliB,QAAQojB,cAAclB,EAAQliB,QAAQqjB,SAAU,KAAM/H,GAE5C,MAAzBgH,EACOJ,EAAQliB,QAAQojB,cAAclB,EAAQliB,QAAQqjB,SAAU,KAAMf,GAElE,IACX,EAQAnsB,EAAQ4sB,QANR,SAAiBpC,GACb,OAAIA,aAAepkB,MACRokB,EAEJ,IAAIpkB,MAAMokB,aAAiC,EAASA,EAAI1V,WACnE,C","sources":["webpack:///./node_modules/statsig-js-lite/dist/DynamicConfig.js","webpack:///./node_modules/statsig-js-lite/dist/ErrorBoundary.js","webpack:///./node_modules/statsig-js-lite/dist/Errors.js","webpack:///./node_modules/statsig-js-lite/dist/Layer.js","webpack:///./node_modules/statsig-js-lite/dist/LocalOverrides.js","webpack:///./node_modules/statsig-js-lite/dist/LogEvent.js","webpack:///./node_modules/statsig-js-lite/dist/SDKVersion.js","webpack:///./node_modules/statsig-js-lite/dist/StatsigClient.js","webpack:///./node_modules/statsig-js-lite/dist/StatsigIdentity.js","webpack:///./node_modules/statsig-js-lite/dist/StatsigLogger.js","webpack:///./node_modules/statsig-js-lite/dist/StatsigNetwork.js","webpack:///./node_modules/statsig-js-lite/dist/StatsigSDKOptions.js","webpack:///./node_modules/statsig-js-lite/dist/StatsigStore.js","webpack:///./node_modules/statsig-js-lite/dist/index.js","webpack:///./node_modules/statsig-js-lite/dist/utils/BootstrapValidator.js","webpack:///./node_modules/statsig-js-lite/dist/utils/Constants.js","webpack:///./node_modules/statsig-js-lite/dist/utils/Hashing.js","webpack:///./node_modules/statsig-js-lite/dist/utils/StatsigLocalStorage.js","webpack:///./node_modules/statsig-js-lite/dist/utils/Timing.js","webpack:///./resources/js/react/cms-components/cart-btn/CartBtn.tsx","webpack:///./node_modules/@atlassian/feature-gate-js-client/dist/fetcher/Fetcher.js","webpack:///./node_modules/@atlassian/feature-gate-js-client/dist/fetcher/errors.js","webpack:///./node_modules/@atlassian/feature-gate-js-client/dist/fetcher/index.js","webpack:///./node_modules/@atlassian/feature-gate-js-client/dist/index.js","webpack:///./node_modules/@atlassian/feature-gate-js-client/dist/types.js","webpack:///./node_modules/@atlassian/feature-gate-js-client/dist/version.js","webpack:///./node_modules/@atlassian/feature-gates-react/dist/FeatureGatesInitialization.js","webpack:///./node_modules/@atlassian/feature-gates-react/dist/FeatureGatesInitializationWithDefaults.js","webpack:///./node_modules/@atlassian/feature-gates-react/dist/FeatureGatesInitializationWithValues.js","webpack:///./node_modules/@atlassian/feature-gates-react/dist/index.js","webpack:///./node_modules/@atlassian/feature-gates-react/dist/utils.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DynamicConfig = /** @class */ (function () {\n function DynamicConfig(configName, configValue, ruleID, evaluationDetails, secondaryExposures, allocatedExperimentName, onDefaultValueFallback) {\n if (secondaryExposures === void 0) { secondaryExposures = []; }\n if (allocatedExperimentName === void 0) { allocatedExperimentName = ''; }\n if (onDefaultValueFallback === void 0) { onDefaultValueFallback = null; }\n this._onDefaultValueFallback = null;\n this.value = JSON.parse(JSON.stringify(configValue !== null && configValue !== void 0 ? configValue : {}));\n this._name = configName;\n this._ruleID = ruleID !== null && ruleID !== void 0 ? ruleID : '';\n this._secondaryExposures = secondaryExposures;\n this._allocatedExperimentName = allocatedExperimentName;\n this._evaluationDetails = evaluationDetails;\n this._onDefaultValueFallback = onDefaultValueFallback;\n }\n DynamicConfig.prototype.get = function (key, defaultValue, typeGuard) {\n var _a, _b;\n var val = this.getValue(key, defaultValue);\n if (val == null) {\n return defaultValue;\n }\n var expectedType = Array.isArray(defaultValue)\n ? 'array'\n : typeof defaultValue;\n var actualType = Array.isArray(val) ? 'array' : typeof val;\n if (typeGuard) {\n if (typeGuard(val)) {\n return val;\n }\n (_a = this._onDefaultValueFallback) === null || _a === void 0 ? void 0 : _a.call(this, this, key, expectedType, actualType);\n return defaultValue;\n }\n if (defaultValue == null || expectedType === actualType) {\n return val;\n }\n (_b = this._onDefaultValueFallback) === null || _b === void 0 ? void 0 : _b.call(this, this, key, expectedType, actualType);\n return defaultValue;\n };\n DynamicConfig.prototype.getValue = function (key, defaultValue) {\n if (key == null) {\n return this.value;\n }\n if (defaultValue == null) {\n defaultValue = null;\n }\n if (this.value[key] == null) {\n return defaultValue;\n }\n return this.value[key];\n };\n return DynamicConfig;\n}());\nexports.default = DynamicConfig;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExceptionEndpoint = void 0;\nvar Errors_1 = require(\"./Errors\");\nexports.ExceptionEndpoint = 'https://statsigapi.net/v1/sdk_exception';\nvar ErrorBoundary = /** @class */ (function () {\n function ErrorBoundary(sdkKey) {\n this._seen = new Set();\n this._sdkKey = sdkKey;\n }\n ErrorBoundary.prototype._setStatsigMetadata = function (statsigMetadata) {\n this._statsigMetadata = statsigMetadata;\n };\n ErrorBoundary.prototype._swallow = function (tag, task) {\n this._capture(tag, task, function () {\n return undefined;\n });\n };\n ErrorBoundary.prototype._capture = function (tag, task, recover, getExtraData) {\n var _this = this;\n try {\n var result = task();\n if (result instanceof Promise) {\n return result.catch(function (e) {\n return _this._onCaught(tag, e, recover, getExtraData);\n });\n }\n return result;\n }\n catch (error) {\n return this._onCaught(tag, error, recover, getExtraData);\n }\n };\n ErrorBoundary.prototype._logError = function (tag, error, getExtraData) {\n var _this = this;\n try {\n var impl = function () { return __awaiter(_this, void 0, void 0, function () {\n var extra, _a, unwrapped, isError, name, info, metadata, body;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!(typeof getExtraData === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, getExtraData()];\n case 1:\n _a = _c.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = null;\n _c.label = 3;\n case 3:\n extra = _a;\n unwrapped = (error !== null && error !== void 0 ? error : Error('[Statsig] Error was empty'));\n isError = unwrapped instanceof Error;\n name = isError ? unwrapped.name : 'No Name';\n if (this._seen.has(name))\n return [2 /*return*/];\n this._seen.add(name);\n info = isError\n ? unwrapped.stack\n : this._getDescription(unwrapped);\n metadata = (_b = this._statsigMetadata) !== null && _b !== void 0 ? _b : {};\n body = JSON.stringify({\n tag: tag,\n exception: name,\n info: info,\n statsigMetadata: metadata,\n extra: extra !== null && extra !== void 0 ? extra : {},\n });\n return [2 /*return*/, fetch(exports.ExceptionEndpoint, {\n method: 'POST',\n headers: {\n 'STATSIG-API-KEY': this._sdkKey,\n 'STATSIG-SDK-TYPE': String(metadata['sdkType']),\n 'STATSIG-SDK-VERSION': String(metadata['sdkVersion']),\n 'Content-Type': 'application/json',\n 'Content-Length': \"\".concat(body.length),\n },\n body: body,\n })];\n }\n });\n }); };\n impl()\n .then(function () {\n /* noop */\n })\n .catch(function () {\n /* noop */\n });\n }\n catch (_error) {\n /* noop */\n }\n };\n ErrorBoundary.prototype._onCaught = function (tag, error, recover, getExtraData) {\n if (error instanceof Errors_1.StatsigUninitializedError ||\n error instanceof Errors_1.StatsigInvalidArgumentError) {\n throw error; // Don't catch these\n }\n console.error('[Statsig] An unexpected exception occurred.', error);\n this._logError(tag, error, getExtraData);\n return recover();\n };\n ErrorBoundary.prototype._getDescription = function (obj) {\n try {\n return JSON.stringify(obj);\n }\n catch (_a) {\n return '[Statsig] Failed to get string for error.';\n }\n };\n return ErrorBoundary;\n}());\nexports.default = ErrorBoundary;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigInvalidArgumentError = exports.StatsigUninitializedError = exports.StatsigErrorMessage = void 0;\nvar StatsigErrorMessage;\n(function (StatsigErrorMessage) {\n StatsigErrorMessage[\"REQUIRE_ASYNC_INITIALIZE\"] = \"Call initialize() first.\";\n StatsigErrorMessage[\"REQUIRE_SYNC_INITIALIZE\"] = \"Call and wait for initialize() to finish first.\";\n StatsigErrorMessage[\"REQUIRE_INITIALIZE_FOR_LOG_EVENT\"] = \"Must initialize() before logging events.\";\n})(StatsigErrorMessage = exports.StatsigErrorMessage || (exports.StatsigErrorMessage = {}));\nvar StatsigUninitializedError = /** @class */ (function (_super) {\n __extends(StatsigUninitializedError, _super);\n function StatsigUninitializedError(message) {\n var _this = _super.call(this, message !== null && message !== void 0 ? message : StatsigErrorMessage.REQUIRE_SYNC_INITIALIZE) || this;\n Object.setPrototypeOf(_this, StatsigUninitializedError.prototype);\n return _this;\n }\n return StatsigUninitializedError;\n}(Error));\nexports.StatsigUninitializedError = StatsigUninitializedError;\nvar StatsigInvalidArgumentError = /** @class */ (function (_super) {\n __extends(StatsigInvalidArgumentError, _super);\n function StatsigInvalidArgumentError(message) {\n var _this = _super.call(this, message) || this;\n Object.setPrototypeOf(_this, StatsigInvalidArgumentError.prototype);\n return _this;\n }\n return StatsigInvalidArgumentError;\n}(Error));\nexports.StatsigInvalidArgumentError = StatsigInvalidArgumentError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Layer = /** @class */ (function () {\n function Layer(name, layerValue, ruleID, evaluationDetails, logParameterFunction, secondaryExposures, undelegatedSecondaryExposures, allocatedExperimentName, explicitParameters) {\n if (logParameterFunction === void 0) { logParameterFunction = null; }\n if (secondaryExposures === void 0) { secondaryExposures = []; }\n if (undelegatedSecondaryExposures === void 0) { undelegatedSecondaryExposures = []; }\n if (allocatedExperimentName === void 0) { allocatedExperimentName = ''; }\n if (explicitParameters === void 0) { explicitParameters = []; }\n this._logParameterFunction = logParameterFunction;\n this._name = name;\n this._value = JSON.parse(JSON.stringify(layerValue !== null && layerValue !== void 0 ? layerValue : {}));\n this._ruleID = ruleID !== null && ruleID !== void 0 ? ruleID : '';\n this._evaluationDetails = evaluationDetails;\n this._secondaryExposures = secondaryExposures;\n this._undelegatedSecondaryExposures = undelegatedSecondaryExposures;\n this._allocatedExperimentName = allocatedExperimentName;\n this._explicitParameters = explicitParameters;\n }\n Layer._create = function (name, value, ruleID, evaluationDetails, logParameterFunction, secondaryExposures, undelegatedSecondaryExposures, allocatedExperimentName, explicitParameters) {\n if (logParameterFunction === void 0) { logParameterFunction = null; }\n if (secondaryExposures === void 0) { secondaryExposures = []; }\n if (undelegatedSecondaryExposures === void 0) { undelegatedSecondaryExposures = []; }\n if (allocatedExperimentName === void 0) { allocatedExperimentName = ''; }\n if (explicitParameters === void 0) { explicitParameters = []; }\n return new Layer(name, value, ruleID, evaluationDetails, logParameterFunction, secondaryExposures, undelegatedSecondaryExposures, allocatedExperimentName, explicitParameters);\n };\n Layer.prototype.get = function (key, defaultValue, typeGuard) {\n var _this = this;\n var val = this._value[key];\n if (val == null) {\n return defaultValue;\n }\n var logAndReturn = function () {\n _this._logLayerParameterExposure(key);\n return val;\n };\n if (typeGuard) {\n return typeGuard(val) ? logAndReturn() : defaultValue;\n }\n if (defaultValue == null) {\n return logAndReturn();\n }\n if (typeof val === typeof defaultValue &&\n Array.isArray(defaultValue) === Array.isArray(val)) {\n return logAndReturn();\n }\n return defaultValue;\n };\n Layer.prototype.getValue = function (key, defaultValue) {\n if (defaultValue == undefined) {\n defaultValue = null;\n }\n var val = this._value[key];\n if (val != null) {\n this._logLayerParameterExposure(key);\n }\n return val !== null && val !== void 0 ? val : defaultValue;\n };\n Layer.prototype._logLayerParameterExposure = function (parameterName) {\n var _a;\n (_a = this._logParameterFunction) === null || _a === void 0 ? void 0 : _a.call(this, this, parameterName);\n };\n return Layer;\n}());\nexports.default = Layer;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.saveOverridesToLocalStorage = exports.loadOverridesFromLocalStorage = exports.makeEmptyOverrides = exports.STORAGE_KEY = void 0;\nvar StatsigLocalStorage_1 = __importDefault(require(\"./utils/StatsigLocalStorage\"));\nexports.STORAGE_KEY = 'STATSIG_JS_LITE_LOCAL_OVERRIDES';\nfunction makeEmptyOverrides() {\n return { gates: {}, configs: {}, layers: {} };\n}\nexports.makeEmptyOverrides = makeEmptyOverrides;\nfunction loadOverridesFromLocalStorage() {\n var raw = StatsigLocalStorage_1.default.getItem(exports.STORAGE_KEY);\n if (raw) {\n try {\n return JSON.parse(raw);\n }\n catch (error) {\n // noop\n }\n }\n return makeEmptyOverrides();\n}\nexports.loadOverridesFromLocalStorage = loadOverridesFromLocalStorage;\nfunction saveOverridesToLocalStorage(overrides) {\n StatsigLocalStorage_1.default.setItem(exports.STORAGE_KEY, JSON.stringify(overrides));\n}\nexports.saveOverridesToLocalStorage = saveOverridesToLocalStorage;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction makeLogEvent(eventName, user, statsigMetadata, value, metadata, secondaryExposures) {\n if (value === void 0) { value = null; }\n if (metadata === void 0) { metadata = null; }\n var logUser = user;\n if (logUser === null || logUser === void 0 ? void 0 : logUser.privateAttributes) {\n logUser = __assign({}, user);\n delete logUser.privateAttributes;\n }\n return {\n time: Date.now(),\n eventName: eventName,\n statsigMetadata: statsigMetadata,\n user: logUser,\n value: value,\n metadata: metadata,\n secondaryExposures: secondaryExposures,\n };\n}\nexports.default = makeLogEvent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = void 0;\n// Generated by genversion.\nexports.version = '1.2.1';\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DynamicConfig_1 = __importDefault(require(\"./DynamicConfig\"));\nvar ErrorBoundary_1 = __importDefault(require(\"./ErrorBoundary\"));\nvar Errors_1 = require(\"./Errors\");\nvar Layer_1 = __importDefault(require(\"./Layer\"));\nvar StatsigIdentity_1 = __importDefault(require(\"./StatsigIdentity\"));\nvar StatsigLogger_1 = __importDefault(require(\"./StatsigLogger\"));\nvar StatsigNetwork_1 = __importDefault(require(\"./StatsigNetwork\"));\nvar StatsigSDKOptions_1 = __importDefault(require(\"./StatsigSDKOptions\"));\nvar StatsigStore_1 = __importStar(require(\"./StatsigStore\"));\nvar StatsigLocalStorage_1 = __importDefault(require(\"./utils/StatsigLocalStorage\"));\nvar Timing_1 = require(\"./utils/Timing\");\nvar LogEvent_1 = __importDefault(require(\"./LogEvent\"));\nvar LocalOverrides_1 = require(\"./LocalOverrides\");\nvar StatsigClient = /** @class */ (function () {\n function StatsigClient(sdkKey, user, options) {\n var _this = this;\n this._initCalled = false;\n this._pendingInitPromise = null;\n this._logLayerParameterExposureForLayer = function (layer, parameterName, isManualExposure) {\n if (isManualExposure === void 0) { isManualExposure = false; }\n var allocatedExperiment = '';\n var exposures = layer._undelegatedSecondaryExposures;\n var isExplicit = layer._explicitParameters.includes(parameterName);\n if (isExplicit) {\n allocatedExperiment = layer._allocatedExperimentName;\n exposures = layer._secondaryExposures;\n }\n _this._logger.logLayerExposure(_this._identity._user, layer._name, layer._ruleID, exposures, allocatedExperiment, parameterName, isExplicit, layer._evaluationDetails, isManualExposure);\n };\n if ((options === null || options === void 0 ? void 0 : options.localMode) !== true &&\n (typeof sdkKey !== 'string' || !sdkKey.startsWith('client-'))) {\n throw new Errors_1.StatsigInvalidArgumentError('Invalid key provided. You must use a Client SDK Key from the Statsig console to initialize the sdk');\n }\n this._startTime = (0, Timing_1.now)();\n this._errorBoundary = new ErrorBoundary_1.default(sdkKey);\n this._ready = false;\n this._options = new StatsigSDKOptions_1.default(options);\n StatsigLocalStorage_1.default.disabled = this._options.disableLocalStorage;\n this._overrides = (0, LocalOverrides_1.loadOverridesFromLocalStorage)();\n this._identity = new StatsigIdentity_1.default(sdkKey, this._normalizeUser(user !== null && user !== void 0 ? user : null), this._options.overrideStableID);\n this._network = new StatsigNetwork_1.default(this._options, this._identity, this._errorBoundary);\n this._logger = new StatsigLogger_1.default(this._options, this._identity, this._network, this._errorBoundary);\n this._store = new StatsigStore_1.default(this._identity, this._logger.logConfigDefaultValueFallback, this._options.initializeValues);\n this._errorBoundary._setStatsigMetadata(this._identity._statsigMetadata);\n if (this._options.initializeValues != null) {\n this._ready = true;\n this._initCalled = true;\n setTimeout(function () { return _this._delayedSetup(); }, 20);\n }\n }\n StatsigClient.prototype.setInitializeValues = function (initializeValues) {\n var _this = this;\n this._errorBoundary._capture('setInitializeValues', function () {\n _this._store.bootstrap(initializeValues);\n if (!_this._ready) {\n // the sdk is usable and considered initialized when configured\n // with initializeValues\n _this._ready = true;\n _this._initCalled = true;\n }\n // we wont have access to window/document/localStorage if these run on the server\n // so try to run whenever this is called\n _this._logger.sendSavedRequests();\n }, function () {\n _this._ready = true;\n _this._initCalled = true;\n });\n };\n StatsigClient.prototype.initializeAsync = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, this._errorBoundary._capture('initializeAsync', function () { return __awaiter(_this, void 0, void 0, function () {\n var user;\n var _this = this;\n return __generator(this, function (_a) {\n if (this._pendingInitPromise != null) {\n return [2 /*return*/, this._pendingInitPromise];\n }\n if (this._ready) {\n return [2 /*return*/, Promise.resolve()];\n }\n this._initCalled = true;\n if (this._options.localMode) {\n return [2 /*return*/, Promise.resolve()];\n }\n user = this._identity._user;\n this._pendingInitPromise = this._fetchAndSaveValues(user, this._options.initTimeoutMs)\n .then(function () {\n return;\n })\n .catch(function (e) {\n _this._errorBoundary._logError('initializeAsync:fetchAndSaveValues', e);\n return { success: false, message: e.message };\n })\n .then(function () {\n return;\n })\n .finally(function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this._pendingInitPromise = null;\n this._ready = true;\n this._delayedSetup();\n return [2 /*return*/];\n });\n }); });\n return [2 /*return*/, this._pendingInitPromise];\n });\n }); }, function () {\n _this._ready = true;\n _this._initCalled = true;\n return Promise.resolve();\n })];\n });\n });\n };\n StatsigClient.prototype.getEvaluationDetails = function () {\n var _this = this;\n return this._errorBoundary._capture('getEvaluationDetails', function () {\n return _this._store.getGlobalEvaluationDetails();\n }, function () {\n return {\n time: Date.now(),\n reason: StatsigStore_1.EvaluationReason.Error,\n };\n });\n };\n /**\n * Checks the value of a gate for the current user\n * @param {string} gateName - the name of the gate to check\n * @returns {boolean} - value of a gate for the user. Gates are \"off\" (return false) by default\n * @throws Error if initialize() is not called first, or gateName is not a string\n */\n StatsigClient.prototype.checkGate = function (gateName) {\n return this._checkGateImpl(gateName, 'checkGate');\n };\n StatsigClient.prototype.checkGateWithExposureLoggingDisabled = function (gateName) {\n return this._checkGateImpl(gateName, 'checkGateWithExposureLoggingDisabled');\n };\n StatsigClient.prototype.logGateExposure = function (gateName) {\n var _this = this;\n this._errorBoundary._swallow('logGateExposure', function () {\n _this._logGateExposureImpl(gateName);\n });\n };\n /**\n * Checks the value of a config for the current user\n * @param {string} configName - the name of the config to get\n * @returns {DynamicConfig} - value of a config for the user\n * @throws Error if initialize() is not called first, or configName is not a string\n */\n StatsigClient.prototype.getConfig = function (configName) {\n return this._getConfigImpl(configName, 'getConfig');\n };\n StatsigClient.prototype.getConfigWithExposureLoggingDisabled = function (configName) {\n return this._getConfigImpl(configName, 'getConfigWithExposureLoggingDisabled');\n };\n StatsigClient.prototype.logConfigExposure = function (configName) {\n var _this = this;\n this._errorBoundary._swallow('logConfigExposure', function () {\n _this._logConfigExposureImpl(configName);\n });\n };\n StatsigClient.prototype.getExperiment = function (experimentName) {\n return this.getConfig(experimentName);\n };\n StatsigClient.prototype.getExperimentWithExposureLoggingDisabled = function (experimentName) {\n return this.getConfigWithExposureLoggingDisabled(experimentName);\n };\n StatsigClient.prototype.logExperimentExposure = function (experimentName) {\n this.logConfigExposure(experimentName);\n };\n StatsigClient.prototype.getLayer = function (layerName) {\n return this._getLayerImpl(layerName, 'getLayer');\n };\n StatsigClient.prototype.getLayerWithExposureLoggingDisabled = function (layerName) {\n return this._getLayerImpl(layerName, 'getLayerWithExposureLoggingDisabled');\n };\n StatsigClient.prototype.logLayerParameterExposure = function (layerName, parameterName) {\n var _this = this;\n this._errorBoundary._swallow('logLayerParameterExposure', function () {\n var layer = _this._getLayerFromStore(null, layerName);\n _this._logLayerParameterExposureForLayer(layer, parameterName, true);\n });\n };\n StatsigClient.prototype.logEvent = function (eventName, value, metadata) {\n var _this = this;\n if (value === void 0) { value = null; }\n if (metadata === void 0) { metadata = null; }\n this._errorBoundary._swallow('logEvent', function () {\n if (!_this._logger || !_this._identity._sdkKey) {\n throw new Errors_1.StatsigUninitializedError(Errors_1.StatsigErrorMessage.REQUIRE_INITIALIZE_FOR_LOG_EVENT);\n }\n if (typeof eventName !== 'string' || eventName.length === 0) {\n return;\n }\n var event = (0, LogEvent_1.default)(eventName, _this._identity._user, _this._identity._statsigMetadata, value, metadata);\n _this._logger.log(event);\n });\n };\n StatsigClient.prototype.updateUserWithValues = function (user, values) {\n var _this = this;\n var updateStartTime = Date.now();\n var fireCompletionCallback;\n return this._errorBoundary._capture('updateUserWithValues', function () {\n if (!_this.initializeCalled()) {\n throw new Errors_1.StatsigUninitializedError(Errors_1.StatsigErrorMessage.REQUIRE_ASYNC_INITIALIZE);\n }\n fireCompletionCallback = function (success, error) {\n var cb = _this._options.updateUserCompletionCallback;\n cb === null || cb === void 0 ? void 0 : cb(Date.now() - updateStartTime, success, error);\n };\n _this._identity._user = _this._normalizeUser(user);\n _this._store.bootstrap(values);\n fireCompletionCallback(true, null);\n return true;\n }, function () {\n fireCompletionCallback === null || fireCompletionCallback === void 0 ? void 0 : fireCompletionCallback(false, 'Failed to update user. An unexpected error occured.');\n return false;\n });\n };\n StatsigClient.prototype.updateUser = function (user) {\n return __awaiter(this, void 0, void 0, function () {\n var updateStartTime, fireCompletionCallback;\n var _this = this;\n return __generator(this, function (_a) {\n updateStartTime = Date.now();\n return [2 /*return*/, this._errorBoundary._capture('updateUser', function () { return __awaiter(_this, void 0, void 0, function () {\n var currentUser;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.initializeCalled()) {\n throw new Errors_1.StatsigUninitializedError(Errors_1.StatsigErrorMessage.REQUIRE_ASYNC_INITIALIZE);\n }\n fireCompletionCallback = function (success, error) {\n var cb = _this._options.updateUserCompletionCallback;\n cb === null || cb === void 0 ? void 0 : cb(Date.now() - updateStartTime, success, error);\n };\n this._identity._user = this._normalizeUser(user);\n this._store.updateUser();\n this._logger.resetDedupeKeys();\n if (!(this._pendingInitPromise != null)) return [3 /*break*/, 2];\n return [4 /*yield*/, this._pendingInitPromise];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n if (this._options.localMode) {\n fireCompletionCallback(true, null);\n return [2 /*return*/, Promise.resolve(true)];\n }\n currentUser = this._identity._user;\n this._pendingInitPromise = this._fetchAndSaveValues(currentUser).finally(function () {\n _this._pendingInitPromise = null;\n });\n return [2 /*return*/, this._pendingInitPromise\n .then(function () {\n fireCompletionCallback(true, null);\n return Promise.resolve(true);\n })\n .catch(function (error) {\n fireCompletionCallback(false, \"Failed to update user: \".concat(error));\n return Promise.resolve(false);\n })];\n }\n });\n }); }, function () {\n fireCompletionCallback(false, 'Failed to update user. An unexpected error occured.');\n return Promise.resolve(false);\n })];\n });\n });\n };\n /**\n * Informs the statsig SDK that the client is closing or shutting down\n * so the SDK can clean up internal state\n */\n StatsigClient.prototype.shutdown = function () {\n var _this = this;\n this._errorBoundary._swallow('shutdown', function () {\n _this._logger.shutdown();\n });\n };\n /**\n * @returns The Statsig stable ID used for device level experiments\n */\n StatsigClient.prototype.getStableID = function () {\n var _this = this;\n return this._errorBoundary._capture('getStableID', function () { return _this._identity._statsigMetadata.stableID; }, function () { return ''; });\n };\n StatsigClient.prototype.initializeCalled = function () {\n return this._initCalled;\n };\n StatsigClient.prototype.overrideGate = function (gate, result) {\n this._setOverride('gates', gate, result);\n };\n StatsigClient.prototype.overrideConfig = function (config, result) {\n this._setOverride('configs', config, result);\n };\n StatsigClient.prototype.overrideLayer = function (layer, result) {\n this._setOverride('layers', layer, result);\n };\n StatsigClient.prototype.setOverrides = function (overrides) {\n var _this = this;\n this._errorBoundary._swallow('setOverrides', function () {\n _this._overrides = overrides !== null && overrides !== void 0 ? overrides : (0, LocalOverrides_1.makeEmptyOverrides)();\n (0, LocalOverrides_1.saveOverridesToLocalStorage)(_this._overrides);\n });\n };\n StatsigClient.prototype.getOverrides = function () {\n var _this = this;\n return this._errorBoundary._capture('getOverrides', function () { return _this._overrides; }, function () { return (0, LocalOverrides_1.makeEmptyOverrides)(); });\n };\n // Private\n StatsigClient.prototype._delayedSetup = function () {\n var _this = this;\n this._errorBoundary._swallow('delayedSetup', function () {\n _this._identity.saveStableID();\n _this._logger.sendSavedRequests().then(function () {\n /* noop */\n });\n });\n };\n StatsigClient.prototype._normalizeUser = function (user) {\n var userCopy = {};\n try {\n userCopy = JSON.parse(JSON.stringify(user));\n }\n catch (error) {\n throw new Errors_1.StatsigInvalidArgumentError('User object must be convertable to JSON string.');\n }\n if (this._options.environment != null) {\n userCopy = __assign(__assign({}, userCopy), { statsigEnvironment: this._options.environment });\n }\n return userCopy;\n };\n StatsigClient.prototype._ensureStoreLoaded = function () {\n if (!this._store.isLoaded()) {\n throw new Errors_1.StatsigUninitializedError();\n }\n };\n StatsigClient.prototype._getEvaluationDetailsForError = function () {\n return {\n time: Date.now(),\n reason: StatsigStore_1.EvaluationReason.Error,\n };\n };\n StatsigClient.prototype._fetchAndSaveValues = function (user, timeout) {\n if (timeout === void 0) { timeout = this._options.initTimeoutMs; }\n return __awaiter(this, void 0, void 0, function () {\n var sinceTime, previousDerivedFields;\n var _this = this;\n return __generator(this, function (_a) {\n sinceTime = null;\n sinceTime = this._store.getLastUpdateTime(user);\n previousDerivedFields = this._store.getPreviousDerivedFields(user);\n return [2 /*return*/, this._network\n .fetchValues(user, sinceTime, timeout, previousDerivedFields)\n .eventually(function (json) {\n if (json === null || json === void 0 ? void 0 : json.has_updates) {\n _this._store.save(user, json, false);\n }\n })\n .then(function (json) { return __awaiter(_this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, this._errorBoundary._swallow('fetchAndSaveValues', function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(json === null || json === void 0 ? void 0 : json.has_updates)) return [3 /*break*/, 2];\n return [4 /*yield*/, this._store.save(user, json)];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n if (json === null || json === void 0 ? void 0 : json.is_no_content) {\n this._store.setEvaluationReason(StatsigStore_1.EvaluationReason.NetworkNotModified);\n }\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n }); })];\n });\n }); })];\n });\n });\n };\n StatsigClient.prototype._checkGateImpl = function (gateName, callsite) {\n var _this = this;\n return this._errorBoundary._capture(callsite, function () {\n if (typeof _this._overrides.gates[gateName] === 'boolean') {\n return _this._overrides.gates[gateName];\n }\n var result = _this._getGateFromStore(gateName);\n if (callsite === 'checkGate') {\n _this._logGateExposureImpl(gateName, result);\n }\n return result.gate.value === true;\n }, function () { return false; });\n };\n StatsigClient.prototype._getGateFromStore = function (gateName) {\n this._ensureStoreLoaded();\n if (typeof gateName !== 'string' || gateName.length === 0) {\n throw new Errors_1.StatsigInvalidArgumentError('Must pass a valid string as the gateName.');\n }\n return this._store.checkGate(gateName);\n };\n StatsigClient.prototype._logGateExposureImpl = function (gateName, fetchResult) {\n var isManualExposure = !fetchResult;\n var result = fetchResult !== null && fetchResult !== void 0 ? fetchResult : this._getGateFromStore(gateName);\n var gate = result.gate;\n this._logger.logGateExposure(this._identity._user, gateName, gate.value, gate.rule_id, gate.secondary_exposures, result.evaluationDetails, isManualExposure);\n };\n StatsigClient.prototype._getConfigImpl = function (configName, callsite) {\n var _this = this;\n return this._errorBoundary._capture(callsite, function () {\n if (_this._overrides.configs[configName]) {\n return new DynamicConfig_1.default(configName, _this._overrides.configs[configName], 'local_override', {\n reason: StatsigStore_1.EvaluationReason.LocalOverride,\n time: Date.now(),\n });\n }\n var result = _this._getConfigFromStore(configName);\n if (callsite === 'getConfig') {\n _this._logConfigExposureImpl(configName, result);\n }\n return result;\n }, function () { return _this._getEmptyConfig(configName); });\n };\n StatsigClient.prototype._getConfigFromStore = function (configName) {\n this._ensureStoreLoaded();\n if (typeof configName !== 'string' || configName.length === 0) {\n throw new Errors_1.StatsigInvalidArgumentError('Must pass a valid string as the configName.');\n }\n return this._store.getConfig(configName);\n };\n StatsigClient.prototype._logConfigExposureImpl = function (configName, config) {\n var isManualExposure = !config;\n var localConfig = config !== null && config !== void 0 ? config : this._getConfigFromStore(configName);\n this._logger.logConfigExposure(this._identity._user, configName, localConfig._ruleID, localConfig._secondaryExposures, localConfig._evaluationDetails, isManualExposure);\n };\n StatsigClient.prototype._getLayerImpl = function (layerName, callsite) {\n var _this = this;\n return this._errorBoundary._capture(callsite, function () {\n if (_this._overrides.layers[layerName]) {\n return Layer_1.default._create(layerName, _this._overrides.layers[layerName], 'local_override', {\n reason: StatsigStore_1.EvaluationReason.LocalOverride,\n time: Date.now(),\n });\n }\n var logFunc = callsite === 'getLayer'\n ? _this._logLayerParameterExposureForLayer\n : null;\n return _this._getLayerFromStore(logFunc, layerName);\n }, function () {\n return Layer_1.default._create(layerName, {}, '', _this._getEvaluationDetailsForError());\n });\n };\n StatsigClient.prototype._getLayerFromStore = function (logParameterFunction, layerName) {\n this._ensureStoreLoaded();\n if (typeof layerName !== 'string' || layerName.length === 0) {\n throw new Errors_1.StatsigInvalidArgumentError('Must pass a valid string as the layerName.');\n }\n return this._store.getLayer(logParameterFunction, layerName);\n };\n StatsigClient.prototype._getEmptyConfig = function (configName) {\n return new DynamicConfig_1.default(configName, {}, '', this._getEvaluationDetailsForError());\n };\n StatsigClient.prototype._setOverride = function (type, key, result) {\n if (result == null) {\n delete this._overrides[type][key];\n }\n else {\n this._overrides[type][key] = result;\n }\n this.setOverrides(this._overrides);\n };\n return StatsigClient;\n}());\nexports.default = StatsigClient;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Constants_1 = require(\"./utils/Constants\");\nvar Hashing_1 = require(\"./utils/Hashing\");\nvar StatsigLocalStorage_1 = __importDefault(require(\"./utils/StatsigLocalStorage\"));\nvar SDKVersion_1 = require(\"./SDKVersion\");\nvar Identity = /** @class */ (function () {\n function Identity(sdkKey, user, overrideStableID) {\n var _a;\n this._sdkType = 'js-lite';\n this._sdkKey = sdkKey;\n this._user = user;\n this._sdkVersion = SDKVersion_1.version;\n var stableID = overrideStableID;\n stableID =\n (_a = stableID !== null && stableID !== void 0 ? stableID : StatsigLocalStorage_1.default.getItem(Constants_1.STATSIG_STABLE_ID_KEY)) !== null && _a !== void 0 ? _a : this._getUUID();\n this._statsigMetadata = {\n stableID: stableID,\n sdkType: this._sdkType,\n sdkVersion: this._sdkVersion,\n };\n }\n Identity.prototype.saveStableID = function () {\n if (this._statsigMetadata.stableID != null) {\n StatsigLocalStorage_1.default.setItem(Constants_1.STATSIG_STABLE_ID_KEY, this._statsigMetadata.stableID);\n }\n };\n Identity.prototype.getUserCacheKey = function () {\n return (0, Hashing_1.getUserCacheKey)(this._user);\n };\n Identity.prototype._getUUID = function () {\n var uuid = '';\n for (var i = 0; i < 32; i++) {\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n uuid += '-';\n }\n var randomDigit = (Math.random() * 16) | 0;\n if (i === 12) {\n uuid += '4';\n }\n else if (i === 16) {\n uuid += ((randomDigit & 3) | 8).toString(16);\n }\n else {\n uuid += randomDigit.toString(16);\n }\n }\n return uuid;\n };\n return Identity;\n}());\nexports.default = Identity;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LogEvent_1 = __importDefault(require(\"./LogEvent\"));\nvar StatsigNetwork_1 = require(\"./StatsigNetwork\");\nvar Constants_1 = require(\"./utils/Constants\");\nvar StatsigLocalStorage_1 = __importDefault(require(\"./utils/StatsigLocalStorage\"));\nvar INTERNAL_EVENT_PREFIX = 'statsig::';\nvar CONFIG_EXPOSURE_EVENT = INTERNAL_EVENT_PREFIX + 'config_exposure';\nvar LAYER_EXPOSURE_EVENT = INTERNAL_EVENT_PREFIX + 'layer_exposure';\nvar GATE_EXPOSURE_EVENT = INTERNAL_EVENT_PREFIX + 'gate_exposure';\nvar LOG_FAILURE_EVENT = INTERNAL_EVENT_PREFIX + 'log_event_failed';\nvar DEFAULT_VALUE_WARNING = INTERNAL_EVENT_PREFIX + 'default_value_type_mismatch';\nvar MS_RETRY_LOGS_CUTOFF = 5 * 24 * 60 * 60 * 1000;\nvar MAX_BATCHES_TO_RETRY = 100;\nvar MAX_FAILED_EVENTS = 1000;\nvar MAX_LOCAL_STORAGE_SIZE = 1024 * MAX_FAILED_EVENTS;\nvar StatsigLogger = /** @class */ (function () {\n function StatsigLogger(options, identity, network, errorBoundary) {\n var _this = this;\n this._failedLogEventCount = 0;\n this.logConfigDefaultValueFallback = function (user, message, metadata) {\n var defaultValueEvent = (0, LogEvent_1.default)(DEFAULT_VALUE_WARNING, user, _this._identity._statsigMetadata, message, metadata);\n _this.log(defaultValueEvent);\n _this._loggedErrors.add(message);\n };\n this._options = options;\n this._identity = identity;\n this._network = network;\n this._errorBoundary = errorBoundary;\n this._queue = [];\n this._flushInterval = null;\n this._loggedErrors = new Set();\n this._failedLogEvents = [];\n this._exposureDedupeKeys = {};\n this._failedLogEventCount = 0;\n this._init();\n }\n StatsigLogger.prototype.log = function (event) {\n try {\n if (!this._options.disableCurrentPageLogging &&\n typeof window !== 'undefined' &&\n window != null &&\n typeof window.location === 'object' &&\n typeof window.location.href === 'string') {\n // https://stackoverflow.com/questions/6257463/how-to-get-the-url-without-any-parameters-in-javascript\n var parts = window.location.href.split(/[?#]/);\n if ((parts === null || parts === void 0 ? void 0 : parts.length) > 0) {\n event.statsigMetadata.currentPage = parts[0];\n }\n }\n }\n catch (_e) { }\n this._queue.push(event);\n if (this._queue.length >= this._options.loggingBufferMaxSize) {\n this.flush();\n }\n };\n StatsigLogger.prototype.resetDedupeKeys = function () {\n this._exposureDedupeKeys = {};\n };\n StatsigLogger.prototype.logGateExposure = function (user, gateName, gateValue, ruleID, secondaryExposures, details, isManualExposure) {\n var dedupeKey = gateName + String(gateValue) + ruleID + details.reason;\n if (!this._shouldLogExposure(dedupeKey)) {\n return;\n }\n var metadata = {\n gate: gateName,\n gateValue: String(gateValue),\n ruleID: ruleID,\n reason: details.reason,\n time: details.time,\n };\n if (isManualExposure) {\n metadata['isManualExposure'] = 'true';\n }\n var gateExposure = (0, LogEvent_1.default)(GATE_EXPOSURE_EVENT, user, this._identity._statsigMetadata, null, metadata, secondaryExposures);\n this.log(gateExposure);\n };\n StatsigLogger.prototype.logConfigExposure = function (user, configName, ruleID, secondaryExposures, details, isManualExposure) {\n var dedupeKey = configName + ruleID + details.reason;\n if (!this._shouldLogExposure(dedupeKey)) {\n return;\n }\n var metadata = {\n config: configName,\n ruleID: ruleID,\n reason: details.reason,\n time: details.time,\n };\n if (isManualExposure) {\n metadata['isManualExposure'] = 'true';\n }\n var configExposure = (0, LogEvent_1.default)(CONFIG_EXPOSURE_EVENT, user, this._identity._statsigMetadata, null, metadata, secondaryExposures);\n this.log(configExposure);\n };\n StatsigLogger.prototype.logLayerExposure = function (user, configName, ruleID, secondaryExposures, allocatedExperiment, parameterName, isExplicitParameter, details, isManualExposure) {\n var dedupeKey = [\n configName,\n ruleID,\n allocatedExperiment,\n parameterName,\n String(isExplicitParameter),\n details.reason,\n ].join('|');\n if (!this._shouldLogExposure(dedupeKey)) {\n return;\n }\n var metadata = {\n config: configName,\n ruleID: ruleID,\n allocatedExperiment: allocatedExperiment,\n parameterName: parameterName,\n isExplicitParameter: String(isExplicitParameter),\n reason: details.reason,\n time: details.time,\n };\n if (isManualExposure) {\n metadata['isManualExposure'] = 'true';\n }\n var configExposure = (0, LogEvent_1.default)(LAYER_EXPOSURE_EVENT, user, this._identity._statsigMetadata, null, metadata, secondaryExposures);\n this.log(configExposure);\n };\n StatsigLogger.prototype.shutdown = function () {\n if (this._flushInterval) {\n clearInterval(this._flushInterval);\n this._flushInterval = null;\n }\n this.flush(true);\n };\n StatsigLogger.prototype.flush = function (isClosing) {\n var _this = this;\n if (isClosing === void 0) { isClosing = false; }\n if (this._queue.length === 0) {\n return;\n }\n var statsigMetadata = this._identity._statsigMetadata;\n var oldQueue = this._queue;\n this._queue = [];\n if (isClosing &&\n !this._network.supportsKeepalive() &&\n typeof navigator !== 'undefined' &&\n navigator != null &&\n // @ts-ignore\n navigator.sendBeacon) {\n var beacon = this._network.sendLogBeacon({\n events: oldQueue,\n statsigMetadata: statsigMetadata,\n });\n if (!beacon) {\n this._queue = oldQueue.concat(this._queue);\n if (this._queue.length > 0) {\n this._addFailedRequest({\n events: this._queue,\n statsigMetadata: statsigMetadata,\n time: Date.now(),\n });\n this._queue = [];\n }\n this._saveFailedRequests();\n }\n return;\n }\n var processor = this;\n this._network\n .postToEndpoint(StatsigNetwork_1.StatsigEndpoint.Rgstr, {\n events: oldQueue,\n statsigMetadata: statsigMetadata,\n }, 3 /* retries */, 1000 /* backoff */, isClosing /* useKeepalive */)\n .then(function (response) {\n if (!response.ok) {\n throw response;\n }\n })\n .catch(function (error) {\n if (typeof error.text === 'function') {\n error.text().then(function (errorText) {\n _this._errorBoundary._logError(LOG_FAILURE_EVENT, error, function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, {\n eventCount: oldQueue.length,\n error: errorText,\n }];\n });\n }); });\n });\n }\n else {\n _this._errorBoundary._logError(LOG_FAILURE_EVENT, error, function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, {\n eventCount: oldQueue.length,\n error: error.message,\n }];\n });\n }); });\n }\n processor._newFailedRequest(LOG_FAILURE_EVENT, oldQueue);\n })\n .finally(function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!isClosing) return [3 /*break*/, 2];\n if (this._queue.length > 0) {\n this._addFailedRequest({\n events: this._queue,\n statsigMetadata: statsigMetadata,\n time: Date.now(),\n });\n // on app background/window blur, save unsent events as a request and clean up the queue (in case app foregrounds)\n this._queue = [];\n }\n return [4 /*yield*/, processor._saveFailedRequests()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n }); });\n };\n StatsigLogger.prototype.sendSavedRequests = function () {\n return __awaiter(this, void 0, void 0, function () {\n var failedRequests, fireAndForget, requestBodies, _loop_1, this_1, _i, requestBodies_1, requestBody;\n var _this = this;\n return __generator(this, function (_a) {\n fireAndForget = false;\n failedRequests = StatsigLocalStorage_1.default.getItem(Constants_1.STATSIG_LOCAL_STORAGE_LOGGING_REQUEST_KEY);\n if (failedRequests == null) {\n this._clearLocalStorageRequests();\n return [2 /*return*/];\n }\n if (failedRequests.length > MAX_LOCAL_STORAGE_SIZE) {\n fireAndForget = true;\n }\n requestBodies = [];\n try {\n requestBodies = JSON.parse(failedRequests);\n _loop_1 = function (requestBody) {\n if (requestBody != null &&\n requestBody.events &&\n Array.isArray(requestBody.events)) {\n this_1._network\n .postToEndpoint(StatsigNetwork_1.StatsigEndpoint.Rgstr, requestBody)\n .then(function (response) {\n if (!response.ok) {\n throw Error(response.status + '');\n }\n })\n .catch(function (_e) {\n if (fireAndForget) {\n return;\n }\n _this._addFailedRequest(requestBody);\n });\n }\n };\n this_1 = this;\n for (_i = 0, requestBodies_1 = requestBodies; _i < requestBodies_1.length; _i++) {\n requestBody = requestBodies_1[_i];\n _loop_1(requestBody);\n }\n }\n catch (_e) {\n }\n finally {\n this._clearLocalStorageRequests();\n }\n return [2 /*return*/];\n });\n });\n };\n StatsigLogger.prototype._init = function () {\n var _this = this;\n if (typeof window !== 'undefined' &&\n typeof window.addEventListener === 'function') {\n window.addEventListener('blur', function () { return _this.flush(true); });\n window.addEventListener('beforeunload', function () { return _this.flush(true); });\n window.addEventListener('load', function () {\n setTimeout(function () { return _this.flush(); }, 100);\n setTimeout(function () { return _this.flush(); }, 1000);\n });\n }\n if (typeof document !== 'undefined' &&\n typeof document.addEventListener === 'function') {\n document.addEventListener('visibilitychange', function () {\n _this.flush(document.visibilityState !== 'visible');\n });\n }\n if (!this._options.ignoreWindowUndefined &&\n (typeof window === 'undefined' || window == null)) {\n // dont set the flush interval outside of client browser environments\n return;\n }\n if (this._options.localMode) {\n // unnecessary interval in local mode since logs dont flush anyway\n return;\n }\n var me = this;\n this._flushInterval = setInterval(function () {\n me.flush();\n }, this._options.loggingIntervalMillis);\n // Quick flush\n setTimeout(function () { return _this.flush(); }, 100);\n setTimeout(function () { return _this.flush(); }, 1000);\n };\n StatsigLogger.prototype._shouldLogExposure = function (key) {\n var lastTime = this._exposureDedupeKeys[key];\n var now = Date.now();\n if (lastTime == null) {\n this._exposureDedupeKeys[key] = now;\n return true;\n }\n if (lastTime >= now - 600 * 1000) {\n return false;\n }\n this._exposureDedupeKeys[key] = now;\n return true;\n };\n StatsigLogger.prototype._saveFailedRequests = function () {\n return __awaiter(this, void 0, void 0, function () {\n var requestsCopy;\n return __generator(this, function (_a) {\n if (this._failedLogEvents.length > 0) {\n requestsCopy = JSON.stringify(this._failedLogEvents);\n if (requestsCopy.length > MAX_LOCAL_STORAGE_SIZE) {\n this._clearLocalStorageRequests();\n return [2 /*return*/];\n }\n StatsigLocalStorage_1.default.setItem(Constants_1.STATSIG_LOCAL_STORAGE_LOGGING_REQUEST_KEY, requestsCopy);\n }\n return [2 /*return*/];\n });\n });\n };\n StatsigLogger.prototype._addFailedRequest = function (requestBody) {\n if (requestBody.time < Date.now() - MS_RETRY_LOGS_CUTOFF) {\n return;\n }\n if (this._failedLogEvents.length > MAX_BATCHES_TO_RETRY) {\n return;\n }\n var additionalEvents = requestBody.events.length;\n if (this._failedLogEventCount + additionalEvents > MAX_FAILED_EVENTS) {\n return;\n }\n this._failedLogEvents.push(requestBody);\n this._failedLogEventCount += additionalEvents;\n };\n StatsigLogger.prototype._clearLocalStorageRequests = function () {\n StatsigLocalStorage_1.default.removeItem(Constants_1.STATSIG_LOCAL_STORAGE_LOGGING_REQUEST_KEY);\n };\n StatsigLogger.prototype._newFailedRequest = function (name, queue) {\n if (this._loggedErrors.has(name)) {\n return;\n }\n this._loggedErrors.add(name);\n this._failedLogEvents.push({\n events: queue,\n statsigMetadata: this._identity._statsigMetadata,\n time: Date.now(),\n });\n this._saveFailedRequests().then(function () { });\n };\n return StatsigLogger;\n}());\nexports.default = StatsigLogger;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigEndpoint = void 0;\nvar StatsigEndpoint;\n(function (StatsigEndpoint) {\n StatsigEndpoint[\"Initialize\"] = \"initialize\";\n StatsigEndpoint[\"Rgstr\"] = \"rgstr\";\n StatsigEndpoint[\"LogEventBeacon\"] = \"log_event_beacon\";\n})(StatsigEndpoint = exports.StatsigEndpoint || (exports.StatsigEndpoint = {}));\nvar NO_CONTENT = 204;\nvar StatsigNetwork = /** @class */ (function () {\n function StatsigNetwork(options, identity, errorBoundary) {\n this.retryCodes = {\n 408: true,\n 500: true,\n 502: true,\n 503: true,\n 504: true,\n 522: true,\n 524: true,\n 599: true,\n };\n this.canUseKeepalive = false;\n this._options = options;\n this._identity = identity;\n this._errorBoundary = errorBoundary;\n this.leakyBucket = {};\n this._init();\n }\n StatsigNetwork.prototype.fetchValues = function (user, sinceTime, timeout, previousDerivedFields) {\n var input = {\n user: user,\n statsigMetadata: this._identity._statsigMetadata,\n sinceTime: sinceTime !== null && sinceTime !== void 0 ? sinceTime : undefined,\n hash: 'djb2',\n previousDerivedFields: previousDerivedFields,\n };\n return this._postWithTimeout(StatsigEndpoint.Initialize, input, timeout, // timeout for early returns\n 3);\n };\n StatsigNetwork.prototype.sendLogBeacon = function (payload) {\n if (this._options.localMode) {\n return true;\n }\n var url = new URL(this._options.eventLoggingApi + StatsigEndpoint.LogEventBeacon);\n url.searchParams.append('k', this._identity._sdkKey);\n payload.clientTime = Date.now() + '';\n var stringPayload = null;\n try {\n stringPayload = JSON.stringify(payload);\n }\n catch (_e) {\n return false;\n }\n return navigator.sendBeacon(url.toString(), stringPayload);\n };\n StatsigNetwork.prototype.postToEndpoint = function (endpointName, body, retries, backoff, useKeepalive) {\n if (retries === void 0) { retries = 0; }\n if (backoff === void 0) { backoff = 1000; }\n if (useKeepalive === void 0) { useKeepalive = false; }\n return __awaiter(this, void 0, void 0, function () {\n var api, url, counter, postBody, statsigMetadata, params;\n var _this = this;\n return __generator(this, function (_a) {\n if (this._options.localMode) {\n return [2 /*return*/, Promise.reject('no network requests in localMode')];\n }\n if (typeof fetch !== 'function') {\n // fetch is not defined in this environment, short circuit\n return [2 /*return*/, Promise.reject('fetch is not defined')];\n }\n if (typeof window === 'undefined' && !this._options.ignoreWindowUndefined) {\n // by default, dont issue requests from the server\n return [2 /*return*/, Promise.reject('window is not defined')];\n }\n api = [StatsigEndpoint.Initialize].includes(endpointName)\n ? this._options.api\n : this._options.eventLoggingApi;\n url = api + endpointName;\n counter = this.leakyBucket[url];\n if (counter != null && counter >= 30) {\n return [2 /*return*/, Promise.reject(new Error('Request failed because you are making the same request too frequently.'))];\n }\n if (counter == null) {\n this.leakyBucket[url] = 1;\n }\n else {\n this.leakyBucket[url] = counter + 1;\n }\n postBody = JSON.stringify(body);\n statsigMetadata = this._identity._statsigMetadata;\n params = {\n method: 'POST',\n body: postBody,\n headers: {\n 'Content-type': 'application/json; charset=UTF-8',\n 'STATSIG-API-KEY': this._identity._sdkKey,\n 'STATSIG-CLIENT-TIME': Date.now() + '',\n 'STATSIG-SDK-TYPE': statsigMetadata.sdkType,\n 'STATSIG-SDK-VERSION': statsigMetadata.sdkVersion,\n },\n };\n if (this.canUseKeepalive && useKeepalive) {\n params.keepalive = true;\n }\n return [2 /*return*/, fetch(url, params)\n .then(function (res) { return __awaiter(_this, void 0, void 0, function () {\n var networkResponse, text, errorText;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!res.ok) return [3 /*break*/, 4];\n networkResponse = res;\n if (!(res.status === NO_CONTENT)) return [3 /*break*/, 1];\n networkResponse.data = { has_updates: false, is_no_content: true };\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, res.text()];\n case 2:\n text = _a.sent();\n networkResponse.data = JSON.parse(text);\n _a.label = 3;\n case 3: return [2 /*return*/, Promise.resolve(networkResponse)];\n case 4:\n if (!this.retryCodes[res.status]) {\n retries = 0;\n }\n return [4 /*yield*/, res.text()];\n case 5:\n errorText = _a.sent();\n return [2 /*return*/, Promise.reject(new Error(\"\".concat(res.status, \": \").concat(errorText)))];\n }\n });\n }); })\n .catch(function (e) {\n if (retries > 0) {\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n _this.leakyBucket[url] = Math.max(_this.leakyBucket[url] - 1, 0);\n _this.postToEndpoint(endpointName, body, retries - 1, backoff * 2, useKeepalive)\n .then(resolve)\n .catch(reject);\n }, backoff);\n });\n }\n return Promise.reject(e);\n })\n .finally(function () {\n _this.leakyBucket[url] = Math.max(_this.leakyBucket[url] - 1, 0);\n })];\n });\n });\n };\n StatsigNetwork.prototype.supportsKeepalive = function () {\n return this.canUseKeepalive;\n };\n StatsigNetwork.prototype._init = function () {\n if (!this._options.disableNetworkKeepalive) {\n try {\n this.canUseKeepalive = 'keepalive' in new Request('');\n }\n catch (_e) { }\n }\n };\n StatsigNetwork.prototype._postWithTimeout = function (endpointName, body, timeout, retries, backoff) {\n var _this = this;\n if (timeout === void 0) { timeout = 0; }\n if (retries === void 0) { retries = 0; }\n if (backoff === void 0) { backoff = 1000; }\n var hasTimedOut = false;\n var timer = null;\n var cachedReturnValue = null;\n var eventuals = [];\n var eventually = function (boundScope) { return function (fn) {\n if (hasTimedOut && cachedReturnValue) {\n fn(cachedReturnValue);\n }\n else {\n eventuals.push(fn);\n }\n return boundScope;\n }; };\n if (timeout != 0) {\n timer = new Promise(function (resolve, reject) {\n setTimeout(function () {\n hasTimedOut = true;\n reject(new Error(\"The initialization timeout of \".concat(timeout, \"ms has been hit before the network request has completed.\")));\n }, timeout);\n });\n }\n var fetchPromise = this.postToEndpoint(endpointName, body, retries, backoff)\n .then(function (res) {\n if (!res.ok) {\n return Promise.reject(new Error(\"Request to \".concat(endpointName, \" failed with status \").concat(res.status)));\n }\n if (typeof res.data !== 'object') {\n var error = new Error(\"Request to \".concat(endpointName, \" received invalid response type. Expected 'object' but got '\").concat(typeof res.data, \"'\"));\n _this._errorBoundary._logError('postWithTimeoutInvalidRes', error, function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._getErrorData(endpointName, body, retries, backoff, res)];\n });\n }); });\n return Promise.reject(error);\n }\n var json = res.data;\n return _this._errorBoundary._capture('postWithTimeout', function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n cachedReturnValue = json;\n if (hasTimedOut) {\n eventuals.forEach(function (fn) { return fn(json); });\n eventuals = [];\n }\n return [2 /*return*/, Promise.resolve(json)];\n });\n }); }, function () {\n return Promise.resolve({});\n }, function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._getErrorData(endpointName, body, retries, backoff, res)];\n });\n }); });\n })\n .catch(function (e) {\n return Promise.reject(e);\n });\n var racingPromise = (timer ? Promise.race([fetchPromise, timer]) : fetchPromise);\n racingPromise.eventually = eventually(racingPromise);\n return racingPromise;\n };\n StatsigNetwork.prototype._getErrorData = function (endpointName, body, retries, backoff, res) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var headers_1;\n return __generator(this, function (_b) {\n try {\n headers_1 = {};\n ((_a = res.headers) !== null && _a !== void 0 ? _a : []).forEach(function (value, key) {\n headers_1[key] = value;\n });\n return [2 /*return*/, {\n responseInfo: {\n headers: headers_1,\n status: res.status,\n statusText: res.statusText,\n type: res.type,\n url: res.url,\n redirected: res.redirected,\n bodySnippet: res.data ? JSON.stringify(res.data).slice(0, 500) : null,\n },\n requestInfo: {\n endpointName: endpointName,\n bodySnippet: JSON.stringify(body).slice(0, 500),\n retries: retries,\n backoff: backoff,\n },\n }];\n }\n catch (_e) {\n return [2 /*return*/, {\n statusText: 'statsig::failed to extract extra data',\n }];\n }\n return [2 /*return*/];\n });\n });\n };\n return StatsigNetwork;\n}());\nexports.default = StatsigNetwork;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.INIT_TIMEOUT_DEFAULT_MS = void 0;\nvar DEFAULT_FEATURE_GATE_API = 'https://featuregates.org/v1/';\nvar DEFAULT_EVENT_LOGGING_API = 'https://events.statsigapi.net/v1/';\nexports.INIT_TIMEOUT_DEFAULT_MS = 3000;\nvar StatsigSDKOptions = /** @class */ (function () {\n function StatsigSDKOptions(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n if (options == null) {\n options = {};\n }\n var api = (_a = options.api) !== null && _a !== void 0 ? _a : DEFAULT_FEATURE_GATE_API;\n this.api = api.endsWith('/') ? api : api + '/';\n this.disableCurrentPageLogging = (_b = options.disableCurrentPageLogging) !== null && _b !== void 0 ? _b : false;\n this.environment = (_c = options.environment) !== null && _c !== void 0 ? _c : null;\n this.loggingIntervalMillis = this.normalizeNumberInput(options.loggingIntervalMillis, {\n default: 10000,\n min: 1000,\n max: 60000,\n });\n this.loggingBufferMaxSize = this.normalizeNumberInput(options.loggingBufferMaxSize, {\n default: 100,\n min: 2,\n max: 500,\n });\n this.disableNetworkKeepalive = (_d = options.disableNetworkKeepalive) !== null && _d !== void 0 ? _d : false;\n this.overrideStableID = (_e = options.overrideStableID) !== null && _e !== void 0 ? _e : null;\n this.localMode = (_f = options.localMode) !== null && _f !== void 0 ? _f : false;\n this.initTimeoutMs =\n options.initTimeoutMs && options.initTimeoutMs >= 0\n ? options.initTimeoutMs\n : exports.INIT_TIMEOUT_DEFAULT_MS;\n this.disableErrorLogging = (_g = options.disableErrorLogging) !== null && _g !== void 0 ? _g : false;\n this.disableAutoMetricsLogging = (_h = options.disableAutoMetricsLogging) !== null && _h !== void 0 ? _h : false;\n this.initializeValues = (_j = options.initializeValues) !== null && _j !== void 0 ? _j : null;\n var eventLoggingApi = (_l = (_k = options.eventLoggingApi) !== null && _k !== void 0 ? _k : options.api) !== null && _l !== void 0 ? _l : DEFAULT_EVENT_LOGGING_API;\n this.eventLoggingApi = eventLoggingApi.endsWith('/')\n ? eventLoggingApi\n : eventLoggingApi + '/';\n this.disableLocalStorage = (_m = options.disableLocalStorage) !== null && _m !== void 0 ? _m : false;\n this.ignoreWindowUndefined = (_o = options === null || options === void 0 ? void 0 : options.ignoreWindowUndefined) !== null && _o !== void 0 ? _o : false;\n this.updateUserCompletionCallback = (_p = options === null || options === void 0 ? void 0 : options.updateUserCompletionCallback) !== null && _p !== void 0 ? _p : null;\n }\n StatsigSDKOptions.prototype.normalizeNumberInput = function (input, bounds) {\n if (input == null) {\n return bounds.default;\n }\n return Math.max(Math.min(input, bounds.max), bounds.min);\n };\n return StatsigSDKOptions;\n}());\nexports.default = StatsigSDKOptions;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EvaluationReason = void 0;\nvar DynamicConfig_1 = __importDefault(require(\"./DynamicConfig\"));\nvar Layer_1 = __importDefault(require(\"./Layer\"));\nvar BootstrapValidator_1 = __importDefault(require(\"./utils/BootstrapValidator\"));\nvar Constants_1 = require(\"./utils/Constants\");\nvar Hashing_1 = require(\"./utils/Hashing\");\nvar StatsigLocalStorage_1 = __importDefault(require(\"./utils/StatsigLocalStorage\"));\nvar EvaluationReason;\n(function (EvaluationReason) {\n EvaluationReason[\"Network\"] = \"Network\";\n EvaluationReason[\"Bootstrap\"] = \"Bootstrap\";\n EvaluationReason[\"InvalidBootstrap\"] = \"InvalidBootstrap\";\n EvaluationReason[\"Cache\"] = \"Cache\";\n EvaluationReason[\"Unrecognized\"] = \"Unrecognized\";\n EvaluationReason[\"Uninitialized\"] = \"Uninitialized\";\n EvaluationReason[\"Error\"] = \"Error\";\n EvaluationReason[\"NetworkNotModified\"] = \"NetworkNotModified\";\n EvaluationReason[\"LocalOverride\"] = \"LocalOverride\";\n})(EvaluationReason = exports.EvaluationReason || (exports.EvaluationReason = {}));\nvar MAX_USER_VALUE_CACHED = 10;\nvar StatsigStore = /** @class */ (function () {\n function StatsigStore(identity, onDefaultValueFallback, initializeValues) {\n this._identity = identity;\n this._onDefaultValueFallback = onDefaultValueFallback;\n this._userCacheKey = this._identity.getUserCacheKey();\n this._values = {};\n this._userValues = this._getDefaultUserCacheValues();\n this._loaded = false;\n this._reason = EvaluationReason.Uninitialized;\n if (initializeValues) {\n this.bootstrap(initializeValues);\n }\n else {\n this._loadFromLocalStorage();\n }\n }\n StatsigStore.prototype.updateUser = function () {\n this._userCacheKey = this._identity.getUserCacheKey();\n return this._setUserValueFromCache();\n };\n StatsigStore.prototype.bootstrap = function (initializeValues) {\n var _a, _b, _c;\n var key = this._identity.getUserCacheKey();\n var user = this._identity._user;\n var reason = BootstrapValidator_1.default.isValid(user, initializeValues)\n ? EvaluationReason.Bootstrap\n : EvaluationReason.InvalidBootstrap;\n // clients are going to assume that the SDK is bootstrapped after this method runs\n // if we fail to parse, we will fall back to defaults, but we dont want to throw\n // when clients try to check gates/configs/etc after this point\n this._loaded = true;\n try {\n this._userValues.feature_gates = (_a = initializeValues.feature_gates) !== null && _a !== void 0 ? _a : {};\n this._userValues.dynamic_configs = (_b = initializeValues.dynamic_configs) !== null && _b !== void 0 ? _b : {};\n this._userValues.layer_configs = (_c = initializeValues.layer_configs) !== null && _c !== void 0 ? _c : {};\n this._userValues.evaluation_time = Date.now();\n this._userValues.time = Date.now();\n this._values[key] = this._userValues;\n this._reason = reason;\n }\n catch (_e) {\n return;\n }\n };\n StatsigStore.prototype.isLoaded = function () {\n return this._loaded;\n };\n StatsigStore.prototype.getLastUpdateTime = function (user) {\n var userHash = (0, Hashing_1.djb2HashForObject)(user);\n if (this._userValues.user_hash == userHash) {\n return this._userValues.time;\n }\n return null;\n };\n StatsigStore.prototype.getPreviousDerivedFields = function (user) {\n var userHash = (0, Hashing_1.djb2HashForObject)(user);\n if (this._userValues.user_hash == userHash) {\n return this._userValues.derived_fields;\n }\n return undefined;\n };\n StatsigStore.prototype.setEvaluationReason = function (evalReason) {\n this._reason = evalReason;\n };\n StatsigStore.prototype.save = function (user, jsonConfigs, updateState) {\n if (updateState === void 0) { updateState = true; }\n return __awaiter(this, void 0, void 0, function () {\n var requestedUserCacheKey, initResponse, userValues, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n requestedUserCacheKey = (0, Hashing_1.getUserCacheKey)(user);\n initResponse = jsonConfigs;\n this._mergeInitializeResponseIntoUserMap(initResponse, this._values, requestedUserCacheKey, user, function (userValues) { return userValues; });\n if (updateState) {\n userValues = this._values[requestedUserCacheKey];\n if (userValues &&\n requestedUserCacheKey &&\n requestedUserCacheKey == this._userCacheKey) {\n this._userValues = userValues;\n this._reason = EvaluationReason.Network;\n }\n }\n _a = this;\n return [4 /*yield*/, this._writeValuesToStorage(this._values)];\n case 1:\n _a._values = _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n StatsigStore.prototype.checkGate = function (gateName) {\n var _a;\n var gateNameHash = (0, Hashing_1.getHashValue)(gateName);\n var gateValue = {\n name: gateName,\n value: false,\n rule_id: '',\n secondary_exposures: [],\n };\n var details;\n var value = (_a = this._userValues) === null || _a === void 0 ? void 0 : _a.feature_gates[gateNameHash];\n if (value) {\n gateValue = value;\n }\n details = this._getEvaluationDetails(value != null);\n return { evaluationDetails: details, gate: gateValue };\n };\n StatsigStore.prototype.getConfig = function (configName) {\n var _a, _b;\n var configNameHash = (0, Hashing_1.getHashValue)(configName);\n var configValue;\n var details;\n if (((_a = this._userValues) === null || _a === void 0 ? void 0 : _a.dynamic_configs[configNameHash]) != null) {\n var rawConfigValue = (_b = this._userValues) === null || _b === void 0 ? void 0 : _b.dynamic_configs[configNameHash];\n details = this._getEvaluationDetails(true);\n configValue = this._createDynamicConfig(configName, rawConfigValue, details);\n }\n else {\n details = this._getEvaluationDetails(false);\n configValue = new DynamicConfig_1.default(configName, {}, '', details);\n }\n return configValue;\n };\n StatsigStore.prototype.getLayer = function (logParameterFunction, layerName) {\n var _a, _b, _c;\n var latestValue = this._getLatestValue(layerName, 'layer_configs');\n var details = this._getEvaluationDetails(latestValue != null);\n return Layer_1.default._create(layerName, (_a = latestValue === null || latestValue === void 0 ? void 0 : latestValue.value) !== null && _a !== void 0 ? _a : {}, (_b = latestValue === null || latestValue === void 0 ? void 0 : latestValue.rule_id) !== null && _b !== void 0 ? _b : '', details, logParameterFunction, latestValue === null || latestValue === void 0 ? void 0 : latestValue.secondary_exposures, latestValue === null || latestValue === void 0 ? void 0 : latestValue.undelegated_secondary_exposures, (_c = latestValue === null || latestValue === void 0 ? void 0 : latestValue.allocated_experiment_name) !== null && _c !== void 0 ? _c : '', latestValue === null || latestValue === void 0 ? void 0 : latestValue.explicit_parameters);\n };\n StatsigStore.prototype.getGlobalEvaluationDetails = function () {\n var _a, _b;\n return {\n reason: (_a = this._reason) !== null && _a !== void 0 ? _a : EvaluationReason.Uninitialized,\n time: (_b = this._userValues.evaluation_time) !== null && _b !== void 0 ? _b : 0,\n };\n };\n StatsigStore.prototype._loadFromLocalStorage = function () {\n this._parseCachedValues(StatsigLocalStorage_1.default.getItem(Constants_1.INTERNAL_STORE_KEY));\n this._loaded = true;\n };\n StatsigStore.prototype._parseCachedValues = function (allValues) {\n try {\n this._values = allValues ? JSON.parse(allValues) : this._values;\n this._setUserValueFromCache();\n }\n catch (e) {\n // Cached value corrupted, remove cache\n this._removeFromStorage(Constants_1.INTERNAL_STORE_KEY);\n }\n };\n StatsigStore.prototype._setUserValueFromCache = function () {\n var _a;\n var cachedValues = this._values[this._userCacheKey];\n if (cachedValues == null) {\n this._resetUserValues();\n this._reason = EvaluationReason.Uninitialized;\n return null;\n }\n this._userValues = cachedValues;\n this._reason = EvaluationReason.Cache;\n return (_a = cachedValues.evaluation_time) !== null && _a !== void 0 ? _a : 0;\n };\n StatsigStore.prototype._removeFromStorage = function (key) {\n StatsigLocalStorage_1.default.removeItem(key);\n };\n /**\n * Merges the provided init configs into the provided config map, according to the provided merge function\n */\n StatsigStore.prototype._mergeInitializeResponseIntoUserMap = function (data, configMap, requestedUserCacheKey, user, mergeFn) {\n if (requestedUserCacheKey) {\n var requestedUserValues = this._convertAPIDataToCacheValues(data, requestedUserCacheKey);\n if (data.has_updates && data.time) {\n var userHash = (0, Hashing_1.djb2HashForObject)(user);\n requestedUserValues.user_hash = userHash;\n }\n configMap[requestedUserCacheKey] = mergeFn(requestedUserValues, requestedUserCacheKey);\n }\n };\n StatsigStore.prototype._getDefaultUserCacheValues = function () {\n return {\n feature_gates: {},\n layer_configs: {},\n dynamic_configs: {},\n time: 0,\n evaluation_time: 0,\n has_updates: false,\n };\n };\n /**\n * Writes the provided values to storage, truncating down to\n * MAX_USER_VALUE_CACHED number entries.\n * @returns The truncated entry list\n */\n StatsigStore.prototype._writeValuesToStorage = function (valuesToWrite) {\n return __awaiter(this, void 0, void 0, function () {\n var filteredValues;\n return __generator(this, function (_a) {\n filteredValues = Object.entries(valuesToWrite)\n .sort(function (_a, _b) {\n var _c, _d;\n var a = _a[1];\n var b = _b[1];\n if (a == null) {\n return 1;\n }\n if (b == null) {\n return -1;\n }\n return (((_c = b === null || b === void 0 ? void 0 : b.evaluation_time) !== null && _c !== void 0 ? _c : b === null || b === void 0 ? void 0 : b.time) - ((_d = a === null || a === void 0 ? void 0 : a.evaluation_time) !== null && _d !== void 0 ? _d : a === null || a === void 0 ? void 0 : a.time));\n })\n .slice(0, MAX_USER_VALUE_CACHED);\n valuesToWrite = Object.fromEntries(filteredValues);\n StatsigLocalStorage_1.default.setItem(Constants_1.INTERNAL_STORE_KEY, JSON.stringify(valuesToWrite));\n return [2 /*return*/, valuesToWrite];\n });\n });\n };\n StatsigStore.prototype._getLatestValue = function (name, topLevelKey) {\n var _a, _b, _c, _d, _f;\n var hash = (0, Hashing_1.getHashValue)(name);\n return ((_c = (_b = (_a = this._userValues) === null || _a === void 0 ? void 0 : _a[topLevelKey]) === null || _b === void 0 ? void 0 : _b[hash]) !== null && _c !== void 0 ? _c : (_f = (_d = this._userValues) === null || _d === void 0 ? void 0 : _d[topLevelKey]) === null || _f === void 0 ? void 0 : _f[name]);\n };\n StatsigStore.prototype._createDynamicConfig = function (name, apiConfig, details) {\n var _a, _b, _c;\n return new DynamicConfig_1.default(name, (_a = apiConfig === null || apiConfig === void 0 ? void 0 : apiConfig.value) !== null && _a !== void 0 ? _a : {}, (_b = apiConfig === null || apiConfig === void 0 ? void 0 : apiConfig.rule_id) !== null && _b !== void 0 ? _b : '', details, apiConfig === null || apiConfig === void 0 ? void 0 : apiConfig.secondary_exposures, (_c = apiConfig === null || apiConfig === void 0 ? void 0 : apiConfig.allocated_experiment_name) !== null && _c !== void 0 ? _c : '', this._makeOnConfigDefaultValueFallback(this._identity._user));\n };\n StatsigStore.prototype._getEvaluationDetails = function (valueExists, reasonOverride) {\n var _a;\n if (valueExists) {\n return {\n reason: this._reason,\n time: (_a = this._userValues.evaluation_time) !== null && _a !== void 0 ? _a : Date.now(),\n };\n }\n else {\n return {\n reason: reasonOverride !== null && reasonOverride !== void 0 ? reasonOverride : (this._reason == EvaluationReason.Uninitialized\n ? EvaluationReason.Uninitialized\n : EvaluationReason.Unrecognized),\n time: Date.now(),\n };\n }\n };\n StatsigStore.prototype._resetUserValues = function () {\n this._userValues = this._getDefaultUserCacheValues();\n };\n StatsigStore.prototype._convertAPIDataToCacheValues = function (data, cacheKey) {\n // Specifically pulling keys from data here to avoid pulling in unwanted keys\n return {\n feature_gates: data.feature_gates,\n layer_configs: data.layer_configs,\n dynamic_configs: data.dynamic_configs,\n time: data.time == null || isNaN(data.time) ? 0 : data.time,\n evaluation_time: Date.now(),\n derived_fields: data.derived_fields,\n };\n };\n StatsigStore.prototype._makeOnConfigDefaultValueFallback = function (user) {\n var _this = this;\n return function (config, parameter, defaultValueType, valueType) {\n if (!_this.isLoaded()) {\n return;\n }\n _this._onDefaultValueFallback(user, \"Parameter \".concat(parameter, \" is a value of type \").concat(valueType, \".\\n Returning requested defaultValue type \").concat(defaultValueType), {\n name: config._name,\n ruleID: config._ruleID,\n parameter: parameter,\n defaultValueType: defaultValueType,\n valueType: valueType,\n });\n };\n };\n return StatsigStore;\n}());\nexports.default = StatsigStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EvaluationReason = exports.DynamicConfig = void 0;\nvar Errors_1 = require(\"./Errors\");\nvar StatsigClient_1 = __importDefault(require(\"./StatsigClient\"));\nvar StatsigStore_1 = require(\"./StatsigStore\");\nvar DynamicConfig_1 = require(\"./DynamicConfig\");\nObject.defineProperty(exports, \"DynamicConfig\", { enumerable: true, get: function () { return __importDefault(DynamicConfig_1).default; } });\nvar StatsigStore_2 = require(\"./StatsigStore\");\nObject.defineProperty(exports, \"EvaluationReason\", { enumerable: true, get: function () { return StatsigStore_2.EvaluationReason; } });\nvar Statsig = /** @class */ (function () {\n function Statsig() {\n }\n Statsig.initialize = function (sdkKey, user, options) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var inst;\n return __generator(this, function (_b) {\n inst = (_a = Statsig.instance) !== null && _a !== void 0 ? _a : new StatsigClient_1.default(sdkKey, user, options);\n if (!Statsig.instance) {\n Statsig.instance = inst;\n }\n return [2 /*return*/, inst.initializeAsync()];\n });\n });\n };\n Statsig.setInitializeValues = function (initializeValues) {\n Statsig._getClientX().setInitializeValues(initializeValues);\n };\n // Gate\n Statsig.checkGate = function (gateName) {\n return Statsig._getClientX().checkGate(gateName);\n };\n Statsig.checkGateWithExposureLoggingDisabled = function (gateName) {\n return Statsig._getClientX().checkGateWithExposureLoggingDisabled(gateName);\n };\n Statsig.manuallyLogGateExposure = function (gateName) {\n Statsig._getClientX().logGateExposure(gateName);\n };\n // Config\n Statsig.getConfig = function (configName) {\n return Statsig._getClientX().getConfig(configName);\n };\n Statsig.getConfigWithExposureLoggingDisabled = function (configName) {\n return Statsig._getClientX().getConfigWithExposureLoggingDisabled(configName);\n };\n Statsig.manuallyLogConfigExposure = function (configName) {\n Statsig._getClientX().logConfigExposure(configName);\n };\n // Experiment\n Statsig.getExperiment = function (experimentName) {\n return Statsig._getClientX().getExperiment(experimentName);\n };\n Statsig.getExperimentWithExposureLoggingDisabled = function (experimentName) {\n return Statsig._getClientX().getExperimentWithExposureLoggingDisabled(experimentName);\n };\n Statsig.manuallyLogExperimentExposure = function (configName) {\n Statsig._getClientX().logExperimentExposure(configName);\n };\n // Layer\n Statsig.getLayer = function (layerName) {\n return Statsig._getClientX().getLayer(layerName);\n };\n Statsig.getLayerWithExposureLoggingDisabled = function (layerName) {\n return Statsig._getClientX().getLayerWithExposureLoggingDisabled(layerName);\n };\n Statsig.manuallyLogLayerParameterExposure = function (layerName, parameterName) {\n Statsig._getClientX().logLayerParameterExposure(layerName, parameterName);\n };\n Statsig.logEvent = function (eventName, value, metadata) {\n if (value === void 0) { value = null; }\n if (metadata === void 0) { metadata = null; }\n return Statsig._getClientX().logEvent(eventName, value, metadata);\n };\n Statsig.updateUser = function (user) {\n return Statsig._getClientX().updateUser(user);\n };\n Statsig.updateUserWithValues = function (user, values) {\n return Statsig._getClientX().updateUserWithValues(user, values);\n };\n Statsig.shutdown = function () {\n Statsig._getClientX().shutdown();\n Statsig.instance = null;\n };\n Statsig.overrideGate = function (gate, result) {\n Statsig._getClientX().overrideGate(gate, result);\n };\n Statsig.overrideConfig = function (config, result) {\n Statsig._getClientX().overrideConfig(config, result);\n };\n Statsig.overrideLayer = function (layer, result) {\n Statsig._getClientX().overrideLayer(layer, result);\n };\n Statsig.setOverrides = function (overrides) {\n Statsig._getClientX().setOverrides(overrides);\n };\n Statsig.getOverrides = function () {\n return Statsig._getClientX().getOverrides();\n };\n /**\n * @returns The Statsig stable ID used for device level experiments\n */\n Statsig.getStableID = function () {\n return Statsig._getClientX().getStableID();\n };\n /**\n *\n * @returns The reason and time associated with the evaluation for the current set\n * of gates and configs\n */\n Statsig.getEvaluationDetails = function () {\n var _a, _b;\n return ((_b = (_a = Statsig.instance) === null || _a === void 0 ? void 0 : _a.getEvaluationDetails()) !== null && _b !== void 0 ? _b : {\n reason: StatsigStore_1.EvaluationReason.Uninitialized,\n time: 0,\n });\n };\n /**\n *\n * @returns true if initialize has already been called, false otherwise\n */\n Statsig.initializeCalled = function () {\n return Statsig.instance != null && Statsig.instance.initializeCalled();\n };\n Statsig._getClientX = function () {\n if (!Statsig.instance) {\n throw new Errors_1.StatsigUninitializedError();\n }\n return Statsig.instance;\n };\n Statsig.instance = null;\n return Statsig;\n}());\nexports.default = Statsig;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BootstrapValidator = /** @class */ (function () {\n function BootstrapValidator() {\n }\n BootstrapValidator.isValid = function (user, values) {\n try {\n var evaluatedKeys = values['evaluated_keys'];\n if (!evaluatedKeys || typeof evaluatedKeys !== 'object') {\n return true;\n }\n var evaluatedKeysRecord = this.copyObject(evaluatedKeys);\n var userToCompare = user == null ? null : this.copyObject(user);\n return (BootstrapValidator.validate(evaluatedKeysRecord, userToCompare) &&\n BootstrapValidator.validate(userToCompare, evaluatedKeysRecord));\n }\n catch (error) {\n // This is best-effort. If we fail, return true.\n }\n return true;\n };\n BootstrapValidator.validate = function (one, two) {\n if (one == null) {\n return two == null;\n }\n else if (two == null) {\n return false;\n }\n for (var _i = 0, _a = Object.entries(one); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (key === 'stableID') {\n continue;\n }\n if (typeof value !== typeof two[key]) {\n return false;\n }\n if (typeof value === 'string') {\n if (value !== two[key]) {\n return false;\n }\n }\n else if (typeof value === 'object') {\n return this.validate(value, two[key]);\n }\n else {\n // unexpected\n return false;\n }\n }\n return true;\n };\n BootstrapValidator.copyObject = function (obj) {\n if (obj == null) {\n return null;\n }\n var copy = {};\n if (obj === null || obj === void 0 ? void 0 : obj.userID) {\n copy['userID'] = obj === null || obj === void 0 ? void 0 : obj.userID;\n }\n if (obj === null || obj === void 0 ? void 0 : obj.customIDs) {\n var customIDs = __assign({}, obj.customIDs);\n delete customIDs['stableID'];\n if (Object.keys(customIDs).length !== 0) {\n copy['customIDs'] = customIDs;\n }\n }\n return copy;\n };\n return BootstrapValidator;\n}());\nexports.default = BootstrapValidator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LOCAL_STORAGE_KEYS = exports.STATSIG_LOCAL_STORAGE_LOGGING_REQUEST_KEY = exports.STATSIG_STABLE_ID_KEY = exports.INTERNAL_STORE_KEY = void 0;\nexports.INTERNAL_STORE_KEY = 'STATSIG_STORE';\nexports.STATSIG_STABLE_ID_KEY = 'STATSIG_STABLE_ID';\nexports.STATSIG_LOCAL_STORAGE_LOGGING_REQUEST_KEY = 'STATSIG_LOGS';\nexports.LOCAL_STORAGE_KEYS = {\n INTERNAL_STORE_KEY: true,\n STATSIG_STABLE_ID_KEY: true,\n STATSIG_LOCAL_STORAGE_LOGGING_REQUEST_KEY: true,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getUserCacheKey = exports.getSortedObject = exports.djb2HashForObject = exports.getHashValue = exports.SimpleHash = void 0;\nfunction SimpleHash(value) {\n var hash = 0;\n for (var i = 0; i < value.length; i++) {\n var character = value.charCodeAt(i);\n hash = (hash << 5) - hash + character;\n hash = hash & hash; // Convert to 32bit integer\n }\n return String(hash >>> 0);\n}\nexports.SimpleHash = SimpleHash;\nfunction getHashValue(value) {\n return SimpleHash(value);\n}\nexports.getHashValue = getHashValue;\nfunction djb2HashForObject(object) {\n return SimpleHash(JSON.stringify(getSortedObject(object)));\n}\nexports.djb2HashForObject = djb2HashForObject;\nfunction getSortedObject(object) {\n if (object == null) {\n return null;\n }\n var keys = Object.keys(object).sort();\n var sortedObject = {};\n keys.forEach(function (key) {\n var value = object[key];\n if (value instanceof Object) {\n value = getSortedObject(value);\n }\n sortedObject[key] = value;\n });\n return sortedObject;\n}\nexports.getSortedObject = getSortedObject;\nfunction getUserCacheKey(user) {\n var _a;\n var key = \"userID:\".concat(String((_a = user === null || user === void 0 ? void 0 : user.userID) !== null && _a !== void 0 ? _a : ''));\n var customIDs = user === null || user === void 0 ? void 0 : user.customIDs;\n if (customIDs != null) {\n for (var _i = 0, _b = Object.entries(customIDs); _i < _b.length; _i++) {\n var _c = _b[_i], type = _c[0], value = _c[1];\n key += \";\".concat(type, \":\").concat(value);\n }\n }\n return SimpleHash(key);\n}\nexports.getUserCacheKey = getUserCacheKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar StatsigLocalStorage = /** @class */ (function () {\n function StatsigLocalStorage() {\n }\n StatsigLocalStorage.getItem = function (key) {\n var _a;\n try {\n if (this.isStorageAccessible()) {\n return window.localStorage.getItem(key);\n }\n }\n catch (e) { }\n return (_a = this.fallbackSessionCache[key]) !== null && _a !== void 0 ? _a : null;\n };\n StatsigLocalStorage.setItem = function (key, value) {\n try {\n if (this.isStorageAccessible()) {\n window.localStorage.setItem(key, value);\n return;\n }\n }\n catch (e) { }\n this.fallbackSessionCache[key] = value;\n };\n StatsigLocalStorage.removeItem = function (key) {\n try {\n if (this.isStorageAccessible()) {\n window.localStorage.removeItem(key);\n return;\n }\n }\n catch (e) { }\n delete this.fallbackSessionCache[key];\n };\n StatsigLocalStorage.isStorageAccessible = function (ignoreDisabledOption) {\n if (ignoreDisabledOption === void 0) { ignoreDisabledOption = false; }\n if (this.canAccessStorageAccessible == null) {\n this.canAccessStorageAccessible =\n typeof Storage !== 'undefined' &&\n typeof window !== 'undefined' &&\n window != null &&\n window.localStorage != null;\n }\n var canAccess = this.canAccessStorageAccessible;\n if (ignoreDisabledOption) {\n return canAccess;\n }\n return !this.disabled && canAccess;\n };\n StatsigLocalStorage.disabled = false;\n StatsigLocalStorage.fallbackSessionCache = {};\n StatsigLocalStorage.canAccessStorageAccessible = null;\n return StatsigLocalStorage;\n}());\nexports.default = StatsigLocalStorage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.difference = exports.now = void 0;\nfunction now() {\n if (typeof performance === 'undefined' || !performance) {\n return Date.now();\n }\n return performance.now() | 0;\n}\nexports.now = now;\nfunction difference(time) {\n return now() - time;\n}\nexports.difference = difference;\n","import FeatureGates, {\n FeatureGateEnvironment,\n} from \"@atlassian/feature-gate-js-client\";\nimport { FeatureGatesInitialization } from \"@atlassian/feature-gates-react\";\nimport { PropsWithChildren } from \"react\";\nimport storage from \"../../../utils/storage\";\nimport React from \"react\";\n\nconst FeatureGateWrapper = ({ children }: PropsWithChildren) => {\n const atlassianAccountId = (storage.getCookie(\"__aid_user_id\") ?? \"\").replace(\n /\\\"/g,\n \"\"\n );\n\n const doRender = atlassianAccountId && atlassianAccountId !== \"\";\n\n if (doRender) {\n return (\n \n {children}\n \n );\n } else {\n return null;\n }\n};\n\nconst CartBtnInner = () => {\n const enrolled = FeatureGates.getExperimentValue(\n \"aa_test_wac_cart\",\n \"treatment\",\n false\n );\n\n // return enrolled ? : null;\n return null;\n};\n\nconst CartBtn = () => {\n return (\n \n \n \n );\n};\n\nexport default CartBtn;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst errors_1 = require(\"./errors\");\nconst types_1 = require(\"../types\");\nconst version_1 = require(\"../version\");\nconst DEFAULT_REQUEST_TIMEOUT_MS = 2000;\nconst PROD_BASE_URL = 'https://api.atlassian.com/flags';\nconst STAGING_BASE_URL = 'https://api.stg.atlassian.com/flags';\nconst DEV_BASE_URL = 'https://api.dev.atlassian.com/flags';\nconst GATEWAY_BASE_URL = '/gateway/api/flags';\nclass Fetcher {\n static async fetchClientSdk(fetcherOptions) {\n const { targetApp } = fetcherOptions;\n const url = `/api/v2/frontend/clientSdkKey/${targetApp}`;\n try {\n return await this.fetchRequest(url, 'GET', fetcherOptions);\n }\n catch (error) {\n if (error instanceof Error) {\n throw error;\n }\n throw Error('Failed to retrieve client sdk key');\n }\n }\n static async fetchExperimentValues(fetcherOptions, identifiers, customAttributes) {\n const requestBody = {\n identifiers,\n customAttributes,\n targetApp: fetcherOptions.targetApp\n };\n try {\n return await this.fetchRequest('/api/v2/frontend/experimentValues', 'POST', fetcherOptions, requestBody);\n }\n catch (error) {\n if (error instanceof Error) {\n throw error;\n }\n throw Error('Failed to retrieve experiment values');\n }\n }\n static async handleResponseError(response) {\n if (!response.ok) {\n // Use text() instead of json() as the error body might not be json data\n const body = await response.text();\n throw new errors_1.ResponseError(`Non 2xx response status received, status: ${response.status}, body: ${JSON.stringify(body)}`);\n }\n if (response.status === 204) {\n throw new errors_1.ResponseError('Unexpected 204 response');\n }\n }\n static async extractResponseBody(response) {\n const value = await response.text();\n return JSON.parse(value);\n }\n static getBaseUrl(serviceEnv, useGatewayUrl = false) {\n if (useGatewayUrl) {\n return GATEWAY_BASE_URL;\n }\n switch (serviceEnv) {\n case types_1.FeatureGateEnvironment.Development:\n return DEV_BASE_URL;\n case types_1.FeatureGateEnvironment.Staging:\n return STAGING_BASE_URL;\n default:\n return PROD_BASE_URL;\n }\n }\n static async fetchRequest(path, method, fetcherOptions, body) {\n const baseUrl = Fetcher.getBaseUrl(fetcherOptions.environment, fetcherOptions.useGatewayURL);\n const fetchTimeout = fetcherOptions.fetchTimeoutMs || DEFAULT_REQUEST_TIMEOUT_MS;\n let abortSignal;\n if (AbortSignal.timeout) {\n abortSignal = AbortSignal.timeout(fetchTimeout);\n }\n else if (AbortController) {\n const abortController = new AbortController();\n abortSignal = abortController.signal;\n setTimeout(() => abortController.abort(), fetchTimeout);\n }\n const response = await fetch(`${baseUrl}${path}`, Object.assign({ method, headers: {\n 'Content-Type': 'application/json',\n 'X-Client-Name': 'feature-gate-js-client',\n 'X-Client-Version': version_1.CLIENT_VERSION,\n 'X-API-KEY': fetcherOptions.apiKey\n }, signal: abortSignal }, (body && { body: JSON.stringify(body) })));\n await this.handleResponseError(response);\n return await this.extractResponseBody(response);\n }\n}\nexports.default = Fetcher;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResponseError = void 0;\nclass ResponseError extends Error {\n constructor(message) {\n super(message);\n }\n}\nexports.ResponseError = ResponseError;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = void 0;\nvar Fetcher_1 = require(\"./Fetcher\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return __importDefault(Fetcher_1).default; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EvaluationReason = exports.DynamicConfig = void 0;\nconst statsig_js_lite_1 = __importStar(require(\"statsig-js-lite\"));\nvar statsig_js_lite_2 = require(\"statsig-js-lite\");\nObject.defineProperty(exports, \"DynamicConfig\", { enumerable: true, get: function () { return statsig_js_lite_2.DynamicConfig; } });\nObject.defineProperty(exports, \"EvaluationReason\", { enumerable: true, get: function () { return statsig_js_lite_2.EvaluationReason; } });\nconst fetcher_1 = __importDefault(require(\"./fetcher\"));\n__exportStar(require(\"./types\"), exports);\nconst DEFAULT_CLIENT_KEY = 'client-default-key';\nclass FeatureGates {\n static async initialize(clientOptions, identifiers, customAttributes) {\n if (FeatureGates.initPromise) {\n console.warn('Feature Gates client already initialized');\n return FeatureGates.initPromise;\n }\n FeatureGates.initOptions = clientOptions;\n FeatureGates.initPromise = FeatureGates.init(clientOptions, identifiers, customAttributes).then(() => {\n FeatureGates.initCompleted = true;\n });\n return FeatureGates.initPromise;\n }\n static async initializeFromValues(clientOptions, identifiers, customAttributes, initializeValues = {}) {\n if (FeatureGates.initPromise) {\n console.warn('Feature Gates client already initialized');\n return FeatureGates.initPromise;\n }\n FeatureGates.initOptions = clientOptions;\n FeatureGates.initPromise = FeatureGates.initFromValues(clientOptions, identifiers, customAttributes, initializeValues).then(() => {\n FeatureGates.initCompleted = true;\n });\n return FeatureGates.initPromise;\n }\n /**\n * This method updates the user using a network call to fetch the new set of values.\n * @param fetchOptions {FetcherOptions}\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n */\n static async updateUser(fetchOptions, identifiers, customAttributes) {\n const initializeValuesProducer = () => fetcher_1.default.fetchExperimentValues(fetchOptions, identifiers, customAttributes).then((response) => response.experimentValues);\n await FeatureGates.updateUserUsingInitializeValuesProducer(initializeValuesProducer, identifiers, customAttributes);\n }\n /**\n * This method updates the user given a new set of bootstrap values obtained from one of the server-side SDKs.\n *\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n * @param initializeValues {Record}\n */\n static async updateUserWithValues(identifiers, customAttributes, initializeValues = {}) {\n const initializeValuesProducer = () => Promise.resolve(initializeValues);\n await FeatureGates.updateUserUsingInitializeValuesProducer(initializeValuesProducer, identifiers, customAttributes);\n }\n static initializeCalled() {\n return FeatureGates.initPromise != null;\n }\n static initializeCompleted() {\n return FeatureGates.initCompleted;\n }\n static checkGate(gateName) {\n return statsig_js_lite_1.default.checkGate(gateName);\n }\n /**\n * Returns the entire config for a given experiment.\n *\n * @param {string} experimentName - The name of the experiment\n * @param {Object} options\n * @param {boolean} options.fireExperimentExposure - Whether or not to fire the exposure event for the experiment.\n * @returns The config for an experiment\n * @example\n * ```ts\n * const experimentConfig = FeatureGates.getExperiment('example-experiment-name');\n * const backgroundColor: string = experimentConfig.get('backgroundColor', 'yellow');\n * ```\n */\n static getExperiment(experimentName, options) {\n try {\n const defaultOptions = {\n fireExperimentExposure: true\n };\n const { fireExperimentExposure } = Object.assign(Object.assign({}, defaultOptions), options);\n const evalMethod = fireExperimentExposure\n ? statsig_js_lite_1.default.getExperiment.bind(statsig_js_lite_1.default)\n : statsig_js_lite_1.default.getExperimentWithExposureLoggingDisabled.bind(statsig_js_lite_1.default);\n return evalMethod(experimentName);\n }\n catch (error) {\n // Log the first occurrence of the error\n if (!FeatureGates.hasGetExperimentErrorOccurred) {\n console.warn({\n msg: 'An error has occurred getting the experiment. Only the first occurrence of this error is logged.',\n experimentName,\n error\n });\n FeatureGates.hasGetExperimentErrorOccurred = true;\n }\n // Return a default value\n return new statsig_js_lite_1.DynamicConfig(experimentName, {}, '', {\n time: Date.now(),\n reason: statsig_js_lite_1.EvaluationReason.Error\n });\n }\n }\n /**\n * Returns the value of a given parameter in an experiment config.\n *\n * @template T\n * @param {string} experimentName - The name of the experiment\n * @param {string} parameterName - The name of the parameter to fetch from the experiment config\n * @param {T} defaultValue - The value to serve if the experiment or parameter do not exist, or if the returned value does not match the expected type.\n * @param {Object} options\n * @param {boolean} options.fireExperimentExposure - Whether or not to fire the exposure event for the experiment.\n * @param {function} options.typeGuard - A function that asserts that the return value has the expected type. If this function returns false, then the default value will be returned instead. This can be set to protect your code from unexpected values being set remotely. By default, this will be done by asserting that the default value and value are the same primitive type.\n * @returns The value of the parameter if the experiment and parameter both exist, otherwise the default value.\n * @example\n ``` ts\n type ValidColor = 'blue' | 'red' | 'yellow';\n type ValidColorTypeCheck = (value: unknown) => value is ValidColor;\n\n const isValidColor: ValidColorTypeCheck =\n (value: unknown) => typeof value === 'string' && ['blue', 'red', 'yellow'].includes(value);\n\n const buttonColor: ValidColor = FeatureGates.getExperimentValue(\n 'example-experiment-name',\n 'backgroundColor',\n 'yellow',\n {\n typeGuard: isValidColor\n }\n );\n ```\n */\n static getExperimentValue(experimentName, parameterName, defaultValue, options) {\n const experiment = FeatureGates.getExperiment(experimentName, options);\n try {\n const defaultOptions = {};\n const { typeGuard } = Object.assign(Object.assign({}, defaultOptions), options);\n return experiment.get(parameterName, defaultValue, typeGuard);\n }\n catch (error) {\n // Log the first occurrence of the error\n if (!FeatureGates.hasGetExperimentValueErrorOccurred) {\n console.warn({\n msg: 'An error has occurred getting the experiment value. Only the first occurrence of this error is logged.',\n experimentName,\n defaultValue,\n options,\n error\n });\n FeatureGates.hasGetExperimentValueErrorOccurred = true;\n }\n return defaultValue;\n }\n }\n static manuallyLogExperimentExposure(experimentName) {\n statsig_js_lite_1.default.manuallyLogExperimentExposure(experimentName);\n }\n static shutdownStatsig() {\n statsig_js_lite_1.default.shutdown();\n }\n /**\n * Adds a new override for the given gate.\n *\n * This method is additive, meaning you can call it multiple times with different gate names to build\n * your full set of overrides.\n *\n * Overrides are persisted to the `STATSIG_JS_LITE_LOCAL_OVERRIDES` key in localStorage, so they will\n * continue to affect every client that is initialized on the same domain after this method is called.\n * If you are using this API for testing purposes, you should call ${@link clearGateOverride} after\n * your tests are completed to remove this localStorage entry.\n *\n * @param {string} gateName\n * @param {boolean} value\n */\n static overrideGate(gateName, value) {\n statsig_js_lite_1.default.overrideGate(gateName, value);\n }\n /**\n * Removes any overrides that have been set for the given gate.\n * @param {string} gateName\n */\n static clearGateOverride(gateName) {\n statsig_js_lite_1.default.overrideGate(gateName, null);\n }\n /**\n * Adds a new override for the given config (or experiment).\n *\n * This method is additive, meaning you can call it multiple times with different experiment names to build\n * your full set of overrides.\n *\n * Overrides are persisted to the `STATSIG_JS_LITE_LOCAL_OVERRIDES` key in localStorage, so they will\n * continue to affect every client that is initialized on the same domain after this method is called.\n * If you are using this API for testing purposes, you should call ${@link clearConfigOverride} after\n * your tests are completed to remove this localStorage entry.\n *\n * @param {string} experimentName\n * @param {object} values\n */\n static overrideConfig(experimentName, values) {\n statsig_js_lite_1.default.overrideConfig(experimentName, values);\n }\n /**\n * Removes any overrides that have been set for the given experiment.\n * @param {string} experimentName\n */\n static clearConfigOverride(experimentName) {\n statsig_js_lite_1.default.overrideConfig(experimentName, null);\n }\n /**\n * Set overrides for gates, experiments and layers in batch.\n *\n * Note that these overrides are **not** additive and will completely replace any that have been added\n * via prior calls to {@link overrideConfig} or {@link overrideGate}.\n *\n * Overrides are persisted to the `STATSIG_JS_LITE_LOCAL_OVERRIDES` key in localStorage, so they will\n * continue to affect every client that is initialized on the same domain after this method is called.\n * If you are using this API for testing purposes, you should call ${@link clearAllOverrides} after\n * your tests are completed to remove this localStorage entry.\n *\n * @param {object} overrides\n */\n static setOverrides(overrides) {\n statsig_js_lite_1.default.setOverrides(overrides);\n }\n /**\n * Clears overrides for all gates, configs (including experiments) and layers.\n */\n static clearAllOverrides() {\n statsig_js_lite_1.default.setOverrides(null);\n }\n /**\n * This method initializes the client using a network call to fetch the bootstrap values for the given user.\n *\n * @param clientOptions\n * @param identifiers\n * @param customAttributes\n * @private\n */\n static async init(clientOptions, identifiers, customAttributes) {\n const fromValuesClientOptions = Object.assign(Object.assign({}, clientOptions), { disableCurrentPageLogging: true });\n let experimentValues;\n try {\n // If client sdk key fetch fails, an error would be thrown and handled instead of waiting for the experiment\n // values request to be settled, and it will fall back to use default values.\n const clientSdkKeyPromise = fetcher_1.default.fetchClientSdk(clientOptions).then((value) => (fromValuesClientOptions.sdkKey = value.clientSdkKey));\n const experimentValuesPromise = fetcher_1.default.fetchExperimentValues(clientOptions, identifiers, customAttributes);\n // Only wait for the experiment values request to finish and try to initialise the client with experiment\n // values if both requests are successful. Else an error would be thrown and handled by the catch\n const [, experimentValuesResult] = await Promise.all([\n clientSdkKeyPromise,\n experimentValuesPromise\n ]);\n experimentValues = experimentValuesResult.experimentValues;\n }\n catch (error) {\n if (error instanceof Error) {\n console.error(`Error occurred when trying to fetch the Feature Gates client values, error: ${error === null || error === void 0 ? void 0 : error.message}`);\n }\n console.warn(`Initialising Statsig client without values`);\n await FeatureGates.initFromValues(fromValuesClientOptions, identifiers, customAttributes);\n throw error;\n }\n await this.initFromValues(fromValuesClientOptions, identifiers, customAttributes, experimentValues);\n }\n /**\n * This method initializes the client using a set of boostrap values obtained from one of the server-side SDKs.\n *\n * @param clientOptions\n * @param identifiers\n * @param customAttributes\n * @param initializeValues\n * @private\n */\n static async initFromValues(clientOptions, identifiers, customAttributes, initializeValues = {}) {\n const user = this.toStatsigUser(identifiers, customAttributes);\n FeatureGates.currentIdentifiers = identifiers;\n FeatureGates.currentAttributes = customAttributes;\n if (!clientOptions.sdkKey) {\n clientOptions.sdkKey = DEFAULT_CLIENT_KEY;\n }\n const { sdkKey } = clientOptions;\n const statsigOptions = this.toStatsigOptions(clientOptions, initializeValues);\n try {\n await statsig_js_lite_1.default.initialize(sdkKey, user, statsigOptions);\n }\n catch (error) {\n if (error instanceof Error) {\n console.error(`Error occurred when trying to initialise the Statsig client, error: ${error === null || error === void 0 ? void 0 : error.message}`);\n }\n console.warn(`Initialising Statsig client with default sdk key and without values`);\n await statsig_js_lite_1.default.initialize(DEFAULT_CLIENT_KEY, user, Object.assign(Object.assign({}, statsigOptions), { initializeValues: {} }));\n throw error;\n }\n }\n /**\n * This method creates an instance of StatsigUser from the given set of identifiers and attributes.\n *\n * @param identifiers\n * @param customAttributes\n * @private\n */\n static toStatsigUser(identifiers, customAttributes) {\n const user = {\n customIDs: identifiers,\n custom: customAttributes\n };\n if (identifiers.atlassianAccountId) {\n user.userID = identifiers.atlassianAccountId;\n }\n return user;\n }\n /**\n * This method updates the user for this client with the bootstrap values returned from a given Promise.\n *\n * @param identifiers\n * @param customAttributes\n * @param initializeValuesPromise\n * @private\n */\n static async updateUserUsingInitializeValuesProducer(getInitializeValues, identifiers, customAttributes) {\n if (!FeatureGates.initPromise) {\n throw new Error('The FeatureGates client must be initialized before you can update the user.');\n }\n // If the user isn't changing at all, then exit immediately\n if (FeatureGates.isCurrentUser(identifiers, customAttributes)) {\n return FeatureGates.initPromise;\n }\n // Wait for the current initialize/update to finish\n const originalInitPromise = FeatureGates.initPromise;\n try {\n await FeatureGates.initPromise;\n }\n catch (err) {\n // Proceed with the user update even if the init failed, since this update\n // may put the client back into a valid state.\n }\n const initializeValuesPromise = getInitializeValues();\n const updateUserPromise = FeatureGates.updateStatsigClientUser(initializeValuesPromise, identifiers, customAttributes);\n // We replace the init promise here since we are essentially re-initializing the client at this point.\n // Any subsequent calls to await FeatureGates.initialize() or FeatureGates.updateUser() will now also await this user update.\n FeatureGates.initPromise = updateUserPromise.catch(() => {\n // If the update failed then it changed nothing, so revert back to the original promise.\n FeatureGates.initPromise = originalInitPromise;\n });\n return updateUserPromise;\n }\n /**\n * This method updates the user on the nested Statsig client\n *\n * @param identifiers\n * @param customAttributes\n * @param initializeValuesPromise\n * @private\n */\n static async updateStatsigClientUser(initializeValuesPromise, identifiers, customAttributes) {\n var _a, _b;\n let initializeValues, user;\n try {\n initializeValues = await initializeValuesPromise;\n user = FeatureGates.toStatsigUser(identifiers, customAttributes);\n }\n catch (err) {\n // Make sure the updateUserCompletionCallback is called for any errors in our custom code.\n // This is not necessary for the updateUserWithValues call, because the Statsig client will already invoke the callback itself.\n const errMsg = err instanceof Error ? err.message : JSON.stringify(err);\n (_b = (_a = FeatureGates.initOptions).updateUserCompletionCallback) === null || _b === void 0 ? void 0 : _b.call(_a, false, errMsg);\n throw err;\n }\n const success = statsig_js_lite_1.default.updateUserWithValues(user, initializeValues);\n if (success) {\n FeatureGates.currentIdentifiers = identifiers;\n FeatureGates.currentAttributes = customAttributes;\n }\n else {\n throw new Error('Failed to update user. An unexpected error occured.');\n }\n }\n /**\n * This method transforms the options given by the user into the format accepted by the Statsig client.\n *\n * @param options\n * @private\n */\n static toStatsigOptions(options, initializeValues) {\n const { \n // De-structured to remove from restClientOptions\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n sdkKey, \n // De-structured to remove from restClientOptions\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updateUserCompletionCallback } = options, restClientOptions = __rest(options, [\"sdkKey\", \"updateUserCompletionCallback\"]);\n return Object.assign(Object.assign(Object.assign({}, restClientOptions), { initializeValues, environment: {\n tier: options.environment\n }, disableCurrentPageLogging: true }), (options.updateUserCompletionCallback && {\n updateUserCompletionCallback: FeatureGates.toStatsigUpdateUserCompletionCallback(options.updateUserCompletionCallback)\n }));\n }\n /**\n * This method transforms an UpdateUserCompletionCallback in our own format into the format accepted by the Statsig client.\n *\n * @param callback\n * @private\n */\n static toStatsigUpdateUserCompletionCallback(callback) {\n /**\n * The duration passed to the callback indicates how long the update took, but it is deceptive since it only times the\n * Statsig code and doesn't account for all of the extra custom work we do to obtain the bootstrap values.\n * As a result, we just suppress this parameter in our own callback rather than trying to keep it accurate.\n */\n return (_duration, success, message) => {\n callback(success, message);\n };\n }\n static isCurrentUser(identifiers, customAttributes) {\n return (FeatureGates.shallowEquals(FeatureGates.currentIdentifiers, identifiers) &&\n FeatureGates.shallowEquals(FeatureGates.currentAttributes, customAttributes));\n }\n static shallowEquals(objectA, objectB) {\n if (!objectA && !objectB) {\n return true;\n }\n if (!objectA || !objectB) {\n return false;\n }\n const aEntries = Object.entries(objectA);\n const bEntries = Object.entries(objectB);\n if (aEntries.length !== bEntries.length) {\n return false;\n }\n const ascendingKeyOrder = ([key1], [key2]) => key1.localeCompare(key2);\n aEntries.sort(ascendingKeyOrder);\n bEntries.sort(ascendingKeyOrder);\n for (let i = 0; i < aEntries.length; i++) {\n const [, aValue] = aEntries[i];\n const [, bValue] = bEntries[i];\n if (aValue !== bValue) {\n return false;\n }\n }\n return true;\n }\n}\nFeatureGates.initPromise = null;\nFeatureGates.initCompleted = false;\nFeatureGates.hasGetExperimentErrorOccurred = false;\nFeatureGates.hasGetExperimentValueErrorOccurred = false;\nexports.default = FeatureGates;\n// This makes it possible to get a reference to the FeatureGates client at runtime.\n// This is important for overriding values in Cyprus tests, as there needs to be a\n// way to get the exact instance for a window in order to mock some of its methods.\nif (window !== undefined) {\n window.__FEATUREGATES_JS__ = FeatureGates;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FeatureGateEnvironment = exports.FilterTags = void 0;\n/**\n * The intersection of Filter Tags will be used to filter appropriate feature gates and experiments\n */\nvar FilterTags;\n(function (FilterTags) {\n FilterTags[\"Frontend\"] = \"frontend\";\n FilterTags[\"Backend\"] = \"backend\";\n})(FilterTags || (exports.FilterTags = FilterTags = {}));\nvar FeatureGateEnvironment;\n(function (FeatureGateEnvironment) {\n FeatureGateEnvironment[\"Development\"] = \"development\";\n FeatureGateEnvironment[\"Staging\"] = \"staging\";\n FeatureGateEnvironment[\"Production\"] = \"production\";\n})(FeatureGateEnvironment || (exports.FeatureGateEnvironment = FeatureGateEnvironment = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CLIENT_VERSION = void 0;\nexports.CLIENT_VERSION = \"4.1.0\";\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FeatureGatesInitialization = void 0;\nconst react_1 = require(\"react\");\nconst feature_gate_js_client_1 = __importDefault(require(\"@atlassian/feature-gate-js-client\"));\nconst utils_1 = require(\"./utils\");\n/**\n * This component initializes the @atlassian/feature-flag-js-client by fetching the gate and experiment\n * evaluations for the given user, and blocks rendering of the children until the rendering is complete.\n */\nconst FeatureGatesInitialization = ({ children, enabled = true, identifiers, customAttributes, options, initializingComponent, onReady }) => {\n const [isInitialized, setInitialized] = (0, react_1.useState)(false);\n // Use a ref for the options, so that we can use them within the following useEffect\n // without adding options as a dependency.\n // This avoids the user updating every time an option is changed.\n const optionsRef = (0, react_1.useRef)(options);\n (0, react_1.useEffect)(() => {\n optionsRef.current = options;\n }, [options]);\n (0, react_1.useEffect)(() => {\n if (enabled) {\n setInitialized(false);\n const initPromise = feature_gate_js_client_1.default.initializeCalled()\n ? feature_gate_js_client_1.default.updateUser(optionsRef.current, identifiers, customAttributes)\n : feature_gate_js_client_1.default.initialize(optionsRef.current, identifiers, customAttributes);\n void initPromise\n .catch((err) => (0, utils_1.toError)(err))\n .then((err) => {\n setInitialized(true);\n onReady === null || onReady === void 0 ? void 0 : onReady(err || undefined);\n });\n }\n else {\n setInitialized(true);\n onReady === null || onReady === void 0 ? void 0 : onReady();\n }\n }, [enabled, identifiers, customAttributes]);\n return (0, utils_1.pickChildToRender)(enabled, isInitialized, children, initializingComponent);\n};\nexports.FeatureGatesInitialization = FeatureGatesInitialization;\nexports.default = exports.FeatureGatesInitialization;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FeatureGatesInitializationWithDefaults = void 0;\nconst react_1 = require(\"react\");\nconst feature_gate_js_client_1 = __importDefault(require(\"@atlassian/feature-gate-js-client\"));\nconst utils_1 = require(\"./utils\");\n/**\n * This component initializes the @atlassian/feature-flag-js-client by fetching the gate and experiment\n * evaluations for the given user, and blocks rendering of the children until the rendering is complete.\n */\nconst FeatureGatesInitializationWithDefaults = ({ children, enabled = true, identifiers, customAttributes, options, onReady }) => {\n const [isInitialized, setInitialized] = (0, react_1.useState)(false);\n // Use a ref for the options, so that we can use them within the following useEffect\n // without adding options as a dependency.\n // This avoids the user updating every time an option is changed.\n const optionsRef = (0, react_1.useRef)(options);\n (0, react_1.useEffect)(() => {\n optionsRef.current = options;\n }, [options]);\n (0, react_1.useEffect)(() => {\n if (enabled) {\n setInitialized(false);\n const initPromise = feature_gate_js_client_1.default.initializeCalled()\n ? feature_gate_js_client_1.default.updateUserWithValues(identifiers, customAttributes)\n : feature_gate_js_client_1.default.initializeFromValues(Object.assign({ sdkKey: 'client-default-key' }, (optionsRef.current || {})), identifiers, customAttributes);\n void initPromise\n .catch((err) => (0, utils_1.toError)(err))\n .then((err) => {\n setInitialized(true);\n onReady === null || onReady === void 0 ? void 0 : onReady(err || undefined);\n });\n }\n else {\n setInitialized(true);\n onReady === null || onReady === void 0 ? void 0 : onReady();\n }\n }, [enabled, identifiers, customAttributes]);\n return (0, utils_1.pickChildToRender)(enabled, isInitialized, children);\n};\nexports.FeatureGatesInitializationWithDefaults = FeatureGatesInitializationWithDefaults;\nexports.default = exports.FeatureGatesInitializationWithDefaults;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FeatureGatesInitializationWithValues = void 0;\nconst react_1 = require(\"react\");\nconst feature_gate_js_client_1 = __importDefault(require(\"@atlassian/feature-gate-js-client\"));\nconst utils_1 = require(\"./utils\");\n/**\n * This component initializes the @atlassian/feature-flag-js-client by fetching the gate and experiment\n * evaluations for the given user, and blocks rendering of the children until the rendering is complete.\n */\nconst FeatureGatesInitializationWithValues = ({ children, enabled = true, identifiers, customAttributes, options, initializeValues, onReady }) => {\n const [isInitialized, setInitialized] = (0, react_1.useState)(false);\n // Use a ref for the options, so that we can use them within the following useEffect\n // without adding options as a dependency.\n // This avoids the user updating every time an option is changed.\n const optionsRef = (0, react_1.useRef)(options);\n (0, react_1.useEffect)(() => {\n optionsRef.current = options;\n }, [options]);\n (0, react_1.useEffect)(() => {\n if (enabled) {\n setInitialized(false);\n const initPromise = feature_gate_js_client_1.default.initializeCalled()\n ? feature_gate_js_client_1.default.updateUserWithValues(identifiers, customAttributes, initializeValues)\n : feature_gate_js_client_1.default.initializeFromValues(optionsRef.current, identifiers, customAttributes, initializeValues);\n void initPromise\n .catch((err) => (0, utils_1.toError)(err))\n .then((err) => {\n setInitialized(true);\n onReady === null || onReady === void 0 ? void 0 : onReady(err || undefined);\n });\n }\n else {\n setInitialized(true);\n onReady === null || onReady === void 0 ? void 0 : onReady();\n }\n }, [enabled, identifiers, customAttributes, initializeValues]);\n return (0, utils_1.pickChildToRender)(enabled, isInitialized, children);\n};\nexports.FeatureGatesInitializationWithValues = FeatureGatesInitializationWithValues;\nexports.default = exports.FeatureGatesInitializationWithValues;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./FeatureGatesInitialization\"), exports);\n__exportStar(require(\"./FeatureGatesInitializationWithDefaults\"), exports);\n__exportStar(require(\"./FeatureGatesInitializationWithValues\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toError = exports.pickChildToRender = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nfunction pickChildToRender(enabled, isInitialized, children, initializingComponent) {\n if (!enabled || isInitialized) {\n return react_1.default.createElement(react_1.default.Fragment, null, children);\n }\n if (initializingComponent != null) {\n return react_1.default.createElement(react_1.default.Fragment, null, initializingComponent);\n }\n return null;\n}\nexports.pickChildToRender = pickChildToRender;\nfunction toError(err) {\n if (err instanceof Error) {\n return err;\n }\n return new Error(err === null || err === void 0 ? void 0 : err.toString());\n}\nexports.toError = toError;\n"],"names":["Object","defineProperty","exports","value","DynamicConfig","configName","configValue","ruleID","evaluationDetails","secondaryExposures","allocatedExperimentName","onDefaultValueFallback","this","_onDefaultValueFallback","JSON","parse","stringify","_name","_ruleID","_secondaryExposures","_allocatedExperimentName","_evaluationDetails","prototype","get","key","defaultValue","typeGuard","_a","_b","val","getValue","expectedType","Array","isArray","actualType","call","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","Symbol","iterator","n","v","op","TypeError","pop","length","push","ExceptionEndpoint","Errors_1","ErrorBoundary","sdkKey","_seen","Set","_sdkKey","_setStatsigMetadata","statsigMetadata","_statsigMetadata","_swallow","tag","task","_capture","recover","getExtraData","_this","catch","_onCaught","error","_logError","extra","unwrapped","isError","name","info","metadata","_c","Error","has","add","stack","_getDescription","exception","fetch","method","headers","String","concat","_error","StatsigUninitializedError","StatsigInvalidArgumentError","console","obj","extendStatics","StatsigErrorMessage","__extends","d","b","setPrototypeOf","__proto__","p","hasOwnProperty","__","constructor","create","_super","message","REQUIRE_SYNC_INITIALIZE","Layer","layerValue","logParameterFunction","undelegatedSecondaryExposures","explicitParameters","_logParameterFunction","_value","_undelegatedSecondaryExposures","_explicitParameters","_create","logAndReturn","_logLayerParameterExposure","undefined","parameterName","__importDefault","mod","__esModule","saveOverridesToLocalStorage","loadOverridesFromLocalStorage","makeEmptyOverrides","STORAGE_KEY","StatsigLocalStorage_1","gates","configs","layers","raw","default","getItem","overrides","setItem","__assign","assign","s","i","arguments","eventName","user","logUser","privateAttributes","time","Date","now","version","__createBinding","o","m","k","k2","desc","getOwnPropertyDescriptor","writable","configurable","enumerable","__setModuleDefault","__importStar","DynamicConfig_1","ErrorBoundary_1","Layer_1","StatsigIdentity_1","StatsigLogger_1","StatsigNetwork_1","StatsigSDKOptions_1","StatsigStore_1","Timing_1","LogEvent_1","LocalOverrides_1","StatsigClient","options","_initCalled","_pendingInitPromise","_logLayerParameterExposureForLayer","layer","isManualExposure","allocatedExperiment","exposures","isExplicit","includes","_logger","logLayerExposure","_identity","_user","localMode","startsWith","_startTime","_errorBoundary","_ready","_options","disabled","disableLocalStorage","_overrides","_normalizeUser","overrideStableID","_network","_store","logConfigDefaultValueFallback","initializeValues","setTimeout","_delayedSetup","setInitializeValues","bootstrap","sendSavedRequests","initializeAsync","_fetchAndSaveValues","initTimeoutMs","success","finally","getEvaluationDetails","getGlobalEvaluationDetails","reason","EvaluationReason","checkGate","gateName","_checkGateImpl","checkGateWithExposureLoggingDisabled","logGateExposure","_logGateExposureImpl","getConfig","_getConfigImpl","getConfigWithExposureLoggingDisabled","logConfigExposure","_logConfigExposureImpl","getExperiment","experimentName","getExperimentWithExposureLoggingDisabled","logExperimentExposure","getLayer","layerName","_getLayerImpl","getLayerWithExposureLoggingDisabled","logLayerParameterExposure","_getLayerFromStore","logEvent","REQUIRE_INITIALIZE_FOR_LOG_EVENT","event","log","updateUserWithValues","values","fireCompletionCallback","updateStartTime","initializeCalled","REQUIRE_ASYNC_INITIALIZE","cb","updateUserCompletionCallback","updateUser","currentUser","resetDedupeKeys","shutdown","getStableID","stableID","overrideGate","gate","_setOverride","overrideConfig","config","overrideLayer","setOverrides","getOverrides","saveStableID","userCopy","environment","statsigEnvironment","_ensureStoreLoaded","isLoaded","_getEvaluationDetailsForError","timeout","sinceTime","previousDerivedFields","getLastUpdateTime","getPreviousDerivedFields","fetchValues","eventually","json","has_updates","save","is_no_content","setEvaluationReason","NetworkNotModified","callsite","_getGateFromStore","fetchResult","rule_id","secondary_exposures","LocalOverride","_getConfigFromStore","_getEmptyConfig","localConfig","logFunc","type","Constants_1","Hashing_1","SDKVersion_1","Identity","_sdkType","_sdkVersion","STATSIG_STABLE_ID_KEY","_getUUID","sdkType","sdkVersion","getUserCacheKey","uuid","randomDigit","Math","random","toString","INTERNAL_EVENT_PREFIX","CONFIG_EXPOSURE_EVENT","LAYER_EXPOSURE_EVENT","GATE_EXPOSURE_EVENT","LOG_FAILURE_EVENT","DEFAULT_VALUE_WARNING","MAX_LOCAL_STORAGE_SIZE","StatsigLogger","identity","network","errorBoundary","_failedLogEventCount","defaultValueEvent","_loggedErrors","_queue","_flushInterval","_failedLogEvents","_exposureDedupeKeys","_init","disableCurrentPageLogging","window","location","href","parts","split","currentPage","_e","loggingBufferMaxSize","flush","gateValue","details","dedupeKey","_shouldLogExposure","gateExposure","configExposure","isExplicitParameter","join","clearInterval","isClosing","oldQueue","supportsKeepalive","navigator","sendBeacon","sendLogBeacon","events","_addFailedRequest","_saveFailedRequests","processor","postToEndpoint","StatsigEndpoint","Rgstr","response","ok","text","errorText","eventCount","_newFailedRequest","failedRequests","fireAndForget","requestBodies","_loop_1","this_1","_i","requestBodies_1","requestBody","STATSIG_LOCAL_STORAGE_LOGGING_REQUEST_KEY","_clearLocalStorageRequests","status","addEventListener","document","visibilityState","ignoreWindowUndefined","me","setInterval","loggingIntervalMillis","lastTime","requestsCopy","additionalEvents","removeItem","queue","StatsigNetwork","retryCodes","canUseKeepalive","leakyBucket","input","hash","_postWithTimeout","Initialize","payload","url","URL","eventLoggingApi","LogEventBeacon","searchParams","append","clientTime","stringPayload","endpointName","retries","backoff","useKeepalive","api","counter","postBody","params","keepalive","res","networkResponse","data","max","disableNetworkKeepalive","Request","hasTimedOut","timer","cachedReturnValue","eventuals","boundScope","fetchPromise","_getErrorData","forEach","fn","racingPromise","race","headers_1","responseInfo","statusText","redirected","bodySnippet","slice","requestInfo","INIT_TIMEOUT_DEFAULT_MS","StatsigSDKOptions","_d","_f","_g","_h","_j","_k","_l","_m","_o","_p","endsWith","normalizeNumberInput","min","disableErrorLogging","disableAutoMetricsLogging","bounds","BootstrapValidator_1","StatsigStore","_userCacheKey","_values","_userValues","_getDefaultUserCacheValues","_loaded","_reason","Uninitialized","_loadFromLocalStorage","_setUserValueFromCache","isValid","Bootstrap","InvalidBootstrap","feature_gates","dynamic_configs","layer_configs","evaluation_time","userHash","djb2HashForObject","user_hash","derived_fields","evalReason","jsonConfigs","updateState","requestedUserCacheKey","initResponse","userValues","_mergeInitializeResponseIntoUserMap","Network","_writeValuesToStorage","gateNameHash","getHashValue","_getEvaluationDetails","configNameHash","rawConfigValue","_createDynamicConfig","latestValue","_getLatestValue","undelegated_secondary_exposures","allocated_experiment_name","explicit_parameters","_parseCachedValues","INTERNAL_STORE_KEY","allValues","_removeFromStorage","cachedValues","_resetUserValues","Cache","configMap","mergeFn","requestedUserValues","_convertAPIDataToCacheValues","valuesToWrite","filteredValues","entries","sort","a","fromEntries","topLevelKey","apiConfig","_makeOnConfigDefaultValueFallback","valueExists","reasonOverride","Unrecognized","cacheKey","isNaN","parameter","defaultValueType","valueType","StatsigClient_1","StatsigStore_2","Statsig","initialize","inst","instance","_getClientX","manuallyLogGateExposure","manuallyLogConfigExposure","manuallyLogExperimentExposure","manuallyLogLayerParameterExposure","BootstrapValidator","evaluatedKeys","evaluatedKeysRecord","copyObject","userToCompare","validate","one","two","copy","userID","customIDs","keys","LOCAL_STORAGE_KEYS","SimpleHash","charCodeAt","getSortedObject","object","sortedObject","StatsigLocalStorage","isStorageAccessible","localStorage","fallbackSessionCache","ignoreDisabledOption","canAccessStorageAccessible","Storage","canAccess","performance","difference","FeatureGateWrapper","_ref","_storage$getCookie","children","atlassianAccountId","storage","replace","React","FeatureGatesInitialization","apiKey","FeatureGateEnvironment","targetApp","identifiers","CartBtnInner","FeatureGates","errors_1","types_1","version_1","Fetcher","static","fetcherOptions","fetchRequest","customAttributes","ResponseError","serviceEnv","useGatewayUrl","Development","Staging","path","baseUrl","getBaseUrl","useGatewayURL","fetchTimeout","fetchTimeoutMs","abortSignal","AbortSignal","AbortController","abortController","signal","abort","CLIENT_VERSION","handleResponseError","extractResponseBody","super","Fetcher_1","__exportStar","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","statsig_js_lite_1","statsig_js_lite_2","fetcher_1","DEFAULT_CLIENT_KEY","clientOptions","initPromise","warn","initOptions","init","initCompleted","initFromValues","fetchOptions","updateUserUsingInitializeValuesProducer","fetchExperimentValues","experimentValues","defaultOptions","fireExperimentExposure","bind","hasGetExperimentErrorOccurred","msg","experiment","hasGetExperimentValueErrorOccurred","fromValuesClientOptions","clientSdkKeyPromise","fetchClientSdk","clientSdkKey","experimentValuesPromise","experimentValuesResult","all","toStatsigUser","currentIdentifiers","currentAttributes","statsigOptions","toStatsigOptions","custom","getInitializeValues","isCurrentUser","originalInitPromise","err","initializeValuesPromise","updateUserPromise","updateStatsigClientUser","errMsg","restClientOptions","tier","toStatsigUpdateUserCompletionCallback","callback","_duration","shallowEquals","objectA","objectB","aEntries","bEntries","ascendingKeyOrder","key1","key2","localeCompare","aValue","bValue","__FEATUREGATES_JS__","FilterTags","react_1","feature_gate_js_client_1","utils_1","enabled","initializingComponent","onReady","isInitialized","setInitialized","useState","optionsRef","useRef","useEffect","current","toError","pickChildToRender","FeatureGatesInitializationWithDefaults","initializeFromValues","FeatureGatesInitializationWithValues","createElement","Fragment"],"sourceRoot":""}