{"version":3,"file":"js/lib-stats-50d695cef810c1a0d529.js","mappings":";gjDAEA,IAAQA,EAAiCC,KAAjCD,IAAKE,EAA4BD,KAA5BC,IAAKC,EAAuBF,KAAvBE,IAAKC,EAAkBH,KAAlBG,IAAKC,EAAaJ,KAAbI,KAAMC,EAAOL,KAAPK,GAG5BC,GAFQF,EAAK,EAAIC,GAET,OACRE,EAAqB,CAAC,IAAK,IAAK,GAAI,GAAI,GAAI,GAC5CC,EAAS,CACb,IAAK,MACL,IAAK,MACL,GAAI,KACJ,GAAI,KACJ,GAAI,MACJ,EAAG,OAGCC,EAAY,CAChBF,mBAAAA,EACAG,iBAAkBH,EAAmBI,KAAI,SAACC,EAAGC,GAAC,OAAK,EAAIN,EAAmBM,GAAK,GAAI,IACnFL,OAAAA,GAIIM,EAAa,SAAAC,GACjB,IAAMC,EAAID,EAAKX,EAAK,GACda,EAAI,GAAK,EAAI,SAAYlB,EAAIiB,IAQnC,MAAQ,IAAU,GADLA,EAAI,GAAK,EAAI,IADd,MADD,YACcC,EAFb,aAEuBA,EAHxB,aAGkCA,EAJjC,YAI2CA,EAL5C,YAKsDA,EAAIhB,GAAKe,EAAIA,IAGhF,EAqCME,EAAU,SAAAC,GACd,IAMIC,EACAC,EAPAC,EAAI,EACFC,EAAM,CACV,mBAAoB,kBAAmB,mBAAoB,kBAAmB,qBAC7E,mBAECC,EAAM,kBAGNC,GAAOJ,EAAID,EAAKD,GAAK,IAEzB,IADAM,IAAQL,EAAK,IAAOlB,EAAIuB,GACjBH,EAAI,EAAGA,IAAKE,GAAOD,EAAID,KAAOD,EACrC,OAAOnB,EAAK,mBAAqBsB,EAAOJ,GAAMK,CAChD,EAEMC,EAAS,SAACP,EAAGQ,EAAGC,GACpB,IAMIC,EACAC,EACAC,EACAC,EATAC,EAAI,EACFC,EAAMP,EAAIC,EACVO,EAAMR,EAAI,EACVS,EAAMT,EAAI,EACZU,EAAI,EACJC,EAAI,EAAKJ,EAAMf,EAAKgB,EAWxB,IAJIpC,EAAIuC,GAAKhC,IAAOgC,EAAIhC,GAExB0B,EADAM,EAAI,EAAIA,EAGDL,GAAK,MAKNlC,EADJuC,EAAI,GAFJR,EAAMG,GAAKL,EAAIK,GAAKd,IAAOiB,GAD3BP,EAAK,EAAII,KAC+BN,EAAIE,KAE/BS,GACAhC,IAAOgC,EAAIhC,GAEpBP,EADJsC,EAAI,EAAIP,EAAKO,GACA/B,IAAO+B,EAAI/B,GAExB0B,IADAM,EAAI,EAAIA,GACCD,EAILtC,EADJuC,EAAI,GAFJR,IAAQH,EAAIM,IAAMC,EAAMD,GAAKd,IAAOQ,EAAIE,IAAOM,EAAMN,KAExCS,GACAhC,IAAOgC,EAAIhC,GAEpBP,EADJsC,EAAI,EAAIP,EAAKO,GACA/B,IAAO+B,EAAI/B,GAGxB0B,GADAD,GADAO,EAAI,EAAIA,GACED,IAENtC,EAAIgC,EAAM,GAAK,OAnBJE,KAsBjB,OAAOD,CACT,EAEMO,EAAQ,SAACpB,EAAGQ,EAAGC,GAGnB,IAAMY,EAAK,IAAMrB,GAAK,IAAMA,EAAI,EAAIlB,EAAIiB,EAAQS,EAAIC,GAAKV,EAAQS,GAAKT,EAAQU,GAAKD,EAAIzB,EAAIiB,GAAKS,EAAI1B,EAAI,EAAIiB,IAC5G,QAAI,EAAIA,GAAK,EAAIA,KACbA,GAAKQ,EAAI,IAAMA,EAAIC,EAAI,GAEjBY,EAAKd,EAAOP,EAAGQ,EAAGC,GAAMD,EAE3B,EAAKa,EAAKd,EAAO,EAAIP,EAAGS,EAAGD,GAAMC,EAC1C,EAiDMa,EA/CW,SAACC,EAAGf,EAAGC,GAEtB,IAGIe,EACAC,EAEA3B,EACA4B,EAEA1B,EACA2B,EACAd,EACAe,EAZEC,EAAKrB,EAAI,EACTsB,EAAKrB,EAAI,EACXN,EAAI,EAWR,GAAIoB,GAAK,EAAG,OAAO,EACnB,GAAIA,GAAK,EAAG,OAAO,EACff,GAAK,GAAKC,GAAK,GAGjBT,GAAK,QAAc,QADnBF,EAAIb,GAAM,EAAIF,EADTwC,EAAI,GAAMA,EAAI,EAAIA,OAEQ,EAAIzB,GAAK,OAAc,OAAJA,IAAgBA,EAC9DyB,EAAI,KAAKvB,GAAKA,GAGlB4B,EAAK5B,EAAIf,GAFT0C,GAAM3B,EAAIA,EAAI,GAAK,IACnBa,EAAI,GAAK,GAAK,EAAIL,EAAI,GAAK,GAAK,EAAIC,EAAI,MACfI,GAAK,GAAK,EAAIJ,EAAI,GAAK,GAAK,EAAID,EAAI,KAAOmB,EAAK,EAAI,EAAI,GAAK,EAAId,IAC1Fb,EAAIQ,GAAKA,EAAIC,EAAI3B,EAAI,EAAI8C,MAEzBJ,EAAMzC,EAAIyB,GAAKA,EAAIC,IACnBgB,EAAM1C,EAAI0B,GAAKD,EAAIC,IAInBT,EAAIuB,GAHJzB,EAAIhB,EAAI0B,EAAIgB,GAAOhB,IAEnBoB,EAAI9B,GADJ4B,EAAI5C,EAAI2B,EAAIgB,GAAOhB,IAEHzB,EAAIwB,EAAIoB,EAAIL,EAAG,EAAIf,GAAK,EAAIxB,EAAIyB,EAAImB,GAAK,EAAIL,GAAI,EAAId,IAGvE,IADA,IAAMsB,GAAQhC,EAAQS,GAAKT,EAAQU,GAAKV,EAAQS,EAAIC,GAC7CN,EAAI,GAAIA,IAAK,CAClB,GAAI,IAAMH,GAAK,IAAMA,EAAG,OAAOA,EAO/B,IAHAA,GAAKF,GADL4B,GAFMN,EAAMpB,EAAGQ,EAAGC,GAAKc,IACvBzB,EAAIhB,EAAI+C,EAAK9C,EAAIiB,GAAK8B,EAAK/C,EAAI,EAAIiB,GAAK+B,MAE1B,EAAI,GAAMlD,KAAKmD,IAAI,EAAGN,GAAKG,EAAK7B,EAAI8B,GAAM,EAAI9B,QACnD,IAAGA,EAAI,IAAOA,EAAIF,IACvBE,GAAK,IAAGA,EAAI,IAAOA,EAAIF,EAAI,IAC3BlB,EAAIkB,GAnLA,KAmLWE,GAAKG,EAAI,EAAG,KACjC,CACA,OAAOH,CACT,EAGMiC,EAAS,SAACC,EAAGC,EAAGC,GAQpB,IAPA,IAMIC,EANAC,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EAEF/D,GAAK4D,EAAKG,GAAMH,GAAM,MAC3BG,EAAKH,EAGLD,EAAKE,GAFLJ,IAAQF,EAAIO,IAAOP,EAAIC,EAAIM,GAAMR,GAAMC,EAAI,EAAIO,IAAOP,EAAI,EAAIO,EAAK,IAEpDH,EAGfC,GAJAF,EAAKE,EAAKH,EAAKC,IAGfD,GADAK,GAAU,IACEN,EAAIM,GAAMR,GAAMC,EAAI,EAAIO,EAAK,IAAMP,EAAI,EAAIO,IACxCF,EAEfF,GADAG,EAAKF,EAAKF,EAAKI,EAEfF,GAAUE,EACVD,GAAUC,EACVA,EAAK,EAEP,OAAOD,EAAKL,CACd,EAEMS,EAAO,SAACV,EAAGW,GACf,GAAI,GAAKA,EACP,MAAM,IAAIC,MAAM,uCAElB,IAAMX,EAAIU,EAAK,EACTE,EAAIZ,EAAI,GACRa,EAAIH,GAAMA,EAAKX,EAAIA,GACnBe,EAAKnE,EAAIiB,EAAQgD,GAAKhD,EAAQ,IAAOA,EAAQoC,GAAKA,EAAIpD,EAAIiE,GAAK,GAAMjE,EAAI,EAAIiE,IAC7EE,EAAUF,GAAKb,EAAI,IAAMY,EAAI,GAAKE,EAAKhB,EAAOe,EAAGb,EAAG,IAAO,EAAIc,EAAKhB,EAAO,EAAIe,EAAG,GAAKb,GACzFgB,EAAMjB,EAAI,EAAIgB,EAAU,EAAI,EAAIA,EAAU,EAE9C,OADAC,EAAMtE,KAAKuE,MAAY,IAAND,GAAgB,GAEnC,EAEME,EAAiB,SAACC,EAAmBT,GAEzC,IAAIU,EACAC,EACAC,EACAC,EACA5D,EAAI,IACJ6D,EAAU,IACVd,EAAK,KACP/C,EAAI,EACJ6D,EAAU,GAEZ,IAAK,IAAIjE,EAAI,EAAGA,EAAI,OAClB6D,EAAQzD,EAAI6D,GACA,OACVJ,EAAQ,OAEVC,EAAS1D,EAAI6D,GACA,OACXH,EAAS,MAEXC,EAAW,GAAK,EAAIb,EAAKW,EAAOV,IAChCa,EAAY,GAAK,EAAId,EAAKY,EAAQX,IAC9BY,EAAWH,GAAqBI,EAAYJ,IAC9CxD,GAAK6D,GAEHF,GAAYH,GAAqBI,GAAaJ,IAChDxD,GAAK6D,GAEHF,EAAWH,GAAqBI,GAAaJ,IAC/CK,GAAoB,KAElBA,EAAU,OApBUjE,KAwB1B,OAAOI,CACT,EA4CM8D,EAAmB,SAACC,EAAQC,GAAsB,IAChDC,GAAc,KADuBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KACX,IAC7BG,EAAQN,EAASC,EAAQxC,GAAO,EAAIyC,GAAc,EAAG,GAAMF,EAAQ,GAAMC,EAAQD,GACjFO,EAAQN,EAAQxC,EAAM,GAAK,EAAIyC,GAAc,EAAG,GAAMF,EAAQ,GAAMC,EAAQD,GAAUA,EAC5F,MAAO,CAAChF,KAAKwF,IAAI,EAAGF,IAAU,EAAGtF,KAAKwF,IAAI,EAAGD,IAAU,EACzD,EAEME,EAAgB,SAAhBA,EAAgBC,GACpB,GAAI,OAASA,IAAQC,MAAMC,QAAQF,KAAUG,EAAAA,EAAAA,IAAGC,OAAHD,CAAWH,GAAxD,CAEA,IAAMK,EAAaD,OAAOE,KAAKxF,GAC/BsF,OAAOE,KAAKN,GAAMO,SAAQ,SAAAC,GACxB,GAAKR,EAAKQ,GAAV,CAEA,GAAIJ,OAAOK,OAAOT,EAAM,UAAYI,OAAOK,OAAOT,EAAKQ,GAAM,UAAW,CACtE,IAAMjB,EAAQS,EAAKQ,GAAKE,MAAQV,EAAKU,MAAQV,EAAKT,MAClD,GAAIA,EAAQS,EAAKQ,GAAKlB,OAAQ,OAG9B,QAAAqB,EAAA,EAAAC,EAAwBP,EAAUM,EAAAC,EAAAlB,OAAAiB,IAAE,CAA/B,IAAME,EAASD,EAAAD,GACZG,EAAMzB,EAAiBW,EAAKQ,GAAKlB,OAAQC,EAAOsB,GAOtD,GANAb,EAAKQ,GAAKZ,MAAQQ,OAAOW,OAAOf,EAAKQ,GAAKZ,OAAS,CAAC,EAACoB,EAAA,GAClDC,OAAO,IAAOJ,GAAa,CAAEvB,OAAQ4B,OAAOJ,EAAI,IAAKK,SAAUD,OAAQ,IAAMJ,EAAI,GAAMvB,MAE1FS,EAAKQ,GAAKX,MAAQO,OAAOW,OAAOf,EAAKQ,GAAKX,OAAS,CAAC,EAACmB,EAAA,GAClDC,OAAO,IAAOJ,GAAa,CAAEvB,OAAQ4B,OAAOJ,EAAI,IAAKK,SAAUD,OAAQ,IAAMJ,EAAI,GAAMvB,MAEtFS,EAAKoB,UAAW,CAClB,IAAMC,EAAUhC,EAAiBW,EAAKQ,GAAKlB,OAAQU,EAAKoB,UAAWP,GACnEb,EAAKQ,GAAKZ,MAAMqB,OAAO,IAAOJ,IAAYS,WAAaJ,OAAOG,EAAQ,IACtErB,EAAKQ,GAAKZ,MAAMqB,OAAO,IAAOJ,IAAYU,aAAeL,OAAQ,IAAMG,EAAQ,GAAMrB,EAAKoB,WAC1FpB,EAAKQ,GAAKX,MAAMoB,OAAO,IAAOJ,IAAYS,WAAaJ,OAAOG,EAAQ,IACtErB,EAAKQ,GAAKX,MAAMoB,OAAO,IAAOJ,IAAYU,aAAeL,OAAQ,IAAMG,EAAQ,GAAMrB,EAAKoB,UAC5F,CACF,CACF,CAEIhB,OAAOK,OAAOT,EAAKQ,GAAM,UAC3BT,EAAcC,EAAKQ,GA1BC,CA4BxB,GAhCqE,CAiCvE,EAYMgB,EAAuB,SAAAxB,GAE3B,IAAMK,EAAaD,OAAOE,KAAKxF,GAC/B,GAAIsF,OAAOK,OAAOT,EAAM,SAAU,CAChC,IAIkCyB,EAJ5BC,EAAWtB,OAAOE,KAAKN,GAAM2B,QAAO,SAAAC,GAAC,MAAI,QAAQC,KAAKD,EAAE,IAG9DE,ooBAAAC,CACwB1B,GAAU,QAAA2B,EAAA,WAAG,IAA1BnB,EAASY,EAAAQ,MACZC,GAAa,IAAOrB,GAAa,IACvCa,EAASnB,SAAQ,SAAAC,GACf,GAAIJ,OAAOK,OAAOT,EAAKQ,GAAM,MAAO,CAClC,IAAMjB,EAAQS,EAAKQ,GAAKE,MAAQV,EAAKU,MAAQV,EAAKT,MAClD,GAAIA,GAAS,EAAG,OAEhB,IACE,IAAM4C,EAlGmB,SAACC,EAAGC,GAAgC,IAA5BC,EAAe7C,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IACvDV,EAAoB,GAAKwD,MAAMrB,OAAOoB,IAAoB,IAAOpB,OAAOoB,IACxEE,EAAKH,EAAK3H,EAAK0H,GACf9D,EAAKhE,KAAKuE,MAAMuD,GAAK,EAG3B,OAFetD,EAAeC,EAAmBT,GAClBkE,CAEjC,CA2F0BC,CAA6BlD,EAAOS,EAAKQ,GAAK6B,GAAIH,GAChElC,EAAKQ,GAAKZ,MAAQQ,OAAOW,OAAOf,EAAKQ,GAAKZ,OAAS,CAAC,EAACoB,EAAA,GAClDC,OAAO,IAAOJ,GAAa,CAC1B6B,UAAWxB,OAAOiB,GAClBQ,WAAYzB,OACV,KACG3G,EAAIyF,EAAKQ,GAAKoC,MAAQ,EAAIrI,EAAIyF,EAAKQ,GAAKoC,MACvCrI,EAAIyF,EAAKQ,GAAKoC,IAAMT,IAAU,EAAI5H,EAAIyF,EAAKQ,GAAKoC,IAAMT,SAIhEnC,EAAKQ,GAAKX,MAAQO,OAAOW,OAAOf,EAAKQ,GAAKX,OAAS,CAAC,EAACmB,EAAA,GAClDC,OAAO,IAAOJ,GAAa,CAC1B6B,UAAWxB,OAAOiB,GAClBQ,WAAYzB,OACV,KACG3G,EAAIyF,EAAKQ,GAAKoC,IAAMT,IAAU,EAAI5H,EAAIyF,EAAKQ,GAAKoC,IAAMT,IACrD5H,EAAIyF,EAAKQ,GAAKoC,MAAQ,EAAIrI,EAAIyF,EAAKQ,GAAKoC,UAIpD,CAAE,MAAAC,UACO7C,EAAKQ,GAAKZ,aACVI,EAAKQ,GAAKX,KACnB,CACF,CACF,GACF,EAnCA,IAAAiC,EAAAgB,MAAArB,EAAAK,EAAAM,KAAAW,MAAAf,GAoCA,OAAAlB,GAAAgB,EAAAkB,EAAAlC,EAAA,SAAAgB,EAAAmB,GAAA,CACF,CACF,EAEMC,EAAoB,CAAC,KAAM,MAC3BC,EAAyB,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,OACvFC,EAAoB,SAACC,EAAMrD,GAC3BmD,EAAuBG,SAASD,GAC9BH,EAAkBI,SAASD,IAChBjD,OAAOE,KAAKN,GAAM2B,QAAO,SAAAnB,GAAG,OAAI,MAAQR,EAAKQ,IAAQJ,OAAOK,OAAOT,EAAKQ,GAAM,WAAW,IAC5F+C,MAAK,SAAA/C,GAAG,OAAIR,EAAKQ,GAAe,SAAI,GAAG,KAIjDT,EAAcC,GAEP,OAASqD,GAClB7B,EAAqBxB,EAEzB,EACMwD,EAAa,WACjB,IADkD,IAcjDC,EAdiBC,EAASjE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAIkE,EAAKlE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAACmE,EAAA,WACO,IAADC,EAAAC,EAAAC,GAAtCC,GAAsCP,EAAAQ,EAAAJ,EAAA,IAApC,GAAEK,EAAMT,EAAA,GACdU,EAAWT,EAAUU,MAAK,SAAAC,GAAC,OAAM,EAAIA,EAAEC,UAAa,IAAGD,EAAEC,YAAeD,EAAEL,KAAOA,CAAE,IACzF,IAAKG,IAAaD,EAAO,OAAD,EAExB,GAAI9D,OAAOK,OAAO0D,EAAU,WAAa,MAAQA,EAASI,OACxDJ,EAASI,OAAOhE,SAAQ,SAAArE,QACNyD,GAAZzD,EAAEsI,QAAuB,GAAQtI,EAAEsI,OAAOC,cAC9CrB,EAAkBlH,EAAEwI,SAAWxI,EAAEyI,QAASzI,EAAE0I,MAAQ1I,EAAE0I,KAAKlF,QAASmF,EAAAA,EAAAA,IAAM3I,EAAE0I,KAAMV,GAAUA,EAC9F,QACK,CACL,IAAMb,EAAOc,EAASO,SAAWP,EAASd,KAC1CD,EAAkBC,EAAMa,EAC1B,CACF,EAbAH,EAAA,EAAAD,EAA2B1D,OAAO0E,QAAQnB,GAAMI,EAAAD,EAAApE,OAAAqE,IAAAH,GAclD,EAEMmB,EAAmB,SAAA/E,GACvBI,OAAOE,KAAKN,GAAMO,SAAQ,SAAAC,GACpB,MAAQR,EAAKQ,IAAQ,iBAAmBR,EAAKQ,IAAQ,MAAQA,EAAIwE,MAAM,aAC3EhF,EAAKQ,GAAKlB,OAASU,EAAKQ,GAAKlB,QAAU,EACvCU,EAAKQ,GAAKW,SAAWnB,EAAKQ,GAAKW,UAAY,EAC7C,IAEA,IAAMC,EAAYhB,OAAOE,KAAKN,GAAMiF,QAAO,SAACC,EAAM1E,GAChD,OAAI,MAAQR,EAAKQ,IAAQ,iBAAmBR,EAAKQ,IAAQ,MAAQA,EAAIwE,MAAM,WAAmBE,EACvFA,GAAQlF,EAAKQ,GAAKlB,QAAU,EACrC,GAAG,GACHU,EAAKoB,UAAYA,EAEjBhB,OAAOE,KAAKN,GAAMO,SAAQ,SAAAC,GACpB,MAAQR,EAAKQ,IAAQ,iBAAmBR,EAAKQ,IAAQ,MAAQA,EAAIwE,MAAM,aAC3EhF,EAAKQ,GAAKe,aAAe4D,YAAa,IAAMnF,EAAKQ,GAAKlB,OAAU8B,GAAa,GAAGgE,QAAQ,IAC1F,GACF,EAEMC,EAAyB,SAAChC,EAAMsB,GAA0B,IAAjBT,EAAMzE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EACnD,CAAC,KAAM,KAAM,MAAO,OAAO6D,SAASD,IACtC0B,EAAiBb,GAEf,MAAQb,GAAQ,WAAasB,GAC/BvE,OAAOE,KAAK4D,GAAQ3D,SAAQ,SAAAC,GACtB,MAAQ0D,EAAO1D,IAAQ,iBAAmB0D,EAAO1D,IAAQ,MAAQA,EAAIwE,MAAM,YAC/ED,EAAiBb,EAAO1D,GAC1B,GAEJ,EA6CM8E,EAAkB,SAACC,EAAUC,EAAkBC,EAAoBC,GACvE,IAAMC,EAAeJ,EAASE,GAGxBG,EA9Bc,SAACC,EAAcL,EAAkBM,EAAYJ,GAKjE,IAJA,IAAMC,EAAeE,EAAaC,GAC9BC,EAAY,GAEVC,EAAsBR,EAAiBS,QAAQH,GAC5CI,EAAKF,EAAqBE,GAAM,KACtBL,EAAaL,EAAiBU,IAAKzK,EAAIkK,EAAalK,EACtDiK,GAF2BQ,IAKxCH,EAAUI,KAAKX,EAAiBU,IAGpCH,EAAYA,EAAUK,UAEtB,IAAK,IAAIF,EAAKF,EAAsB,EAAGE,EAAKV,EAAiB9F,UACvDmG,EAAaL,EAAiBU,IAAKzK,EAAIkK,EAAalK,EAAIiK,GADOQ,IAIjEH,EAAUI,KAAKX,EAAiBU,IAIpC,OAAOH,CACT,CAM2BM,CAAcd,EAAUC,EAAkBC,EAAoBC,GAQvF,OANuBE,EAAiBjE,QACtC,SAAA2E,GAAM,OACJhM,KAAKI,KAAKJ,KAAKG,IAAI8K,EAASe,GAAQ7K,EAAIkK,EAAalK,EAAG,GAAKnB,KAAKG,IAAI8K,EAASe,GAAQ3K,EAAIgK,EAAahK,EAAG,KAC3G+J,CAAS,GAIf,EAsCA,KACEa,aA/FmB,WACnB,IADoD,IAanDC,EAbmB9C,EAASjE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAIkE,EAAKlE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAACgH,EAAA,WACK,IAADC,EAAAC,EAAAC,GAAtC5C,GAAsCwC,EAAAvC,EAAAyC,EAAA,IAApC,GAAExC,EAAMsC,EAAA,GACdrC,EAAWT,EAAUU,MAAK,SAAAC,GAAC,OAAM,EAAIA,EAAEC,UAAa,IAAGD,EAAEC,YAAeD,EAAEL,KAAOA,CAAE,IACzF,IAAKG,IAAaD,EAAO,OAAD,EAExB,GAAI9D,OAAOK,OAAO0D,EAAU,WAAa,OAASA,EAASI,OACzDJ,EAASI,OAAOhE,SAAQ,SAAArE,GAAC,OACvBmJ,EAAuBnJ,EAAEwI,SAAWxI,EAAEyI,QAASzI,EAAE2K,QAAS3K,EAAE0I,MAAOC,EAAAA,EAAAA,IAAM3I,EAAE0I,KAAMV,GAAUA,EAAO,QAE/F,CACL,IAAMb,EAAOc,EAASO,SAAWP,EAASd,KAC1CgC,EAAuBhC,EAAMc,EAAS0C,QAAS3C,EACjD,CACF,EAZA0C,EAAA,EAAAD,EAA2BvG,OAAO0E,QAAQnB,GAAMiD,EAAAD,EAAAjH,OAAAkH,IAAAH,IAahDjD,EAAWE,EAAWC,EACxB,EAiFEH,WAAAA,EACAnE,iBAAAA,EACAyH,iBApBuB,WAMvB,IANwD,IAAnBpB,EAASjG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAC3CsH,GADwBtH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IACRuH,MAAK,SAAC/K,EAAGC,GAAC,OAAKD,EAAER,EAAIS,EAAET,CAAC,IAE7CwL,EAAWF,EAAU9L,KAAI,SAACiM,EAAIC,GAAK,OAAKA,CAAK,IAC3CC,EAAe,GAAEC,EAAA,WAGrB,IAAMC,EA3BQ,SAACzB,EAAcL,EAAkBE,GAMjD,IALA,IAAI6B,EAAa,GACbxB,EAAY,CAACP,EAAiB,IAC9BgC,EAAgB,CAAChC,EAAiB,IAElCiC,EAAoBjC,EAAiBkC,QAClC3B,EAAUrG,OAAS,GAAK+H,EAAkB/H,OAAS,GACxD8H,EAAgB,GAChBzB,EAAUxF,SAAQ,SAAAuF,GAChB,IAAM6B,EAAuBrC,EAAgBO,EAAc4B,EAAmB3B,EAAYJ,GAC1F8B,EAAgBA,EAAcI,OAAOD,GACrCF,EAAoBA,EAAkB9F,QAAO,SAAAkG,GAAE,OAAKF,EAAqBrE,SAASuE,EAAG,GACvF,IAEAN,EAAaA,EAAWK,OAAOJ,GAC/BzB,EAAYyB,EAEd,OAAOD,CACT,CAS4BO,CAAUf,EAAWE,EAAUvB,GACvD0B,EAAajB,KAAKmB,GAClBL,EAAWA,EAAStF,QAAO,SAAAoG,GAAG,OAAKT,EAAgBhE,SAASyE,EAAI,GAClE,EAJOd,EAASvH,OAAS,GAAC2H,IAO1B,OADeD,EAAanM,KAAI,SAAA+M,GAAK,OAAIA,EAAM/M,KAAI,SAAAkM,GAAK,OAAIJ,EAAUI,EAAM,GAAC,GAE/E,EAOEpM,UAAAA,EACAK,WAAAA,EACA2B,MAAAA,EACAsB,KAAAA,EACA7C,QAAAA,EACAsD,eAAAA,EACAmJ,QAvhBc,SAACC,EAAIC,EAAIC,EAAIC,GAAmB,IAAfC,EAAI7I,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAChC8I,EAAKL,EAAKE,EACVI,EAAKL,EAAKE,EACVjG,EAAIgG,EAAKC,EAKf,GACEjG,EAAI,GACJgG,EAAK,IACLC,EAAK,KAPiCH,EAAKC,GAAMC,EAAMhG,EAQvB,IAPM8F,EAAKC,GAAME,EAAMjG,EAQvB,IAPMA,EAAI8F,EAAKC,GAAMC,EAAMhG,EAQ3B,IAPMA,EAAI8F,EAAKC,GAAME,EAAMjG,EAQ3B,EAGhC,OAAO,EAET,IAAMqG,GAAWP,EAAKC,IAAOC,EAAKC,GAC5B7F,EAAK9H,EAAK+N,GAAW,EAAIA,IAAY,EAAIL,EAAK,EAAIC,IAElDK,EAzBU,SAAApN,GAAC,OAAI,GAAK,EAAIF,EAAWf,EAAIiB,IAAI,CAyBlCqN,CADJjO,GAAM0H,EAAI,GAAKA,IAAMmG,EAAKC,GAAOhG,GAE5C,OAAOkG,EAASJ,EAAO,GACzB,EA+fEM,qBAlS2B,SAACC,EAAKC,EAAKC,EAAKC,EAAKZ,EAAIC,GAAgC,IAA5B/F,EAAe7C,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAE1E,GAAI2I,EAAK,IAAMC,EAAK,GAClB,OAAO,EAET,IAAM7F,EAAK9H,EAAKD,EAAIsO,EAAK,GAAKX,EAAK3N,EAAIuO,EAAK,GAAKX,GAC3C/J,EAAKhE,KAAKuE,MAAMpE,EAAI+H,EAAI,IAAM/H,EAAIA,EAAIsO,EAAK,GAAKX,EAAI,IAAMA,EAAK,GAAK3N,EAAIA,EAAIuO,EAAK,GAAKX,EAAI,IAAMA,EAAK,KAK3G,OAFe,GAAK,EAAIhK,EAAKhE,GAFlBwO,EAAMC,GAAOtG,GAEalE,IACnB,GAAKiE,MAAMrB,OAAOoB,IAAoB,IAAOpB,OAAOoB,GAExE,8BC5SM2G,EAAQ,CACZC,WAAW,EACXC,YAAa,aAAIC,IACjBC,gBAAiB,KACjBC,cAAe,KACfC,cAAe,KACfC,cAAe,GAGjB,SAASC,EAAUC,GAEbA,EAAMC,gBAAgBD,EAAMC,iBAC5BD,EAAME,0BAA0BF,EAAME,2BACtCF,EAAMG,iBAAiBH,EAAMG,iBACnC,CAEA,SAASC,IAEPC,IAEA,IAAMC,EAAc,CAClBC,eAAgB,GAChBC,YAAa,MAqBf,SAASC,IAEHH,EAAYE,cACdE,aAAaJ,EAAYE,aACzBF,EAAYE,YAAc,MAG5BjB,EAAME,YAAYkB,KAAKC,SAASN,EAAYC,eAAeM,KAAK,IAAK,KAErEP,EAAYC,eAAiB,EAC/B,CAEAhB,EAAMI,gBAAkB,SAAUK,GA9BlC,IAAsBlJ,EAiClBkJ,EAAMc,QACNd,EAAMe,UACLf,EAAMgB,WACNhB,EAAMiB,SACP,IAAMjB,EAAMlJ,IAAId,QAChB,KAAOgK,EAAMlJ,KACbkJ,EAAMlJ,KAAO,MAEbiJ,EAAUC,GAzCQlJ,EA0CLkJ,EAAMlJ,IAxCjBwJ,EAAYE,cACdE,aAAaJ,EAAYE,aACzBF,EAAYE,YAAc,MAG5BF,EAAYC,eAAe9D,KAAK3F,GAE5BwJ,EAAYC,eAAevK,QAAUuJ,EAAMO,cAC7CW,IACSlB,EAAMM,gBACfS,EAAYE,YAAcU,YAAW,WACnCT,GACF,GAAGlB,EAAMM,gBA8Bb,EACAsB,SAASC,iBAAiB,UAAW7B,EAAMI,iBAAiB,GAE5DJ,EAAMK,cAAgB,SAAUI,GAI5BM,EAAYC,eAAevK,UACzBgK,EAAMc,SACLd,EAAMe,SACPf,EAAMgB,UACNhB,EAAMiB,SACN,IAAMjB,EAAMlJ,IAAId,QAChB,IAAMgK,EAAMlJ,KACZkJ,EAAMlJ,IAAM,OAEdiJ,EAAUC,GACVS,IAEJ,EACAU,SAASC,iBAAiB,QAAS7B,EAAMK,eAAe,EAC1D,CAEA,SAASS,IACHd,EAAMI,kBACRwB,SAASE,oBAAoB,UAAW9B,EAAMI,iBAAiB,GAC/DJ,EAAMI,gBAAkB,MAGtBJ,EAAMK,gBACRuB,SAASE,oBAAoB,QAAS9B,EAAMK,eAAe,GAC3DL,EAAMK,cAAgB,KAE1B,CAEA,IAAM0B,EAAS,CACbC,QAAO,WAKL,OAJKhC,EAAMC,YACTD,EAAMC,WAAY,EAClBY,KAEKb,EAAME,WACf,EAEA+B,WAAU,WACJjC,EAAMC,YACRD,EAAMC,WAAY,EAClBa,IAEJ,EAEAoB,YAAW,WACT,OAAOlC,EAAMC,SACf,EAEAK,cAAa,SAAC6B,GACZnC,EAAMM,cAAgB6B,CACxB,EAEA5B,cAAa,SAAC6B,GACZpC,EAAMO,cAAgB6B,CACxB,EAEAC,UAAS,SAACC,GACR,OAAOtC,EAAME,YAAYmC,UAAUC,EACrC,GAGF,gsDC1IA,IAAMC,EAAiB,IAAIC,gBAAe,kBAAMC,GAAU,IAGpDC,EAAQ,CACZC,SAAS,EACTlK,SAAU,IAAImK,IACdC,SAAU,IAAIC,IACdC,SAAU,IACVC,cAAe,MAYjB,SAASC,IACPP,EAAMC,SAAU,EAChBD,EAAMjK,SAASyK,QACfR,EAAMG,SAASK,QACfX,EAAeN,aACfL,SAASE,oBAAoB,SAAUW,GAAU,EAEnD,CAEA,SAASU,EAAUpM,GACjB,KAAMA,aAAgBqM,SAAU,OAAO,EAEvC,GAAI,OAASrM,EAAKsM,aAAc,OAAO,EAEvC,IAAMC,EAAQC,OAAOC,iBAAiBzM,GACtC,GAAI,SAAWuM,EAAMG,QAAS,OAAO,EACrC,GAAI,YAAcH,EAAMI,WAAY,OAAO,EAE3C,IAAMC,EAAO5M,EAAK6M,wBAClB,OACGD,EAAKE,IAAMF,EAAKG,QAAU,GACzBH,EAAKE,IAAMF,EAAKG,SAAWP,OAAOQ,aAAenC,SAASoC,gBAAgBC,eAC3EN,EAAKO,OAASP,EAAKG,QAAU,GAC5BH,EAAKO,OAASP,EAAKG,SAAWP,OAAOQ,aAAenC,SAASoC,gBAAgBC,aAEnF,CAEA,SAASxB,IACHC,EAAMM,eAAe7B,aAAauB,EAAMM,eAE5CN,EAAMM,cAAgBrB,YAAW,WAC/Be,EAAMM,cAAgB,KAEtB,IAMiDxK,EAN3C2L,EAAQ,GAERC,EAAcb,OAAOc,YAAczC,SAASoC,gBAAgBM,YAC5DC,EAAehB,OAAOQ,aAAenC,SAASoC,gBAAgBC,aAEpEpL,EAAAC,EACmC4J,EAAMjK,UAAQ,QAiBhD+B,EAjBgDzB,EAAA,WAAG,IAAD6B,EAAApC,EAAAQ,MAAvCwL,GAAuChK,EAAAQ,EAAAJ,EAAA,IAAhC,GAAE6J,EAASjK,EAAA,GACtBmJ,EAAOa,EAAQZ,wBACrB,GACET,EAAUqB,MAEPb,EAAKE,IAAM,GAAKF,EAAKO,OAAS,GAC9BP,EAAKE,IAAMU,GAAgBZ,EAAKO,OAASK,GACzCZ,EAAKe,KAAO,GAAKf,EAAKgB,MAAQ,GAC9BhB,EAAKe,KAAON,GAAeT,EAAKgB,MAAQP,GAE3C,CAAC,IAC+BQ,EADhCC,EAAA/L,EACuB2L,GAAS,QAAA9J,EAAA,WAAG,IAAxB2H,EAAQsC,EAAA5L,MACjBmL,EAAMjH,MAAK,kBAAMoF,EAASkC,EAAQ,GACpC,EAFA,IAAAK,EAAAhL,MAAA+K,EAAAC,EAAA1L,KAAAW,MAAAa,GAEC,OAAA9C,GAAAgN,EAAA9K,EAAAlC,EAAA,SAAAgN,EAAA7K,GAAA,CACD0I,EAAMjK,SAASqM,OAAON,GACtB9B,EAAMG,SAASiC,OAAON,EACxB,CACF,EAjBA,IAAA3L,EAAAgB,MAAArB,EAAAK,EAAAM,KAAAW,MAAAf,GAmBA,OAAAlB,GAAAgB,EAAAkB,EAAAlC,EAAA,SAAAgB,EAAAmB,GAAA,CAKA,GAJK0I,EAAMjK,SAAS2J,MAClBa,IAGEkB,EAAM1N,OAAQ,CAMhBsO,uBALa,SAAPC,IACSb,EAAMc,OACnBC,GACAf,EAAM1N,QAAUsO,sBAAsBC,EACxC,GAEF,CACF,GAAGtC,EAAMK,SACX,CAiHO,SAASoC,EAAYX,GAC1B,OAAO9B,EAAMC,SAAWD,EAAMjK,SAAS2M,IAAIZ,EAC7C,CC3LI,qBAAuBjB,QAAWA,OAAmB,aACvDA,OAAmB,WAAI,CACrB8B,ODyEW,SAAmBb,EAASlC,GAA6B,IAAnBO,EAAQrM,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GACrDiO,EAAY/B,EAAMjK,SAAS2M,IAAIZ,GAAW9B,EAAMjK,SAAS6M,IAAId,GAAW,IAAI1B,IAClF2B,EAAUc,IAAIjD,GAEdI,EAAMjK,SAAS+M,IAAIhB,EAASC,GAExB5B,GAAUH,EAAMG,SAAS0C,IAAIf,GAE7B9B,EAAMC,UA1FVD,EAAMC,SAAU,EAChBJ,EAAekD,QAAQ7D,SAAS8D,cAAc,aAAe9D,SAAS+D,MACtE/D,SAASC,iBAAiB,SAAUY,GAAU,IAwF3BA,GAErB,EClFImD,eDqFG,SAAwBnN,GAAW,IACVoN,EADSC,EAAAhN,EACjBL,GAAQ,IAA9B,IAAAqN,EAAAjM,MAAAgM,EAAAC,EAAA3M,KAAAW,MAAgC,CAAC,IAAtB0K,EAAOqB,EAAA7M,MAChB,GAAKmK,EAAUqB,IAAaW,EAAYX,GAAxC,CAEA,IAAMJ,EAAcb,OAAOc,YAAczC,SAASoC,gBAAgBM,YAC5DC,EAAehB,OAAOQ,aAAenC,SAASoC,gBAAgBC,aAE9DN,EAAOa,EAAQZ,wBACrB,KACGD,EAAKE,IAAM,GAAKF,EAAKO,OAAS,GAC9BP,EAAKE,IAAMU,GAAgBZ,EAAKO,OAASK,GACzCZ,EAAKe,KAAO,GAAKf,EAAKgB,MAAQ,GAC9BhB,EAAKe,KAAON,GAAeT,EAAKgB,MAAQP,GAJ3C,CAQA,IACgC2B,EADaC,EAAAlN,EAA3B4J,EAAMjK,SAAS6M,IAAId,IACL,IAAhC,IAAAwB,EAAAnM,MAAAkM,EAAAC,EAAA7M,KAAAW,OACEwI,EADiByD,EAAA/M,OACRwL,EACV,OAAA3M,GAAAmO,EAAAjM,EAAAlC,EAAA,SAAAmO,EAAAhM,GAAA,CACD0I,EAAMjK,SAASqM,OAAON,GACtB9B,EAAMG,SAASiC,OAAON,EAPZ,CAZgD,CAoB5D,CAAC,OAAA3M,GAAAiO,EAAA/L,EAAAlC,EAAA,SAAAiO,EAAA9L,GAAA,CACH,EC3GIiM,UD6GG,SAAmBC,GACxB,GAAIxD,EAAMC,QAAS,CAAC,IAC+BwD,EADhCC,EAAAtN,EACkB4J,EAAMjK,UAAQ,IAAjD,IAAA2N,EAAAvM,MAAAsM,EAAAC,EAAAjN,KAAAW,MAAmD,CAAC,IAClBuM,EADiB9I,EAAAvC,EAAAmL,EAAAnN,MAAA,GAAvCwL,EAAOjH,EAAA,GAAW+I,EAAAxN,EAAAyE,EAAA,IACI,IAAhC,IAAA+I,EAAAzM,MAAAwM,EAAAC,EAAAnN,KAAAW,OACEwI,EADiB+D,EAAArN,OACRwL,EACV,OAAA3M,GAAAyO,EAAAvM,EAAAlC,EAAA,SAAAyO,EAAAtM,GAAA,CACH,CAAC,OAAAnC,GAAAuO,EAAArM,EAAAlC,EAAA,SAAAuO,EAAApM,GAAA,CACDiJ,GACF,CACI,oBAAsBiD,GAAUA,GACtC,ECtHIK,wBDyHG,SAAiCL,GACtC,GAAIxD,EAAMC,QAAS,CACjBM,IAEA,IAE2CuD,EAFrCrC,EAAQ,GAC0BsC,EAAA3N,EAAvB,IAAI8J,IAAIF,EAAMjK,WACY,QAI1CiO,EAJ0ClJ,EAAA,WAAG,IACZmJ,EADWC,EAAAJ,EAAAxN,MAAjCwL,GAAiCkC,EAAA1L,EAAA4L,EAAA,IAA1B,GAAWC,EAAA/N,EAAA4N,EAAA,IACI,QAAAtI,EAAA,WAAG,IAAxBkE,EAAQqE,EAAA3N,MACjBmL,EAAMjH,MAAK,kBAAMoF,EAASkC,EAAQ,GACpC,EAFA,IAAAqC,EAAAhN,MAAA8M,EAAAE,EAAA1N,KAAAW,MAAAsE,GAEC,OAAAvG,GAAAgP,EAAA9M,EAAAlC,EAAA,SAAAgP,EAAA7M,GAAA,CACH,EAJA,IAAAyM,EAAA5M,MAAA2M,EAAAC,EAAAtN,KAAAW,MAAA0D,GAIC,OAAA3F,GAAA4O,EAAA1M,EAAAlC,EAAA,SAAA4O,EAAAzM,GAAA,CACGmK,EAAM1N,QAURsO,uBATa,SAAPC,IACSb,EAAMc,OACnBC,GACIf,EAAM1N,OACRsO,sBAAsBC,GACb,oBAAsBkB,GAC/BA,GAEJ,GAGJ,CACF,EChJIY,eDmJG,WACL,IAAM3C,EAAQ,GACd,GAAIzB,EAAMC,QAAS,CAAC,IACkBoE,EADnBC,EAAAlO,EACK4J,EAAMG,UAAQ,QAAAoE,EAAA,WAAG,IAELC,EAFvB1C,EAAOuC,EAAA/N,MAC6BmO,EAAArO,EAA3B4J,EAAMjK,SAAS6M,IAAId,IACL,QAAA4C,EAAA,WAAG,IAAxB9E,EAAQ4E,EAAAlO,MACjBmL,EAAMjH,MAAK,SAAAmK,GAAO,OAAI/E,EAASkC,EAAS6C,EAAQ,GAClD,EAFA,IAAAF,EAAAtN,MAAAqN,EAAAC,EAAAhO,KAAAW,MAAAsN,GAEC,OAAAvP,GAAAsP,EAAApN,EAAAlC,EAAA,SAAAsP,EAAAnN,GAAA,CACD0I,EAAMjK,SAASqM,OAAON,EACxB,EANA,IAAAwC,EAAAnN,MAAAkN,EAAAC,EAAA7N,KAAAW,MAAAmN,GAMC,OAAApP,GAAAmP,EAAAjN,EAAAlC,EAAA,SAAAmP,EAAAhN,GAAA,CAKD,GAJA0I,EAAMG,SAASK,QACVR,EAAMjK,SAAS2J,MAClBa,IAEEkB,EAAM1N,OAAQ,CAChB,IAAMuO,EAAO,SAAPA,EAAOqC,GACX,IAAMnC,EAAOf,EAAMc,QACH,IAAIqC,SAAQ,SAAAC,GAAC,OAAIrC,EAAKqC,EAAE,IAChCC,MAAK,WACPrD,EAAM1N,OACRsO,uBAAsB,kBAAMC,EAAKqC,EAAQ,IAEzCA,GAEJ,GACF,EACA,OAAO,IAAIC,SAAQ,SAAAD,GAAO,OAAItC,uBAAsB,kBAAMC,EAAKqC,EAAQ,GAAC,GAC1E,CACF,CACA,OAAO,IAAIC,SAAQ,SAAAD,GAAO,OAAIA,GAAS,GACzC,EChLIlC,YAAAA,EACAsC,eDqLG,SAAwBjD,GACxB9B,EAAMjK,SAAS2M,IAAIZ,KAExB9B,EAAMjK,SAASqM,OAAON,GACtB9B,EAAMG,SAASiC,OAAON,GAEjB9B,EAAMjK,SAAS2J,MAClBa,IAEJ,EC7LIyE,mBD+LG,WACDhF,EAAMM,eACR7B,aAAauB,EAAMM,eAErBN,EAAMM,cAAgB,KAEtBC,GACF,yCErKM0E,EAAM,6CACNC,EAAY,mCAAkCD,+IAGDE,mBAAoB,6DAEjDF,0CAEGA,sDAGnBG,EAAY,SAAHlN,GAAA,IAAMmN,EAAGnN,EAAHmN,IAAKC,EAAIpN,EAAJoN,KAAI,OAC5B,IAAIV,SAAQ,SAACD,EAASY,GACpB,IAAMC,EAAStG,SAASuG,cAAc,UACtC,GAAIJ,EACFG,EAAOE,OAASf,EAChBa,EAAOH,IAAMA,EACbnG,SAAS8D,cAAc,QAAQ2C,YAAYH,QACtC,GAAIF,EAAM,CACf,IACEE,EAAOG,YAAYzG,SAAS0G,eAAeN,IAC3CpG,SAAS8D,cAAc,QAAQ2C,YAAYH,EAC7C,CAAE,MAAAtO,GACAsO,EAAOK,KAAOP,EACdpG,SAAS8D,cAAc,QAAQ2C,YAAYH,EAC7C,CACAb,GACF,MAAOY,GACT,GAAE,EAmBJ,GACEO,WAZiB,SAAAtC,GACjB,IAAMuC,EAAU,CAAC,eAAgB,+BAAgC,4BACjE,MAAI,qBAAuBlF,QAAU,qBAAuBA,OAAOmF,OAC1DxC,IAEF4B,EAAU,CAAEE,KAAMJ,IACtBJ,MAAK,kBAAoBiB,EAAQzW,KAAI,SAAA2W,GAAI,OAAI,kBAAMb,EAAU,CAAEC,IAAM,GAAEJ,KAAOgB,KAAS,KAXpF3M,QACJ,SAAC4M,EAASC,GAAI,OAAKD,EAAQpB,MAAK,SAAAsB,GAAM,OAAID,IAAOrB,KAAKxQ,MAAM+R,UAAUpK,OAAOqK,KAAKF,GAAQ,GAAC,GAC3FxB,QAAQD,QAAQ,IAS0E,IACzFG,KAAKM,EAAU,CAAEE,KA1GI,kqFA2GrBR,KAAKtB,EACV,mfC5GqB+C,EAAY,WAO9B,SAND,SAAAA,IAA2B,IAAfC,EAAO1S,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,+FAAC2S,CAAA,KAAAF,GACtBG,KAAKF,QAAUA,EACfE,KAAKC,gBAAkBH,EAAQG,iBAAmB,CAAC,EACnDD,KAAKE,kBAAoBJ,EAAQI,mBAAqB,CAAC,EACvDF,KAAKG,aAAeH,KAAKF,QAAQM,kBACjCJ,KAAKK,mBACP,KAAC,EAAAlS,IAAA,oBAAAyB,MAED,WAAqB,IAAD0Q,EAAA,KAClBN,KAAKO,UAAYP,KAAKE,kBAAkBtN,QAAO,SAAC4N,EAAKC,GACnD,IAAMzP,EAAOyP,EAAIpO,SAAWoO,EAAIzP,KAEhC,IAAK,CAAC,KAAM,KAAM,MAAMC,SAASD,GAAO,OAAOwP,EAE/C,IAAM7O,EAAM8O,EAAIxO,UAAYqO,EAAKI,eAAeD,EAAIxO,WAAcwO,EAAI9O,GAYtE,MAVI,CAAC,KAAM,MAAMV,SAASD,KACxBwP,EAAIxP,GAAQwP,EAAIxP,IAAS,CAAC,EAC1BwP,EAAIxP,GAAMW,EAAGgP,eAAiBF,EAAIG,eAAehY,KAAI,SAAAiY,GAAC,OAAIA,EAAE1B,IAAI,KAE9D,CAAC,MAAMlO,SAASD,KAClBwP,EAAQ,GAAIA,EAAQ,IAAK,CAAC,EAC1BA,EAAQ,GAAE,EAAIC,EAAIK,QAAQzT,OAAU,GAAEsE,EAAGgP,oBAAoBF,EAAIK,QAAQzT,SAAY,GAAEsE,EAAGgP,qBACvFF,EAAIK,QAAQ,GAAGF,gBAAkBH,EAAIG,gBAAgBhY,KAAI,SAAAiY,GAAC,OAAIA,EAAE1B,IAAI,KAGlEqB,CACT,GAAG,CAAC,EACN,GAAC,CAAArS,IAAA,iBAAAyB,MAED,SAAeqC,GACb,IAAMH,EAAWkO,KAAKG,aAAa9O,UAAUU,MAAK,SAAAC,GAAC,OAAIA,EAAEC,UAAYA,CAAQ,IAC7E,OAAKH,EAEG,QAD0BxE,GAArBwE,EAASiP,SAAwB,KAAO,MACpCjP,EAASkP,kBAFJ,IAGxB,GAAC,CAAA7S,IAAA,kBAAAyB,MAED,WAAmB,IAADqR,EAAA,KACVC,EAAQnT,OAAOE,KAAK+R,KAAKO,UAAUY,IAAM,CAAC,GAC1CC,EAAU,GA2BhB,MAAO,CACLC,KA1BYH,EACXtO,QAAO,SAAC4N,EAAKC,GACZ,GAAIW,EAAQnQ,SAASwP,GAAM,OAAOD,EAElC,IAAMc,EAAU,GAgBhB,OAdAF,EAAQtN,KAAK2M,GACba,EAAQxN,KAAK2M,GAEbS,EAAMhT,SAAQ,SAAAqB,GACR6R,EAAQnQ,SAAS1B,IAEjB0R,EAAKV,UAAUY,GAAGV,GAAKc,OAAM,SAACV,EAAG/X,GAAC,OAAK+X,GAAKI,EAAKV,UAAUY,GAAG5R,GAAGzG,EAAE,MACrEsY,EAAQtN,KAAKvE,GACb+R,EAAQxN,KAAKvE,GAEjB,IAEAiR,EAAI1M,KAAKwN,GAEFd,CACT,GAAG,IACFlR,QAAO,SAAAuR,GAAC,OAAI,EAAIA,EAAExT,MAAM,IACxBzE,KAAI,SAAAiY,GAAC,OAAIA,EAAE3I,KAAK,IAAI,IAGTtP,KAAI,SAAAiY,GACd,MAAO,CAAE1B,KAAM0B,EAAGjR,MAAOiR,EAC3B,IAEJ,GAAC,CAAA1S,IAAA,oBAAAyB,MAED,SAAkBkP,GAChB,MAAI,MAAQA,EACHkB,KAAKwB,kBAGP,CAAC,CACV,+FAAC,CAhF8B,yFCCjCC,EAAA,kBAAA9Q,CAAA,MAAAzH,EAAAyH,EAAA,GAAAwN,EAAApQ,OAAA4R,UAAA5P,EAAAoO,EAAAuD,eAAAC,EAAA5T,OAAA6T,gBAAA,SAAA1Y,EAAAyH,EAAAwN,GAAAjV,EAAAyH,GAAAwN,EAAAvO,KAAA,EAAA9G,EAAA,mBAAA+Y,OAAAA,OAAA,GAAAjY,EAAAd,EAAAgZ,UAAA,aAAAxX,EAAAxB,EAAAiZ,eAAA,kBAAAjX,EAAAhC,EAAAkZ,aAAA,yBAAAC,EAAA/Y,EAAAyH,EAAAwN,GAAA,OAAApQ,OAAA6T,eAAA1Y,EAAAyH,EAAA,CAAAf,MAAAuO,EAAA+D,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAlZ,EAAAyH,EAAA,KAAAsR,EAAA,aAAA/Y,GAAA+Y,EAAA,SAAA/Y,EAAAyH,EAAAwN,GAAA,OAAAjV,EAAAyH,GAAAwN,CAAA,WAAAkE,EAAAnZ,EAAAyH,EAAAwN,EAAApO,GAAA,IAAAjH,EAAA6H,GAAAA,EAAAgP,qBAAA2C,EAAA3R,EAAA2R,EAAA1Y,EAAAmE,OAAAwU,OAAAzZ,EAAA6W,WAAArV,EAAA,IAAAkY,EAAAzS,GAAA,WAAA4R,EAAA/X,EAAA,WAAAgG,MAAA6S,EAAAvZ,EAAAiV,EAAA7T,KAAAV,CAAA,UAAA8Y,EAAAxZ,EAAAyH,EAAAwN,GAAA,WAAAnN,KAAA,SAAA2R,IAAAzZ,EAAA0Z,KAAAjS,EAAAwN,GAAA,OAAAjV,GAAA,OAAA8H,KAAA,QAAA2R,IAAAzZ,EAAA,EAAAyH,EAAA0R,KAAAA,EAAA,IAAApY,EAAA,iBAAA4Y,EAAA,iBAAAjS,EAAA,YAAAH,EAAA,YAAAnH,EAAA,YAAAgZ,IAAA,UAAAQ,IAAA,UAAAC,IAAA,KAAApY,EAAA,GAAAsX,EAAAtX,EAAAf,GAAA,8BAAAW,EAAAwD,OAAAiV,eAAAnC,EAAAtW,GAAAA,EAAAA,EAAA0Y,EAAA,MAAApC,GAAAA,IAAA1C,GAAApO,EAAA6S,KAAA/B,EAAAjX,KAAAe,EAAAkW,GAAA,IAAAqC,EAAAH,EAAApD,UAAA2C,EAAA3C,UAAA5R,OAAAwU,OAAA5X,GAAA,SAAAwY,EAAAja,GAAA,0BAAAgF,SAAA,SAAAyC,GAAAsR,EAAA/Y,EAAAyH,GAAA,SAAAzH,GAAA,YAAAka,QAAAzS,EAAAzH,EAAA,gBAAAma,EAAAna,EAAAyH,GAAA,SAAA2S,EAAAnF,EAAAwD,EAAA7Y,EAAAc,GAAA,IAAAU,EAAAoY,EAAAxZ,EAAAiV,GAAAjV,EAAAyY,GAAA,aAAArX,EAAA0G,KAAA,KAAAlG,EAAAR,EAAAqY,IAAA1Y,EAAAa,EAAA8E,MAAA,OAAA3F,GAAA,iBAAAA,GAAA8F,EAAA6S,KAAA3Y,EAAA,WAAA0G,EAAAsN,QAAAhU,EAAAsZ,SAAAnF,MAAA,SAAAlV,GAAAoa,EAAA,OAAApa,EAAAJ,EAAAc,EAAA,aAAAV,GAAAoa,EAAA,QAAApa,EAAAJ,EAAAc,EAAA,IAAA+G,EAAAsN,QAAAhU,GAAAmU,MAAA,SAAAlV,GAAA4B,EAAA8E,MAAA1G,EAAAJ,EAAAgC,EAAA,aAAA5B,GAAA,OAAAoa,EAAA,QAAApa,EAAAJ,EAAAc,EAAA,IAAAA,EAAAU,EAAAqY,IAAA,KAAAxE,EAAAwD,EAAA,gBAAA/R,MAAA,SAAA1G,EAAA6G,GAAA,SAAAyT,IAAA,WAAA7S,GAAA,SAAAA,EAAAwN,GAAAmF,EAAApa,EAAA6G,EAAAY,EAAAwN,EAAA,WAAAA,EAAAA,EAAAA,EAAAC,KAAAoF,EAAAA,GAAAA,GAAA,aAAAf,EAAA9R,EAAAwN,EAAApO,GAAA,IAAA4R,EAAA1X,EAAA,gBAAAnB,EAAAc,GAAA,GAAA+X,IAAA/Q,EAAA,MAAA1E,MAAA,mCAAAyV,IAAAlR,EAAA,cAAA3H,EAAA,MAAAc,EAAA,OAAAgG,MAAA1G,EAAAwH,MAAA,OAAAX,EAAA0T,OAAA3a,EAAAiH,EAAA4S,IAAA/Y,IAAA,KAAAU,EAAAyF,EAAA2T,SAAA,GAAApZ,EAAA,KAAAQ,EAAA6Y,EAAArZ,EAAAyF,GAAA,GAAAjF,EAAA,IAAAA,IAAAxB,EAAA,gBAAAwB,CAAA,cAAAiF,EAAA0T,OAAA1T,EAAA6T,KAAA7T,EAAA8T,MAAA9T,EAAA4S,SAAA,aAAA5S,EAAA0T,OAAA,IAAA9B,IAAA1X,EAAA,MAAA0X,EAAAlR,EAAAV,EAAA4S,IAAA5S,EAAA+T,kBAAA/T,EAAA4S,IAAA,gBAAA5S,EAAA0T,QAAA1T,EAAAgU,OAAA,SAAAhU,EAAA4S,KAAAhB,EAAA/Q,EAAA,IAAAjG,EAAA+X,EAAA/R,EAAAwN,EAAApO,GAAA,cAAApF,EAAAqG,KAAA,IAAA2Q,EAAA5R,EAAAW,KAAAD,EAAAoS,EAAAlY,EAAAgY,MAAArZ,EAAA,gBAAAsG,MAAAjF,EAAAgY,IAAAjS,KAAAX,EAAAW,KAAA,WAAA/F,EAAAqG,OAAA2Q,EAAAlR,EAAAV,EAAA0T,OAAA,QAAA1T,EAAA4S,IAAAhY,EAAAgY,IAAA,YAAAgB,EAAAhT,EAAAwN,GAAA,IAAApO,EAAAoO,EAAAsF,OAAA9B,EAAAhR,EAAAmR,SAAA/R,GAAA,GAAA4R,IAAAzY,EAAA,OAAAiV,EAAAuF,SAAA,eAAA3T,GAAAY,EAAAmR,SAAAkC,SAAA7F,EAAAsF,OAAA,SAAAtF,EAAAwE,IAAAzZ,EAAAya,EAAAhT,EAAAwN,GAAA,UAAAA,EAAAsF,SAAA,WAAA1T,IAAAoO,EAAAsF,OAAA,QAAAtF,EAAAwE,IAAA,IAAAsB,UAAA,oCAAAlU,EAAA,aAAAzG,EAAA,IAAAR,EAAA4Z,EAAAf,EAAAhR,EAAAmR,SAAA3D,EAAAwE,KAAA,aAAA7Z,EAAAkI,KAAA,OAAAmN,EAAAsF,OAAA,QAAAtF,EAAAwE,IAAA7Z,EAAA6Z,IAAAxE,EAAAuF,SAAA,KAAApa,EAAA,IAAAM,EAAAd,EAAA6Z,IAAA,OAAA/Y,EAAAA,EAAA8G,MAAAyN,EAAAxN,EAAAuT,YAAAta,EAAAgG,MAAAuO,EAAAnG,KAAArH,EAAAwT,QAAA,WAAAhG,EAAAsF,SAAAtF,EAAAsF,OAAA,OAAAtF,EAAAwE,IAAAzZ,GAAAiV,EAAAuF,SAAA,KAAApa,GAAAM,GAAAuU,EAAAsF,OAAA,QAAAtF,EAAAwE,IAAA,IAAAsB,UAAA,oCAAA9F,EAAAuF,SAAA,KAAApa,EAAA,UAAA8a,EAAAlb,GAAA,IAAAyH,EAAA,CAAA0T,OAAAnb,EAAA,SAAAA,IAAAyH,EAAA2T,SAAApb,EAAA,SAAAA,IAAAyH,EAAA4T,WAAArb,EAAA,GAAAyH,EAAA6T,SAAAtb,EAAA,SAAAub,WAAA3Q,KAAAnD,EAAA,UAAA+T,EAAAxb,GAAA,IAAAyH,EAAAzH,EAAAyb,YAAA,GAAAhU,EAAAK,KAAA,gBAAAL,EAAAgS,IAAAzZ,EAAAyb,WAAAhU,CAAA,UAAA6R,EAAAtZ,GAAA,KAAAub,WAAA,EAAAJ,OAAA,SAAAnb,EAAAgF,QAAAkW,EAAA,WAAAQ,OAAA,YAAA3B,EAAAtS,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAAwN,EAAAxN,EAAA/G,GAAA,GAAAuU,EAAA,OAAAA,EAAAyE,KAAAjS,GAAA,sBAAAA,EAAAqH,KAAA,OAAArH,EAAA,IAAAT,MAAAS,EAAAtD,QAAA,KAAAsU,GAAA,EAAA7Y,EAAA,SAAAkP,IAAA,OAAA2J,EAAAhR,EAAAtD,QAAA,GAAA0C,EAAA6S,KAAAjS,EAAAgR,GAAA,OAAA3J,EAAApI,MAAAe,EAAAgR,GAAA3J,EAAAtH,MAAA,EAAAsH,EAAA,OAAAA,EAAApI,MAAA1G,EAAA8O,EAAAtH,MAAA,EAAAsH,CAAA,SAAAlP,EAAAkP,KAAAlP,CAAA,YAAAmb,iBAAAtT,EAAA,2BAAAmS,EAAAnD,UAAAoD,EAAApB,EAAAuB,EAAA,eAAAtT,MAAAmT,EAAAZ,cAAA,IAAAR,EAAAoB,EAAA,eAAAnT,MAAAkT,EAAAX,cAAA,IAAAW,EAAA+B,YAAA5C,EAAAc,EAAAjY,EAAA,qBAAA6F,EAAAmU,oBAAA,SAAA5b,GAAA,IAAAyH,EAAA,mBAAAzH,GAAAA,EAAA6b,YAAA,QAAApU,IAAAA,IAAAmS,GAAA,uBAAAnS,EAAAkU,aAAAlU,EAAA4O,MAAA,EAAA5O,EAAAqU,KAAA,SAAA9b,GAAA,OAAA6E,OAAAkX,eAAAlX,OAAAkX,eAAA/b,EAAA6Z,IAAA7Z,EAAAgc,UAAAnC,EAAAd,EAAA/Y,EAAA4B,EAAA,sBAAA5B,EAAAyW,UAAA5R,OAAAwU,OAAAW,GAAAha,CAAA,EAAAyH,EAAAwU,MAAA,SAAAjc,GAAA,OAAAqa,QAAAra,EAAA,EAAAia,EAAAE,EAAA1D,WAAAsC,EAAAoB,EAAA1D,UAAArV,GAAA,0BAAAqG,EAAA0S,cAAAA,EAAA1S,EAAAyU,MAAA,SAAAlc,EAAAiV,EAAApO,EAAA4R,EAAA7Y,QAAA,IAAAA,IAAAA,EAAAoV,SAAA,IAAAtU,EAAA,IAAAyZ,EAAAhB,EAAAnZ,EAAAiV,EAAApO,EAAA4R,GAAA7Y,GAAA,OAAA6H,EAAAmU,oBAAA3G,GAAAvU,EAAAA,EAAAoO,OAAAoG,MAAA,SAAAlV,GAAA,OAAAA,EAAAwH,KAAAxH,EAAA0G,MAAAhG,EAAAoO,MAAA,KAAAmL,EAAAD,GAAAjB,EAAAiB,EAAApY,EAAA,aAAAmX,EAAAiB,EAAAtZ,GAAA,0BAAAqY,EAAAiB,EAAA,qDAAAvS,EAAA1C,KAAA,SAAA/E,GAAA,IAAAyH,EAAA5C,OAAA7E,GAAAiV,EAAA,WAAApO,KAAAY,EAAAwN,EAAArK,KAAA/D,GAAA,OAAAoO,EAAApK,UAAA,SAAAiE,IAAA,KAAAmG,EAAA9Q,QAAA,KAAAnE,EAAAiV,EAAAkH,MAAA,GAAAnc,KAAAyH,EAAA,OAAAqH,EAAApI,MAAA1G,EAAA8O,EAAAtH,MAAA,EAAAsH,CAAA,QAAAA,EAAAtH,MAAA,EAAAsH,CAAA,GAAArH,EAAAsS,OAAAA,EAAAT,EAAA7C,UAAA,CAAAoF,YAAAvC,EAAAoC,MAAA,SAAAjU,GAAA,QAAA2U,KAAA,OAAAtN,KAAA,OAAA4L,KAAA,KAAAC,MAAA3a,EAAA,KAAAwH,MAAA,OAAAgT,SAAA,UAAAD,OAAA,YAAAd,IAAAzZ,EAAA,KAAAub,WAAAvW,QAAAwW,IAAA/T,EAAA,QAAAwN,KAAA,WAAAA,EAAAoH,OAAA,IAAAxV,EAAA6S,KAAA,KAAAzE,KAAAjO,OAAAiO,EAAA9I,MAAA,WAAA8I,GAAAjV,EAAA,EAAA2Q,KAAA,gBAAAnJ,MAAA,MAAAxH,EAAA,KAAAub,WAAA,GAAAE,WAAA,aAAAzb,EAAA8H,KAAA,MAAA9H,EAAAyZ,IAAA,YAAA6C,IAAA,EAAA1B,kBAAA,SAAAnT,GAAA,QAAAD,KAAA,MAAAC,EAAA,IAAAwN,EAAA,cAAAsH,EAAA1V,EAAA4R,GAAA,OAAA/X,EAAAoH,KAAA,QAAApH,EAAA+Y,IAAAhS,EAAAwN,EAAAnG,KAAAjI,EAAA4R,IAAAxD,EAAAsF,OAAA,OAAAtF,EAAAwE,IAAAzZ,KAAAyY,CAAA,SAAAA,EAAA,KAAA8C,WAAApX,OAAA,EAAAsU,GAAA,IAAAA,EAAA,KAAA7Y,EAAA,KAAA2b,WAAA9C,GAAA/X,EAAAd,EAAA6b,WAAA,YAAA7b,EAAAub,OAAA,OAAAoB,EAAA,UAAA3c,EAAAub,QAAA,KAAAiB,KAAA,KAAAhb,EAAAyF,EAAA6S,KAAA9Z,EAAA,YAAAgC,EAAAiF,EAAA6S,KAAA9Z,EAAA,iBAAAwB,GAAAQ,EAAA,SAAAwa,KAAAxc,EAAAwb,SAAA,OAAAmB,EAAA3c,EAAAwb,UAAA,WAAAgB,KAAAxc,EAAAyb,WAAA,OAAAkB,EAAA3c,EAAAyb,WAAA,SAAAja,GAAA,QAAAgb,KAAAxc,EAAAwb,SAAA,OAAAmB,EAAA3c,EAAAwb,UAAA,YAAAxZ,EAAA,MAAAoB,MAAA,kDAAAoZ,KAAAxc,EAAAyb,WAAA,OAAAkB,EAAA3c,EAAAyb,WAAA,KAAAR,OAAA,SAAA7a,EAAAyH,GAAA,QAAAwN,EAAA,KAAAsG,WAAApX,OAAA,EAAA8Q,GAAA,IAAAA,EAAA,KAAAwD,EAAA,KAAA8C,WAAAtG,GAAA,GAAAwD,EAAA0C,QAAA,KAAAiB,MAAAvV,EAAA6S,KAAAjB,EAAA,oBAAA2D,KAAA3D,EAAA4C,WAAA,KAAAzb,EAAA6Y,EAAA,OAAA7Y,IAAA,UAAAI,GAAA,aAAAA,IAAAJ,EAAAub,QAAA1T,GAAAA,GAAA7H,EAAAyb,aAAAzb,EAAA,UAAAc,EAAAd,EAAAA,EAAA6b,WAAA,UAAA/a,EAAAoH,KAAA9H,EAAAU,EAAA+Y,IAAAhS,EAAA7H,GAAA,KAAA2a,OAAA,YAAAzL,KAAAlP,EAAAyb,WAAAjb,GAAA,KAAAoc,SAAA9b,EAAA,EAAA8b,SAAA,SAAAxc,EAAAyH,GAAA,aAAAzH,EAAA8H,KAAA,MAAA9H,EAAAyZ,IAAA,gBAAAzZ,EAAA8H,MAAA,aAAA9H,EAAA8H,KAAA,KAAAgH,KAAA9O,EAAAyZ,IAAA,WAAAzZ,EAAA8H,MAAA,KAAAwU,KAAA,KAAA7C,IAAAzZ,EAAAyZ,IAAA,KAAAc,OAAA,cAAAzL,KAAA,kBAAA9O,EAAA8H,MAAAL,IAAA,KAAAqH,KAAArH,GAAArH,CAAA,EAAAqc,OAAA,SAAAzc,GAAA,QAAAyH,EAAA,KAAA8T,WAAApX,OAAA,EAAAsD,GAAA,IAAAA,EAAA,KAAAwN,EAAA,KAAAsG,WAAA9T,GAAA,GAAAwN,EAAAoG,aAAArb,EAAA,YAAAwc,SAAAvH,EAAAwG,WAAAxG,EAAAqG,UAAAE,EAAAvG,GAAA7U,CAAA,GAAAsc,MAAA,SAAA1c,GAAA,QAAAyH,EAAA,KAAA8T,WAAApX,OAAA,EAAAsD,GAAA,IAAAA,EAAA,KAAAwN,EAAA,KAAAsG,WAAA9T,GAAA,GAAAwN,EAAAkG,SAAAnb,EAAA,KAAA6G,EAAAoO,EAAAwG,WAAA,aAAA5U,EAAAiB,KAAA,KAAA2Q,EAAA5R,EAAA4S,IAAA+B,EAAAvG,EAAA,QAAAwD,CAAA,QAAAzV,MAAA,0BAAA2Z,cAAA,SAAAlV,EAAAwN,EAAApO,GAAA,YAAA2T,SAAA,CAAA5B,SAAAmB,EAAAtS,GAAAuT,WAAA/F,EAAAgG,QAAApU,GAAA,cAAA0T,SAAA,KAAAd,IAAAzZ,GAAAI,CAAA,GAAAqH,CAAA,UAAAmV,EAAAC,GAAA,gBAAAA,GAAA,GAAAnY,MAAAC,QAAAkY,GAAA,OAAAC,EAAAD,EAAA,CAAAE,CAAAF,IAAA,SAAAG,GAAA,wBAAArE,QAAA,MAAAqE,EAAArE,OAAAC,WAAA,MAAAoE,EAAA,qBAAAtY,MAAAuY,KAAAD,EAAA,CAAAE,CAAAL,IAAA,SAAApE,EAAA0E,GAAA,IAAA1E,EAAA,4BAAAA,EAAA,OAAAqE,EAAArE,EAAA0E,GAAA,IAAAtW,EAAAhC,OAAA4R,UAAA2G,SAAA1D,KAAAjB,GAAAtM,MAAA,iBAAAtF,GAAA4R,EAAAoD,cAAAhV,EAAA4R,EAAAoD,YAAAxF,MAAA,WAAAxP,GAAA,QAAAA,EAAA,OAAAnC,MAAAuY,KAAAxE,GAAA,iBAAA5R,GAAA,2CAAAP,KAAAO,GAAA,OAAAiW,EAAArE,EAAA0E,EAAA,CAAAE,CAAAR,IAAA,qBAAA9B,UAAA,wIAAAuC,EAAA,UAAAR,EAAAD,EAAAU,IAAA,MAAAA,GAAAA,EAAAV,EAAA1Y,UAAAoZ,EAAAV,EAAA1Y,QAAA,QAAAvE,EAAA,EAAA4d,EAAA,IAAA9Y,MAAA6Y,GAAA3d,EAAA2d,EAAA3d,IAAA4d,EAAA5d,GAAAid,EAAAjd,GAAA,OAAA4d,CAAA,UAAAC,EAAAC,EAAA3I,EAAAY,EAAAgI,EAAAC,EAAA3Y,EAAAwU,GAAA,QAAAoE,EAAAH,EAAAzY,GAAAwU,GAAA/S,EAAAmX,EAAAnX,KAAA,OAAAE,GAAA,YAAA+O,EAAA/O,EAAA,CAAAiX,EAAArW,KAAAuN,EAAArO,GAAAsO,QAAAD,QAAArO,GAAAwO,KAAAyI,EAAAC,EAAA,CAC8D,SAE/CE,EAAcC,EAAAC,GAAA,OAAAC,EAAAC,MAAC,KAADha,UAAA,UAAA+Z,IAH7B,IAAAE,EAcC,OAdDA,EAG6B5F,IAAAuD,MAA7B,SAAAsC,EAA8BC,EAAYC,GAAQ,IAAAC,EAAApG,EAAA,OAAAI,IAAAY,MAAA,SAAAqF,GAAA,cAAAA,EAAApC,KAAAoC,EAAA1P,MAAA,cAAA0P,EAAA1P,KAAA,GACzB2P,EAAAA,EAAAA,IAAeJ,EAAY,CAChD9D,OAAQ,OACRlH,KAAMqL,KAAKC,UAAU,CACnBC,YAAa,kBACbN,SAAAA,MAEF,OANY,OAARC,EAAQC,EAAA9D,KAAA8D,EAAA1P,KAAA,EAOKyP,EAASM,OAAM,OAAxB,GACN,OADE1G,EAAIqG,EAAA9D,MACOoE,OAAM,CAAAN,EAAA1P,KAAA,cAAQ,IAAI9L,MAAM,4BAA2B,cAAAwb,EAAA3D,OAAA,SAC7D1C,GAAI,wBAAAqG,EAAA7N,OAAA,GAAAyN,EAAA,IAVgBH,EAH7B,eAAAc,EAAA,KAAAC,EAAA9a,UAAA,WAAA8Q,SAAA,SAAAD,EAAAY,GAAA,IAAA+H,EAAAS,EAAAD,MAAAa,EAAAC,GAAA,SAAArB,EAAAjX,GAAA+W,EAAAC,EAAA3I,EAAAY,EAAAgI,EAAAC,EAAA,OAAAlX,EAAA,UAAAkX,EAAArY,GAAAkY,EAAAC,EAAA3I,EAAAY,EAAAgI,EAAAC,EAAA,QAAArY,EAAA,CAAAoY,OAAAvZ,EAAA,KAcC6Z,EAAAC,MAAA,KAAAha,UAAA,gjCCfM,gDCgBH,qBAAuB+M,SACzBA,OAAe,SAAMA,OAAe,OAAI,CAAC,GAEzCA,OAAe,OAAe,YAAIgO,EAAAA,EAClChO,OAAe,OAAgB,aAAIiO,EAAAA,EACnCjO,OAAe,OAAQ,KAAIkO,EAAAA,EAC3BlO,OAAe,OAAgB,aAAImO,EACnCnO,OAAe,OAAgB,aAAI0F,EACnC1F,OAAe,OAAY,SAAIoO,EAAAA,EAC/BpO,OAAe,OAAU,OAAIqO,EAAAA,GAC7BrO,OAAe,OAAgB,aFTlB,WAA6E,IAAvDoN,EAAUna,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAIqb,EAAQrb,UAAAC,OAAA,EAAAD,UAAA,QAAAE,EAAEka,EAAQpa,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAIsb,EAAKtb,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACrF,OAAO,IAAI8Q,SAAQ,SAACD,EAASY,GAC3B,GAAK6J,EAAMrb,OAEJ,CACL,IAAMsb,EAAM,IAAIC,KAEhBF,EAAMxa,SAAQ,SAAA2S,GAAC,MACb,SAAWA,EAAE7P,KAAO2X,EAAIE,KAAKhI,EAAEiI,SAAUjI,EAAEkI,QAAS,CAAEC,QAAQ,IAAUL,EAAIE,KAAKhI,EAAEiI,SAAUjI,EAAEkI,QAAQ,IAIzG7K,QAAQ+K,IAAI,CACVjC,EAAeO,EAAa,GAAEkB,KAAYjB,KAC1CmB,EAAIO,cAAc,CAChBlY,KAAM,WAGPoN,MAAK,SAAAsB,GACJ,IAAAlO,EAAAsU,EAA6BpG,GAAtB2B,EAAI7P,EAAA,GAAE2X,EAAQ3X,EAAA,GAErB4X,IAAM/H,EAAKgI,IAAK,CACd5F,OAAQ,MACR6F,QAAS,CACP,eAAgB,mBAElB/M,KAAM4M,IAEL/K,MAAK,SAAAqJ,GACA,KAAOA,EAASO,OAClB/J,EAAQoD,GAERxC,EAAO,IAAI3S,MAAM,4BAErB,IACC0Z,MAAM/G,EACX,IACC+G,MAAM/G,EACX,MAnCEZ,GAoCJ,GACF,EE9BE9D,OAAe,OAAiB,cAAIoP,EAAAA,EACpCpP,OAAe,OAAiB,cAAIqP,EAAAA,EACpCrP,OAAe,OAA0B,uBD7BL,WAAH,IAAIsP,EAAMrc,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAE,OAChDW,OAAOE,KAAKwb,EAAOC,iBAAmB,CAAC,GAAG9W,QAAO,SAAC4N,EAAKC,GAErD,GADAD,EAAIC,GAAOmH,KAAK+B,MAAM/B,KAAKC,UAAU4B,EAAOC,gBAAgBjJ,KACxD,YAAYjR,KAAKiR,IAAQD,EAAIC,GAAKwC,OAAO1B,OAAM,SAAAV,GAAC,MAAI,CAAC,EAAG,GAAG5P,SAAS4P,EAAE,IAAG,CAC3E,IAAqD+I,EAAAhY,EAA1B6O,EAAI9N,MAAM,iBAAgB,GAA3CxE,GAAFyb,EAAA,GAAKA,EAAA,IAAE3X,EAAQ2X,EAAA,GAEvBpJ,EAAIrS,KAAJqS,EAAIrS,GAAS,CAAE6C,KAAM,IAAKiS,OAAQ,KAClCzC,EAAIrS,GAAK8U,OAAOnP,KAAK7B,GAErBuO,EAAIC,GAAKwC,OAAS,CAAC,EAAG,GACtBzC,EAAIC,GAAKrX,GAAI,CACf,CACA,OAAOoX,CACT,GAAG,CAAC,EAAE,ECiBNrG,OAAe,OAAuB,oBAAI0P,EAAAA,EAE1C1P,OAAe,OAAe,YAAI2P,EAAAA,YAElC3P,OAAe,OAAoB,iBAAI4P,EAAAA,EAEvC5P,OAAe,OAAc,WAAI6P,EAAAA","sources":["webpack://AYTM/./app/_stock/webpack/app/stats/lib/math.js","webpack://AYTM/./app/_stock/webpack/app/survey/editor/components/lib/scroll-to-question-rx.js","webpack://AYTM/./app/_stock/webpack/lib/onvisible/onVisible.js","webpack://AYTM/./app/_stock/webpack/lib/onvisible/index.js","webpack://AYTM/./app/_stock/webpack/app/stats/lib/script-editor.js","webpack://AYTM/./app/_stock/webpack/app/stats/lib/scripts-basic.js","webpack://AYTM/./app/_stock/webpack/app/stats/lib/google-upload.js","webpack://AYTM/./app/_stock/webpack/app/stats/lib/variables.js","webpack://AYTM/./app/_stock/webpack/app/stats/lib/index.js"],"sourcesContent":["import { getIn, is } from './helpers'\n\nconst { abs, exp, log, pow, sqrt, PI } = Math\nconst SQ2PI = sqrt(2 * PI) // eslint-disable-line no-unused-vars\nconst EPS = 1e-8\nconst fpmin = 1e-30\nconst visibleProbability = [200, 100, 50, 20, 10, 1]\nconst zScore = {\n  200: 1.282,\n  100: 1.645,\n  50: 1.96,\n  20: 2.33,\n  10: 2.576,\n  1: 3.291\n}\n\nconst constants = {\n  visibleProbability,\n  confidenceLevels: visibleProbability.map((_, i) => 1 - visibleProbability[i] / 1000),\n  zScore\n}\n\n//normal-distribution (-\\infty, z]\nconst normaldist = to => {\n  const z = to / sqrt(2)\n  const t = 1 / (1 + 0.3275911 * abs(z))\n  const a1 = 0.254829592\n  const a2 = -0.284496736\n  const a3 = 1.421413741\n  const a4 = -1.453152027\n  const a5 = 1.061405429\n  const erf = 1 - ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) * t * exp(-z * z)\n  const sign = z < 0 ? -1 : 1\n  return (1 / 2) * (1 + sign * erf)\n}\n\n/*\ntwo-sample z-test for difference in proportion;\n'N-1' correction applied (Doi: 10.1002/sim.2832)\nSmall sample if n1<30 or n2<30 or chi-square expected values <1\nconf is expressed in 1/1000s, so 50 means .05\n*/\nconst pValueByZ = z => 2 * (1 - normaldist(abs(z)))\n\nconst sigTest = (x1, x2, n1, n2, conf = 50) => {\n  const p1 = x1 / n1\n  const p2 = x2 / n2\n  const n = n1 + n2\n  const chiSquareCellExpectedValue1_1 = ((x1 + x2) * n1) / n\n  const chiSquareCellExpectedValue1_2 = ((x1 + x2) * n2) / n\n  const chiSquareCellExpectedValue2_1 = ((n - x1 - x2) * n1) / n\n  const chiSquareCellExpectedValue2_2 = ((n - x1 - x2) * n2) / n\n  if (\n    n < 1 ||\n    n1 < 30 ||\n    n2 < 30 ||\n    chiSquareCellExpectedValue1_1 < 1 ||\n    chiSquareCellExpectedValue1_2 < 1 ||\n    chiSquareCellExpectedValue2_1 < 1 ||\n    chiSquareCellExpectedValue2_2 < 1\n  ) {\n    // small sample case\n    return false\n  }\n  const pooledP = (x1 + x2) / (n1 + n2)\n  const se = sqrt(pooledP * (1 - pooledP) * (1 / n1 + 1 / n2))\n  const z = (sqrt((n - 1) / n) * (p1 - p2)) / se\n  const pValue = pValueByZ(z)\n  return pValue < conf / 1000\n}\n\nconst gammaln = x => {\n  let j = 0\n  const cof = [\n    76.18009172947146, -86.50532032941678, 24.01409824083091, -1.231739572450155, 0.1208650973866179e-2,\n    -0.5395239384953e-5\n  ]\n  let ser = 1.000000000190015\n  let xx\n  let y\n  let tmp = (y = xx = x) + 5.5\n  tmp -= (xx + 0.5) * log(tmp)\n  for (; j < 6; j++) ser += cof[j] / ++y\n  return log((2.5066282746310007 * ser) / xx) - tmp\n}\n\nconst betacf = (x, a, b) => {\n  let m = 1\n  const qab = a + b\n  const qap = a + 1\n  const qam = a - 1\n  let c = 1\n  let d = 1 - (qab * x) / qap\n  let m2\n  let aa\n  let del\n  let h\n\n  // These q's will be used in factors that occur in the coefficients\n  if (abs(d) < fpmin) d = fpmin\n  d = 1 / d\n  h = d\n\n  for (; m <= 100; m++) {\n    m2 = 2 * m\n    aa = (m * (b - m) * x) / ((qam + m2) * (a + m2))\n    // One step (the even one) of the recurrence\n    d = 1 + aa * d\n    if (abs(d) < fpmin) d = fpmin\n    c = 1 + aa / c\n    if (abs(c) < fpmin) c = fpmin\n    d = 1 / d\n    h *= d * c\n    aa = (-(a + m) * (qab + m) * x) / ((a + m2) * (qap + m2))\n    // Next step of the recurrence (the odd one)\n    d = 1 + aa * d\n    if (abs(d) < fpmin) d = fpmin\n    c = 1 + aa / c\n    if (abs(c) < fpmin) c = fpmin\n    d = 1 / d\n    del = d * c\n    h *= del\n    if (abs(del - 1) < 3e-7) break\n  }\n\n  return h\n}\n\nconst ibeta = (x, a, b) => {\n  // Returns the incomplete beta function I_x(a,b)\n  // Factors in front of the continued fraction.\n  const bt = 0 === x || 1 === x ? 0 : exp(gammaln(a + b) - gammaln(a) - gammaln(b) + a * log(x) + b * log(1 - x))\n  if (0 > x || 1 < x) return false\n  if (x < (a + 1) / (a + b + 2))\n    // Use continued fraction directly.\n    return (bt * betacf(x, a, b)) / a\n  // else use continued fraction after making the symmetry transformation.\n  return 1 - (bt * betacf(1 - x, b, a)) / b\n}\n\nconst ibetainv = (p, a, b) => {\n  // Returns the inverse of the incomplete beta function\n  const a1 = a - 1\n  const b1 = b - 1\n  let j = 0\n  let lna\n  let lnb\n  let pp\n  let t\n  let u\n  let err\n  let x\n  let al\n  let h\n  let w\n  if (p <= 0) return 0\n  if (p >= 1) return 1\n  if (a >= 1 && b >= 1) {\n    pp = p < 0.5 ? p : 1 - p\n    t = sqrt(-2 * log(pp))\n    x = (2.30753 + t * 0.27061) / (1 + t * (0.99229 + t * 0.04481)) - t\n    if (p < 0.5) x = -x\n    al = (x * x - 3) / 6\n    h = 2 / (1 / (2 * a - 1) + 1 / (2 * b - 1))\n    w = (x * sqrt(al + h)) / h - (1 / (2 * b - 1) - 1 / (2 * a - 1)) * (al + 5 / 6 - 2 / (3 * h))\n    x = a / (a + b * exp(2 * w))\n  } else {\n    lna = log(a / (a + b))\n    lnb = log(b / (a + b))\n    t = exp(a * lna) / a\n    u = exp(b * lnb) / b\n    w = t + u\n    x = p < t / w ? pow(a * w * p, 1 / a) : 1 - pow(b * w * (1 - p), 1 / b)\n  }\n  const afac = -gammaln(a) - gammaln(b) + gammaln(a + b)\n  for (; j < 10; j++) {\n    if (0 === x || 1 === x) return x\n    err = ibeta(x, a, b) - p\n    t = exp(a1 * log(x) + b1 * log(1 - x) + afac)\n    u = err / t\n    x -= t = u / (1 - 0.5 * Math.min(1, u * (a1 / x - b1 / (1 - x))))\n    if (x <= 0) x = 0.5 * (x + t)\n    if (x >= 1) x = 0.5 * (x + t + 1)\n    if (abs(t) < EPS * x && j > 0) break\n  }\n  return x\n}\nconst qbeta = ibetainv\n\nconst Betinc = (X, A, B) => {\n  let A0 = 0\n  let B0 = 1\n  let A1 = 1\n  let B1 = 1\n  let M9 = 0\n  let A2 = 0\n  let C9\n  while (abs((A1 - A2) / A1) > 0.00001) {\n    A2 = A1\n    C9 = (-(A + M9) * (A + B + M9) * X) / (A + 2 * M9) / (A + 2 * M9 + 1)\n    A0 = A1 + C9 * A0\n    B0 = B1 + C9 * B0\n    M9 = M9 + 1\n    C9 = (M9 * (B - M9) * X) / (A + 2 * M9 - 1) / (A + 2 * M9)\n    A1 = A0 + C9 * A1\n    B1 = B0 + C9 * B1\n    A0 = A0 / B1\n    B0 = B0 / B1\n    A1 = A1 / B1\n    B1 = 1\n  }\n  return A1 / A\n}\n\nconst tcdf = (X, df) => {\n  if (0 >= df) {\n    throw new Error('Degrees of freedom must be positive')\n  }\n  const A = df / 2\n  const S = A + 0.5\n  const Z = df / (df + X * X)\n  const BT = exp(gammaln(S) - gammaln(0.5) - gammaln(A) + A * log(Z) + 0.5 * log(1 - Z))\n  const betacdf = Z < (A + 1) / (S + 2) ? BT * Betinc(Z, A, 0.5) : 1 - BT * Betinc(1 - Z, 0.5, A)\n  let res = X < 0 ? betacdf / 2 : 1 - betacdf / 2\n  res = Math.round(res * 100000) / 100000\n  return res\n}\n\nconst tScoreCritical = (significanceLevel, df) => {\n  // come up with t that is on edge of significance\n  let tLeft\n  let tRight\n  let pvalLeft\n  let pvalRight\n  let t = 500\n  let epsilon = 100\n  if (df > 10) {\n    t = 2\n    epsilon = 2\n  }\n  for (let i = 0; i < 1000; i++) {\n    tLeft = t - epsilon\n    if (tLeft < 0.0001) {\n      tLeft = 0.0001\n    }\n    tRight = t + epsilon\n    if (tRight < 0.001) {\n      tRight = 0.001\n    }\n    pvalLeft = 2 * (1 - tcdf(tLeft, df))\n    pvalRight = 2 * (1 - tcdf(tRight, df))\n    if (pvalLeft > significanceLevel && pvalRight > significanceLevel) {\n      t += epsilon\n    }\n    if (pvalLeft <= significanceLevel && pvalRight <= significanceLevel) {\n      t -= epsilon\n    }\n    if (pvalLeft > significanceLevel && pvalRight <= significanceLevel) {\n      epsilon = epsilon / 5\n    }\n    if (epsilon < 0.0001) {\n      break\n    }\n  }\n  return t\n}\n\n// eslint-disable-next-line no-unused-vars\nconst sigTestGetErrorMeanTwoSample = (averageN, averageSd, confidenceLevel = 0.95) => {\n  const significanceLevel = 1 - (isNaN(Number(confidenceLevel)) ? 0.95 : Number(confidenceLevel))\n  const se = sqrt(pow(averageSd, 2) / averageN + pow(averageSd, 2) / averageN)\n  const df = Math.round(\n    pow(se, 4) /\n      (pow(pow(averageSd, 2) / averageN, 2) / (averageN - 1) + pow(pow(averageSd, 2) / averageN, 2) / (averageN - 1))\n  )\n  const tScore = tScoreCritical(significanceLevel, df)\n  const marginOfError = tScore * se\n  return marginOfError\n}\n\nconst sigTestGetErrorMeanOneSample = (n, sd, confidenceLevel = 0.95) => {\n  const significanceLevel = 1 - (isNaN(Number(confidenceLevel)) ? 0.95 : Number(confidenceLevel))\n  const se = sd / sqrt(n)\n  const df = Math.round(n) - 1\n  const tScore = tScoreCritical(significanceLevel, df)\n  const marginOfError = tScore * se\n  return marginOfError\n}\n\n// eslint-disable-next-line max-params\nconst sigTestMeanTwoSample = (mu1, mu2, sd1, sd2, n1, n2, confidenceLevel = 0.95) => {\n  //small sample case:\n  if (n1 < 30 || n2 < 30) {\n    return false\n  }\n  const se = sqrt(pow(sd1, 2) / n1 + pow(sd2, 2) / n2)\n  const df = Math.round(pow(se, 4) / (pow(pow(sd1, 2) / n1, 2) / (n1 - 1) + pow(pow(sd2, 2) / n2, 2) / (n2 - 1)))\n  const t = (mu1 - mu2) / se\n\n  const pValue = 2 * (1 - tcdf(abs(t), df))\n  const pValLimit = 1 - (isNaN(Number(confidenceLevel)) ? 0.95 : Number(confidenceLevel))\n  return pValue < pValLimit\n}\n\n/*\nerror bars (two-sided test)  (blue range):\nqbeta=beta quantile function similar to R's qbeta. R\nOnly works with count data (so not scores, not distribute summary, not reorder summary, etc)\n*/\nconst calcErrorForNode = (amount, total, conf = 50) => {\n  const conf_level = (1000 - conf) / 1000\n  const errLO = amount - total * qbeta((1 - conf_level) / 2, 0.5 + amount, 0.5 + total - amount)\n  const errHI = total * qbeta(1 - (1 - conf_level) / 2, 0.5 + amount, 0.5 + total - amount) - amount\n  return [Math.max(0, errLO) || 0, Math.max(0, errHI) || 0]\n}\n\nconst calcNodeError = node => {\n  if (null === node || Array.isArray(node) || !is(Object)(node)) return\n\n  const zScoreKeys = Object.keys(zScore)\n  Object.keys(node).forEach(key => {\n    if (!node[key]) return\n\n    if (Object.hasOwn(node, 'total') && Object.hasOwn(node[key], 'amount')) {\n      const total = node[key].base || node.base || node.total\n      if (total < node[key].amount) return\n      // const effectiveSize = node.effSize ? node.effSize : total\n\n      for (const zScoreKey of zScoreKeys) {\n        const err = calcErrorForNode(node[key].amount, total, zScoreKey)\n        node[key].errLO = Object.assign(node[key].errLO || {}, {\n          [String(1000 - zScoreKey)]: { amount: Number(err[0]), percents: Number((100 * err[0]) / total) }\n        })\n        node[key].errHI = Object.assign(node[key].errHI || {}, {\n          [String(1000 - zScoreKey)]: { amount: Number(err[1]), percents: Number((100 * err[1]) / total) }\n        })\n        if (node.respTotal) {\n          const respErr = calcErrorForNode(node[key].amount, node.respTotal, zScoreKey)\n          node[key].errLO[String(1000 - zScoreKey)].respAmount = Number(respErr[0])\n          node[key].errLO[String(1000 - zScoreKey)].respPercents = Number((100 * respErr[0]) / node.respTotal)\n          node[key].errHI[String(1000 - zScoreKey)].respAmount = Number(respErr[1])\n          node[key].errHI[String(1000 - zScoreKey)].respPercents = Number((100 * respErr[1]) / node.respTotal)\n        }\n      }\n    }\n\n    if (Object.hasOwn(node[key], 'total')) {\n      calcNodeError(node[key])\n    }\n  })\n}\n\n/*\nСигтест максдиффа.\nOnly *utility scores*.\nmarginOfError = sf.sigTestGetErrorMeanOneSample(numberOfRespondentsSelected, mean(sd), confidenceLevel)\nгде sd = массив standard deviation, по элементу на каждый айтем, считается методом sf.sd\nтам есть зависимый метод tScoreCritical который не оптимизирован, если есть желание можно улучшить, заодно и для smart templates\nmarginOfError используется для несимметричного ренджа (band around the column top)\nсравнение колонок делается sf.sigTestMeanTwoSample(mu1, mu2, n1, n2, sd1, sd2, confidenceLevel = 0.95)\nгде mu1 mu2 - средние utility scores\n*/\nconst calcMaxdiffNodeError = node => {\n  // console.log('calcMaxdiffNodeError', node)\n  const zScoreKeys = Object.keys(zScore)\n  if (Object.hasOwn(node, 'total')) {\n    const elements = Object.keys(node).filter(k => /^b\\d+/.test(k))\n    // console.log('calcMaxdiffNodeError', elements)\n    // const mu = elements.map(b => node[b].rawZC)\n    // const probs = elements.map(b => node[b].probability / 100)\n    for (const zScoreKey of zScoreKeys) {\n      const confLevel = (1000 - zScoreKey) / 1000\n      elements.forEach(key => {\n        if (Object.hasOwn(node[key], 'sd')) {\n          const total = node[key].base || node.base || node.total\n          if (total <= 1) return\n\n          try {\n            const error = sigTestGetErrorMeanOneSample(total, node[key].sd, confLevel)\n            node[key].errLO = Object.assign(node[key].errLO || {}, {\n              [String(1000 - zScoreKey)]: {\n                rawAmount: Number(error),\n                probAmount: Number(\n                  100 *\n                    (exp(node[key].raw) / (1 + exp(node[key].raw)) -\n                      exp(node[key].raw - error) / (1 + exp(node[key].raw - error)))\n                )\n              }\n            })\n            node[key].errHI = Object.assign(node[key].errHI || {}, {\n              [String(1000 - zScoreKey)]: {\n                rawAmount: Number(error),\n                probAmount: Number(\n                  100 *\n                    (exp(node[key].raw + error) / (1 + exp(node[key].raw + error)) -\n                      exp(node[key].raw) / (1 + exp(node[key].raw)))\n                )\n              }\n            })\n          } catch {\n            delete node[key].errLO\n            delete node[key].errHI\n          }\n        }\n      })\n    }\n    // console.log('calcMaxdiffNodeError', node)\n  }\n}\n\nconst baseQuestionTypes = ['rb', 'cb']\nconst countableQuestionTypes = ['rb', 'cb', 'mx', 'mp', 'sr', 'se', 'ro', 'aro', 'cf', 'sh', 'sft']\nconst calcErrorsForNode = (type, node) => {\n  if (countableQuestionTypes.includes(type)) {\n    if (baseQuestionTypes.includes(type)) {\n      const keys = Object.keys(node).filter(key => null != node[key] && Object.hasOwn(node[key], 'percents'))\n      if (!keys.some(key => node[key]['percents'] > 100)) {\n        calcNodeError(node)\n      }\n    } else {\n      calcNodeError(node)\n    }\n  } else if ('md' === type) {\n    calcMaxdiffNodeError(node)\n  }\n}\nconst calcErrors = (questions = [], stats = {}) => {\n  for (const [id, answer] of Object.entries(stats)) {\n    const question = questions.find(q => ((0 < q.position && `q${q.position}`) || q.id) == id)\n    if (!question || !answer) continue\n\n    if (Object.hasOwn(question, 'blocks') && null != question.blocks) {\n      question.blocks.forEach(b => {\n        if (b.format != undefined && true == b.format.percentsOnly) return\n        calcErrorsForNode(b.variant || b.subtype, b.path && b.path.length ? getIn(b.path, answer) : answer)\n      })\n    } else {\n      const type = question.variant || question.type\n      calcErrorsForNode(type, answer)\n    }\n  }\n}\n\nconst calcNodeStatData = node => {\n  Object.keys(node).forEach(key => {\n    if (null == node[key] || 'object' != typeof node[key] || null == key.match(/^a\\d+$/i)) return\n    node[key].amount = node[key].amount || 0\n    node[key].percents = node[key].percents || 0\n  })\n\n  const respTotal = Object.keys(node).reduce((memo, key) => {\n    if (null == node[key] || 'object' != typeof node[key] || null == key.match(/^a\\d+$/i)) return memo\n    return memo + (node[key].amount || 0)\n  }, 0)\n  node.respTotal = respTotal\n\n  Object.keys(node).forEach(key => {\n    if (null == node[key] || 'object' != typeof node[key] || null == key.match(/^a\\d+$/i)) return\n    node[key].respPercents = parseFloat(((100 * node[key].amount) / respTotal || 0).toFixed(2))\n  })\n}\n\nconst calcNodeStatDataByType = (type, subtype, answer = {}) => {\n  if (['rb', 'cb', 'oex', 'sft'].includes(type)) {\n    calcNodeStatData(answer)\n  }\n  if ('mp' == type && 'default' == subtype) {\n    Object.keys(answer).forEach(key => {\n      if (null == answer[key] || 'object' != typeof answer[key] || null == key.match(/^b\\d+$/i)) return\n      calcNodeStatData(answer[key])\n    })\n  }\n}\n\nconst calcStatData = (questions = [], stats = {}) => {\n  for (const [id, answer] of Object.entries(stats)) {\n    const question = questions.find(q => ((0 < q.position && `q${q.position}`) || q.id) == id)\n    if (!question || !answer) continue\n\n    if (Object.hasOwn(question, 'blocks') && null !== question.blocks) {\n      question.blocks.forEach(b =>\n        calcNodeStatDataByType(b.variant || b.subtype, b.subType, b.path ? getIn(b.path, answer) : answer)\n      )\n    } else {\n      const type = question.variant || question.type\n      calcNodeStatDataByType(type, question.subType, answer)\n    }\n  }\n  calcErrors(questions, stats)\n}\n\nconst findNeighbors = (sorted_array, included_indexes, target_idx, threshold) => {\n  const target_point = sorted_array[target_idx]\n  let neighbors = []\n  // below search\n  const target_included_idx = included_indexes.indexOf(target_idx)\n  for (let _i = target_included_idx; _i >= 0; _i--) {\n    const distance = sorted_array[included_indexes[_i]].x - target_point.x\n    if (distance > threshold) {\n      break\n    } else {\n      neighbors.push(included_indexes[_i])\n    }\n  }\n  neighbors = neighbors.reverse()\n  // above search\n  for (let _i = target_included_idx + 1; _i < included_indexes.length; _i++) {\n    if (sorted_array[included_indexes[_i]].x - target_point.x > threshold) {\n      break\n    } else {\n      neighbors.push(included_indexes[_i])\n    }\n  }\n  // list of neighbor indexes\n  return neighbors\n}\n\nconst findNeighborsXY = (sorted_x, included_indexes, target_point_index, threshold) => {\n  const target_point = sorted_x[target_point_index]\n\n  // find target point in sorted arrays\n  const x_neighbors_idxs = findNeighbors(sorted_x, included_indexes, target_point_index, threshold)\n\n  const real_neighbors = x_neighbors_idxs.filter(\n    nb_idx =>\n      Math.sqrt(Math.pow(sorted_x[nb_idx].x - target_point.x, 2) + Math.pow(sorted_x[nb_idx].y - target_point.y, 2)) <=\n      threshold\n  )\n\n  return real_neighbors\n}\n\nconst findGroup = (sorted_array, included_indexes, threshold) => {\n  let group_idxs = [] // resulting array of indexes\n  let neighbors = [included_indexes[0]] // intermediate array of indexes\n  let new_neighbors = [included_indexes[0]]\n\n  let remaining_indexes = included_indexes.slice()\n  while (neighbors.length > 0 && remaining_indexes.length > 0) {\n    new_neighbors = []\n    neighbors.forEach(target_idx => {\n      const last_found_neighbors = findNeighborsXY(sorted_array, remaining_indexes, target_idx, threshold)\n      new_neighbors = new_neighbors.concat(last_found_neighbors)\n      remaining_indexes = remaining_indexes.filter(el => !last_found_neighbors.includes(el))\n    })\n\n    group_idxs = group_idxs.concat(new_neighbors)\n    neighbors = new_neighbors\n  }\n  return group_idxs\n}\n\nconst calcPointsGroups = (points = [], threshold = 0) => {\n  const sortedByX = points.sort((a, b) => a.x - b.x)\n\n  let _indexes = sortedByX.map((_p, index) => index)\n  const point_groups = []\n\n  while (_indexes.length > 0) {\n    const neighbors_group = findGroup(sortedByX, _indexes, threshold)\n    point_groups.push(neighbors_group)\n    _indexes = _indexes.filter(idx => !neighbors_group.includes(idx))\n  }\n\n  const groups = point_groups.map(group => group.map(index => sortedByX[index]))\n  return groups\n}\n\nexport default {\n  calcStatData,\n  calcErrors,\n  calcErrorForNode,\n  calcPointsGroups,\n  constants,\n  normaldist,\n  qbeta,\n  tcdf,\n  gammaln,\n  tScoreCritical,\n  sigTest,\n  sigTestMeanTwoSample\n}\n","import { Subject } from 'rxjs'\n\nconst PROPS = {\n  connected: false, // module connected state\n  gotoSubject: new Subject(), // goto position emitter\n  keyDownListener: null, // main keydown listener\n  keyUpListener: null, // main keyup listener\n  bufferTimeout: 1750, // default position buffer timeout\n  maxBufferSize: 3 // default position buffer size\n}\n\nfunction stopEvent(event) {\n  // stop event from going further\n  if (event.preventDefault) event.preventDefault()\n  if (event.stopImmediatePropagation) event.stopImmediatePropagation()\n  if (event.stopPropagation) event.stopPropagation()\n}\n\nfunction listenKeys() {\n  // unregister previous listeners\n  stopListeningKeys()\n\n  const listenState = {\n    positionBuffer: [], // buffer to store pressed digits\n    bufferTimer: null // timeout timer\n  }\n\n  function readPosition(key) {\n    // clear buffer timeout if set\n    if (listenState.bufferTimer) {\n      clearTimeout(listenState.bufferTimer)\n      listenState.bufferTimer = null\n    }\n    // add key to buffer\n    listenState.positionBuffer.push(key)\n    // send position when buffer is filled or on timeout\n    if (listenState.positionBuffer.length >= PROPS.maxBufferSize) {\n      sendPosition()\n    } else if (PROPS.bufferTimeout) {\n      listenState.bufferTimer = setTimeout(function () {\n        sendPosition()\n      }, PROPS.bufferTimeout)\n    }\n  }\n\n  function sendPosition() {\n    // clear buffer timeout if set\n    if (listenState.bufferTimer) {\n      clearTimeout(listenState.bufferTimer)\n      listenState.bufferTimer = null\n    }\n    // send position\n    PROPS.gotoSubject.next(parseInt(listenState.positionBuffer.join(''), 10))\n    // reset buffer\n    listenState.positionBuffer = []\n  }\n\n  PROPS.keyDownListener = function (event) {\n    // listen for Ctrl+Alt+Digit keys\n    if (\n      event.altKey &&\n      event.ctrlKey &&\n      !event.shiftKey &&\n      !event.metaKey &&\n      1 === event.key.length &&\n      '0' <= event.key &&\n      event.key <= '9'\n    ) {\n      stopEvent(event)\n      readPosition(event.key)\n    }\n  }\n  document.addEventListener('keydown', PROPS.keyDownListener, true)\n\n  PROPS.keyUpListener = function (event) {\n    // send position if buffer is not empty and\n    // keyup outside of Ctrl+Alt+Digit\n    if (\n      listenState.positionBuffer.length &&\n      (!event.altKey ||\n        !event.ctrlKey ||\n        event.shiftKey ||\n        event.metaKey ||\n        1 !== event.key.length ||\n        '0' > event.key ||\n        event.key > '9')\n    ) {\n      stopEvent(event)\n      sendPosition()\n    }\n  }\n  document.addEventListener('keyup', PROPS.keyUpListener, true)\n}\n\nfunction stopListeningKeys() {\n  if (PROPS.keyDownListener) {\n    document.removeEventListener('keydown', PROPS.keyDownListener, true)\n    PROPS.keyDownListener = null\n  }\n\n  if (PROPS.keyUpListener) {\n    document.removeEventListener('keyup', PROPS.keyUpListener, true)\n    PROPS.keyUpListener = null\n  }\n}\n\nconst PUBLIC = {\n  connect() {\n    if (!PROPS.connected) {\n      PROPS.connected = true\n      listenKeys()\n    }\n    return PROPS.gotoSubject\n  },\n\n  disconnect() {\n    if (PROPS.connected) {\n      PROPS.connected = false\n      stopListeningKeys()\n    }\n  },\n\n  isConnected() {\n    return PROPS.connected\n  },\n\n  bufferTimeout(timeout) {\n    PROPS.bufferTimeout = timeout\n  },\n\n  maxBufferSize(size) {\n    PROPS.maxBufferSize = size\n  },\n\n  subscribe(listener) {\n    return PROPS.gotoSubject.subscribe(listener)\n  }\n}\n\nexport default PUBLIC\n","// eslint-disable-next-line compat/compat\nconst resizeObserver = new ResizeObserver(() => onScroll())\n\n/* eslint-disable immutablejs/no-native-map-set */\nconst props = {\n  started: false,\n  elements: new Map(),\n  required: new Set(),\n  debounce: 250,\n  debounceTimer: null\n}\n/* eslint-enable immutablejs/no-native-map-set */\n\nfunction start() {\n  props.started = true\n  resizeObserver.observe(document.querySelector('#content') || document.body)\n  document.addEventListener('scroll', onScroll, false)\n  // document.defaultView.addEventListener('resize', onScroll, false)\n  onScroll()\n}\n\nfunction stop() {\n  props.started = false\n  props.elements.clear()\n  props.required.clear()\n  resizeObserver.disconnect()\n  document.removeEventListener('scroll', onScroll, false)\n  // document.defaultView.removeEventListener('resize', onScroll, false)\n}\n\nfunction isVisible(node) {\n  if (!(node instanceof Element)) return false\n\n  if (null === node.offsetParent) return false\n\n  const style = window.getComputedStyle(node)\n  if ('none' === style.display) return false\n  if ('visible' !== style.visibility) return false\n\n  const rect = node.getBoundingClientRect()\n  return (\n    (rect.top + rect.height >= 0 &&\n      rect.top + rect.height <= (window.innerHeight || document.documentElement.clientHeight)) ||\n    (rect.bottom - rect.height >= 0 &&\n      rect.bottom - rect.height <= (window.innerHeight || document.documentElement.clientHeight))\n  )\n}\n\nfunction onScroll() {\n  if (props.debounceTimer) clearTimeout(props.debounceTimer)\n\n  props.debounceTimer = setTimeout(() => {\n    props.debounceTimer = null\n\n    const tasks = []\n\n    const windowWidth = window.innerWidth || document.documentElement.clientWidth\n    const windowHeight = window.innerHeight || document.documentElement.clientHeight\n\n    // get element rects\n    for (const [element, listeners] of props.elements) {\n      const rect = element.getBoundingClientRect()\n      if (\n        isVisible(element) &&\n        !(\n          (rect.top < 0 && rect.bottom < 0) ||\n          (rect.top > windowHeight && rect.bottom > windowHeight) ||\n          (rect.left < 0 && rect.right < 0) ||\n          (rect.left > windowWidth && rect.right > windowWidth)\n        )\n      ) {\n        for (const listener of listeners) {\n          tasks.push(() => listener(element))\n        }\n        props.elements.delete(element)\n        props.required.delete(element)\n      }\n    }\n\n    // stop if none left\n    if (!props.elements.size) {\n      stop()\n    }\n\n    if (tasks.length) {\n      const step = () => {\n        const task = tasks.shift()\n        task()\n        tasks.length && requestAnimationFrame(step)\n      }\n      requestAnimationFrame(step)\n    }\n  }, props.debounce)\n}\n\n/* eslint-disable immutablejs/no-native-map-set */\nexport default function onVisible(element, listener, required = false) {\n  const listeners = props.elements.has(element) ? props.elements.get(element) : new Set()\n  listeners.add(listener)\n\n  props.elements.set(element, listeners)\n\n  if (required) props.required.add(element)\n\n  if (props.started) onScroll()\n  else start()\n}\n/* eslint-enable immutablejs/no-native-map-set */\n\nexport function renderElements(elements) {\n  for (const element of elements) {\n    if (!isVisible(element) || !hasListener(element)) continue\n\n    const windowWidth = window.innerWidth || document.documentElement.clientWidth\n    const windowHeight = window.innerHeight || document.documentElement.clientHeight\n\n    const rect = element.getBoundingClientRect()\n    if (\n      (rect.top < 0 && rect.bottom < 0) ||\n      (rect.top > windowHeight && rect.bottom > windowHeight) ||\n      (rect.left < 0 && rect.right < 0) ||\n      (rect.left > windowWidth && rect.right > windowWidth)\n    )\n      continue\n\n    const listeners = props.elements.get(element)\n    for (const listener of listeners) {\n      listener(element)\n    }\n    props.elements.delete(element)\n    props.required.delete(element)\n  }\n}\n\nexport function renderAll(callback) {\n  if (props.started) {\n    for (const [element, listeners] of props.elements) {\n      for (const listener of listeners) {\n        listener(element)\n      }\n    }\n    stop()\n  }\n  if ('function' === typeof callback) callback()\n}\n\n/* eslint-disable immutablejs/no-native-map-set */\nexport function renderAllAnimationFrame(callback) {\n  if (props.started) {\n    stop()\n\n    const tasks = []\n    const elements = new Map(props.elements)\n    for (const [element, listeners] of elements) {\n      for (const listener of listeners) {\n        tasks.push(() => listener(element))\n      }\n    }\n    if (tasks.length) {\n      const step = () => {\n        const task = tasks.shift()\n        task()\n        if (tasks.length) {\n          requestAnimationFrame(step)\n        } else if ('function' === typeof callback) {\n          callback()\n        }\n      }\n      requestAnimationFrame(step)\n    }\n  }\n}\n/* eslint-enable immutablejs/no-native-map-set */\n\nexport function renderRequired() {\n  const tasks = []\n  if (props.started) {\n    for (const element of props.required) {\n      const listeners = props.elements.get(element)\n      for (const listener of listeners) {\n        tasks.push(resolve => listener(element, resolve))\n      }\n      props.elements.delete(element)\n    }\n    props.required.clear()\n    if (!props.elements.size) {\n      stop()\n    }\n    if (tasks.length) {\n      const step = resolve => {\n        const task = tasks.shift()\n        const promise = new Promise(r => task(r))\n        promise.then(() => {\n          if (tasks.length) {\n            requestAnimationFrame(() => step(resolve))\n          } else {\n            resolve()\n          }\n        })\n      }\n      return new Promise(resolve => requestAnimationFrame(() => step(resolve)))\n    }\n  }\n  return new Promise(resolve => resolve())\n}\n\nexport function hasListener(element) {\n  return props.started && props.elements.has(element)\n}\n\nexport function removeListener(element) {\n  if (!props.elements.has(element)) return\n\n  props.elements.delete(element)\n  props.required.delete(element)\n\n  if (!props.elements.size) {\n    stop()\n  }\n}\n\nexport function removeAllListeners() {\n  if (props.debounceTimer) {\n    clearTimeout(props.debounceTimer)\n  }\n  props.debounceTimer = null\n\n  stop()\n}\n","import onVisible, {\n  renderElements,\n  renderAll,\n  renderAllAnimationFrame,\n  renderRequired,\n  hasListener,\n  removeListener,\n  removeAllListeners\n} from './onVisible'\n\nexport {\n  onVisible,\n  renderElements,\n  renderAll,\n  renderAllAnimationFrame,\n  renderRequired,\n  hasListener,\n  removeListener,\n  removeAllListeners\n}\n\nif ('undefined' !== typeof window && !window['$onVisible']) {\n  window['$onVisible'] = {\n    render: onVisible,\n    renderElements,\n    renderAll,\n    renderAllAnimationFrame,\n    renderRequired,\n    hasListener,\n    removeListener,\n    removeAllListeners\n  }\n}\n","const createEditorCode = `\n  window.createScriptEditor = function() {\n    var id = 'script-editor';\n    var element = document.getElementById(id);\n    var exists = (null != element);\n    if (!exists) {\n      element = document.createElement('div'); element.id = 'script-editor';\n      element.style.position = 'absolute';\n      element.style.width = '30%';\n      element.style.height = '100%';\n      element.style.left = '0';\n      element.style.top = '80px';\n      element.style.textAlign = 'left';\n      element.style.zIndex = 1000;\n\n      var toolbar = document.createElement('div'); toolbar.id = 'script-editor-toolbar';\n      toolbar.style.backgroundColor = 'white';\n      toolbar.style.width = '100%';\n      toolbar.style.height = '40px';\n      toolbar.style.left = '0';\n      toolbar.style.top  = '0';\n      toolbar.style.textAlign = 'left';\n\n      var applyButton = document.createElement('button'); applyButton.id = 'script-editor-apply';\n      applyButton.style.width = '50%'; applyButton.style.height = '100%'; applyButton.style.border = '1px solid';\n      applyButton.appendChild(document.createTextNode('Apply'));\n      applyButton.onclick = () => {\n        var scripts = StatPage.model.getReportScripts();\n        StatPage.model.setReportScripts(Object.assign(scripts, { aggregate: [ window.editor.getValue() ] }));\n      }\n      toolbar.appendChild(applyButton);\n\n      var resetButton = document.createElement('button'); resetButton.id = 'script-editor-reset';\n      resetButton.style.width = '50%'; resetButton.style.height = '100%'; resetButton.style.border = '1px solid';\n      resetButton.appendChild(document.createTextNode('Reset'));\n      resetButton.onclick = () => {\n        StatPage.model.clearReportScripts()\n        var scripts = StatPage.model.getReportScripts() || {};\n        var aggregate = scripts.aggregate || [];\n        window.editor.setValue(aggregate.join('\\\\n\\\\n'))\n      }\n      toolbar.appendChild(resetButton);\n      element.appendChild(toolbar);\n\n      document.getElementById('page').appendChild(element);\n    }\n    if ( window.monaco ) {\n      var scripts = StatPage.model.getReportScripts() || {};\n      var aggregate = scripts.aggregate || [];\n      window.editor = monaco.editor.create(element, {\n        value: aggregate.join('\\\\n\\\\n'),\n        language: 'javascript',\n        wordWrap: 'wordWrapColumn',\n        wordWrapColumn: 40,\n        wordWrapMinified: true,   // Set this to false to not auto word wrap minified files\n        wrappingIndent: \"indent\"  // try \"same\", \"indent\" or \"none\"\n      });\n    } else {\n      setTimeout(window.createScriptEditor, 100);\n    }\n  };\n  setTimeout(window.createScriptEditor, 100);\n`\nconst CDN = 'https://unpkg.com/monaco-editor@0.29.1/min'\nconst initCode = `var require = { paths: { 'vs': '${CDN}/vs' } };\n  window.MonacoEnvironment = {\n    getWorkerUrl: function(workerId, label) {\n      return \"data:text/javascript;charset=utf-8,${encodeURIComponent(`\n        self.MonacoEnvironment = {\n          baseUrl: '${CDN}'\n        };\n        importScripts('${CDN}/vs/base/worker/workerMain.js');`)}\";\n    }\n  };`\nconst addScript = ({ src, code }) =>\n  new Promise((resolve, reject) => {\n    const script = document.createElement('script')\n    if (src) {\n      script.onload = resolve\n      script.src = src\n      document.querySelector('body').appendChild(script)\n    } else if (code) {\n      try {\n        script.appendChild(document.createTextNode(code))\n        document.querySelector('body').appendChild(script)\n      } catch {\n        script.text = code\n        document.querySelector('body').appendChild(script)\n      }\n      resolve()\n    } else reject()\n  })\n\nconst promiseSerial = funcs =>\n  funcs.reduce(\n    (promise, func) => promise.then(result => func().then(Array.prototype.concat.bind(result))),\n    Promise.resolve([])\n  )\n\nconst initialize = callback => {\n  const scripts = ['vs/loader.js', 'vs/editor/editor.main.nls.js', 'vs/editor/editor.main.js']\n  if ('undefined' !== typeof window && 'undefined' !== typeof window.monaco) {\n    return callback()\n  }\n  return addScript({ code: initCode })\n    .then(() => promiseSerial(scripts.map(name => () => addScript({ src: `${CDN}/${name}` }))))\n    .then(addScript({ code: createEditorCode }))\n    .then(callback)\n}\n\nexport default {\n  initialize\n}\n","export default class ScriptsBasic {\n  constructor(options = {}) {\n    this.options = options\n    this.schemaQuestions = options.schemaQuestions || {}\n    this.completeQuestions = options.completeQuestions || {}\n    this.surveySchema = this.options.getSurveySchema()\n    this._initScriptsBasic()\n  }\n\n  _initScriptsBasic() {\n    this._complete = this.completeQuestions.reduce((acc, cur) => {\n      const type = cur.variant || cur.type\n\n      if (!['rb', 'cb', 'mx'].includes(type)) return acc\n\n      const id = (cur.position && this._getQuestionId(cur.position)) || cur.id\n\n      if (['rb', 'cb'].includes(type)) {\n        acc[type] = acc[type] || {}\n        acc[type][id.toUpperCase()] = cur.answerVariants.map(v => v.text)\n      }\n      if (['mx'].includes(type)) {\n        acc['rb'] = acc['rb'] || {}\n        acc['rb'][1 < cur.batches.length ? `${id.toUpperCase()}SQ1-${cur.batches.length}` : `${id.toUpperCase()}SQ1`] =\n          (cur.batches[0].answerVariants || cur.answerVariants).map(v => v.text)\n      }\n\n      return acc\n    }, {})\n  }\n\n  _getQuestionId(position) {\n    const question = this.surveySchema.questions.find(q => q.position == position)\n    if (!question) return null\n    const type = question.pre_type != undefined ? 'PQ' : 'Q'\n    return `${type}${question.visual_position}`\n  }\n\n  _getMXBasicData() {\n    const _keys = Object.keys(this._complete.rb || {})\n    const _passed = []\n\n    const _data = _keys\n      .reduce((acc, cur) => {\n        if (_passed.includes(cur)) return acc\n\n        const _values = []\n\n        _passed.push(cur)\n        _values.push(cur)\n\n        _keys.forEach(k => {\n          if (_passed.includes(k)) return\n\n          if (this._complete.rb[cur].every((v, i) => v == this._complete.rb[k][i])) {\n            _passed.push(k)\n            _values.push(k)\n          }\n        })\n\n        acc.push(_values)\n\n        return acc\n      }, [])\n      .filter(v => 1 < v.length)\n      .map(v => v.join(','))\n\n    return {\n      data: _data.map(v => {\n        return { text: v, value: v }\n      })\n    }\n  }\n\n  generateBasicData(script) {\n    if ('mx' == script) {\n      return this._getMXBasicData()\n    }\n\n    return {}\n  }\n}\n","import JSZip from 'jszip'\nimport fetch from 'isomorphic-fetch'\nimport railsPostFetch from '@aytm/lib/common/rails-post-fetch'\n\nasync function fetchUploadUrl(upload_url, fileName) {\n  const response = await railsPostFetch(upload_url, {\n    method: 'POST',\n    body: JSON.stringify({\n      contentType: 'application/zip',\n      fileName\n    })\n  })\n  const data = await response.json()\n  if ('OK' != data.status) throw new Error('Bad response from server')\n  return data\n}\n\nexport default function GoogleUpload(upload_url = '', surveyId, fileName = '', files = []) {\n  return new Promise((resolve, reject) => {\n    if (!files.length) {\n      resolve()\n    } else {\n      const zip = new JSZip()\n\n      files.forEach(v =>\n        'image' == v.type ? zip.file(v.filename, v.content, { base64: true }) : zip.file(v.filename, v.content)\n      )\n\n      /// receive url for upload\n      Promise.all([\n        fetchUploadUrl(upload_url, `${surveyId}/${fileName}`),\n        zip.generateAsync({\n          type: 'blob'\n        })\n      ])\n        .then(result => {\n          const [data, fileBlob] = [...result]\n\n          fetch(data.url, {\n            method: 'PUT',\n            headers: {\n              'Content-Type': 'application/zip'\n            },\n            body: fileBlob\n          })\n            .then(response => {\n              if (200 == response.status) {\n                resolve(data)\n              } else {\n                reject(new Error('Bad response from server'))\n              }\n            })\n            .catch(reject)\n        })\n        .catch(reject)\n    }\n  })\n}\n","export const convertCustomVariables = (survey = []) =>\n  Object.keys(survey.customVariables || {}).reduce((acc, cur) => {\n    acc[cur] = JSON.parse(JSON.stringify(survey.customVariables[cur]))\n    if (/^\\w+_\\d+$/.test(cur) && acc[cur].values.every(v => [0, 1].includes(v))) {\n      const [_, key, position] = cur.match(/^(\\w+)_(\\d+)$/)\n\n      acc[key] ||= { type: 'x', values: [] }\n      acc[key].values.push(position)\n\n      acc[cur].values = [0, 1]\n      acc[cur].x = true\n    }\n    return acc\n  }, {})\n","import SchemaRules from './schema-rules'\nimport BasicFilters from './basic-filters'\nimport MathHelpers from './math'\nimport ScriptEditor from './script-editor'\nimport ScriptsBasic from './scripts-basic'\nimport CommentsHelpers from './comments'\nimport ColorsHelper from './colors'\nimport GoogleUpload from './google-upload'\nimport { convertQuotas, convertTraits } from './traits'\nimport { convertCustomVariables } from './variables'\nimport { convertValuesToTree } from '@aytm/app/stats/lib/converter'\nimport { SENTIMENTS } from '@aytm/app/stats/page/comments/lib/constants'\nimport { getTagsList } from '@aytm/app/stats/page/comments/lib/utils'\n\nimport scrollToQuestionListener from '@aytm/app/survey/editor/components/lib/scroll-to-question-rx'\n\nif ('undefined' !== typeof window) {\n  window['$STATS'] || (window['$STATS'] = {})\n\n  window['$STATS']['SchemaRules'] = SchemaRules\n  window['$STATS']['BasicFilters'] = BasicFilters\n  window['$STATS']['Math'] = MathHelpers\n  window['$STATS']['ScriptEditor'] = ScriptEditor\n  window['$STATS']['ScriptsBasic'] = ScriptsBasic\n  window['$STATS']['Comments'] = CommentsHelpers\n  window['$STATS']['Colors'] = ColorsHelper\n  window['$STATS']['GoogleUpload'] = GoogleUpload\n  window['$STATS']['convertQuotas'] = convertQuotas\n  window['$STATS']['convertTraits'] = convertTraits\n  window['$STATS']['convertCustomVariables'] = convertCustomVariables\n  window['$STATS']['convertValuesToTree'] = convertValuesToTree\n\n  window['$STATS']['getTagsList'] = getTagsList\n\n  window['$STATS']['ScrollToQuestion'] = scrollToQuestionListener\n\n  window['$STATS']['SENTIMENTS'] = SENTIMENTS\n}\n\nexport {\n  SchemaRules,\n  BasicFilters,\n  MathHelpers as Math,\n  ScriptEditor,\n  ScriptsBasic,\n  CommentsHelpers as Comments,\n  ColorsHelper as Colors,\n  GoogleUpload,\n  convertQuotas,\n  convertTraits,\n  convertCustomVariables,\n  convertValuesToTree,\n  getTagsList,\n  scrollToQuestionListener as ScrollToQuestion\n}\n"],"names":["abs","Math","exp","log","pow","sqrt","PI","fpmin","visibleProbability","zScore","constants","confidenceLevels","map","_","i","normaldist","to","z","t","gammaln","x","xx","y","j","cof","ser","tmp","betacf","a","b","m2","aa","del","h","m","qab","qap","qam","c","d","ibeta","bt","qbeta","p","lna","lnb","u","al","w","a1","b1","afac","min","Betinc","X","A","B","C9","A0","B0","A1","B1","M9","A2","tcdf","df","Error","S","Z","BT","betacdf","res","round","tScoreCritical","significanceLevel","tLeft","tRight","pvalLeft","pvalRight","epsilon","calcErrorForNode","amount","total","conf_level","arguments","length","undefined","errLO","errHI","max","calcNodeError","node","Array","isArray","is","Object","zScoreKeys","keys","forEach","key","hasOwn","base","_i2","_zScoreKeys","zScoreKey","err","assign","_defineProperty","String","Number","percents","respTotal","respErr","respAmount","respPercents","calcMaxdiffNodeError","_step","elements","filter","k","test","_iterator","_createForOfIteratorHelper","_loop","value","confLevel","error","n","sd","confidenceLevel","isNaN","se","sigTestGetErrorMeanOneSample","rawAmount","probAmount","raw","_unused","s","done","e","f","baseQuestionTypes","countableQuestionTypes","calcErrorsForNode","type","includes","some","calcErrors","_ref2","questions","stats","_loop2","_ref","_Object$entries","_i3","id","_slicedToArray","answer","question","find","q","position","blocks","format","percentsOnly","variant","subtype","path","getIn","entries","calcNodeStatData","match","reduce","memo","parseFloat","toFixed","calcNodeStatDataByType","findNeighborsXY","sorted_x","included_indexes","target_point_index","threshold","target_point","x_neighbors_idxs","sorted_array","target_idx","neighbors","target_included_idx","indexOf","_i","push","reverse","findNeighbors","nb_idx","calcStatData","_ref4","_loop3","_ref3","_Object$entries2","_i4","subType","calcPointsGroups","sortedByX","sort","_indexes","_p","index","point_groups","_loop4","neighbors_group","group_idxs","new_neighbors","remaining_indexes","slice","last_found_neighbors","concat","el","findGroup","idx","group","sigTest","x1","x2","n1","n2","conf","p1","p2","pooledP","pValue","pValueByZ","sigTestMeanTwoSample","mu1","mu2","sd1","sd2","PROPS","connected","gotoSubject","Subject","keyDownListener","keyUpListener","bufferTimeout","maxBufferSize","stopEvent","event","preventDefault","stopImmediatePropagation","stopPropagation","listenKeys","stopListeningKeys","listenState","positionBuffer","bufferTimer","sendPosition","clearTimeout","next","parseInt","join","altKey","ctrlKey","shiftKey","metaKey","setTimeout","document","addEventListener","removeEventListener","PUBLIC","connect","disconnect","isConnected","timeout","size","subscribe","listener","resizeObserver","ResizeObserver","onScroll","props","started","Map","required","Set","debounce","debounceTimer","stop","clear","isVisible","Element","offsetParent","style","window","getComputedStyle","display","visibility","rect","getBoundingClientRect","top","height","innerHeight","documentElement","clientHeight","bottom","tasks","windowWidth","innerWidth","clientWidth","windowHeight","element","listeners","left","right","_step2","_iterator2","delete","requestAnimationFrame","step","shift","task","hasListener","has","render","get","add","set","observe","querySelector","body","renderElements","_step3","_iterator3","_step4","_iterator4","renderAll","callback","_step5","_iterator5","_step6","_iterator6","renderAllAnimationFrame","_step7","_iterator7","_ref6","_step8","_ref5","_iterator8","renderRequired","_step9","_iterator9","_loop5","_step10","_iterator10","_loop6","resolve","Promise","r","then","removeListener","removeAllListeners","CDN","initCode","encodeURIComponent","addScript","src","code","reject","script","createElement","onload","appendChild","createTextNode","text","initialize","scripts","monaco","name","promise","func","result","prototype","bind","ScriptsBasic","options","_classCallCheck","this","schemaQuestions","completeQuestions","surveySchema","getSurveySchema","_initScriptsBasic","_this","_complete","acc","cur","_getQuestionId","toUpperCase","answerVariants","v","batches","pre_type","visual_position","_this2","_keys","rb","_passed","data","_values","every","_getMXBasicData","_regeneratorRuntime","hasOwnProperty","o","defineProperty","Symbol","iterator","asyncIterator","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","l","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","pop","prev","charAt","rval","handle","complete","finish","catch","delegateYield","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","toString","_unsupportedIterableToArray","_nonIterableSpread","len","arr2","asyncGeneratorStep","gen","_next","_throw","info","fetchUploadUrl","_x","_x2","_fetchUploadUrl","apply","fn","_callee","upload_url","fileName","response","_context","railsPostFetch","JSON","stringify","contentType","json","status","self","args","SchemaRules","BasicFilters","MathHelpers","ScriptEditor","CommentsHelpers","ColorsHelper","surveyId","files","zip","JSZip","file","filename","content","base64","all","generateAsync","fileBlob","fetch","url","headers","convertQuotas","convertTraits","survey","customVariables","parse","_cur$match2","convertValuesToTree","getTagsList","scrollToQuestionListener","SENTIMENTS"],"sourceRoot":""}