{"version":3,"file":"js/chunk-common.25aab4bc.js","mappings":"uZAGA,MAAMA,EAAa,CAAEC,MAAO,qBACtBC,EAAa,CACjBC,IAAK,EACLF,MAAO,qCAEHG,EAAa,CAAEH,MAAO,0BACtBI,EAAa,CAAEF,IAAK,GACpBG,EAAa,CACjBH,IAAK,EACLF,MAAO,0BAEHM,EAAa,CACjBJ,IAAK,EACLF,MAAO,0BAEHO,EAAa,CAAEP,MAAO,qBACtBQ,EAAa,CAAER,MAAO,SACtBS,EAAa,CAAET,MAAO,0DACtBU,EAAc,CAClBR,IAAK,EACLF,MAAO,qBAEHW,EAAc,CAAEX,MAAO,SACvBY,EAAc,CAAEZ,MAAO,oBACvBa,EAAc,CAAC,YA8BrB,KAA4BC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,oBACRC,MAAO,CAAC,UAAW,QAAS,SAC5BC,KAAAA,CAAMC,GAAWC,KAAMC,ICkDzBC,EAAAA,GAAQC,IAAIC,EAAAA,KAEZ,MAAMJ,EAAOC,EAMPI,EAAyC,EAC7CC,EAAAA,EAAAA,IAAI,CACFC,GAAI,cACJC,WAAW,EACXC,YAAY,EACZC,YAAa,KACbC,KAAM,MACNC,aAAa,EACbC,MAAO,KACPC,WAAOC,EACPC,SAAS,KAEXV,EAAAA,EAAAA,IAAI,CACFC,GAAI,WACJU,0BAA2B,6CAC3BT,WAAW,EACXC,YAAY,EACZC,YAAa,KACbC,KAAM,OACNO,UAAW,UACXN,aAAa,EACbC,MAAO,KACPC,WAAOC,EACPC,SAAS,EACTG,QAAS,IAAIC,OAAO,WAAWC,UAI7BC,EAAiBjB,EAAW,GAC5BkB,EAAgBlB,EAAW,GAE3BmB,GAAgBC,EAAAA,EAAAA,KACpB,KACGH,EAAeT,MAAMC,QACpBS,EAAcV,MAAMC,OAASY,EAAab,OAC5Cc,EAAiBd,OACjBe,EAA6Bf,QAG3Bc,GAAmBrB,EAAAA,EAAAA,KAAI,GAEvBuB,GAAYvB,EAAAA,EAAAA,KAAI,GAChBwB,GAA8BxB,EAAAA,EAAAA,IAAmB,MAEjDoB,GAAepB,EAAAA,EAAAA,KAAI,GAEnBsB,GAA+BtB,EAAAA,EAAAA,KAAI,GAEnCyB,EAAmBA,KACvBJ,EAAiBd,OAAQ,CAAK,EAG1BmB,EAAmBA,KACvBL,EAAiBd,OAAQ,CAAI,EAmC/B,SAASoB,EACPC,EAKAC,GAEIb,EAAeT,MAAMN,KAAO4B,EAAM5B,GACpCe,EAAeT,MAAQ,IAAKsB,KAAUD,GAEtCX,EAAcV,MAAQ,IACjBsB,KACAD,EACHzB,WAAYiB,EAAab,OAI7BiB,EAA4BjB,MAAQ,IACtC,CAEA,SAASuB,IACFd,EAAeT,MAAMA,OAIrBwB,OAAOC,aAIPD,OAAOC,WAAWC,eAKvBV,EAAUhB,OAAQ,EAEba,EAAab,OA2BhB2B,EAAAA,EAAAA,GAAyB,CACvBC,YAAanB,EAAeT,MAAMA,MAClC6B,eAAgBL,OAAOC,WAAWC,cAClCI,SAAUpB,EAAcV,MAAMA,QAE7B+B,MACEC,KACCC,EAAAA,EAAAA,IAAc,IACTD,EACHJ,YAAanB,EAAeT,MAAMA,MAClCkC,mBAAoBC,EAAAA,GAAanC,OAAOoC,YAAYC,MACpDC,gBAAiBC,EAAAA,GAAYC,KAC7BX,eAAgBL,OAAOC,WAAWC,cAClCI,SAAUpB,EAAcV,MAAMA,QAGhCyC,IAEAtD,EAAK,UAAWuD,EAAAA,GAAW1C,MAAqB,IAEjD2C,IACCjC,EAAcV,MAAMA,MAAQ,KAC5BU,EAAcV,MAAMG,SAAU,EAC9BO,EAAcV,MAAMC,WAAQC,EAE5BW,EAAab,OAAQ,EACrBwB,OAAOC,WAAWmB,QAElB,MAAMC,EAAwC,CAC5C,IAAK,qBACL,IAAK,kBACL,IAAK,iBAEP,IAAIC,EAAWD,EAAcF,EAAMI,QAE/BC,EAAAA,GAAahD,MAAMiD,OAAOC,SAA4B,MAAjBP,EAAMI,SAC7CD,EAAW,gCAGb7B,EAA4BjB,MAAQ,8CAA8C8C,KAElFK,EAAAA,EAAAA,IACEC,EAAAA,GAAwBC,SAASC,OAAOC,gBAAgBC,OACxDJ,EAAAA,GAAwBC,SAASC,OAAOC,gBAAgBE,SACxD,0BACD,IAGJC,SAAQ,KACP1C,EAAUhB,OAAQ,CAAK,KA3E3B2D,EAAAA,EAAAA,GAAuB,CACrB/B,YAAanB,EAAeT,MAAMA,MAClC6B,eAAgBL,OAAOC,WAAWC,gBAEjCK,MACC,KACElB,EAAab,OAAQ,CAAI,IAE1B2C,IACC,MAAME,EAAwC,CAC5C,IAAK,qBACL,IAAK,mBACL,IAAK,kBACL,IAAK,iBAGPrB,OAAOC,WAAWmB,QAClB3B,EAA4BjB,MAAQ,8CAClC6C,EAAcF,EAAMI,SACpB,IAGLW,SAAQ,KACP1C,EAAUhB,OAAQ,CAAK,KA9B3Be,EAA6Bf,OAAQ,EAqFzC,CAEA,SAASyC,IACP,MAAMhC,GAAiBmD,EAAAA,EAAAA,KAAgBC,MAAMC,GAAiB,gBAAVA,EAAGpE,KAEnDe,IACFA,EAAesD,YAAa,EAEhC,CAEA,SAASC,IACPnD,EAAab,OAAQ,EACrBb,EAAK,QAAS,CAAE8E,QAAS,yBAC3B,CDlDA,OC/GAC,EAAAA,EAAAA,KAAU,KACRlD,EAAUhB,OAAQ,EAElB,MAAMmE,EAASC,SAASC,cAAc,UACtCF,EAAOG,aACL,MACA,2DAGFH,EAAOI,OAAQ,EACfJ,EAAOK,OAAQ,EACfJ,SAASK,KAAKC,YAAYP,GAE1BA,EAAOQ,OAAS,KAEd,IAAIC,EAAsBC,aAAY,KAEL,qBAAtBrD,OAAOC,YACsB,qBAA7BD,OAAOC,WAAWqD,SAEzBC,cAAcH,GACdpD,OAAOC,WAAWqD,OAAO,mBAAoB,CAC3CE,QAASC,EAAAA,EAAYC,mBACrBC,SAAUjE,EACV,mBAAoBC,IAEtBH,EAAUhB,OAAQ,E,GAEnB,IAAI,CACR,IDkFI,CAACoF,EAAUC,MACRC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,EAAa,KAAM,CACpDC,QAAQC,EAAAA,EAAAA,KAAS,IAAM,EACrBC,EAAAA,EAAAA,IAAoB,KAAM5H,GAAY6H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,6CAA8C,MAEpHE,SAASL,EAAAA,EAAAA,KAAS,IAAM,EACtBM,EAAAA,EAAAA,IAAaC,EAAAA,GACXjF,EAAUhB,OAyCRkG,EAAAA,EAAAA,IAAoB,IAAI,KAxCvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQlI,EAAY,EACrD0H,EAAAA,EAAAA,IAAoB,MAAOxH,EAAY,EACrC6H,EAAAA,EAAAA,IAAaI,EAAAA,EAAW,CACtB9E,OAAOuE,EAAAA,EAAAA,IAAOpF,GACd,iBAAkB4E,EAAO,KAAOA,EAAO,GAAMgB,GAAiBjF,EAAaiF,GAAQR,EAAAA,EAAAA,IAAOpF,MACzF,KAAM,EAAG,CAAC,YAEbI,EAAab,OAYXkG,EAAAA,EAAAA,IAAoB,IAAI,KAXvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO/H,EAAY,EACpDuH,EAAAA,EAAAA,IAAoB,OAAQ,KAAM,EAChCW,EAAAA,EAAAA,KAAiBV,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,0DAA2D,GAC1GR,EAAO,KAAOA,EAAO,IAAKM,EAAAA,EAAAA,IAAoB,OAAQ,CAAE3H,MAAO,QAAU,KAAM,OAEjF2H,EAAAA,EAAAA,IAAoB,IAAK,CACvBY,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBxF,EAAab,OAASa,EAAab,OACxFhC,MAAO,+BACPwI,KAAM,iBACLZ,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,yBAA0B,MAGhEhF,EAAab,QACTsF,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO9H,EAAY,EACpD2H,EAAAA,EAAAA,IAAaI,EAAAA,EAAW,CACtB9E,OAAOuE,EAAAA,EAAAA,IAAOnF,GACd,iBAAkB2E,EAAO,KAAOA,EAAO,GAAMgB,GAAiBjF,EAAaiF,GAAQR,EAAAA,EAAAA,IAAOnF,MACzF,KAAM,EAAG,CAAC,cAEfwF,EAAAA,EAAAA,IAAoB,IAAI,GAC3BjF,EAA4BjB,QACxBsF,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO7H,EAAY,EACpDqH,EAAAA,EAAAA,IAAoB,OAAQpH,EAAY,EACtCyH,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,2BACP0I,MAAMb,EAAAA,EAAAA,IAAOtG,EAAAA,MACZ,KAAM,EAAG,CAAC,UACboG,EAAAA,EAAAA,IAAoB,OAAQnH,GAAYoH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa5E,EAA4BjB,QAAS,SAG/GkG,EAAAA,EAAAA,IAAoB,IAAI,OAGlCP,EAAAA,EAAAA,IAAoB,MAAOlH,EAAY,CACrC4G,EAAO,KAAOA,EAAO,IAAKM,EAAAA,EAAAA,IAAoB,MAAO,CACnD3H,MAAO,QACP0B,GAAI,oBACH,MAAO,IACTqB,EAA6Bf,QACzBsF,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQzH,EAAa,EACtDsH,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,2BACP0I,MAAMb,EAAAA,EAAAA,IAAOtG,EAAAA,MACZ,KAAM,EAAG,CAAC,UACboG,EAAAA,EAAAA,IAAoB,OAAQhH,GAAaiH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,0DAA2D,OAEpIK,EAAAA,EAAAA,IAAoB,IAAI,KAE7BlF,EAAUhB,QACNsF,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaoB,EAAAA,EAAe,CAAEzI,IAAK,MAClDgI,EAAAA,EAAAA,IAAoB,IAAI,MAE9BU,QAAQlB,EAAAA,EAAAA,KAAS,IAAM,EACrBC,EAAAA,EAAAA,IAAoB,MAAO/G,EAAa,EACtC+G,EAAAA,EAAAA,IAAoB,SAAU,CAC5BY,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBrC,KACrDhG,MAAO,wFACN4H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,qBAAsB,IACvDF,EAAAA,EAAAA,IAAoB,SAAU,CAC5BkB,SAAUlG,EAAcX,MACxBuG,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiB9E,KACrDvD,MAAO,iKACN4H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,sBAAuB,EAAGhH,QAG/DiI,EAAG,IAGP,I,4TE9WA,MAAM/I,EAAa,CAAEC,MAAO,qBACtBC,EAAa,CAAED,MAAO,qCACtBG,EAAa,CAAEH,MAAO,oBACtBI,EAAa,CAAC,YAuBpB,KAA4BU,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,kBACRC,MAAO,CAAC,UAAW,SACnBC,KAAAA,CAAMC,GAAWC,KAAMC,ICgCzB,MAAMD,EAAOC,EAKb,IAAII,GAAyCC,EAAAA,EAAAA,KAAImE,EAAAA,EAAAA,MAEjD,SAASxC,EACPC,EAKA0F,GAEAvH,EAAWQ,MAAM+G,GAAS,IAAKvH,EAAWQ,MAAM+G,MAAW1F,EAC7D,CAEA,MAAMV,GAAgBC,EAAAA,EAAAA,KAAkB,IACtCpB,EAAWQ,MAAMgH,MACdC,IACGA,EAAErH,aAA0B,IAAZqH,EAAEhH,OACnBgH,EAAErH,aAAeqH,EAAEhH,OAAoB,WAAXgH,EAAEnH,SAIrC,SAASyB,IACHZ,EAAcX,OAIbmC,EAAAA,GAAanC,OAAOoC,aAIzB8E,IACAC,KACAC,EAAAA,EAAAA,IACE5H,EAAWQ,MACXmC,EAAAA,GAAanC,OAAOoC,WAAWC,OAGjClD,EAAK,UAAWuD,EAAAA,GAAW1C,OAC3BgE,IACF,CAEA,SAASA,KACPqD,EAAAA,EAAAA,KACAlI,EAAK,QACP,CAEA,SAAS+H,IACP,MAAMI,EAAiB9H,EAAWQ,MAAM6D,MACrCvC,GAAuB,mBAAbA,EAAM5B,KAGf4H,IACFA,EAAetH,MAAQR,EAAWQ,MAC/BuH,QAAQjG,GAAyB,iBAAfA,EAAMxB,OAA2C,IAAhBwB,EAAMtB,QACzDwH,KAAKC,GAAMC,OAAOD,EAAE/H,MAE3B,CAEA,SAASyH,IACP3H,EAAWQ,MAAQR,EAAWQ,MAAMuH,QACjCI,GAAiC,iBAAnBA,EAAU7H,MAE7B,CAGA,GAAI4C,EAAAA,GAAW1C,MAAO,CACpB,MAAM4H,EAAkBC,OAAOC,QAAQpF,EAAAA,GAAW1C,OAAsB6D,MACrEvC,GAAuB,mBAAbA,EAAM,OACf,GAGAsG,IACFG,EAAAA,EAAAA,IAAgBF,OAAOG,YAAYJ,EAAgBJ,KAAKS,GAAM,CAACA,GAAG,OAIpEJ,OAAOC,QAAQpF,EAAAA,GAAW1C,OAAsBkI,SAAS5G,IACvD,MAAO6G,EAAUC,GAAc9G,EAEzBqG,EAAYnI,EAAWQ,MAAM6D,MAChC8D,GAAcA,EAAUjI,KAAOyI,IAG7BR,IAILA,EAAU3H,MAAQoI,EAQG,gBAAjBT,EAAUjI,IAAwBiI,EAAU3H,MAC9C2H,EAAU3H,MAAS2H,EAAU3H,MAAiBqI,QAAQ,OAAQ,IACpC,gBAAjBV,EAAUjI,GAEnBiI,EAAU3H,MAAQ,GACQ,WAAjB2H,EAAUjI,IAAmBiI,EAAU3H,MAChD2H,EAAU3H,OAAQ8F,EAAAA,EAAAA,IAChB,yDAAyD6B,EAAU3H,SAGrE2H,EAAU7H,OAASwI,EAAAA,GAAyBC,WAC5CZ,EAAU3H,QAEV2H,EAAU3H,MAAQwI,EAA0Bb,IAG1CS,IACFT,EAAU1H,OAAQ,G,IAKxB,SAASuI,EAA0Bb,GACjC,IAAIc,EAAOC,EAAmB,IAAIC,KAAKhB,EAAU3H,QAMjD,OAJK2H,EAAUiB,cACbH,EAAOA,EAAKI,MAAM,EAAG,KAGhBJ,CACT,CAEA,SAASC,EAAmBD,GAC1B,MAAMK,EAAOL,EAAKM,cACZC,GAASP,EAAKQ,WAAa,GAAGC,WAAWC,SAAS,EAAG,KACrDC,EAAMX,EAAKY,UAAUH,WAAWC,SAAS,EAAG,KAC5CG,EAAQb,EAAKc,WAAWL,WAAWC,SAAS,EAAG,KAC/CK,EAAUf,EAAKgB,aAAaP,WAAWC,SAAS,EAAG,KAEzD,MAAO,GAAGL,KAAQE,KAASI,KAAOE,KAASE,GAC7C,CD/BA,MAAO,CAACpE,EAAUC,MACRC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,EAAa,KAAM,CACpDC,QAAQC,EAAAA,EAAAA,KAAS,IAAM,EACrBC,EAAAA,EAAAA,IAAoB,KAAM5H,GAAY6H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,6CAA8C,MAEpHE,SAASL,EAAAA,EAAAA,KAAS,IAAM,EACtBM,EAAAA,EAAAA,IAAaC,EAAAA,IACbN,EAAAA,EAAAA,IAAoB,OAAQ1H,EAAY,GACrCqH,EAAAA,EAAAA,KAAW,IAAOa,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,MAAMC,EAAAA,EAAAA,KAAY9D,EAAAA,EAAAA,IAAOrG,IAAa,CAACmI,EAAWZ,MAC1FzB,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CAC/CjI,IAAKyJ,EAAUjI,GACf1B,MAAO,0BACN,EACDgI,EAAAA,EAAAA,IAAaI,EAAAA,EAAW,CACtB9E,MAAOqG,EACP,iBAAmBtB,GAAiBjF,EAAaiF,EAAQU,IACxD,KAAM,EAAG,CAAC,QAAS,wBAEtB,OACJf,EAAAA,EAAAA,IAAa4D,EAAAA,EAAoB,CAC/B5L,MAAO,cACP,aAAc,iBAIpB4I,QAAQlB,EAAAA,EAAAA,KAAS,IAAM,EACrBC,EAAAA,EAAAA,IAAoB,MAAOxH,EAAY,EACrCwH,EAAAA,EAAAA,IAAoB,SAAU,CAC5BY,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBrC,KACrDhG,MAAO,wFACN4H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,qBAAsB,IACvDF,EAAAA,EAAAA,IAAoB,SAAU,CAC5BkB,SAAUlG,EAAcX,MACxBuG,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiB9E,KACrDvD,MAAO,iKACN4H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,sBAAuB,EAAGzH,QAG/D0I,EAAG,IAGP,I,qOEnNA,MAAM/I,EAAa,CAAEC,MAAO,qBACtBC,EAAa,CAAED,MAAO,qCACtBG,EAAa,CAAEH,MAAO,0BACtBI,EAAa,CAAEJ,MAAO,oBACtBK,EAAa,CAAC,YC8CdwL,EAA0C,+BD7BhD,KAA4B/K,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,wBACRC,MAAO,CAAC,UAAW,SACnBC,KAAAA,CAAMC,GAAWC,KAAMC,IC2BzB,MAAMD,EAAOC,EAKP0K,GAAQrK,EAAAA,EAAAA,IAAyB,CACrCC,GAAI,QACJC,WAAW,EACXC,YAAY,EACZC,YAAa,KACbC,KAAM,QACNC,aAAa,EACbC,MAAO,KACPC,WAAOC,EACPC,SAAS,IAGX,SAASiB,EAAaC,GAKpByI,EAAM9J,MAAQ,IAAK8J,EAAM9J,SAAUqB,EACrC,CAEA,MAAMV,GAAgBC,EAAAA,EAAAA,KAAS,KAAOkJ,EAAM9J,MAAMC,QAElD,SAASsB,KACP6F,EAAAA,EAAAA,IAAyB,CAAC0C,EAAM9J,OAAQ+J,EAAAA,GAAYC,MACpD7K,EAAK,UAAWuD,EAAAA,GAAW1C,MAC7B,CAEA,SAASgE,IACP7E,EAAK,QAAS,CAAE8E,QAAS4F,GAC3B,CD1BA,MAAO,CAACzE,EAAUC,MACRC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,EAAa,KAAM,CACpDC,QAAQC,EAAAA,EAAAA,KAAS,IAAM,EACrBC,EAAAA,EAAAA,IAAoB,KAAM5H,GAAY6H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CACjD,2EACE,MAEVE,SAASL,EAAAA,EAAAA,KAAS,IAAM,EACtBM,EAAAA,EAAAA,IAAaC,EAAAA,IACbN,EAAAA,EAAAA,IAAoB,OAAQ1H,EAAY,EACtC0H,EAAAA,EAAAA,IAAoB,MAAOxH,EAAY,EACrC6H,EAAAA,EAAAA,IAAaI,EAAAA,EAAW,CACtB9E,MAAOwI,EAAM9J,MACb,iBAAkBqF,EAAO,KAAOA,EAAO,GAAMgB,GAAiBjF,EAAaiF,KAC1E,KAAM,EAAG,CAAC,iBAInBO,QAAQlB,EAAAA,EAAAA,KAAS,IAAM,EACrBC,EAAAA,EAAAA,IAAoB,MAAOvH,EAAY,EACrCuH,EAAAA,EAAAA,IAAoB,SAAU,CAC5BY,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBrC,KACrDhG,MAAO,wFACN4H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,qBAAsB,IACvDF,EAAAA,EAAAA,IAAoB,SAAU,CAC5BkB,SAAUlG,EAAcX,MACxBuG,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiB9E,KACrDvD,MAAO,iKACN4H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,kBAAmB,EAAGxH,QAG3DyI,EAAG,IAGP,I,+SE7FA,MAAM/I,EAAa,CAAEC,MAAO,qBACtBC,EAAa,CACjBC,IAAK,EACLF,MAAO,qCAEHG,EAAa,CAAEH,MAAO,0BACtBI,EAAa,CAAEJ,MAAO,oBACtBK,EAAa,CAAC,YAqBpB,KAA4BS,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,oBACRC,MAAO,CAAC,UAAW,QAAS,SAC5BC,KAAAA,CAAMC,GAAWC,KAAMC,ICsBzB,MAAMD,EAAOC,EAMP6K,GAAQxK,EAAAA,EAAAA,IAAyB,CACrCC,GAAI,cACJC,WAAW,EACXC,YAAY,EACZC,YAAa,KACbC,KAAM,MACNC,aAAa,EACbC,MAAO,KACPC,WAAOC,EACPC,SAAS,IAGLQ,GAAgBC,EAAAA,EAAAA,KAAS,KAAOqJ,EAAMjK,MAAMC,QAE5Ce,GAAYvB,EAAAA,EAAAA,KAAI,GAChBwB,GAA8BxB,EAAAA,EAAAA,IAAmB,MAEvD,SAAS2B,EAAaC,GAKpB4I,EAAMjK,MAAQ,IAAKiK,EAAMjK,SAAUqB,EACrC,CAEA,SAASE,IACF0I,EAAMjK,MAAMA,QAIjBgB,EAAUhB,OAAQ,GAElB2B,EAAAA,EAAAA,GAAyB,CAAEC,YAAaqI,EAAMjK,MAAMA,QACjD+B,MACEC,KACCC,EAAAA,EAAAA,IAAc,IACTD,EACHJ,YAAaqI,EAAMjK,MAAMA,MACzBkC,mBAAoBC,EAAAA,GAAanC,OAAOoC,YAAYC,MACpDC,gBAAiBC,EAAAA,GAAYC,OAG/BC,IAEAtD,EAAK,UAAWuD,EAAAA,GAAW1C,MAAqB,IAEjD2C,IACC,MAAME,EAAwC,CAC5C,IAAK,qBACL,IAAK,kBACL,IAAK,iBAEP5B,EAA4BjB,MAAQ,8CAClC6C,EAAcF,EAAMI,WAEtBI,EAAAA,EAAAA,IACEC,EAAAA,GAAwBC,SAASC,OAAOC,gBAAgBC,OACxDJ,EAAAA,GAAwBC,SAASC,OAAOC,gBAAgBE,SACxD,0BACD,IAGJC,SAAQ,KACP1C,EAAUhB,OAAQ,CAAK,IAE7B,CAEA,SAASyC,IACP,MAAMhC,GAAiBmD,EAAAA,EAAAA,KAAgBC,MAAMC,GAAiB,gBAAVA,EAAGpE,KAEnDe,IACFA,EAAesD,YAAa,EAEhC,CAEA,SAASC,IACP7E,EAAK,QAAS,CAAE8E,QAAS,yBAC3B,CDtBA,MAAO,CAACmB,EAAUC,MACRC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,EAAa,KAAM,CACpDC,QAAQC,EAAAA,EAAAA,KAAS,IAAM,EACrBC,EAAAA,EAAAA,IAAoB,KAAM5H,GAAY6H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,6CAA8C,MAEpHE,SAASL,EAAAA,EAAAA,KAAS,IAAM,EACtBM,EAAAA,EAAAA,IAAaC,EAAAA,GACXjF,EAAUhB,OASRkG,EAAAA,EAAAA,IAAoB,IAAI,KARvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQlI,EAAY,EACrD0H,EAAAA,EAAAA,IAAoB,MAAOxH,EAAY,EACrC6H,EAAAA,EAAAA,IAAaI,EAAAA,EAAW,CACtB9E,MAAO2I,EAAMjK,MACb,iBAAkBqF,EAAO,KAAOA,EAAO,GAAMgB,GAAiBjF,EAAaiF,KAC1E,KAAM,EAAG,CAAC,eAIpBrF,EAAUhB,QACNsF,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaoB,EAAAA,EAAe,CAAEzI,IAAK,MAClDgI,EAAAA,EAAAA,IAAoB,IAAI,MAE9BU,QAAQlB,EAAAA,EAAAA,KAAS,IAAM,EACrBC,EAAAA,EAAAA,IAAoB,MAAOvH,EAAY,EACrCuH,EAAAA,EAAAA,IAAoB,SAAU,CAC5BY,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBrC,KACrDhG,MAAO,wFACN4H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,qBAAsB,IACvDF,EAAAA,EAAAA,IAAoB,SAAU,CAC5BkB,SAAUlG,EAAcX,MACxBuG,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiB9E,KACrDvD,MAAO,iKACN4H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,kBAAmB,EAAGxH,QAG3DyI,EAAG,IAGP,I,gPEvJA,MAAM/I,EAAa,CAAEC,MAAO,qDAa5B,KAA4Bc,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,iBACRmL,MAAO,CACPC,wBAAyB,CACvBrK,KAAMsK,QACNC,SAAS,IAGXpL,KAAAA,CAAMC,GAIR,MAAO,CAACkG,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAUpI,EAAY,CAC7DmB,EAAQiL,0BACJ7E,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa+E,EAAAA,EAAkB,CAAEpM,IAAK,MACrDgI,EAAAA,EAAAA,IAAoB,IAAI,IAC3BL,EAAAA,EAAAA,IAAO0E,EAAAA,MACHjF,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaiF,EAAAA,EAAmB,CAAEtM,IAAK,MACtDgI,EAAAA,EAAAA,IAAoB,IAAI,IAC5BF,EAAAA,EAAAA,IAAayE,EAAAA,IACZ5E,EAAAA,EAAAA,IAAO6E,EAAAA,GAAP7E,MAA8BA,EAAAA,EAAAA,IAAO8E,EAAAA,GAAP9E,KAC1BP,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaqF,EAAAA,EAAU,CAAE1M,IAAK,MAC7CgI,EAAAA,EAAAA,IAAoB,IAAI,IAC5BF,EAAAA,EAAAA,IAAa6E,EAAAA,KAGjB,I,wSCxCA,MAAM9M,EAAa,CAAEC,MAAO,oLACtBC,EAAa,CAAC,OACdE,EAAa,CACjBD,IAAK,EACLF,MAAO,4GAEHI,EAAa,CAAEJ,MAAO,wCACtBK,EAAa,CAAEL,MAAO,uEACtBM,EAAa,CACjBJ,IAAK,EACLF,MAAO,kBAEHO,EAAa,CACjBL,IAAK,EACLF,MAAO,8FA6BT,KAA4Bc,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,WACRE,KAAAA,CAAMC,GC6DRG,EAAAA,GAAQC,IAAIwL,EAAAA,IAAYC,EAAAA,IAAaC,EAAAA,IAAaC,EAAAA,IAAUC,EAAAA,KAE5D,MAAMC,GAAO1L,EAAAA,EAAAA,MACP2L,GAAyBC,EAAAA,EAAAA,MAC/B,IAAIC,GAA8B7L,EAAAA,EAAAA,MAC9B8L,GAA+B9L,EAAAA,EAAAA,MAiBnC8E,eAAeiH,EAAMC,IAClBA,EAASC,QAAQC,QAAQF,IAAUG,EAAAA,EAAAA,OACjC7J,MAAM8J,GACEA,GACHC,EAAAA,EAAAA,IAAUD,GACVH,QAAQC,YAEb5J,KAAKgK,GAAY,QAGtB,CAEAxH,eAAeyH,KACTrB,EAAAA,EAAAA,cAIEsB,EAAAA,EAAAA,YACAC,EAAAA,EAAAA,MACR,CAEA,SAASH,IACHI,EAAAA,GAAWnM,QACbmL,EAAKnL,MAAQ,CACXoM,YAAa1J,EAAAA,GAAW1C,OAAOoM,YAC/BC,SAAU3J,EAAAA,GAAW1C,OAAOsM,UAGlC,CDvDA,OCa4C,IAA1ClB,EAAuBmB,QAAQC,QAC9BpB,EAAuBqB,OAOxBrB,EAAuBqB,QACmB,IAA1CrB,EAAuBmB,QAAQC,SAE/BjB,EAA6BvL,MAAQoL,EAAuBqB,SAR5DnB,EAA4BtL,MAAQoL,EAAuBmB,QAAQ,GACnEjB,EAA4BtL,MAAM0M,KAChCtB,EAAuBmB,QAAQ,GAAGd,OAAOkB,WACzCvB,EAAuBmB,QAAQ,GAAGd,OAAOpJ,QAsC7CuK,EAAAA,EAAAA,IAAMlK,EAAAA,GAAYqJ,GDzDX,CAAC3G,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CAC/CnI,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,gDAAiD,CAAE,YAAYhH,EAAAA,EAAAA,IAAO6E,EAAAA,GAAP7E,KAA6BA,EAAAA,EAAAA,IAAO8E,EAAAA,GAAP9E,OACnH,EACDF,EAAAA,EAAAA,IAAoB,MAAO5H,EAAY,CACnCoN,EAAKnL,OA2DHkG,EAAAA,EAAAA,IAAoB,IAAI,KA1DvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,CAAExL,IAAK,GAAK,EACvD2H,EAAAA,EAAAA,IAAOyF,KACHhG,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAC3CjI,IAAK,EACLqI,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBmF,GAAM3F,EAAAA,EAAAA,IAAOyF,GAA6BG,SAC/FzN,MAAO,kKACP8O,OAAOC,EAAAA,EAAAA,KAAgBlH,EAAAA,EAAAA,IAAOyF,GAA6B0B,4BAC1D,GAEJnH,EAAAA,EAAAA,IAAOyF,GAA6B2B,0BACrCpH,EAAAA,EAAAA,IAAOyF,GAA6B4B,eAE3B5H,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaM,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACnDvI,IAAK,EACLF,MAAO,gBACP0I,MAAMb,EAAAA,EAAAA,IAAOyF,GAA6B4B,cACzC,KAAM,EAAG,CAAC,WACbhH,EAAAA,EAAAA,IAAoB,IAAI,IAC3BL,EAAAA,EAAAA,IAAOyF,GAA6B2B,0BAChC3H,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CACxCjI,IAAK,EACLF,MAAO,0BACPmP,KAAKtH,EAAAA,EAAAA,IAAOyF,GAA6B2B,yBACxC,KAAM,EAAGhP,KACZiI,EAAAA,EAAAA,IAAoB,IAAI,IAC5BI,EAAAA,EAAAA,IAAiB,KAAMV,EAAAA,EAAAA,IAAiB,IAAGC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,oCAC5DA,EAAAA,EAAAA,IAAOyF,GAA6BoB,QACjC,IACE,KACHxG,EAAAA,EAAAA,IAAoB,IAAI,IAC3BL,EAAAA,EAAAA,IAAO0F,KACHjG,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAC3CjI,IAAK,EACLqI,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBmF,GAAM3F,EAAAA,EAAAA,IAAO0F,GAA8BE,SAChGzN,MAAO,wNACP8O,OAAOC,EAAAA,EAAAA,KAAgBlH,EAAAA,EAAAA,IAAO0F,GAA8ByB,4BAC3D,GAEJnH,EAAAA,EAAAA,IAAO0F,GAA8B0B,0BACtCpH,EAAAA,EAAAA,IAAO0F,GAA8B2B,eAE5B5H,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaM,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACnDvI,IAAK,EACLF,MAAO,gBACP0I,MAAMb,EAAAA,EAAAA,IAAO0F,GAA8B2B,cAC1C,KAAM,EAAG,CAAC,WACbhH,EAAAA,EAAAA,IAAoB,IAAI,IAC5BI,EAAAA,EAAAA,IAAiB,KAAMV,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,6BAA8B,IAClF,KACHK,EAAAA,EAAAA,IAAoB,IAAI,IAC1BL,EAAAA,EAAAA,IAAOyF,KAAiCzF,EAAAA,EAAAA,IAAO0F,IAM7CrF,EAAAA,EAAAA,IAAoB,IAAI,KALvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAC3CjI,IAAK,EACLqI,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBmF,KACrDxN,MAAO,0NACN4H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,6BAA8B,KAElE,KAENsF,EAAKnL,QACDsF,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOhI,EAAY,EACpDwH,EAAAA,EAAAA,IAAoB,MAAOvH,EAAY,EACrCuH,EAAAA,EAAAA,IAAoB,MAAOtH,EAAY,EACrC2H,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,oDACP0I,MAAMb,EAAAA,EAAAA,IAAOuH,EAAAA,MACZ,KAAM,EAAG,CAAC,UACb9G,EAAAA,EAAAA,IAAiB,KAAMV,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,2BAA4B,KAElFsF,EAAKnL,OAAOqM,WACR/G,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO7H,GAAYsH,EAAAA,EAAAA,IAAiBuF,EAAKnL,OAAOqM,UAAW,KAC9FnG,EAAAA,EAAAA,IAAoB,IAAI,GAC3BiF,EAAKnL,OAAOoM,cACR9G,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO5H,GAAYqH,EAAAA,EAAAA,IAAiBuF,EAAKnL,OAAOoM,aAAc,KACjGlG,EAAAA,EAAAA,IAAoB,IAAI,MAE9BP,EAAAA,EAAAA,IAAoB,SAAU,CAC5BY,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiB2F,KACrDhO,MAAO,8OACN4H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,sBAAuB,OAE1DK,EAAAA,EAAAA,IAAoB,IAAI,MAE7B,GAEL,I,uYEvKM,SAAUmH,KACdC,EAAAA,EAAAA,MACAC,EAAAA,EAAAA,MAEArJ,EAAAA,EAAAA,KAAU,MACRsJ,EAAAA,EAAAA,IAAwB,CACtBC,WAAYA,EAAG9B,UAAS+B,YAClBA,GACFC,IAGFhC,GAAS,KAGbiC,EAAAA,EAAAA,OACAC,EAAAA,EAAAA,KAAkB,IAGpB,MAAMC,GAAiBC,EAAAA,EAAAA,GAAkB,cACnCC,GAAyBvO,EAAAA,EAAAA,KAAI,GAC7BwO,GAAWxO,EAAAA,EAAAA,KAAI,GACfyO,GAAazO,EAAAA,EAAAA,IAAI0O,EAAAA,IACjBC,GAA4B3O,EAAAA,EAAAA,KAAI,GAChC4O,GAAmB5O,EAAAA,EAAAA,KAAI,GACvB6O,GAAmBC,EAAAA,EAAAA,IAAyB,oBAC5CC,GAA4B5N,EAAAA,EAAAA,KAChC,IAAMuL,EAAAA,GAAWnM,OAASgO,EAAuBhO,QAE7CyO,GAAmB7N,EAAAA,EAAAA,KACvB,KACG4N,EAA0BxO,QAC1BoO,EAA0BpO,QAC1BiO,EAASjO,QACTqO,EAAiBrO,QAGhB2N,EAASA,KACbe,EAAAA,EAAaC,qBACbC,EAAAA,EAAAA,MAAoB7M,MACjB8J,IACC,MAAMnJ,EAAamJ,EAEdnJ,EAAW1C,OAAO6O,QAMrB1L,EAAAA,EAAAA,IAAkBC,EAAAA,GAAwBC,SAASyL,GAAGC,WACtDf,EAAuBhO,OAAQ,IAN/BoO,EAA0BpO,OAAQ,EAClC0O,EAAAA,EAAaM,cAAelJ,EAAAA,EAAAA,IAC1B,yCAOJmJ,GAAyB,IAE3B,EAAGhL,cAECA,IAAYiL,EAAAA,IACZjL,IAAYkL,EAAAA,KAEZT,EAAAA,EAAaM,cAAelJ,EAAAA,EAAAA,IAAK,qC,GAGtC,EAGH,MAAO,CACLgI,iBACAU,4BACAP,WACAC,aACAE,4BACAC,mBACAC,mBACAG,mBACAd,SAEJ,CAEA,SAASsB,IACP,MAAMG,EAAUhL,SAASiL,cAAc,qBAElCD,IAIDjB,EAAAA,GAAYnO,OACdsP,EAAAA,EAAAA,IAAiBF,GAEjBA,EAAQG,iBAEZ,E,oeC5EA,MAAMC,EAAqB,UAErB,MAAEC,EAAK,YAAEC,EAAW,kBAAEC,EAAiB,cAAEC,EAAa,OAAEC,IAC5DC,EAAAA,EAAAA,MAEIC,GAA2BtQ,EAAAA,EAAAA,KAC/BuQ,EAAAA,EAAAA,IAA2B,CACzBP,QACAC,cACAC,oBACAC,gBACAC,aAIE,SACJI,EAAQ,SACRC,EAAQ,aACRC,EAAY,aACZC,EAAY,kBACZC,EAAiB,kBACjBC,EAAiB,mBACjBC,IACEC,EAAAA,EAAAA,IAAmB,CACrBf,QACAC,gBAGEG,IACFU,EAAmBvQ,MAAQyQ,GACzBZ,EACAE,EACAQ,EAAmBvQ,OACnB0Q,qBAGJ,MAAMC,GAAmBlR,EAAAA,EAAAA,KAAI,GACvBmR,GAAmBnR,EAAAA,EAAAA,KAAI,GACvBoR,GAA0BpR,EAAAA,EAAAA,KAAI,GAC9BqR,GAAQrR,EAAAA,EAAAA,IAA+B,IACvCsR,GAA2BtR,EAAAA,EAAAA,KAAI,GAC/BuR,GAAevR,EAAAA,EAAAA,IAAmB,MAClCwR,GAAsBxR,EAAAA,EAAAA,IAAmB,MACzCqO,GAAiBC,EAAAA,EAAAA,GAAkB,UACnCmD,GACJC,EAAAA,EAAAA,IAAwB,gBAAkB3B,EACtCxB,GAAyBvO,EAAAA,EAAAA,KAAI,GAC7BwO,GAAWxO,EAAAA,EAAAA,KAAI,GACfyO,GAAazO,EAAAA,EAAAA,IAAI0O,EAAAA,IACjBK,GAA4B5N,EAAAA,EAAAA,KAChC,IAAMuL,EAAAA,GAAWnM,OAASgO,EAAuBhO,QAE7CoR,GAAoB3R,EAAAA,EAAAA,IAA8B,MAElD4R,GAAUzQ,EAAAA,EAAAA,KAAS,IAChB2P,EAAmBvQ,MACtB+P,EAAyB/P,MAAMsR,KAC/BvB,EAAyB/P,MAAMuR,OAG/BC,GAA0B5Q,EAAAA,EAAAA,KAAS,IAChCmQ,EAAyB/Q,OAAS6Q,EAAwB7Q,QAG7DyR,IAAoB7Q,EAAAA,EAAAA,KAAS,IAE/B4Q,EAAwBxR,OAAUkR,GAAsBJ,EAAM9Q,MAAMwM,SA8ClE,SAAUkF,KAgDd,OA/CApE,EAAAA,EAAAA,MACAC,EAAAA,EAAAA,MAEArJ,EAAAA,EAAAA,KAAUK,WACRiJ,EAAAA,EAAAA,IAAwB,CACtBmE,WAAYA,EAAGhG,cACb,MAAM+B,EAAkB,CACtBkE,KAAM,CACJC,SAAUT,EAAkBpR,OAAON,IAAM,OAK7C,OADAiM,EAAQ+B,GACDA,CAAK,EAEdD,WAAYA,EAAG9B,UAAS+B,YACtB,GAAIA,EAAO,CACT,MAAMkE,EAAOlE,EAAM,QAEnB,GAAIkE,EAAM,CACR,MAAME,EAAiBT,EAAQrR,MAAM6D,MAClCkO,GAAWA,EAAOrS,KAAQkS,EAAa,cAGtCE,IAAmBA,GAAgBE,YACrCC,GAAsBH,E,EAI5BnG,GAAS,KAGbiC,EAAAA,EAAAA,OAEAC,EAAAA,EAAAA,MAEAkD,EAAyB/Q,OAAQ,EAEjC,UACQkS,I,CACN,MACA,CACA,QACAnB,EAAyB/Q,OAAQ,C,KAI9B,CACL8N,iBACAU,4BACAP,WACAC,aACAiC,eACAC,eACAC,oBACAC,oBACAC,qBACAc,UACAI,qBACAd,mBACAC,mBACAI,eACAC,sBAEAgB,yBAEJ,CAEA1N,eAAe2N,KACb,MAAMC,QAAcC,EAAAA,EAAAA,KAEpBtB,EAAM9Q,MAAQmS,EAAKE,yBAAyBA,0BAA4B,GACxEC,GAAUxB,EACZ,CAEA,SAASwB,GAAUxB,GACjBA,EAAM9Q,MAAMkI,SAAS0J,IACnB,MAAMW,EAAcxC,EAAyB/P,MAAMwS,IAAI3O,MACpD4O,GAAO,GAAGA,EAAGC,mBAAqB,GAAGd,EAAKc,mBAGzCH,IACFA,EAAYX,KAAOA,EACnBW,EAAYP,YAAa,E,GAG/B,CAEA,SAASvB,GACPZ,EACA8C,EAA0B5C,EAC1BW,GAAsB,GAEtB,MAAMkC,EACJ/C,GACA8C,EAAwB3S,MAAMwS,IAAI3O,MAC/B4O,GAAO,GAAGA,EAAG/S,OAAS,GAAGmQ,EAAOnQ,OAcrC,OAXIkT,IACFA,EAAkBC,UAAW,GAG1BD,EAAkBE,iBAAmBpC,IACpCkC,EAAkBE,gBAAkBpC,KAEtCA,GAAuBA,IAIpB,CACLkC,oBACAlC,oBAAqBA,EAEzB,CAEA,SAASuB,GAAsBF,GAE3BP,EAAwBxR,OACxB8N,EAAeiF,iBACfjF,EAAekF,mBAKjB5B,EAAkBpR,MAAQ+R,GAE1BnD,EAAAA,EAAAA,MAAoB7M,MAClB,KACOgQ,EAAOC,WAIDD,EAAOH,MAChBqB,GAAWlB,GAJNN,GAAkBzR,OACrBkT,GAASnB,IAMb5O,EAAAA,EAAAA,IAAkBC,EAAAA,GAAwBC,SAAS8P,IAAIC,KAAK,IAE9D,EAAGnP,cAECA,IAAYiL,EAAAA,IACZjL,IAAYkL,EAAAA,KAEZT,EAAAA,EAAaM,cAAelJ,EAAAA,EAAAA,IAAK,oC,IAIzC,CAEAvB,eAAe2O,GAASnB,GACtBlB,EAAwB7Q,OAAQ,EAChC+R,EAAOC,YAAa,EACpBD,EAAOsB,cAAe,EAEtB,IACE,MAAMC,QAAiBC,EAAAA,EAAAA,GAAW,CAChClB,yBAA0B,CACxB/P,gBAAiBC,EAAAA,GAAYC,KAC7BkQ,eAAgBX,EAAOW,kBAIvBY,IACFxC,EAAM9Q,MAAMwT,KAAKF,GACjBvB,EAAOH,KAAO0B,EACdG,GAAgB1B,GAChBd,EAAoBjR,MAAQ,KAC5BgR,EAAahR,OAAQ8F,EAAAA,EAAAA,IAAK,4CAC1B4I,EAAAA,EAAaC,oBACbX,EAAuBhO,OAAQ,EAE1BkR,SACGgB,K,CAGV,MAAOwB,GACP3B,EAAOC,YAAa,EAEa,MAA5B0B,EAAiB3Q,cACdmP,KACNjB,EAAoBjR,MAAQ,KAExBkR,EACFxC,EAAAA,EAAaiF,mBACX7N,EAAAA,EAAAA,IAAK,wDAGP4I,EAAAA,EAAaiF,mBACX7N,EAAAA,EAAAA,IAAK,iDAIT4I,EAAAA,EAAaiF,mBACX7N,EAAAA,EAAAA,IAAK,kD,CAKXiM,EAAOsB,cAAe,EACtBxC,EAAwB7Q,OAAQ,CAClC,CAEAuE,eAAe0O,GAAWlB,GACxBlB,EAAwB7Q,OAAQ,EAChC+R,EAAOsB,cAAe,EACtBtB,EAAOC,YAAa,EAEpB,IACE,IAAKD,EAAOH,OAASG,EAAOH,KAAKlS,GAC/B,aAGIkU,EAAAA,EAAAA,GAAW7B,EAAOH,KAAKlS,IAE7BoR,EAAM9Q,MAAM6T,OAAO/C,EAAM9Q,MAAM8T,QAAQ/B,EAAOH,MAAO,GACrDG,EAAOH,UAAO1R,EACduT,GAAgB1B,GAChBf,EAAahR,MAAQ,KACrBiR,EAAoBjR,OAAQ8F,EAAAA,EAAAA,IAC1B,kDAEF4I,EAAAA,EAAaC,oBACbX,EAAuBhO,OAAQ,C,CAC/B,MAAO0T,GACP3B,EAAOC,YAAa,C,CAGtBD,EAAOsB,cAAe,EACtBxC,EAAwB7Q,OAAQ,CAClC,CAEA,SAASyT,GAAgB1B,GACvBA,EAAOgC,SAAU,EACjBC,YAAW,IAAOjC,EAAOgC,SAAU,GAAQ,KAC7C,EAtRAnH,EAAAA,EAAAA,KACE,IAAMkE,EAAM9Q,MAAMwM,SAClB,KACE,IAAIyH,GAAoB,EACpBC,GAAoB,EAExB,MAAMC,EAAalE,GAAUvQ,GACvB0U,EAAalE,GAAUxQ,GACvB2U,GAAiBvD,EAAM9Q,OAAS,IAAIwH,KACvCoK,GAASA,EAAKc,iBAGjB3C,EAAyB/P,MAAMwS,IAC5BjL,QAAQ+M,GAAMD,EAAcE,SAASD,EAAE5B,kBACvC8B,OAAOF,IACN,IAAKD,EAAcE,SAASD,EAAE5B,gBAC5B,OAAO,EAGT,MAAM+B,EAASH,EAAEI,aAOjB,OALAT,EACEA,GAAqB,GAAGQ,MAAa,GAAGN,IAC1CD,EACEA,GAAqB,GAAGO,MAAa,GAAGL,IAEnClD,GACF+C,IAAsBC,GACtBD,IAAsBC,CAAiB,IAGhDvD,EAAiB3Q,MAAQiU,EACzBrD,EAAiB5Q,MAAQkU,CAAiB,KAI9CtH,EAAAA,EAAAA,IAAMT,EAAAA,IAAY5H,UACZ4H,EAAAA,GAAWnM,aACPkS,I,oICpJV,MAAMyC,EAAW,qFAA4D,KAEtEpQ,eAAegP,EAAWxB,GAC/B,aAAa6C,EAAAA,EAAAA,IAAKD,EAAUE,KAAKC,UAAU/C,GAC7C,CAEOxN,eAAeqP,EAAWlU,GAC/B,aAAaqV,EAAAA,EAAAA,IAAIJ,EAAUjV,EAC7B,C,sICJM,MAAOsV,EASXC,WAAAA,CAAYC,IARZC,EAAAA,EAAAA,GAAA,mBAAAA,EAAAA,EAAAA,GAAA,qBAAAA,EAAAA,EAAAA,GAAA,qCAKAA,EAAAA,EAAAA,GAAA,kCAIEC,KAAK1V,GAAKwV,EAAIxV,GACd0V,KAAKC,qBAAuBH,EAAIG,qBAGhCD,KAAK1I,MAAO4I,EAAAA,EAAAA,IAAIJ,EAAK,OAAQ,iBAC/B,E,wJCfI,MAAOK,EAUXN,WAAAA,CAAYC,IATZC,EAAAA,EAAAA,GAAA,mBAAAA,EAAAA,EAAAA,GAAA,qBAAAA,EAAAA,EAAAA,GAAA,sBAKAA,EAAAA,EAAAA,GAAA,0BACqB,KAAEA,EAAAA,EAAAA,GAAA,gCAIrBC,KAAK1V,GAAKwV,EAAIxV,GACd0V,KAAKI,MAAQN,EAAIM,MAGjBJ,KAAK1I,MAAO4I,EAAAA,EAAAA,IAAIJ,EAAK,OAAQ,qBAC/B,CAGA,oBAAIO,GACF,OAAOL,KAAKM,kBAAkB7R,MAC3B8R,GAAO,GAAGA,EAAGjW,OAAS,GAAG0V,KAAKQ,sBAEnC,E,4JCnBI,MAAOC,EA2BXZ,WAAAA,CAAYC,IA1BZC,EAAAA,EAAAA,GAAA,mBAAAA,EAAAA,EAAAA,GAAA,wBAAAA,EAAAA,EAAAA,GAAA,4BAAAA,EAAAA,EAAAA,GAAA,0BAAAA,EAAAA,EAAAA,GAAA,6BAAAA,EAAAA,EAAAA,GAAA,sBAAAA,EAAAA,EAAAA,GAAA,6CAAAA,EAAAA,EAAAA,GAAA,yBAAAA,EAAAA,EAAAA,GAAA,0BAAAA,EAAAA,EAAAA,GAAA,+BAAAA,EAAAA,EAAAA,GAAA,sBAeAA,EAAAA,EAAAA,GAAA,iCAAAA,EAAAA,EAAAA,GAAA,wBAEuC,KAAEA,EAAAA,EAAAA,GAAA,6BAClB,IAAKA,EAAAA,EAAAA,GAAA,0BACR,IAAKA,EAAAA,EAAAA,GAAA,6BAAAA,EAAAA,EAAAA,GAAA,4BAAAA,EAAAA,EAAAA,GAAA,mCAGK,IAAKA,EAAAA,EAAAA,GAAA,sBACdjV,IAASiV,EAAAA,EAAAA,GAAA,oBACK,IAGjCC,KAAK1V,GAAKwV,EAAIxV,GACd0V,KAAKU,UAAYZ,EAAIY,UACrBV,KAAKW,aAAeb,EAAIa,aACxBX,KAAKY,6BAA+Bd,EAAIc,6BACxCZ,KAAKa,SAAWf,EAAIe,SACpBb,KAAKc,UAAYhB,EAAIgB,UACrBd,KAAKe,eAAiBjB,EAAIiB,eAC1Bf,KAAKI,MAAQN,EAAIM,MAGjBJ,KAAKgB,OAAQd,EAAAA,EAAAA,IAAIJ,EAAK,QAAS,cAC/BE,KAAKiB,SAAUf,EAAAA,EAAAA,IAAIJ,EAAK,UAAW,cACnCE,KAAKkB,aAAchB,EAAAA,EAAAA,IAAIJ,EAAK,cAAe,aAC7C,CAGA,kBAAIqB,GACF,OAAOnB,KAAKY,8BACRQ,EAAAA,EAAAA,IACE,GAAGpB,KAAKY,+BACRzT,EAAAA,GAAYC,MAEd,IACN,CAEAiU,cAAAA,GACErB,KAAKsB,aAAetB,KAAKuB,kBAAkBC,MACzC,CAACC,EAAGC,IAAMD,EAAEE,QAAUD,EAAEC,UAE1B3B,KAAK4B,UACH5B,KAAKsB,cAAgBtB,KAAKsB,aAAalK,QACnCgK,EAAAA,EAAAA,IACE,GAAGpB,KAAKsB,aAAa,IAAIO,iBACzB1U,EAAAA,GAAYC,WAEdtC,EAEFkV,KAAKa,UACPb,KAAK8B,sBAAuB,EAExB9B,KAAKmB,eACPnB,KAAK+B,aAAe/B,KAAKmB,gBAEzBnB,KAAKgC,4BAA6B,EAClChC,KAAK+B,aAAeE,EAAQ,SAErBjC,KAAKsB,cAAclK,QAC5B4I,KAAKkC,mBAAoB,EACzBlC,KAAK+B,aAAe/B,KAAK4B,YAEzB5B,KAAK+B,aAAeE,EAAQ,OAC5BjC,KAAKgC,4BAA6B,EAEtC,E,ofCtCF,MAAM,oBACJG,EAAmB,YACnBC,EAAW,iBACX9B,EAAgB,oBAChB+B,GACEC,KAEE5J,GAAiBC,EAAAA,EAAAA,GAAkB,UACnCC,GAAyBvO,EAAAA,EAAAA,KAAI,GAC7BwO,GAAWxO,EAAAA,EAAAA,KAAI,GACfyO,GAAazO,EAAAA,EAAAA,IAAI0O,EAAAA,IACjBK,GAA4B5N,EAAAA,EAAAA,KAChC,IAAMuL,EAAAA,GAAWnM,OAASgO,EAAuBhO,QAE7C2X,GAAgBlY,EAAAA,EAAAA,MAGhBmY,GAAgBC,EAAAA,EAAAA,IAA+B,iBAC/CC,GAAalX,EAAAA,EAAAA,KAAS,IAC1BwJ,QAAQoN,GAAeA,EAAYxX,MAAMwM,UAErCuL,GAAoB,EACpBC,GAAwB,EACxBC,GAAsBrX,EAAAA,EAAAA,KAC1B,IAAMmX,GAAqBC,IAEvBE,GAAwBtX,EAAAA,EAAAA,KAC5B,KAAOkX,EAAW9X,OAASmY,GAAYnY,QAEnCoY,GAAyBxX,EAAAA,EAAAA,KAC7B,KAAOkX,EAAW9X,QAAUmY,GAAYnY,QAEpCqY,GAAoBzX,EAAAA,EAAAA,KACxB,IACEwX,EAAuBpY,OACvBoK,QAAQqN,EAAoBzX,MAAMsY,kBAEhCC,GAAiB9Y,EAAAA,EAAAA,KAAI,GACrB+Y,GAAc5X,EAAAA,EAAAA,KAAS,IAAM6W,EAAoBzX,MAAMyY,UAAY,IAGnEC,GAA0BjZ,EAAAA,EAAAA,IAAkC,MAC5DkZ,EAAa,OACbC,GAAcnZ,EAAAA,EAAAA,IAAI+B,OAAOqX,SAASC,MAClCC,GAActZ,EAAAA,EAAAA,KAAI,GAClBuZ,IAAcvZ,EAAAA,EAAAA,KAAI,GAClBwZ,IAA4BxZ,EAAAA,EAAAA,KAAI,GAEtC+B,OAAO0X,iBAAiB,cAAc,KACpCN,EAAY5Y,MAAQwB,OAAOqX,SAASC,IAAI,IAG1C,MAAMK,IAAmBvY,EAAAA,EAAAA,KAAS,KACxBgY,EAAY5Y,MAAM6I,MAAM,IAAM,KAAKuQ,MAAM,KAAK,KAAOT,IAGzDU,IAAqB5Z,EAAAA,EAAAA,SAAuCS,IAElE0M,EAAAA,EAAAA,IACE,CAACgM,EAAaO,KACd5U,UACE,IAAK4U,GAAiBnZ,MACpB,OAGF,MAAMsZ,EAASV,EAAY5Y,MAAMoZ,MAAM,KAAK,GAE5C,IAAKE,EACH,OAGF,MAAMC,EAAoB/B,EAAYxX,MAAM6D,MACzC2V,GAASA,EAAK9Z,KAAO4Z,IAGxBD,GAAmBrZ,MAAQuZ,EAEtBb,EAAwB1Y,OAAUqZ,GAAmBrZ,QACxDqZ,GAAmBrZ,YAAcyZ,EAAAA,EAAAA,IAC/BH,EACA5D,G,GAIN,CAAEgE,WAAW,IAIf,MAAMC,GAAyB,EACzBC,GAA6B,IAC7BC,IAAqBhC,EAAAA,EAAAA,IAA+B,sBACpDiC,IAAuBjC,EAAAA,EAAAA,IAA+B,kBAC5D,IAAIkC,GAAyD,KAC7D,MAAM5B,IAAc1Y,EAAAA,EAAAA,KAAI,GAClBua,IAA4Bva,EAAAA,EAAAA,KAAI,GAChCwa,IAAaxa,EAAAA,EAAAA,IAAI,IAGjBqR,IAAQrR,EAAAA,EAAAA,IAAkB,IAC1Bya,IAAwC/I,EAAAA,EAAAA,IAC5C,cAEIgJ,IAAwBhJ,EAAAA,EAAAA,IAAwB,yBAChDH,IAAevR,EAAAA,EAAAA,IAAmB,MAClC2a,IAAgBxZ,EAAAA,EAAAA,KAAS,IAC7BwJ,QACkB,QAAf8P,IAAwBpJ,GAAM9Q,MAAMwM,OAAS,GAC7B,SAAf0N,IACgB,WAAfA,IACCC,IACArJ,GAAM9Q,MAAMwM,OAAS9E,OAAOyS,OAO9B,SAAUE,KA6Gd,OA5GA/M,EAAAA,EAAAA,MACAC,EAAAA,EAAAA,MAEArJ,EAAAA,EAAAA,KAAUK,UAuFR,IAtFAiJ,EAAAA,EAAAA,IAAwB,CACtBmE,WAAYA,EAAGhG,cACb,MAAM+B,EAAkB,CACtB8K,YAAa,GAAGA,EAAYxY,QAC5Bia,WAAYA,GAAWja,MACvBsa,sBACEP,IAAoBvS,KAAK/D,GAAaA,EAAS/D,MAAO,KACxDkS,KAAM,CACJ0H,OAAQ3B,EAAc3X,OAAON,IAAM,OAUvC,OANI2Z,GAAmBrZ,QACrB0N,EAAM6M,qBAAuBlB,GAAmBrZ,OAAON,IAGzDiM,EAAQ+B,GAEDA,CAAK,EAEdD,WAAYlJ,OAASoH,UAAS+B,YAC5B,GAAIA,EAAO,CACLA,EAAMuM,aACRA,GAAWja,MAAQ,GAAG0N,EAAMuM,eAI3BvM,EAAMuM,YACPvM,EAAM4M,uBACN5M,EAAM4M,sBAAsB9N,SAE3BkB,EAAM4M,sBAAmCpS,SACvC0N,IACC,MAAM4E,EAAqBjD,EAAoB1T,MAAM4W,GACnDA,EAAI/E,kBAAkB7R,MACnB8R,GAAOA,EAAGjW,KAAOkW,MAIlB4E,IACFA,EAAmB5E,mBAAqBA,E,IAK9C8E,OAIChN,EAAMuM,YACPvM,EAAM8K,aACN9Q,OAAOgG,EAAM8K,aAAe,SAEtBmC,GAAcjT,OAAOgG,EAAM8K,aAAe,GAG9C9K,EAAM6M,uBACR/Y,OAAOqX,SAASC,KAAO,IAAIH,KAAcjL,EAAM6M,uBAE/C7B,EAAwB1Y,YAAcyZ,EAAAA,EAAAA,IACpC/L,EAAM6M,qBACN7E,IAIJ,MAAM9D,EAAOlE,EAAM,QAEnB,GAAIkE,EAAM,CACR,MAAMgJ,EAAYlC,EAAwB1Y,MACtC0Y,EAAwB1Y,MACxBwX,EAAYxX,MAAM6D,MACf2V,GAASA,EAAK9Z,KAAQkS,EAAa,YAGtCgJ,IAAcA,EAAUC,aAAarO,QACvCsO,GAASF,E,EAKfjP,GAAS,KAGbiC,EAAAA,EAAAA,OACAC,EAAAA,EAAAA,MAEIsL,GAAiBnZ,MAAO,CAC1B,MAAMsZ,EAASV,EAAY5Y,MAAMoZ,MAAM,KAAK,GAExCE,IACFZ,EAAwB1Y,YAAcyZ,EAAAA,EAAAA,IACpCH,EACA5D,G,CAKN,UACQxD,I,CACN,MAAOwB,GACP,KAIG,CACL5F,iBACAU,4BACAP,WACAC,aACAG,iBAAgB,KAChBuJ,gBACAE,aAEAG,sBACAC,wBACAG,oBACAG,cACAE,0BACAK,cACAC,eACAG,oBACAE,sBACAJ,6BACAU,0BACAK,6BACA7B,eACAI,iBACA0B,cACAjJ,gBACAoJ,iBACAzC,gBACAkC,sBACAC,wBAEAvC,sBACAC,cACA9B,mBACA+B,sBAEAsD,4BACAC,kBACAC,sBACAC,sBACAR,4BACAS,eACAR,iBACAS,oBACAC,gBACAC,qBACAC,kBACAC,2BACAV,YACAW,qBACAC,aAEJ,CAKA,SAASX,GAAyBvB,GAChCd,EAAwB1Y,MAAQ,KAChCwB,OAAOqX,SAASC,KAAO,IAAIH,KAAca,EAAK9Z,IAChD,CAEA,SAASsb,KACPxZ,OAAOqX,SAASC,KAAO,GACzB,CAEAvU,eAAe0W,GAAmBzB,GAChCP,GAA0BjZ,OAAQ,EAE9B2b,GAAgBnC,EAAM,QACxBuB,GACEY,GAAgBnC,EAAM,gBAGlBmB,GAAcnC,EAAYxY,MAAQ,EAAI,GAE5C+a,GAAyBvD,EAAYxX,MAAM,KAG7CiZ,GAA0BjZ,OAAQ,CACpC,CAEAuE,eAAe2W,GAAmB1B,GAChCP,GAA0BjZ,OAAQ,EAE9B2b,GAAgBnC,EAAM,YACxBuB,GAAyBY,GAAgBnC,EAAM,oBAEzCmB,GAAcnC,EAAYxY,MAAQ,GAExC+a,GAAyBvD,EAAYxX,MAAMwX,EAAYxX,MAAMwM,OAAS,KAGxEyM,GAA0BjZ,OAAQ,CACpC,CAEA,SAAS2b,GACPnC,EACAoC,GAEA,MAAMC,EAAYrE,EAAYxX,MAAM8b,WACjCC,GAAeA,EAAWrc,KAAO8Z,EAAK9Z,KAGzC,OAAO8X,EAAYxX,MACjB6b,GAAsB,aAATD,GAAuB,EAAI,GAE5C,CAIA,SAASlB,KAEPX,GAAqBxC,EAAoByE,QACvC,CACEC,EACAxB,IAEO,IACFwB,KACCxB,EAAI7E,mBACJ,CAAC6E,EAAIhF,kBACL,KAGR,IAGF+F,IACF,CAEAjX,eAAe4W,GAAY1C,GACzBkC,GAAclC,EAChB,CAEAlU,eAAeoW,GAAclC,GAC3B,GAAIA,EAAY,EACd,OAGFF,EAAevY,OAAQ,EAEvB,MAAMkc,EAAUd,KACVe,QAAiBC,EAAAA,EAAAA,IAAmB3D,EAAWyD,GAE/CG,GAAoBC,EAAAA,EAAAA,GACxBH,EACAzG,GAGF8B,EAAYxX,MAAQqc,EAAkB7E,YACtCC,EAAoBzX,MAAQqc,EAAkB5E,oBAE9Cc,EAAevY,OAAQ,QAEjBkS,IACR,CAEA,SAASkJ,KACP,MAAMc,EAAU,CACdK,YAAaxC,IAAoBvS,KAAKS,GAAMA,EAAEvI,KAC9Cua,WAAYA,GAAWja,MACvBsC,gBAAiBC,EAAAA,GAAYC,KAC7Bga,cAAcC,EAAAA,EAAAA,OAMhB,OAHAtE,GAAYnY,MACVoK,QAAQ8R,EAAQK,aAAa/P,SAAWpC,QAAQ8R,EAAQjC,YAEnDiC,CACT,CAEA,SAASb,KACP9D,EAAoBrP,SAASuS,IAC3BA,EAAI7E,mBAAqB,GAElB6E,KAGTR,GAAWja,MAAQ,GACnB0a,IACF,CAEA,SAASY,GAAkBoB,GACzBzC,GAAWja,MAAS0c,EAAMC,OAA4B3c,MACtDwb,IACF,CAEAjX,eAAegX,KACbvB,GAA0Bha,OAAQ,QAC5B2a,GAAc,GACpBX,GAA0Bha,OAAQ,CACpC,CAEA,MAAMwb,IAA0BoB,EAAAA,EAAAA,IAC9BrB,GACA3B,IA4BFrV,eAAe2N,KACb,IAAK/F,EAAAA,GAAWnM,MACd,OAGF,MAAMmS,QAAcC,EAAAA,EAAAA,KAEpBtB,GAAM9Q,MAAQmS,EAAK0I,YAAYA,YAC/B1I,EAAK0I,YAAYA,YAAY3S,SAAS0J,IACpC,MAAM4H,EACJhC,EAAYxX,MAAM6D,MACfkY,GAAeA,EAAWrc,KAAO,GAAGkS,EAAKiL,kBACvCnE,EAAwB1Y,MAE3BwZ,IACFA,EAAKqB,YAAcrB,EAAKqB,aAAarO,OACjC,IAAIgN,EAAKqB,YAAajJ,GACtB,CAACA,G,GAGX,CAEA,SAASkJ,GAAStB,GACZA,EAAKqB,aAAarO,QAKpByB,EAASjO,OACT8N,EAAeiF,iBACfjF,EAAekF,mBAKjB2E,EAAc3X,MAAQwZ,GAEtB5K,EAAAA,EAAAA,MACG7M,MACC,KACEmR,GAASsG,EAAK,IAEhB,EAAGvV,cAECA,IAAYiL,EAAAA,IACZjL,IAAYkL,EAAAA,KAEZT,EAAAA,EAAaM,cAAelJ,EAAAA,EAAAA,IAAK,oC,IAItCpC,SAAQ,KACPuL,IAAyB,IAE/B,CAEA1K,eAAe2O,GAASsG,GACtBvL,EAASjO,OAAQ,EAEjB,IACE,MAAMsT,QAAiBC,EAAAA,EAAAA,GAAW,CAChCsH,YAAa,CACXvY,gBAAiBC,EAAAA,GAAYC,KAC7BgT,MAAO,CACLuG,WAAYvC,EAAK9Z,OAKnB4T,KACFnQ,EAAAA,EAAAA,IAAkBC,EAAAA,GAAwBC,SAASyZ,EAAE1J,KAAMoG,EAAK9Z,IAChEoR,GAAM9Q,MAAMwT,KAAKF,EAASuH,aAC1BnM,EAAAA,EAAaC,oBACbX,EAAuBhO,OAAQ,EAC/BgR,GAAahR,OAAQ8F,EAAAA,EAAAA,IAAK,iCAC1B0T,EAAKtD,kBAEChE,K,CAER,MAAOwB,GACP1C,GAAahR,MAAQ,KAEY,MAA5B0T,EAAiB3Q,cACdmP,KAENxD,EAAAA,EAAaiF,mBAAkB7N,EAAAA,EAAAA,IAAK,sCAEpC4I,EAAAA,EAAaiF,mBACX7N,EAAAA,EAAAA,IAAK,uC,CAGT,QACAmI,EAASjO,OAAQ,C,CAErB,CAEA,SAASyb,GAAkBjC,GACzB,OAAOpP,QAAQoP,EAAKqB,aAAarO,OACnC,CAIA,SAASkP,GAAUlC,IACjBuD,EAAAA,EAAAA,IAAUC,EAAAA,EAAAA,GAAsBxD,EAAKzD,cACvC,CAEA,SAAS9G,KACP,MAAMG,EAAUhL,SAASiL,cAAc,qBAElCD,IAIDjB,EAAAA,GAAYnO,OACdsP,EAAAA,EAAAA,IAAiBF,GAEjBA,EAAQG,iBAEZ,CAEA,SAASmI,KACP,MAAMuF,EAAaC,EAAAA,EAEb3F,EACJ0F,EAAW1F,oBAAoBA,qBAAqB/P,KACjDiT,GAAQ,IAAIlF,EAAAA,EAA8BkF,KAEzC/E,EACJuH,EAAW1F,oBAAoB4F,OAAOzH,kBAAkBlO,KACrDmO,GAAO,IAAIX,EAAAA,EAA0BW,KAK1CD,GAAkBxN,SAASzE,IAEzB,MAAM2Z,EAAe7F,EAAoB1T,MACtCuZ,GACC3Z,EAAS4R,qBAAqBnM,aAAekU,EAAa1d,KAG1D0d,IACF3Z,EAAS+W,mBAAqB4C,EAGzBA,EAAa1H,mBAChB0H,EAAa1H,iBAAmB,IAGlC0H,EAAa1H,iBAAiBlC,KAAK/P,G,IAKvC,MAAM,YAAE+T,EAAW,oBAAEC,IAAwB6E,EAAAA,EAAAA,GAC3CW,EAAWzF,YACX9B,GAGF,MAAO,CACL6B,qBAAqB8F,EAAAA,EAAAA,IAAS9F,GAC9B7B,mBACA8B,aAAa/X,EAAAA,EAAAA,IAAI+X,GACjBC,qBAAqBhY,EAAAA,EAAAA,IAAIgY,GAE7B,EA7LA7K,EAAAA,EAAAA,IAAMyM,IAAoB,KACnB7B,GAAgBA,EAAYxX,QAIjC+Y,EAAY/Y,MAAQoK,QACjBiP,GAAmBrZ,OAClB2b,GAAgBtC,GAAmBrZ,MAAO,SAC1CyX,EAAoBzX,MAAMsd,iBAAmB9E,EAAYxY,OAG7DgZ,GAAYhZ,MAAQoK,QACjBiP,GAAmBrZ,OAClB2b,GAAgBtC,GAAmBrZ,MAAO,aACpB,IAAtBwY,EAAYxY,OACf,KAGH4M,EAAAA,EAAAA,IAAMT,EAAAA,IAAY5H,gBACV2N,IAAW,I,uOCtenB,MAAMyC,EAAW,qEAAoC,KAI/C4I,EAAyB,SACzBC,EAAU,CACdC,OAAQ,2BACR,eAAgB,2CAGXlZ,eAAe6X,EACpB3D,EACAyD,GAEA,MAAMwB,GAAWvM,EAAAA,EAAAA,IAAwB,uBACnCwM,GAAgBxM,EAAAA,EAAAA,IAAwB,kBACxCyM,EAAqBD,IAAkBJ,EAE7C,IAAIM,EAAW,GAAGC,EAAAA,KAAoBnJ,qBAA4BpS,EAAAA,GAAYC,kBAAkBiW,cAAsBiF,IAElHxB,IACF2B,GAAY,KAAIE,EAAAA,EAAAA,IAAe7B,MAG7B0B,IACFC,GAAY,uBAAsBG,EAAAA,EAAAA,SAGpC,MAAM7L,QAAa8L,MAAMJ,EAAU,CAAEK,OAAQ,MAAOV,YAEpD,OAAOW,EAAgBhM,EACzB,CAEO5N,eAAe6Z,EACpB9E,GAEA,MAAMuE,EAAW,GAAGC,EAAAA,KAAoBnJ,qBAA4BpS,EAAAA,GAAYC,eAAe8W,IACzFnH,QAAa8L,MAAMJ,EAAU,CAAEK,OAAQ,MAAOV,YAEpD,OAAOW,EAAgBhM,EACzB,CAEO5N,eAAekV,EACpBH,EACA5D,GAEA,MAAM2I,QAA2BD,EAAc9E,GAEzCyC,EAAaO,EACjB+B,EACA3I,GACA8B,YAAY,GAId,OAFAuE,EAAWtF,iBAEJsF,CACT,CAEM,SAAUO,EACdH,EACAzG,GAEA,MAAM8B,EAAc2E,EAAS3E,YAAYhQ,KACtC8W,GAAO,IAAIzI,EAAAA,EAAsByI,KAE9BC,EAAuBpC,EAASgB,QAAQoB,qBACxC5H,EAAmBwF,EAASgB,QAAQxG,iBA2B1C,OAxBAa,EAAYtP,SAASoW,IAEnB,MAAME,EAAW,GAAGF,EAAG5e,KACjB6c,EAAcgC,GAChBhX,QAAQkX,GAAQA,EAAI5B,aAAa3T,aAAesV,IACjDhX,KAAKiX,GAAQA,EAAIC,iBAAiBxV,aAErC,GAAIqT,GAAa/P,OAAQ,CACvB,MAAMmS,EAAajJ,GAAkBnO,QAAQoO,GAC3C4G,EAAYhI,SAASoB,EAAGjW,GAAGwJ,cAG7BoV,EAAG5I,iBAAmBiJ,C,CAIxB,MAAMC,EAAajI,GAAkBpP,QAClCsX,GAAQA,EAAIhC,aAAa3T,aAAesV,IAG3CF,EAAG3H,iBAAmBiI,EACtBN,EAAG7H,gBAAgB,IAGd,CACLe,cACAC,oBAAqB0E,EAAS2C,SAElC,CAGA,SAASX,EAAgBY,GACvB,GAAIA,EAAIC,GACN,OAAmB,MAAfD,EAAIhc,OACCgc,EAAIE,YAGb,EAGF,MAAM,IAAIC,MAAMH,EAAII,WACtB,C,oFCtHA,MAAMxK,EAAW,qCAEX6I,EAAU,CACdC,OAAQ,4BAGHlZ,eAAegP,EACpBiG,GAEA,aAAa5E,EAAAA,EAAAA,IAAKD,EAAUE,KAAKC,UAAU0E,QAAOtZ,EAAWsd,EAC/D,C,6ICbO,MAAMzT,EAAc,CACzBqV,SAAU,WACVpV,KAAM,OACNqV,OAAQ,SACRC,cAAe,eACfC,cAAe,eACfC,gBAAiB,kBAGNC,EAAoB,CAC/BC,oBAAqB,oBAGVpX,EAA2B,CACtCqX,KAAM,OACNC,MAAO,QACPC,UAAW,WACXC,IAAK,MACLC,OAAQ,SACRxX,UAAW,WACXyX,OAAQ,SACRC,OAAQ,SACRC,aAAc,gBAGHC,EAAuC,CAClDpW,EAAYC,KACZD,EAAYuV,cACZvV,EAAYwV,eAGDa,EAAe,CAC1BC,uCAAwC,CACtC,CACEniB,IAAK6L,EAAYqV,SACjBpf,MAAO,mBAET,CACE9B,IAAK6L,EAAYsV,OACjBrf,MAAO,kBAET,CACE9B,IAAK6L,EAAYuV,cACjBtf,MAAO,oBAET,CACE9B,IAAK6L,EAAYwV,cACjBvf,MAAO,oBAET,CACE9B,IAAK6L,EAAYC,KACjBhK,MAAO,qBAET,CACE9B,IAAKuhB,EAAkBC,oBACvB1f,MAAO,oBAIXsgB,qCAAsC,CACpC,CACEpiB,IAAK6L,EAAYqV,SACjBpf,MAAO,6CAET,CACE9B,IAAK6L,EAAYsV,OACjBrf,MAAO,6CAET,CACE9B,IAAK6L,EAAYyV,gBACjBxf,MAAO,8CAIXugB,uCAAwC,CACtC,CACEriB,IAAK6L,EAAYyV,gBACjBxf,MAAOqX,EAAQ,S,4FC3Ed,MAAMmJ,EAAsB,CACjCC,cAAe,CACbC,QAAS,KACTC,UAAW,KACXC,QAAS,KACTC,OAAQ,KACRC,kBAAmB,KACnBC,QAAS,KACTC,OAAQ,KACRC,OAAQ,KACRC,MAAO,KACPC,OAAQ,KACRC,QAAS,KACTC,WAAY,KACZC,WAAY,SACZC,OAAQ,OAICC,EAAmB,CAC5BC,0BAA2B,CACvB,CAACvjB,IAAKsiB,EAAoBC,cAAcE,UAAW3gB,MAAO,SAC1D,CAAC9B,IAAKsiB,EAAoBC,cAAcC,QAAS1gB,MAAO,SACxD,CAAC9B,IAAKsiB,EAAoBC,cAAcI,OAAQ7gB,MAAO,SACvD,CAAC9B,IAAKsiB,EAAoBC,cAAcG,QAAS5gB,MAAO,SACxD,CAAC9B,IAAKsiB,EAAoBC,cAAcK,kBAAmB9gB,MAAO,SAClE,CAAC9B,IAAKsiB,EAAoBC,cAAcM,QAAS/gB,MAAO,SACxD,CAAC9B,IAAKsiB,EAAoBC,cAAcO,OAAQhhB,MAAO,SACvD,CAAC9B,IAAKsiB,EAAoBC,cAAcQ,OAAQjhB,MAAO,SACvD,CAAC9B,IAAKsiB,EAAoBC,cAAcS,MAAOlhB,MAAO,SACtD,CAAC9B,IAAKsiB,EAAoBC,cAAcU,OAAQnhB,MAAO,SACvD,CAAC9B,IAAKsiB,EAAoBC,cAAcW,QAASphB,MAAO,SACxD,CAAC9B,IAAKsiB,EAAoBC,cAAcY,WAAYrhB,MAAO,SAC3D,CAAC9B,IAAKsiB,EAAoBC,cAAca,WAAYthB,MAAO,SAC3D,CAAC9B,IAAKsiB,EAAoBC,cAAcc,OAAQvhB,MAAO,UAG3D0hB,sBAAuB,CACnB,CAACxjB,IAAKsiB,EAAoBC,cAAcC,QAAS1gB,MAAO,MACxD,CAAC9B,IAAKsiB,EAAoBC,cAAcE,UAAW3gB,MAAO,MAC1D,CAAC9B,IAAKsiB,EAAoBC,cAAcG,QAAS5gB,MAAO,MACxD,CAAC9B,IAAKsiB,EAAoBC,cAAcI,OAAQ7gB,MAAO,MACvD,CAAC9B,IAAKsiB,EAAoBC,cAAcK,kBAAmB9gB,MAAO,MAClE,CAAC9B,IAAKsiB,EAAoBC,cAAcM,QAAS/gB,MAAO,MACxD,CAAC9B,IAAKsiB,EAAoBC,cAAcO,OAAQhhB,MAAO,MACvD,CAAC9B,IAAKsiB,EAAoBC,cAAcQ,OAAQjhB,MAAO,MACvD,CAAC9B,IAAKsiB,EAAoBC,cAAcS,MAAOlhB,MAAO,MACtD,CAAC9B,IAAKsiB,EAAoBC,cAAcU,OAAQnhB,MAAO,MACvD,CAAC9B,IAAKsiB,EAAoBC,cAAcW,QAASphB,MAAO,MACxD,CAAC9B,IAAKsiB,EAAoBC,cAAcY,WAAYrhB,MAAO,MAC3D,CAAC9B,IAAKsiB,EAAoBC,cAAca,WAAYthB,MAAO,MAC3D,CAAC9B,IAAKsiB,EAAoBC,cAAcc,OAAQvhB,MAAO,O,sHCrDxD,MAAM2hB,EAAkD,CAC7DC,QAAS,UACTC,OAAQ,SACRC,UAAW,WACXC,cAAe,eACfC,YAAa,aACbC,QAAS,SACTC,aAAc,cACdC,cAAe,eACfC,eAAgB,gBAChBC,kBAAmB,iBACnBC,mBAAoB,mBACpBC,iBAAkB,iBAClBC,gBAAiB,gBACjBC,oBAAqB,oBACrBC,aAAc,cACdC,iBAAkB,iBAClBC,aAAc,eACdC,aAAc,cACdC,aAAc,cACdC,mBAAoB,mBACpBC,iBAAkB,iBAClBC,UAAW,WACXC,4BAA6B,2BAC7BC,yBAA0B,wBAC1BC,eAAgB,eAChBC,WAAY,YACZC,aAAc,eAGHC,EAA6C,CACxD5B,EAAYC,QACZD,EAAYiB,aACZjB,EAAYsB,WAGDO,EAAiD,CAC5D7B,EAAYC,QACZD,EAAYiB,aACZjB,EAAYmB,aACZnB,EAAYkB,aACZlB,EAAYgB,iBACZhB,EAAYsB,UACZtB,EAAYuB,4BACZvB,EAAYwB,yBACZxB,EAAYyB,eACZzB,EAAYU,kBACZV,EAAY2B,a,sJCxBR,SAAUxd,EAAK5H,EAAaulB,EAAkC,CAAC,GAKnE,OAJAvlB,EAAMwlB,EAAwBxlB,EAAKulB,EAAQE,EAAAA,KAE3CC,EAAAA,EAAAA,IAA2B1lB,GAEnB2lB,EAAAA,GAAuBC,OAAOC,EAAE7lB,EAAKulB,EAC/C,CAOM,SAAUO,EAAI9lB,EAAa+lB,GAC/B,MAAMC,EAAkBD,GAAWA,EAAQzX,OAASyX,EAAUN,EAAAA,GAGxDQ,EAAWN,EAAAA,IAAOC,OAAOK,SAASnkB,MAAMkkB,GAI9C,OAAOhmB,KAAOimB,CAChB,CAMM,SAAU7O,EACd8O,EACAC,EACAC,EACAC,GAEA,OAAOC,EAAAA,EAAAA,IAAgBJ,EAAQC,EAAWC,EAAYC,EACxD,CAWA,SAASb,EACPxlB,EACAulB,EAAkC,CAAC,EACnCE,GAWA,OATA9b,OAAOC,QAAQ2b,GAAU,CAAC,GAAGvb,SAAQ,EAAEuc,EAAOzkB,MAC5C,GAAc,UAAVykB,EAAmB,CACrB,MAAMC,EAAQhd,OAAO1H,GACf2kB,EAAgB,IAAIC,KAAKC,YAAYlB,GAE3CzlB,EAAMA,EAAI4mB,OAAO,IAAIH,EAAcI,OAAOL,K,KAIvCxmB,CACT,C,qCCpFM,SAAU8mB,IACd5gB,SAAS6gB,uBAAuB,gBAAgBzL,KAAK,IAAI0L,SACzD9gB,SACG+gB,qBAAqB,QACrB3L,KAAK,IACJ4L,UAAUF,OAAO,oBACvB,C,+LCDM,SAAUG,EAAcC,GAC5BA,EACEA,GACApI,EAAAA,EAAYqI,aAAapI,OAAOqI,WAAW3hB,MACxC4hB,GAAMA,EAAE/lB,KAAO6C,EAAAA,IAAamjB,YAAYxc,cACxCyc,IAEDL,KACFvI,EAAAA,EAAAA,GAAUuI,IACVM,EAAAA,EAAAA,MAEJ,CAEM,SAAUC,KACd9I,EAAAA,EAAAA,IAAUC,EAAAA,EAAAA,OACV4I,EAAAA,EAAAA,KACF,C,opBCoDO,MAAMzjB,GAA0C1C,EAAAA,EAAAA,IAAI,MAC9C4O,GAAmB5O,EAAAA,EAAAA,KAAI,GACpC,IAAIqmB,EAA0D,KAC1DC,EAAYC,EAAAA,GACZA,EAAAA,GAAYC,EAAAA,GAAuBC,YACnC,KAEG,MAAMC,EAAqB,QAE5B,SAAUC,EAAWC,EAAY,mBACrCC,EAAAA,EAAAA,OAEAnjB,EAAAA,EAAAA,IACEC,EAAAA,GAAwBC,SAASC,OAAOC,gBAAgBC,OACxDJ,EAAAA,GAAwBC,SAASC,OAAOC,gBAAgBE,SACxD4iB,GAGFlkB,EAAanC,OAAOumB,WAAW,CAAEtiB,QAASoiB,GAC5C,CAEM,SAAUG,KACdC,EAAAA,EAAAA,MAAiB1kB,MACdW,GAAeP,EAAanC,OAAO0mB,YAAYhkB,KAChD,IAAMP,EAAanC,OAAOumB,WAAW,CAAEtiB,QAAS0iB,EAAAA,MAEpD,CAEOpiB,eAAeqiB,EAAoBC,GACxC,MAAM3kB,EACJ2kB,GAAkB1kB,EAAanC,OAAOoC,YAAYC,OACpD0F,EAAAA,EAAAA,IAAgB,CAAE7F,mBAAoBA,IAEtC,UACQ4kB,EAAAA,EAAAA,MAEF3a,EAAAA,GAAWnM,MACbmC,EAAanC,OAAO0mB,YAAYhkB,EAAAA,GAAW1C,OAE3C+mB,GAAwC,E,CAE1C,MAAOpkB,GAEP,GAAIA,GAASA,aAAiBqkB,UAA6B,MAAjBrkB,EAAMI,OAC9CgkB,GAAwC,OACnC,CACL,IAAIpc,EAAAA,EAAAA,MASF,OARA5C,EAAAA,EAAAA,IAAgB,CACdkf,iBAAa/mB,EACbgC,wBAAoBhC,KAGtBgnB,EAAAA,EAAAA,WAEA/kB,EAAanC,OAAOumB,WAAW,CAAEtiB,QAAS0iB,EAAAA,KAI5CjY,EAAAA,EAAaiF,kBAAkBhR,E,EAGrC,CAEO4B,eAAe4iB,EAA0Bhc,IAC9CpD,EAAAA,EAAAA,IAAgB,CACdzF,gBAAiBC,EAAAA,GAAYC,KAC7BN,mBAAoBklB,GAA8Bjc,KAGpD,IACE,aAAa2b,EAAAA,EAAAA,K,CACb,MAAOnkB,GACP,CAEJ,CAEO4B,eAAe8iB,KACpBP,EAAAA,EAAAA,MAAS/kB,MACNulB,IACKnb,EAAAA,GAAWnM,MACbmC,EAAanC,OAAO0mB,YAAYhkB,EAAAA,GAAW1C,QAEvCsnB,GACFC,EAA8BD,GAGhCE,I,IAGJ,IAAMA,KAEV,CAEM,SAAUC,EACdrlB,EACAc,GAAU,GAEVwkB,EAAoBtlB,IACpBulB,EAAAA,EAAAA,IAAsBzkB,EAASd,EAEjC,CAEM,SAAUwlB,EACdxlB,EACAc,GAAU,GAIV,OAFAwkB,EAAoBtlB,GAEZA,EAAWC,OACjB,KAAKwlB,EAAAA,GAAyC7d,KAC5C,OAAO9G,GAAU4kB,EAAAA,EAAAA,MAA0BC,EAAAA,EAAAA,KAC7C,KAAKF,EAAAA,GAAyCvI,cAC5C,OAAOpc,GAAU8kB,EAAAA,EAAAA,OAA2BC,EAAAA,EAAAA,MAC9C,KAAKJ,EAAAA,GAAyCtI,cAC5C,OAAOrc,GAAUglB,EAAAA,EAAAA,MAA2BC,EAAAA,EAAAA,KAC9C,QACE,OAEN,CAEM,SAAUC,IACd,KAAKC,EAAAA,EAAAA,MACH,OAGF,MAAMC,GAAUC,EAAAA,EAAAA,MAEhB,GAAID,KAAYE,EAAAA,EAAAA,MACdC,GAAiBH,QACZ,IAAKA,EAAS,CACnB,MAAMI,EAAgBC,EAAAA,EAAqBC,WAEvCF,GAAiBA,EAAc,WACjCG,KAEAC,G,CAGN,CAEOvkB,eAAeiH,EAAMpJ,SACpB2mB,EAAAA,EAAAA,MAEN,MAAMC,EAAsBC,IAI5B,OAFAC,EAAa9mB,GAAY,GAElB4mB,CACT,CAEOzkB,eAAe2H,IACpB,MAAMid,QAAoCC,EAAAA,EAAAA,KACpCC,EAAY,GAAGF,EAA4BG,6BAC3CC,EAASnlB,SAASC,cAAc,UAEtCklB,EAAOzc,MAAM0c,QAAU,OACvBplB,SAASqlB,KAAK/kB,YAAY6kB,GAE1B,MAAMG,EAAYhN,IACG,oBAAfA,EAAMvK,OACR3Q,OAAOmoB,oBAAoB,UAAWD,GACtCH,EAAOrE,SACP1jB,OAAOqX,SAAS+Q,S,EAIpBpoB,OAAO0X,iBAAiB,UAAWwQ,GACnCH,EAAOjlB,aAAa,MAAO+kB,EAC7B,CAEO9kB,eAAeslB,IACpB9D,EAAY,KAEZ+D,KACA7nB,EAAAA,EAAAA,IAAc,IACRS,EAAAA,GAAW1C,MACfsC,gBAAiBC,EAAAA,GAAYC,OAG/B,MAAMunB,GAAcC,EAAAA,EAAAA,MAEpB,OAAOD,EAAYE,yBAAyBloB,MACzCoJ,GACQ,IAAIO,SAASC,IAClBsd,IAAoBlnB,MAAK,MACvBmoB,EAAAA,EAAAA,MACAve,EAAQjJ,EAAAA,GAAW,KAErBynB,EAAAA,EAAAA,IAAwBhf,EAAK,MAGhCxI,GACQ,IAAI+I,SAASC,IAClBsd,IAAoBlnB,MAAK,MACvBmoB,EAAAA,EAAAA,MACAve,EAAQjJ,EAAAA,GAAW,KAErB0nB,EAAAA,EAAAA,IAAuBznB,EAAM,KAIrC,CAEO4B,eAAeqK,IAEpB,MAAMyb,EAAmBvE,GAA8Bpa,QAAQC,UAE/D,OAAO0e,EAAiBtoB,MACtB,IACMgkB,EACK8D,IAGF1d,EAAAA,GAAWnM,MACd0L,QAAQC,QAAQjJ,EAAAA,IAChB4nB,MAEN,QAIJ,CAEM,SAAUR,IACd,MAAMpB,EAAgBC,EAAAA,EAAqBC,WAE3C,GAAIF,EAAe,CACjB,MAAM6B,EAAuB7B,EAAc,wBAE3C,GAA6B,OAAzB6B,QAA0DrqB,IAAzBqqB,EAAoC,CACvE,MAAMC,GAAqBC,EAAAA,EAAAA,MAAiCjY,IAAI3O,MAC7D6mB,GAASA,EAAKhrB,KAAO6qB,IAGpBC,IACFziB,EAAAA,EAAAA,IAAgB,CACd7F,mBAAoBsoB,EAAmBnoB,O,EAKjD,CAEAkC,eAAe+lB,IACb,MAAMhC,GAAUC,EAAAA,EAAAA,MAEhB,OAAID,IAAWE,EAAAA,EAAAA,MACNC,GAAiBH,GAASqC,OAAOhoB,GAClCA,EAAMsB,UAAYiL,EAAAA,GACbxD,QAAQkf,OAAOjoB,GAGjBkoB,MAIJA,GACT,CAEA,SAASA,IACP,OAAO9B,EAAAA,EAAAA,MAAoBhnB,MAAK,KAC9B,MAAMinB,EAAsBC,IACtB6B,GACJL,EAAAA,EAAAA,MAAiCM,0BAInC,OAFA7B,EAAa4B,QAAqB5qB,GAE3B8oB,CAAmB,GAE9B,CAEA,SAASE,EACP9mB,EACAc,GAAU,GAENR,EAAAA,GAAW1C,OAAOinB,aACpB+D,IACApE,EAAoBT,IACV/jB,GAYD6oB,EAAAA,EAAAA,IAAa7oB,GACtBwlB,EAAiBxlB,EAAYc,GAE7BukB,EAAkBrlB,EAAYc,IAd9B0I,EAAAA,EAAAA,MAAyB7J,MAAM8J,IAC7B,MAAMJ,EAASI,EAEXJ,KACEwf,EAAAA,EAAAA,IAAaxf,GACfmc,EAAiBnc,EAAQvI,GAEzBukB,EAAkBhc,EAAQvI,G,GASpC,CAEA,SAASgoB,IACP,IAAIxE,EAAkC,KAClCH,EAAiC,KACrC,MAAM4E,EAAU,IAAIzf,SAAQ,CAACC,EAASif,KACpClE,EAAc/a,EACd4a,EAAaqE,CAAM,IAGfQ,EAAW,CACfD,UACAzE,YAAaA,EACbH,WAAYA,GAGd,MAAO,CACL4E,UACAC,WAEJ,CAEA,SAASC,EAAqBC,GAC5B,MAAMC,EACJrO,EAAAA,EAAYqI,aAAapI,OAAOqO,iCAAiC3nB,MAC9DzB,GAAeA,EAAWC,QAAUK,EAAAA,GAAW1C,OAAOkC,sBACtDupB,mBAECC,GAAUC,EAAAA,EAAAA,MAEhB,OAAOJ,IAAwB5gB,EAAAA,EAAAA,OAC1B+gB,EAAQE,6BACNF,EAAQG,8BACVP,IACEI,EAAQI,qBACRJ,EAAQG,4BACjB,CAEA,SAAS9E,EAAwCuE,GAC3CD,EAAqBC,GACvB9E,KAEAuF,EAAAA,EAAAA,MAAoBhqB,MACjBiqB,IACKA,IACFjkB,EAAAA,EAAAA,IAAgBikB,GAChBxF,KAEAJ,G,IAGHzjB,GAAUyjB,EAAWzjB,IAG5B,CAEA,SAAS+kB,EAAoBtlB,GACvBM,EAAAA,KACFT,EAAAA,EAAAA,IAAc,IACRS,EAAAA,GAAW1C,MACfsC,gBAAiBC,EAAAA,GAAYC,OAI7BL,EAAanC,QACfmC,EAAanC,MAAMoC,WAAaA,EAEpC,CAEAmC,eAAeukB,IACbhD,EAA6B,IAAIpa,SAASC,KACxCsgB,EAAAA,EAAAA,MAAiBlqB,MAAK,KACpB,MAAMmqB,GACJzB,EAAAA,EAAAA,OAAkC0B,eAEhCD,GAA6BA,EAA0B1f,UACzDwd,EAAAA,EAAAA,OAEK7d,EAAAA,GAAWnM,QACdosB,EAAAA,EAAAA,MAA8B1oB,SAAQ,MACpCwmB,EAAAA,EAAAA,MACAve,EAAQjJ,EAAAA,GAAW1C,MAAqB,IAO9C2L,EAAQjJ,EAAAA,GAAW1C,MAAqB,GACxC,GAEN,CAEAuE,eAAe0kB,IACb,MAAMoD,EAAmBnB,IAKzB,OAHA7c,EAAiBrO,OAAQ,EACzBmC,EAAanC,MAAQqsB,EAAiBjB,SAE/BiB,EAAiBlB,QAAQznB,SAAQ,KACtCvB,EAAanC,MAAQ,KACrBqO,EAAiBrO,OAAQ,GACzBgE,EAAAA,EAAAA,KAAY,GAEhB,CAEA,SAASgnB,IACP,MAAMsB,EAAkB5pB,EAAAA,GAAW1C,OAAOkC,mBACpCqqB,GAAe9B,EAAAA,EAAAA,MAAiCle,QAAQ1I,MAC3D6mB,GAAS4B,IAAoB5B,EAAKroB,SAGhCF,EAAanC,OAAOoC,YAAcmqB,IACpCpqB,EAAanC,MAAwBoC,WACpCmqB,EAEN,CAEA,SAAS/E,IACP,IAAKrlB,EAAanC,OAAOoC,WACvB,MAAM,IAAI8c,MAAM,2CAGlB0I,EAAiBzlB,EAAanC,OAAOoC,YAAY,EACnD,CAEA,SAASmlB,EAA8BiF,GACrC,MAAMC,EAAiBtqB,EAAanC,OAAOoC,WACrCsqB,EACJD,GAAgBpqB,QAChBwlB,EAAAA,GAAyCvI,cACrCqN,EACJF,GAAgBpqB,QAChBwlB,EAAAA,GAAyCtI,cACrC+H,EAAgBnlB,EAAanC,OAAO0C,WAErC4kB,KAIDoF,GAAkBC,KACpBrF,EAAc1lB,YAAc4qB,EAAiB5qB,aAG3C+qB,IACFrF,EAAcxlB,SAAW0qB,EAAiB1qB,SAC1CwlB,EAAczlB,eAAiB2qB,EAAiB3qB,gBAEpD,CAEA,SAASulB,GAA8Bjc,GACrC,MAAMyhB,GACJnC,EAAAA,EAAAA,MAAiCM,0BAC7BmB,GACJzB,EAAAA,EAAAA,MAAiC0B,eAEnC,GAAIS,EACF,OAAOA,EAAkBvqB,MAG3B,MAAMwqB,EAA6BC,GACjC3hB,EACA+gB,GAGIa,EAAoBF,EAA2B7Q,QACnD,CAACgR,EAAMC,IACED,EAAKE,SAAWD,EAAQC,SAAWF,EAAOC,IAIrD,OAAOF,EAAkB1qB,KAC3B,CAEA,SAASyqB,GACP3hB,EACA+gB,GAEA,MAAMiB,EAAUhiB,EAAKgiB,QACrB,OAAOjB,EAA0B3kB,QAAQnF,IACvC,OAAQA,EAAWC,OACjB,KAAKwlB,EAAAA,GAAyCzI,SAC5C,QAAS+N,EAAQC,oBACnB,KAAKvF,EAAAA,GAAyCxI,OAC5C,QAAS8N,EAAQE,WAAaF,EAAQrjB,SAAWqjB,EAAQG,OAC3D,KAAKzF,EAAAA,GAAyCrI,gBAC5C,QAAS2N,EAAQI,iBACnB,KAAK1F,EAAAA,GAAyCnI,oBAC5C,OAAO8N,GAAmBriB,GAC5B,QACE,OAAO,E,GAGf,CAEA,SAAS0d,KACP9C,EAAY,KACZ+D,KACA/hB,EAAAA,EAAAA,IAAgB,CAAEzF,gBAAiBC,EAAAA,GAAYC,OAE/C,MAAMunB,GAAcC,EAAAA,EAAAA,MAEpB,OAAOD,EACJE,yBACAloB,MACCwC,gBACQ0kB,KACNkB,EAAAA,EAAAA,IAAwBhf,EAAK,IAE/B5G,UACEkpB,QAAQ9qB,MAAMA,EAAMsB,eAEdglB,KACNmB,EAAAA,EAAAA,IAAuBznB,EAAM,IAGhCe,SAAQ,MACPwmB,EAAAA,EAAAA,MACAvB,EAAAA,EAAqB+E,SAAS,KAAK,GAEzC,CAEA,SAASF,GAAmBriB,GAC1B,MAAMwiB,EAAQ,IAAIptB,OAChB,KAAKsnB,EAAAA,GAAyCnI,uBAC9C,MAGF,OAAO7X,OAAOC,QAAQqD,EAAKgiB,SAASnmB,MAAK,EAAE9I,KAASyvB,EAAMC,KAAK1vB,IACjE,CAEA,SAASuqB,GAAiBH,GAOxB,OANAvgB,EAAAA,EAAAA,IAAgB,CACdkf,YAAaqB,EACbpmB,mBAAoBikB,EACpB7jB,gBAAiBC,EAAAA,GAAYC,OAGxBgJ,GACT,C,0MCrlBA,IAAIhM,EAEE,SAAUoE,IAKd,OAJKpE,GACHquB,IAGKruB,CACT,CAEM,SAAU6H,IACdwmB,GACF,CAEA,SAASA,IACP,MAAMC,GAAqB3c,EAAAA,EAAAA,IAAwB,wBAC7C4c,EACJ7Q,EAAAA,EAAY8Q,2BAA2BA,2BACnCC,EAAe/Q,EAAAA,EAAYgR,mBAAmB/Q,OAAO8Q,aAEvDH,IACFtuB,EAAaqV,KAAKsZ,MAAML,GAExBtuB,EAAW0I,SACRpE,GAAQA,EAAGjE,aAAc2kB,EAAAA,EAAAA,IAAgB1gB,EAAI,cAAe,eAG/DtE,EAAa4uB,EAAsB5uB,EAAYuuB,GAC/CvuB,EAAa6uB,EAA4B7uB,GAEzCA,EAAWgU,SACLya,GAAgB,IAAIzmB,KAAK8mB,IACpB,CACL5uB,GAAI4uB,EAAY5uB,GAChBE,WAAY0uB,EAAY1uB,WACxBD,UAAW2uB,EAAY3uB,UACvBE,aAAa2kB,EAAAA,EAAAA,IAAgB8J,EAAa,OAAQ,eAClDxuB,KAAMwuB,EAAYxuB,UAKxBN,EAAaA,EAAW+H,QAAQI,GAAcA,EAAUhI,YAE5D,CAEA,SAAS0uB,EAA4B7uB,GACnC,MAAM+uB,EAAyB/uB,EAAWqE,MACvC8D,GAA+B,sBAAjBA,EAAUjI,KAG3B,OAAK6uB,GAIL/uB,EAAa,IACRA,EAAW+H,QAAQinB,GAAiB,sBAAVA,EAAG9uB,KAChC6uB,GAGK/uB,GAREA,CASX,CAEA,SAAS4uB,EACP5uB,EACAuuB,GAgCA,OA9BAA,EAAiB7lB,SAASumB,IACxB,MAAM9mB,EAAYnI,EAAWqE,MAAM2qB,GAAOA,EAAG9uB,KAAO+uB,EAAgB/uB,KAEpE,IAAKiI,EACH,OAGF,IAAI+mB,EAAa7Z,KAAKsZ,MAAMM,EAAgBC,YAAc,MAExB,WAA9BD,EAAgBE,WAA0BD,EAAWE,UACvDF,EAAaG,EAAiBJ,EAAiBC,IAGjD/mB,EAAUjI,GAAK+uB,EAAgB/uB,GAC/BiI,EAAU9H,aAAc2kB,EAAAA,EAAAA,IACtBiK,EACA,cACA,4BACAA,EAAgBriB,aAGlBzE,EAAUmnB,SAAWJ,GAAYK,IACjCpnB,EAAUqnB,SAAWN,GAAYO,IACjCtnB,EAAUunB,QAAUR,GAAYK,IAChCpnB,EAAUwnB,QAAUT,GAAYO,IAChCtnB,EAAUiB,YAAc8lB,GAAYU,SACpCznB,EAAU0nB,UAAYX,GAAYW,UAClC1nB,EAAU2nB,cAAgBZ,GAAYE,OAAO,IAGxCpvB,CACT,CAEA,SAASqvB,EACPJ,EACAC,GAWA,OATAA,EAAWE,QAAQ1mB,SAAQ,CAACuD,EAAQ1E,KAClC2nB,EAAWE,QAAQ7nB,IAASyd,EAAAA,EAAAA,IAC1BiK,EACA,UAAUhjB,IACV,4BACAA,EACD,IAGIijB,CACT,C,6QCjHM,SAAU9iB,IACd,OAAO2jB,EAAAA,EAAAA,IAAUC,EAAAA,EACnB,CAEM,SAAUzD,IAGd,OAAO0D,EAAc5H,EAAAA,GAAyC7d,KAChE,CAEM,SAAUylB,EACd3vB,EACAmD,GAEA,IAAIysB,EAEJ,OAAQ5vB,GACN,KAAK+nB,EAAAA,GAAyC7d,KAC5C0lB,GAAeH,EAAAA,EAAAA,IAAUI,EAAAA,EAAoB1sB,GAC7C,MACF,KAAK4kB,EAAAA,GAAyCvI,cAC5CoQ,GAAeH,EAAAA,EAAAA,IAAUK,EAAAA,EAAsB3sB,GAC/C,MACF,KAAK4kB,EAAAA,GAAyCtI,cAC5CmQ,GAAeH,EAAAA,EAAAA,IAAUM,EAAAA,EAAsB5sB,GAC/C,MACF,QACEysB,EAAehkB,QAAQC,UACvB,MAGJ,OAAO+jB,CACT,CAEM,SAAUI,IACd,OAAOP,EAAAA,EAAAA,IAAUQ,EAAAA,EACnB,E,sTCjCO,MAAMlI,EAET,CACFzI,SAAU,WACVpV,KAAM,OACNqV,OAAQ,SACRC,cAAe,eACfC,cAAe,eACfC,gBAAiB,kBAGNwQ,EAAkD,CAC7DnI,EAAyC7d,KACzC6d,EAAyCvI,cACzCuI,EAAyCtI,eAGrC,SAAU0L,EAAaP,GAC3B,OAAOsF,EAAgDzb,SAASmW,EAAKroB,MACvE,CAEA,MAAM4tB,EAA2Bhb,WAAAA,IAAAE,EAAAA,EAAAA,GAAA,cACc,KAAEA,EAAAA,EAAAA,GAAA,eACD,KAAEA,EAAAA,EAAAA,GAAA,WACN,KAAEA,EAAAA,EAAAA,GAAA,kCAAAA,EAAAA,EAAAA,GAAA,mCAAAA,EAAAA,EAAAA,GAAA,mCAAAA,EAAAA,EAAAA,GAAA,mCAAAA,EAAAA,EAAAA,GAAA,gCAO5C,6BAAI+a,GACF,OAAQ9a,KAAK+a,oBAAsB/a,KAAKgb,kBAC1C,CAEA,uBAAIC,GACF,OAAOjb,KAAK+a,oBAAsB/a,KAAKgb,kBACzC,CAEA,kBAAIjE,GACF,OAAO/W,KAAK7I,QAAQhF,QAAQmjB,GAASA,EAAK/qB,WAC5C,CAEA,iBAAI2wB,GACF,OAAOlb,KAAK3I,OAAO5I,MAAM6mB,GAASA,EAAK/qB,WACzC,CAEA,6BAAIorB,GACF,MAAM6D,EAAU,IACXxZ,KAAK+W,kBACJ/W,KAAKkb,cAAgB,CAAClb,KAAKkb,eAAiB,IAGlD,OAA0B,IAAnB1B,EAAQpiB,OAAeoiB,EAAQ,GAAK,IAC7C,EAGF,SAAS2B,EACPC,EAAqD/F,IAClD6F,eAEH,IAAKE,EACH,OAAO,KAGT,MAAMtjB,EACJkT,EAAAA,EAAaC,uCAAuCxc,MACjD4sB,GAAMA,EAAEvyB,MAAQsyB,EAAiBnuB,SACjCrC,OAAS,kBAEd,MAAO,CACL0M,KAAM,wDAAwD8jB,EAAiBnuB,QAC/EoJ,OAAQ+kB,EACRtjB,eAEJ,CAEA,SAASwjB,EACPC,EAAyDlG,IACtD0B,gBAEH,OAAOwE,EAAmBnpB,KAAKiE,IAC7B,MAAM3L,EAAO2L,EAAOpJ,MAEd2K,EACJoT,EAAAA,EAAaE,qCAAqCzc,MAC/C4sB,GAAMA,EAAEvyB,MAAQ4B,KAChBE,OACH,UACEyL,EAAOmlB,qBAAuBnlB,EAAOmlB,qBAAuB,gCAE5DnlB,EAAOolB,WAAaplB,EAAOolB,WAAa,YAGtC5jB,EACJmT,EAAAA,EAAaG,uCAAuC1c,MACjDyQ,GAAMA,EAAEpW,MAAQ4B,KAChBE,MAECkN,EACJkT,EAAAA,EAAaC,uCAAuCxc,MACjD4sB,GAAMA,EAAEvyB,MAAQ4B,KAChBE,OAAS,kBAER8wB,EAAsBrlB,EAAOkB,UAC/B,IAAG7G,EAAAA,EAAAA,IACD,wEACG2F,EAAOkB,YACZ,KAEJ,MAAO,CACLD,KACEokB,IACAhrB,EAAAA,EAAAA,IAAK,wDAAwDhG,KAC/DoN,eACAD,0BACAxB,SACAuB,4BACD,GAEL,CAEM,SAAUyd,IACd,OAAOvN,EAAAA,EAAYqI,aAAapI,OAAOqO,iCAAiCxP,QACtE,CAAC+U,EAAqCrG,KAChCO,EAAaP,GACfqG,EAAOtkB,OAAO+G,KAAKkX,GAEnBqG,EAAOxkB,QAAQiH,KAAKkX,GAGtBqG,EAAOve,IAAIgB,KAAKkX,GAEhB,MAAM5qB,EAAO4qB,EAAKroB,MAclB,MAZa,SAATvC,EACFixB,EAAOC,kBAAoBtG,EACT,iBAAT5qB,EACTixB,EAAOZ,mBAAqBzF,EACV,iBAAT5qB,EACTixB,EAAOX,mBAAqB1F,EACV,aAAT5qB,EACTixB,EAAOE,mBAAqBvG,EACV,WAAT5qB,IACTixB,EAAOG,iBAAmBxG,GAGrBqG,CAAM,GAEf,IAAId,EAER,CAEM,SAAU5kB,EACd8lB,EAA2D1G,KAE3D,MAAO,CACLle,QAASmkB,EACPS,EAA4BhF,gBAE9B1f,OAAQ8jB,EACNY,EAA4Bb,eAGlC,C,mLC9KO,MAAMpiB,GAAazO,EAAAA,EAAAA,KAAI,GAExB,SAAUoO,KACVujB,EAAAA,EAAAA,QACFljB,EAAWlO,OAAQ,GAEnBqxB,EAAAA,EAAAA,MAAmBtvB,MAAMuvB,IACvBltB,SAAS+gB,qBAAqB,QAAQ,GAAGrY,MAAMykB,SAAW,SAC1DD,EAAOE,kBAAkB,IAG/B,CAEOjtB,eAAewkB,IACpB,IAAIqI,EAAAA,EAAAA,MAAmB,CACrB,MAAMK,EAAYC,UAAUD,UAE5B,OAAIA,EAAUld,SAAS,YAAckd,EAAUld,SAAS,WAEpD8c,EAAAA,EAAAA,MAEGtvB,MAAKwC,UACJ+sB,EAAOK,OAAO,GAEd,IACE,aAAaL,EAAOM,sB,CACpB,MACA,MAAMC,GAAM/rB,EAAAA,EAAAA,IAAK,gDAEW,IAAxBtE,OAAOswB,QAAQD,IACjBrwB,OAAOuwB,KAAKvwB,OAAOqX,SAASrS,KAAM,S,KAIvCmkB,OAAM,WACL,KAMN0G,EAAAA,EAAAA,MAEGtvB,MAAMuvB,IACLA,EAAOK,OAAO,EAAE,IAEjBhH,OAAM,Q,CAMb,OAAOjf,QAAQC,SACjB,CAEM,SAAU2D,EAAiBF,IAE/BiiB,EAAAA,EAAAA,MAAmBtvB,MAAMuvB,GACvBA,EAAOK,OAAOviB,EAAQ4iB,wBAAwBC,IAElD,C,wIC7DA,IAAIC,EACG,MAAMC,EAAiC,IAExC,SAAUd,IAEd,OAAO,IAAI3lB,SAAQ,CAACC,EAASif,KAC3B,IAAIwH,GAAiB,EACjBC,GAAkB,EAEtBC,KAA6BnH,QAAQppB,MAAMuvB,IACzCc,GAAiB,EAEZC,GACH1mB,EAAQ2lB,E,IAIZ,IAAI5lB,SAAS6mB,GACXve,WAAWue,EAAUJ,KACrBpwB,MAAK,KACLswB,GAAkB,EAEbD,GACHxH,G,GAEF,GAEN,CAEM,SAAUwG,IACd,OAAO5vB,OAAO8vB,SAAW9vB,MAC3B,CAEA,SAAS8wB,EAA0BE,EAAmB,CAAC,GAWrD,OAVKN,IACHA,GAAyBO,EAAAA,EAAAA,IAAgB,CACvCD,QAAS,IACJA,EACHE,iBACAC,4BAKCT,CACT,CAEA,SAASS,EAAsBC,GAC7B,MAAMC,EAAMzuB,SAAS0uB,eAAe,OAEpC,GAAID,EAAK,CACP,MAAME,EAAoBF,GAAKG,SAAS,GAClCC,EAAoBF,GAAmBC,SAAS,GAChDE,EAAeD,GAAmBD,SAAS,GAEjD,CACE5uB,SAAS+gB,qBAAqB,QAAQ,GACtC/gB,SAAS+gB,qBAAqB,QAAQ,GACtC0N,EACAE,EACAE,EACAC,GACAhrB,SAASirB,GAASA,EAAmBrmB,MAAM8lB,OAASA,G,CAE1D,CAEA,SAASF,IACP,MAAMU,EAAShvB,SAAS+gB,qBAAqB,QAAQ,GAC/CkO,EAAUjvB,SAASkvB,iBACvB,UAAUC,EAAAA,MACV,GACIC,EAAiBJ,EAAOpB,wBACxByB,EAAcjyB,OAAOkyB,iBAAiBN,GACtCO,EACJC,EAAUH,EAAYI,WAAaD,EAAUH,EAAYK,cACrDC,EACJH,EAAUH,EAAYO,YAAcJ,EAAUH,EAAYQ,aAC5D,IAAIC,EAAYV,EAAeZ,OAASe,EAExC,GAAIN,EAAS,CACX,MAAMc,EAAkBd,EAAQrB,wBAC1BoC,EAAe5yB,OAAOkyB,iBAAiBL,GACvCgB,EACJT,EAAUQ,EAAaP,WAAaD,EAAUQ,EAAaN,cACvDQ,EAAgBH,EAAgBvB,OAASyB,EAC/CH,EAAYK,KAAKxF,IAAImF,EAAWI,E,CAGlC,MAAO,CACLE,MAAOhB,EAAegB,MAAQT,EAC9BnB,OAAQsB,EACRO,UAAWpB,EAEf,CAEA,SAASO,EAAUc,GACjB,OAAOA,EAAUC,WAAWD,GAAW,CACzC,C,+FCjGA,MAAME,EACJ,+DAEF,IAAIzL,EAAmE,KAEhE5kB,eAAe6kB,IACpB,IAAKD,EAA6B,CAChC,MAAM7V,QAAiB2K,MACrB,GAAGH,EAAAA,KAAoB8W,IAAwCryB,EAAAA,GAAYC,OAC3E,CAAE0b,OAAQ,QAGZiL,EACE7V,EAAS2L,M,CAGb,OAAOkK,CACT,C,sHChBA,MAAM0L,EAAmB,qCACnBC,EAAoB,mCAEpBC,EAA2B,CAC/BvX,QAAS,CACP,eAAgB,oCAIbjZ,eAAe5C,EAAyBqzB,GAK7C,aAAa/W,MAAM,GAAGH,EAAAA,KAAoB+W,IAAoB,CAC5D3W,OAAQ,UACL6W,EACHtL,KAAM5U,KAAKC,UAAU,IAChBkgB,EACH1yB,gBAAiBC,EAAAA,GAAYC,SAE9BT,MAAMuR,IACP,IAAKA,EAAS0L,GACZ,MAAM1L,EAGR,OAAOA,EAAS2L,MAA8B,GAElD,CAEO1a,eAAeZ,EAAuBqxB,GAK3C,aAAa/W,MAAM,GAAGH,EAAAA,KAAoBgX,IAAqB,CAC7D5W,OAAQ,UACL6W,EACHtL,KAAM5U,KAAKC,UAAU,IAChBkgB,EACH1yB,gBAAiBC,EAAAA,GAAYC,SAE9BT,MAAMuR,IACP,IAAKA,EAAS0L,GACZ,MAAM1L,C,GAGZ,C,gaC/BA,MAAM2hB,EAA2B,cAC3BC,EAA0C,+BAC1CC,EAAoC,0BACpCC,EACJ,gCACIC,EACJ,4FACIC,EAAwB,iBACxBC,EAAgB,iBAChBC,GAAyB,EACzBC,GAAiC,EACjCC,GAAiC,EAEjCC,EAA2B,GAAGn0B,OAAOqX,SAAS+c,2BAC9CC,EAAoC,yBACpCC,EAAqC,gCACrCC,EAA0B,qBAC1BC,EAAsC,sBACtCC,EAAoC,6BACpCC,EAA6C,eAE7CC,EAAiC,oBACjCC,EAAuB,aAAU,KACjCC,EAAuB,cAAc,KAC3C,IAAIC,EAA6B,EAC7BC,EAAmDr2B,KAAAA,EAAAA,OAAAA,EAAS,KAEhE,MAAMopB,SAAsBF,EAAAA,EAAAA,MAAkCE,aAExDkN,EAAyC,CAC7CC,UAAWnN,EACXoN,UAAWzB,EACX0B,mBAAoB,GAAGhB,IAA2BT,IAClD0B,aAAc,GAAGjB,IAA2BR,IAC5C0B,oBAAqBxB,EAIrByB,cAAexB,EACfyB,MAAOxB,EAGPyB,aAAcxB,EAIdyB,oBAAqB,GAAGtB,IAA2BP,IACnD8B,qBAAsBzB,EAItB0B,qBAAsBzB,GAGxB,IAAI3L,EAAkC,KAIhC,SAAUpC,EACdyP,EACAh1B,GAEA,IAAK2nB,EACH,OAGF,MAAMsN,EAAuBj1B,EAAWC,MAExC,IAAIi1B,EAAAA,EAAAA,IAAyBD,GAAuB,CAClD,MAAME,EAAoBH,EACtBzO,EAAAA,EAAqB6O,6BAA6Bp1B,EAAW1C,IAC7DipB,EAAAA,EAAqB8O,6BAA6Br1B,EAAW1C,IAEjE63B,EAAkBx1B,MAAK,KACrB,MAAM21B,EAAe,IAAIC,gBAAgBn2B,OAAOqX,SAAS+e,QACzDF,EAAaG,IACX,YACAlP,EAAAA,EAAqBmP,gBAEvB,MAAMC,EAAc,GAAGv2B,OAAOqX,SAAS+c,SACrCp0B,OAAOqX,SAASmf,YACdN,EAAaxuB,aAEjB6gB,GAAakO,eAAe,CAC1BvqB,MAAO,CACLqqB,eAEFG,iBACEC,EAAmCd,IACrC,G,MAGJe,IACArO,EACGsO,YAAY,CACXH,iBACEC,EAAmCd,KAEtCt1B,MACEoJ,IACCitB,IACAjO,EAAwBhf,EAAK,IAE9BxI,GAAiBynB,EAAuBznB,IAGjD,CAEM,SAAUypB,IACd,IAAKrC,EACH,OAAOre,QAAQC,QAAQ,MAGzB,MAAM2sB,GAAwB7N,EAAAA,EAAAA,MAC3B0B,eAAe5kB,QAAQmjB,IAAUvK,EAAAA,GAAkB5L,SAASmW,EAAKroB,SACjEmF,KAAKkjB,GAASA,EAAKroB,QACnBk2B,KAAK,KAER,OAAOxO,EACJyO,aAAa,CACZN,iBAAkBC,EAChBG,KAGHv2B,MACEoJ,GACMA,EAIEstB,EAA8BttB,GAH5BO,QAAQC,QAAQ,QAK1BhJ,IACC,MAAMG,EAAWH,EAAMA,MAMvB,MAJiB,mBAAbG,GACF2qB,QAAQ9qB,MAAMG,GAAYH,GAGrB+I,QAAQC,QAAQ,KAAK,GAGpC,CAEM,SAAUye,EAAuBznB,GACrC,OAAQA,EAAMsB,SACZ,KAAK+xB,EACH0C,KACAtS,EAAAA,EAAAA,IAAWyP,GACX,MACF,KAAKI,GACH7P,EAAAA,EAAAA,IAAW0P,GACX,MACF,SACE1P,EAAAA,EAAAA,IAAW2P,GACX,MAEN,CAEM,SAAU5L,EAAwBhf,IACtCwtB,EAAAA,EAAAA,IAAextB,EAAKytB,eACpBhS,EAAAA,EAAAA,KACF,CAEOriB,eAAek0B,EAA8BttB,GAGlD,OAFAwtB,EAAAA,EAAAA,IAAextB,EAAKytB,eAEbzR,EAAAA,EAAAA,IAA0Bhc,EACnC,CAEM,SAAU6e,IAKd,OAJKD,IACHA,EAAc,IAAI8O,EAAAA,YAAYrC,IAGzBzM,CACT,CAEM,SAAUG,IAEd,MAAM4O,EAAiB,CACrB,WACA,eACA,aACA,aACA,QACA,QACA,iBAGFA,EAAe5wB,SAAQ,SAAUuc,IAC/BsU,EAAAA,EAAAA,IAAiBtU,EACnB,GACF,CAEA,SAAS2T,IACH52B,OAAOw3B,cACTx3B,OAAOw3B,aAAaC,WAAW9C,EAEnC,CAEA,SAASgC,EAAmCG,GAC1C,MAAO,CACL,CAACpC,GAA6CoC,EAElD,CAEA,SAASI,IACP,IAAKQ,EAAAA,IAAsBC,gBACzB,OAGF5C,OAA+Br2B,EAC/Bo2B,EAA6B,EAE7B,MAAM8C,EAAqBj3B,EAAAA,GAAanC,OAAOoC,WACzCi3B,EAAgBjD,EAEtB3I,QAAQ6L,IACN,wGAGF,MAAMC,EAAW10B,aAAY,KAC3B,MAAM20B,EAAmBlD,EAA6B+C,EAEtD/C,EAA6BkD,EAEzBA,EAAmBnD,IACrB5I,QAAQ6L,IAAI,2DACZv0B,cAAcwxB,IAId/0B,OAAOw3B,aAAaS,QAAQtD,IAC5BpM,GACAqP,IAEA3L,QAAQ6L,IAAI,4DACZlB,IACArzB,cAAcwxB,GACdviB,YACE,IACE+V,GACI2P,sBACD/O,OAAM,KACL8C,QAAQ6L,IACN,sEACD,IAEF51B,SAAQ,KAAM8H,EAAAA,EAAAA,IAAM4tB,MACzBC,G,GAGHA,GAEH9C,EAA+BgD,CACjC,CAzMAvP,IACA2P,EAAAA,IAAIC,OAASnM,Q,mMCpEP,SAAUtF,KACdsH,EAAAA,EAAAA,IAAc,gBACX1tB,MACEW,GACKA,GACKqpB,EAAAA,EAAAA,OAEA3F,EAAAA,EAAAA,QAGX,KAAMA,EAAAA,EAAAA,IAAWyT,EAAAA,MAElB93B,MACEC,IACKA,GACFwkB,EAAAA,EAAAA,OAEAJ,EAAAA,EAAAA,K,IAGJ,KAAMA,EAAAA,EAAAA,IAAWyT,EAAAA,KAEvB,CAEM,SAAU3R,KACduH,EAAAA,EAAAA,IAAc,eAAgB,CAAEvsB,SAAS,IACtCnB,MACEW,GACKA,GACKqpB,EAAAA,EAAAA,OAEA3F,EAAAA,EAAAA,QAGX,KAAMA,EAAAA,EAAAA,IAAWyT,EAAAA,MAElB93B,MACC,KAAMslB,EAAAA,EAAAA,QACN,KAAMjB,EAAAA,EAAAA,IAAWyT,EAAAA,KAEvB,E,2PCrCA,MAAMhwB,EAA0C,8BAE1C,SAAUke,KACdgE,EAAAA,EAAAA,MAAoBhqB,MACjBC,IACKA,IACFC,EAAAA,EAAAA,IAAcD,IACdwkB,EAAAA,EAAAA,QAEAJ,EAAAA,EAAAA,K,IAGHzjB,IAAUyjB,EAAAA,EAAAA,IAAWzjB,IAE1B,CAEM,SAAUmlB,KACdgI,EAAAA,EAAAA,MAA4B/tB,MACzB0iB,GACQA,GACH4C,EAAAA,EAAAA,OACAjB,EAAAA,EAAAA,IAAWvc,KAEjB,KAAMuc,EAAAA,EAAAA,IAAWvc,IAErB,C,yOC7BO,MAAMgwB,EAAmC,wBAE1C,SAAU5R,KACdwH,EAAAA,EAAAA,IAAc,gBACX1tB,MACEW,GACKA,GACKqpB,EAAAA,EAAAA,OAEA3F,EAAAA,EAAAA,QAGX,KAAMA,EAAAA,EAAAA,IAAWyT,KAElB93B,MACEC,IACKA,GACFwkB,EAAAA,EAAAA,OAEAJ,EAAAA,EAAAA,K,IAGJ,KAAMA,EAAAA,EAAAA,IAAWyT,IAEvB,CAEM,SAAU7R,KACdyH,EAAAA,EAAAA,IAAc,eAAgB,CAAEvsB,SAAS,IACtCnB,MACEW,GACKA,GACKqpB,EAAAA,EAAAA,OAEA3F,EAAAA,EAAAA,QAGX,KAAMA,EAAAA,EAAAA,IAAWyT,KAElB93B,MACC,KAAMslB,EAAAA,EAAAA,QACN,KAAMjB,EAAAA,EAAAA,IAAWyT,IAEvB,C,2IC/CO,MAAM3qB,EAA4B,iBAC5ByX,EAAwB,aACxBxX,EAAuC,2B,gQCO7C5K,eAAeu1B,EACpBC,EACAC,EAAiB,IAEjB,MAAMC,QAAaC,EAAAA,EAAAA,OAEnBC,EAAAA,EAAAA,OACAC,EAAAA,EAAAA,YACMzR,EAAAA,EAAqB0R,2BAC3BjS,EAAAA,EAAAA,MAEA,MAAMyK,GAAMyH,EAAAA,EAAAA,IAAUP,GAGtB,CACE,CAACE,GACD,CACEM,EAAAA,GACA,CAAEC,OAAQ,CAAE96B,GAAIuF,EAAAA,EAAYw1B,sCAE3BT,GACH9xB,SAAQ,EAAEwyB,EAAQC,KAAkB9H,EAAI+H,IAAIF,EAAQC,KAEtD9H,EAAIgI,MAAM,SAEV7V,EAAAA,EAAAA,MACA8V,EAAAA,EAAAA,IACF,C,mRCxBO,IAAI5B,EAAoD,KAEzD,SAAUkB,IACdlB,EAAuB6B,GACzB,CAEM,SAAUzD,EAAyBD,GACvC,OACE6B,GAAsB8B,oBACrBC,EAAe5D,KACd6D,IAAe/B,IAAoBgC,CAEzC,CAEA,MAAMD,EAAaE,IAAAA,QACbD,EAAoBC,IAAAA,eACpBjC,EAAkBiC,IAAAA,aAClBC,EAAYJ,IAElB,SAASA,EACP5D,EAAsC,KACtCiE,EAEIC,KAEJ,MAAM9J,EAAYC,WAAaA,UAAUD,UAEzC,IAAKA,EACH,OAAO,EAGT,IAAI+J,EAEJ,GAAInE,GAKF,GAJAmE,EACEF,GACAA,EAA4BjE,IAEzBmE,IAAsBA,EAAkBhvB,OAC3C,OAAO,OAGTgvB,EAAoB3zB,OAAOC,QAAQwzB,GAChCtf,QAAO,CAACxJ,GAAM1L,EAAG20B,OACfA,GAAe,IAAIvzB,SAASwzB,GAAUlpB,EAAIgB,KAAKkoB,KAEzClpB,IACN,IACFjL,QAAO,CAACm0B,EAAO30B,EAAO40B,IAAW50B,IAAU40B,EAAO7nB,QAAQ4nB,KAG/D,OAAOF,GAAmBhnB,OAAOonB,IAAU,IAAIr7B,OAAOq7B,GAAMhO,KAAK6D,IACnE,CAEA,SAAS8J,IACP,OACEM,EAAAA,EAAAA,IAAU1qB,EAAAA,EAAAA,IAAwB,4BAAwC,EAE9E,CAEA,SAAS4pB,EACPO,EAEIC,IACJP,EAAoBhV,EAAAA,IACoC,SAAtDA,EAAAA,GAAYC,EAAAA,GAAuB6V,gBAErC,MAAO,CACLT,YACAlC,kBACAgC,oBACAD,aACAI,8BACAN,oBAEJ,C,yMCrEO,MAAMz4B,EAAc2a,EAAAA,GAAaqI,cACpCA,aAAa,GAEX,SAAUwW,IACd,MAAMC,EAAaz5B,GAAay5B,WAEhC,OAAOA,EACHA,EACG5iB,MAAM,cACN5R,KAAKy0B,GAAMA,EAAEC,OAAO,KACpB3D,KAAK,IACR,SACN,CAEM,SAAUlQ,IACd,OAAO9lB,EAAYy5B,aAAera,EAAAA,GAAYG,SAChD,CAEM,SAAUpX,IACd,OAAO8Y,EAAAA,GAA4BjP,SAAShS,EAAYy5B,WAC1D,CAEM,SAAUxT,IACd,OAAOjmB,EAAYy5B,aAAera,EAAAA,GAAYM,OAChD,C,qHChCA,MAAMka,EAAwB,yBAC9B,IAAIzuB,EAAkB,KAOtB,MAAMqnB,EAA2B,CAC/BvX,QAAS,CACP,eAAgB,kCAChBC,OAAQ,qBAIZ,MAAM2e,EAGJnnB,WAAAA,IAAAE,EAAAA,EAAAA,GAAA,8BACEC,KAAKinB,gBAAiB58B,EAAAA,EAAAA,IAAmB,KAC3C,CAEA,kBAAWq4B,GACT,OAAO1iB,KAAKinB,eAAer8B,KAC7B,CAEO4oB,QAAAA,GACL,OAAOlb,CACT,CAEO,6BAAM2sB,GACX,MAAMiC,GAAiBC,EAAAA,EAAAA,IAActW,EAAAA,GAAuBC,YAM5D,OAJIoW,IACF5uB,QAAcib,EAAqB6T,KAAKF,IAGnC5wB,QAAQC,SACjB,CAEO,UAAM6wB,CAAKC,GAGhB,GAFAA,EAAYA,GAAarnB,KAAK0iB,gBAEzB2E,EACH,MAAM,IAAIvd,MACR,4DAIJ,MAAMyG,EAAM,GAAG7H,EAAAA,KAAoBqe,KAAyBM,IAE5D,aAAcxe,MAAM0H,EAAK,CAAEzH,OAAQ,SAAUe,MAC/C,CAEO,kCAAMuY,CAA6BjN,GACxC,OAAOnV,KAAKsnB,MAAM,CAChBnS,uBACA6M,SAAS,GAEb,CAEO,kCAAMK,CAA6BlN,GACxC,MAAM7B,QAAsBiU,EAAAA,EAAAA,MAE5B,OAAOvnB,KAAKsnB,MAAM,CAChBnS,0BACG7B,GAEP,CAEOgF,QAAAA,CAASkP,GAGd,OAFAlvB,EAAQkvB,EAEDxnB,KAAKwT,UACd,CAEO,WAAM8T,CAAMhU,GACjB,MAAMyC,QAAgBlN,MACpB,GAAGH,EAAAA,KAAoBqe,IACvB,CACE1S,KAAM5U,KAAKC,UAAU4T,GACrBxK,OAAQ,UACL6W,IAMP,OAFA3f,KAAKinB,eAAer8B,YAAcmrB,EAAQlM,OAEnCkM,CACT,EAGK,MAAMxC,EAAuB,IAAIyT,C,8FCtFjC,MAAMruB,EAAqB8uB,IAChC,MAAMC,EAAMn0B,KAAKm0B,OACX,OAAE/5B,GAAWR,EAAAA,GACbw6B,EAAwB,aAAXh6B,EACbi6B,EAAuB,YAAXj6B,EACZk6B,EAA+B,UAAXl6B,GAAiC,aAAXA,EAE1Cm6B,EAA2B,GAAGL,gBAC9BM,EAAyB,GAAGN,cAC5BO,GAAwBC,EAAAA,EAAAA,IAC5BH,GAEII,GAAsBD,EAAAA,EAAAA,IAC1BF,GAGF,IAAInqB,GAAmB,EACnBD,GAAkB,EAClBwqB,GAAmB,EAiBvB,OAfIR,EACF/pB,GAAmB,EACVgqB,GACThqB,IAAmBoqB,GACfN,EAAMM,EAEVrqB,IACGC,IAAoBsqB,IACjBR,EAAMQ,EAEZC,GAAoBvqB,IAAqBD,GAEzCA,GAAkB,EAGb,CACLgqB,aACAC,YACAC,oBACAjqB,mBACAD,kBACAwqB,mBACAC,mBACEC,EAAAA,EAAAA,IAA2BP,IAA6B,IAAIv0B,KAC9D+0B,iBAAiBD,EAAAA,EAAAA,IAA2BN,GAC7C,C,mFC7DG,SAAU5vB,IACd,MAAMowB,GAAgBxsB,EAAAA,EAAAA,IAAwB,aAE9C,IAAKwsB,EACH,OAGF,MAAM7wB,EAAQ1I,SAASC,cAAc,SACrCD,SAASqlB,KAAKmU,OAAO9wB,GAErBA,EAAM+wB,YAAcF,CACtB,C,wWCVA,IAAIG,cAAkD,KAEtD,SAASC,iBACP,MAAMC,iBAAkB7sB,EAAAA,+CAAAA,IAAwB,YAE5C6sB,kBACFF,cAAgBG,KAAK,iBAAiBD,oBAE1C,CAEA,SAASE,iBAAiBC,GACpBL,eACFA,cAAcK,EAElB,CAEM,SAAU7wB,eACdpJ,EAAAA,iCAAAA,KAAU,KACR65B,iBAGAG,iBAAiB9oB,KAAK,KAKxBgpB,EAAAA,iCAAAA,KAAU,IAAMF,iBAAiB9oB,OACnC,C,+FC3BA,MAAMipB,EAAiC,oBAEvC,SAASC,IACP,IAAIloB,GAAQ7H,EAAAA,EAAAA,IAAyB,iBAIrC,GAFA6H,EAAQA,EAAQA,EAAMmoB,OAAS,IAE1BnoB,EAAO,CACV,MAAMooB,EAAiB,6BAEvBpoB,GAAQ4N,EAAAA,EAAAA,IAAIwa,IACR14B,EAAAA,EAAAA,IAAK04B,GACLH,C,CAGNj6B,SAASgS,MAAQA,CACnB,CAEA,SAASqoB,IACP,MAAMC,EAASt6B,SAASiL,cAAc,qBAElCqvB,IACDA,EAA2Bl4B,KAAO6Q,EAAQ,MAE/C,CAEM,SAAUyjB,IACdwD,IACAG,GACF,C,+FC9BA,MAAME,EAEJ1pB,WAAAA,IAAAE,EAAAA,EAAAA,GAAA,6BACEC,KAAKwpB,eAAgBn/B,EAAAA,EAAAA,IAAmB,KAC1C,CAEA,gBAAWuP,GACT,OAAOoG,KAAKwpB,cAAc5+B,KAC5B,CAEA,gBAAIgP,CAAa6vB,GACfzpB,KAAKwpB,cAAc5+B,MAAQ6+B,CAC7B,CAEOlwB,iBAAAA,GACLyG,KAAKwpB,cAAc5+B,MAAQ,IAC7B,CAEO2T,iBAAAA,CAAkB1P,GACvBmR,KAAKpG,aAAe/K,CACtB,EAGK,MAAMyK,EAAe,IAAIiwB,C,uKCvBzB,MAAMG,EACXt9B,OAAOqX,SAAS+c,QAChB,GAAGp0B,OAAOqX,SAASkmB,aAAav9B,OAAOqX,SAASmmB,OACrCC,EAAa,GAAGH,EAASz2B,QACpC,mBACA,yB,0BCEF,MAAM9F,EAAc2a,EAAAA,EAAYqI,cAAcA,aAAa,GACrD2Z,EAAU38B,GAAa48B,cAEhBpiB,EAAauI,IAGxB,MAAMK,EAAMyZ,mBAAmB9Z,GACzB+Z,EAAW,gDAAgDH,wBAA8BvZ,IAE/F,IAAIlC,EAEJ,GAAIyV,EAAAA,IAAsBmC,UAAW,CACnC,MAAM7G,EAAQ,IACR5B,EAAS,IACTX,EAAIzwB,OAAO89B,YAAc,EAAI99B,OAAO+9B,QAAU3M,EAAS,EACvD4M,EAAIh+B,OAAOi+B,WAAa,EAAIj+B,OAAOk+B,QAAUlL,EAAQ,EAE3D/Q,EAAS,0GACC+Q,YAAgB5B,UAAe4M,SAASvN,G,CAGpDzwB,OAAOuwB,KAAKsN,EAAU,SAAU5b,EAAO,EAG5BzG,EAAwBA,CACnC2I,EACAvP,EACAE,EACAqpB,KAEA,MAAMC,EAAY1iB,EAAAA,EAAYqI,cAAcpI,QAAQqI,WAAW,GACzDqa,EAOF,CACFX,UACA9oB,OAAO0pB,EAAAA,EAAAA,IACL1pB,IAASoO,EAAAA,EAAAA,IAAgBob,EAAW,YAAa,QAASA,EAAUxpB,QAEtEE,YAAaypB,EAA4BzpB,GACzC0pB,mBAAoBra,GAAOia,EAAUK,YACrCC,kBAAmBva,GAAOia,EAAUO,WAGtCR,EAASS,EAA0BR,EAAWD,GAE1CA,IACFE,EAAWQ,SAAWV,GAGxB,MAAMW,EAAezrB,KAAKC,UAAU+qB,GAC9BU,EAAsBnB,mBAAmBkB,GACzCE,EAAeh/B,OAAOi/B,KAAKF,GAEjC,MAAO,GAAGtB,KAAcG,mBAAmBoB,IAAe,EAGtDT,EAA+BzpB,SAEfpW,IAAhBoW,GAA2D,IAA9BA,EAAYioB,OAAO/xB,SAClD8J,EAAc,UAIhBA,EACEA,IAAexQ,EAAAA,EAAAA,IAAK,wDAEfg6B,EAAAA,EAAAA,IAAUxpB,IAGb8pB,EAA4BA,CAChCR,EACAS,KAEA,MAAMK,EAAWxjB,EAAAA,EAAYyjB,kBAAkBA,kBAAoB,GAGnE,GAAIN,EACF,MAAO,GAAGvB,IAAWuB,IAIvB,MAAMO,EAAmBhB,EAAYA,EAAUiB,oBAAsB,KAErE,GAAID,EACF,MAAO,GAAG9B,KAAWtoB,EAAAA,EAAAA,IAAiBoqB,KAIxC,MAAME,EAAgBJ,EAClBA,EAAS78B,MAAM4hB,GAAgB,qBAAVA,EAAEvnB,OAA6B8B,OACpD0gC,EAAS78B,MAAM4hB,GAAgB,mBAAVA,EAAEvnB,OAA2B8B,MAClD,KAEJ,OAAI8gC,EACK,GAAGhC,KAAWtoB,EAAAA,EAAAA,IAAiBsqB,UADxC,CAIgB,C,2HC5GlB,MAAMC,EAAgB,YAAGjjB,EAAAA,kCAAgD,KAEzE,SAASkjB,EACPrb,EACAlC,EACA/jB,EAAK,IAEL,OAAIA,GAAMA,EAAG8M,OAAS,EACb,GAAGmZ,KAAOjmB,MAAO,IAAIi4B,gBAAgBlU,GAAQva,aAE7C,GAAGyc,MAAQ,IAAIgS,gBAAgBlU,GAAQva,YAElD,CAEM,SAAUsN,EACd9W,EACAuhC,EAAe1+B,EAAAA,GAAYC,MAE3B,GAAK9C,EAIL,OAAOshC,EAAiBD,EAAe,CAAEv+B,KAAMy+B,GAAgBvhC,EACjE,C,gJCrBO,MAAM0D,EAA0B,CACrCC,SAAU,CACRC,OAAQ,CACNC,gBAAiB,CACfE,SAAU,SACVD,OAAQ,kBAEV09B,mBAAoB,CAClBz9B,SAAU,SACVD,OAAQ,oBAEV29B,uBAAwB,CACtB19B,SAAU,SACVD,OAAQ,wBAEV49B,cAAe,CAAE39B,SAAU,SAAUD,OAAQ,gBAC7C69B,oBAAqB,CACnB59B,SAAU,SACVD,OAAQ,qBAEV89B,mBAAoB,CAClB79B,SAAU,SACVD,OAAQ,oBAEV+9B,oBAAqB,CACnB99B,SAAU,SACVD,OAAQ,8BAEVg+B,qCAAsC,CACpC/9B,SAAU,SACVD,OAAQ,4CAEVi+B,MAAO,CAAEh+B,SAAU,SAAUD,OAAQ,iBACrCk+B,wBAAyB,CACvBj+B,SAAU,SACVD,OAAQ,iCAGZm+B,GAAI,CACFC,YAAa,cAEfC,IAAK,CACHD,YAAa,cAEfE,IAAK,CACHF,YAAa,cAEfG,KAAM,CACJH,YAAa,aACbI,sBAAuB,sBAEzBC,IAAK,CACHL,YAAa,aACbM,kBAAmB,mBAErBC,GAAI,CACFC,aAAc,eAEhBC,GAAI,CACFD,aAAc,eAEhBtzB,GAAI,CACFC,UAAW,YAEbuzB,GAAI,CACFV,YAAa,cAEfzuB,IAAK,CACHC,KAAM,QAERmvB,IAAK,CACHC,aAAc,WACdC,mBAAoB,iBAEtBC,GAAI,CACFF,aAAc,eACdC,mBAAoB,qBAEtBE,IAAK,CACHH,aAAc,cACdC,mBAAoB,oBAEtBG,GAAI,CACFC,gBAAiB,wBACjBC,gBAAiB,yBAEnBC,GAAI,CACFC,WAAY,oBACZC,gBAAiB,iBACjBC,cAAe,gBAEjBpmB,EAAG,CACD1J,KAAM,QAER+vB,GAAI,CACFC,UAAW,QAEbC,IAAK,CACHzB,YAAa,cAEf0B,IAAK,CACH1B,YAAa,cAEf2B,KAAM,CACJC,YAAa,aACbC,WAAY,YACZC,sCAAuC,iBAEzCC,KAAM,CACJF,WAAY,YACZG,sCAAuC,iBAEzCC,IAAK,CACHJ,WAAY,aAEdK,GAAI,CACFlC,YAAa,cAEfmC,GAAI,CACFN,WAAY,eAKLO,EAAqC,CAChDC,iBAAkB,aAClBC,eAAgB,aAChBC,mBAAoB,cAehB,SAAUhhC,EACdihC,EACAC,EACAC,GAEA,MAAM7f,EAAQ,CACZ8f,eAAgB,MAAMF,IAAiBtI,EAAAA,EAAAA,QACvCyI,YAAajiC,EAAAA,GAAYC,WAGRtC,IAAfokC,GAA2C,OAAfA,IAC9B7f,EAAMuf,EAAmCE,gBAAkBI,IAG7D5nB,EAAAA,EAAAA,IAAM0nB,EAAa3f,EACrB,CAiBM,SAAUmB,IACdziB,EACEC,EAAwBC,SAASC,OAAOm+B,MAAMj+B,OAC9CJ,EAAwBC,SAASC,OAAOm+B,MAAMh+B,SAElD,C,8MCpLA,MAAM+Z,EAAU,CACd,eAAgB,2CAGXjZ,eAAekgC,EACpB5mB,EACA4F,EAA0B,IAAIkU,gBAC9B+M,GAEAjhB,EAAOma,OAAO,kBAAmBr7B,EAAAA,GAAYC,MAE7C,MAAM2P,QAAa8L,MAAM,GAAGH,EAAAA,KAAoBD,KAAY4F,IAAU,CACpEvF,OAAQ,MACRV,QAASmnB,EAAe9mB,EAAU6mB,KAGpC,OAAOvmB,EAAgBhM,EACzB,CAEO5N,eAAeqQ,EACpBiJ,EACA4L,EACAhG,EAA0B,IAAIkU,gBAC9B+M,GAEAjhB,EAAOma,OAAO,kBAAmBr7B,EAAAA,GAAYC,MAE7C,MAAM2P,QAAa8L,MAAM,GAAGH,EAAAA,KAAoBD,KAAY4F,IAAU,CACpEvF,OAAQ,OACRV,QAASmnB,EAAe9mB,EAAU6mB,GAClCjb,SAGF,OAAOtL,EAAgBhM,EACzB,CAmBO5N,eAAewQ,EACpB8I,EACAne,EACA+jB,EAA0B,IAAIkU,gBAC9B+M,GAEAjhB,EAAOma,OAAO,kBAAmBr7B,EAAAA,GAAYC,YAEvCyb,MAAM,GAAGH,EAAAA,KAAoBD,KAAYne,KAAM+jB,IAAU,CAC7DvF,OAAQ,SACRV,QAASmnB,EAAe9mB,EAAU6mB,IAItC,CAEA,SAASE,EAAcjf,GACrB,IACE,MAAMkf,EAAa,IAAIC,IAAInf,EAAKnkB,OAAOqX,SAAS+c,QAEhD,OAAOiP,EAAWjP,SAAWp0B,OAAOqX,SAAS+c,M,CAC7C,MAAOjzB,GACP,OAAO,C,CAEX,CAEM,SAAUgiC,EACd9mB,EACA6mB,EAAwC,CAAC,GAEzC,IAAIK,EAAc,CAAC,EACnB,MAAMC,GAAkBC,EAAAA,EAAAA,MAQxB,OANID,IAAoBJ,EAAc/mB,KACpCknB,EAAc,CACZG,cAAe,UAAUF,MAItB,IAAIG,QAAQ,IACd3nB,KACAunB,KACAL,GAEP,CAEA,SAASvmB,EAAgBY,GACvB,GAAIA,EAAIC,GACN,OAAmB,MAAfD,EAAIhc,OACCgc,EAAIE,YAGb,EAGF,MAAMF,CACR,C,yYC7GA,MAAMqmB,EAAqB,qCAA2B,KAEzCC,EAAe9gC,UAC1B,MAAM4N,QAAa8L,MACjB,GAAGH,EAAAA,KAAoBsnB,qBAAsC7iC,EAAAA,GAAYC,OACzE,CAAE0b,OAAQ,QAEZ,OAAO/L,EAAK8M,MAAM,ECNdqmB,EAAkC,0BAAgB,KAClDC,EAAwB,6BAAmB,KAC3CC,EAA8B,6CAAmC,KAEhEjhC,eAAekhC,EACpBjpB,EACAkpB,GAEA,MAAMva,QAAgBlN,MACpB,GAAGH,EAAAA,KAAoBynB,KAAyB/oB,mBAA8B8oB,mBAAiDI,IAC/H,CAAExnB,OAAQ,QAGZ,OAAOiN,EAAQlM,MACjB,CAEO1a,eAAeohC,EACpBnpB,GAEA,MAAM2O,QAAgBlN,MACpB,GAAGH,EAAAA,KAAoB0nB,qBAA+CjjC,EAAAA,GAAYC,iBAAiBga,IACnG,CAAE0B,OAAQ,QAGZ,OAAOiN,EAAQlM,MACjB,C,gECHA,MAAM2mB,EAAwD,CAAC,EAC/D,IAAIC,EACJ,MAAMC,GAAoBrmC,EAAAA,EAAAA,IAAwB,IAClD,IAUWkkB,EAVPoiB,EAAiC,YAAE,KAE5BliB,EAMA,KAeJtf,eAAe21B,IACpB,MAAM8L,EAAOC,IACbtiB,EAASkiB,EAAiBG,EAAKE,SAC/BN,EAAajiB,GAAUqiB,EAAKG,OAE5B,IAAIC,EAAiBC,IA8BrB,OA5BAD,EAAiBA,GAAkBE,IAEnCF,EAAiBA,GAAkBG,IAGnCH,EAAiBA,GAAkBziB,EAGjCyiB,IAAmBziB,SACZ6iB,EAA4BJ,SAE7BK,EAAiBL,GAAgB,IAEvCA,EAAiBziB,GACjB+iB,EAAAA,EAAAA,IAAiBzgB,EAAAA,GAAuB0gB,SAAUP,IAGpDviB,GAAQ+iB,EAAAA,EAAAA,IAAW,CACjBC,QAAQ,EACRC,iBAAiB,EACjBnjB,OAAQyiB,EACRP,eAAgBA,EAEhB1hB,SAAUyhB,EACVmB,QAASA,CAACpjB,EAAgBzlB,IACxB8oC,EAA0B9oC,EAAKylB,KAG5BE,CACT,CAEM,SAAUoiB,IACd,MAAMgB,EAAqC/pB,EAAAA,EAAYgqB,cAAgB,CAAC,EAExE,IACED,EAAWd,OAAS,IACfc,EAAWd,UACXtxB,KAAKsZ,OAAMgZ,EAAAA,EAAAA,IAAmB,uBAAuBnnC,O,CAE1D,MAAOonC,GACP,CAGF,OAAOH,CACT,CAEO1iC,eAAekiC,EACpBjqB,EACA6qB,GAAa,SAEPC,EAA6B9qB,SAC7B+qB,EAAuB/qB,IAE7BgrB,EAAAA,EAAAA,IAAsBhrB,IACtBkqB,EAAAA,EAAAA,IAAiBzgB,EAAAA,GAAuB0gB,SAAUnqB,GAClDmH,EAASnH,EAEL6qB,GACF7lC,OAAOqX,SAAS+Q,QAEpB,CAEA,SAASod,EAA0B9oC,EAAa+lB,EAAkBN,GAEhE,OADA8J,QAAQga,KAAK,WAAWxjB,kBAAwB/lB,KACzC,WAAW+lB,kBAAwB/lB,GAC5C,CAEAqG,eAAe+iC,EACb9qB,GAEA,IAAKopB,EAAappB,GAAe,CAC/B,MAAMkrB,EAAWxqB,EAAAA,EAAYqI,cAAgB,CAAC,EAExC0hB,QAAmBxB,EACvBjpB,EACAkrB,EAASniB,aAAa,GAAGyW,YAG3B4J,EAAappB,GAAgByqB,EAAWd,M,CAE5C,CAEA5hC,eAAegjC,EAAuB/qB,GACpCspB,EAAkB9lC,YAAc2lC,EAAwBnpB,GAExD,MAAMmrB,EAAgC7B,EAAkB9lC,MAAMuH,QAC3DqgC,GAAuD,sBAAxBA,EAAStjB,aAIrCujB,EAA4B,CAAC,EAEnCF,EAA8Bz/B,SAC3B0/B,GACEC,EAAqBD,EAASE,UAAYF,EAAS5nC,QAGxD4lC,EAAappB,GAAgB,IACxBopB,EAAappB,MACbqrB,EAEP,CAEA,SAASxB,IACP,OAAOrgB,EAAAA,GAAcA,EAAAA,GAAYC,EAAAA,GAAuB0gB,UAAY,IACtE,CAEA,SAASL,IACP,OAAOyB,EAAAA,EAAAA,KACT,CAEA,SAASxB,IACP,IAAK/kC,OAAOkwB,YAAclwB,OAAOkwB,UAAUsW,UACzC,OAAO,KAGT,MAAMvnB,EAA0B5Y,OAAOs+B,OACrC3lB,EAAAA,EAAoBC,eAGtB,IAAIwnB,EAAiC,KAErC,IAAK,MAAMC,KAAuB1mC,OAAOkwB,UAAUsW,UAAW,CAK5D,GAJIvnB,EAAclM,SAAS2zB,KACzBD,EAAkBC,GAGhBA,EAAoB3zB,SAAS,KAAM,CACrC,MAAM4zB,EAAwBD,EAAoBE,UAAU,EAAG,GAE3D3nB,EAAclM,SAAS4zB,KACzBF,EAAkBE,E,CAItB,GAAIF,EACF,OAAOA,C,CAIX,OAAOA,CACT,CAEA1jC,eAAe8jC,IACb,MAAMC,QAAqBjD,IACrBkD,GAA6B1M,EAAAA,EAAAA,IACjCsL,EAAAA,EAAAA,IAAmB,wBAAwBnnC,OAGvCwoC,EAAgBF,EAAa/gC,QAAQ2+B,GACzCqC,EAAiB1kC,MAAMnE,GAAOA,IAAOwmC,EAASxmC,OAG1CgoC,EAAWxqB,EAAAA,EAAYqI,cAAgB,CAAC,EAExCkjB,EAAqCH,EAAazkC,MACrD6kC,GAASA,EAAKlsB,eAAiBkrB,EAASniB,aAAa,GAAG2gB,WAO3D,OAJIuC,GACFD,EAAch1B,KAAKi1B,GAGdD,CACT,CAEAjkC,eAAeiiC,EACbhqB,GAEA,MAAMmsB,QAAcC,IAEpB,OAAOD,EAAM3hC,MAAM0hC,GAAmBA,EAAKlsB,eAAiBA,GAC9D,CAEOjY,eAAeqkC,IAKpB,OAJI7C,EAAmBv5B,OAAS,IAC9Bu5B,QAA2BsC,KAGtBtC,CACT,CAEM,SAAUx3B,EAAyBrQ,GACvC,MAAM2qC,GAAU1B,EAAAA,EAAAA,IAAmBjpC,GAEnC,IAAK2qC,EACH,MAAM3pB,MAAM,uCAAuChhB,KAGrD,MAAM4qC,EAA0BhD,EAAkB9lC,MAAM6D,MACrD+jC,GACyB,YAAxBA,EAAStjB,YAA4BsjB,EAASE,WAAa5pC,IAG/D,OAAI4qC,EACKA,EAAwB9oC,MAG1B6oC,EAAQ7oC,KACjB,CAEM,SAAUwkB,EACdJ,EACAC,EACAC,EACAC,GAEA,MAAMwkB,EAAiD,qBAAjBxkB,EAEtC,IAAKH,EAAQ,CACX,GAAI2kB,EACF,OAAOxkB,EAEP,MAAMrF,MAAM,yC,CAIhB,GACEoF,IACgB,aAAfA,GAA4C,qBAAfA,GAC9B,CACA,MAAM0kB,EAAez6B,EAClB6V,EAA4BlmB,KAG/B,OAAI8qC,IAIAD,GAA0BxkB,EACrBA,EAINH,EAA4BpkB,OAC7BgnC,EAA0B,WAAY5iB,EAA4BlmB,O,CAItEqmB,EAAewkB,EACXxkB,EACCH,EAAiDC,GAEtD,MAAM4kB,EAAKnD,EAAkB9lC,MAAM6D,MAChCqlC,GACCA,EAAG5kB,aAAeA,GAClB4kB,EAAGpB,WACDqB,OAAQ/kB,EAAiD1kB,KAC3DwpC,EAAG7kB,YAAcA,IAGrB,OAAO4kB,EAAKA,EAAGjpC,MAASukB,CAC1B,CAEM,SAAUX,EAA2B1lB,GACzC,IAAK2lB,EACH,MAAM,IAAI3E,MAAM,yDAGlB,MAAM8mB,EAAOJ,EAAa/hB,EAAMC,OAAOH,OAAO3jB,OAE9C,IAAKgmC,EACH,OAGF,IAAIoD,EAAcpD,EAAK9nC,GAElBkrC,IACHA,EAAcxD,EAAaC,GAAgB3nC,IAGxCkrC,IAILxD,EAAa/hB,EAAMC,OAAOH,OAAO3jB,OAAO9B,GAAOkrC,EAC5C/gC,QAAQ,IAAI9H,OAAO,KAAM,KAAM,KAC/B8H,QAAQ,IAAI9H,OAAO,KAAM,KAAM,KACpC,CAEM,SAAUkc,IACd,OAAOkH,IAAWphB,EAAAA,GAAY2jC,SAAWviB,OAASzjB,CACpD,C,qECtVO,MAAM27B,EAAawN,IACxB,IAAIC,EAEJ,IACEA,EAASz0B,KAAKsZ,MAAMkb,E,CACpB,MAAOjC,GACPkC,EAAS,I,CAGX,OAAOA,CAAM,C,qLCPf,MAAMC,EAAkB,uBAAa,KAC/BC,EAAkC,iBAElC,SAAUhC,EAAsBhrB,GACpCwc,aAAayQ,QAAQ,GAAGF,KAAmBhnC,EAAAA,GAAYC,OAAQga,EACjE,CAEM,SAAUurB,IACd,OAAO/O,aAAaS,QAAQ,GAAG8P,KAAmBhnC,EAAAA,GAAYC,OAChE,CAEM,SAAUknC,EAAe3jB,GAC7BiT,aAAayQ,QAAQD,EAAiCzjB,EACxD,CAEM,SAAU4jB,IACd3Q,aAAaC,WAAWuQ,EAC1B,CAEM,SAAUvE,IACd,OAAOjM,aAAaS,QAAQ+P,EAC9B,C,khBCTA,MAAMI,GAAuCnqC,EAAAA,EAAAA,IAAI,MACpCiD,GAAamnC,EAAAA,EAAAA,IAASD,GAE7BE,EAAwB,sCACxBC,EAAsB,qCACtBC,EAA8B,gCAE9BC,EAAiB,CACrB,eAAgB,mCAGX1lC,eAAe0H,IACpB29B,EAAY5pC,MAAQ,MACpB2pC,EAAAA,EAAAA,MAEA,MAAM9rB,EAAWisB,EACX3e,QAAgBlN,MAAM,GAAGH,EAAAA,KAAoBD,IAAY,CAC7DK,OAAQ,OACRV,SAASmnB,EAAAA,EAAAA,IAAe9mB,KAM1B,OAAOsN,CACT,CAEM,SAAUQ,IACd,MAAMD,EAAU,CACdG,8BAA8B,EAC9BD,4BAA4B,EAC5BE,oBAAoB,GAGtB,OAAKppB,GAAeA,EAAW1C,QAIvB4D,EAAAA,EAAAA,MAAmB,IAAIoY,QAAO,CAAC6b,EAAK/zB,KAC1C,MAAMomC,EAAUxnC,EAAW1C,MAE3B,GAAgB,iBAAZ8D,EAAGhE,KAAyB,CAC9B,MAAMqqC,EAAYD,EAAQE,uBAAuB71B,SAC/C81B,SAASvmC,EAAGpE,KAGdm4B,EAAI/L,mBAAqB1hB,QAAQytB,EAAI/L,oBAAsBqe,GAC3DtS,EAAIjM,2BAA6BxhB,QAC/BytB,EAAIjM,4BAA+Bue,GAAarmC,EAAGlE,W,KAEhD,CACL,IAAIwI,EAAa8hC,EAAQpmC,EAAGpE,IAExB0I,GAAoC,kBAAfA,IACvBA,EAAaA,EAAWm2B,QAG1B1G,EAAIhM,6BAA+BzhB,QACjCytB,EAAIhM,8BACD/nB,EAAGlE,aACc,OAAfwI,QACgBlI,IAAfkI,GACe,KAAfA,G,CAIV,OAAOyvB,CAAG,GACTnM,GAhCMA,CAiCX,CAEO,MAAMvf,GAAavL,EAAAA,EAAAA,KACxB,IAA2C,aAArC8B,EAAW1C,OAAOsqC,iBAGnB/lC,eAAe0nB,IACpB,MAAMpO,EAAW,GAAGksB,UAA4BxnC,EAAAA,GAAYC,OACtD+nC,QAAsBtsB,MAAM,GAAGH,EAAAA,KAAoBD,IAAY,CACnEL,SAASmnB,EAAAA,EAAAA,IAAe9mB,EAAUosB,GAClC/rB,OAAQ,QAKV,aAFMssB,EAA2BD,GAE1B7+B,QAAQC,QAAQi+B,EAAY5pC,MACrC,CAEOuE,eAAekiB,IACpB1e,EAAgB,CAAE0iC,WAAW,IAE7B,MAAMC,EAAyBvoC,EAAAA,GAAanC,OAAOoC,YAAYC,MACzDwb,EAAWksB,EACjB,IAAIY,EAEJ,IACEA,QAAqB1sB,MAAM,GAAGH,EAAAA,KAAoBD,IAAY,CAC5DL,SAASmnB,EAAAA,EAAAA,IAAe9mB,EAAUosB,GAClC/rB,OAAQ,OACRuL,KAAM5U,KAAKC,UAAU80B,EAAY5pC,Q,CAEnC,MAAO0T,GAOP,OANAvQ,EAAAA,EAAAA,IACEC,EAAAA,GAAwBC,SAASC,OAAO49B,mBAAmB19B,OAC3DJ,EAAAA,GAAwBC,SAASC,OAAO49B,mBAAmBz9B,SAC3DinC,GAGKh/B,QAAQkf,Q,CAgBjB,OAb4B,MAAxB+f,EAAa5nC,SACfI,EAAAA,EAAAA,IACEC,EAAAA,GAAwBC,SAASC,OAAO89B,cAAc59B,OACtDJ,EAAAA,GAAwBC,SAASC,OAAO89B,cAAc39B,SACtDinC,SAOEF,EAA2BG,GAE1Bj/B,QAAQC,QAAQi+B,EACzB,CAEOrlC,eAAeuiB,IACpB/e,EAAgB,CAAE0iC,WAAW,IAE7B,MAAM5sB,EAAWmsB,EACXY,QAAuB3sB,MAAM,GAAGH,EAAAA,KAAoBD,IAAY,CACpEL,SAASmnB,EAAAA,EAAAA,IAAe9mB,EAAUosB,GAClC/rB,OAAQ,OACRuL,KAAM5U,KAAKC,UAAU80B,EAAY5pC,SAGnC,IAAK4qC,EAAe5rB,GAClB,MAAM,IAAIE,MAAM0rB,EAAezrB,YAKjC,aAFMqrB,EAA2BI,GAE1Bl/B,QAAQC,QAAQi+B,EAAY5pC,MACrC,CAEM,SAAU+H,EAAgB8iC,GAC9B5oC,EAAc,IACT2nC,EAAY5pC,SACZ6qC,GAEP,CAEM,SAAUvkB,EACdhkB,EAA0BC,EAAAA,GAAYC,MAElConC,EAAY5pC,OACd+H,EAAgB,IACX+iC,IACHxoC,gBAAiBA,EACjBuM,OAAO,EACPy7B,oBAAgBpqC,GAGtB,CAEM,SAAU+B,EAAcS,GAC5BknC,EAAY5pC,MAAQ0C,CACtB,CAEM,SAAU0E,EACd2jC,EACA7oC,GAEA,MAAMQ,EASF,CACFJ,gBAAiBC,EAAAA,GAAYC,KAC7BN,mBAAoBA,GAGtB6oC,EAAW7iC,SAAS5G,IAClBoB,EAAWpB,EAAM5B,IAAM4B,EAAMtB,KAAK,IAGpC+H,EAAgBrF,EAClB,CAEM,SAAUi2B,EAAe1R,GACzB2iB,EAAY5pC,OACd+H,EAAgB,CAAEkf,eAEtB,CAEA,SAAS6jB,IACP,OAAOlnC,EAAAA,EAAAA,KAAgBoY,QAAO,CAACxc,EAAYmI,KACzCnI,EAAWmI,EAAUjI,IAAM,KAEpBF,IACN,CAAC,EACN,CAEA+E,eAAeimC,EAA2Bl3B,GACxC,MAAM5Q,QAAoB4Q,EAAS2L,OASnC,OAPAvc,EAAWmM,MAA4B,MAApByE,EAASvQ,OAC5Bd,EAAcS,GAEVknC,EAAY5pC,OAAOgrC,QACrBtB,EAAAA,EAAAA,IAAeE,EAAY5pC,MAAMgrC,OAG5BpB,EAAY5pC,KACrB,C,oNChOO,MAAMuzB,EAAyB,kBACzBvwB,GAAevD,EAAAA,EAAAA,MAIfwrC,IAHexrC,EAAAA,EAAAA,IAAI,CAC9ByrC,mBAAmB,KAEczrC,EAAAA,EAAAA,OAEnC,IAAI0rC,EACAC,EAEE,SAAU7b,EAAU8b,EAAcpoC,GAsCtC,OArCIgoC,EAAoBjrC,QACtBirC,EAAoBjrC,MAAM2qB,OAAM,KAExB,IAGRygB,OAA2BlrC,IAG7B+qC,EAAoBjrC,MAAQ,IAAI0L,SAAQ,CAACC,EAASif,KAChDugB,EAA8Bx/B,EAC9By/B,EAA6BxgB,EAE7B5nB,EAAahD,MAAQ,CACnBqrC,MAAMC,EAAAA,EAAAA,IAAQD,GACdpoC,QACAsoC,UAAY9mB,IACV0mB,EAA4B1mB,GAC5BzgB,GAAY,EAEdwnC,QAASxnC,EACTynC,QAASA,EACP9oC,QACA+oC,aAAY,MAKZN,EAA2BzoC,GAEvB+oC,GACF1nC,G,EAGL,IAGIinC,EAAoBjrC,KAC7B,CAEM,SAAUgE,IACVmnC,GACFA,OAA4BjrC,GAG9B8C,EAAahD,WAAQE,CACvB,CAEM,SAAUyrC,KACdtkC,EAAAA,EAAAA,KACArD,GACF,C,oFCpEA,MAAM2Q,EAAW,gCAA+B,KAA/B,gCAEVpQ,eAAe6N,IACpB,aAAaqyB,EAAAA,EAAAA,IAAI9vB,EACnB,C,4FCMO,MAAMuI,EACX1b,OAAOoqC,eAEI3mC,EACXzD,OAAOqqC,c,sMCbF,MAAM1E,EACXjpC,IAEA,MAAMyiC,EAAmBzjB,EAAAA,EAAYyjB,kBAAoB,GAEzD,IAAKA,IAAqBA,EAAiBA,iBAAiBn0B,OAC1D,MAAM0S,MAAM,uDAGd,MAAM2pB,EAAUlI,EAAiBA,iBAAiB98B,MAC/CglC,GAA8BA,EAAQ3qC,MAAQA,IAGjD,OAAO2qC,CAAO,EAGHhxB,EAAkC3Z,IAC7C,MAAM8B,EAAQmR,EAAwBjT,GAEtC,MAAiB,SAAV8B,CAAgB,EAGZy9B,EAA8Bv/B,IACzC,MAAM8B,EAAQmR,EAAwBjT,GAEtC,OAAO8B,EAAQ,IAAI2I,KAAK3I,QAASE,CAAS,EAG/Bm9B,EACXn/B,IAEA,MAAMuK,EAAOg1B,EAA2Bv/B,GAExC,OAAOuK,EAAOA,EAAKqjC,eAAY5rC,CAAS,EAG7BiR,EACXjT,IAEA,MAAM2qC,EAAU1B,EAAmBjpC,GAEnC,OAAO2qC,EAAUA,EAAQ7oC,WAAQE,CAAS,C,6ICpCrC,MAAMqK,GACXsN,EAAAA,EAAAA,IAA+B,mBAEpBk0B,GAAiBv1B,EAAAA,EAAAA,KAC5BrF,EAAAA,EAAAA,IAAwB,4BAGb66B,GAAsB76B,EAAAA,EAAAA,IACjC,wBAGW86B,GAAuBrrC,EAAAA,EAAAA,KAAS,KAC3CsrC,EAAAA,EAAAA,IAAoBF,GAChBD,EACAC,IAGOG,GAA0BvrC,EAAAA,EAAAA,KAAS,IAC9CwJ,QAAQ6hC,EAAqBjsC,SAGlBosC,GAA2BxrC,EAAAA,EAAAA,KACtC,IAAM2J,GAA0B4hC,EAAwBnsC,O,wSCd1D,MAAMid,EAAaC,EAAAA,EAmBb,SAAUpN,IACd,MAAMu8B,EAAoBpvB,EAAWqvB,sBAC/BC,EAAmBtvB,EAAWuvB,gCAC9BC,EAAcxvB,EAAWyvB,uCAEzBj9B,EAAQ48B,EACVA,EAAkBC,sBAAsB,GACxC,KAEE58B,EAAc28B,EAChBA,EAAkBlvB,OAAOzN,YACzB,GAEEC,EAAoB48B,EACtBA,EAAiBC,gCACjB,GAEE38B,EAAS48B,GAAeA,EAAYjgC,OAASigC,EAAY,GAAK,KAE9D78B,EAAgB28B,EAClBA,EAAiBpvB,OAAOvN,cACxB,GAEJ,MAAO,CACLH,QACAC,cACAC,oBACAC,gBACAC,SAEJ,CAEM,SAAUW,GAAmB,MACjCf,EAAK,YACLC,IAKA,MAAMO,EAAWP,EAAY7L,MAC1BkgB,GAAMA,EAAErkB,KAAO+P,GAAO+F,OAAOm3B,iBAE1Bz8B,EAAWR,EAAY7L,MAC1BkgB,GAAMA,EAAErkB,KAAO+P,GAAO+F,OAAOo3B,iBAGhC,MAAO,CACL38B,WACAC,WACAG,mBAAmB5Q,EAAAA,EAAAA,IAAIgQ,GAAOY,mBAC9BC,mBAAmB7Q,EAAAA,EAAAA,IAAIgQ,GAAOa,mBAC9BH,cAAcqU,EAAAA,EAAAA,IAAgBvU,EAAU,OAAQ,cAChDG,cAAcoU,EAAAA,EAAAA,IAAgBtU,EAAU,OAAQ,cAChDK,oBAAoB9Q,EAAAA,EAAAA,IAClBotC,EAAkB,CAChB58B,SAAUR,GAAOY,kBAAoBJ,EAAW,KAChDC,SAAUT,GAAOa,kBAAoBJ,EAAW,QAIxD,CAEM,SAAUF,GAA2B,MACzCP,EAAK,YACLC,EAAW,kBACXC,EAAiB,cACjBC,EAAa,OACbC,IAQA,MAAMi9B,EAAqBn9B,EAAkBqM,QAC3C,EAEI1K,OACAC,OACAiB,OAMFu6B,KAEA,MAAMC,EAAep9B,EAAc/L,MAChCyQ,GAAM,GAAGA,EAAE5U,OAAS,GAAGqtC,EAAKr6B,mBAG/B,GAAIs6B,EAAc,CAChB,MAAMt4B,EAAeq4B,EAAKr4B,aACpBhC,EAAiBq6B,EAAKr6B,eACtBhG,EAAOugC,EAA+BD,GACtCn6B,EACJhD,GAAU,GAAGA,EAAO6C,mBAAqB,GAAGA,IACxCw6B,GAAe12B,EAAAA,EAAAA,IACnBw2B,EAAaG,qBAAqBjkC,YAG9B6I,EAA4B,CAChCrS,GAAIqtC,EAAKrtC,GACTgN,OACAgG,iBACAgC,eACAwB,UAAW62B,EAAK72B,UAChBC,eAAgB42B,EAAK52B,gBAAkB,EACvCrD,gBAAgB,EAChBD,SAAUA,EACVu6B,SAAUF,GAA8BG,EACxCC,UAAWN,EAAaM,WACpBzR,EAAAA,EAAAA,GAAUmR,EAAaM,WACvB,IAGAr9B,EAAWP,EAAY7L,MAC1BkgB,GAAMA,EAAErkB,KAAO+P,GAAO+F,OAAOm3B,iBAG5B,GAAGj4B,MAAmB,GAAGzE,GAAUvQ,MACrCqS,EAAOe,gBAAiB,EACxBxB,EAAKkC,KAAKzB,IAEVR,EAAKiC,KAAKzB,GAGZS,EAAIgB,KAAKzB,E,CAGX,MAAO,CAAET,OAAMC,OAAMiB,MAAK,GAE5B,CAAElB,KAAM,GAAIC,KAAM,GAAIiB,IAAK,KAQ7B,OALA+6B,EAAuBT,EAAmBx7B,MAC1Ci8B,EAAuBT,EAAmBv7B,MAC1Cg8B,EAAuBT,EAAmBt6B,KAC1Cg7B,EAAyBV,EAAmBt6B,KAErCs6B,CACT,CAQM,SAAUG,EAA+BD,GAC7C,MAAMS,GAASjpB,EAAAA,EAAAA,IAAgBwoB,EAAc,SAAU,gBACjDU,GAAYlpB,EAAAA,EAAAA,IAAgBwoB,EAAc,YAAa,gBACvDW,GAAWnpB,EAAAA,EAAAA,IAAgBwoB,EAAc,WAAY,gBAE3D,MAAO,GAAGS,EAAS,GAAGA,KAAY,KAAKC,GAAaC,GACtD,CAEM,SAAUd,GAAkB,SAChC58B,EAAQ,SACRC,IAKA,OAAO09B,EAAqB,CAAE39B,WAAUC,eAAgBD,CAC1D,CAEO,MAAM29B,EAAuBA,EAClC39B,WACAC,cAKKD,GAAaC,EAIXD,EAAS49B,YAAc39B,EAAS29B,UAAY59B,EAAWC,EAHrDD,GAAYC,EAMVs9B,EAA2BjpC,eAGzBmH,QAAQ8G,KAClBs6B,GAAsB,IAAItlC,KAAIjD,UAC7B,IACE,aAAaupC,EAAAA,EAAAA,IAAar7B,EAAG26B,S,CAC7B,MAAO15B,GACP,OAAQjB,EAAG26B,SAAWC,C,MAMxB,SAAUE,EACdT,IAECA,GAAsB,IAAIl2B,MAAK,CAACm3B,EAAIC,IAC/BD,EAAGl7B,UACG,EAGNm7B,EAAGn7B,SACE,EAGLk7B,EAAG53B,iBAAmB63B,EAAG73B,eACpB,EAGF43B,EAAG53B,eAAiB63B,EAAG73B,gBAAkB,EAAI,GAExD,C,wKC1OA,IAAI83B,EAAsB,EAC1B,MAAMC,EAAkC,YAAE,KAE1C3pC,eAAe4pC,EACbC,EAAiDA,IACxC,KAET1gC,GAEA,OAAO,IAAIhC,SAASC,GAAYyiC,EAAQ,CAAEziC,UAAS+B,WACrD,CAEOnJ,eAAeo4B,IACpB,MAAM0R,EAAWH,EACd3mC,QAAQ+mC,QAAyBpuC,IAAlBouC,EAAG38B,aAClBnK,KAAK8mC,GAAOH,EAAeG,EAAG38B,cAEjC,OAAOjG,QAAQ8G,IAAI67B,GAAUtsC,MAAMwsC,IACjC,MAAM7gC,EAAQ6gC,EAAUvyB,QAAO,CAACwyB,EAAU9gC,KACxC8gC,EAAW,IACNA,KACC9gC,GAAS,CAAC,GAGT8gC,IACN,CAAC,GAEJ,OAAO7lB,EAAAA,EAAqB+E,SAAShgB,EAAM,GAE/C,CAEOnJ,eAAeqJ,IACpB,MAAMF,EAAQib,EAAAA,EAAqBC,WAEnC,GAAIlb,EAAO,CACT,MAAM2gC,EAAWH,EAAe1mC,KAAK8mC,GACnCH,EAAeG,EAAG7gC,WAAYC,KAGhC,OAAOhC,QAAQ8G,IAAI67B,E,CAGrB,OAAO3iC,QAAQC,SACjB,CAEM,SAAU6B,EAAwBihC,GACtCP,EAAe16B,KAAK,IACfi7B,EACH/uC,GAAIuuC,KAER,C,iVCjEO,MAAMhoB,EAAyB,CACpCC,WAAY,YACZygB,SAAU,WACV7K,cAAe,gBAGJhe,EAAoB,eAC1B,IAAIkI,EAA8C,KAElD,MAAM+S,EAAoB76B,IAC/B,MAAMw5B,EAAe,IAAIC,gBAAgBn2B,OAAOqX,SAAS+e,QAEzDF,EAAagX,OAAOxwC,GACpBywC,EAAyBjX,EAAa,EAG3B6E,EAAiBr+B,GACrB8nB,EAAcA,EAAY9nB,GAAO,KAG7Bi8B,EAAwBA,KACnCnU,EAAc4oB,IAGd7V,EAAiB9S,EAAuBC,WAAW,EAGxC4Z,EAAauJ,GACxBA,EAAOA,EAAKwF,WAAW,gBAAiB,IAAMxF,EAEnC3C,EAAmBA,CAACxoC,EAAa8B,KAC5C,MAAM03B,EAAe,IAAIC,gBAAgBn2B,OAAOqX,SAAS+e,QAEzDF,EAAaG,IAAI35B,EAAK8B,GACtB2uC,EAAyBjX,EAAa,EAGlCkX,EAAiBA,IACrB/mC,OAAOG,YAAY,IAAI2vB,gBAAgBn2B,OAAOqX,SAAS+e,SAEnD+W,EAA4BjX,IAChC,MAAMoX,EAAuB,GAC3BttC,OAAOqX,SAASmf,YACdN,EAAaxuB,aAAa1H,OAAOqX,SAASC,OAC9Ci2B,QAAQC,UAAU,KAAM,GAAIF,EAAqB,EAG7C,SAAUnkC,IACd,QAAS4d,GACX,CAEM,SAAUA,IACd,OAAOgU,EAAc,YAAcA,EAAc,YAAcA,EAAc,QAC/E,CAEM,SAAUrV,IACd6R,EAAiB,WACjBA,EAAiB,WACjBA,EAAiB,SAEb/S,WACKA,EAAYipB,eACZjpB,EAAYsC,eACZtC,EAAYglB,MAEvB,C,oFCjDA,MAAMkE,EAA+B,CACnCC,KAAM,CACJC,QAAS,OACTtmC,KAAM,UACNE,MAAO,OACPI,IAAK,UACLimC,KAAM,UACNC,OAAQ,WAEVC,IAAK,CACHzmC,KAAM,UACNE,MAAO,OACPI,IAAK,UACLimC,KAAM,UACNC,OAAQ,WAEVE,GAAI,CACF1mC,KAAM,UACNE,MAAO,OACPI,IAAK,WAEPqmC,EAAG,CACD3mC,KAAM,UACNE,MAAO,UACPI,IAAK,WAEPsmC,KAAM,CACJ1mC,MAAO,QAET2mC,IAAK,CACH3mC,MAAO,SAET,OAAQ,CACNF,KAAM,UACNE,MAAO,UACPI,IAAK,UACLimC,KAAM,UACNC,OAAQ,WAEVM,GAAI,CACFP,KAAM,UACNC,OAAQ,WAEV,QAAS,CACPD,KAAM,UACNC,OAAQ,UACRO,QAAQ,IAIN,SAAUC,EACdrnC,EACAsnC,GAEA,IAAKtnC,EAAM,MAAO,yBAElB,MAAMmmB,EAAsCsgB,EAAca,GAO1D,OAAO,IAAInrB,KAAKorB,eACbnsB,EAAAA,GAAuBC,OAAOH,OAAO3jB,MACtC4uB,GACAmhB,OAAOtnC,EACX,C,qCC9EM,SAAUyjC,EAAoB+D,GAClC,OAAQA,GAAW/mC,WAAWq1B,MAChC,CAEM,SAAU2R,EAAU7G,EAAc8G,GACtC,QAAS9G,GAAQ,IAAI55B,MAAM,IAAIlP,OAAO4vC,EAAM,OAAS,IAAI3jC,MAC3D,CAEM,SAAU4jC,EAAa/G,EAAcgH,GACzC,OAAOhH,GAAQA,EAAK78B,OAAS6jC,EACzB,GAAGhH,EAAKjB,UAAU,EAAGiI,QACrBhH,CACN,C,uVCZM,SAAUiH,EAAQL,GACtB,MAAMtiB,EAAQ,IAAIptB,OAChB,sDAEF,OAAOotB,EAAMC,KAAKqiB,EACpB,CAeM,SAAUnC,EACdzN,EACAkQ,OAA4CrwC,GAE5C,OAAO,IAAIwL,SAAc,CAACC,EAASif,KACjC,MAAM4lB,EAAQpsC,SAASC,cAAc,OAErCmsC,EAAMt3B,iBAAiB,QAAQ,IAAMvN,MACrC6kC,EAAMt3B,iBAAiB,SAAS,KAC1Bq3B,GACFC,EAAMrjC,IAAMojC,EACZA,EAAiB,MAEjB3lB,G,IAIJ4lB,EAAMrjC,IAAMkzB,CAAQ,GAExB,CAEM,SAAUriB,IACd,OAAOyyB,OAAOC,gBAAgB,IAAIC,YAAY,IAAI,EACpD,CAEM,SAAU5yB,EAAe5L,GAC7B,IAAKA,EACH,MAAO,GAGT,MAAMmuB,EAAuBz4B,OAAOC,QAAQqK,GAAM6J,QAChD,CAACnQ,GAAiB+kC,EAAUC,MAC1B,QAAkB3wC,IAAd2wC,GAAyC,KAAdA,EAC7B,GAAIC,MAAMC,QAAQF,GAAY,CAC5B,MAAMG,EAAcH,EACjBtpC,QAAQN,GAAMmD,QAAQnD,KACtBO,KAAKxH,GAAe,GAAG4wC,OAAc5wC,MACrCu4B,KAAK,KAER1sB,GAAU,IAAImlC,G,MAEdnlC,GAAU,IAAI+kC,KAAYC,IAI9B,OAAOhlC,CAAM,GAEf,IAGF,OAAOy0B,EAAe,IAAIA,IAAiB,EAC7C,CAEM,SAAU1jB,EAASzX,EAA+B8rC,GACtD,IAAIC,EAEJ,MAAO,IAAIC,KACT3vC,OAAO4vC,aAAaF,GAEpBA,EAAY1vC,OAAOwS,YAAW,KAC5B7O,KAAYgsC,EAAK,GAChBF,EAAQ,CAEf,C,iCCxFC,SAAUzvC,GAAQ,IAAI6vC,EAAU,cAAe7vC,EAAW8vC,EAAU9vC,EAAO+vC,WAE3E,SAASnK,EAAEoK,EAAE/gB,GAAK,SAAShL,EAAE2hB,EAAEoK,GAAG,cAAcpK,IAAIoK,CAAC,CAAC,IAAIC,EAAE,GAAGC,EAAE,CAACC,SAAS,SAASC,QAAQ,CAACC,YAAY,GAAGC,eAAc,EAAGC,eAAc,EAAGC,aAAY,GAAIC,GAAG,GAAGC,GAAG,SAAS9K,EAAEoK,GAAG,IAAI/gB,EAAErb,KAAKpB,YAAW,WAAWw9B,EAAE/gB,EAAE2W,GAAG,GAAE,EAAE,EAAE+K,QAAQ,SAAS/K,EAAEoK,EAAE/gB,GAAGghB,EAAEj+B,KAAK,CAAC9G,KAAK06B,EAAEgL,GAAGZ,EAAE5iB,QAAQ6B,GAAG,EAAE4hB,aAAa,SAASjL,GAAGqK,EAAEj+B,KAAK,CAAC9G,KAAK,KAAK0lC,GAAGhL,GAAG,GAAGmK,EAAU,WAAW,EAAEA,EAAUe,UAAUZ,EAAEH,EAAU,IAAIA,EAAU,IAAI16B,EAAE,GAAG06B,EAAUY,QAAQ,WAAU,WAAW,IAAI1hB,EAAE8hB,OAAO,eAAe,IAAInL,GAAG,IAAI3W,EAAE8hB,OAAOz+B,QAAQ,eAAe,OAAO2c,EAAE8hB,OAAO,sDAAsDnL,CAAC,CAAC,MAAMA,GAAG,OAAM,CAAE,CAAC,IAAGmK,EAAUY,QAAQ,gBAAe,WAAW,IAAI/K,EAAE,YAAY,IAAI,OAAOpO,aAAayQ,QAAQrC,EAAEA,GAAGpO,aAAaC,WAAWmO,IAAG,CAAE,CAAC,MAAMA,GAAG,OAAM,CAAE,CAAC,IAAGmK,EAAUY,QAAQ,kBAAiB,WAAW,IAAI/K,EAAE,YAAY,IAAI,OAAOoL,eAAe/I,QAAQrC,EAAEA,GAAGoL,eAAevZ,WAAWmO,IAAG,CAAE,CAAC,MAAMA,GAAG,OAAM,CAAE,CAAC,IAAG,WAAW,IAAIA,EAAEoK,EAAE/gB,EAAE1M,EAAE2tB,EAAEzpC,EAAER,EAAE,IAAI,IAAIgrC,KAAKhB,EAAE,GAAGA,EAAEiB,eAAeD,GAAG,CAAC,GAAGrL,EAAE,GAAGoK,EAAEC,EAAEgB,GAAGjB,EAAE9kC,OAAO06B,EAAE5zB,KAAKg+B,EAAE9kC,KAAKimC,eAAenB,EAAE5iB,SAAS4iB,EAAE5iB,QAAQgkB,SAASpB,EAAE5iB,QAAQgkB,QAAQpmC,QAAQ,IAAIikB,EAAE,EAAEA,EAAE+gB,EAAE5iB,QAAQgkB,QAAQpmC,OAAOikB,IAAI2W,EAAE5zB,KAAKg+B,EAAE5iB,QAAQgkB,QAAQniB,GAAGkiB,eAAe,IAAI5uB,EAAE0B,EAAE+rB,EAAEY,GAAG,YAAYZ,EAAEY,KAAKZ,EAAEY,GAAGV,EAAE,EAAEA,EAAEtK,EAAE56B,OAAOklC,IAAIzpC,EAAEm/B,EAAEsK,GAAGjqC,EAAEQ,EAAEmR,MAAM,KAAK,IAAI3R,EAAE+E,OAAO+kC,EAAU9pC,EAAE,IAAIsc,GAAGwtB,EAAU9pC,EAAE,OAAO8pC,EAAU9pC,EAAE,KAAK8pC,EAAU9pC,EAAE,cAAc2C,WAAWmnC,EAAU9pC,EAAE,IAAI,IAAI2C,QAAQmnC,EAAU9pC,EAAE,MAAM8pC,EAAU9pC,EAAE,IAAIA,EAAE,IAAIsc,GAAGlN,EAAErD,MAAMuQ,EAAE,GAAG,OAAOtc,EAAE8wB,KAAK,KAAK,CAAC,CAAliB,UAA6iBmZ,EAAES,eAAeT,EAAEW,aAAa,IAAI,IAAIpqC,EAAE,EAAEA,EAAEspC,EAAUU,GAAGzlC,OAAOvE,IAAIspC,EAAUU,GAAGhqC,KAAKm/B,EAAEmK,UAAUA,CAAS,CAArjD,CAAujD/vC,EAAOA,EAAO4C,UAAUyuC,EAAOC,QAAQtxC,EAAO+vC,UAAaF,EAAW7vC,EAAO+vC,UAAUD,SAAuB9vC,EAAO+vC,SAAY,CAFxrD,CAE0rD/vC,O,yhJCC3rD,MAAMzD,EAAa,CAAC,aCWdg1C,EAAqB,IDF3B,OAA4Bj0C,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,yBACRmL,MAAO,CACPmM,QAAS8yB,OACT7yB,YAAa6yB,QAEblqC,KAAAA,CAAMC,GCTR,MAAMgL,EAAQhL,EAOR8zC,GACH9oC,EAAMmM,SAAWnM,EAAMoM,aACpB85B,EAAAA,EAAAA,KAAa6C,EAAAA,EAAAA,IAAW/oC,EAAMoM,aAAcy8B,GAC5C7oC,EAAMmM,SAAW,GDQvB,MAAO,CAACjR,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CAAE+sC,WAAWrtC,EAAAA,EAAAA,IAAOmtC,IAAkB,KAAM,EAAGj1C,GAElG,IE3BA,MAAMo1C,EAAc,EAEpB,Q,WCAA,MAAMp1C,EAAa,CACjBG,IAAK,EACLiP,IAAKimC,EACLp1C,MAAO,sDAEHC,EAAa,CAAED,MAAO,mCACtBG,EAAa,CACjBD,IAAK,EACLF,MAAO,wHAEHI,EAAa,CAAEJ,MAAO,4EACtBK,EAAa,CAAC,SACdC,EAAa,CAAEN,MAAO,4BACtBO,EAAa,CACjBL,IAAK,EACLF,MAAO,cAEHQ,EAAa,CAAER,MAAO,+FACtBS,EAAa,CAAC,YACdC,EAAc,CAAER,IAAK,GACrBS,EAAc,CAAET,IAAK,GAc3B,OAA4BY,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,iBACRmL,MAAO,CACPsP,KAAM3D,EAAAA,EACNw9B,mBAAoB,CAClBvzC,KAAMsK,QACNC,SAAS,GAEXoH,kBAAmB,CACjB3R,KAAMsK,QACNC,SAAS,GAEXipC,eAAgB,CACdxzC,KAAMsK,QACNC,SAAS,IAGXrL,MAAO,CAAC,WAAY,WAAY,aAChCC,KAAAA,CAAMC,GC+CR,MAAMgL,EAAQhL,EAkBRq0C,GAAWpiC,EAAAA,EAAAA,IAAwB,cACnCqiC,GAAkB37B,EAAAA,EAAAA,IAA+B,mBACjD47B,GAAqB7yC,EAAAA,EAAAA,KAAS,IAClCwJ,QAAQF,EAAMsP,MAAMqB,aAAarO,UAE7BknC,GAAgB77B,EAAAA,EAAAA,IAA+B,iBDzDrD,MAAO,CAACzS,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CAC/CnI,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,iFAAkF,GACxG3N,EAAQsa,MAAMqB,aAAarO,OAAS,kBAAoB,kBAC1CtN,EAAQsa,MAAM9Z,QAC7B,EACDiG,EAAAA,EAAAA,IAAoB,MAAO,CACzB3H,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,kCAAmC,UAAShH,EAAAA,EAAAA,IAAO0tC,IAAWlrC,QAAQ,IAAK,UAClG,EACD1C,EAAAA,EAAAA,IAAoB,MAAO,CACzB3H,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,8EAA+E,GACrG3N,EAAQsa,MAAMpC,2BAA6B,mBAAqB,MAC9DlY,EAAQsa,MAAMtC,qBAAuB,aAAe,OACxDpK,OAAOC,EAAAA,EAAAA,IAAgB,CAAE4mC,gBAAiB,OAAOz0C,EAAQsa,MAAMrC,kBAC/D5Q,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBjB,EAAKwuC,MAAM,WAAY10C,EAAQsa,QACnF,CACAta,EAAQsa,MAAMtC,uBAAyBhY,EAAQsa,MAAMpC,6BACjD9R,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOpI,KAC1CmI,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,IACF,IACHP,EAAAA,EAAAA,IAAoB,MAAO1H,EAAY,EACpC4H,EAAAA,EAAAA,IAAO6tC,KACHpuC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOhI,GAAYyH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,sCAAuC,CACzH6e,MAAOxlB,EAAQsa,MAAMtD,aAClB,KACLhQ,EAAAA,EAAAA,IAAoB,IAAI,IAC5BP,EAAAA,EAAAA,IAAoB,MAAOvH,EAAY,EACrCuH,EAAAA,EAAAA,IAAoB,IAAK,CACvB3H,MAAO,qDACPwI,KAAM,eACN4P,MAAOlX,EAAQsa,MAAMpD,MACrB7P,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBjB,EAAKwuC,MAAM,WAAY10C,EAAQsa,SACnF5T,EAAAA,EAAAA,IAAiB1G,EAAQsa,MAAMpD,OAAQ,EAAG/X,KAE9Ca,EAAQsa,MAAMnD,SAAWnX,EAAQsa,MAAMlD,cACnChR,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAasuC,EAAwB,CAClD31C,IAAK,EACLF,MAAO,wEACPqY,QAASnX,EAAQsa,MAAMnD,QACvBC,YAAapX,EAAQsa,MAAMlD,aAC1B,KAAM,EAAG,CAAC,UAAW,kBACxBpQ,EAAAA,EAAAA,IAAoB,IAAI,IAC5BP,EAAAA,EAAAA,IAAoB,MAAOrH,EAAY,CACpCY,EAAQo0C,gBAAkBp0C,EAAQsa,MAAM9D,kBAAkBlJ,SACtDlH,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO5H,EAAY,GACnD+G,EAAAA,EAAAA,KAAW,IAAOa,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,MAAMC,EAAAA,EAAAA,IAAYzK,EAAQsa,MAAM9D,kBAAmBjS,KAC3F6B,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CAC/CjI,IAAKuF,EAAS/D,GACd1B,MAAO,gDACN4H,EAAAA,EAAAA,IAAiBnC,EAASiJ,MAAO,MAClC,UAENxG,EAAAA,EAAAA,IAAoB,IAAI,QAGhCP,EAAAA,EAAAA,IAAoB,MAAOnH,EAAY,CACnCU,EAAQuS,mBAmBNvL,EAAAA,EAAAA,IAAoB,IAAI,KAlBvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAC3CjI,IAAK,EACLF,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,uIAAwI,CAClK,oBAAqB4mC,EAAmBzzC,MACxC,aAAcyzC,EAAmBzzC,MACjC,yBAAyB6F,EAAAA,EAAAA,IAAO2tC,GAChC,WAAW3tC,EAAAA,EAAAA,IAAO2tC,MAEhBjtC,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBjB,EAAKwuC,MAAM,WAAY10C,EAAQsa,OACpF3S,SAAU4sC,EAAmBzzC,OAC5B,CACAd,EAAQsa,MAAMqB,aAAarO,SACvBlH,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQzH,GAAakH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,yCAA0C,KAChIK,EAAAA,EAAAA,IAAoB,IAAI,GAC1BhH,EAAQsa,MAAMqB,aAAarO,QAEzBtG,EAAAA,EAAAA,IAAoB,IAAI,KADvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQxH,GAAaiH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,wCAAyC,KAElI,GAAIpH,KAEVoH,EAAAA,EAAAA,IAAO2tC,KACHluC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAC3CjI,IAAK,EACLF,MAAO,yIACPuI,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBjB,EAAKwuC,MAAM,YAAa10C,EAAQsa,QACpF,EACDxT,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,QACP0I,MAAMb,EAAAA,EAAAA,IAAOiF,EAAAA,MACZ,KAAM,EAAG,CAAC,UACbnF,EAAAA,EAAAA,IAAoB,OAAQ,MAAMC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,yCAA0C,OAE5GK,EAAAA,EAAAA,IAAoB,IAAI,MAE7B,GAEL,I,WE7JA,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,O,uMCLA,MAAMnI,EAAa,CACjBC,MAAO,kBACPyB,IAAK,SAEDxB,EAAa,CAAEC,IAAK,GACpBC,EAAa,CAAC,MAAO,QAAS,QAAS,UACvCC,EAAa,CACjBF,IAAK,EACLF,MAAO,wCCKH81C,EAAgB,MAChBC,EAAiB,MACjBC,EAAe,oBACfC,EAAoB,aACpBC,EAAqB,aACrBC,EAAc,2BACdC,EAAc,YACdC,EAAc,uBACdC,EAAmB,yBACnBC,EAAoB,SACpBC,EAAqB,SACrBC,EAA+C,CAEnD1wB,EAAG,SAEC2wB,EAAiB,aACjBC,EAAsB,0BACtBC,EAAuB,UACvBC,EAAwB,UAE9BC,EAAe,CAAC,EDMhB,OAA4Bh2C,EAAAA,EAAAA,IAAiB,IACxCg2C,EACH/1C,OAAQ,cACRmL,MAAO,CACPiD,IAAK,CACHrN,KAAMqpC,OACN4L,UAAU,GAEZvgB,MAAO,CACLnqB,QAASypC,GAEXlhB,OAAQ,CACNvoB,QAAS0pC,GAEXiB,gBAAiB,CACfl1C,KAAMsK,QACNC,SAAS,GAEX4qC,cAAe,CACbn1C,KAAMsK,QACNC,SAAS,IAGXpL,KAAAA,CAAMC,GCpBR,MAAMgL,EAAQhL,EAqBRg2C,GAAmBt0C,EAAAA,EAAAA,KAAS,IAChC,IACMsJ,EAAM+qC,cAAgB,CAAC,YAAc,MACrC/qC,EAAM8qC,gBAAkB,CAAC,cAAgB,IAC7Czc,KAAK,QAGH4c,GAAiBv0C,EAAAA,EAAAA,KAAS,KAC9B,IAAIuM,EAAMjD,EAAMiD,IAYhB,OAVIioC,EAAWp1C,MACbmN,EAAMkoC,EAAWloC,GACRmoC,EAAct1C,QACvBmN,EAAMooC,EAAcpoC,IAGtBA,EAAMqoC,EAAeroC,GACrBA,EAAMsoC,EAAYtoC,GAClBA,EAAMuoC,EAAevoC,GAEdA,CAAG,IAGNwoC,GAAc/0C,EAAAA,EAAAA,KAAS,IAAMsJ,EAAMiD,IAAIoH,SAAS4/B,KAChDyB,GAAch1C,EAAAA,EAAAA,KAAS,IAAMsJ,EAAMiD,IAAIoH,SAAS6/B,KAChDyB,GAAcj1C,EAAAA,EAAAA,KAAS,IAAMsJ,EAAMiD,IAAIoH,SAAS8/B,KAChDe,GAAax0C,EAAAA,EAAAA,KACjB,IAAM+0C,EAAY31C,OAAS41C,EAAY51C,OAAS61C,EAAY71C,QAGxDs1C,GAAgB10C,EAAAA,EAAAA,KAAS,IAAMsJ,EAAMiD,IAAIoH,SAASmgC,KAElDoB,GAAYl1C,EAAAA,EAAAA,KAAS,IAAMw0C,EAAWp1C,OAASs1C,EAAct1C,QAE7D+1C,GAAcC,EAAAA,EAAAA,OAEpB9xC,EAAAA,EAAAA,KAAU,KACR,MAAM+xC,EAAQF,GAAaG,OAAOC,IAC5BC,EAAWH,EAAM5mC,cAAc,UAErC+mC,GAAU9xC,aAAa,QAAS4F,EAAMsqB,MAAMtrB,YAC5CktC,GAAU9xC,aAAa,SAAU4F,EAAM0oB,OAAO1pB,WAAW,IAI3D,MAAMusC,EAAe9vB,IACnB,MAAMoZ,EAAWv9B,OAAOqX,SAASkmB,SAC3BsX,GAAyC,IAA/BtX,EAASjrB,QAAQ,SAC3BwiC,EAAqBD,IAAqC,IAA1B1wB,EAAI7R,QAAQ,SAElD,OAAOwiC,EAAqB3wB,EAAItd,QAAQ,UAAW,YAAcsd,CAAG,EAGhE+vB,EAAkB/vB,IACtB,MAAM4wB,EAAgB5wB,EAAI7R,QAAQ,KAC5B0iC,EAAgB7wB,EAAI7R,QAAQ,KAElC,OACqB,IAAnByiC,IACoB,IAAnBC,GAAkD,KAA1BtG,EAAAA,EAAAA,IAAUvqB,EAAK,QACxC4wB,EAAgBC,EAET7wB,EAGFA,EAAIkpB,WAAW,IAAK,KAAKxmC,QAAQ,IAAK,IAAI,EAG7CouC,EAAoBhzB,IAChBA,GAAU,IAAIzH,QAAO,CAAC06B,EAAkBC,KAC9C,MAAOC,EAAUC,GAAcF,EAAcv9B,MAAM,KAC7C09B,EAAiBrC,EAAkBmC,GAMzC,OAJIE,GACFJ,EAAOljC,KAAK,GAAGsjC,KAAkBD,KAG5BH,CAAM,GACZ,IAGCnB,EAAiBpoC,IACrB,IAAI4pC,EAAqBzB,EAAct1C,MAAQ00C,EAAiB,KAEhE,IAAKqC,EACH,OAAO5pC,EAGTA,EAAMA,EAAI9E,QAAQ0uC,EAAoBpC,GAEtC,MAAMqC,EAAuB7pC,EAAI2G,QAAQ,KAIzC,OAFA3G,GAAgC,IAA1B6pC,EAA8B7pC,EAAMA,EAAItE,MAAM,EAAGmuC,GAEhD7pC,CAAG,EAGNkoC,EAAcloC,IAClB,IAAI8pC,EAAkB,KAUtB,OARItB,EAAY31C,MACdi3C,EAAkB9C,EACTyB,EAAY51C,MACrBi3C,EAAkB7C,EACTyB,EAAY71C,QACrBi3C,EAAkB5C,GAGf4C,GAIL9pC,EAAMA,EAAI9E,QAAQ4uC,EAAiB3C,GACnCnnC,EAAM+pC,EAAgB/pC,GAEfA,GANEA,CAMC,EAGN+pC,EAAmB/pC,IACvB,IAAIsW,EAAmB,GACvB,MAAM0zB,EAAmBhqC,EAAI2G,QAAQ,KAUrC,OAR0B,IAAtBqjC,IACF1zB,EAAStW,EAAIi7B,UAAU+O,EAAmB,GAAG/9B,MAAM,KACnDqK,EAASgzB,EAAiBhzB,GAC1BtW,EAAMA,EAAIi7B,UAAU,EAAG+O,IAGzB1zB,EAAOjQ,KAAKwgC,GAEL,GAAG7mC,KAAOsW,EAAO8U,KAAK,MAAM,EAG/Bid,EAAkBroC,IACtB,MAAMiqC,EAAOhC,EAAWp1C,MAClBq3C,EAAeD,EAAO7C,EAAoBK,EAC1C0C,EAAgBF,EAAO5C,EAAqBK,EAElD,GAAK3qC,EAAM+qC,cAIJ,CACL,MAAMsC,GAAmC,IAAtBpqC,EAAI2G,QAAQ,MAES,IAApC3G,EAAI2G,QAAQmgC,KACd9mC,GAAO,GAAGoqC,EAAa,IAAM,MAAMtD,MAGF,IAA/B9mC,EAAI2G,QAAQujC,KACdlqC,GAAO,IAAIkqC,I,MAXblqC,EACG9E,QAAQ4rC,EAAmBC,GAC3B7rC,QAAQgvC,EAAcC,GAa3B,OAAOnqC,CAAG,EDMZ,MAAO,CAAC/H,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOpI,EAAY,CAC1D+3C,EAAU91C,OAASm1C,EAAen1C,QAC9BsF,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOlI,EAAY,EACpD0H,EAAAA,EAAAA,IAAoB,SAAU,CAC5BwH,IAAKgoC,EAAen1C,MACpBw3C,MAAOtC,EAAiBl1C,MACxBw0B,MAAOt1B,EAAQs1B,MACf5B,OAAQ1zB,EAAQ0zB,QACf,KAAM,EAAGz0B,QAEbmH,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,IAAK/H,EAAY,EAClD4H,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,gBACP0I,MAAMb,EAAAA,EAAAA,IAAO4xC,EAAAA,MACZ,KAAM,EAAG,CAAC,aAElB,KAEL,IElPA,MAAMtE,EAAc,EAEpB,Q,kECFA,MAAMp1C,EAAa,CAAC,WACdE,EAAa,CAAED,MAAO,8EACtBG,EAAa,CAAC,OCkEdu5C,EAAkB,ED9CxB,OAA4B54C,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,0BACRmL,MAAO,CACPsP,KAAM3D,EAAAA,GAEN5W,KAAAA,CAAMC,GC2BR,MAAMgL,EAAQhL,EAIRy4C,GAAyBl4C,EAAAA,EAAAA,IAC7B,MAGIm4C,GAAuBh3C,EAAAA,EAAAA,KAC3B,IAAMsJ,EAAMsP,MAAM9C,cAAclK,QAAU,IAMtCqrC,EAAUD,EAAqB53C,OAA2B,EAAlB03C,EAExCI,EAAW,CACfC,MAAO,MAGHC,EAAgC,CACpCC,WAAYJ,EACZK,eAAgBL,EAChBM,aAAc,SAAUrxC,EAAWsxC,GACjC,MAAO,gBAAgBA,YACzB,GAGIC,EAAU,CAACC,EAAAA,GAAYC,EAAAA,GAAUC,EAAAA,IACjCC,EAAa,CACjBC,OAAQ,iBACRC,OAAQ,kBAIJpF,GAAWpiC,EAAAA,EAAAA,IAAwB,cAEnCynC,GAAen5C,EAAAA,EAAAA,SAAiCS,GAChDmgC,GAAW5gC,EAAAA,EAAAA,IAAI,IAErB,SAASo5C,EAAsBC,GAC7B,OAAOtiC,EAAAA,EAAAA,IACL,GAAGsiC,EAAgB7hC,iBACnB1U,EAAAA,GAAYC,KAEhB,CAEA,SAASu2C,EAAcr8B,GACrBk8B,EAAa54C,OAASkK,EAAMsP,MAAM9C,cAAgB,IAAIgG,EAAMs8B,UAC9D,CAEA,SAASC,EAAiBH,GACxBzY,EAASrgC,MAAQ64C,EAAsBC,GACvCnB,EAAuB33C,OAAOuvB,WAChC,CD1BA,MAAO,CAACnqB,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,KAAM,EACrDH,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOqzC,EAAAA,IAAS,CAC3Bl7C,MAAO,6BACPq6C,QAASA,EACTc,KAAMtB,EACNuB,QAASvB,EACTG,WAAYA,EACZF,SAAUA,EACVW,WAAYA,EACZY,gBAAgB,EAChBC,mBAAoB,EACpBC,YAAY,EACZC,aAAc,GACdC,cAAe/B,EACfgC,oBAAqBr0C,EAAO,KAAOA,EAAO,GAAMgB,GAAiB0yC,EAAc1yC,KAC9E,CACDgE,SAAS3E,EAAAA,EAAAA,KAAS,IAAM,GACrBJ,EAAAA,EAAAA,KAAW,IAAOa,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,MAAMC,EAAAA,EAAAA,IAAYzK,EAAQsa,MAAM9C,cAAc,CAACoiC,EAAiBa,MACxGr0C,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaM,EAAAA,EAAAA,IAAO+zC,EAAAA,IAAc,CACtD57C,MAAO,qDACPE,IAAKy7C,GACJ,CACDtvC,SAAS3E,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAoB,MAAO,CACzBY,QAAUF,GAAiB4yC,EAAiBH,GAC5C96C,MAAO,gCACN,EACD2H,EAAAA,EAAAA,IAAoB,MAAO,CACzB3H,MAAO,gEACP8O,OAAOC,EAAAA,EAAAA,IAAgB,yBAAyB8rC,EACpDC,uBACmBjzC,EAAAA,EAAAA,IAAO0tC,IAAWlrC,QAAQ,IAAK,UAC7C,KAAM,IACR,EAAGtK,MAER+I,EAAG,GACF,SACD,SAENA,EAAG,GACF,EAAG,CAAC,YACPd,EAAAA,EAAAA,IAAa6zC,EAAAA,EAAiB,CAC5BC,QAAS,yBACTr6C,IAAKk4C,GACJ,CACDttC,SAAS3E,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAoB,MAAO1H,EAAY,EACrC0H,EAAAA,EAAAA,IAAoB,MAAO,CACzB3H,MAAO,+BACPmP,IAAKkzB,EAASrgC,OACb,KAAM,EAAG7B,QAGhB2I,EAAG,GACF,OAGP,I,WE1IA,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,QCLA,MAAM/I,EAAa,CAAEC,MAAO,mDACtBC,EAAa,CAAED,MAAO,iDACtBG,EAAa,CAAEH,MAAO,4BACtBI,EAAa,CAAEJ,MAAO,sDACtBK,GAAa,CACjBH,IAAK,EACLF,MAAO,qFAEHM,GAAa,CAAEN,MAAO,uBACtBO,GAAa,CACjBL,IAAK,EACLF,MAAO,cAEHQ,GAAa,CACjBN,IAAK,EACLF,MAAO,qCAEHS,GAAa,CAAET,MAAO,oCACtBU,GAAc,CAAEV,MAAO,yCACvBW,GAAc,CAAEX,MAAO,oBACvBY,GAAc,CAAEZ,MAAO,2DACvBa,GAAc,CAAC,aACfk7C,GAAc,CAAC,aACfC,GAAc,CAClB97C,IAAK,EACLF,MAAO,SAEHi8C,GAAc,CAAEj8C,MAAO,kDACvBk8C,GAAc,CAAC,YACfC,GAAc,CAAEj8C,IAAK,GACrBk8C,GAAc,CAAEl8C,IAAK,GACrBm8C,GAAc,CAAC,YACfC,GAAc,CAAC,YACfC,GAAc,CAAC,YACfC,GAAc,CAAEx8C,MAAO,8EACvBy8C,GAAc,CAAC,OAiBrB,QAA4B37C,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,aACRmL,MAAO,CACPsP,KAAM3D,EAAAA,EACN6kC,sBAAuB,CACrB56C,KAAMsK,QACNC,SAAS,GAEXswC,iBAAkB,CAChB76C,KAAMsK,QACNC,SAAS,GAEXuwC,aAAc,CACZ96C,KAAMsK,QACNC,SAAS,GAEXgpC,mBAAoB,CAClBvzC,KAAMsK,QACNC,SAAS,GAEXoH,kBAAmB,CACjB3R,KAAMsK,QACNC,SAAS,GAEXipC,eAAgB,CACdxzC,KAAMsK,QACNC,SAAS,IAGXrL,MAAO,CACP,cACA,cACA,aACA,WACA,WACA,aAEAC,KAAAA,CAAMC,GC6FR,MAAMgL,EAAQhL,EAqCRq0C,GAAWpiC,EAAAA,EAAAA,IAAwB,cACnC0pC,EAAgB,SAAStH,GAAUlrC,QAAQ,IAAK,OAChDqrC,GAAgB77B,EAAAA,EAAAA,IAA+B,iBAC/C27B,GAAkB37B,EAAAA,EAAAA,IAA+B,mBAEjDijC,GAAqBl6C,EAAAA,EAAAA,KACzB,KAAOsJ,EAAMsP,MAAM7C,kBAAkBnK,QAAU,IAAM,IAGjDuuC,GAAWn6C,EAAAA,EAAAA,KAAS,IACjBwJ,QAAQF,EAAMsP,MAAMqB,aAAarO,UAGpCwuC,GAAev7C,EAAAA,EAAAA,IAAiD,MAEtE,SAASw7C,IACF/wC,EAAMsP,MAAMpC,4BACf4jC,EAAah7C,OAAOuvB,WAExB,CD1HA,MAAO,CAACnqB,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CAC/CnI,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,sBAAuB,eAAe3N,EAAQsa,MAAM9Z,QAC3E,EACDiG,EAAAA,EAAAA,IAAoB,MAAO5H,EAAY,EACrC4H,EAAAA,EAAAA,IAAoB,MAAO1H,EAAY,EACrC0H,EAAAA,EAAAA,IAAoB,OAAQxH,EAAY,EACtCwH,EAAAA,EAAAA,IAAoB,KAAMvH,GAAYwH,EAAAA,EAAAA,IAAiB1G,EAAQsa,MAAMpD,OAAQ,IAC5EvQ,EAAAA,EAAAA,IAAO6tC,KACHpuC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQ9H,IAAYuH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,sCAAuC,CAC1H6e,MAAOxlB,EAAQsa,MAAMtD,aAClB,KACLhQ,EAAAA,EAAAA,IAAoB,IAAI,MAE9BP,EAAAA,EAAAA,IAAoB,SAAU,CAC5B3H,MAAO,sLACPuI,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBjB,EAAKwuC,MAAM,gBAC/D,EACD5tC,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,6BACP0I,MAAMb,EAAAA,EAAAA,IAAOq1C,EAAAA,MACZ,KAAM,EAAG,CAAC,UACbv1C,EAAAA,EAAAA,IAAoB,OAAQrH,IAAYsH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,mCAAoC,OAG9GR,EAAO,KAAOA,EAAO,IAAKM,EAAAA,EAAAA,IAAoB,MAAO,CAAE3H,MAAO,4CAA8C,MAAO,IAClHkB,EAAQsa,MAAMvD,WACV3Q,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO5H,GAAY,EACpDyH,EAAAA,EAAAA,IAAam1C,EAAa,CACxBhuC,IAAKjO,EAAQsa,KAAKvD,SAClBue,MAAO,OACP5B,OAAQ,QACP,KAAM,EAAG,CAAC,YAEf1sB,EAAAA,EAAAA,IAAoB,IAAI,IAC1BhH,EAAQsa,MAAM7C,kBAAkBnK,QAAU,IAAM,IAC7ClH,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO3H,GAAY,EACpDwH,EAAAA,EAAAA,IAAao1C,EAAyB,CAAE5hC,KAAMta,EAAQsa,MAAQ,KAAM,EAAG,CAAC,aAE1EtT,EAAAA,EAAAA,IAAoB,IAAI,GAC3B40C,EAAmB96C,QAAUd,EAAQsa,MAAMtC,uBACvC5R,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CACxCjI,IAAK,EACLF,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,8GAA+G,CACzI,CACE,wBAAyB3C,EAAMsP,MAAMpC,4BAEvCyjC,KAEE/tC,OAAOC,EAAAA,EAAAA,IAAgB,CACzB4mC,gBAAiB,OAAOz0C,EAAQsa,MAAMrC,kBAEpC5Q,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiB40C,MACpD,KAAM,KACT/0C,EAAAA,EAAAA,IAAoB,IAAI,IAC5BP,EAAAA,EAAAA,IAAoB,MAAOlH,GAAY,EACrCkH,EAAAA,EAAAA,IAAoB,MAAOjH,GAAa,EACtCiH,EAAAA,EAAAA,IAAoB,MAAOhH,GAAa,EACtCgH,EAAAA,EAAAA,IAAoB,KAAM/G,IAAagH,EAAAA,EAAAA,IAAiB1G,EAAQsa,MAAMpD,OAAQ,GAC7ElX,EAAQsa,MAAMnD,UACV/Q,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CACxCjI,IAAK,EACLF,MAAO,gEACPk1C,UAAWh0C,EAAQsa,MAAMnD,SACxB,KAAM,EAAGxX,MACZqH,EAAAA,EAAAA,IAAoB,IAAI,GAC3BhH,EAAQsa,MAAMlD,cACVhR,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CACxCjI,IAAK,EACLF,MAAO,sBACPk1C,UAAWh0C,EAAQsa,MAAMlD,aACxB,KAAM,EAAGyjC,MACZ7zC,EAAAA,EAAAA,IAAoB,IAAI,GAC3BhH,EAAQo0C,gBAAkBp0C,EAAQsa,MAAM9D,kBAAkBlJ,SACtDlH,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO6zC,GAAa,GACpD10C,EAAAA,EAAAA,KAAW,IAAOa,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,MAAMC,EAAAA,EAAAA,IAAYzK,EAAQsa,MAAM9D,kBAAmBjS,KAC3F6B,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CAC/CjI,IAAKuF,EAAS/D,GACd1B,MAAO,+CACN4H,EAAAA,EAAAA,IAAiBnC,EAASiJ,MAAO,MAClC,UAENxG,EAAAA,EAAAA,IAAoB,IAAI,MAE9BP,EAAAA,EAAAA,IAAoB,MAAOs0C,GAAa,CACpC/6C,EAAQuS,mBAiBNvL,EAAAA,EAAAA,IAAoB,IAAI,KAhBvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAC3CjI,IAAK,EACLF,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,kNAAmN,CAC7O,oBAAqBkuC,EAAS/6C,QAAUd,EAAQm0C,mBAChD,aAAc0H,EAAS/6C,OAASd,EAAQm0C,sBAEtC9sC,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBjB,EAAKwuC,MAAM,WAAY10C,EAAQsa,OACpF3S,SAAUk0C,EAAS/6C,OAASd,EAAQm0C,oBACnC,CACA0H,EAAS/6C,QACLsF,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQg0C,IAAav0C,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,yCAA0C,KAChIK,EAAAA,EAAAA,IAAoB,IAAI,GAC1B60C,EAAS/6C,OAEPkG,EAAAA,EAAAA,IAAoB,IAAI,KADvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQi0C,IAAax0C,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,wCAAyC,KAElI,GAAIq0C,MAEVr0C,EAAAA,EAAAA,IAAO2tC,KACHluC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAC3CjI,IAAK,EACL2I,SAAU3H,EAAQm0C,mBAClBr1C,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,8KAA+K,CACzM,oBAAqB3N,EAAQm0C,mBAC7B,aAAcn0C,EAAQm0C,sBAEpB9sC,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBjB,EAAKwuC,MAAM,YAAa10C,EAAQsa,QACpF,EACDxT,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,QACP0I,MAAMb,EAAAA,EAAAA,IAAOiF,EAAAA,MACZ,KAAM,EAAG,CAAC,UACbnF,EAAAA,EAAAA,IAAoB,OAAQ,MAAMC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,yCAA0C,IACzG,GAAIw0C,MACPn0C,EAAAA,EAAAA,IAAoB,IAAI,OAG/B40C,EAAmB96C,QAAUd,EAAQsa,MAAMtC,uBACvC5R,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CACxCjI,IAAK,EACLF,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,gHAAiH,CAC3I,CACE,wBAAyB3C,EAAMsP,MAAMpC,4BAEvCyjC,KAEE/tC,OAAOC,EAAAA,EAAAA,IAAgB,CACzB4mC,gBAAiB,OAAOz0C,EAAQsa,MAAMrC,kBAEpC5Q,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiB40C,MACpD,KAAM,KACT/0C,EAAAA,EAAAA,IAAoB,IAAI,KAE9Bb,EAAO,KAAOA,EAAO,IAAKM,EAAAA,EAAAA,IAAoB,MAAO,CAAE3H,MAAO,4CAA8C,MAAO,IAClHkB,EAAQw7C,wBACJp1C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CACxCjI,IAAK,EACLF,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,+BAAgC,CACxD,YAAa3N,EAAQ07C,aACrB,YAAa17C,EAAQy7C,qBAEpB,CACAz7C,EAAQy7C,mBACJr1C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAC3CjI,IAAK,EACLF,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,+IAAgJ,CAC5K,oBAAqB3N,EAAQm0C,mBAC7B,aAAcn0C,EAAQm0C,sBAElBxsC,SAAU3H,EAAQm0C,mBAClB9sC,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBjB,EAAKwuC,MAAM,cAAe10C,EAAQsa,SACtF5T,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,6BAA8B,GAAIy0C,MACnEp0C,EAAAA,EAAAA,IAAoB,IAAI,GAC3BhH,EAAQ07C,eACJt1C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAC3CjI,IAAK,EACLF,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,uJAAwJ,CACpL,oBAAqB3N,EAAQm0C,mBAC7B,aAAcn0C,EAAQm0C,sBAElBxsC,SAAU3H,EAAQm0C,mBAClB9sC,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBjB,EAAKwuC,MAAM,cAAe10C,EAAQsa,SACtF5T,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,yBAA0B,GAAI00C,MAC/Dr0C,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,KACHA,EAAAA,EAAAA,IAAoB,IAAI,MAE9BF,EAAAA,EAAAA,IAAa6zC,EAAAA,EAAiB,CAC5BC,QAAS,eACTr6C,IAAKu7C,GACJ,CACD3wC,SAAS3E,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAoB,MAAO60C,GAAa,EACtC70C,EAAAA,EAAAA,IAAoB,MAAO,CACzB3H,MAAO,+BACPmP,IAAKjO,EAAQsa,MAAMxC,WAClB,KAAM,EAAGyjC,SAGhB3zC,EAAG,GACF,MACF,GAEL,IE7SA,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,S,+FCLA,MAAM/I,EAAa,CAAEC,MAAO,kCC8BtBq9C,EAAiB,oEDrBvB,OAA4Bv8C,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,WACRmL,MAAO,CACLoxC,MAAO,CAAC,GAEVr8C,KAAAA,CAAMC,GCcR,MAAMgL,EAAQhL,EDTd,MAAO,CAACkG,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOpI,EAAY,CAC1C,YAAhBmM,EAAMoxC,QACFh2C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQ,CACzCjI,IAAK,EACLF,OAAO6O,EAAAA,EAAAA,IAAgB,GAAGwuC,6DACzB,EACDE,EAAAA,EAAAA,IAAYn2C,EAAKo2C,OAAQ,YACxB,KACHt1C,EAAAA,EAAAA,IAAoB,IAAI,GACX,WAAhBgE,EAAMoxC,QACFh2C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQ,CACzCjI,IAAK,EACLF,OAAO6O,EAAAA,EAAAA,IAAgB,GAAGwuC,0DACzB,EACDE,EAAAA,EAAAA,IAAYn2C,EAAKo2C,OAAQ,YACxB,KACHt1C,EAAAA,EAAAA,IAAoB,IAAI,GACX,UAAhBgE,EAAMoxC,QACFh2C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQ,CACzCjI,IAAK,EACLF,OAAO6O,EAAAA,EAAAA,IAAgB,GAAGwuC,wEACzB,EACDE,EAAAA,EAAAA,IAAYn2C,EAAKo2C,OAAQ,YACxB,KACHt1C,EAAAA,EAAAA,IAAoB,IAAI,GACX,SAAhBgE,EAAMoxC,QACFh2C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQ,CACzCjI,IAAK,EACLF,OAAO6O,EAAAA,EAAAA,IAAgB,GAAGwuC,mFACzB,EACDE,EAAAA,EAAAA,IAAYn2C,EAAKo2C,OAAQ,YACxB,KACHt1C,EAAAA,EAAAA,IAAoB,IAAI,KAGhC,IEvDA,MAAMitC,EAAc,EAEpB,O,sLCFA,MAAMp1C,EAAa,CAAEC,MAAO,iHACtBC,EAAa,CAAED,MAAO,kDACtBG,EAAa,CAAEH,MAAO,oCACtBI,EAAa,CAAEJ,MAAO,oBAa5B,OAA4Bc,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,cACRE,KAAAA,CAAMC,GCuBRG,EAAAA,GAAQC,IAAIm8C,EAAAA,KACZ,MAAMC,GAAgBj8C,EAAAA,EAAAA,IAA8B,MAE9Ck8C,GAAmBl8C,EAAAA,EAAAA,MDEzB,OCAAyE,EAAAA,EAAAA,KAAU,KACRw3C,EAAc17C,OAAO47C,OAEjB1tC,EAAAA,GAAWlO,QAEbqxB,EAAAA,EAAAA,MAAmBtvB,MAAMuvB,IACvBtd,YAAW,KACTsd,EAAOK,QAAQ,EAAE,GAChB,GAAG,IAIN+pB,EAAc17C,OAChB07C,EAAc17C,MAAMkZ,iBAAiB,SAAU2iC,IAC9B,WAAXA,EAAG39C,MACLytC,EAAAA,EAAAA,I,ODfD,CAACvmC,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOpI,EAAY,EAC3D4H,EAAAA,EAAAA,IAAoB,SAAU,CAC5B3H,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,2EAA2EhH,EAAAA,EAAAA,IAAO0tB,EAAAA,MAC1GzmB,OAAOC,EAAAA,EAAAA,IAAgB,CAAE+uC,IAAKH,EAAiB37C,QAC/C85C,QAAS,gBACTr6C,IAAKi8C,GACJ,EACD/1C,EAAAA,EAAAA,IAAoB,MAAO1H,EAAY,EACrCs9C,EAAAA,EAAAA,IAAYn2C,EAAKo2C,OAAQ,WACzB71C,EAAAA,EAAAA,IAAoB,SAAU,CAC5BY,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,IAAiBR,EAAAA,EAAAA,IAAO8lC,EAAAA,EAAP9lC,IACrD7H,MAAO,oIACN,EACDgI,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,qBACP0I,MAAMb,EAAAA,EAAAA,IAAO41C,EAAAA,MACZ,KAAM,EAAG,CAAC,cAGjBF,EAAAA,EAAAA,IAAYn2C,EAAKo2C,OAAQ,YACzB71C,EAAAA,EAAAA,IAAoB,MAAOxH,EAAY,EACrCo9C,EAAAA,EAAAA,IAAYn2C,EAAKo2C,OAAQ,SAAU,CAAC,GAAG,IAAM,EAC3C71C,EAAAA,EAAAA,IAAoB,MAAOvH,EAAY,EACrCuH,EAAAA,EAAAA,IAAoB,SAAU,CAC5BY,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,IAAiBR,EAAAA,EAAAA,IAAO8lC,EAAAA,EAAP9lC,IACrD7H,MAAO,sGACN4H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,kBAAmB,WAIzD,KAGP,IEhFA,MAAMstC,EAAc,EAEpB,O,0GCFA,MAAMp1C,EAAa,CAAEC,MAAO,4CACtBC,EAAa,CAAED,MAAO,sDAK5B,OAA4Bc,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,kBACRE,KAAAA,CAAMC,GAAW68C,OAAQC,ICkC3B,IAAIC,GAAgBx8C,EAAAA,EAAAA,KAAI,GAUxB,SAAS8vB,IACP0sB,EAAcj8C,OAAQ,CACxB,CAEA,SAASgE,IACPi4C,EAAcj8C,OAAQ,CACxB,CAEA,SAASk8C,EAAgBx/B,GACJ,WAAfA,EAAMy/B,MACRn4C,GAEJ,CD1BA,OCMAE,EAAAA,EAAAA,KAAU,KACRE,SAAS8U,iBAAiB,UAAWgjC,EAAgB,KAGvDE,EAAAA,EAAAA,KAAY,KACVh4C,SAASulB,oBAAoB,UAAWuyB,EAAgB,IAiB1DF,EAAa,CACXzsB,cD7BK,CAACnqB,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CAC/CnI,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,mCAAoC,CAC1D,qBAAqBhH,EAAAA,EAAAA,IAAOo2C,GAC5B,sBAAsBp2C,EAAAA,EAAAA,IAAOo2C,OAE9B,EACDt2C,EAAAA,EAAAA,IAAoB,MAAO,CACzB3H,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,+EAAgF,CACtG,cAAchH,EAAAA,EAAAA,IAAOo2C,GACrB,wBAAwBp2C,EAAAA,EAAAA,IAAOo2C,MAEjC11C,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBrC,MACpD,CACDqB,EAAO,KAAOA,EAAO,IAAKM,EAAAA,EAAAA,IAAoB,MAAO,CAAE3H,MAAO,8CAAgD,MAAO,KACrH2H,EAAAA,EAAAA,IAAoB,MAAO5H,EAAY,EACrC4H,EAAAA,EAAAA,IAAoB,SAAU,CAC5BY,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBrC,KACrDhG,MAAO,yHACNqH,EAAO,KAAOA,EAAO,GAAK,EAC3BM,EAAAA,EAAAA,IAAoB,MAAO,CACzB3H,MAAO,0BACPq+C,MAAO,6BACP7nB,MAAO,KACP5B,OAAQ,KACR0pB,QAAS,aACR,EACD32C,EAAAA,EAAAA,IAAoB,OAAQ,CAAE42C,EAAG,yHAC/B,OAEN52C,EAAAA,EAAAA,IAAoB,UAAW1H,EAAY,EACzCs9C,EAAAA,EAAAA,IAAYn2C,EAAKo2C,OAAQ,gBAG5B,IACF,GAEL,I,WExEA,MAAMrI,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,O,6FCPOn1C,MAAM,qB,kCAAXmI,EAAAA,EAAAA,IAMM,MANNpI,EAMMsH,EAAA,KAAAA,EAAA,KAPRm3C,EAAAA,EAAAA,IAAA,8O,gBCCA,MAAMr4C,EAAS,CAAC,EAKVgvC,GAA2B,OAAgBhvC,EAAQ,CAAC,CAAC,SAASW,GAAQ,CAAC,YAAY,qBAEzF,O,0GCDA,GAA4BhG,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,iBACRE,KAAAA,CAAMC,GCyBR,MAAMu9C,GAAQh9C,EAAAA,EAAAA,IAAIuD,EAAAA,IDFlB,MAAO,CAACoC,EAAUC,IACRo3C,EAAMz8C,QACTsF,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAam3C,EAAAA,EAAAA,IAAyBD,EAAMz8C,MAAMqrC,MAAO,CACtEntC,IAAK,EACL+E,MAAOw5C,EAAMz8C,MAAMiD,MACnBsoC,UAAWlmC,EAAO,KAAOA,EAAO,GAAMgB,GAAiBo2C,EAAMz8C,OAAOurC,UAAUllC,IAC9EmlC,QAASnmC,EAAO,KAAOA,EAAO,GAAMgB,GAAiBo2C,EAAMz8C,OAAOwrC,QAAQnlC,IAC1EolC,QAASpmC,EAAO,KAAOA,EAAO,GAAMgB,GAAiBo2C,EAAMz8C,OAAOyrC,QAAQplC,KACzE,KAAM,GAAI,CAAC,YACdH,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,I,WErCA,MAAMitC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,O,qHCDA,GAA4Br0C,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,sBACRmL,MAAO,CACPoT,eAAgB,CACdxd,KAAM4H,OACNqtC,UAAU,GAEZr3B,SAAU,CACR5d,KAAM4H,OACNqtC,UAAU,GAEZ4H,cAAe,CACb78C,KAAM4H,OACN2C,QAAS,IAEXmO,YAAa,CACX1Y,KAAM4H,OACN2C,QAAS,GAEXuyC,cAAe,CACb98C,KAAMsK,QACNC,SAAS,GAEXwyC,qBAAsB,CACpB/8C,KAAMsK,QACNC,SAAS,GAEXyyC,WAAY,CACVh9C,KAAMsK,QACNC,SAAS,IAGXrL,MAAO,CAAC,eACRC,KAAAA,CAAMC,GAAWC,KAAMC,ICVzB,MAAM8K,EAAQhL,EA+BRC,EAAOC,EACP29C,GAAkBn8C,EAAAA,EAAAA,KAAS,IAAMsJ,EAAMoT,eAAiBpT,EAAMwT,WAC9Ds/B,GAAOv9C,EAAAA,EAAAA,IAAIyK,EAAMsO,aASvB,SAASykC,EAAeD,GACtB79C,EAAK,cAAe69C,EAAO,EAC7B,CDfA,OCMApwC,EAAAA,EAAAA,KACE,IAAM1C,EAAMsO,cACZ,KACEwkC,EAAKh9C,MAAQkK,EAAMsO,WAAW,IDT3B,CAACpT,EAAUC,KAChB,MAAM63C,GAAgCC,EAAAA,EAAAA,IAAkB,sBAExD,OAAQ73C,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa23C,EAA+B,CAChEE,WAAYJ,EAAKh9C,MACjB,sBAAuBqF,EAAO,KAAOA,EAAO,GAAMgB,GAAkB22C,EAAMh9C,MAAQqG,GAClFrI,OAAO6O,EAAAA,EAAAA,IAAgB,CAAE,UAAsC,IAA3B3N,EAAQoe,iBAC5C,cAAey/B,EAAgB/8C,MAC/B,iBAAkBd,EAAQwe,SAC1B,kBAAmBxe,EAAQy9C,cAC3B,sBAAuBz9C,EAAQ09C,cAC/B,2BAA4B19C,EAAQ29C,qBACpCQ,kBAAmBn+C,EAAQ49C,WAC3Bv2C,QAAS02C,GACR,CACD,eAAev3C,EAAAA,EAAAA,KAAS,IAAM,EAC5BY,EAAAA,EAAAA,KAAiBV,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,6BAA8B,MAE/E,eAAeH,EAAAA,EAAAA,KAAS,IAAM,EAC5BY,EAAAA,EAAAA,KAAiBV,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,yBAA0B,MAE3E,qBAAqBH,EAAAA,EAAAA,KAAS,IAAM,EAClCY,EAAAA,EAAAA,KAAiBV,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,0BAA2B,MAE5E,oBAAoBH,EAAAA,EAAAA,KAAS,IAAM,EACjCY,EAAAA,EAAAA,KAAiBV,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,yBAA0B,MAE3EiB,EAAG,GACF,EAAG,CAAC,aAAc,QAAS,cAAe,iBAAkB,kBAAmB,sBAAuB,2BAA4B,qBAAqB,CAE5J,I,WEnFA,MAAMqsC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,O,4MCLA,MAAMp1C,EAAa,CACjBG,IAAK,EACLF,MAAO,+FAEHC,EAAa,CAAC,aACdE,EAAa,CAAC,QACdC,EAAa,CAAEJ,MAAO,0MACtBK,EAAa,CACjBH,IAAK,EACLF,MAAO,SAEHM,EAAa,CAAEN,MAAO,oCACtBO,EAAa,CAAEP,MAAO,oDAqB5B,OAA4Bc,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,0BACRmL,MAAO,CACLozC,eAAgB,CAAC,GAEnBr+C,KAAAA,CAAMC,GCsBR,MAAMgL,EAAQhL,EAERq+C,GAAwBhvC,EAAAA,EAAAA,IAC5B,4BAGIivC,GAAiCjvC,EAAAA,EAAAA,IACrC,kCAGF,IAAIkvC,GAA8BtsC,EAAAA,EAAAA,IAChC,+BAIAssC,GACAA,EAA4BjxC,OAAS,IACrC8jC,EAAAA,EAAAA,IAAQmN,KAERA,EAA8B,UAAUA,KAG1C,MAAMC,EACJxgC,EAAAA,EAAYqI,aAAapI,OAAOwgC,iBAAiB,GAAGD,iBAChDlK,GAAkB37B,EAAAA,EAAAA,IAA+B,mBDlBvD,MAAO,CAACzS,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,KAAM,EAEtD7D,EAAAA,EAAAA,IAAO03C,KAA0B13C,EAAAA,EAAAA,IAAO03C,GAAuB/wC,OAAS,IACxE3G,EAAAA,EAAAA,IAAO23C,KACN33C,EAAAA,EAAAA,IAAO23C,GAAgChxC,OAAS,IAE/ClH,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,UAAWpI,EAAY,EACvD8H,EAAAA,EAAAA,IAAO03C,KACHj4C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,IAAK,CACtCjI,IAAK,EACLg1C,WAAWrtC,EAAAA,EAAAA,IAAO03C,GAClBv/C,MAAO,mCACN,KAAM,EAAGC,KACZiI,EAAAA,EAAAA,IAAoB,IAAI,IAC3BL,EAAAA,EAAAA,IAAO23C,KACHl4C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,IAAK,CACtCjI,IAAK,EACLsI,MAAMX,EAAAA,EAAAA,IAAO43C,GACb9gC,OAAQ,UACP,EACDhX,EAAAA,EAAAA,IAAoB,SAAUvH,GAAYwH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAO23C,IAAkC,IACnG,EAAGr/C,KACN+H,EAAAA,EAAAA,IAAoB,IAAI,OAE9BA,EAAAA,EAAAA,IAAoB,IAAI,IAC3BL,EAAAA,EAAAA,IAAO63C,KAAqB73C,EAAAA,EAAAA,IAAO2tC,KAC/BluC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO9H,EAAY,EACpDsH,EAAAA,EAAAA,IAAoB,OAAQrH,EAAY,EACtCqH,EAAAA,EAAAA,IAAoB,SAAU,CAC5BY,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GACxC6D,EAAMozC,gBACFz3C,EAAAA,EAAAA,IAAOkX,EAAAA,EAAPlX,EAAkBA,EAAAA,EAAAA,IAAOmX,EAAAA,EAAPnX,CAA8BqE,EAAMozC,kBACtDz3C,EAAAA,EAAAA,IAAOggB,EAAAA,GAAPhgB,IAEA7H,MAAO,kHACN,EACDgI,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,0DACP0I,MAAMb,EAAAA,EAAAA,IAAO+3C,EAAAA,MACZ,KAAM,EAAG,CAAC,UACbj4C,EAAAA,EAAAA,IAAoB,OAAQpH,GAAYqH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,kDAAmD,WAI/HK,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,IAEL,IElHA,MAAMitC,EAAc,EAEpB,O,0ICFA,MAAMp1C,EAAa,CACjBG,IAAK,EACLF,MAAO,SAcT,OAA4Bc,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,eACRmL,MAAO,CACL0xC,KAAM,CAAE97C,KAAMsK,SACdyzC,YAAa,CAAE/9C,KAAMsK,UAEvBnL,KAAAA,CAAMC,GCHR,MAAMgL,EAAQhL,EDOd,MAAO,CAACkG,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CAC/CnI,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,wCAAyC,CAAE,YAAa3C,EAAM0xC,SACrF,EACD51C,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCC,MAAMb,EAAAA,EAAAA,IAAOuH,EAAAA,KACbpP,MAAO,YACN,KAAM,EAAG,CAAC,SACXoH,EAAKy4C,aAEH33C,EAAAA,EAAAA,IAAoB,IAAI,KADvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQpI,GAAY6H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,kCAAmC,KAE3H,GAEL,I,WEpCA,MAAMstC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,O,2ICLA,MAAMp1C,EAAa,CAAEC,MAAO,2BACtBC,EAAa,CAAC,aAOpB,OAA4Ba,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,qBACRE,KAAAA,CAAMC,GCGR,MAAM4+C,GAA2BvvC,EAAAA,EAAAA,IAAyB,sBDC1D,MAAO,CAACnJ,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOpI,EAAY,EACzD8H,EAAAA,EAAAA,IAAOi4C,IAWL53C,EAAAA,EAAAA,IAAoB,IAAI,KAVvBZ,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaw4C,EAAAA,EAAU,CACpC7/C,IAAK,EACLF,MAAO,OACPs9C,MAAO,WACN,CACDjxC,SAAS3E,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAoB,OAAQ,MAAMC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,kCAAmC,MAErGiB,EAAG,MAGRjB,EAAAA,EAAAA,IAAOi4C,KACHx4C,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaw4C,EAAAA,EAAU,CACpC7/C,IAAK,EACLF,MAAO,2BACPs9C,MAAO,WACN,CACDjxC,SAAS3E,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAoB,OAAQ,CAAEutC,WAAWrtC,EAAAA,EAAAA,IAAOi4C,IAA6B,KAAM,EAAG7/C,MAExF6I,EAAG,MAELZ,EAAAA,EAAAA,IAAoB,IAAI,KAGhC,IE1CA,MAAMitC,EAAc,EAEpB,O,8LCFA,MAAMp1C,EAAa,CAAEC,MAAO,qBACtBC,EAAa,CAAED,MAAO,iBACtBG,EAAa,CAAC,WACdC,EAAa,CAAC,OACdC,EAAa,CAAEL,MAAO,gBACtBM,EAAa,CAAEJ,IAAK,GACpBK,EAAa,CAAEP,MAAO,oBAmB5B,OAA4Bc,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,qBACRC,MAAO,CAAC,UAAW,QAAS,SAC5BC,KAAAA,CAAMC,GAAWC,KAAMC,IC0CzBC,EAAAA,GAAQC,IAAIwL,EAAAA,IAAYC,EAAAA,IAAaC,EAAAA,IAAaC,EAAAA,IAAUC,EAAAA,KAE5D,MAAM/L,EAAOC,EAMPgM,GAAyBC,EAAAA,EAAAA,MACzBmlB,GAAmB/wB,EAAAA,EAAAA,IAAI2L,EAAuBqB,QAC9CkkB,GAAqBlxB,EAAAA,EAAAA,IACzB2L,EAAuBmB,SAGzB,SAASyxC,EAAaC,GACpB9+C,EAAK,UAAW8+C,EAAsBxyC,OACxC,CAEA,SAASzH,IACP7E,EAAK,QACP,CD1CA,MAAO,CAACiG,EAAUC,MACRC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,EAAa,KAAM,CACpDC,QAAQC,EAAAA,EAAAA,KAAS,IAAM,EACrBC,EAAAA,EAAAA,IAAoB,KAAM5H,GAAY6H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CACjD,wEACE,MAEVE,SAASL,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAoB,UAAW1H,EAAY,GACxCqH,EAAAA,EAAAA,KAAW,IAAOa,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,MAAMC,EAAAA,EAAAA,IAAYgnB,EAAmB3wB,OAAQoC,KACrFkD,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAClDjI,IAAKkE,EAAWsK,KAChBnG,QAAUF,GAAiB23C,EAAa57C,GACxCpE,MAAO,uEACP8O,OAAOC,EAAAA,EAAAA,IAAgB3K,EAAW4K,4BACjC,EAEE5K,EAAW6K,yBAA2B7K,EAAW8K,eAE/C5H,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaM,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACnDvI,IAAK,EACLF,MAAO,6BACP0I,KAAMtE,EAAW8K,cAChB,KAAM,EAAG,CAAC,WACbhH,EAAAA,EAAAA,IAAoB,IAAI,GAC3B9D,EAAW6K,0BACP3H,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CACxCjI,IAAK,EACLF,MAAO,0BACPmP,IAAK/K,EAAW6K,yBACf,KAAM,EAAG7O,KACZ8H,EAAAA,EAAAA,IAAoB,IAAI,IAC5BP,EAAAA,EAAAA,IAAoB,OAAQtH,GAAYuH,EAAAA,EAAAA,IAAiBxD,EAAWsK,MAAO,IAC1E,GAAIvO,MACL,MACHwyB,EAAmB3wB,MAAMwM,QAAUgkB,EAAiBxwB,QAChDsF,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,IAAK7H,GAAYsH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,4DAA6D,KAC/IK,EAAAA,EAAAA,IAAoB,IAAI,GAC3BsqB,EAAiBxwB,QACbsF,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAC3CjI,IAAK,EACLqI,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiB23C,EAAaxtB,EAAiBxwB,QACnFhC,MAAO,+HACN,EACD2H,EAAAA,EAAAA,IAAoB,OAAQ,MAAMC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa2qB,EAAiBxwB,MAAM0M,OAAQ,OAEjGxG,EAAAA,EAAAA,IAAoB,IAAI,QAGhCU,QAAQlB,EAAAA,EAAAA,KAAS,IAAM,EACrBC,EAAAA,EAAAA,IAAoB,MAAOpH,EAAY,EACrCoH,EAAAA,EAAAA,IAAoB,SAAU,CAC5BY,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBrC,KACrDhG,MAAO,wFACN4H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,qBAAsB,QAG3DiB,EAAG,IAGP,IE5GA,MAAMqsC,EAAc,EAEpB,O,2ICFA,MAAM+K,EAA2B,UAE3B,SAAUC,EAAWC,GACzB,OAAIA,EAAUv+C,YACLu+C,EAAUv+C,YAGfu+C,EAAUh+C,2BACL0F,EAAAA,EAAAA,IAAKs4C,EAAUh+C,2BAGpBg+C,EAAU1+C,GAAG6U,SAAS2pC,GACjBE,EAAU1+C,GAAG2I,QAAQ61C,EAA0B,KAGjDp4C,EAAAA,EAAAA,IAAK,2CAA2Cs4C,EAAU1+C,KACnE,CAEM,SAAU2+C,EAAoBD,GAClC,OAAIA,EAAU1+C,GAAG6U,SAAS2pC,IACjBp4C,EAAAA,EAAAA,IAAK,yDAGPA,EAAAA,EAAAA,IAAK,0DAA2D,CACrEue,UAAW85B,EAAWC,IAE1B,C,+CC1BA,MAAMrgD,EAAa,CAAC,OACdE,EAAa,CACjBC,IAAK,EACLF,MAAO,sCAEHG,EAAa,CAAC,aACdC,EAAa,CAAC,UAAW,WAAY,WAAY,KAAM,OAAQ,YAAa,SAC5EC,EAAa,CAAC,WAAY,WAAY,KAAM,OAAQ,YAAa,SACjEC,EAAa,CAAC,WAAY,WAAY,KAAM,OAAQ,YAAa,QAAS,MAAO,OACjFC,EAAa,CAAC,UAAW,WAAY,WAAY,KAAM,OAAQ,YAAa,SAC5EC,EAAa,CAAC,WAAY,WAAY,KAAM,SAC5CC,EAAa,CACjBP,IAAK,EACL2I,SAAU,GACV7G,MAAO,IAEHtB,EAAc,CAClBR,IAAK,EACL8B,MAAO,IAEHrB,EAAc,CAAC,WAAY,WAAY,KAAM,OAAQ,QAAS,MAAO,OACrEC,EAAc,CAAC,WAAY,WAAY,KAAM,QAAS,MAAO,OAC7DC,EAAc,CAAC,WAAY,WAAY,KAAM,WAC7Ck7C,EAAc,CAAC,OACfC,EAAc,CAAC,aACfC,EAAc,CAClB/7C,IAAK,EACLF,MAAO,0BAEHk8C,EAAc,CAClBh8C,IAAK,EACLF,MAAO,iCAEHm8C,EAAc,CAAEn8C,MAAO,SACvBo8C,EAAc,CAClBl8C,IAAK,EACLF,MAAO,iCAEHq8C,EAAc,CAAC,aC6JfiE,EAAyB,GACzBC,EAAyB,IA+CzBC,EAAe,sLDpKrB,OAA4B1/C,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRmL,MAAO,CACL5I,MAAO,CAAC,GAEVtC,MAAO,CAAC,gBACRC,KAAAA,CAAMC,GAAgBC,KAAMC,IC4G9BC,EAAAA,GAAQC,IAAIC,EAAAA,KAKZ,MAAMk/C,GAAWh/C,EAAAA,EAAAA,MAmBXyK,EAAQhL,EACRC,EAAOC,EACPs/C,GAAej/C,EAAAA,EAAAA,IAAIyK,EAAM5I,MAAMnB,SAE/Bw+C,GAAmBC,EAAAA,EAAAA,IAAM10C,EAAM5I,MAAO,SACtCu9C,GAAmBp/C,EAAAA,EAAAA,KAAI,GAEvBq/C,GAAkBr/C,EAAAA,EAAAA,IAAI,CAC1Bs/C,yBAAyB,EACzBl4C,UAAU+3C,EAAAA,EAAAA,KAAM,IAAM10C,EAAM5I,MAAMyC,aAClCi7C,oBAAoB,EACpBjK,SAAU7qC,EAAM5I,MAAM1B,WACtBq/C,oBAAoB,EACpBC,iBAAkB,GAClBC,aAAc,KACdzyC,KAAM,QACN0yC,OAAQ,GACRC,eAAgB,GAChBb,aAAc,GACdc,aAAc,CACZC,cAAc,EACdz/C,KAAM,OAER0/C,eAAgBj9C,EAAAA,GAAYk9C,cAKxBC,EAAgB,CACpB,6DACA,+DACA,8DACA,mEAGI9/C,GAAagB,EAAAA,EAAAA,KAAS,IAExBsJ,EAAM5I,MAAM1B,aACXsK,EAAM5I,MAAMtB,OACbkK,EAAM5I,MAAMnB,SACS,WAArB+J,EAAM5I,MAAMxB,OAIV6/C,GAAY/+C,EAAAA,EAAAA,KAAS,IAEtBg/C,MAA0B11C,EAAM5I,MAAM1B,YACtCggD,KAAyB11C,EAAM5I,MAAM1B,YAAcsK,EAAM5I,MAAMtB,QAIpE,SAAS4/C,IACP,OACG11C,EAAM5I,MAAMrB,OAASiK,EAAM5I,MAAMnB,SAAgC,WAArB+J,EAAM5I,MAAMxB,IAE7D,CAEA,SAAS+/C,EAAYnjC,GACnB,MAAMojC,EAAQpjC,EAAMC,OAEpBxd,EAAK,eAAgB,CACnBa,MACuB,aAArBkK,EAAM5I,MAAMxB,MAA4C,iBAArBoK,EAAM5I,MAAMxB,KAC3CggD,EAAMC,QACND,EAAM9/C,MACZC,MACqB,gBAAnBiK,EAAM5I,MAAM5B,GACRm/C,EACAiB,EAAME,gBACZ7/C,QAASu+C,EAAa1+C,OAE1B,CAEA,SAASigD,EACPC,EACAC,GAEA,IAAKD,EACH,OAGF,MAAM92C,EAAM,IAAIT,KAAKu3C,GAAUE,cAAchnC,MAAM,KAAK,GAExD,OAAO+mC,EAAa,GAAG/2C,UAAcA,CACvC,CAEA,SAASi3C,EAAyBC,GAChC,MAAM73C,EAAO,IAAIE,KAIjB,OAFAF,EAAK83C,YAAY93C,EAAKM,cAAgBu3C,GAE/B73C,EAAK23C,cAAchnC,MAAM,KAAK,EACvC,CAEA,SAASonC,IACP,OAAOH,EAAyB/B,EAClC,CAEA,SAASmC,IACP,OACEv2C,EAAM5I,MAAM6tB,SAAWkxB,EAAyB9B,EAEpD,CAEA,SAASmC,EAAiBhkC,GACnBA,EAAMzc,MAGTw+C,EAASz+C,OAAOm2C,IAAI/wB,UAAUF,OAAO,SAFrCu5B,EAASz+C,OAAOm2C,IAAI/wB,UAAU9lB,IAAI,SAKpCu/C,EAAiB7+C,MAAQ0c,EAAMzc,KACjC,CD/HA,MAAO,CAACmF,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,KAAM,CAEvDQ,EAAM5I,MAAMxB,QAAS+F,EAAAA,EAAAA,IAAOyC,EAAAA,IAA0BuX,WACtD3V,EAAM5I,MAAMxB,QAAS+F,EAAAA,EAAAA,IAAOyC,EAAAA,IAA0B2X,QACtD/V,EAAM5I,MAAMxB,QAAS+F,EAAAA,EAAAA,IAAOyC,EAAAA,IAA0B4X,eAEnD5a,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,QAAS,CAC1CjI,IAAK,EACLF,MAAO,+BACP2iD,IAAKz2C,EAAM5I,MAAM5B,IAChB,CACAwK,EAAM5I,MAAM1B,aACR0F,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQlI,EAAY,OACvDiI,EAAAA,EAAAA,IAAoB,IAAI,IAC5BP,EAAAA,EAAAA,IAAoB,OAAQ,CAC1ButC,WAAWrtC,EAAAA,EAAAA,IAAOs4C,EAAPt4C,CAAmBqE,EAAM5I,QACnC,KAAM,EAAGnD,IACX,EAAGJ,KACNmI,EAAAA,EAAAA,IAAoB,IAAI,GAC3BgE,EAAM5I,MAAMxB,QAAS+F,EAAAA,EAAAA,IAAOyC,EAAAA,IAA0BqX,OAClDra,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,CAAExL,IAAK,GAAK,CACtDgM,EAAM5I,MAAM+tB,WAcVnpB,EAAAA,EAAAA,IAAoB,IAAI,KAbvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,QAAS,CAC1CjI,IAAK,EACLoC,QAAS4J,EAAM5I,MAAMhB,QACrBy0C,SAAU7qC,EAAM5I,MAAM1B,WACtBiH,SAAUqD,EAAM5I,MAAMyC,WACtB/F,OAAO6O,EAAAA,EAAAA,IAAgB2xC,GACvB9+C,GAAIwK,EAAM5I,MAAM5B,GAChBI,KAAMoK,EAAM5I,MAAMxB,KAClB8gD,UAAW12C,EAAM5I,MAAMjB,UACvBL,MAAOkK,EAAM5I,MAAMtB,MACnB6gD,QAASx7C,EAAO,KAAOA,EAAO,GAAMgB,GAAiBw5C,EAAYx5C,IACjEE,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBq4C,EAAa1+C,OAAQ,IACzE,KAAM,GAAI5B,IAEhB8L,EAAM5I,MAAM+tB,YACR/pB,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,WAAY,CAC7CjI,IAAK,EACL62C,SAAU7qC,EAAM5I,MAAM1B,WACtBiH,SAAUqD,EAAM5I,MAAMyC,WACtB/F,OAAO6O,EAAAA,EAAAA,IAAgB2xC,GACvB9+C,GAAIwK,EAAM5I,MAAM5B,GAChBI,KAAMoK,EAAM5I,MAAMxB,KAClB8gD,UAAW12C,EAAM5I,MAAMjB,UACvBL,MAAQkK,EAAM5I,MAAMtB,MACpB6gD,QAASx7C,EAAO,KAAOA,EAAO,GAAMgB,GAAiBw5C,EAAYx5C,IACjEE,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBq4C,EAAa1+C,OAAQ,IACzE,KAAM,GAAI3B,KACb6H,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,MACHA,EAAAA,EAAAA,IAAoB,IAAI,GAC3BgE,EAAM5I,MAAMxB,QAAS+F,EAAAA,EAAAA,IAAOyC,EAAAA,IAA0ByX,SAClDza,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,QAAS,CAC1CjI,IAAK,EACL62C,SAAU7qC,EAAM5I,MAAM1B,WACtBiH,SAAUqD,EAAM5I,MAAMyC,WACtB/F,OAAO6O,EAAAA,EAAAA,IAAgB2xC,GACvB9+C,GAAIwK,EAAM5I,MAAM5B,GAChBI,KAAMoK,EAAM5I,MAAMxB,KAClB8gD,UAAW12C,EAAM5I,MAAMjB,UACvBL,MAAOkK,EAAM5I,MAAMtB,MACnB+uB,IAAK7kB,EAAM5I,MAAMwtB,SACjBG,IAAK/kB,EAAM5I,MAAM0tB,SACjB6xB,QAASx7C,EAAO,KAAOA,EAAO,GAAMgB,GAAiBw5C,EAAYx5C,IACjEE,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBq4C,EAAa1+C,OAAQ,IACzE,KAAM,GAAI1B,KACb4H,EAAAA,EAAAA,IAAoB,IAAI,GAC3BgE,EAAM5I,MAAMxB,QAAS+F,EAAAA,EAAAA,IAAOyC,EAAAA,IAA0BsX,QAClDta,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,QAAS,CAC1CjI,IAAK,EACLoC,QAAS4J,EAAM5I,MAAMhB,QACrBy0C,SAAU7qC,EAAM5I,MAAM1B,WACtBiH,SAAUqD,EAAM5I,MAAMyC,WACtB/F,OAAO6O,EAAAA,EAAAA,IAAgB2xC,GACvB9+C,GAAIwK,EAAM5I,MAAM5B,GAChBI,KAAMoK,EAAM5I,MAAMxB,KAClBO,UAAW6J,EAAM5I,MAAMjB,UACvBL,MAAOkK,EAAM5I,MAAMtB,MACnB6gD,QAASx7C,EAAO,KAAOA,EAAO,GAAMgB,GAAiBw5C,EAAYx5C,IACjEE,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBq4C,EAAa1+C,OAAQ,IACzE,KAAM,GAAIzB,KACb2H,EAAAA,EAAAA,IAAoB,IAAI,GAC3BgE,EAAM5I,MAAMxB,QAAS+F,EAAAA,EAAAA,IAAOyC,EAAAA,IAA0B0X,SAClD1a,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAC3CjI,IAAK,EACL62C,SAAU7qC,EAAM5I,MAAM1B,WACtBiH,SAAUqD,EAAM5I,MAAMyC,WACtB/F,OAAO6O,EAAAA,EAAAA,IAAgB2xC,GACvB9+C,GAAIwK,EAAM5I,MAAM5B,GAChBM,MAAOkK,EAAM5I,MAAMtB,MACnB6gD,QAASx7C,EAAO,KAAOA,EAAO,GAAMgB,GAAiBw5C,EAAYx5C,IACjEE,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBq4C,EAAa1+C,OAAQ,IACzE,CACAkK,EAAM5I,MAAM1B,aACR0F,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU1H,KAC7CyH,EAAAA,EAAAA,IAAoB,IAAI,GAC1BgE,EAAM5I,MAAM1B,YAEVsG,EAAAA,EAAAA,IAAoB,IAAI,KADvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAUzH,MAEhD4G,EAAAA,EAAAA,KAAW,IAAOa,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,MAAMC,EAAAA,EAAAA,IAAYO,EAAM5I,MAAMguB,eAAgB7jB,KACtFnG,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAAEjI,IAAKuN,IAAU7F,EAAAA,EAAAA,IAAiB6F,GAAS,MAC7F,MACgB,WAAnBvB,EAAM5I,MAAM5B,KACR4F,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,CAAExL,IAAK,IAAKyL,EAAAA,EAAAA,IAAY+1C,GAAe,CAACj0C,EAAQ1E,KACrFpB,EAAAA,EAAAA,IAAoB,SAAU,CAAEzH,IAAK6I,IAASnB,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa4F,IAAU,KAC3F,MACJvF,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,GAAI1H,KACP0H,EAAAA,EAAAA,IAAoB,IAAI,GAC3BgE,EAAM5I,MAAMxB,QAAS+F,EAAAA,EAAAA,IAAOyC,EAAAA,IAA0BwX,MAClDxa,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaM,EAAAA,EAAAA,IAAOi7C,EAAAA,IAAcC,EAAAA,EAAAA,IAAY,CAC3D7iD,IAAK,EACL47C,QAAS,WACTr6C,IAAKg/C,EACL/+C,GAAIwK,EAAM5I,MAAM5B,GAChBmhD,QAASx7C,EAAO,MAAQA,EAAO,IAAOgB,GAAiBw5C,EAAYx5C,IACnE26C,WAAY37C,EAAO,MAAQA,EAAO,IAAOgB,GAAiBq6C,EAAiBr6C,IAC3EE,QAASlB,EAAO,MAAQA,EAAO,IAAOgB,GAAiBq4C,EAAa1+C,OAAQ,GAC5EhC,MAAO,gBACPo/C,WAAYuB,EAAiB3+C,MAC7B,sBAAuBqF,EAAO,MAAQA,EAAO,IAAOgB,GAAkBs4C,EAAkB3+C,MAAQqG,IAC/Fy4C,EAAgB9+C,MAAO,CAAEihD,KAAM,kBAAoB,KAAM,GAAI,CAAC,KAAM,iBACvE/6C,EAAAA,EAAAA,IAAoB,IAAI,GAC3BgE,EAAM5I,MAAMxB,QAAS+F,EAAAA,EAAAA,IAAOyC,EAAAA,IAA0BC,YAClDjD,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,CAAExL,IAAK,GAAK,CACpC,gBAAnBgM,EAAM5I,MAAM5B,KACR4F,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,QAAS,CAC1CjI,IAAK,EACL62C,SAAU7qC,EAAM5I,MAAM1B,WACtBiH,SAAUqD,EAAM5I,MAAMyC,WACtB/F,OAAO6O,EAAAA,EAAAA,IAAgB2xC,GACvB9+C,GAAIwK,EAAM5I,MAAM5B,GAChBI,KAAMoK,EAAM5I,MAAMsH,YAAc,iBAAmB,OACnD5I,MAAOkK,EAAM5I,MAAMtB,MACnB+uB,IAAKkxB,EAAqB/1C,EAAM5I,MAAM4tB,QAAShlB,EAAM5I,MAAMsH,aAC3DqmB,IAAKgxB,EAAqB/1C,EAAM5I,MAAM6tB,QAASjlB,EAAM5I,MAAMsH,aAC3Di4C,QAASx7C,EAAO,MAAQA,EAAO,IAAOgB,GAAiBw5C,EAAYx5C,IACnEE,QAASlB,EAAO,MAAQA,EAAO,IAAOgB,GAAiBq4C,EAAa1+C,OAAQ,IAC3E,KAAM,GAAIrB,KACbuH,EAAAA,EAAAA,IAAoB,IAAI,GACR,gBAAnBgE,EAAM5I,MAAM5B,KACR4F,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,QAAS,CAC1CjI,IAAK,EACL62C,SAAU7qC,EAAM5I,MAAM1B,WACtBiH,SAAUqD,EAAM5I,MAAMyC,WACtB/F,OAAO6O,EAAAA,EAAAA,IAAgB2xC,GACvB9+C,GAAIwK,EAAM5I,MAAM5B,GAChBI,KAAM,OACNE,MAAOkK,EAAM5I,MAAMtB,MACnB+uB,IAAKyxB,IACLvxB,IAAKwxB,IACLI,QAASx7C,EAAO,MAAQA,EAAO,IAAOgB,GAAiBw5C,EAAYx5C,IACnEE,QAASlB,EAAO,MAAQA,EAAO,IAAOgB,GAAiBq4C,EAAa1+C,OAAQ,IAC3E,KAAM,GAAIpB,KACbsH,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,MACHA,EAAAA,EAAAA,IAAoB,IAAI,GAE1BgE,EAAM5I,MAAMxB,QAAS+F,EAAAA,EAAAA,IAAOyC,EAAAA,IAA0BuX,WACtD3V,EAAM5I,MAAMxB,QAAS+F,EAAAA,EAAAA,IAAOyC,EAAAA,IAA0B4X,eAEnD5a,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,CAAExL,IAAK,GAAK,EACxDyH,EAAAA,EAAAA,IAAoB,QAAS,CAC3BovC,SAAU7qC,EAAM5I,MAAM1B,WACtBiH,SAAUqD,EAAM5I,MAAMyC,WACtBrE,GAAIwK,EAAM5I,MAAM5B,GAChBI,KAAM,WACNigD,QAAS31C,QAAQF,EAAM5I,MAAMtB,OAC7B6gD,QAASx7C,EAAO,MAAQA,EAAO,IAAOgB,GAAiBw5C,EAAYx5C,IACnEE,QAASlB,EAAO,MAAQA,EAAO,IAAOgB,GAAiBq4C,EAAa1+C,OAAQ,GAC5EhC,MAAO,0BACN,KAAM,GAAIa,IACb8G,EAAAA,EAAAA,IAAoB,QAAS,CAC3B3H,MAAO,sCACP2iD,IAAKz2C,EAAM5I,MAAM5B,IAChB,EACDiG,EAAAA,EAAAA,IAAoB,OAAQ,CAC1ButC,WAAWrtC,EAAAA,EAAAA,IAAOs4C,EAAPt4C,CAAmBqE,EAAM5I,QACnC,KAAM,EAAG04C,GACX9vC,EAAM5I,MAAM1B,aACR0F,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQ8zC,EAAa,SACxD/zC,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,EAAG6zC,IACL,MACH7zC,EAAAA,EAAAA,IAAoB,IAAI,GAC3BtG,EAAWI,QACPsF,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQ+zC,EAAa,EACtDl0C,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,2BACP0I,MAAMb,EAAAA,EAAAA,IAAOtG,EAAAA,MACZ,KAAM,EAAG,CAAC,UACboG,EAAAA,EAAAA,IAAoB,OAAQw0C,GAAav0C,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,0DAA2D,OAEpIK,EAAAA,EAAAA,IAAoB,IAAI,GAC3By5C,EAAU3/C,QACNsF,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQi0C,EAAa,EACtDp0C,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,2BACP0I,MAAMb,EAAAA,EAAAA,IAAOtG,EAAAA,MACZ,KAAM,EAAG,CAAC,UACboG,EAAAA,EAAAA,IAAoB,OAAQ,CAC1B3H,MAAO,QACPk1C,WAAWrtC,EAAAA,EAAAA,IAAOw4C,EAAPx4C,CAA4BqE,EAAM5I,QAC5C,KAAM,EAAG+4C,OAEdn0C,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,IAEL,IE1ZA,MAAMitC,EAAc,EAEpB,O,wHCJA,MAAMA,EAAc,WAAM,OAE1B,IAAe,gB,6ICFf,MAAMA,EAAc,WAAM,OAE1B,IAAe,gB,6ICFf,MAAMA,EAAc,WAAM,OAE1B,IAAe,gB,6ICFf,MAAMA,EAAc,WAAM,OAE1B,IAAe,gB,+HCFf,MAAMp1C,EAAa,CAAC,aAKpB,OAA4Be,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,4BACRE,KAAAA,CAAMC,GCDR,MAAMgiD,GAA4B3yC,EAAAA,EAAAA,IAChC,6BDMF,MAAO,CAACnJ,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,UAAW,CACnDnI,MAAO,4BACPk1C,WAAWrtC,EAAAA,EAAAA,IAAOq7C,IACjB,KAAM,EAAGnjD,GAEd,IEnBA,MAAMo1C,EAAc,EAEpB,O,2ICFA,MAAMp1C,EAAa,CAAEC,MAAO,wBACtBC,EAAa,CAAED,MAAO,eAe5B,OAA4Bc,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,qBACRmL,MAAO,CACL4D,eAAgB,CAAC,EACjBkuB,WAAY,CAAC,EACbmlB,SAAU,CAAC,EACX3jB,kBAAmB,CAAC,GAEtBv+B,KAAAA,CAAMC,GAIR,MAAO,CAACkG,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOpI,EAAY,EAC3DiI,EAAAA,EAAAA,IAAa+3C,EAAAA,EAAU,CACrB//C,MAAO,OACPs9C,MAAO,QACN,CACDjxC,SAAS3E,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAoB,OAAQ1H,EAAY,CACrCmH,EAAK0I,eAAekF,kBAAoB5N,EAAKo4B,oBACzCl4B,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,CAAExL,IAAK,GAAK,EACxDoI,EAAAA,EAAAA,KAAiBV,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,YAAYT,EAAK42B,kBAAkB52B,EAAK+7C,0BAA2B,CACpHC,qBAAqBv7C,EAAAA,EAAAA,IAAOiqC,EAAAA,EAAPjqC,CAAmBT,EAAKo4B,kBAAmB,UAC7D,IACA,MACHt3B,EAAAA,EAAAA,IAAoB,IAAI,GAC1Bd,EAAK0I,eAAekF,kBAIlB9M,EAAAA,EAAAA,IAAoB,IAAI,KAHvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,CAAExL,IAAK,GAAK,EACxDoI,EAAAA,EAAAA,KAAiBV,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,YAAYT,EAAK42B,kBAAkB52B,EAAK+7C,gCAAiC,IACvH,UAIXr6C,EAAG,MAIT,ICtDA,MAAMqsC,EAAc,EAEpB,O,wICHSn1C,MAAM,gB,kCAAXmI,EAAAA,EAAAA,IAkFM,MAlFNpI,EAkFMsH,EAAA,KAAAA,EAAA,KApFVm3C,EAAAA,EAAAA,IAAA,44I,gBCCA,MAAMr4C,EAAS,CAAC,EAGVgvC,GAA2B,OAAgBhvC,EAAQ,CAAC,CAAC,SAASW,KAEpE,Q,uDCHA,MAAM/G,EAAa,CAAEC,MAAO,+EACtBC,EAAa,CACjBD,MAAO,+CACPwI,KAAM,2BACNmW,OAAQ,UAEJxe,EAAa,CACjBD,IAAK,EACLF,MAAO,gBAEHI,EAAa,CAAC,QACdC,EAAa,CACjBH,IAAK,EACLF,MAAO,gBAEHM,EAAa,CAAC,aACdC,EAAa,CACjBL,IAAK,EACLF,MAAO,gBAEHQ,EAAa,CAAC,aAiBpB,OAA4BM,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,4BACRE,KAAAA,CAAMC,GC8BR,MAAMmiD,GAAqB5hD,EAAAA,EAAAA,IAAmB,MACxC6hD,GAAoB7hD,EAAAA,EAAAA,IAAmB,MAEvC8hD,GAAuB1pC,EAAAA,EAAAA,IAC3B,wBAGI2pC,EAAgBD,GACjBpwC,EAAAA,EAAAA,IAAwB,sBACzBjR,EAEEuhD,GAAelzC,EAAAA,EAAAA,IAAyB,gBACxCmzC,EACJn+B,EAAAA,GAAwBhP,SAAShS,EAAAA,GAAYy5B,eAC5CkQ,EAAAA,EAAAA,IAAoBuV,GAEjBE,GAAsBpzC,EAAAA,EAAAA,IAAyB,iBAC/CqzC,IAA0B1V,EAAAA,EAAAA,IAAoByV,GAEpD,SAASE,EAAkBnlC,GACzBA,EAAMolC,iBACNT,EAAmBrhD,OAAOuvB,WAC5B,CAEA,SAASwyB,EAAiBrlC,GACxBA,EAAMolC,iBACNR,EAAkBthD,OAAOuvB,WAC3B,CD1BA,MAAO,CAACnqB,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQpI,EAAY,EAC5D4H,EAAAA,EAAAA,IAAoB,IAAK1H,GAAY2H,EAAAA,EAAAA,IAAiB,gBAAe,IAAI+C,MAAOI,0BAA2B,IAC1GlD,EAAAA,EAAAA,IAAO07C,KACHj8C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOhI,EAAY,CACpDkH,EAAO,KAAOA,EAAO,IAAKM,EAAAA,EAAAA,IAAoB,OAAQ,CAAE3H,MAAO,QAAU,KAAM,KAC/E2H,EAAAA,EAAAA,IAAoB,IAAK,CACvB3H,MAAO,+CACPwI,MAAMX,EAAAA,EAAAA,IAAO27C,GACb7kC,OAAQ,WACP/W,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,0CAA2C,EAAGzH,OAEjF8H,EAAAA,EAAAA,IAAoB,IAAI,KAEvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO9H,EAAY,CACpDgH,EAAO,KAAOA,EAAO,IAAKM,EAAAA,EAAAA,IAAoB,OAAQ,CAAE3H,MAAO,QAAU,KAAM,KAC/E2H,EAAAA,EAAAA,IAAoB,IAAK,CACvB3H,MAAO,+CACPwI,KAAM,GACND,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBw7C,EAAkBx7C,MACtET,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,8CAA+C,OAGtFG,EAAAA,EAAAA,IAAa6zC,EAAAA,EAAiB,CAC5BC,QAAS,qBACTr6C,IAAK4hD,GACJ,CACDh3C,SAAS3E,EAAAA,EAAAA,KAAS,IAAM,CACpBk8C,GAEE17C,EAAAA,EAAAA,IAAoB,IAAI,KADvBZ,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAay8C,EAA8B,CAAE9jD,IAAK,KAErE0jD,IACKt8C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,UAAW,CAC5CjI,IAAK,EACLg1C,WAAWrtC,EAAAA,EAAAA,IAAO87C,GAClB3jD,MAAO,0CACN,KAAM,EAAGM,KACZ4H,EAAAA,EAAAA,IAAoB,IAAI,MAE9BY,EAAG,GACF,MACFjB,EAAAA,EAAAA,IAAO47C,KAAiB57C,EAAAA,EAAAA,IAAO67C,KAC3Bp8C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO5H,EAAY,CACpD8G,EAAO,KAAOA,EAAO,IAAKM,EAAAA,EAAAA,IAAoB,OAAQ,CAAE3H,MAAO,QAAU,KAAM,KAC/E2H,EAAAA,EAAAA,IAAoB,IAAK,CACvB3H,MAAO,+CACPwI,KAAM,GACND,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiB07C,EAAiB17C,MACrET,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,6CAA8C,OAEjFK,EAAAA,EAAAA,IAAoB,IAAI,IAC5BF,EAAAA,EAAAA,IAAa6zC,EAAAA,EAAiB,CAC5BC,QAAS,oBACTr6C,IAAK6hD,GACJ,CACDj3C,SAAS3E,EAAAA,EAAAA,KAAS,IAAM,EACrBG,EAAAA,EAAAA,IAAO47C,KAAiB57C,EAAAA,EAAAA,IAAO67C,KAC3Bp8C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,UAAW,CAC5CjI,IAAK,EACLg1C,WAAWrtC,EAAAA,EAAAA,IAAO47C,GAClBzjD,MAAO,0CACN,KAAM,EAAGQ,KACZ0H,EAAAA,EAAAA,IAAoB,IAAI,MAE9BY,EAAG,GACF,OAGP,IE1IA,MAAM,EAAc,EAEpB,Q,WCFA,MAAM/I,EAAa,CAAEC,MAAO,mDAK5B,OAA4Bc,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,iBACRE,KAAAA,CAAMC,GAGR,MAAO,CAACkG,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAUpI,EAAY,EAC9DiI,EAAAA,EAAAA,IAAa4D,EAAAA,EAAoB,CAC/B5L,MAAO,cACP,aAAc,oBAEhBgI,EAAAA,EAAAA,IAAai8C,KAGjB,ICnBA,MAAM,EAAc,EAEpB,O,0ICFA,MAAMlkD,EAAa,CACjBG,IAAK,EACLF,MAAO,uBAEHC,EAAa,CAAC,aACdE,EAAa,CACjBD,IAAK,EACLF,MAAO,SAEHI,EAAa,CAAEJ,MAAO,0BACtBK,EAAa,CAAEL,MAAO,8BACtBM,EAAa,CAAEN,MAAO,8BACtBO,EAAa,CAAEP,MAAO,8BAW5B,OAA4Bc,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,4BACRmL,MAAO,CACLg4C,UAAW,CAAE73C,QAAS,YAExBpL,KAAAA,CAAMC,GCGR,MAAMijD,GAAc5zC,EAAAA,EAAAA,IAAyB,sBDG7C,MAAO,CAACnJ,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,KAAM,EACxD7D,EAAAA,EAAAA,IAAOs8C,KACH78C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOpI,EAAY,EACpD4H,EAAAA,EAAAA,IAAoB,MAAO,CACzButC,WAAWrtC,EAAAA,EAAAA,IAAOs8C,GAClBnkD,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,sBAAuB,CAAE,kBAAsC,mBAAnBzH,EAAK88C,cACxE,KAAM,GAAIjkD,OAEfiI,EAAAA,EAAAA,IAAoB,IAAI,IAC1BL,EAAAA,EAAAA,IAAOs8C,IAQLj8C,EAAAA,EAAAA,IAAoB,IAAI,KAPvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOhI,EAAY,EACpDwH,EAAAA,EAAAA,IAAoB,KAAMvH,EAAY,EACpCuH,EAAAA,EAAAA,IAAoB,KAAMtH,GAAYuH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,kCAAmC,IACvGF,EAAAA,EAAAA,IAAoB,KAAMrH,GAAYsH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,kCAAmC,IACvGF,EAAAA,EAAAA,IAAoB,KAAMpH,GAAYqH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,kCAAmC,SAI9G,IAEL,IEvDA,MAAMstC,EAAc,EAEpB,Q,WCFA,MAAMp1C,EAAa,CAAEC,MAAO,sBACtBC,EAAa,CAAC,QACdE,EAAa,CAAC,YACdC,EAAa,CACjBF,IAAK,EACLF,MAAO,+EAEHK,EAAa,CACjBH,IAAK,EACLF,MAAO,sBAEHM,EAAa,CAAEN,MAAO,SAa5B,OAA4Bc,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,qBACRmL,MAAO,CACLg4C,UAAW,CAAE73C,QAAS,YAExBpL,KAAAA,CAAMC,GCQR,MAAMkjD,GAAuBvqC,EAAAA,EAAAA,IAC3B,kBAEF,IAAIwqC,GAAgB5iD,EAAAA,EAAAA,IAAI2iD,GAExB,SAASE,IACFF,IACHC,EAAcriD,OAASqiD,EAAcriD,MAEzC,CDmBA,OCjBAkE,EAAAA,EAAAA,KAAU,KACRsJ,EAAAA,EAAAA,IAAwB,CACtBmE,WAAYA,EAAGhG,cACbA,EAAQ,CACN42C,mBAAoB,CAClBF,cAAeA,EAAcriD,QAE/B,EAEJyN,WAAYA,EAAG9B,UAAS+B,YACtB,MAAM80C,EAAY90C,EAAM,sBAEpB80C,IACFH,EAAgBG,EAAU,kBAG5B72C,GAAS,MDCR,CAACvG,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOpI,EAAY,EAC3D4H,EAAAA,EAAAA,IAAoB,UAAW,CAC7BosB,MAAMlsB,EAAAA,EAAAA,IAAOw8C,GACbI,SAAUH,EACVtkD,OAAO6O,EAAAA,EAAAA,IAAgB,CAAE,kBAAsC,mBAAnBzH,EAAK88C,aAChD,EACDv8C,EAAAA,EAAAA,IAAoB,UAAW,CAC7B3H,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,eAAgB,CAAE,uBAAuBhH,EAAAA,EAAAA,IAAOu8C,MACxEM,UAAU78C,EAAAA,EAAAA,IAAOu8C,IAAyB,EAAI,GAC7C,EACCv8C,EAAAA,EAAAA,IAAOu8C,IAELl8C,EAAAA,EAAAA,IAAoB,IAAI,KADvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,IAAK/H,GAAYwH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,kCAAmC,KAExHA,EAAAA,EAAAA,IAAOu8C,KACH98C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,IAAK9H,GAAYuH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,kCAAmC,KACrHK,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,GAAI/H,IACPwH,EAAAA,EAAAA,IAAoB,UAAWrH,EAAY,EACzC0H,EAAAA,EAAAA,IAAa28C,EAA2B,CAAE,aAAcv9C,EAAK88C,WAAa,KAAM,EAAG,CAAC,kBAErF,GAAIjkD,KAGX,I,WEtFA,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,O,uMCLA,MAAMF,EAAa,CAAEC,MAAO,6EACtBC,EAAa,CAAED,MAAO,kCACtBG,EAAa,CAAED,IAAK,GACpBE,EAAa,CAAEF,IAAK,GACpBG,EAAa,CACjBH,IAAK,EACLF,MAAO,qCAEHM,EAAa,CAAEN,MAAO,WACtBO,EAAa,CACjBL,IAAK,EACLF,MAAO,YAEHQ,EAAa,CAAC,OACdC,EAAa,CAAC,OACdC,EAAc,CAClBR,IAAK,EACLF,MAAO,sCAEHW,EAAc,CAClBT,IAAK,EACLF,MAAO,4FAEHY,EAAc,CAAC,OACfC,EAAc,CAAC,OAkBrB,OAA4BC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,oBACRE,KAAAA,CAAMC,GC0BR,MAAM+d,EAAaC,EAAAA,EAEb0lC,GAAmCzxC,EAAAA,EAAAA,IACvC,yBAEEA,EAAAA,EAAAA,IAAwB,yBAAyBiI,MAAM,KAAK,GAC5D,KAEEypC,GAA6B1xC,EAAAA,EAAAA,IACjC,4BAEEqF,EAAAA,EAAAA,KAAiBrF,EAAAA,EAAAA,IAAwB,4BAA8B,IACvE,KAEE2xC,GAAgBjrC,EAAAA,EAAAA,IAA+B,iBAC/CkrC,EACJD,GACAF,GACAC,EAEI1uC,EACJ8I,EAAWqvB,sBAAsBA,sBAAsB,GAAG0W,iBACtD5uC,EACJ6I,EAAWqvB,sBAAsBA,sBAAsB,GAAG2W,iBAEtDhzC,EAAWgN,EAAWqvB,sBAAsBnvB,OAAOzN,YAAY7L,MAClEq/C,GAAqBA,EAAKxjD,KAAOyU,EAAWjL,aAEzCgH,EAAW+M,EAAWqvB,sBAAsBnvB,OAAOzN,YAAY7L,MAClEq/C,GAAqBA,EAAKxjD,KAAO0U,EAAWlL,aAGzCi6C,EAAmB/4C,QACvB6S,EAAWqvB,sBAAsBA,sBAAsB,GAAG8W,eAGtDC,EAAgB,IAAI16C,KACxBsU,EAAWqvB,sBAAsBA,sBAAsB,GAAG8W,eDrB5D,MAAO,CAACh+C,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,KAAM,EACzD/D,EAAAA,EAAAA,IAAoB,UAAW5H,EAAY,EACzC4H,EAAAA,EAAAA,IAAoB,OAAQ1H,EAAY,EACrC4H,EAAAA,EAAAA,IAAOsO,KAAetO,EAAAA,EAAAA,IAAOoK,KACzB3K,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,IAAKhI,GAAYyH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAO2e,EAAAA,GAAP3e,EAAwBA,EAAAA,EAAAA,IAAOoK,GAAW,OAAQ,eAAgB,KACvI/J,EAAAA,EAAAA,IAAoB,IAAI,IAC3BL,EAAAA,EAAAA,IAAOuO,KAAevO,EAAAA,EAAAA,IAAOqK,KACzB5K,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,IAAK/H,GAAYwH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAO2e,EAAAA,GAAP3e,EAAwBA,EAAAA,EAAAA,IAAOqK,GAAW,OAAQ,eAAgB,KACvIhK,EAAAA,EAAAA,IAAoB,IAAI,MAE7BL,EAAAA,EAAAA,IAAOs9C,KACH79C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQ9H,EAAY,EACrD2H,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,mEACP0I,MAAMb,EAAAA,EAAAA,IAAOy9C,EAAAA,MACZ,KAAM,EAAG,CAAC,UACb39C,EAAAA,EAAAA,IAAoB,OAAQrH,GAAYsH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOiqC,EAAAA,EAAPjqC,EAAmBA,EAAAA,EAAAA,IAAOw9C,GAAgB,SAAU,OAE/Gn9C,EAAAA,EAAAA,IAAoB,IAAI,MAE7BL,EAAAA,EAAAA,IAAOk9C,KACHz9C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO5H,EAAY,EACnDsH,EAAAA,EAAAA,IAAO+8C,MAAsC/8C,EAAAA,EAAAA,IAAOg9C,KAChDv9C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CACxCjI,IAAK,EACLiP,IACRkK,EAAAA,MAAAA,CAAQ,MAAwCxR,EAAAA,EAAAA,IAAO+8C,MAE/CW,IAAK,kCACJ,KAAM,EAAG/kD,KACZ0H,EAAAA,EAAAA,IAAoB,IAAI,IAC3BL,EAAAA,EAAAA,IAAOg9C,MAAgCh9C,EAAAA,EAAAA,IAAO+8C,KAC1Ct9C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CACxCjI,IAAK,EACLiP,KAAKtH,EAAAA,EAAAA,IAAOg9C,GACZ7kD,MAAO,SACPulD,IAAK,kCACJ,KAAM,EAAG9kD,KACZyH,EAAAA,EAAAA,IAAoB,IAAI,KAE9BL,EAAAA,EAAAA,IAAOi9C,KACNj9C,EAAAA,EAAAA,IAAOg9C,KACPh9C,EAAAA,EAAAA,IAAO+8C,IAGF18C,EAAAA,EAAAA,IAAoB,IAAI,KADvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOzH,KAE7CmH,EAAAA,EAAAA,IAAOi9C,KACHx9C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOxH,EAAa,EACpDkH,EAAAA,EAAAA,IAAOoK,KAAapK,EAAAA,EAAAA,IAAOoK,GAAUuzC,qBACjCl+C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CACxCjI,IAAK,EACLF,MAAO,sBACPmP,KAAKtH,EAAAA,EAAAA,IAAO2Q,EAAAA,GAAP3Q,EAAyBA,EAAAA,EAAAA,IAAOoK,GAAUuzC,mBAAmBt6C,YAClEq6C,IAAK,kBACJ,KAAM,EAAG3kD,KACZsH,EAAAA,EAAAA,IAAoB,IAAI,IAC3BL,EAAAA,EAAAA,IAAOqK,KAAarK,EAAAA,EAAAA,IAAOqK,GAAUszC,qBACjCl+C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CACxCjI,IAAK,EACLF,MAAO,sBACPmP,KAAKtH,EAAAA,EAAAA,IAAO2Q,EAAAA,GAAP3Q,EAAyBA,EAAAA,EAAAA,IAAOqK,GAAUszC,mBAAmBt6C,YAClEq6C,IAAK,kBACJ,KAAM,EAAG1kD,KACZqH,EAAAA,EAAAA,IAAoB,IAAI,OAE9BA,EAAAA,EAAAA,IAAoB,IAAI,OAE9BA,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,IAEL,IE7JA,MAAMitC,EAAc,EAEpB,O,uHCFA,MAAMA,EAAc,mCAAM,KAAN,EAAM,EAE1B,IAAe,0C,gKCFf,MAAMp1C,EAAa,CACjBG,IAAK,EACLF,MAAO,6DAEHC,EAAa,CAAC,QACdE,EAAa,CAAC,MAAO,OACrBC,EAAa,CAAC,MAAO,OAO3B,OAA4BU,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,cACRE,KAAAA,CAAMC,GCOR,MAAMukD,GAAsBjtC,EAAAA,EAAAA,KAC1BrF,EAAAA,EAAAA,IAAwB,qBAGpBuyC,GAAyBvyC,EAAAA,EAAAA,IAC7B,kBDFF,MAAO,CAAC/L,EAAUC,KACRQ,EAAAA,EAAAA,IAAO49C,KACVn+C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOpI,EAAY,EACnD8H,EAAAA,EAAAA,IAAO69C,KACHp+C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,IAAK,CACtCjI,IAAK,EACLsI,MAAMX,EAAAA,EAAAA,IAAO69C,GACb/mC,OAAQ,UACP,EACDhX,EAAAA,EAAAA,IAAoB,MAAO,CACzB3H,MAAO,4BACPmP,KAAKtH,EAAAA,EAAAA,IAAO49C,GACZF,KAAK19C,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,2BACjB,KAAM,EAAG1H,IACX,EAAGF,KACNiI,EAAAA,EAAAA,IAAoB,IAAI,IAC1BL,EAAAA,EAAAA,IAAO69C,IAOLx9C,EAAAA,EAAAA,IAAoB,IAAI,KANvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CACxCjI,IAAK,EACLF,MAAO,4BACPmP,KAAKtH,EAAAA,EAAAA,IAAO49C,GACZF,KAAK19C,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,2BACjB,KAAM,EAAGzH,QAGlB8H,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,IEpDA,MAAMitC,EAAc,EAEpB,Q,4CCFA,MAAMp1C,EAAa,CACjBG,IAAK,EACLF,MAAO,6DAEHC,EAAa,CAAED,MAAO,6CACtBG,EAAa,CAAEH,MAAO,4BAU5B,OAA4Bc,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,gBACRE,KAAAA,CAAMC,GCOR,MAAMykD,GACJ9rC,EAAAA,EAAAA,IAA+B,oBACP,YAAxBtV,EAAAA,IAAaQ,ODHf,MAAO,CAACqC,EAAUC,KACRQ,EAAAA,EAAAA,IAAO89C,KACVr+C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOpI,EAAY,EACpD4H,EAAAA,EAAAA,IAAoB,OAAQ1H,EAAY,EACtC0H,EAAAA,EAAAA,IAAoB,SAAU,CAC5BY,QAASlB,EAAO,KAAOA,EAAO,GAAK,KAAMQ,EAAAA,EAAAA,IAAOwf,EAAAA,GAAPxf,IACzC7H,MAAO,wMACN,EACDgI,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,qCACP0I,MAAMb,EAAAA,EAAAA,IAAOiF,EAAAA,MACZ,KAAM,EAAG,CAAC,UACbxE,EAAAA,EAAAA,IAAiB,KAAMV,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,6BAA8B,QAGvFF,EAAAA,EAAAA,IAAoB,OAAQxH,GAAYyH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,wDAAyD,OAEjIK,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,I,WEvCA,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,Q,6FCDM,SAAU09C,IACd,OAAO1mC,EAAAA,EAAY2mC,iBAAiBA,iBAAiBr8C,KAAKs8C,IACxD,MAAMC,EAAQ7mC,EAAAA,EAAY2mC,iBAAiB1mC,OAAO6mC,OAAOngD,MACtDkgD,GAAUA,EAAMrkD,KAAOokD,EAAGtuC,MAAMuuC,QAG7BE,EAAyB,IACzBF,EACJr3C,MAAM8X,EAAAA,EAAAA,IAAgBu/B,EAAO,OAAQ,SACrCztC,aAAakO,EAAAA,EAAAA,IAAgBu/B,EAAO,cAAe,UAGrD,MAAO,CACLrkD,GAAIokD,EAAGpkD,GACPwkD,gBAAiBJ,EAAGI,gBACpBC,YAAaL,EAAGK,YAChBC,SAAUN,EAAGM,SACbtc,SAAUgc,EAAGhc,SACbxjB,WAAYw/B,EAAGx/B,WACf+/B,iBAAkBP,EAAGO,iBACrB/hD,gBAAiBwhD,EAAGxhD,gBACpBgiD,QAASR,EAAGQ,QACZP,MAAOE,EACR,GAEL,CAEM,SAAUM,EACdC,GAEA,OAAOA,EAAgBT,OAAO9sC,gBAC1BT,EAAAA,EAAAA,IAAiB2yB,OAAOqb,EAAgBT,MAAM9sC,iBAC9CI,EAAQ,MACd,C,0BCrCA,MAAMtZ,EAAa,CACjBG,IAAK,EACLF,MAAO,6BAEHC,EAAa,CAAED,MAAO,SACtBG,EAAa,CACjBD,IAAK,EACLF,MAAO,6CAEHI,EAAa,CAAC,WACdC,EAAa,CAAEL,MAAO,kGACtBM,EAAa,CAAEN,MAAO,mBACtBO,EAAa,CAAC,aACdC,EAAa,CAAER,MAAO,QACtBS,EAAa,CAAC,aACdC,EAAc,CAAC,WACfC,EAAc,CAAC,aACfC,EAAc,CAClBV,IAAK,EACLF,MAAO,6CAEHa,EAAc,CAAEb,MAAO,UACvB+7C,EAAc,CAAE/7C,MAAO,oEACvBg8C,EAAc,CAAEh8C,MAAO,kDACvBi8C,EAAc,CAAEj8C,MAAO,2CACvBk8C,EAAc,CAAC,aACfC,EAAc,CAAEn8C,MAAO,kDACvBo8C,GAAc,CAAC,WACfC,GAAc,CAClBn8C,IAAK,EACLF,MAAO,4JAEHs8C,GAAc,CAAC,aACfC,GAAc,CAAC,aACfC,GAAc,CAAEx8C,MAAO,8EACvBy8C,GAAc,CAAC,OCmLfgK,GAAkC,IA6BlC/M,GAAkB,ED5KxB,QAA4B54C,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,iBACRE,KAAAA,CAAMC,GC+IR,MAAMwlD,GAAoBjlD,EAAAA,EAAAA,IACxB,MAEIklD,GAAgBllD,EAAAA,EAAAA,IAAwB,IACxCmlD,GAA6BnlD,EAAAA,EAAAA,IAA4B,MACzDolD,GAAoCplD,EAAAA,EAAAA,IAA4B,MAChEqlD,GAA6BrlD,EAAAA,EAAAA,IAA8B,MAE3D44C,EAAU,CAACC,EAAAA,GAAYC,EAAAA,GAAUC,EAAAA,IAEjCV,EAAW,CACfC,MAAO,MAIT,IAAIgN,GAAoBtlD,EAAAA,EAAAA,IACrBmkD,IAAuDp8C,KAAKs8C,IACpD,CACLU,gBAAiBV,EACjBkB,qBAAqB,EACrBC,yBAAyB,OAK3BC,GAA0BzlD,EAAAA,EAAAA,IAAsBslD,EAAkB/kD,MAAM,IAG5E,MAAM63C,EAAUkN,EAAkB/kD,MAAMwM,QAA4B,EAAlBkrC,GAE5CM,EAAgC,CACpCC,WAAYJ,EACZK,eAAgBL,EAChBM,aAAc,SAAUpxC,EAAeqxC,GACrC,MAAO,gBAAkBA,EAAlB,WACT,GAGIK,EAAa,CACjBC,OAAQ,iBACRC,OAAQ,kBAGJwM,GAA2BttC,EAAAA,EAAAA,IAC/B,4BAEIutC,GAAoB3lD,EAAAA,EAAAA,IAAI0lD,GAExBE,GAAkBxtC,EAAAA,EAAAA,IAA+B,mBAEvD,SAASytC,IACPF,EAAkBplD,OAASolD,EAAkBplD,KAC/C,CAEA,SAAS+4C,EAAcr8B,GACrBwoC,EAAwBllD,MAAQ+kD,EAAkB/kD,MAAM0c,EAAMs8B,UAChE,CAIA,SAASuM,EACPC,GAEKA,IAGLA,EAAiBR,qBAAsB,EACzC,CAEA,SAAS/L,EAAiBuL,GACxBG,EAAc3kD,MAAQukD,EAA2BC,GACjDE,EAAkB1kD,OAAOuvB,WAC3B,CA4CA,SAASk2B,IACP,OAAOV,EAAkB/kD,MAAMwM,QAAU,CAC3C,CAEA,SAASk5C,IAGHb,GAAmC7kD,OACnC4kD,GAA4B5kD,QAExBklD,EAAwBllD,OAAOwkD,gBAAgBT,OAAOztC,cACxDsuC,EAA2B5kD,MAAMkzC,UAC/BgS,EAAwBllD,OAAOwkD,gBAAgBT,MAAMztC,aAGzD4uC,EAAwBllD,MAAMilD,wBAC5BJ,GAAmC7kD,MAAM2lD,aACzCd,GAAmC7kD,MAAM4lD,aAGjD,CD5IA,OC8DAh5C,EAAAA,EAAAA,IAAMs4C,EAAyBQ,IAgB/BxhD,EAAAA,EAAAA,KAAU,KACR,MAAM2hD,EAAyBhhD,aAAY,MAEtC4gD,MACAX,EAA2B9kD,OAC5B8kD,EAA2B9kD,MAAMwM,OAAS,EAE1Ck5C,IAEAZ,EAA2B9kD,MAAMkI,SAC/B,CAACirB,EAAqBpsB,KACpBg+C,EAAkB/kD,MAAM+G,GAAOk+C,wBAC7B9xB,GAAIwyB,aAAexyB,GAAIyyB,aAErBzyB,EAAGwyB,aAAe,GACpB5gD,cAAc8gD,E,MAKrBpB,KAEHj3C,EAAAA,EAAAA,IAAwB,CACtBmE,WAAYA,EAAGhG,cACbA,EAAQ,CACNm6C,eAAgB,CACdV,kBAAmBA,EAAkBplD,QAEvC,EAEJyN,WAAYA,EAAG9B,UAAS+B,YACtB,MAAM80C,EAAY90C,EAAM,kBAEpB80C,IACF4C,EAAkBplD,MAAQwiD,EAAU,sBAGtC72C,GAAS,GAEX,IDrHG,CAACvG,EAAUC,KACRQ,EAAAA,EAAAA,IAAOw/C,KAAoBx/C,EAAAA,EAAAA,IAAOk/C,GAAmBv4C,OAAS,IACjElH,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOpI,EAAY,EACpD4H,EAAAA,EAAAA,IAAoB,MAAO,KAAM,EAC/BA,EAAAA,EAAAA,IAAoB,SAAU,CAC5B3H,MAAO,2FACPuI,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBi/C,MACpD,EACD3/C,EAAAA,EAAAA,IAAoB,OAAQ1H,GAAY2H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,+BAAgC,CACpG6e,OAAO7e,EAAAA,EAAAA,IAAOk/C,GAAmBv4C,UAC9B,IACLxG,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,2DACP0I,MAAMb,EAAAA,EAAAA,IAAOkgD,EAAAA,MACZ,KAAM,EAAG,CAAC,cAGjBpgD,EAAAA,EAAAA,IAAoB,MAAO,KAAM,EAC9BE,EAAAA,EAAAA,IAAOw/C,IAAoBD,EAAkBplD,QACzCsF,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,CAAExL,IAAK,GAAK,CACvDunD,MACIngD,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOhI,EAAY,GACnDmH,EAAAA,EAAAA,KAAW,IAAOa,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,MAAMC,EAAAA,EAAAA,KAAY9D,EAAAA,EAAAA,IAAOk/C,IAAoB,CAACS,EAAkB7L,MACxGr0C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CAC/CjI,IAAKy7C,EACL37C,MAAO,+DACN,EACD2H,EAAAA,EAAAA,IAAoB,MAAO,CACzBY,QAAUF,GAAiB4yC,EAAiBuM,EAAiBhB,iBAC7DxmD,MAAO,yHACP8O,OAAOC,EAAAA,EAAAA,IAAgB,0BAAyBlH,EAAAA,EAAAA,IAAO0+C,EAAP1+C,CAC5D2/C,EAAiBhB,uBAEJ,KAAM,GAAIpmD,IACbuH,EAAAA,EAAAA,IAAoB,UAAWtH,EAAY,EACzCsH,EAAAA,EAAAA,IAAoB,KAAMrH,EAAY,EACpCqH,EAAAA,EAAAA,IAAoB,OAAQ,CAC1ButC,UAAWsS,EAAiBhB,gBAAgBT,OAAOr3C,MAClD,KAAM,EAAGnO,GACZ8G,EAAO,KAAOA,EAAO,IAAKM,EAAAA,EAAAA,IAAoB,OAAQ,CAAE3H,MAAO,QAAU,KAAM,KAC/E2H,EAAAA,EAAAA,IAAoB,OAAQ,MAAMC,EAAAA,EAAAA,IAAiB4/C,EAAiBhB,gBAAgBH,kBAAmB,MAEzG1+C,EAAAA,EAAAA,IAAoB,MAAOnH,EAAY,CACnCgnD,EAAiBR,qBAyBf9+C,EAAAA,EAAAA,IAAoB,IAAI,KAxBvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQ,CACzCjI,IAAK,EACL8nD,SAAS,EACTlM,QAAS,6BACTr6C,IAAKqlD,EACL9mD,MAAO,gIACN,EACD2H,EAAAA,EAAAA,IAAoB,OAAQ,CAC1ButC,UAChBsS,EAAiBhB,gBAAgBT,OAAOztC,aAEvB,KAAM,EAAG7X,GAE1B+mD,EAAiBP,0BAChBO,EAAiBR,qBAClBQ,EAAiBhB,gBAAgBT,OAAOztC,cAErBhR,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAC3CjI,IAAK,EACLqI,QAAUF,GAAiBk/C,EAAuBC,GAClDxnD,MAAO,kJACN4H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,uBAAwB,EAAGnH,KAC5DwH,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,MAENs/C,EAAiBR,sBACb1/C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQ,CACzCjI,IAAK,EACLF,MAAO,6GACPk1C,UAAWsS,EAAiBhB,gBAAgBT,OAAOztC,aAClD,KAAM,EAAG3X,KACZuH,EAAAA,EAAAA,IAAoB,IAAI,YAIhC,UAENA,EAAAA,EAAAA,IAAoB,IAAI,GAC1Bu/C,KAiHEv/C,EAAAA,EAAAA,IAAoB,IAAI,KAhHvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOvH,EAAa,EACrD+G,EAAAA,EAAAA,IAAoB,MAAO9G,EAAa,EACtC8G,EAAAA,EAAAA,IAAoB,MAAOo0C,EAAa,EACtCp0C,EAAAA,EAAAA,IAAoB,SAAUq0C,EAAa,EACzCh0C,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,gDACP0I,MAAMb,EAAAA,EAAAA,IAAOogD,EAAAA,MACZ,KAAM,EAAG,CAAC,YAEftgD,EAAAA,EAAAA,IAAoB,OAAQs0C,EAAa,EACvCt0C,EAAAA,EAAAA,IAAoB,OAAQ,CAC1ButC,WACVrtC,EAAAA,EAAAA,IAAOq/C,IAA0BV,gBAAgBT,OAAOr3C,MAE7C,KAAM,EAAGwtC,GACZ70C,EAAO,KAAOA,EAAO,IAAKM,EAAAA,EAAAA,IAAoB,OAAQ,CAAE3H,MAAO,QAAU,KAAM,KAC/E2H,EAAAA,EAAAA,IAAoB,OAAQ,MAAMC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOq/C,IAA0BV,gBAAgBH,kBAAmB,MAEzH1+C,EAAAA,EAAAA,IAAoB,SAAUw0C,EAAa,EACzCn0C,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,iDACP0I,MAAMb,EAAAA,EAAAA,IAAOkgD,EAAAA,MACZ,KAAM,EAAG,CAAC,gBAInB//C,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOqzC,EAAAA,IAAS,CAC3Bb,QAASA,EACTc,KAAMtB,EACNuB,QAASvB,EACTG,WAAYA,EACZF,SAAUA,EACVW,WAAYA,EACZz6C,MAAO,kBACPq7C,gBAAgB,EAChB,uBAAwB,EACxB,eAAe,EACf,gBAAiB,GACjB,kBAAmB3B,GACnBgC,oBAAqBr0C,EAAO,KAAOA,EAAO,GAAMgB,GAAiB0yC,EAAc1yC,KAC9E,CACDgE,SAAS3E,EAAAA,EAAAA,KAAS,IAAM,GACrBJ,EAAAA,EAAAA,KAAW,IAAOa,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,MAAMC,EAAAA,EAAAA,KAAY9D,EAAAA,EAAAA,IAAOk/C,IAAoB,CAACS,EAAkB7L,MACxGr0C,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaM,EAAAA,EAAAA,IAAO+zC,EAAAA,IAAc,CAAE17C,IAAKy7C,GAAQ,CACrEtvC,SAAS3E,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAoB,MAAO,CACzBY,QAAUF,GAAiB4yC,EAAiBuM,EAAiBhB,iBAC7DxmD,MAAO,oCACN,EAEf6H,EAAAA,EAAAA,IAAOq/C,IAA0BV,gBAAgB9kD,KACjD8lD,EAAiBhB,gBAAgB9kD,KAEd4F,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQk0C,GAAa,EACtDr0C,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,cACP0I,MAAMb,EAAAA,EAAAA,IAAOqgD,EAAAA,MACZ,KAAM,EAAG,CAAC,UACb5/C,EAAAA,EAAAA,IAAiB,KAAMV,EAAAA,EAAAA,IAAiB4/C,EAAiBhB,gBAAgBH,kBAAmB,OAE9Fn+C,EAAAA,EAAAA,IAAoB,IAAI,IAC5BP,EAAAA,EAAAA,IAAoB,MAAO,CACzB3H,MAAO,6FACP8O,OAAOC,EAAAA,EAAAA,IAAgB,0BAAyBlH,EAAAA,EAAAA,IAAO0+C,EAAP1+C,CAChE2/C,EAAiBhB,uBAEA,KAAM,IACR,EAAGpK,OAERtzC,EAAG,GACF,SACD,SAENA,EAAG,GACF,EAAG,CAAC,YACLjB,EAAAA,EAAAA,IAAOq/C,GAAyBF,qBA0B9B9+C,EAAAA,EAAAA,IAAoB,IAAI,KAzBvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQ,CACzCjI,IAAK,EACL47C,QAAS,oCACTr6C,IAAKolD,EACL7mD,MAAO,4IACN,EACD2H,EAAAA,EAAAA,IAAoB,OAAQ,CAC1Bm0C,QAAS,6BACTr6C,IAAKmlD,EACL1R,WACdrtC,EAAAA,EAAAA,IAAOq/C,IAA0BV,gBAAgBT,OAAOztC,aAEzC,KAAM,EAAGgkC,KAExBz0C,EAAAA,EAAAA,IAAOq/C,GAAyBD,2BAC/Bp/C,EAAAA,EAAAA,IAAOq/C,GAAyBF,sBACjCn/C,EAAAA,EAAAA,IAAOq/C,IAA0BV,gBAAgBT,OAAOztC,cAEvChR,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,SAAU,CAC3CjI,IAAK,EACLqI,QAASlB,EAAO,KAAOA,EAAO,GAAMgB,GAAiBk/C,GAAuB1/C,EAAAA,EAAAA,IAAOq/C,KACnFlnD,MAAO,kJACN4H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,uBAAwB,KACzDK,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,OAENL,EAAAA,EAAAA,IAAOq/C,GAAyBF,sBAC5B1/C,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQ,CACzCjI,IAAK,EACLF,MAAO,yHACPk1C,WACdrtC,EAAAA,EAAAA,IAAOq/C,IAA0BV,gBAAgBT,OAAOztC,aAEzC,KAAM,EAAGikC,MACZr0C,EAAAA,EAAAA,IAAoB,IAAI,OAGlCF,EAAAA,EAAAA,IAAa6zC,EAAAA,EAAiB,CAC5BC,QAAS,oBACTr6C,IAAKilD,GACJ,CACDr6C,SAAS3E,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAoB,MAAO60C,GAAa,EACtC70C,EAAAA,EAAAA,IAAoB,MAAO,CACzB3H,MAAO,+BACPmP,IAAKw3C,EAAc3kD,OAClB,KAAM,EAAGy6C,SAGhB3zC,EAAG,GACF,MACF,MACHZ,EAAAA,EAAAA,IAAoB,IAAI,SAGhCA,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,IEzaA,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,UCLA,MAAMnI,GAAa,CACjBG,IAAK,EACLF,MAAO,8CAEHC,GAAa,CACjBC,IAAK,EACLF,MAAO,wFAEHG,GAAa,CAAC,aAcpB,QAA4BW,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,gBACRE,KAAAA,CAAMC,GCMR,MAAMinD,GAAgB53C,EAAAA,EAAAA,IAAyB,iBACzC63C,GAAe73C,EAAAA,EAAAA,IAAyB,uBAExC82C,GAAkBxtC,EAAAA,EAAAA,IAA+B,mBACjD8rC,GACJ9rC,EAAAA,EAAAA,IAA+B,oBACP,YAAxBtV,EAAAA,IAAaQ,OACT0gD,GAAsBjtC,EAAAA,EAAAA,KAC1BrF,EAAAA,EAAAA,IAAwB,qBAGpBk1C,EACJF,GACAC,GACAf,GACA1B,GACAF,EDFF,MAAO,CAACr+C,EAAUC,KACRQ,EAAAA,EAAAA,IAAOwgD,KACV/gD,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOpI,GAAY,EACnD8H,EAAAA,EAAAA,IAAOsgD,KACH7gD,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,KAAMlI,IAAY2H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAOsgD,IAAiB,KAC9FjgD,EAAAA,EAAAA,IAAoB,IAAI,IAC3BL,EAAAA,EAAAA,IAAOugD,KACH9gD,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,UAAW,CAC5CjI,IAAK,EACLg1C,WAAWrtC,EAAAA,EAAAA,IAAOugD,GAClBpoD,MAAO,qIACN,KAAM,EAAGG,MACZ+H,EAAAA,EAAAA,IAAoB,IAAI,IAC5BF,EAAAA,EAAAA,IAAasgD,IACbtgD,EAAAA,EAAAA,IAAaugD,IACbvgD,EAAAA,EAAAA,IAAawgD,QAEftgD,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,IE/DA,MAAM,GAAc,GAEpB,S,4LCFA,MAAMnI,EAAa,CACjBG,IAAK,EACLF,MAAO,6HAEHC,EAAa,CACjBC,IAAK,EACLF,MAAO,qCAEHG,EAAa,CAAC,WACdC,EAAa,CAAC,OAAQ,OACtBC,EAAa,CACjBH,IAAK,EACLF,MAAO,qCAEHM,EAAa,CAAC,WACdC,EAAa,CAAEP,MAAO,gBAgB5B,OAA4Bc,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,mBACRE,KAAAA,CAAMC,GCwBR,MAAM,OAAEykB,IAAW8iC,EAAAA,EAAAA,IAAQ,CAAEC,SAAU,WAGvC,IAAI/d,GAAQlpC,EAAAA,EAAAA,IAA4B,IAExC,MAAMknD,GAAelnD,EAAAA,EAAAA,KACnBoY,EAAAA,EAAAA,IAA+B,oBAAsB,QAAU,iBAG3D+uC,GAAmBnnD,EAAAA,EAAAA,IAAIkkB,GAK7Bpf,eAAesiD,EAAene,IAC5BjC,EAAAA,EAAAA,IAAiBiC,EAAKlsB,aACxB,CAEA,SAASsqC,EAA2B5gB,GAClC,OAAO1kB,EAAAA,EAAiBE,sBAAsB7d,MAC3CoE,GAAMA,EAAE/J,MAAQgoC,EAAS1pB,gBACzBxc,KACL,CDrBA,OCUAkE,EAAAA,EAAAA,KAAUK,UACRokC,EAAM3oC,YAAc4oC,EAAAA,EAAAA,KAA4B,IDX3C,CAACxjC,EAAUC,KACRQ,EAAAA,EAAAA,IAAO8iC,KAAU9iC,EAAAA,EAAAA,IAAO8iC,GAAOn8B,OAAS,IAC3ClH,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOpI,EAAY,EACpDiI,EAAAA,EAAAA,KAAaH,EAAAA,EAAAA,IAAOY,EAAAA,IAAkB,CACpCzI,MAAO,sDACP0I,MAAMb,EAAAA,EAAAA,IAAOkhD,EAAAA,MACZ,KAAM,EAAG,CAAC,SACW,UAAvBJ,EAAa3mD,QACTsF,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOlI,EAAY,GACnDqH,EAAAA,EAAAA,KAAW,IAAOa,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,MAAMC,EAAAA,EAAAA,KAAY9D,EAAAA,EAAAA,IAAO8iC,IAASD,KAC1EpjC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQ,CAChDjI,IAAK,UAAUwqC,EAAKlsB,eACpBjW,QAAUF,GAAiBwgD,EAAene,GAC1C1qC,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,CAC5B,0BAA2B+5C,EAAiB5mD,QAAU0oC,EAAKlsB,cAC1D,0IACI,EACD7W,EAAAA,EAAAA,IAAoB,MAAO,CACzB3H,MAAO,OACP,OAAQ8oD,EAA2Bpe,GACnCv7B,IACJkK,EAAAA,MAAAA,CAAQ,KAAyByvC,EAC/Bpe,IACCse,sBAEE,KAAM,EAAG5oD,IACX,GAAID,MACL,UAEN+H,EAAAA,EAAAA,IAAoB,IAAI,GACJ,kBAAvBygD,EAAa3mD,QACTsF,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO9H,EAAY,GACnDiH,EAAAA,EAAAA,KAAW,IAAOa,EAAAA,EAAAA,IAAoBuD,EAAAA,GAAW,MAAMC,EAAAA,EAAAA,KAAY9D,EAAAA,EAAAA,IAAO8iC,IAASD,KAC1EpjC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQ,CAChDjI,IAAK,UAAUwqC,EAAKlsB,eACpBjW,QAAUF,GAAiBwgD,EAAene,GAC1C1qC,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,CAC5B,aAAc+5C,EAAiB5mD,QAAU0oC,EAAKlsB,cAC7C,8JACI,EACD7W,EAAAA,EAAAA,IAAoB,OAAQpH,GAAYqH,EAAAA,EAAAA,IAAiB8iC,EAAKP,uBAAwB,IACrF,GAAI7pC,MACL,UAEN4H,EAAAA,EAAAA,IAAoB,IAAI,OAE9BA,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,IE1GA,MAAMitC,EAAc,EAEpB,O,wHCFA,MAAMA,EAAc,gCAAM,KAAN,EAAM,EAE1B,IAAe,uC,+JCFf,MAAMp1C,EAAa,CAAC,QACdE,EAAa,CAAC,MAAO,OACrBE,EAAa,CAAC,MAAO,OAQ3B,OAA4BW,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRE,KAAAA,CAAMC,GCaR,MAAM+nD,GAAoBzwC,EAAAA,EAAAA,KACxBrF,EAAAA,EAAAA,IAAwB,mBAEpB+1C,GAAuB/1C,EAAAA,EAAAA,IAAwB,gBAI/Cg2C,GACJtvC,EAAAA,EAAAA,IAA+B,sBAAwBovC,EDTzD,MAAO,CAAC7hD,EAAUC,KACRQ,EAAAA,EAAAA,IAAOohD,KACV3hD,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CACxCjI,IAAK,EACLF,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,oCAAqC,CAC/D,mBAAmBhH,EAAAA,EAAAA,IAAOshD,OAEvB,EACAthD,EAAAA,EAAAA,IAAOqhD,KACH5hD,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,IAAK,CACtCjI,IAAK,EACLsI,MAAMX,EAAAA,EAAAA,IAAOqhD,GACbvqC,OAAQ,UACP,EACDhX,EAAAA,EAAAA,IAAoB,MAAO,CACzB3H,MAAO,SACPmP,KAAKtH,EAAAA,EAAAA,IAAOohD,GACZ1D,KAAK19C,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,8BACjB,KAAM,EAAG5H,IACX,EAAGF,KACNmI,EAAAA,EAAAA,IAAoB,IAAI,IAC1BL,EAAAA,EAAAA,IAAOqhD,IAOLhhD,EAAAA,EAAAA,IAAoB,IAAI,KANvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAO,CACxCjI,IAAK,EACLF,MAAO,SACPmP,KAAKtH,EAAAA,EAAAA,IAAOohD,GACZ1D,KAAK19C,EAAAA,EAAAA,IAAOC,EAAAA,GAAPD,CAAa,8BACjB,KAAM,EAAG1H,KAEf,KACH+H,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,IEtDA,MAAMitC,EAAc,EAEpB,O,w8TCFA,MAAMp1C,EAAa,CAAEC,MAAO,4BACtBC,EAAa,CAAED,MAAO,2IACtBG,EAAa,CACjBD,IAAK,EACLF,MAAO,iGAQT,OAA4Bc,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,mBACRmL,MAAO,CACPk9C,UAAWh9C,SAEXnL,KAAAA,CAAMC,GCER,MAAMmoD,GAAoBzmD,EAAAA,EAAAA,KAAS,KAAOwrC,EAAAA,GAAyBpsC,QAE7DkK,EAAQhL,EDEd,MAAO,CAACkG,EAAUC,MACRC,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,MAAOpI,EAAY,CAC1DspD,EAAkBrnD,QACdsF,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAakF,EAAAA,EAAW,CACrCvM,IAAK,EACLF,MAAO,YAETkI,EAAAA,EAAAA,IAAoB,IAAI,IAC5BP,EAAAA,EAAAA,IAAoB,MAAO1H,EAAY,CACnCiM,EAAMk9C,WAEJlhD,EAAAA,EAAAA,IAAoB,IAAI,KADvBZ,EAAAA,EAAAA,OAAca,EAAAA,EAAAA,IAAoB,OAAQhI,EAAY,kDAE3DwH,EAAAA,EAAAA,IAAoB,MAAO,CACzB3H,OAAO6O,EAAAA,EAAAA,IAAgB,CAAC,2CAA4C,CAAE,SAAU3N,EAAQkoD,aACxFj6C,IAAKimC,GACJ,KAAM,KAETiU,EAAkBrnD,OAKhBkG,EAAAA,EAAAA,IAAoB,IAAI,KAJvBZ,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAakF,EAAAA,EAAW,CACrCvM,IAAK,EACLF,MAAO,aAKjB,IElDA,MAAMm1C,EAAc,EAEpB,O,kjCCLA,IAAI3rC,EAAM,CACT,kBAAmB,MACnB,kBAAmB,MACnB,kBAAmB,MACnB,kBAAmB,MACnB,mBAAoB,MACpB,mBAAoB,OAIrB,SAAS8/C,EAAeC,GACvB,IAAI7nD,EAAK8nD,EAAsBD,GAC/B,OAAOE,EAAoB/nD,EAC5B,CACA,SAAS8nD,EAAsBD,GAC9B,IAAIE,EAAoBh3B,EAAEjpB,EAAK+/C,GAAM,CACpC,IAAIngB,EAAI,IAAIloB,MAAM,uBAAyBqoC,EAAM,KAEjD,MADAngB,EAAE+U,KAAO,mBACH/U,CACP,CACA,OAAO5/B,EAAI+/C,EACZ,CACAD,EAAeI,KAAO,WACrB,OAAO7/C,OAAO6/C,KAAKlgD,EACpB,EACA8/C,EAAe37C,QAAU67C,EACzB3U,EAAOC,QAAUwU,EACjBA,EAAe5nD,GAAK,K,wBC3BpB,IAAI8H,EAAM,CACT,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,IACZ,WAAY,MACZ,WAAY,IACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,GACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,KACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,MACZ,WAAY,OAIb,SAAS8/C,EAAeC,GACvB,IAAI7nD,EAAK8nD,EAAsBD,GAC/B,OAAOE,EAAoB/nD,EAC5B,CACA,SAAS8nD,EAAsBD,GAC9B,IAAIE,EAAoBh3B,EAAEjpB,EAAK+/C,GAAM,CACpC,IAAIngB,EAAI,IAAIloB,MAAM,uBAAyBqoC,EAAM,KAEjD,MADAngB,EAAE+U,KAAO,mBACH/U,CACP,CACA,OAAO5/B,EAAI+/C,EACZ,CACAD,EAAeI,KAAO,WACrB,OAAO7/C,OAAO6/C,KAAKlgD,EACpB,EACA8/C,EAAe37C,QAAU67C,EACzB3U,EAAOC,QAAUwU,EACjBA,EAAe5nD,GAAK,K","sources":["webpack://fd-xla/./src/components/auth/SecureMobileModal.vue?058a","webpack://fd-xla/./src/components/auth/SecureMobileModal.vue","webpack://fd-xla/./src/components/auth/SignUpFormModal.vue?edfa","webpack://fd-xla/./src/components/auth/SignUpFormModal.vue","webpack://fd-xla/./src/components/auth/SimpleEmailLoginModal.vue?06fd","webpack://fd-xla/./src/components/auth/SimpleEmailLoginModal.vue","webpack://fd-xla/./src/components/auth/SimpleMobileModal.vue?a782","webpack://fd-xla/./src/components/auth/SimpleMobileModal.vue","webpack://fd-xla/./src/components/header/common/CampaignHeader.vue?617f","webpack://fd-xla/./src/components/header/common/LoginBar.vue?5955","webpack://fd-xla/./src/components/header/common/LoginBar.vue","webpack://fd-xla/./src/campaigns/signUp/services/signUp.service.ts","webpack://fd-xla/./src/campaigns/sportsMatchVoting/services/sportsMatchVoting.service.ts","webpack://fd-xla/./src/campaigns/sportsMatchVoting/services/vote.service.ts","webpack://fd-xla/./src/campaigns/voting/models/displayableVotingCategory.class.ts","webpack://fd-xla/./src/campaigns/voting/models/displayableVotingCategoryType.class.ts","webpack://fd-xla/./src/campaigns/voting/models/displayableVotingItem.class.ts","webpack://fd-xla/./src/campaigns/voting/services/voting.service.ts","webpack://fd-xla/./src/campaigns/voting/services/votingItems.service.ts","webpack://fd-xla/./src/campaigns/voting/services/votingVotes.service.ts","webpack://fd-xla/./src/common/authentication.dictionary.ts","webpack://fd-xla/./src/common/languages.dictionary.ts","webpack://fd-xla/./src/common/visualType.dictionary.ts","webpack://fd-xla/./src/mixins/i18n.mixin.ts","webpack://fd-xla/./src/mixins/loadingIndicator.mixin.ts","webpack://fd-xla/./src/mixins/sharing.mixin.ts","webpack://fd-xla/./src/services/auth/auth.service.ts","webpack://fd-xla/./src/services/auth/authFields.service.ts","webpack://fd-xla/./src/services/auth/authModal.service.ts","webpack://fd-xla/./src/services/auth/campaignAppAuthenticationOptions.service.ts","webpack://fd-xla/./src/services/auth/embedding.service.ts","webpack://fd-xla/./src/services/auth/iFrameHandler.service.ts","webpack://fd-xla/./src/services/auth/identityClientConfiguration.service.ts","webpack://fd-xla/./src/services/auth/phoneAuth.service.ts","webpack://fd-xla/./src/services/auth/providers/openIDClientAuthProvider.service.ts","webpack://fd-xla/./src/services/auth/providers/secureMobileAuthProvider.service.ts","webpack://fd-xla/./src/services/auth/providers/simpleEmailAuthProvider.service.ts","webpack://fd-xla/./src/services/auth/providers/simpleMobileAuthProvider.service.ts","webpack://fd-xla/./src/services/auth/utility/authCommonError.service.ts","webpack://fd-xla/./src/services/bootstrapper.service.ts","webpack://fd-xla/./src/services/browserCompatibility.service.ts","webpack://fd-xla/./src/services/campaignApp.service.ts","webpack://fd-xla/./src/services/campaignState.service.ts","webpack://fd-xla/./src/services/campaignStatus.service.ts","webpack://fd-xla/./src/services/customCSS.service.ts","webpack://fd-xla/./src/services/customJS.service.ts","webpack://fd-xla/./src/services/document.service.ts","webpack://fd-xla/./src/services/error.service.ts","webpack://fd-xla/./src/common/application.dictionary.ts","webpack://fd-xla/./src/services/facebook.service.ts","webpack://fd-xla/./src/services/files.service.ts","webpack://fd-xla/./src/services/googleAnalytics.service.ts","webpack://fd-xla/./src/services/http.service.ts","webpack://fd-xla/./src/services/languages.service.ts","webpack://fd-xla/./src/services/translations.service.ts","webpack://fd-xla/./src/services/i18n.service.ts","webpack://fd-xla/./src/services/json.service.ts","webpack://fd-xla/./src/services/localStorage.service.ts","webpack://fd-xla/./src/services/loginState.service.ts","webpack://fd-xla/./src/services/modal.service.ts","webpack://fd-xla/./src/services/privateData.service.ts","webpack://fd-xla/./src/services/publicData.service.ts","webpack://fd-xla/./src/services/settings.service.ts","webpack://fd-xla/./src/services/sports/campaignSportsHeader.service.ts","webpack://fd-xla/./src/services/sports/sports.service.ts","webpack://fd-xla/./src/services/stateProcessor.service.ts","webpack://fd-xla/./src/services/url.service.ts","webpack://fd-xla/./src/utils/dateFormatter.helper.ts","webpack://fd-xla/./src/utils/string.ts","webpack://fd-xla/./src/utils/utils.ts","webpack://fd-xla/./.modernizrrc.js","webpack://fd-xla/./src/components/content/DisplayableItemIngress.vue?b72a","webpack://fd-xla/./src/components/content/DisplayableItemIngress.vue","webpack://fd-xla/./src/components/content/DisplayableItemIngress.vue?61f2","webpack://fd-xla/./src/campaigns/voting/components/ListVotingItem.vue?fab4","webpack://fd-xla/./src/campaigns/voting/components/ListVotingItem.vue","webpack://fd-xla/./src/campaigns/voting/components/ListVotingItem.vue?758f","webpack://fd-xla/./src/components/VideoObject.vue?8bfa","webpack://fd-xla/./src/components/VideoObject.vue","webpack://fd-xla/./src/components/VideoObject.vue?797d","webpack://fd-xla/./src/campaigns/voting/components/VotingItemImageCarousel.vue?a12d","webpack://fd-xla/./src/campaigns/voting/components/VotingItemImageCarousel.vue","webpack://fd-xla/./src/campaigns/voting/components/VotingItemImageCarousel.vue?01a2","webpack://fd-xla/./src/campaigns/voting/components/VotingItem.vue?4d52","webpack://fd-xla/./src/campaigns/voting/components/VotingItem.vue","webpack://fd-xla/./src/campaigns/voting/components/VotingItem.vue?6d7c","webpack://fd-xla/./src/components/AlertBox.vue?5973","webpack://fd-xla/./src/components/AlertBox.vue","webpack://fd-xla/./src/components/AlertBox.vue?c962","webpack://fd-xla/./src/components/DialogModal.vue?d036","webpack://fd-xla/./src/components/DialogModal.vue","webpack://fd-xla/./src/components/DialogModal.vue?f102","webpack://fd-xla/./src/components/FullscreenModal.vue?a0b7","webpack://fd-xla/./src/components/FullscreenModal.vue","webpack://fd-xla/./src/components/FullscreenModal.vue?93d0","webpack://fd-xla/./src/components/LoadIndicator.vue","webpack://fd-xla/./src/components/LoadIndicator.vue?6334","webpack://fd-xla/./src/components/ModalContainer.vue?0206","webpack://fd-xla/./src/components/ModalContainer.vue","webpack://fd-xla/./src/components/ModalContainer.vue?2e2a","webpack://fd-xla/./src/components/PaginationComponent.vue?6b04","webpack://fd-xla/./src/components/PaginationComponent.vue","webpack://fd-xla/./src/components/PaginationComponent.vue?4f9e","webpack://fd-xla/./src/components/PostParticipationAction.vue?c4c3","webpack://fd-xla/./src/components/PostParticipationAction.vue","webpack://fd-xla/./src/components/PostParticipationAction.vue?4793","webpack://fd-xla/./src/components/SavedMessage.vue?263d","webpack://fd-xla/./src/components/SavedMessage.vue","webpack://fd-xla/./src/components/SavedMessage.vue?8102","webpack://fd-xla/./src/components/SubmissionResponse.vue?30fb","webpack://fd-xla/./src/components/SubmissionResponse.vue","webpack://fd-xla/./src/components/SubmissionResponse.vue?f31f","webpack://fd-xla/./src/components/auth/AuthSelectionModal.vue?45b2","webpack://fd-xla/./src/components/auth/AuthSelectionModal.vue","webpack://fd-xla/./src/components/auth/AuthSelectionModal.vue?ef0f","webpack://fd-xla/./src/services/auth/utility/labelTranslationHelper.service.ts","webpack://fd-xla/./src/components/auth/FormField.vue?9c6d","webpack://fd-xla/./src/components/auth/FormField.vue","webpack://fd-xla/./src/components/auth/FormField.vue?a4b7","webpack://fd-xla/./src/components/auth/SecureMobileModal.vue?1404","webpack://fd-xla/./src/components/auth/SignUpFormModal.vue?15b6","webpack://fd-xla/./src/components/auth/SimpleEmailLoginModal.vue?b2d5","webpack://fd-xla/./src/components/auth/SimpleMobileModal.vue?21d9","webpack://fd-xla/./src/components/content/AuthenticationDescription.vue?6da1","webpack://fd-xla/./src/components/content/AuthenticationDescription.vue","webpack://fd-xla/./src/components/content/AuthenticationDescription.vue?f778","webpack://fd-xla/./src/components/content/OutsideActivityMsg.vue?6f68","webpack://fd-xla/./src/components/content/OutsideActivityMsg.vue","webpack://fd-xla/./src/components/footer/DefaultPrivacyPolicyTemplate.vue","webpack://fd-xla/./src/components/footer/DefaultPrivacyPolicyTemplate.vue?e2b1","webpack://fd-xla/./src/components/footer/CopyrightAndPrivacyPolicy.vue?154d","webpack://fd-xla/./src/components/footer/CopyrightAndPrivacyPolicy.vue","webpack://fd-xla/./src/components/footer/CopyrightAndPrivacyPolicy.vue?92c3","webpack://fd-xla/./src/components/footer/CampaignFooter.vue?8cf4","webpack://fd-xla/./src/components/footer/CampaignFooter.vue","webpack://fd-xla/./src/components/footer/TermsAndConditionsContent.vue?bb4d","webpack://fd-xla/./src/components/footer/TermsAndConditionsContent.vue","webpack://fd-xla/./src/components/footer/TermsAndConditionsContent.vue?5d93","webpack://fd-xla/./src/components/footer/TermsAndConditions.vue?eb5f","webpack://fd-xla/./src/components/footer/TermsAndConditions.vue","webpack://fd-xla/./src/components/footer/TermsAndConditions.vue?e1d4","webpack://fd-xla/./src/components/header/SportsMatchHeader.vue?1f66","webpack://fd-xla/./src/components/header/SportsMatchHeader.vue","webpack://fd-xla/./src/components/header/SportsMatchHeader.vue?5d59","webpack://fd-xla/./src/components/header/common/CampaignHeader.vue","webpack://fd-xla/./src/components/header/common/SponsorLogo.vue?80e4","webpack://fd-xla/./src/components/header/common/SponsorLogo.vue","webpack://fd-xla/./src/components/header/common/SponsorLogo.vue?5968","webpack://fd-xla/./src/components/header/common/FacebookShare.vue?fecb","webpack://fd-xla/./src/components/header/common/FacebookShare.vue","webpack://fd-xla/./src/components/header/common/FacebookShare.vue?8fb5","webpack://fd-xla/./src/services/prizeAssignments.service.ts","webpack://fd-xla/./src/components/PrizesCarousel.vue?ee0f","webpack://fd-xla/./src/components/PrizesCarousel.vue","webpack://fd-xla/./src/components/PrizesCarousel.vue?946f","webpack://fd-xla/./src/components/header/common/HeaderContent.vue?cf32","webpack://fd-xla/./src/components/header/common/HeaderContent.vue","webpack://fd-xla/./src/components/header/common/HeaderContent.vue?e0a8","webpack://fd-xla/./src/components/header/common/LanguageSwitcher.vue?32d7","webpack://fd-xla/./src/components/header/common/LanguageSwitcher.vue","webpack://fd-xla/./src/components/header/common/LanguageSwitcher.vue?9d00","webpack://fd-xla/./src/components/header/common/LoginBar.vue?11ac","webpack://fd-xla/./src/components/header/common/TopBanner.vue?5b6d","webpack://fd-xla/./src/components/header/common/TopBanner.vue","webpack://fd-xla/./src/components/header/common/TopBanner.vue?256c","webpack://fd-xla/./src/components/superettan/SuperettanBanner.vue?108f","webpack://fd-xla/./src/components/superettan/SuperettanBanner.vue","webpack://fd-xla/./src/components/superettan/SuperettanBanner.vue?6f2a","webpack://fd-xla/./src/assets/campaigns/sportsMatchHeader/ sync ^\\.\\/.*$","webpack://fd-xla/./src/assets/images/flags/ sync ^\\.\\/.*\\.png$"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"font-bold text-xl\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"py-20 flex flex-col justify-start\"\n}\nconst _hoisted_3 = { class: \"w-full text-left mb-15\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = {\n key: 1,\n class: \"w-full text-left mb-15\"\n}\nconst _hoisted_6 = {\n key: 2,\n class: \"w-full text-left mb-15\"\n}\nconst _hoisted_7 = { class: \"text-brand-danger\" }\nconst _hoisted_8 = { class: \"ml-10\" }\nconst _hoisted_9 = { class: \"flex flex-col w-full items-center justify-center py-10\" }\nconst _hoisted_10 = {\n key: 0,\n class: \"text-brand-danger\"\n}\nconst _hoisted_11 = { class: \"ml-10\" }\nconst _hoisted_12 = { class: \"flex justify-end\" }\nconst _hoisted_13 = [\"disabled\"]\n\nimport { computed, ref, onMounted, Ref } from \"vue\";\nimport DialogModal from \"@/components/DialogModal.vue\";\nimport AlertBox from \"@/components/AlertBox.vue\";\nimport FormField from \"@/components/auth/FormField.vue\";\nimport { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport LoadIndicator from \"@/components/LoadIndicator.vue\";\nimport {\n executePhoneNumberLookup,\n executeSMSTokenRequest,\n} from \"@/services/auth/phoneAuth.service\";\nimport { ILoginState } from \"@/models/authentication/loginState.model\";\nimport { ENV_GLOBALS } from \"@/services/publicData.service\";\nimport {\n sendCampaignEvent,\n GOOGLE_ANALYTICS_EVENTS,\n} from \"@/services/googleAnalytics.service\";\nimport { loginState, setLoginState } from \"@/services/loginState.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { authProgress } from \"@/services/auth/auth.service\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport { currentModal } from \"@/services/modal.service\";\nimport AuthenticationDescription from \"../content/AuthenticationDescription.vue\";\nimport { getAuthFields } from \"@/services/auth/authFields.service\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { faTriangleExclamation } from \"@fortawesome/free-solid-svg-icons\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SecureMobileModal',\n emits: [\"confirm\", \"close\", \"error\"],\n setup(__props, { emit: __emit }) {\n\nlibrary.add(faTriangleExclamation);\n\nconst emit = __emit;\n\nconst authFields: Ref[] = [\n ref({\n id: \"phoneNumber\",\n isEnabled: true,\n isRequired: true,\n customLabel: null,\n type: \"tel\",\n isMandatory: false,\n value: null,\n valid: undefined,\n visited: false,\n }),\n ref({\n id: \"smsToken\",\n customLabelTranslationKey: \"global.campaignAuthentication.txt_smsToken\",\n isEnabled: true,\n isRequired: false,\n customLabel: null,\n type: \"text\",\n inputMode: \"numeric\",\n isMandatory: false,\n value: null,\n valid: undefined,\n visited: false,\n pattern: new RegExp(/^\\d{6}$/).source,\n }),\n];\n\nconst phoneAuthField = authFields[0];\nconst smsTokenField = authFields[1];\n\nconst isFormInValid = computed(\n () =>\n !phoneAuthField.value.valid ||\n (!smsTokenField.value.valid && userHasToken.value) ||\n isRecaptchaEmpty.value ||\n showRecaptchaRequiredMessage.value\n);\n\nconst isRecaptchaEmpty = ref(true);\n\nconst isLoading = ref(false);\nconst phoneCheckupErrorMessageKey = ref(null);\n\nconst userHasToken = ref(false);\n\nconst showRecaptchaRequiredMessage = ref(false);\n\nconst recaptchaSuccess = () => {\n isRecaptchaEmpty.value = false;\n};\n\nconst recaptchaExpired = () => {\n isRecaptchaEmpty.value = true;\n};\n\nonMounted(() => {\n isLoading.value = true;\n\n const script = document.createElement(\"script\");\n script.setAttribute(\n \"src\",\n \"https://www.google.com/recaptcha/api.js?render=explicit\"\n );\n\n script.async = true;\n script.defer = true;\n document.head.appendChild(script);\n\n script.onload = () => {\n // wait until grecaptcha.render is defined\n var initCaptchaInterval = setInterval(() => {\n if (\n typeof window.grecaptcha !== \"undefined\" &&\n typeof window.grecaptcha.render !== \"undefined\"\n ) {\n clearInterval(initCaptchaInterval);\n window.grecaptcha.render(\"google-recaptcha\", {\n sitekey: ENV_GLOBALS.RECAPTCHA_SITE_KEY,\n callback: recaptchaSuccess,\n \"expired-callback\": recaptchaExpired,\n });\n isLoading.value = false;\n }\n }, 200);\n };\n});\n\nfunction fieldUpdated(\n newValue: {\n value?: string | number | boolean;\n valid?: boolean;\n visited?: boolean;\n },\n field: FormFieldDefinition\n) {\n if (phoneAuthField.value.id === field.id) {\n phoneAuthField.value = { ...field, ...newValue };\n } else {\n smsTokenField.value = {\n ...field,\n ...newValue,\n isRequired: userHasToken.value,\n };\n }\n\n phoneCheckupErrorMessageKey.value = null;\n}\n\nfunction submitForm() {\n if (!phoneAuthField.value.value) {\n return;\n }\n\n if (!window.grecaptcha) {\n return;\n }\n\n if (!window.grecaptcha.getResponse()) {\n showRecaptchaRequiredMessage.value = true;\n return;\n }\n\n isLoading.value = true;\n\n if (!userHasToken.value) {\n executeSMSTokenRequest({\n phoneNumber: phoneAuthField.value.value as string,\n recaptchaToken: window.grecaptcha.getResponse(),\n })\n .then(\n () => {\n userHasToken.value = true;\n },\n (error: Response) => {\n const statusToError: Record = {\n 400: \"invalidPhoneNumber\",\n 401: \"invalidRecaptcha\",\n 429: \"exceededRetries\",\n 500: \"unknownReason\",\n };\n\n window.grecaptcha.reset();\n phoneCheckupErrorMessageKey.value = `global.campaignAuthentication.smsToken.err_${\n statusToError[error.status]\n }`;\n }\n )\n .finally(() => {\n isLoading.value = false;\n });\n } else {\n executePhoneNumberLookup({\n phoneNumber: phoneAuthField.value.value as string,\n recaptchaToken: window.grecaptcha.getResponse(),\n smsToken: smsTokenField.value.value as string,\n })\n .then(\n (ls: ILoginState) => {\n setLoginState({\n ...ls,\n phoneNumber: phoneAuthField.value.value as string,\n authenticationType: authProgress.value?.authOption?._type as string,\n campaignAppGuid: campaignApp.guid,\n recaptchaToken: window.grecaptcha.getResponse(),\n smsToken: smsTokenField.value.value as string,\n });\n\n enforceRequiredAuthFields();\n\n emit(\"confirm\", loginState.value as ILoginState);\n },\n (error: Response) => {\n smsTokenField.value.value = null;\n smsTokenField.value.visited = false;\n smsTokenField.value.valid = undefined;\n\n userHasToken.value = false;\n window.grecaptcha.reset();\n\n const statusToError: Record = {\n 400: \"invalidPhoneNumber\",\n 401: \"invalidSmsToken\",\n 500: \"unknownReason\",\n };\n let errorKey = statusToError[error.status];\n\n if (currentModal.value.model?.isLogIn && error.status === 401) {\n errorKey = \"invalidPhoneNumberOrSmsToken\";\n }\n\n phoneCheckupErrorMessageKey.value = `global.campaignAuthentication.smsToken.err_${errorKey}`;\n\n sendCampaignEvent(\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_CANCELLED.action,\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_CANCELLED.category,\n \"AUTH_MOBILE_TOKEN_ERROR\"\n );\n }\n )\n .finally(() => {\n isLoading.value = false;\n });\n }\n}\n\nfunction enforceRequiredAuthFields() {\n const phoneAuthField = getAuthFields().find((af) => af.id === \"phoneNumber\");\n\n if (phoneAuthField) {\n phoneAuthField.isReadOnly = true;\n }\n}\n\nfunction closeModal() {\n userHasToken.value = false;\n emit(\"close\", { message: \"AUTH_MOBILE_CANCELLED\" });\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(DialogModal, null, {\n header: _withCtx(() => [\n _createElementVNode(\"h4\", _hoisted_1, _toDisplayString(_unref($ttt)(\"global.campaignAuthentication.txt_header\")), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AuthenticationDescription),\n (!isLoading.value)\n ? (_openBlock(), _createElementBlock(\"form\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(FormField, {\n field: _unref(phoneAuthField),\n \"onUpdate:field\": _cache[0] || (_cache[0] = ($event: any) => (fieldUpdated($event, _unref(phoneAuthField))))\n }, null, 8, [\"field\"])\n ]),\n (!userHasToken.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", null, [\n _createTextVNode(_toDisplayString(_unref($ttt)(\"global.campaignAuthentication.txt_userHasTokenAlready\")), 1),\n _cache[5] || (_cache[5] = _createElementVNode(\"span\", { class: \"px-5\" }, \"-\", -1))\n ]),\n _createElementVNode(\"a\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (userHasToken.value = !userHasToken.value)),\n class: \"hover:underline text-sky-600\",\n href: \"javascript:;\"\n }, _toDisplayString(_unref($ttt)(\"global.txt_clickHere\")), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (userHasToken.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createVNode(FormField, {\n field: _unref(smsTokenField),\n \"onUpdate:field\": _cache[2] || (_cache[2] = ($event: any) => (fieldUpdated($event, _unref(smsTokenField))))\n }, null, 8, [\"field\"])\n ]))\n : _createCommentVNode(\"\", true),\n (phoneCheckupErrorMessageKey.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"span\", _hoisted_7, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fas triangle-exclamation\",\n icon: _unref(faTriangleExclamation)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_unref($ttt)(phoneCheckupErrorMessageKey.value)), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_9, [\n _cache[6] || (_cache[6] = _createElementVNode(\"div\", {\n class: \"mb-10\",\n id: \"google-recaptcha\"\n }, null, -1)),\n (showRecaptchaRequiredMessage.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fas triangle-exclamation\",\n icon: _unref(faTriangleExclamation)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_unref($ttt)(\"global.campaignAuthentication.field.txt_fieldRequired\")), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (isLoading.value)\n ? (_openBlock(), _createBlock(LoadIndicator, { key: 1 }))\n : _createCommentVNode(\"\", true)\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"button\", {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (closeModal())),\n class: \"mt-15 ml-10 py-10 px-[25px] rounded-sm bg-text-sc-black/10 hover:bg-text-sc-black/5\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_close\")), 1),\n _createElementVNode(\"button\", {\n disabled: isFormInValid.value,\n onClick: _cache[4] || (_cache[4] = ($event: any) => (submitForm())),\n class: \"mt-15 ml-10 py-10 px-20 rounded-sm enabled:hover:bg-confirmation-green/80 bg-confirmation-green text-white disabled:hover:cursor-default disabled:opacity-40\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_signUp\")), 9, _hoisted_13)\n ])\n ]),\n _: 1\n }))\n}\n}\n\n})","\n\n\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"font-bold text-xl\" }\nconst _hoisted_2 = { class: \"py-20 flex flex-col justify-start\" }\nconst _hoisted_3 = { class: \"flex justify-end\" }\nconst _hoisted_4 = [\"disabled\"]\n\nimport { computed, ref, Ref } from \"vue\";\nimport DialogModal from \"../DialogModal.vue\";\nimport FormField from \"@/components/auth/FormField.vue\";\nimport { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport TermsAndConditions from \"@/components/footer/TermsAndConditions.vue\";\nimport { ILoginState } from \"@/models/authentication/loginState.model\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport {\n loginState,\n patchLoginState,\n setLoginStateBasedOnForm,\n} from \"@/services/loginState.service\";\nimport { authProgress } from \"@/services/auth/auth.service\";\nimport AuthenticationDescription from \"../content/AuthenticationDescription.vue\";\nimport {\n getAuthFields,\n resetAuthFields,\n} from \"@/services/auth/authFields.service\";\nimport { AuthenticationFieldTypes } from \"@/common/authentication.dictionary\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SignUpFormModal',\n emits: [\"confirm\", \"close\"],\n setup(__props, { emit: __emit }) {\n\nconst emit = __emit;\n\nlet authFields: Ref = ref(getAuthFields());\n\nfunction fieldUpdated(\n newValue: {\n value?: string | number | boolean;\n valid?: boolean;\n visited?: boolean;\n },\n index: number\n) {\n authFields.value[index] = { ...authFields.value[index], ...newValue };\n}\n\nconst isFormInValid = computed(() =>\n authFields.value.some(\n (v) =>\n (!v.isRequired && v.valid === false) ||\n (v.isRequired && !v.valid && v.type !== \"hidden\")\n )\n);\n\nfunction submitForm() {\n if (isFormInValid.value) {\n return;\n }\n\n if (!authProgress.value?.authOption) {\n return;\n }\n\n mapConsentTextCheckboxesToConsentTextIds();\n purifyAuthFields();\n setLoginStateBasedOnForm(\n authFields.value,\n authProgress.value?.authOption._type\n );\n\n emit(\"confirm\", loginState.value as ILoginState);\n closeModal();\n}\n\nfunction closeModal() {\n resetAuthFields();\n emit(\"close\");\n}\n\nfunction mapConsentTextCheckboxesToConsentTextIds() {\n const consentTextIds = authFields.value.find(\n (field) => field.id === \"consentTextIds\"\n );\n\n if (consentTextIds) {\n consentTextIds.value = authFields.value\n .filter((field) => field.type === \"consentTexts\" && field.value === true)\n .map((f) => Number(f.id));\n }\n}\n\nfunction purifyAuthFields() {\n authFields.value = authFields.value.filter(\n (authField) => authField.type !== \"consentTexts\"\n );\n}\n\n// Map loginState values to auth fields\nif (loginState.value) {\n const consentTextsIds = Object.entries(loginState.value as ILoginState).find(\n (field) => field[0] === \"consentTextIds\"\n )?.[1] as number[];\n\n // Mark checked consentsTexts\n if (consentTextsIds) {\n patchLoginState(Object.fromEntries(consentTextsIds.map((c) => [c, true])));\n }\n\n // Fill auth form values\n Object.entries(loginState.value as ILoginState).forEach((field) => {\n const [fieldKey, fieldValue] = field;\n\n const authField = authFields.value.find(\n (authField) => authField.id === fieldKey\n );\n\n if (!authField) {\n return;\n }\n\n authField.value = fieldValue as\n | string\n | number\n | boolean\n | number[]\n | null\n | undefined;\n\n if (authField.id === \"phoneNumber\" && authField.value) {\n authField.value = (authField.value as string).replace(\"tel:\", \"\");\n } else if (authField.id === \"phoneNumber\") {\n // tel-input needs empty string instead of null or undefined\n authField.value = \"\";\n } else if (authField.id === \"gender\" && authField.value) {\n authField.value = $ttt(\n `global.campaignAuthentication.field.option.gender.txt_${authField.value}`\n );\n } else if (\n authField.type === AuthenticationFieldTypes.DATE_TIME &&\n authField.value\n ) {\n authField.value = prepareDateAuthFieldValue(authField);\n }\n\n if (fieldValue) {\n authField.valid = true;\n }\n });\n}\n\nfunction prepareDateAuthFieldValue(authField: FormFieldDefinition) {\n let date = cutOffTimezonePart(new Date(authField.value as string));\n\n if (!authField.includeTime) {\n date = date.slice(0, 10);\n }\n\n return date;\n}\n\nfunction cutOffTimezonePart(date: Date) {\n const year = date.getFullYear();\n const month = (date.getMonth() + 1).toString().padStart(2, \"0\");\n const day = date.getDate().toString().padStart(2, \"0\");\n const hours = date.getHours().toString().padStart(2, \"0\");\n const minutes = date.getMinutes().toString().padStart(2, \"0\");\n\n return `${year}-${month}-${day}T${hours}:${minutes}`;\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(DialogModal, null, {\n header: _withCtx(() => [\n _createElementVNode(\"h4\", _hoisted_1, _toDisplayString(_unref($ttt)(\"global.campaignAuthentication.txt_header\")), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AuthenticationDescription),\n _createElementVNode(\"form\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(authFields), (authField, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: authField.id,\n class: \"w-full text-left mb-15\"\n }, [\n _createVNode(FormField, {\n field: authField,\n \"onUpdate:field\": ($event: any) => (fieldUpdated($event, index))\n }, null, 8, [\"field\", \"onUpdate:field\"])\n ]))\n }), 128)),\n _createVNode(TermsAndConditions, {\n class: \"text-center\",\n \"text-color\": 'inherit'\n })\n ])\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (closeModal())),\n class: \"mt-15 ml-10 py-10 px-[25px] rounded-sm bg-text-sc-black/10 hover:bg-text-sc-black/5\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_close\")), 1),\n _createElementVNode(\"button\", {\n disabled: isFormInValid.value,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (submitForm())),\n class: \"mt-15 ml-10 py-10 px-20 rounded-sm enabled:hover:bg-confirmation-green/80 bg-confirmation-green text-white disabled:hover:cursor-default disabled:opacity-40\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_signUp\")), 9, _hoisted_4)\n ])\n ]),\n _: 1\n }))\n}\n}\n\n})","\n\n\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"font-bold text-xl\" }\nconst _hoisted_2 = { class: \"py-20 flex flex-col justify-start\" }\nconst _hoisted_3 = { class: \"w-full text-left mb-15\" }\nconst _hoisted_4 = { class: \"flex justify-end\" }\nconst _hoisted_5 = [\"disabled\"]\n\nimport { computed, ref } from \"vue\";\nimport DialogModal from \"@/components/DialogModal.vue\";\nimport FormField from \"@/components/auth/FormField.vue\";\nimport { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport { OptionTypes } from \"@/common/authentication.dictionary\";\nimport {\n loginState,\n setLoginStateBasedOnForm,\n} from \"@/services/loginState.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { ILoginState } from \"@/models/authentication/loginState.model\";\nimport AuthenticationDescription from \"../content/AuthenticationDescription.vue\";\n\nconst SIMPLE_EMAIL_LOGIN_CANCELLED_ERROR_NAME = \"SIMPLE_EMAIL_LOGIN_CANCELLED\";\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SimpleEmailLoginModal',\n emits: [\"confirm\", \"close\"],\n setup(__props, { emit: __emit }) {\n\nconst emit = __emit;\n\nconst email = ref({\n id: \"email\",\n isEnabled: true,\n isRequired: true,\n customLabel: null,\n type: \"email\",\n isMandatory: true,\n value: null,\n valid: undefined,\n visited: false,\n});\n\nfunction fieldUpdated(newValue: {\n value?: string | number | boolean;\n valid?: boolean;\n visited?: boolean;\n}) {\n email.value = { ...email.value, ...newValue };\n}\n\nconst isFormInValid = computed(() => !email.value.valid);\n\nfunction submitForm() {\n setLoginStateBasedOnForm([email.value], OptionTypes.FORM);\n emit(\"confirm\", loginState.value as ILoginState);\n}\n\nfunction closeModal() {\n emit(\"close\", { message: SIMPLE_EMAIL_LOGIN_CANCELLED_ERROR_NAME });\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(DialogModal, null, {\n header: _withCtx(() => [\n _createElementVNode(\"h4\", _hoisted_1, _toDisplayString(_unref($ttt)(\n \"global.campaignAuthentication.simpleEmailLogInModal.hdr_loginWithEmail\"\n )), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AuthenticationDescription),\n _createElementVNode(\"form\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(FormField, {\n field: email.value,\n \"onUpdate:field\": _cache[0] || (_cache[0] = ($event: any) => (fieldUpdated($event)))\n }, null, 8, [\"field\"])\n ])\n ])\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (closeModal())),\n class: \"mt-15 ml-10 py-10 px-[25px] rounded-sm bg-text-sc-black/10 hover:bg-text-sc-black/5\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_close\")), 1),\n _createElementVNode(\"button\", {\n disabled: isFormInValid.value,\n onClick: _cache[2] || (_cache[2] = ($event: any) => (submitForm())),\n class: \"mt-15 ml-10 py-10 px-20 rounded-sm enabled:hover:bg-confirmation-green/80 bg-confirmation-green text-white disabled:hover:cursor-default disabled:opacity-40\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_ok\")), 9, _hoisted_5)\n ])\n ]),\n _: 1\n }))\n}\n}\n\n})","\n\n\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"font-bold text-xl\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"py-20 flex flex-col justify-start\"\n}\nconst _hoisted_3 = { class: \"w-full text-left mb-15\" }\nconst _hoisted_4 = { class: \"flex justify-end\" }\nconst _hoisted_5 = [\"disabled\"]\n\nimport { computed, ref } from \"vue\";\nimport DialogModal from \"@/components/DialogModal.vue\";\nimport FormField from \"@/components/auth/FormField.vue\";\nimport { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport LoadIndicator from \"@/components/LoadIndicator.vue\";\nimport { executePhoneNumberLookup } from \"@/services/auth/phoneAuth.service\";\nimport { ILoginState } from \"@/models/authentication/loginState.model\";\nimport {\n GOOGLE_ANALYTICS_EVENTS,\n sendCampaignEvent,\n} from \"@/services/googleAnalytics.service\";\nimport { setLoginState, loginState } from \"@/services/loginState.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { authProgress } from \"@/services/auth/auth.service\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport AuthenticationDescription from \"../content/AuthenticationDescription.vue\";\nimport { getAuthFields } from \"@/services/auth/authFields.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SimpleMobileModal',\n emits: [\"confirm\", \"close\", \"error\"],\n setup(__props, { emit: __emit }) {\n\nconst emit = __emit;\n\nconst phone = ref({\n id: \"phoneNumber\",\n isEnabled: true,\n isRequired: false,\n customLabel: null,\n type: \"tel\",\n isMandatory: false,\n value: null,\n valid: undefined,\n visited: false,\n});\n\nconst isFormInValid = computed(() => !phone.value.valid);\n\nconst isLoading = ref(false);\nconst phoneCheckupErrorMessageKey = ref(null);\n\nfunction fieldUpdated(newValue: {\n value?: string | number | boolean;\n valid?: boolean;\n visited?: boolean;\n}) {\n phone.value = { ...phone.value, ...newValue };\n}\n\nfunction submitForm() {\n if (!phone.value.value) {\n return;\n }\n\n isLoading.value = true;\n\n executePhoneNumberLookup({ phoneNumber: phone.value.value as string })\n .then(\n (ls: ILoginState) => {\n setLoginState({\n ...ls,\n phoneNumber: phone.value.value as string,\n authenticationType: authProgress.value?.authOption?._type as string,\n campaignAppGuid: campaignApp.guid,\n });\n\n enforceRequiredAuthFields();\n\n emit(\"confirm\", loginState.value as ILoginState);\n },\n (error: Response) => {\n const statusToError: Record = {\n 400: \"invalidPhoneNumber\",\n 401: \"invalidSmsToken\",\n 500: \"unknownReason\",\n };\n phoneCheckupErrorMessageKey.value = `global.campaignAuthentication.smsToken.err_${\n statusToError[error.status]\n }`;\n sendCampaignEvent(\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_CANCELLED.action,\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_CANCELLED.category,\n \"AUTH_MOBILE_TOKEN_ERROR\"\n );\n }\n )\n .finally(() => {\n isLoading.value = false;\n });\n}\n\nfunction enforceRequiredAuthFields() {\n const phoneAuthField = getAuthFields().find((af) => af.id === \"phoneNumber\");\n\n if (phoneAuthField) {\n phoneAuthField.isReadOnly = true;\n }\n}\n\nfunction closeModal() {\n emit(\"close\", { message: \"AUTH_MOBILE_CANCELLED\" });\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(DialogModal, null, {\n header: _withCtx(() => [\n _createElementVNode(\"h4\", _hoisted_1, _toDisplayString(_unref($ttt)(\"global.campaignAuthentication.txt_header\")), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AuthenticationDescription),\n (!isLoading.value)\n ? (_openBlock(), _createElementBlock(\"form\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(FormField, {\n field: phone.value,\n \"onUpdate:field\": _cache[0] || (_cache[0] = ($event: any) => (fieldUpdated($event)))\n }, null, 8, [\"field\"])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (isLoading.value)\n ? (_openBlock(), _createBlock(LoadIndicator, { key: 1 }))\n : _createCommentVNode(\"\", true)\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (closeModal())),\n class: \"mt-15 ml-10 py-10 px-[25px] rounded-sm bg-text-sc-black/10 hover:bg-text-sc-black/5\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_close\")), 1),\n _createElementVNode(\"button\", {\n disabled: isFormInValid.value,\n onClick: _cache[2] || (_cache[2] = ($event: any) => (submitForm())),\n class: \"mt-15 ml-10 py-10 px-20 rounded-sm enabled:hover:bg-confirmation-green/80 bg-confirmation-green text-white disabled:hover:cursor-default disabled:opacity-40\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_ok\")), 9, _hoisted_5)\n ])\n ]),\n _: 1\n }))\n}\n}\n\n})","\n\n\n","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, unref as _unref, createVNode as _createVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bg-header-background-color text-header-text-color\" }\n\nimport LanguageSwitcher from \"./LanguageSwitcher.vue\";\nimport TopBanner from \"./TopBanner.vue\";\nimport HeaderContent from \"./HeaderContent.vue\";\nimport LoginBar from \"./LoginBar.vue\";\nimport { hasLoginSupport } from \"@/services/campaignApp.service\";\nimport { hasCMTokenInURL } from \"@/services/url.service\";\nimport SportsMatchHeader from \"../SportsMatchHeader.vue\";\nimport { hasSportsHeaderEnabled } from \"@/services/sports/campaignSportsHeader.service\";\n\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'CampaignHeader',\n props: {\n canShowLanguageSwitcher: {\n type: Boolean,\n default: true,\n },\n},\n setup(__props) {\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"header\", _hoisted_1, [\n (__props.canShowLanguageSwitcher)\n ? (_openBlock(), _createBlock(LanguageSwitcher, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(hasSportsHeaderEnabled))\n ? (_openBlock(), _createBlock(SportsMatchHeader, { key: 1 }))\n : _createCommentVNode(\"\", true),\n _createVNode(TopBanner),\n (_unref(hasLoginSupport)() && !_unref(hasCMTokenInURL)())\n ? (_openBlock(), _createBlock(LoginBar, { key: 2 }))\n : _createCommentVNode(\"\", true),\n _createVNode(HeaderContent)\n ]))\n}\n}\n\n})","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeStyle as _normalizeStyle, Fragment as _Fragment, createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"mobileXl:flex mobileXl:justify-end mobileXl:items-center bg-header-text-color/5 text-header-text-color w-[70%] mobileXl:w-full mt-60 mobileXl:mt-20 m-20 mb-0 p-20 rounded-small\" }\nconst _hoisted_2 = [\"src\"]\nconst _hoisted_3 = {\n key: 1,\n class: \"flex flex-col flex-wrap mobileXl:w-full mobileXl:flex-row mobileXl:justify-between mobileXl:items-center\"\n}\nconst _hoisted_4 = { class: \"mobileXl:inline-flex mobileXl:gap-10\" }\nconst _hoisted_5 = { class: \"mb-10 mobileXl:mb-0 overflow-hidden text-ellipsis whitespace-nowrap\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"font-bold ml-5\"\n}\nconst _hoisted_7 = {\n key: 1,\n class: \"opacity-50 mobileXl:opacity-100 mobileXl:font-bold break-words whitespace-normal leading-6\"\n}\n\nimport {\n faCheck,\n faBuilding,\n faMobileAlt,\n faSignInAlt,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { faIdCard } from \"@fortawesome/free-regular-svg-icons\";\nimport { faFacebook } from \"@fortawesome/free-brands-svg-icons\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { ref, watch } from \"vue\";\nimport { getDisplayableAuthOptions } from \"@/services/auth/campaignAppAuthenticationOptions.service\";\nimport { IDisplayableAuthenticationOption } from \"@/models/campaign/displayableAuthenticationOption._model\";\nimport { openAuthSelectionModal } from \"@/services/auth/authModal.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport {\n clearLoginState,\n isLoggedIn,\n loginState,\n} from \"@/services/loginState.service\";\nimport { logout, login as authLogin } from \"@/services/auth/auth.service\";\nimport { ICampaignAppAuthenticationOption } from \"@/models/authentication/campaignAppAuthenticationOption.model\";\nimport { hasLoginSupport } from \"@/services/campaignApp.service\";\nimport { hasCMTokenInURL } from \"@/services/url.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'LoginBar',\n setup(__props) {\n\nlibrary.add(faFacebook, faMobileAlt, faSignInAlt, faIdCard, faBuilding);\n\nconst user = ref<{ nickname: string; displayName: string }>();\nconst displayableAuthOptions = getDisplayableAuthOptions();\nlet displayableBrandLoginButton = ref();\nlet displayableSimpleLoginButton = ref();\n\nif (\n displayableAuthOptions.complex.length === 1 &&\n !displayableAuthOptions.simple\n) {\n displayableBrandLoginButton.value = displayableAuthOptions.complex[0];\n displayableBrandLoginButton.value.name =\n displayableAuthOptions.complex[0].option.brandName ||\n displayableAuthOptions.complex[0].option._type;\n} else if (\n displayableAuthOptions.simple &&\n displayableAuthOptions.complex.length === 0\n) {\n displayableSimpleLoginButton.value = displayableAuthOptions.simple;\n}\n\nasync function login(option?: ICampaignAppAuthenticationOption) {\n (option ? Promise.resolve(option) : openAuthSelectionModal())\n .then((result) => {\n return result\n ? authLogin(result as ICampaignAppAuthenticationOption)\n : Promise.resolve();\n })\n .then(updateUser, () => {\n /* empty */\n });\n}\n\nasync function logOut() {\n if (hasCMTokenInURL()) {\n return;\n }\n\n await clearLoginState();\n await logout();\n}\n\nfunction updateUser() {\n if (isLoggedIn.value) {\n user.value = {\n displayName: loginState.value?.displayName as string,\n nickname: loginState.value?.nickName as string,\n };\n }\n}\n\nwatch(loginState, updateUser);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"mobileXl:flex-none flex w-full justify-center\", { '!hidden': !_unref(hasLoginSupport)() || _unref(hasCMTokenInURL)() }])\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n (!user.value)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (_unref(displayableBrandLoginButton))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (login(_unref(displayableBrandLoginButton).option))),\n class: \"py-10 px-20 mobileXl:mx-0 mx-auto flex items-center hover:brightness-90 rounded-sm shadow-[0_3px_6px_0_rgba(0,0,0,0.15)] text-base tracking-[0.4px] text-center\",\n style: _normalizeStyle(_unref(displayableBrandLoginButton).brandSpecificButtonStyles)\n }, [\n (\n !_unref(displayableBrandLoginButton).displayableImageIconUrl &&\n _unref(displayableBrandLoginButton).iconCssClass\n )\n ? (_openBlock(), _createBlock(_unref(FontAwesomeIcon), {\n key: 0,\n class: \"mr-20 text-sm\",\n icon: _unref(displayableBrandLoginButton).iconCssClass\n }, null, 8, [\"icon\"]))\n : _createCommentVNode(\"\", true),\n (_unref(displayableBrandLoginButton).displayableImageIconUrl)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n class: \"h-15 inline-block mr-20\",\n src: _unref(displayableBrandLoginButton).displayableImageIconUrl\n }, null, 8, _hoisted_2))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" \" + _toDisplayString(`${_unref($ttt)(\"tools.loginBar.btn_loginWith\")} ${\n _unref(displayableBrandLoginButton).name\n }`), 1)\n ], 4))\n : _createCommentVNode(\"\", true),\n (_unref(displayableSimpleLoginButton))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (login(_unref(displayableSimpleLoginButton).option))),\n class: \"py-10 px-20 mobileXl:mx-0 mx-auto flex items-center bg-primary-color text-primary-color-inverted-for-text hover:brightness-90 rounded-sm shadow-[0_3px_6px_0_rgba(0,0,0,0.15)] text-base tracking-[0.4px] text-center\",\n style: _normalizeStyle(_unref(displayableSimpleLoginButton).brandSpecificButtonStyles)\n }, [\n (\n !_unref(displayableSimpleLoginButton).displayableImageIconUrl &&\n _unref(displayableSimpleLoginButton).iconCssClass\n )\n ? (_openBlock(), _createBlock(_unref(FontAwesomeIcon), {\n key: 0,\n class: \"mr-20 text-sm\",\n icon: _unref(displayableSimpleLoginButton).iconCssClass\n }, null, 8, [\"icon\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" \" + _toDisplayString(_unref($ttt)(\"tools.loginBar.btn_login\")), 1)\n ], 4))\n : _createCommentVNode(\"\", true),\n (!_unref(displayableBrandLoginButton) && !_unref(displayableSimpleLoginButton))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 2,\n onClick: _cache[2] || (_cache[2] = ($event: any) => (login())),\n class: \"py-10 px-20 mobileXl:mx-0 mx-auto flex items-center bg-primary-color text-primary-color-inverted-for-text hover:brightness-90 rounded-sm shadow-[0_3px_6px_0_rgba(0,0,0,0.15)] text-base tracking-[0.4px] text-center\"\n }, _toDisplayString(_unref($ttt)(\"tools.loginBar.btn_login\")), 1))\n : _createCommentVNode(\"\", true)\n ], 64))\n : _createCommentVNode(\"\", true),\n (user.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fas fa-check text-header-text-color mr-10 text-sm\",\n icon: _unref(faCheck)\n }, null, 8, [\"icon\"]),\n _createTextVNode(\" \" + _toDisplayString(_unref($ttt)(\"global.login.txt_hello\")), 1)\n ]),\n (user.value?.nickname)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, _toDisplayString(user.value?.nickname), 1))\n : _createCommentVNode(\"\", true),\n (user.value?.displayName)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString(user.value?.displayName), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"button\", {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (logOut())),\n class: \"py-10 px-20 mobileXl:mx-0 mx-auto mobileXl:mt-0 mt-20 flex items-center bg-primary-color text-primary-color-inverted-for-text hover:brightness-90 rounded-sm shadow-[0_3px_6px_0_rgba(0,0,0,0.15)] text-base tracking-[0.4px] text-center\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_logout\")), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ], 2))\n}\n}\n\n})","\n\n\n","import { $ttt } from \"@/mixins/i18n.mixin\";\nimport { ILoginState } from \"@/models/authentication/loginState.model\";\nimport { saveParticipation } from \"@/services/auth/auth.service\";\nimport {\n handleIfEmbedded,\n isEmbedded as _isEmbedded,\n scrollToPosition,\n} from \"@/services/auth/embedding.service\";\nimport {\n AUTH_CANCELLED_ERROR_NAME,\n LOGIN_SELECTION_CANCELLED_ERROR_NAME,\n} from \"@/services/auth/utility/authCommonError.service\";\nimport { useCampaignStatus } from \"@/services/campaignStatus.service\";\nimport { useCustomCSS } from \"@/services/customCSS.service\";\nimport { useCustomJS } from \"@/services/customJS.service\";\nimport { errorService } from \"@/services/error.service\";\nimport {\n sendCampaignEvent,\n GOOGLE_ANALYTICS_EVENTS,\n} from \"@/services/googleAnalytics.service\";\nimport { translateCampaignSetting } from \"@/services/i18n.service\";\nimport { isLoggedIn } from \"@/services/loginState.service\";\nimport {\n normalizeCampaignState,\n registerAsStateConsumer,\n} from \"@/services/stateProcessor.service\";\nimport { ref, computed, onMounted, Ref } from \"vue\";\n\nexport function signUp() {\n useCustomJS();\n useCustomCSS();\n\n onMounted(() => {\n registerAsStateConsumer({\n normalizer: ({ resolve, state }) => {\n if (state) {\n submit();\n }\n\n resolve();\n },\n });\n normalizeCampaignState();\n handleIfEmbedded();\n });\n\n const campaignStatus = useCampaignStatus(\"submission\");\n const showSubmissionResponse = ref(false);\n const isSaving = ref(false);\n const isEmbedded = ref(_isEmbedded);\n const hasDuplicateParticipation = ref(false);\n const isAuthenticating = ref(false);\n const signUpButtonText = translateCampaignSetting(\"signUpButtonText\");\n const canShowSubmissionResponse = computed(\n () => isLoggedIn.value && showSubmissionResponse.value\n );\n const canShowSubmitBtn = computed(\n () =>\n !canShowSubmissionResponse.value &&\n !hasDuplicateParticipation.value &&\n !isSaving.value &&\n !isAuthenticating.value\n );\n\n const submit = () => {\n errorService.clearErrorMessage();\n saveParticipation().then(\n (result) => {\n const loginState = result as Ref;\n\n if (!loginState.value?.isNew) {\n hasDuplicateParticipation.value = true;\n errorService.errorMessage = $ttt(\n \"campaign.signUp.txt_duplicateMessage\"\n );\n } else {\n sendCampaignEvent(GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.SU.SIGNED_UP);\n showSubmissionResponse.value = true;\n }\n\n scrollToResponseWrapper();\n },\n ({ message }) => {\n if (\n message !== AUTH_CANCELLED_ERROR_NAME &&\n message !== LOGIN_SELECTION_CANCELLED_ERROR_NAME\n ) {\n errorService.errorMessage = $ttt(\"campaign.signUp.err_errorOnSubmit\");\n }\n }\n );\n };\n\n return {\n campaignStatus,\n canShowSubmissionResponse,\n isSaving,\n isEmbedded,\n hasDuplicateParticipation,\n isAuthenticating,\n signUpButtonText,\n canShowSubmitBtn,\n submit,\n };\n}\n\nfunction scrollToResponseWrapper() {\n const element = document.querySelector(\".response-wrapper\");\n\n if (!element) {\n return;\n }\n\n if (_isEmbedded.value) {\n scrollToPosition(element);\n } else {\n element.scrollIntoView();\n }\n}\n","import {\n handleIfEmbedded,\n isEmbedded as _isEmbedded,\n} from \"@/services/auth/embedding.service\";\nimport { useCampaignStatus } from \"@/services/campaignStatus.service\";\nimport { useCustomCSS } from \"@/services/customCSS.service\";\nimport { useCustomJS } from \"@/services/customJS.service\";\nimport { isLoggedIn } from \"@/services/loginState.service\";\nimport {\n normalizeCampaignState,\n registerAsStateConsumer,\n} from \"@/services/stateProcessor.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { getCampaignSettingValue } from \"@/services/settings.service\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport {\n DisplayablePlayer,\n getMatchParticipantPlayers,\n getSportsDataFromPublicData,\n getSportsTeamsInfo,\n} from \"@/services/sports/sports.service\";\nimport { computed, onMounted, Ref, ref, watch } from \"vue\";\nimport {\n CampaignSportsMatchVote,\n SportsMatchVotingPrivateData,\n} from \"@/models/campaign/sportsMatchVoting/sportsMatchVotingPrivateData._model\";\nimport { createVote, removeVote } from \"./vote.service\";\nimport { getPrivateData } from \"@/services/privateData.service\";\nimport { saveParticipation } from \"@/services/auth/auth.service\";\nimport {\n AUTH_CANCELLED_ERROR_NAME,\n LOGIN_SELECTION_CANCELLED_ERROR_NAME,\n} from \"@/services/auth/utility/authCommonError.service\";\nimport {\n GOOGLE_ANALYTICS_EVENTS,\n sendCampaignEvent,\n} from \"@/services/googleAnalytics.service\";\n\nimport { CampaignSportsMatchWinner } from \"@/models/campaign/sportsMatchVoting/sportsMatchVotingPublicData._model\";\nimport { errorService } from \"@/services/error.service\";\nimport { StateObj } from \"@/services/campaignState.service\";\n\nconst SINGLE_VOTING_MODE = \"single\";\n\nconst { match, sportsTeams, matchParticipants, sportsPlayers, winner } =\n getSportsDataFromPublicData();\n\nconst matchParticipantsPlayers = ref(\n getMatchParticipantPlayers({\n match,\n sportsTeams,\n matchParticipants,\n sportsPlayers,\n winner,\n })\n);\n\nconst {\n homeTeam,\n awayTeam,\n homeTeamName,\n awayTeamName,\n isHomeTeamEnabled,\n isAwayTeamEnabled,\n isHomeTeamSelected,\n} = getSportsTeamsInfo({\n match,\n sportsTeams,\n});\n\nif (winner) {\n isHomeTeamSelected.value = handleWinner(\n winner,\n matchParticipantsPlayers,\n isHomeTeamSelected.value\n )._isHomeTeamSelected;\n}\n\nconst hasHomeTeamVotes = ref(false);\nconst hasAwayTeamVotes = ref(false);\nconst hasVoteChangeInProgress = ref(false);\nconst votes = ref([]);\nconst isLoadingVotePrivateData = ref(false);\nconst votedMessage = ref(null);\nconst voteCanceledMessage = ref(null);\nconst campaignStatus = useCampaignStatus(\"voting\");\nconst isSingleVotingMode =\n getCampaignSettingValue(\"votingMode\") === SINGLE_VOTING_MODE;\nconst showSubmissionResponse = ref(false);\nconst isSaving = ref(false);\nconst isEmbedded = ref(_isEmbedded);\nconst canShowSubmissionResponse = computed(\n () => isLoggedIn.value && showSubmissionResponse.value\n);\nconst lastClickedPlayer = ref(null);\n\nconst players = computed(() => {\n return isHomeTeamSelected.value\n ? matchParticipantsPlayers.value.home\n : matchParticipantsPlayers.value.away;\n});\n\nconst hasVoteTogglingDisabled = computed(() => {\n return isLoadingVotePrivateData.value || hasVoteChangeInProgress.value;\n});\n\nconst hasVotingDisabled = computed(() => {\n return (\n hasVoteTogglingDisabled.value || (isSingleVotingMode && votes.value.length)\n );\n});\n\nwatch(\n () => votes.value.length,\n () => {\n let _hasHomeTeamVotes = false;\n let _hasAwayTeamVotes = false;\n\n const homeTeamId = homeTeam?.id;\n const awayTeamId = awayTeam?.id;\n const votePlayerIds = (votes.value || []).map(\n (vote) => vote.sportsPlayerId\n );\n\n matchParticipantsPlayers.value.all\n .filter((p) => votePlayerIds.includes(p.sportsPlayerId))\n .every((p) => {\n if (!votePlayerIds.includes(p.sportsPlayerId)) {\n return true;\n }\n\n const teamId = p.sportsTeamId;\n\n _hasHomeTeamVotes =\n _hasHomeTeamVotes || `${teamId}` === `${homeTeamId}`;\n _hasAwayTeamVotes =\n _hasAwayTeamVotes || `${teamId}` === `${awayTeamId}`;\n\n return isSingleVotingMode\n ? !_hasHomeTeamVotes && !_hasAwayTeamVotes\n : !_hasHomeTeamVotes || !_hasAwayTeamVotes;\n });\n\n hasHomeTeamVotes.value = _hasHomeTeamVotes;\n hasAwayTeamVotes.value = _hasAwayTeamVotes;\n }\n);\n\nwatch(isLoggedIn, async () => {\n if (isLoggedIn.value) {\n await loadVotes();\n }\n});\n\nexport function sportsMatchVoting() {\n useCustomJS();\n useCustomCSS();\n\n onMounted(async () => {\n registerAsStateConsumer({\n serializer: ({ resolve }) => {\n const state: StateObj = {\n vote: {\n playerId: lastClickedPlayer.value?.id ?? null,\n },\n };\n\n resolve(state);\n return state;\n },\n normalizer: ({ resolve, state }) => {\n if (state) {\n const vote = state[\"vote\"];\n\n if (vote) {\n const selectedPlayer = players.value.find(\n (player) => player.id === (vote as any)[\"playerId\"]\n );\n\n if (selectedPlayer && !selectedPlayer?.isSelected) {\n togglePlayerSelection(selectedPlayer);\n }\n }\n }\n resolve();\n },\n });\n normalizeCampaignState();\n\n handleIfEmbedded();\n\n isLoadingVotePrivateData.value = true;\n\n try {\n await loadVotes();\n } catch {\n // ignore\n } finally {\n isLoadingVotePrivateData.value = false;\n }\n });\n\n return {\n campaignStatus,\n canShowSubmissionResponse,\n isSaving,\n isEmbedded,\n homeTeamName,\n awayTeamName,\n isHomeTeamEnabled,\n isAwayTeamEnabled,\n isHomeTeamSelected,\n players,\n hasVotingDisabled,\n hasHomeTeamVotes,\n hasAwayTeamVotes,\n votedMessage,\n voteCanceledMessage,\n\n togglePlayerSelection,\n };\n}\n\nasync function loadVotes() {\n const data = (await getPrivateData()) as SportsMatchVotingPrivateData;\n\n votes.value = data.campaignSportsMatchVotes.campaignSportsMatchVotes || [];\n markVotes(votes);\n}\n\nfunction markVotes(votes: Ref) {\n votes.value.forEach((vote) => {\n const participant = matchParticipantsPlayers.value.all.find(\n (pp) => `${pp.sportsPlayerId}` === `${vote.sportsPlayerId}`\n );\n\n if (participant) {\n participant.vote = vote;\n participant.isSelected = true;\n }\n });\n}\n\nfunction handleWinner(\n winner: CampaignSportsMatchWinner,\n matchParticipantPlayers = matchParticipantsPlayers,\n _isHomeTeamSelected = true\n) {\n const winnerParticipant =\n winner &&\n matchParticipantPlayers.value.all.find(\n (pp) => `${pp.id}` === `${winner.id}`\n );\n\n if (winnerParticipant) {\n winnerParticipant.isWinner = true;\n\n if (\n (winnerParticipant.isFromHomeTeam && !_isHomeTeamSelected) ||\n (!winnerParticipant.isFromHomeTeam && _isHomeTeamSelected)\n ) {\n _isHomeTeamSelected = !_isHomeTeamSelected;\n }\n }\n\n return {\n winnerParticipant,\n _isHomeTeamSelected: _isHomeTeamSelected,\n };\n}\n\nfunction togglePlayerSelection(player: DisplayablePlayer) {\n if (\n hasVoteTogglingDisabled.value ||\n campaignStatus.isAfterActivity ||\n campaignStatus.isBeforeActivity\n ) {\n return;\n }\n\n lastClickedPlayer.value = player;\n\n saveParticipation().then(\n () => {\n if (!player.isSelected) {\n if (!hasVotingDisabled.value) {\n saveVote(player);\n }\n } else if (player.vote) {\n deleteVote(player);\n }\n\n sendCampaignEvent(GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.SMV.VOTE);\n },\n ({ message }) => {\n if (\n message !== AUTH_CANCELLED_ERROR_NAME &&\n message !== LOGIN_SELECTION_CANCELLED_ERROR_NAME\n ) {\n errorService.errorMessage = $ttt(\"campaign.error.err_errorOccurred\");\n }\n }\n );\n}\n\nasync function saveVote(player: DisplayablePlayer) {\n hasVoteChangeInProgress.value = true;\n player.isSelected = true;\n player.isBeingSaved = true;\n\n try {\n const response = await createVote({\n campaignSportsMatchVotes: {\n campaignAppGuid: campaignApp.guid,\n sportsPlayerId: player.sportsPlayerId,\n },\n });\n\n if (response) {\n votes.value.push(response as CampaignSportsMatchVote);\n player.vote = response as CampaignSportsMatchVote;\n indicateAsSaved(player);\n voteCanceledMessage.value = null;\n votedMessage.value = $ttt(\"campaign.sportsMatchVoting.txt_voteSaved\");\n errorService.clearErrorMessage();\n showSubmissionResponse.value = true;\n\n if (!isSingleVotingMode) {\n await loadVotes(); // in case someone already voted on some other player and was not logged in\n }\n }\n } catch (err: unknown) {\n player.isSelected = false;\n\n if ((err as Response).status === 409) {\n await loadVotes();\n voteCanceledMessage.value = null;\n\n if (isSingleVotingMode) {\n errorService.raiseErrorMessage(\n $ttt(\"campaign.sportsMatchVoting.err_alreadyVotedOnSingle\")\n );\n } else {\n errorService.raiseErrorMessage(\n $ttt(\"campaign.sportsMatchVoting.err_alreadyVoted\")\n );\n }\n } else {\n errorService.raiseErrorMessage(\n $ttt(\"campaign.sportsMatchVoting.err_voteWasNotSaved\")\n );\n }\n }\n\n player.isBeingSaved = false;\n hasVoteChangeInProgress.value = false;\n}\n\nasync function deleteVote(player: DisplayablePlayer) {\n hasVoteChangeInProgress.value = true;\n player.isBeingSaved = true;\n player.isSelected = false;\n\n try {\n if (!player.vote || !player.vote.id) {\n return;\n }\n\n await removeVote(player.vote.id);\n\n votes.value.splice(votes.value.indexOf(player.vote), 1);\n player.vote = undefined;\n indicateAsSaved(player);\n votedMessage.value = null;\n voteCanceledMessage.value = $ttt(\n \"campaign.sportsMatchVoting.txt_voteCancelSaved\"\n );\n errorService.clearErrorMessage();\n showSubmissionResponse.value = false;\n } catch (err) {\n player.isSelected = true;\n }\n\n player.isBeingSaved = false;\n hasVoteChangeInProgress.value = false;\n}\n\nfunction indicateAsSaved(player: DisplayablePlayer) {\n player.isSaved = true;\n setTimeout(() => (player.isSaved = false), 1100); // 0.3 show 0.5 stay 0.3 hide\n}\n","import { del, post } from \"@/services/http.service\";\n\nconst ENDPOINT = `campaignapplive/sportsMatchVoting/campaignSportsMatchVotes`;\n\nexport async function createVote(player: unknown): Promise {\n return await post(ENDPOINT, JSON.stringify(player));\n}\n\nexport async function removeVote(id: string | number): Promise {\n return await del(ENDPOINT, id);\n}\n","import { $to } from \"@/mixins/i18n.mixin\";\nimport {\n VotingCategory,\n} from \"@/models/campaign/voting/votingPublicData._model\";\nimport { DisplayableVotingCategoryType } from \"./displayableVotingCategoryType.class\";\n\nexport class DisplayableVotingCategory implements VotingCategory {\n // model\n id: string;\n name: string;\n votingCategoryTypeId: number;\n\n // custom runtime model\n votingCategoryType?: DisplayableVotingCategoryType;\n\n constructor(dto: VotingCategory) {\n this.id = dto.id;\n this.votingCategoryTypeId = dto.votingCategoryTypeId;\n\n // custom overrides\n this.name = $to(dto, \"name\", \"votingCategory\");\n }\n}\n","import { $to } from \"@/mixins/i18n.mixin\";\nimport {\n VotingCategory,\n VotingCategoryType,\n} from \"@/models/campaign/voting/votingPublicData._model\";\n\nexport class DisplayableVotingCategoryType implements VotingCategoryType {\n // model\n id: string;\n name: string;\n links?: { votingCategories: string[] };\n\n // custom runtime model\n selectedCategoryId = \"\";\n votingCategories?: VotingCategory[];\n\n constructor(dto: VotingCategoryType) {\n this.id = dto.id;\n this.links = dto.links;\n\n // custom overrides\n this.name = $to(dto, \"name\", \"votingCategoryType\");\n }\n\n // custom features\n get selectedCategory() {\n return this.votingCategories?.find(\n (vc) => `${vc.id}` === `${this.selectedCategoryId}`\n );\n }\n}\n","import { $to } from \"@/mixins/i18n.mixin\";\nimport {\n VotingItem,\n VotingItemImage,\n VotingVote,\n} from \"@/models/campaign/voting/votingPublicData._model\";\nimport { getSingleFileUrl } from \"@/services/files.service\";\nimport { DisplayableVotingCategory } from \"./displayableVotingCategory.class\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\n\nexport class DisplayableVotingItem implements VotingItem {\n // model\n id: string;\n ingress?: string | undefined;\n description?: string | undefined;\n isRemoved: boolean;\n itemShareUrl: string;\n title: string;\n videoThumbnailFileMetaDataId?: string | undefined;\n videoUrl?: string | undefined;\n voteCount: number;\n votePercentage: number;\n links?:\n | { votingItemCategories?: string[]; votingItemImages?: string[] }\n | undefined;\n\n // custom runtime model\n votingCategories?: DisplayableVotingCategory[];\n votingItemImages?: VotingItemImage[] = [];\n hasVideoPreviewImage = false;\n hasGalleryPreview = false;\n previewImage?: string;\n votingVotes?: VotingVote[];\n hasPlaceholderPreviewImage? = false;\n mainImage?: string = undefined;\n sortedImages?: VotingItemImage[] = [];\n\n constructor(dto: VotingItem) {\n this.id = dto.id;\n this.isRemoved = dto.isRemoved;\n this.itemShareUrl = dto.itemShareUrl;\n this.videoThumbnailFileMetaDataId = dto.videoThumbnailFileMetaDataId;\n this.videoUrl = dto.videoUrl;\n this.voteCount = dto.voteCount;\n this.votePercentage = dto.votePercentage;\n this.links = dto.links;\n\n // custom overrides\n this.title = $to(dto, \"title\", \"votingItem\");\n this.ingress = $to(dto, \"ingress\", \"votingItem\");\n this.description = $to(dto, \"description\", \"votingItem\");\n }\n\n // custom features\n get videoThumbnail() {\n return this.videoThumbnailFileMetaDataId\n ? getSingleFileUrl(\n `${this.videoThumbnailFileMetaDataId}`,\n campaignApp.guid\n )\n : null;\n }\n\n evaluateImages() {\n this.sortedImages = this.votingItemImages?.sort(\n (a, b) => a.ordinal - b.ordinal\n );\n this.mainImage =\n this.sortedImages && this.sortedImages.length\n ? getSingleFileUrl(\n `${this.sortedImages[0]?.fileMetaDataId}`,\n campaignApp.guid\n )\n : undefined;\n\n if (this.videoUrl) {\n this.hasVideoPreviewImage = true;\n\n if (this.videoThumbnail) {\n this.previewImage = this.videoThumbnail;\n } else {\n this.hasPlaceholderPreviewImage = true;\n this.previewImage = require(\"@/assets/images/video-placeholder-1-1.png\");\n }\n } else if (this.sortedImages?.length) {\n this.hasGalleryPreview = true;\n this.previewImage = this.mainImage;\n } else {\n this.previewImage = require(\"@/assets/images/image-placeholder-300x160.png\");\n this.hasPlaceholderPreviewImage = true;\n }\n }\n}\n","import { VotingPublicData } from \"@/models/campaign/voting/votingPublicData._model\";\nimport {\n handleIfEmbedded,\n isEmbedded as _isEmbedded,\n scrollToPosition,\n} from \"@/services/auth/embedding.service\";\nimport { useCampaignStatus } from \"@/services/campaignStatus.service\";\nimport { useCustomCSS } from \"@/services/customCSS.service\";\nimport { useCustomJS } from \"@/services/customJS.service\";\nimport { isLoggedIn } from \"@/services/loginState.service\";\nimport { PUBLIC_DATA } from \"@/services/publicData.service\";\nimport {\n normalizeCampaignState,\n registerAsStateConsumer,\n} from \"@/services/stateProcessor.service\";\nimport { ref, computed, onMounted, reactive, watch } from \"vue\";\nimport { DisplayableVotingCategoryType } from \"../models/displayableVotingCategoryType.class\";\nimport { DisplayableVotingCategory } from \"../models/displayableVotingCategory.class\";\nimport { DisplayableVotingItem } from \"../models/displayableVotingItem.class\";\nimport { processVotingItemsPagePayload } from \"./votingItems.service\";\nimport { isAuthenticating } from \"@/services/auth/auth.service\";\nimport {\n getVotingItemsPage,\n getProcessedVotingItem,\n} from \"./votingItems.service\";\nimport { getLanguageCodeToSearchBy } from \"@/services/i18n.service\";\nimport { debounce } from \"@/utils/utils\";\nimport { saveParticipation } from \"@/services/auth/auth.service\";\nimport {\n GOOGLE_ANALYTICS_EVENTS,\n sendCampaignEvent,\n} from \"@/services/googleAnalytics.service\";\nimport {\n AUTH_CANCELLED_ERROR_NAME,\n LOGIN_SELECTION_CANCELLED_ERROR_NAME,\n} from \"@/services/auth/utility/authCommonError.service\";\nimport { createVote } from \"./votingVotes.service\";\nimport { getPrivateData } from \"@/services/privateData.service\";\nimport {\n VotingVote,\n VotingVotesPrivateData,\n} from \"@/models/campaign/voting/votingPrivateData._model\";\nimport { createQueryForFbShare, shareOnFb } from \"@/services/facebook.service\";\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"@/services/settings.service\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport { errorService } from \"@/services/error.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { StateObj } from \"@/services/campaignState.service\";\n\n//#region consts\nconst {\n votingCategoryTypes,\n votingItems,\n votingCategories,\n votingItemsMetadata,\n} = _extractVotingItemData();\n\nconst campaignStatus = useCampaignStatus(\"voting\");\nconst showSubmissionResponse = ref(false);\nconst isSaving = ref(false);\nconst isEmbedded = ref(_isEmbedded);\nconst canShowSubmissionResponse = computed(\n () => isLoggedIn.value && showSubmissionResponse.value\n);\nconst lastVotedItem = ref();\n\n// items\nconst showItemCount = getCampaignBooleanSettingValue(\"showItemCount\");\nconst hasAnyItem = computed(() =>\n Boolean(votingItems && votingItems.value.length)\n);\nconst isLoadingAnything = false; // TODO are those needed?\nconst hasToRecalculatePages = false; // TODO are those needed?\nconst cantShowNoItemsInfo = computed(\n () => isLoadingAnything || hasToRecalculatePages\n);\nconst hasNoItemsInFiltering = computed(\n () => !hasAnyItem.value && isFiltering.value\n);\nconst hasNoItemsNotFiltering = computed(\n () => !hasAnyItem.value && !isFiltering.value\n);\nconst canShowBackButton = computed(\n () =>\n hasNoItemsNotFiltering.value &&\n Boolean(votingItemsMetadata.value.totalItemCount)\n);\nconst isLoadingItems = ref(false);\nconst currentPage = computed(() => votingItemsMetadata.value.pageIndex + 1);\n\n// routing\nconst singleItemLoadedByRoute = ref(null);\nconst ITEM_ROUTE = \"item\";\nconst currentPath = ref(window.location.hash);\nconst hasNextItem = ref(false);\nconst hasPrevItem = ref(false);\nconst isCalculatingNeighborItem = ref(false);\n\nwindow.addEventListener(\"hashchange\", () => {\n currentPath.value = window.location.hash;\n});\n\nconst isSingleItemView = computed(() => {\n return (currentPath.value.slice(1) || \"/\").split(\"/\")[1] === ITEM_ROUTE;\n});\n\nconst selectedSingleItem = ref(undefined);\n\nwatch(\n [currentPath, isSingleItemView],\n async () => {\n if (!isSingleItemView.value) {\n return;\n }\n\n const itemId = currentPath.value.split(\"/\")[2];\n\n if (!itemId) {\n return;\n }\n\n const itemInCurrentPage = votingItems.value.find(\n (item) => item.id === itemId\n );\n\n selectedSingleItem.value = itemInCurrentPage;\n\n if (!singleItemLoadedByRoute.value && !selectedSingleItem.value) {\n selectedSingleItem.value = await getProcessedVotingItem(\n itemId,\n votingCategories\n );\n }\n },\n { immediate: true }\n);\n\n// pagination and filtering\nconst VOTING_ITEMS_MAX_PAGES = 5;\nconst FILTERING_DEBOUNCE_TIMEOUT = 1000;\nconst showCategoryFilter = getCampaignBooleanSettingValue(\"showCategoryFilter\");\nconst showSearchTextFilter = getCampaignBooleanSettingValue(\"showTextFilter\");\nlet selectedCategories: null | DisplayableVotingCategory[] = null;\nconst isFiltering = ref(false);\nconst isReloadingAfterFiltering = ref(false);\nconst searchText = ref(\"\");\n\n// voting\nconst votes = ref([]);\nconst votingMode: \"one\" | \"many\" | \"custom\" = getCampaignSettingValue(\n \"votingMode\"\n) as \"one\" | \"many\" | \"custom\";\nconst votingModeCustomCount = getCampaignSettingValue(\"votingModeCustomCount\");\nconst votedMessage = ref(null);\nconst canPlaceVotes = computed(() =>\n Boolean(\n (votingMode === \"one\" && votes.value.length < 1) ||\n votingMode === \"many\" ||\n (votingMode === \"custom\" &&\n votingModeCustomCount &&\n votes.value.length < Number(votingModeCustomCount))\n )\n);\n\n//#endregion\n\n//#region main\nexport function voting() {\n useCustomJS();\n useCustomCSS();\n\n onMounted(async () => {\n registerAsStateConsumer({\n serializer: ({ resolve }) => {\n const state: StateObj = {\n currentPage: `${currentPage.value}`,\n searchText: searchText.value,\n selectedCategoriesIds:\n selectedCategories?.map((category) => category.id) ?? null,\n vote: {\n itemId: lastVotedItem.value?.id ?? null,\n },\n };\n\n if (selectedSingleItem.value) {\n state.selectedSingleItemId = selectedSingleItem.value?.id;\n }\n\n resolve(state);\n\n return state;\n },\n normalizer: async ({ resolve, state }) => {\n if (state) {\n if (state.searchText) {\n searchText.value = `${state.searchText}`;\n }\n\n if (\n !state.searchText &&\n state.selectedCategoriesIds &&\n state.selectedCategoriesIds.length\n ) {\n (state.selectedCategoriesIds as string[]).forEach(\n (selectedCategoryId) => {\n const votingCategoryType = votingCategoryTypes.find((vct) =>\n vct.votingCategories?.find(\n (vc) => vc.id === selectedCategoryId\n )\n );\n\n if (votingCategoryType) {\n votingCategoryType.selectedCategoryId = selectedCategoryId;\n }\n }\n );\n\n onSelectedCategoryChange();\n }\n\n if (\n !state.searchText &&\n state.currentPage &&\n Number(state.currentPage) > 0\n ) {\n await loadItemsPage(Number(state.currentPage) - 1);\n }\n\n if (state.selectedSingleItemId) {\n window.location.hash = `/${ITEM_ROUTE}/${state.selectedSingleItemId}`;\n\n singleItemLoadedByRoute.value = await getProcessedVotingItem(\n state.selectedSingleItemId as string,\n votingCategories\n );\n }\n\n const vote = state[\"vote\"];\n\n if (vote) {\n const votedItem = singleItemLoadedByRoute.value\n ? singleItemLoadedByRoute.value\n : votingItems.value.find(\n (item) => item.id === (vote as any)[\"itemId\"]\n );\n\n if (votedItem && !votedItem.votingVotes?.length) {\n sendVote(votedItem);\n }\n }\n }\n\n resolve();\n },\n });\n normalizeCampaignState();\n handleIfEmbedded();\n\n if (isSingleItemView.value) {\n const itemId = currentPath.value.split(\"/\")[2];\n\n if (itemId) {\n singleItemLoadedByRoute.value = await getProcessedVotingItem(\n itemId,\n votingCategories\n );\n }\n }\n\n try {\n await loadVotes();\n } catch (err) {\n // ignore\n }\n });\n\n return {\n campaignStatus,\n canShowSubmissionResponse,\n isSaving,\n isEmbedded,\n isAuthenticating,\n showItemCount,\n hasAnyItem,\n\n cantShowNoItemsInfo,\n hasNoItemsInFiltering,\n canShowBackButton,\n currentPage,\n singleItemLoadedByRoute,\n hasNextItem,\n hasPrevItem,\n isSingleItemView,\n selectedSingleItem,\n isCalculatingNeighborItem,\n VOTING_ITEMS_MAX_PAGES,\n isReloadingAfterFiltering,\n isFiltering,\n isLoadingItems,\n searchText,\n votedMessage,\n canPlaceVotes,\n lastVotedItem,\n showCategoryFilter,\n showSearchTextFilter,\n\n votingCategoryTypes,\n votingItems,\n votingCategories,\n votingItemsMetadata,\n\n navigateToSingleItemView,\n navigateToList,\n navigateToNextItem,\n navigateToPrevItem,\n onSelectedCategoryChange,\n pageChanged,\n loadItemsPage,\n getFilteringData,\n clearFilters,\n searchTextChanged,\n applyFiltering,\n debouncedApplyFiltering,\n sendVote,\n canShowVoteButton,\n shareItem,\n };\n}\n\n//#endregion\n\n//#region routing\nfunction navigateToSingleItemView(item: DisplayableVotingItem) {\n singleItemLoadedByRoute.value = null;\n window.location.hash = `/${ITEM_ROUTE}/${item.id}`;\n}\n\nfunction navigateToList() {\n window.location.hash = `/`;\n}\n\nasync function navigateToNextItem(item: DisplayableVotingItem) {\n isCalculatingNeighborItem.value = true;\n\n if (getNeighborItem(item, \"next\")) {\n navigateToSingleItemView(\n getNeighborItem(item, \"next\") as DisplayableVotingItem\n );\n } else {\n await loadItemsPage(currentPage.value - 1 + 1);\n\n navigateToSingleItemView(votingItems.value[0] as DisplayableVotingItem);\n }\n\n isCalculatingNeighborItem.value = false;\n}\n\nasync function navigateToPrevItem(item: DisplayableVotingItem) {\n isCalculatingNeighborItem.value = true;\n\n if (getNeighborItem(item, \"previous\")) {\n navigateToSingleItemView(getNeighborItem(item, \"previous\"));\n } else {\n await loadItemsPage(currentPage.value - 2);\n\n navigateToSingleItemView(votingItems.value[votingItems.value.length - 1]);\n }\n\n isCalculatingNeighborItem.value = false;\n}\n\nfunction getNeighborItem(\n item: DisplayableVotingItem,\n side: \"previous\" | \"next\"\n): DisplayableVotingItem {\n const itemIndex = votingItems.value.findIndex(\n (votingItem) => votingItem.id === item.id\n );\n\n return votingItems.value[\n itemIndex + (side === \"previous\" ? -1 : 1)\n ] as DisplayableVotingItem;\n}\n//#endregion\n\n//#region paging\nfunction onSelectedCategoryChange() {\n // gets currently selected per each type or all of that type if \"all\" is selected\n selectedCategories = votingCategoryTypes.reduce(\n (\n selected: DisplayableVotingCategory[],\n vct: DisplayableVotingCategoryType\n ) => {\n return [\n ...selected,\n ...(vct.selectedCategoryId\n ? [vct.selectedCategory as DisplayableVotingCategory]\n : []),\n ];\n },\n []\n );\n\n debouncedApplyFiltering();\n}\n\nasync function pageChanged(pageIndex: number) {\n loadItemsPage(pageIndex);\n}\n\nasync function loadItemsPage(pageIndex: number) {\n if (pageIndex < 0) {\n return;\n }\n\n isLoadingItems.value = true;\n\n const filters = getFilteringData();\n const pageData = await getVotingItemsPage(pageIndex, filters);\n\n const processedPageData = processVotingItemsPagePayload(\n pageData,\n votingCategories\n );\n\n votingItems.value = processedPageData.votingItems;\n votingItemsMetadata.value = processedPageData.votingItemsMetadata;\n\n isLoadingItems.value = false;\n\n await loadVotes();\n}\n\nfunction getFilteringData() {\n const filters = {\n categoryIds: selectedCategories?.map((c) => c.id),\n searchText: searchText.value,\n campaignAppGuid: campaignApp.guid,\n languageCode: getLanguageCodeToSearchBy(),\n };\n\n isFiltering.value =\n Boolean(filters.categoryIds?.length) || Boolean(filters.searchText);\n\n return filters;\n}\n\nfunction clearFilters() {\n votingCategoryTypes.forEach((vct) => {\n vct.selectedCategoryId = \"\";\n\n return vct;\n });\n\n searchText.value = \"\";\n onSelectedCategoryChange();\n}\n\nfunction searchTextChanged(event: Event) {\n searchText.value = (event.target as HTMLInputElement).value;\n debouncedApplyFiltering();\n}\n\nasync function applyFiltering() {\n isReloadingAfterFiltering.value = true;\n await loadItemsPage(0);\n isReloadingAfterFiltering.value = false;\n}\n\nconst debouncedApplyFiltering = debounce(\n applyFiltering,\n FILTERING_DEBOUNCE_TIMEOUT\n);\n//#endregion\n\nwatch(selectedSingleItem, () => {\n if (!votingItems || !votingItems.value) {\n return;\n }\n\n hasNextItem.value = Boolean(\n (selectedSingleItem.value &&\n getNeighborItem(selectedSingleItem.value, \"next\")) ||\n votingItemsMetadata.value.totalPageCount !== currentPage.value\n );\n\n hasPrevItem.value = Boolean(\n (selectedSingleItem.value &&\n getNeighborItem(selectedSingleItem.value, \"previous\")) ||\n currentPage.value !== 1\n );\n});\n\nwatch(isLoggedIn, async () => {\n await loadVotes();\n});\n\n//#region votes\n\nasync function loadVotes() {\n if (!isLoggedIn.value) {\n return;\n }\n\n const data = (await getPrivateData()) as VotingVotesPrivateData;\n\n votes.value = data.votingVotes.votingVotes;\n data.votingVotes.votingVotes.forEach((vote) => {\n const item =\n votingItems.value.find(\n (votingItem) => votingItem.id === `${vote.votingItemId}`\n ) || singleItemLoadedByRoute.value;\n\n if (item) {\n item.votingVotes = item.votingVotes?.length\n ? [...item.votingVotes, vote]\n : [vote];\n }\n });\n}\n\nfunction sendVote(item: DisplayableVotingItem) {\n if (item.votingVotes?.length) {\n return;\n }\n\n if (\n isSaving.value ||\n campaignStatus.isAfterActivity ||\n campaignStatus.isBeforeActivity\n ) {\n return;\n }\n\n lastVotedItem.value = item;\n\n saveParticipation()\n .then(\n () => {\n saveVote(item);\n },\n ({ message }) => {\n if (\n message !== AUTH_CANCELLED_ERROR_NAME &&\n message !== LOGIN_SELECTION_CANCELLED_ERROR_NAME\n ) {\n errorService.errorMessage = $ttt(\"campaign.error.err_errorOccurred\");\n }\n }\n )\n .finally(() => {\n scrollToResponseWrapper();\n });\n}\n\nasync function saveVote(item: DisplayableVotingItem) {\n isSaving.value = true;\n\n try {\n const response = await createVote({\n votingVotes: {\n campaignAppGuid: campaignApp.guid,\n links: {\n votingItem: item.id,\n },\n },\n });\n\n if (response) {\n sendCampaignEvent(GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.V.VOTE, item.id);\n votes.value.push(response.votingVotes);\n errorService.clearErrorMessage();\n showSubmissionResponse.value = true;\n votedMessage.value = $ttt(\"campaign.voting.txt_voteSaved\");\n item.voteCount++;\n\n await loadVotes();\n }\n } catch (err: unknown) {\n votedMessage.value = null;\n\n if ((err as Response).status === 409) {\n await loadVotes();\n\n errorService.raiseErrorMessage($ttt(\"campaign.voting.err_alreadyVoted\"));\n } else {\n errorService.raiseErrorMessage(\n $ttt(\"campaign.voting.err_voteWasNotSaved\")\n );\n }\n } finally {\n isSaving.value = false;\n }\n}\n\nfunction canShowVoteButton(item: DisplayableVotingItem) {\n return Boolean(item.votingVotes?.length);\n}\n\n//#endregion\n\nfunction shareItem(item: DisplayableVotingItem) {\n shareOnFb(createQueryForFbShare(item.itemShareUrl));\n}\n\nfunction scrollToResponseWrapper() {\n const element = document.querySelector(\".response-wrapper\");\n\n if (!element) {\n return;\n }\n\n if (_isEmbedded.value) {\n scrollToPosition(element);\n } else {\n element.scrollIntoView();\n }\n}\n\nfunction _extractVotingItemData() {\n const publicData = PUBLIC_DATA as VotingPublicData;\n\n const votingCategoryTypes =\n publicData.votingCategoryTypes.votingCategoryTypes?.map(\n (vct) => new DisplayableVotingCategoryType(vct)\n );\n const votingCategories =\n publicData.votingCategoryTypes.linked.votingCategories?.map(\n (vc) => new DisplayableVotingCategory(vc)\n );\n\n // -- bind data together\n // --- VCT & VC\n votingCategories?.forEach((category) => {\n // find VCT\n const categoryType = votingCategoryTypes.find(\n (categoryType) =>\n category.votingCategoryTypeId.toString() === categoryType.id\n );\n\n if (categoryType) {\n category.votingCategoryType = categoryType; // bind VCT to VC\n\n // bind VC to VCT\n if (!categoryType.votingCategories) {\n categoryType.votingCategories = [];\n }\n\n categoryType.votingCategories.push(category);\n }\n });\n\n // --- VI & VC & VII\n const { votingItems, votingItemsMetadata } = processVotingItemsPagePayload(\n publicData.votingItems,\n votingCategories\n );\n\n return {\n votingCategoryTypes: reactive(votingCategoryTypes),\n votingCategories,\n votingItems: ref(votingItems as DisplayableVotingItem[]),\n votingItemsMetadata: ref(votingItemsMetadata),\n };\n}\n","import {\n VotingItem,\n VotingItemsResponse,\n} from \"@/models/campaign/voting/votingPublicData._model\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport { getCampaignSettingValue } from \"@/services/settings.service\";\nimport { basePrivateApiUrl } from \"@/services/url.service\";\nimport { getAsUrlParams, getRandomNumber } from \"@/utils/utils\";\nimport { DisplayableVotingItem } from \"../models/displayableVotingItem.class\";\nimport { DisplayableVotingCategory } from \"../models/displayableVotingCategory.class\";\n\nconst ENDPOINT = `campaignapplive/voting/votingItems`;\n\n//?campaignAppGuid=50f0cf51-5286-4ad4-a3c3-1a509a9b2a4b&pageIndex=0&pageSize=5&randomizationSeed=\n\nconst RANDOM_ITEM_SORT_ORDER = \"random\";\nconst headers = {\n Accept: \"application/vnd.api+json\",\n \"Content-Type\": \"application/vnd.api+json; charset=UTF-8\",\n};\n\nexport async function getVotingItemsPage(\n pageIndex: number,\n filters: any\n): Promise {\n const pageSize = getCampaignSettingValue(\"itemsPageSizeFilter\");\n const itemSortOrder = getCampaignSettingValue(\"itemsSortOrder\");\n const hasRandomSortOrder = itemSortOrder === RANDOM_ITEM_SORT_ORDER;\n\n let endpoint = `${basePrivateApiUrl}${ENDPOINT}?campaignAppGuid=${campaignApp.guid}&pageIndex=${pageIndex}&pageSize=${pageSize}`;\n\n if (filters) {\n endpoint += `&${getAsUrlParams(filters)}`;\n }\n\n if (hasRandomSortOrder) {\n endpoint += `&randomizationSeed=${getRandomNumber()}`;\n }\n\n const data = await fetch(endpoint, { method: \"GET\", headers });\n\n return responseHandler(data);\n}\n\nexport async function getVotingItem(\n itemId: number | string\n): Promise {\n const endpoint = `${basePrivateApiUrl}${ENDPOINT}?campaignAppGuid=${campaignApp.guid}&itemId=${itemId}`;\n const data = await fetch(endpoint, { method: \"GET\", headers });\n\n return responseHandler(data);\n}\n\nexport async function getProcessedVotingItem(\n itemId: number | string,\n votingCategories: DisplayableVotingCategory[]\n): Promise {\n const votingItemResponse = await getVotingItem(itemId);\n\n const votingItem = processVotingItemsPagePayload(\n votingItemResponse,\n votingCategories\n ).votingItems[0];\n\n votingItem.evaluateImages();\n\n return votingItem;\n}\n\nexport function processVotingItemsPagePayload(\n pageData: VotingItemsResponse,\n votingCategories: DisplayableVotingCategory[]\n) {\n const votingItems = pageData.votingItems.map(\n (vi) => new DisplayableVotingItem(vi)\n );\n const votingItemCategories = pageData.linked?.votingItemCategories;\n const votingItemImages = pageData.linked?.votingItemImages;\n\n // --- VI & VC & VII\n votingItems.forEach((vi) => {\n // bind VI & VC\n const stringId = `${vi.id}`;\n const categoryIds = votingItemCategories\n ?.filter((vic) => vic.votingItemId.toString() === stringId)\n .map((vic) => vic.votingCategoryId.toString());\n\n if (categoryIds?.length) {\n const categories = votingCategories?.filter((vc) =>\n categoryIds.includes(vc.id.toString())\n );\n\n vi.votingCategories = categories;\n }\n\n // bind VI & VII\n const itemImages = votingItemImages?.filter(\n (vii) => vii.votingItemId.toString() === stringId\n );\n\n vi.votingItemImages = itemImages;\n vi.evaluateImages();\n });\n\n return {\n votingItems,\n votingItemsMetadata: pageData.metadata,\n };\n}\n\n// TODO create api wrapper to handle this responses\nfunction responseHandler(res: Response) {\n if (res.ok) {\n if (res.status !== 204) {\n return res.json();\n }\n\n return;\n }\n\n throw new Error(res.statusText);\n}\n","import { VotingVote } from \"@/models/campaign/voting/votingPrivateData._model\";\nimport { post } from \"@/services/http.service\";\n\nconst ENDPOINT = \"campaignapplive/voting/votingVotes\";\n\nconst headers = {\n Accept: \"application/vnd.api+json\",\n};\n\nexport async function createVote(\n item: unknown\n): Promise<{ votingVotes: VotingVote }> {\n return await post(ENDPOINT, JSON.stringify(item), undefined, headers);\n}\n","export const OptionTypes = {\n FACEBOOK: \"facebook\",\n FORM: \"form\",\n MYPAGE: \"myPage\",\n SIMPLE_MOBILE: \"simpleMobile\",\n SECURE_MOBILE: \"secureMobile\",\n SPORTS_ALLIANCE: \"sportsAlliance\",\n} as const;\n\nexport const OpenIdOptionTypes = {\n OIDC_SINGLE_SIGN_ON: \"oidcSingleSignOn\",\n} as const;\n\nexport const AuthenticationFieldTypes = {\n TEXT: \"text\",\n EMAIL: \"email\",\n CHECK_BOX: \"checkbox\",\n TEL: \"tel\",\n NUMBER: \"number\",\n DATE_TIME: \"dateTime\",\n OPTION: \"option\",\n HIDDEN: \"hidden\",\n CONSENT_TEXT: \"consentTexts\",\n} as const;\n\nexport const SimpleOptionTypes: readonly string[] = [\n OptionTypes.FORM,\n OptionTypes.SIMPLE_MOBILE,\n OptionTypes.SECURE_MOBILE,\n] as const;\n\nexport const AuthMappings = {\n authenticationOptionTypeToIconCssClass: [\n {\n key: OptionTypes.FACEBOOK,\n value: \"fab fa-facebook\",\n },\n {\n key: OptionTypes.MYPAGE,\n value: \"far fa-id-card\",\n },\n {\n key: OptionTypes.SIMPLE_MOBILE,\n value: \"fa fa-mobile-alt\",\n },\n {\n key: OptionTypes.SECURE_MOBILE,\n value: \"fa fa-mobile-alt\",\n },\n {\n key: OptionTypes.FORM,\n value: \"fa fa-sign-in-alt\",\n },\n {\n key: OpenIdOptionTypes.OIDC_SINGLE_SIGN_ON,\n value: \"fas fa-building\",\n },\n ],\n\n authenticationOptionTypeToColorStyle: [\n {\n key: OptionTypes.FACEBOOK,\n value: \"background-color: #4267B2; color: #FFFFFF\",\n },\n {\n key: OptionTypes.MYPAGE,\n value: \"background-color: #009899; color: #FFFFFF\",\n },\n {\n key: OptionTypes.SPORTS_ALLIANCE,\n value: \"background-color: #F8B02F; color: #FFFFFF\",\n },\n ],\n\n authenticationOptionTypeToIconImageUrl: [\n {\n key: OptionTypes.SPORTS_ALLIANCE,\n value: require(\"@/assets/images/sports-alliance-icon.png\"),\n },\n ],\n} as const;\n","// See: socialcee\\SocialCeeApp.Web\\SocialCeeApp.Campaign\\app\\common\\dict\\Application.js\n\nexport const LanguagesDictionary = {\n languageCodes: {\n ENGLISH: \"en\",\n NORWEGIAN: \"no\",\n SWEDISH: \"sv\",\n DANISH: \"da\",\n NORWEGIAN_NYNORSK: \"nn\",\n ITALIAN: \"it\",\n GERMAN: \"de\",\n POLISH: \"pl\",\n DUTCH: \"nl\",\n FRENCH: \"fr\",\n SPANISH: \"es\",\n PORTUGUESE: \"pt\",\n SPANISH_LA: \"es-419\",\n KOREAN: \"ko\",\n },\n} as const;\n\nexport const LanguageMappings = {\n languageToFacebookSdkCode: [\n {key: LanguagesDictionary.languageCodes.NORWEGIAN, value: 'nb_NO'},\n {key: LanguagesDictionary.languageCodes.ENGLISH, value: 'en_GB'},\n {key: LanguagesDictionary.languageCodes.DANISH, value: 'da_DK'},\n {key: LanguagesDictionary.languageCodes.SWEDISH, value: 'sv_SE'},\n {key: LanguagesDictionary.languageCodes.NORWEGIAN_NYNORSK, value: 'nb_NO'},\n {key: LanguagesDictionary.languageCodes.ITALIAN, value: 'it_IT'},\n {key: LanguagesDictionary.languageCodes.GERMAN, value: 'de_DE'},\n {key: LanguagesDictionary.languageCodes.POLISH, value: 'pl_PL'},\n {key: LanguagesDictionary.languageCodes.DUTCH, value: 'nl_NL'},\n {key: LanguagesDictionary.languageCodes.FRENCH, value: 'fr_FR'},\n {key: LanguagesDictionary.languageCodes.SPANISH, value: 'es_ES'},\n {key: LanguagesDictionary.languageCodes.PORTUGUESE, value: 'pt_PT'},\n {key: LanguagesDictionary.languageCodes.SPANISH_LA, value: 'es_LA'},\n {key: LanguagesDictionary.languageCodes.KOREAN, value: 'ko_KR'}\n ],\n\n languageToCountryCode: [\n {key: LanguagesDictionary.languageCodes.ENGLISH, value: 'gb'},\n {key: LanguagesDictionary.languageCodes.NORWEGIAN, value: 'no'},\n {key: LanguagesDictionary.languageCodes.SWEDISH, value: 'se'},\n {key: LanguagesDictionary.languageCodes.DANISH, value: 'dk'},\n {key: LanguagesDictionary.languageCodes.NORWEGIAN_NYNORSK, value: 'no'},\n {key: LanguagesDictionary.languageCodes.ITALIAN, value: 'it'},\n {key: LanguagesDictionary.languageCodes.GERMAN, value: 'de'},\n {key: LanguagesDictionary.languageCodes.POLISH, value: 'pl'},\n {key: LanguagesDictionary.languageCodes.DUTCH, value: 'nl'},\n {key: LanguagesDictionary.languageCodes.FRENCH, value: 'fr'},\n {key: LanguagesDictionary.languageCodes.SPANISH, value: 'es'},\n {key: LanguagesDictionary.languageCodes.PORTUGUESE, value: 'pt'},\n {key: LanguagesDictionary.languageCodes.SPANISH_LA, value: 'mx'},\n {key: LanguagesDictionary.languageCodes.KOREAN, value: 'kr'}\n ],\n}","export const VisualTypes: { readonly [key: string]: string } = {\n AUCTION: \"auction\",\n VOTING: \"voting\",\n ITEM_LIST: \"itemList\",\n ADVANCED_FORM: \"advancedForm\",\n SIMPLE_FORM: \"simpleForm\",\n SIGN_UP: \"signUp\",\n PERSONA_QUIZ: \"personaQuiz\",\n CALENDAR_QUIZ: \"calendarQuiz\",\n KNOWLEDGE_QUIZ: \"knowledgeQuiz\",\n GUESS_THE_LINE_UP: \"guessTheLineUp\",\n GUESS_THE_AUDIENCE: \"guessTheAudience\",\n GUESS_THE_NUMBER: \"guessTheNumber\",\n GUESS_THE_SCORE: \"guessTheScore\",\n SPORTS_MATCH_VOTING: \"sportsMatchVoting\",\n EVENT_SELFIE: \"eventSelfie\",\n WHEEL_OF_FORTUNE: \"wheelOfFortune\",\n CROWDFUNDING: \"crowdfunding\",\n SLOT_MACHINE: \"slotMachine\",\n SCRATCH_CARD: \"scratchCard\",\n GUESS_THE_OUTCOMES: \"guessTheOutcomes\",\n GUESS_THE_PLAYER: \"guessThePlayer\",\n GOAL_CLUB: \"goalClub\",\n SEASONAL_GUESS_THE_OUTCOMES: \"seasonalGuessTheOutcomes\",\n SEASONAL_GUESS_THE_SCORE: \"seasonalGuessTheScore\",\n GUESS_THE_ITEM: \"guessTheItem\",\n LIVE_EVENT: \"liveEvent\",\n SORTING_QUIZ: \"sortingQuiz\",\n} as const;\n\nexport const VisualTypesWithPayments: readonly string[] = [\n VisualTypes.AUCTION,\n VisualTypes.CROWDFUNDING,\n VisualTypes.GOAL_CLUB,\n] as const;\n\nexport const VisualTypesWithLoginFeature: readonly string[] = [\n VisualTypes.AUCTION,\n VisualTypes.CROWDFUNDING,\n VisualTypes.SCRATCH_CARD,\n VisualTypes.SLOT_MACHINE,\n VisualTypes.WHEEL_OF_FORTUNE,\n VisualTypes.GOAL_CLUB,\n VisualTypes.SEASONAL_GUESS_THE_OUTCOMES,\n VisualTypes.SEASONAL_GUESS_THE_SCORE,\n VisualTypes.GUESS_THE_ITEM,\n VisualTypes.GUESS_THE_LINE_UP,\n VisualTypes.SORTING_QUIZ,\n] as const;\n","import {\n _i18n,\n locale,\n translateCampaignSetting,\n translateObject,\n trimMustachesInTranslation,\n} from \"@/services/i18n.service\";\nimport { I18n } from \"vue-i18n\";\n\nexport type I18nInstance = I18n<\n Record,\n Record,\n Record,\n string,\n false\n>;\n\n/**\n * Translate with pluralization and interpolation\n * @param key translation key\n * @param params values of interpolation and pluralization. If this object contains `count`, the function will try to pluralize the translation.\n *\n */\nexport function $ttt(key: string, params: Record = {}) {\n key = pluralizeTranslationKey(key, params, locale);\n\n trimMustachesInTranslation(key);\n\n return (_i18n as I18nInstance).global.t(key, params);\n}\n\n/**\n * Check if translation exists\n * @param key translation key\n * @param locale if you want to check for specific locale\n */\nexport function $te(key: string, _locale?: string) {\n const effectiveLocale = _locale && _locale.length ? _locale : locale;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const messages = _i18n?.global.messages.value[effectiveLocale] as {\n [x: string]: unknown;\n };\n\n return key in messages;\n}\n\nexport function $ts(key: string) {\n return translateCampaignSetting(key);\n}\n\nexport function $to(\n object: unknown,\n fieldName: string,\n objectType: string,\n defaultValue?: string\n) {\n return translateObject(object, fieldName, objectType, defaultValue);\n}\n\nexport const I18nMixin = {\n methods: {\n $ts,\n $to,\n $ttt,\n $te,\n },\n};\n\nfunction pluralizeTranslationKey(\n key: string,\n params: Record = {},\n locale: string\n): string {\n Object.entries(params ?? {}).forEach(([param, value]) => {\n if (param === \"count\") {\n const count = Number(value);\n const cardinalRules = new Intl.PluralRules(locale);\n\n key = key.concat(`.${cardinalRules.select(count)}`);\n }\n });\n\n return key;\n}\n","export function removeLoadIndicator() {\n document.getElementsByClassName(\"page-spinner\").item(0)?.remove();\n document\n .getElementsByTagName(\"html\")\n .item(0)\n ?.classList.remove(\"show-page-spinner\");\n}\n\nexport const PageLoadingIndicatorMixin = {\n mounted() {\n removeLoadIndicator();\n },\n};\n","import { PUBLIC_DATA } from \"@/services/publicData.service\";\nimport { createQueryForFbShare, shareOnFb } from \"@/services/facebook.service\";\nimport { sendShareEvent } from \"@/services/googleAnalytics.service\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\n\nexport function shareCampaign(linkToShare?: string) {\n linkToShare =\n linkToShare ||\n PUBLIC_DATA.campaignApps.linked.smartLinks.find(\n (s) => s.id === campaignApp?.smartLinkId.toString()\n )?.url;\n\n if (linkToShare) {\n shareOnFb(linkToShare);\n sendShareEvent();\n }\n}\n\nexport function shareParticipation() {\n shareOnFb(createQueryForFbShare());\n sendShareEvent();\n}\n\nexport const SharingMixin = {\n methods: {\n shareCampaign,\n shareParticipation,\n },\n};\n","import { ILoginState } from \"@/models/authentication/loginState.model\";\nimport { errorService } from \"@/services/error.service\";\nimport {\n sendCampaignEvent,\n GOOGLE_ANALYTICS_EVENTS,\n} from \"@/services/googleAnalytics.service\";\nimport {\n getMissingAuthFieldsSummary,\n isLoggedIn,\n loadLoginState,\n loginState,\n patchLoginState,\n resetLoginState,\n saveLoginState,\n setLoginState,\n signIn,\n} from \"@/services/loginState.service\";\nimport { PUBLIC_DATA } from \"@/services/publicData.service\";\nimport { setupForEmbedding } from \"./embedding.service\";\nimport {\n CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES,\n caaoIsSimple,\n getProcessedGroupedAuthOptions,\n} from \"./campaignAppAuthenticationOptions.service\";\nimport { Ref, ref } from \"vue\";\nimport { PromiseFunc } from \"@/models/promiseFunc._model\";\nimport {\n IAuthProgress,\n IAuthProgressFlow,\n} from \"@/models/authentication/authProgress._model\";\nimport { ICampaignAppAuthenticationOption } from \"@/models/authentication/campaignAppAuthenticationOption.model\";\nimport { openAuthFormModal, openAuthSelectionModal } from \"./authModal.service\";\nimport {\n AUTH_CANCELLED_ERROR_NAME,\n AUTH_ERROR_ERROR_NAME,\n} from \"./utility/authCommonError.service\";\nimport {\n beginSimpleMobileAuth,\n beginSimpleMobileLogIn,\n} from \"./providers/simpleMobileAuthProvider.service\";\nimport {\n beginSimpleEmailAuth,\n beginSimpleEmailLogIn,\n} from \"./providers/simpleEmailAuthProvider.service\";\nimport {\n beginSecureMobileAuth,\n beginSecureMobileLogIn,\n} from \"./providers/secureMobileAuthProvider.service\";\nimport { getIdentityClientConfiguration } from \"./identityClientConfiguration.service\";\nimport { closeModal } from \"../modal.service\";\nimport {\n campaignApp,\n hasParticipationSupport,\n hasSuspendedCMTokenLogin,\n} from \"../campaignApp.service\";\nimport {\n SUPPORTED_QUERY_PARAMS,\n getCMToken,\n hasCMTokenInURL,\n queryParams,\n removeCMToken,\n} from \"../url.service\";\nimport { User } from \"oidc-client\";\nimport {\n beginOpenIdClientAuth,\n beginOpenIdClientSilentAuth,\n cancelOpenIdClientAuth,\n confirmOpenIdClientAuth,\n createUserManagerInstance,\n removeCallbackParamsFromUrl,\n} from \"./providers/openIDClientAuthProvider.service\";\nimport { campaignStateService } from \"../campaignState.service\";\n\nexport const authProgress: Ref = ref(null);\nexport const isAuthenticating = ref(false);\nlet authInitializationProgress: Promise | null = null;\nlet authToken = queryParams\n ? queryParams[SUPPORTED_QUERY_PARAMS.AUTH_TOKEN]\n : null;\n\nexport const CM_TOKEN_AUTH_TYPE = \"token\";\n\nexport function cancelAuth(errorName = \"AUTH_CANCELLED\") {\n resetLoginState();\n\n sendCampaignEvent(\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_CANCELLED.action,\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_CANCELLED.category,\n errorName\n );\n\n authProgress.value?.rejectHook({ message: errorName });\n}\n\nexport function confirmAuth() {\n saveLoginState().then(\n (loginState) => authProgress.value?.resolveHook(loginState),\n () => authProgress.value?.rejectHook({ message: AUTH_ERROR_ERROR_NAME })\n );\n}\n\nexport async function finalizeComplexAuth(forcedAuthType?: string) {\n const authenticationType =\n forcedAuthType || authProgress.value?.authOption?._type;\n patchLoginState({ authenticationType: authenticationType });\n\n try {\n await signIn();\n\n if (isLoggedIn.value) {\n authProgress.value?.resolveHook(loginState.value);\n } else {\n handleIncompleteComplexAuthRegistration(false); // hasn't participated in this campaign\n }\n } catch (error: unknown) {\n // we don't know a participant\n if (error && error instanceof Response && error.status === 404) {\n handleIncompleteComplexAuthRegistration(true); // hasn't participated ever\n } else {\n if (hasCMTokenInURL()) {\n patchLoginState({\n myPageToken: undefined,\n authenticationType: undefined,\n });\n\n removeCMToken();\n\n authProgress.value?.rejectHook({ message: AUTH_ERROR_ERROR_NAME });\n return;\n }\n\n errorService.raiseErrorMessage(error as string);\n }\n }\n}\n\nexport async function finalizeSilentComplexAuth(user: User) {\n patchLoginState({\n campaignAppGuid: campaignApp.guid,\n authenticationType: evaluateSilentComplexAuthType(user),\n });\n\n try {\n return await signIn();\n } catch (error: unknown) {\n //\n }\n}\n\nexport async function finalizeSimpleAuthLogIn() {\n signIn().then(\n (newLoginState) => {\n if (isLoggedIn.value) {\n authProgress.value?.resolveHook(loginState.value);\n } else {\n if (newLoginState) {\n simplifyProcessForMobileAuths(newLoginState);\n }\n\n handleSimpleAuthLogInError();\n }\n },\n () => handleSimpleAuthLogInError()\n );\n}\n\nexport function handleComplexAuth(\n authOption: ICampaignAppAuthenticationOption,\n isLogIn = false\n) {\n handleAuthSelection(authOption);\n beginOpenIdClientAuth(isLogIn, authOption);\n return;\n}\n\nexport function handleSimpleAuth(\n authOption: ICampaignAppAuthenticationOption,\n isLogIn = false\n) {\n handleAuthSelection(authOption);\n\n switch (authOption._type) {\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.FORM:\n return isLogIn ? beginSimpleEmailLogIn() : beginSimpleEmailAuth();\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SIMPLE_MOBILE:\n return isLogIn ? beginSimpleMobileLogIn() : beginSimpleMobileAuth();\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SECURE_MOBILE:\n return isLogIn ? beginSecureMobileLogIn() : beginSecureMobileAuth();\n default:\n return;\n }\n}\n\nexport function initializeAuthentication() {\n if (!hasParticipationSupport()) {\n return;\n }\n\n const cmToken = getCMToken();\n\n if (cmToken && !hasSuspendedCMTokenLogin()) {\n loginWithCMToken(cmToken);\n } else if (!cmToken) {\n const campaignState = campaignStateService.getState();\n\n if (campaignState && campaignState[\"isLogIn\"]) {\n resumeComplexLogIn();\n } else {\n initializeDefaultAuthFlow();\n }\n }\n}\n\nexport async function login(authOption?: ICampaignAppAuthenticationOption) {\n await setupForEmbedding();\n\n const authProgressPromise = startAuthProgress();\n\n continueAuth(authOption, true);\n\n return authProgressPromise;\n}\n\nexport async function logout() {\n const identityClientConfiguration = await getIdentityClientConfiguration();\n const logoutUrl = `${identityClientConfiguration.authorityUrl}account/logout`;\n const iframe = document.createElement(\"iframe\");\n\n iframe.style.display = \"none\";\n document.body.appendChild(iframe);\n\n const listener = (event: { data: string }) => {\n if (event.data === \"LOG_OUT_SUCCESS\") {\n window.removeEventListener(\"message\", listener);\n iframe.remove();\n window.location.reload();\n }\n };\n\n window.addEventListener(\"message\", listener);\n iframe.setAttribute(\"src\", logoutUrl);\n}\n\nexport async function resumeComplexAuth() {\n authToken = null;\n\n tryRestoreAuthTypeFromCampaignState();\n setLoginState({\n ...(loginState.value as ILoginState),\n campaignAppGuid: campaignApp.guid,\n });\n\n const userManager = createUserManagerInstance();\n\n return userManager.signinRedirectCallback().then(\n (user: User) => {\n return new Promise((resolve) => {\n startAuthProgress().then(() => {\n removeCallbackParamsFromUrl();\n resolve(loginState);\n });\n confirmOpenIdClientAuth(user);\n });\n },\n (error: Error) => {\n return new Promise((resolve) => {\n startAuthProgress().then(() => {\n removeCallbackParamsFromUrl();\n resolve(loginState);\n });\n cancelOpenIdClientAuth(error);\n });\n }\n );\n}\n\nexport async function saveParticipation(): Promise {\n // if there's any pending auth happening - run stuff after it finishes\n const authInitProgress = authInitializationProgress || Promise.resolve();\n\n return authInitProgress.then(\n () => {\n if (authToken) {\n return resumeComplexAuth();\n }\n\n return isLoggedIn.value\n ? Promise.resolve(loginState)\n : beginAuthentication();\n },\n () => {\n // ...\n }\n );\n}\n\nexport function tryRestoreAuthTypeFromCampaignState() {\n const campaignState = campaignStateService.getState();\n\n if (campaignState) {\n const selectedAuthOptionId = campaignState[\"selectedAuthOptionId\"];\n\n if (selectedAuthOptionId !== null && selectedAuthOptionId !== undefined) {\n const restoredAuthOption = getProcessedGroupedAuthOptions().all.find(\n (caao) => caao.id === selectedAuthOptionId\n );\n\n if (restoredAuthOption) {\n patchLoginState({\n authenticationType: restoredAuthOption._type,\n });\n }\n }\n }\n}\n\nasync function beginAuthentication() {\n const cmToken = getCMToken();\n\n if (cmToken && hasSuspendedCMTokenLogin()) {\n return loginWithCMToken(cmToken).catch((error) => {\n if (error.message === AUTH_CANCELLED_ERROR_NAME) {\n return Promise.reject(error);\n }\n\n return continueWithDefaultAuthMethod();\n });\n }\n\n return continueWithDefaultAuthMethod();\n}\n\nfunction continueWithDefaultAuthMethod() {\n return setupForEmbedding().then(() => {\n const authProgressPromise = startAuthProgress();\n const defaultOnlyOption =\n getProcessedGroupedAuthOptions().defaultWhenOnlyAuthOption;\n\n continueAuth(defaultOnlyOption || undefined);\n\n return authProgressPromise;\n });\n}\n\nfunction continueAuth(\n authOption?: ICampaignAppAuthenticationOption,\n isLogIn = false\n) {\n if (loginState.value?.myPageToken) {\n syncSelectedAuthOption();\n finalizeComplexAuth(CM_TOKEN_AUTH_TYPE);\n } else if (!authOption) {\n openAuthSelectionModal().then((result) => {\n const option = result as ICampaignAppAuthenticationOption;\n\n if (option) {\n if (caaoIsSimple(option)) {\n handleSimpleAuth(option, isLogIn);\n } else {\n handleComplexAuth(option, isLogIn);\n }\n }\n });\n } else if (caaoIsSimple(authOption)) {\n handleSimpleAuth(authOption, isLogIn);\n } else {\n handleComplexAuth(authOption, isLogIn);\n }\n}\n\nfunction createAuthProgressFlow() {\n let resolveHook: PromiseFunc | null = null;\n let rejectHook: PromiseFunc | null = null;\n const promise = new Promise((resolve, reject) => {\n resolveHook = resolve;\n rejectHook = reject;\n });\n\n const progress = {\n promise,\n resolveHook: resolveHook as unknown as PromiseFunc,\n rejectHook: rejectHook as unknown as PromiseFunc,\n } as IAuthProgress;\n\n return {\n promise,\n progress,\n } as IAuthProgressFlow;\n}\n\nfunction canSignUpComplexAuth(isNewUser: boolean) {\n const skipPersonalDataForm =\n PUBLIC_DATA.campaignApps.linked.campaignAppAuthenticationOptions.find(\n (authOption) => authOption._type === loginState.value?.authenticationType\n )?.isKillswitchActive;\n\n const summary = getMissingAuthFieldsSummary();\n\n return skipPersonalDataForm || hasCMTokenInURL()\n ? !summary.hasMissingRequiredConsents &&\n !summary.hasMissingRequiredAuthFields\n : !isNewUser &&\n !summary.hasMissingConsents &&\n !summary.hasMissingRequiredAuthFields;\n}\n\nfunction handleIncompleteComplexAuthRegistration(isNewUser: boolean) {\n if (canSignUpComplexAuth(isNewUser)) {\n confirmAuth();\n } else {\n openAuthFormModal().then(\n (loginStatePart) => {\n if (loginStatePart) {\n patchLoginState(loginStatePart as Partial);\n confirmAuth();\n } else {\n cancelAuth();\n }\n },\n (error) => cancelAuth(error)\n );\n }\n}\n\nfunction handleAuthSelection(authOption: ICampaignAppAuthenticationOption) {\n if (loginState) {\n setLoginState({\n ...(loginState.value as ILoginState),\n campaignAppGuid: campaignApp.guid,\n });\n }\n\n if (authProgress.value) {\n authProgress.value.authOption = authOption;\n }\n}\n\nasync function initializeDefaultAuthFlow() {\n authInitializationProgress = new Promise((resolve) => {\n loadLoginState().then(() => {\n const enabledComplexAuthOptions =\n getProcessedGroupedAuthOptions()?.enabledComplex;\n\n if (enabledComplexAuthOptions && enabledComplexAuthOptions.length) {\n createUserManagerInstance();\n\n if (!isLoggedIn.value) {\n beginOpenIdClientSilentAuth().finally(() => {\n removeCallbackParamsFromUrl();\n resolve(loginState.value as ILoginState);\n });\n\n return;\n }\n }\n\n resolve(loginState.value as ILoginState);\n });\n });\n}\n\nasync function startAuthProgress() {\n const authProgressFlow = createAuthProgressFlow();\n\n isAuthenticating.value = true;\n authProgress.value = authProgressFlow.progress;\n\n return authProgressFlow.promise.finally(() => {\n authProgress.value = null;\n isAuthenticating.value = false;\n closeModal();\n });\n}\n\nfunction syncSelectedAuthOption() {\n const currentAuthType = loginState.value?.authenticationType;\n const expectedCaao = getProcessedGroupedAuthOptions().complex.find(\n (caao) => currentAuthType === caao._type\n );\n\n if (!authProgress.value?.authOption && expectedCaao) {\n (authProgress.value as IAuthProgress).authOption =\n expectedCaao as ICampaignAppAuthenticationOption;\n }\n}\n\nfunction handleSimpleAuthLogInError() {\n if (!authProgress.value?.authOption) {\n throw new Error(\"authOption is missing from authProgress\");\n }\n\n handleSimpleAuth(authProgress.value?.authOption, false);\n}\n\nfunction simplifyProcessForMobileAuths(signInLoginState: ILoginState) {\n const selectedOption = authProgress.value?.authOption;\n const isSimpleMobile =\n selectedOption?._type ===\n CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SIMPLE_MOBILE;\n const isSecureMobile =\n selectedOption?._type ===\n CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SECURE_MOBILE;\n const newLoginState = authProgress.value?.loginState;\n\n if (!newLoginState) {\n return;\n }\n\n if (isSimpleMobile || isSecureMobile) {\n newLoginState.phoneNumber = signInLoginState.phoneNumber;\n }\n\n if (isSecureMobile) {\n newLoginState.smsToken = signInLoginState.smsToken;\n newLoginState.recaptchaToken = signInLoginState.recaptchaToken;\n }\n}\n\nfunction evaluateSilentComplexAuthType(user: User) {\n const defaultAuthOption =\n getProcessedGroupedAuthOptions().defaultWhenOnlyAuthOption;\n const enabledComplexAuthOptions =\n getProcessedGroupedAuthOptions().enabledComplex;\n\n if (defaultAuthOption) {\n return defaultAuthOption._type;\n }\n\n const potentiallyUsedAuthOptions = figureOutPotentiallyUsedAuthOptions(\n user,\n enabledComplexAuthOptions\n );\n\n const topPriorityOption = potentiallyUsedAuthOptions.reduce(\n (prev, current) => {\n return prev.priority > current.priority ? prev : current;\n }\n );\n\n return topPriorityOption._type;\n}\n\nfunction figureOutPotentiallyUsedAuthOptions(\n user: User,\n enabledComplexAuthOptions: ICampaignAppAuthenticationOption[]\n) {\n const profile = user.profile;\n return enabledComplexAuthOptions.filter((authOption) => {\n switch (authOption._type) {\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.FACEBOOK:\n return !!profile.FacebookAppIdentity;\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.MYPAGE:\n return !!profile.MyPage && (!!profile.email || !!profile.Email);\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SPORTS_ALLIANCE:\n return !!profile.SportsAllianceId;\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.OIDC_SINGLE_SIGN_ON:\n return checkForOIDCClaims(user);\n default:\n return false;\n }\n });\n}\n\nfunction resumeComplexLogIn(): Promise {\n authToken = null;\n tryRestoreAuthTypeFromCampaignState();\n patchLoginState({ campaignAppGuid: campaignApp.guid });\n\n const userManager = createUserManagerInstance();\n\n return userManager\n .signinRedirectCallback()\n .then(\n async (user: User) => {\n await startAuthProgress();\n confirmOpenIdClientAuth(user);\n },\n async (error: Error) => {\n console.error(error.message);\n\n await startAuthProgress();\n cancelOpenIdClientAuth(error);\n }\n )\n .finally(() => {\n removeCallbackParamsFromUrl();\n campaignStateService.setState(null);\n });\n}\n\nfunction checkForOIDCClaims(user: User): boolean {\n const regex = new RegExp(\n `(^${CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.OIDC_SINGLE_SIGN_ON})`,\n \"gi\"\n );\n\n return Object.entries(user.profile).some(([key]) => regex.test(key));\n}\n\nfunction loginWithCMToken(cmToken: string) {\n patchLoginState({\n myPageToken: cmToken,\n authenticationType: CM_TOKEN_AUTH_TYPE,\n campaignAppGuid: campaignApp.guid,\n });\n\n return login();\n}\n","import { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport { getCampaignSettingValue } from \"../settings.service\";\nimport { PUBLIC_DATA } from \"../publicData.service\";\nimport { ICustomAuthenticationField } from \"@/models/campaign/customAuthenticationField.model\";\nimport { translateObject } from \"../i18n.service\";\n\ninterface SelectOptions {\n options: string[];\n}\n\nlet authFields: FormFieldDefinition[];\n\nexport function getAuthFields() {\n if (!authFields) {\n initializeAuthFields();\n }\n\n return authFields;\n}\n\nexport function resetAuthFields() {\n initializeAuthFields();\n}\n\nfunction initializeAuthFields() {\n const authFieldsResponse = getCampaignSettingValue(\"authenticationFields\");\n const customAuthFields =\n PUBLIC_DATA.customAuthenticationFields.customAuthenticationFields;\n const consentTexts = PUBLIC_DATA.consentTextBundles.linked.consentTexts;\n\n if (authFieldsResponse) {\n authFields = JSON.parse(authFieldsResponse);\n\n authFields.forEach(\n (af) => (af.customLabel = translateObject(af, \"customLabel\", \"authField\"))\n );\n\n authFields = setupCustomAuthFields(authFields, customAuthFields);\n authFields = moveTermsToBottomOfTheArray(authFields);\n\n authFields.push(\n ...(consentTexts || []).map((consentText) => {\n return {\n id: consentText.id,\n isRequired: consentText.isRequired,\n isEnabled: consentText.isEnabled,\n customLabel: translateObject(consentText, \"text\", \"consentText\"),\n type: consentText.type,\n } as FormFieldDefinition;\n })\n );\n\n authFields = authFields.filter((authField) => authField.isEnabled);\n }\n}\n\nfunction moveTermsToBottomOfTheArray(authFields: FormFieldDefinition[]) {\n const termsVerificationField = authFields.find(\n (authField) => authField.id === \"termsVerification\"\n );\n\n if (!termsVerificationField) {\n return authFields;\n }\n\n authFields = [\n ...authFields.filter((aF) => aF.id !== \"termsVerification\"),\n termsVerificationField,\n ];\n\n return authFields;\n}\n\nfunction setupCustomAuthFields(\n authFields: FormFieldDefinition[],\n customAuthFields: Readonly\n): FormFieldDefinition[] {\n customAuthFields.forEach((customAuthField) => {\n const authField = authFields.find((aF) => aF.id === customAuthField.id);\n\n if (!authField) {\n return;\n }\n\n let properties = JSON.parse(customAuthField.properties ?? \"{}\");\n\n if (customAuthField.fieldType === \"option\" && properties.options) {\n properties = setupOptionNames(customAuthField, properties);\n }\n\n authField.id = customAuthField.id;\n authField.customLabel = translateObject(\n customAuthField,\n \"customLabel\",\n \"customAuthenticationField\",\n customAuthField.displayName\n );\n\n authField.maxValue = properties?.max;\n authField.minValue = properties?.min;\n authField.maxDate = properties?.max;\n authField.minDate = properties?.min;\n authField.includeTime = properties?.withTime;\n authField.multiline = properties?.multiline;\n authField.selectOptions = properties?.options;\n });\n\n return authFields;\n}\n\nfunction setupOptionNames(\n customAuthField: ICustomAuthenticationField,\n properties: SelectOptions\n) {\n properties.options.forEach((option, index) => {\n properties.options[index] = translateObject(\n customAuthField,\n `option-${option}`,\n \"customAuthenticationField\",\n option\n );\n });\n\n return properties;\n}\n","import {\n CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES,\n CampaignAppAuthenticationOptionType,\n} from \"./campaignAppAuthenticationOptions.service\";\nimport { openModal } from \"../modal.service\";\nimport AuthSelectionModalVue from \"@/components/auth/AuthSelectionModal.vue\";\nimport SignUpFormModalVue from \"@/components/auth/SignUpFormModal.vue\";\nimport SimpleMobileModalVue from \"@/components/auth/SimpleMobileModal.vue\";\nimport SecureMobileModalVue from \"@/components/auth/SecureMobileModal.vue\";\nimport SimpleEmailLoginModalVue from \"@/components/auth/SimpleEmailLoginModal.vue\";\n\nexport function openAuthSelectionModal() {\n return openModal(AuthSelectionModalVue);\n}\n\nexport function openAuthFormModal() {\n // TODO - TLA - `Auth.js` - `openAuthFormModal()` (mapping for AF)\n\n return openAuthModal(CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.FORM);\n}\n\nexport function openAuthModal(\n type: CampaignAppAuthenticationOptionType,\n model?: unknown\n) {\n let modalPromise;\n\n switch (type) {\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.FORM:\n modalPromise = openModal(SignUpFormModalVue, model);\n break;\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SIMPLE_MOBILE:\n modalPromise = openModal(SimpleMobileModalVue, model);\n break;\n case CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SECURE_MOBILE:\n modalPromise = openModal(SecureMobileModalVue, model);\n break;\n default:\n modalPromise = Promise.resolve();\n break;\n }\n\n return modalPromise;\n}\n\nexport function openSimpleEmailLogInModal() {\n return openModal(SimpleEmailLoginModalVue);\n}\n","import { PUBLIC_DATA } from \"../publicData.service\";\nimport { ICampaignAppAuthenticationOption } from \"@/models/authentication/campaignAppAuthenticationOption.model\";\nimport { AuthMappings } from \"@/common/authentication.dictionary\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\n\nexport type CampaignAppAuthenticationOptionType =\n | \"facebook\"\n | \"form\"\n | \"myPage\"\n | \"simpleMobile\"\n | \"secureMobile\"\n | \"sportsAlliance\"\n | string;\n\nexport const CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES: {\n [key: string]: CampaignAppAuthenticationOptionType;\n} = {\n FACEBOOK: \"facebook\",\n FORM: \"form\",\n MYPAGE: \"myPage\",\n SIMPLE_MOBILE: \"simpleMobile\",\n SECURE_MOBILE: \"secureMobile\",\n SPORTS_ALLIANCE: \"sportsAlliance\",\n};\n\nexport const SIMPLE_CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES = [\n CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.FORM,\n CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SIMPLE_MOBILE,\n CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.SECURE_MOBILE,\n];\n\nexport function caaoIsSimple(caao: ICampaignAppAuthenticationOption) {\n return SIMPLE_CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES.includes(caao._type);\n}\n\nclass ProcessedGroupedAuthOptions {\n simple: ICampaignAppAuthenticationOption[] = [];\n complex: ICampaignAppAuthenticationOption[] = [];\n all: ICampaignAppAuthenticationOption[] = [];\n simpleEmailOption?: ICampaignAppAuthenticationOption;\n simpleMobileOption?: ICampaignAppAuthenticationOption;\n secureMobileOption?: ICampaignAppAuthenticationOption;\n facebookAuthOption?: ICampaignAppAuthenticationOption;\n myPageAuthOption?: ICampaignAppAuthenticationOption;\n\n get hasMobileSignInOnlySecure() {\n return !this.simpleMobileOption && this.secureMobileOption;\n }\n\n get hasSomeMobileSignIn() {\n return this.simpleMobileOption || this.secureMobileOption;\n }\n\n get enabledComplex() {\n return this.complex.filter((caao) => caao.isEnabled);\n }\n\n get enabledSimple() {\n return this.simple.find((caao) => caao.isEnabled);\n }\n\n get defaultWhenOnlyAuthOption() {\n const options = [\n ...this.enabledComplex,\n ...(this.enabledSimple ? [this.enabledSimple] : []),\n ];\n\n return options.length === 1 ? options[0] : null;\n }\n}\n\nfunction getDisplayableSimpleAuthOption(\n simpleAuthOption: ICampaignAppAuthenticationOption = getProcessedGroupedAuthOptions()\n .enabledSimple as ICampaignAppAuthenticationOption\n) {\n if (!simpleAuthOption) {\n return null;\n }\n\n const iconCssClass =\n AuthMappings.authenticationOptionTypeToIconCssClass.find(\n (o) => o.key === simpleAuthOption._type\n )?.value || \"fas fa-building\";\n\n return {\n name: `global.campaignAuthentication.authSelectionModal.btn_${simpleAuthOption._type}`,\n option: simpleAuthOption,\n iconCssClass,\n };\n}\n\nfunction getDisplayableComplexAuthOptions(\n complexAuthOptions: ICampaignAppAuthenticationOption[] = getProcessedGroupedAuthOptions()\n .enabledComplex\n) {\n return complexAuthOptions.map((option) => {\n const type = option._type;\n\n const brandSpecificButtonStyles =\n AuthMappings.authenticationOptionTypeToColorStyle.find(\n (o) => o.key === type\n )?.value ||\n `color: ${\n option.brandForegroundColor ? option.brandForegroundColor : \"#000000\"\n }; background-color: ${\n option.brandColor ? option.brandColor : \"#F7F7F7\"\n }`;\n\n const displayableImageIconUrl =\n AuthMappings.authenticationOptionTypeToIconImageUrl.find(\n (p) => p.key === type\n )?.value;\n\n const iconCssClass =\n AuthMappings.authenticationOptionTypeToIconCssClass.find(\n (o) => o.key === type\n )?.value || \"fas fa-building\";\n\n const customizedBrandName = option.brandName\n ? `${$ttt(\n \"global.campaignAuthentication.authSelectionModal.txt_continueWith\"\n )} ${option.brandName}`\n : null;\n\n return {\n name:\n customizedBrandName ||\n $ttt(`global.campaignAuthentication.authSelectionModal.btn_${type}`),\n iconCssClass,\n displayableImageIconUrl,\n option,\n brandSpecificButtonStyles,\n };\n });\n}\n\nexport function getProcessedGroupedAuthOptions() {\n return PUBLIC_DATA.campaignApps.linked.campaignAppAuthenticationOptions.reduce(\n (groups: ProcessedGroupedAuthOptions, caao) => {\n if (caaoIsSimple(caao)) {\n groups.simple.push(caao);\n } else {\n groups.complex.push(caao);\n }\n\n groups.all.push(caao);\n\n const type = caao._type;\n\n if (type === \"form\") {\n groups.simpleEmailOption = caao;\n } else if (type === \"simpleMobile\") {\n groups.simpleMobileOption = caao;\n } else if (type === \"secureMobile\") {\n groups.secureMobileOption = caao;\n } else if (type === \"facebook\") {\n groups.facebookAuthOption = caao;\n } else if (type === \"myPage\") {\n groups.myPageAuthOption = caao;\n }\n\n return groups;\n },\n new ProcessedGroupedAuthOptions()\n );\n}\n\nexport function getDisplayableAuthOptions(\n processedGroupedAuthOptions: ProcessedGroupedAuthOptions = getProcessedGroupedAuthOptions()\n) {\n return {\n complex: getDisplayableComplexAuthOptions(\n processedGroupedAuthOptions.enabledComplex\n ),\n simple: getDisplayableSimpleAuthOption(\n processedGroupedAuthOptions.enabledSimple\n ),\n };\n}\n","import { $ttt } from \"@/mixins/i18n.mixin\";\nimport { callIFrameParent, checkIsInIFrame } from \"./iFrameHandler.service\";\nimport { ref } from \"vue\";\n\nexport const isEmbedded = ref(false);\n\nexport function handleIfEmbedded() {\n if (checkIsInIFrame()) {\n isEmbedded.value = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callIFrameParent().then((parent: any) => {\n document.getElementsByTagName(\"html\")[0].style.overflow = \"hidden\";\n parent.childInitialized();\n });\n }\n}\n\nexport async function setupForEmbedding(): Promise {\n if (checkIsInIFrame()) {\n const userAgent = navigator.userAgent;\n\n if (userAgent.includes(\"Safari\") && !userAgent.includes(\"Chrome\")) {\n return (\n callIFrameParent()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then(async (parent: any) => {\n parent.scroll(0);\n\n try {\n return await parent.tryAuthorize3rdParty();\n } catch {\n const msg = $ttt(\"campaign.embedded.txt_wantToOpenSeparateTab\");\n\n if (window.confirm(msg) === true) {\n window.open(window.location.href, \"_blank\");\n }\n }\n })\n .catch(function () {\n // yikes! no connection to parent, have to cope somehow, ignoring for now\n })\n );\n }\n\n return (\n callIFrameParent()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .then((parent: any) => {\n parent.scroll(0);\n })\n .catch(() => {\n // yikes! no connection to parent, have to cope somehow, ignoring for now\n })\n );\n }\n\n return Promise.resolve();\n}\n\nexport function scrollToPosition(element: Element) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callIFrameParent().then((parent: any) =>\n parent.scroll(element.getBoundingClientRect().y)\n );\n}\n","import { CallSender, Connection, Methods, connectToParent } from \"penpal\";\nimport { DIALOG_MODAL_CSS_CLASS } from \"../modal.service\";\n\nlet iFrameParentConnection: Connection | undefined;\nexport const CONNECTION_PARENT_WAIT_TIMEOUT = 1000 * 1;\n\nexport function callIFrameParent() {\n // reject the promise if the parent doesn't reply during the given time\n return new Promise((resolve, reject) => {\n let resolvedParent = false;\n let resolvedTimeout = false;\n\n getIFrameParentConnection()?.promise.then((parent) => {\n resolvedParent = true;\n\n if (!resolvedTimeout) {\n resolve(parent);\n }\n });\n\n new Promise((_resolve) =>\n setTimeout(_resolve, CONNECTION_PARENT_WAIT_TIMEOUT)\n ).then(() => {\n resolvedTimeout = true;\n\n if (!resolvedParent) {\n reject();\n }\n });\n });\n}\n\nexport function checkIsInIFrame() {\n return window.parent !== window;\n}\n\nfunction getIFrameParentConnection(methods: Methods = {}) {\n if (!iFrameParentConnection) {\n iFrameParentConnection = connectToParent({\n methods: {\n ...methods,\n getCurrentSize,\n fixMainContentHeights,\n },\n });\n }\n\n return iFrameParentConnection;\n}\n\nfunction fixMainContentHeights(height: string) {\n const app = document.getElementById(\"app\");\n\n if (app) {\n const outerOuterWrapper = app?.children[0];\n const innerOuterWrapper = outerOuterWrapper?.children[0];\n const innerWrapper = innerOuterWrapper?.children[0];\n\n [\n document.getElementsByTagName(\"html\")[0],\n document.getElementsByTagName(\"body\")[0],\n app,\n outerOuterWrapper,\n innerOuterWrapper,\n innerWrapper,\n ].forEach((el) => ((el as HTMLElement).style.height = height));\n }\n}\n\nfunction getCurrentSize() {\n const htmlEl = document.getElementsByTagName(\"html\")[0];\n const modalEl = document.querySelectorAll(\n `dialog.${DIALOG_MODAL_CSS_CLASS}`\n )[0];\n const htmlElRectSize = htmlEl.getBoundingClientRect();\n const htmlElStyle = window.getComputedStyle(htmlEl);\n const htmlElMarginY =\n pxToFloat(htmlElStyle.marginTop) + pxToFloat(htmlElStyle.marginBottom);\n const htmlElMarginX =\n pxToFloat(htmlElStyle.marginLeft) + pxToFloat(htmlElStyle.marginRight);\n let newHeight = htmlElRectSize.height + htmlElMarginY;\n\n if (modalEl) {\n const modalElRectSize = modalEl.getBoundingClientRect();\n const modalElStyle = window.getComputedStyle(modalEl);\n const modalElMarginY =\n pxToFloat(modalElStyle.marginTop) + pxToFloat(modalElStyle.marginBottom);\n const modalElHeight = modalElRectSize.height + modalElMarginY;\n newHeight = Math.max(newHeight, modalElHeight);\n }\n\n return {\n width: htmlElRectSize.width + htmlElMarginX,\n height: newHeight,\n isModal: !!modalEl,\n };\n}\n\nfunction pxToFloat(pxValue: string) {\n return pxValue ? parseFloat(pxValue) : 0;\n}\n","import { IIdentityClientConfiguration } from \"@/models/authentication/identityClientConfiguration.model\";\nimport { basePrivateApiUrl } from \"../url.service\";\nimport { campaignApp } from \"../campaignApp.service\";\nconst IDENTITY_CLIENT_CONFIGURATION_API_URL =\n \"campaignapplive/identityclientconfiguration?campaignAppGuid=\";\n\nlet identityClientConfiguration: IIdentityClientConfiguration | null = null;\n\nexport async function getIdentityClientConfiguration(): Promise {\n if (!identityClientConfiguration) {\n const response = await fetch(\n `${basePrivateApiUrl}${IDENTITY_CLIENT_CONFIGURATION_API_URL}${campaignApp.guid}`,\n { method: \"GET\" }\n );\n\n identityClientConfiguration =\n response.json() as unknown as IIdentityClientConfiguration;\n }\n\n return identityClientConfiguration;\n}\n","import { ILoginState } from \"@/models/authentication/loginState.model\";\nimport { basePrivateApiUrl } from \"../url.service\";\nimport { campaignApp } from \"../campaignApp.service\";\n\nconst PHONE_LOOKUP_URL = \"campaignapplive/signup/phonelookup\";\nconst REQUEST_TOKEN_URL = \"campaignapplive/signup/phoneAuth\";\n\nconst requestInit: RequestInit = {\n headers: {\n \"Content-Type\": \"application/json; charset=UTF-8\",\n },\n};\n\nexport async function executePhoneNumberLookup(mobileAuth: {\n phoneNumber: string;\n recaptchaToken?: string;\n smsToken?: string;\n}): Promise {\n return await fetch(`${basePrivateApiUrl}${PHONE_LOOKUP_URL}`, {\n method: \"POST\",\n ...requestInit,\n body: JSON.stringify({\n ...mobileAuth,\n campaignAppGuid: campaignApp.guid,\n }),\n }).then((response) => {\n if (!response.ok) {\n throw response;\n }\n\n return response.json() as Promise;\n });\n}\n\nexport async function executeSMSTokenRequest(mobileAuth: {\n phoneNumber: string;\n recaptchaToken: string;\n smsToken?: string;\n}): Promise {\n return await fetch(`${basePrivateApiUrl}${REQUEST_TOKEN_URL}`, {\n method: \"POST\",\n ...requestInit,\n body: JSON.stringify({\n ...mobileAuth,\n campaignAppGuid: campaignApp.guid,\n }),\n }).then((response) => {\n if (!response.ok) {\n throw response;\n }\n });\n}\n","import { Log, User, UserManager, UserManagerSettings } from \"oidc-client\";\nimport { getIdentityClientConfiguration } from \"@/services/auth/identityClientConfiguration.service\";\nimport { ICampaignAppAuthenticationOption } from \"@/models/authentication/campaignAppAuthenticationOption.model\";\nimport { campaignStateService } from \"@/services/campaignState.service\";\nimport { setMyPageToken } from \"@/services/loginState.service\";\nimport {\n authProgress,\n cancelAuth,\n finalizeComplexAuth,\n finalizeSilentComplexAuth,\n login,\n} from \"@/services/auth/auth.service\";\nimport { SimpleOptionTypes } from \"@/common/authentication.dictionary\";\nimport { deleteQueryParam } from \"@/services/url.service\";\nimport {\n browserCompatibility,\n checkRedirectFlowSupport,\n} from \"@/services/browserCompatibility.service\";\nimport { getProcessedGroupedAuthOptions } from \"../campaignAppAuthenticationOptions.service\";\n\nconst OPEN_ID_CONFIG_CLIENT_ID = \"CampaignApp\";\nconst OPEN_ID_CONFIG_POPUP_REDIRECT_HTML_NAME = \"openIdAuthRedirectPopup.html\";\nconst OPEN_ID_CONFIG_REDIRECT_HTML_NAME = \"openIdAuthRedirect.html\";\nconst OPEN_ID_CONFIG_SILENT_REDIRECT_HTML_NAME =\n \"openIdAuthSilentRedirect.html\";\nconst OPEN_ID_POPUP_WINDOW_FEATURES =\n \"menubar=yes,location=yes,toolbar=yes,width=1200,height=800,left=100,top=100;resizable=yes\";\nconst OPEN_ID_RESPONSE_TYPE = \"id_token token\";\nconst OPEN_ID_SCOPE = \"openid profile\";\nconst OPEN_ID_LOAD_USER_INFO = false;\nconst OPEN_ID_AUTOMATIC_SILENT_RENEW = true;\nconst OPEN_ID_FILTER_PROTOCOL_CLAIMS = false;\n\nconst OPEN_ID_ASSETS_BASE_PATH = `${window.location.origin}/xla/openIdClient/`;\nconst OPEN_ID_AUTH_CANCELLED_ERROR_NAME = \"OPEN_ID_AUTH_CANCELLED\";\nconst OPEN_ID_AUTH_POPUP_OPEN_ERROR_NAME = \"OPEN_ID_AUTH_POPUP_OPEN_ERROR\";\nconst OPEN_ID_AUTH_ERROR_NAME = \"OPEN_ID_AUTH_ERROR\";\nconst OPEN_ID_INTERNAL_ERROR_POPUP_CLOSED = \"Popup window closed\";\nconst OPEN_ID_INTERNAL_ERROR_POPUP_OPEN = \"Error opening popup window\";\nconst OPEN_ID_EXTERNAL_PROVIDER_QUERY_PARAM_NAME = \"use-provider\";\n// -----------------\nconst POPUP_RETURN_CHECK_LS_KEY_NAME = \"FD_BACK_FROM_OIDC\";\nconst POPUP_CHECK_INTERVAL = 1000 * 0.5;\nconst POPUP_CHECK_MAX_TIME = 1000 * 60 * 30; // 30 min\nlet popupCurrentCheckTotalTime = 0;\nlet popupCurrentCheckIntervalRef: number | undefined = undefined;\n\nconst authorityUrl = (await getIdentityClientConfiguration()).authorityUrl;\n\nconst userManagerConfig: UserManagerSettings = {\n authority: authorityUrl,\n client_id: OPEN_ID_CONFIG_CLIENT_ID,\n popup_redirect_uri: `${OPEN_ID_ASSETS_BASE_PATH}${OPEN_ID_CONFIG_POPUP_REDIRECT_HTML_NAME}`,\n redirect_uri: `${OPEN_ID_ASSETS_BASE_PATH}${OPEN_ID_CONFIG_REDIRECT_HTML_NAME}`,\n popupWindowFeatures: OPEN_ID_POPUP_WINDOW_FEATURES,\n\n /* these two will be done dynamically from the buttons clicked, but are\n needed if you want to use the silent_renew */\n response_type: OPEN_ID_RESPONSE_TYPE,\n scope: OPEN_ID_SCOPE,\n\n // this will toggle if profile endpoint is used\n loadUserInfo: OPEN_ID_LOAD_USER_INFO,\n\n /* silent renew will get a new access_token via an iFrame\n just prior to the old access_token expiring (60 seconds prior) */\n silent_redirect_uri: `${OPEN_ID_ASSETS_BASE_PATH}${OPEN_ID_CONFIG_SILENT_REDIRECT_HTML_NAME}`,\n automaticSilentRenew: OPEN_ID_AUTOMATIC_SILENT_RENEW,\n\n /* this will allow all the OIDC protocol claims to be visible in the window. normally a client app\n wouldn't care about them or want them taking up space */\n filterProtocolClaims: OPEN_ID_FILTER_PROTOCOL_CLAIMS,\n};\n\nlet userManager: UserManager | null = null;\ncreateUserManagerInstance();\nLog.logger = console;\n\nexport function beginOpenIdClientAuth(\n isLogin: boolean,\n authOption: ICampaignAppAuthenticationOption\n): void {\n if (!userManager) {\n return;\n }\n\n const externalProviderName = authOption._type;\n\n if (checkRedirectFlowSupport(externalProviderName)) {\n const stateStorePromise = isLogin\n ? campaignStateService.serializeSignInStateAndStore(authOption.id)\n : campaignStateService.serializeSignUpStateAndStore(authOption.id);\n\n stateStorePromise.then(() => {\n const searchParams = new URLSearchParams(window.location.search);\n searchParams.set(\n \"authToken\",\n campaignStateService.lastStoredGuid as string\n );\n const campaignUrl = `${window.location.origin}${\n window.location.pathname\n }?${searchParams.toString()}`; // hash (#) is dropped here\n\n userManager?.signinRedirect({\n state: {\n campaignUrl,\n },\n extraQueryParams:\n createOpenIdClientExtraQueryParams(externalProviderName),\n });\n });\n } else {\n clearPopupCheckLsKey();\n userManager\n .signinPopup({\n extraQueryParams:\n createOpenIdClientExtraQueryParams(externalProviderName),\n })\n .then(\n (user: User) => {\n clearPopupCheckLsKey();\n confirmOpenIdClientAuth(user);\n },\n (error: Error) => cancelOpenIdClientAuth(error)\n );\n }\n}\n\nexport function beginOpenIdClientSilentAuth() {\n if (!userManager) {\n return Promise.resolve(null);\n }\n\n const externalProviderNames = getProcessedGroupedAuthOptions()\n .enabledComplex.filter((caao) => !SimpleOptionTypes.includes(caao._type))\n .map((caao) => caao._type)\n .join(\",\");\n\n return userManager\n .signinSilent({\n extraQueryParams: createOpenIdClientExtraQueryParams(\n externalProviderNames\n ),\n })\n .then(\n (user: User | null) => {\n if (!user) {\n return Promise.resolve(null);\n }\n\n return confirmOpenIdClientSilentAuth(user);\n },\n (error: { error: string }) => {\n const errorKey = error.error;\n\n if (errorKey !== \"login_required\") {\n console.error(errorKey || error);\n }\n\n return Promise.resolve(null);\n }\n );\n}\n\nexport function cancelOpenIdClientAuth(error: Error): void {\n switch (error.message) {\n case OPEN_ID_INTERNAL_ERROR_POPUP_CLOSED:\n handleDetachedPopup();\n cancelAuth(OPEN_ID_AUTH_CANCELLED_ERROR_NAME);\n break;\n case OPEN_ID_INTERNAL_ERROR_POPUP_OPEN:\n cancelAuth(OPEN_ID_AUTH_POPUP_OPEN_ERROR_NAME);\n break;\n default:\n cancelAuth(OPEN_ID_AUTH_ERROR_NAME);\n break;\n }\n}\n\nexport function confirmOpenIdClientAuth(user: User): void {\n setMyPageToken(user.access_token);\n finalizeComplexAuth();\n}\n\nexport async function confirmOpenIdClientSilentAuth(user: User) {\n setMyPageToken(user.access_token);\n\n return finalizeSilentComplexAuth(user);\n}\n\nexport function createUserManagerInstance(): UserManager {\n if (!userManager) {\n userManager = new UserManager(userManagerConfig);\n }\n\n return userManager;\n}\n\nexport function removeCallbackParamsFromUrl() {\n // parameters passed to auth callback page by OIDC client\n const callbackParams = [\n \"id_token\",\n \"access_token\",\n \"token_type\",\n \"expires_in\",\n \"scope\",\n \"state\",\n \"session_state\",\n ];\n\n callbackParams.forEach(function (param) {\n deleteQueryParam(param);\n });\n}\n\nfunction clearPopupCheckLsKey() {\n if (window.localStorage) {\n window.localStorage.removeItem(POPUP_RETURN_CHECK_LS_KEY_NAME);\n }\n}\n\nfunction createOpenIdClientExtraQueryParams(externalProviderNames: string) {\n return {\n [OPEN_ID_EXTERNAL_PROVIDER_QUERY_PARAM_NAME]: externalProviderNames,\n };\n}\n\nfunction handleDetachedPopup() {\n if (!browserCompatibility?.hasLocalStorage) {\n return;\n }\n\n popupCurrentCheckIntervalRef = undefined;\n popupCurrentCheckTotalTime = 0;\n\n const selectedAuthMethod = authProgress.value?.authOption;\n const checkInterval = POPUP_CHECK_INTERVAL;\n\n console.log(\n \"FD - start of polling for local storage info about OIDC return due to potentially detached popup ref\"\n );\n\n const interval = setInterval(() => {\n const timeSpentAlready = popupCurrentCheckTotalTime + checkInterval;\n\n popupCurrentCheckTotalTime = timeSpentAlready;\n\n if (timeSpentAlready > POPUP_CHECK_MAX_TIME) {\n console.log(\"FD - we exceeded max detached popup check time :( :( :(\");\n clearInterval(popupCurrentCheckIntervalRef);\n }\n\n if (\n window.localStorage.getItem(POPUP_RETURN_CHECK_LS_KEY_NAME) &&\n userManager &&\n selectedAuthMethod\n ) {\n console.log(\"FD - OIDC returned and we indeed have detached popup ref\");\n clearPopupCheckLsKey();\n clearInterval(popupCurrentCheckIntervalRef);\n setTimeout(\n () =>\n userManager\n ?.signinPopupCallback()\n .catch(() => {\n console.log(\n \"FD - Some stupid error while resuming OIDC auth after popup failure\"\n );\n })\n .finally(() => login(selectedAuthMethod)),\n checkInterval\n );\n }\n }, checkInterval);\n\n popupCurrentCheckIntervalRef = interval;\n}\n","import { openAuthFormModal, openAuthModal } from \"../authModal.service\";\nimport {\n confirmAuth,\n cancelAuth,\n finalizeSimpleAuthLogIn,\n} from \"../auth.service\";\nimport { AUTH_MOBILE_CANCELLED_ERROR_NAME } from \"./simpleMobileAuthProvider.service\";\n\nexport function beginSecureMobileAuth() {\n openAuthModal(\"secureMobile\")\n .then(\n (loginState) => {\n if (loginState) {\n return openAuthFormModal();\n } else {\n return cancelAuth();\n }\n },\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n )\n .then(\n (ls) => {\n if (ls) {\n confirmAuth();\n } else {\n cancelAuth();\n }\n },\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n );\n}\n\nexport function beginSecureMobileLogIn() {\n openAuthModal(\"secureMobile\", { isLogIn: true })\n .then(\n (loginState) => {\n if (loginState) {\n return openAuthFormModal();\n } else {\n return cancelAuth();\n }\n },\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n )\n .then(\n () => finalizeSimpleAuthLogIn(),\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n );\n}\n","import {\n openAuthFormModal,\n openSimpleEmailLogInModal,\n} from \"../authModal.service\";\nimport {\n confirmAuth,\n cancelAuth,\n finalizeSimpleAuthLogIn,\n} from \"../auth.service\";\nimport { setLoginState } from \"@/services/loginState.service\";\nimport { ILoginState } from \"@/models/authentication/loginState.model\";\nconst SIMPLE_EMAIL_LOGIN_CANCELLED_ERROR_NAME = \"SIMPLE_EMAIL_LOGIN_CANCELED\";\n\nexport function beginSimpleEmailAuth() {\n openAuthFormModal().then(\n (ls) => {\n if (ls) {\n setLoginState(ls as ILoginState);\n confirmAuth();\n } else {\n cancelAuth();\n }\n },\n (error) => cancelAuth(error)\n );\n}\n\nexport function beginSimpleEmailLogIn() {\n openSimpleEmailLogInModal().then(\n (param) => {\n return param\n ? finalizeSimpleAuthLogIn()\n : cancelAuth(SIMPLE_EMAIL_LOGIN_CANCELLED_ERROR_NAME);\n },\n () => cancelAuth(SIMPLE_EMAIL_LOGIN_CANCELLED_ERROR_NAME)\n );\n}\n","import { openAuthFormModal, openAuthModal } from \"../authModal.service\";\nimport {\n confirmAuth,\n cancelAuth,\n finalizeSimpleAuthLogIn,\n} from \"../auth.service\";\n\nexport const AUTH_MOBILE_CANCELLED_ERROR_NAME = \"AUTH_MOBILE_CANCELLED\";\n\nexport function beginSimpleMobileAuth() {\n openAuthModal(\"simpleMobile\")\n .then(\n (loginState) => {\n if (loginState) {\n return openAuthFormModal();\n } else {\n return cancelAuth();\n }\n },\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n )\n .then(\n (ls) => {\n if (ls) {\n confirmAuth();\n } else {\n cancelAuth();\n }\n },\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n );\n}\n\nexport function beginSimpleMobileLogIn() {\n openAuthModal(\"simpleMobile\", { isLogIn: true })\n .then(\n (loginState) => {\n if (loginState) {\n return openAuthFormModal();\n } else {\n return cancelAuth();\n }\n },\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n )\n .then(\n () => finalizeSimpleAuthLogIn(),\n () => cancelAuth(AUTH_MOBILE_CANCELLED_ERROR_NAME)\n );\n}\n","// TODO - if this doesn't grow, merge to authentication.service.ts\n\nexport const AUTH_CANCELLED_ERROR_NAME = \"AUTH_CANCELLED\";\nexport const AUTH_ERROR_ERROR_NAME = \"AUTH_ERROR\";\nexport const LOGIN_SELECTION_CANCELLED_ERROR_NAME = \"LOGIN_SELECTION_CANCELLED\";\n","import { Component, createApp } from \"vue\";\nimport VueGtagPlugin from \"vue-gtag\";\nimport { ENV_GLOBALS } from \"@/services/publicData.service\";\nimport { removeLoadIndicator } from \"@/mixins/loadingIndicator.mixin\";\nimport { initializeI18n } from \"@/services/i18n.service\";\nimport { initializeAuthentication } from \"@/services/auth/auth.service\";\nimport { initializeQueryParams } from \"@/services/url.service\";\nimport { initializeBrowserCompatibility } from \"@/services/browserCompatibility.service\";\nimport { setTitleAndIcon } from \"@/services/document.service\";\nimport { campaignStateService } from \"@/services/campaignState.service\";\n\nexport async function bootstrapCampaign(\n component: Component,\n plugins: any[] = [],\n) {\n const i18n = await initializeI18n();\n\n initializeQueryParams();\n initializeBrowserCompatibility();\n await campaignStateService.initializeCampaignState();\n initializeAuthentication();\n\n const app = createApp(component);\n\n // plugins - iterates through common + additionally passed campaign-specific plugins\n [\n [i18n],\n [\n VueGtagPlugin,\n { config: { id: ENV_GLOBALS.GOOGLE_ANALYTICS_MEASUREMENT_ID } },\n ],\n ...plugins,\n ].forEach(([plugin, pluginConfig]) => app.use(plugin, pluginConfig));\n\n app.mount(\"#app\");\n\n removeLoadIndicator();\n setTitleAndIcon();\n}\n","import { parseJSON } from \"./json.service\";\nimport { getCampaignSettingValue } from \"./settings.service\";\nimport { SUPPORTED_QUERY_PARAMS, queryParams } from \"./url.service\";\nimport modernizr from \"modernizr\";\n\ninterface BrowserCompatibility {\n redirectFlowUserAgentGroups: { [ind: string]: string[] };\n forceRedirectFlow: boolean | null;\n hasPopups: boolean;\n hasLocalStorage: boolean;\n hasSessionStorage: boolean;\n hasCookies: boolean;\n}\n\nexport let browserCompatibility: BrowserCompatibility | null = null;\n\nexport function initializeBrowserCompatibility() {\n browserCompatibility = getBrowserCompatibility();\n}\n\nexport function checkRedirectFlowSupport(externalProviderName: string) {\n return (\n browserCompatibility?.forceRedirectFlow ||\n !checkHasPopups(externalProviderName) ||\n (!hasCookies && !hasLocalStorage && !hasSessionStorage)\n );\n}\n\nconst hasCookies = modernizr.cookies;\nconst hasSessionStorage = modernizr.sessionstorage;\nconst hasLocalStorage = modernizr.localstorage;\nconst hasPopups = checkHasPopups();\n\nfunction checkHasPopups(\n externalProviderName: string | null = null,\n redirectFlowUserAgentGroups: {\n [key: string]: string[];\n } = getRedirectFlowUserAgentGroups()\n) {\n const userAgent = navigator && navigator.userAgent;\n\n if (!userAgent) {\n return true;\n }\n\n let userAgentsToCheck;\n\n if (externalProviderName) {\n userAgentsToCheck =\n redirectFlowUserAgentGroups &&\n redirectFlowUserAgentGroups[externalProviderName];\n\n if (!userAgentsToCheck || !userAgentsToCheck.length) {\n return true;\n }\n } else {\n userAgentsToCheck = Object.entries(redirectFlowUserAgentGroups)\n .reduce((all, [_, groupAgents]) => {\n (groupAgents || []).forEach((agent) => all.push(agent));\n\n return all;\n }, [] as string[])\n .filter((agent, index, agents) => index === agents.indexOf(agent));\n }\n\n return userAgentsToCheck?.every((rfua) => !new RegExp(rfua).test(userAgent));\n}\n\nfunction getRedirectFlowUserAgentGroups() {\n return (\n parseJSON(getCampaignSettingValue(\"redirectFlowUserAgents\") as string) || []\n );\n}\n\nfunction getBrowserCompatibility(\n redirectFlowUserAgentGroups: {\n [ind: string]: string[];\n } = getRedirectFlowUserAgentGroups(),\n forceRedirectFlow = queryParams &&\n queryParams[SUPPORTED_QUERY_PARAMS.REDIRECT_FLOW] === \"true\"\n) {\n return {\n hasPopups,\n hasLocalStorage,\n hasSessionStorage,\n hasCookies,\n redirectFlowUserAgentGroups,\n forceRedirectFlow,\n };\n}\n","import { ICampaignApp } from \"@/models/campaign/campaignApp.model\";\nimport { PUBLIC_DATA } from \"./publicData.service\";\nimport {\n VisualTypes,\n VisualTypesWithLoginFeature,\n} from \"@/common/visualType.dictionary\";\n\n// ---------------- WARNING -------------\n// Explained in README.md - Local Dev Guid Hack\nif (\n process.env.NODE_ENV !== \"production\" &&\n (!PUBLIC_DATA ||\n !PUBLIC_DATA.campaignApps ||\n !PUBLIC_DATA.campaignApps.campaignApps ||\n !PUBLIC_DATA.campaignApps.campaignApps.length)\n) {\n window.location.reload();\n}\n// --------------------------------------\n\nexport const campaignApp = PUBLIC_DATA?.campaignApps\n ?.campaignApps[0] as ICampaignApp;\n\nexport function getAbbreviatedVisualType() {\n const visualType = campaignApp?.visualType;\n\n return visualType\n ? visualType\n .split(/(?=[A-Z])/g)\n .map((w) => w.charAt(0))\n .join(\"\")\n : \"UNKNOWN\";\n}\n\nexport function hasParticipationSupport() {\n return campaignApp.visualType !== VisualTypes.ITEM_LIST;\n}\n\nexport function hasLoginSupport() {\n return VisualTypesWithLoginFeature.includes(campaignApp.visualType);\n}\n\nexport function hasSuspendedCMTokenLogin() {\n return campaignApp.visualType === VisualTypes.SIGN_UP;\n}\n","import { Ref, ref } from \"vue\";\nimport {\n SUPPORTED_QUERY_PARAMS,\n basePrivateApiUrl,\n getQueryParam,\n} from \"./url.service\";\nimport { serializeCampaignState } from \"./stateProcessor.service\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type StateObj = {\n [k: string]: string | string[] | StateObj | null;\n} | null;\nconst BK_STORE_ENDPOINT_URL = \"campaignapplive/states\";\nlet state: StateObj = null;\n\ninterface CampaignState {\n isLogin?: boolean;\n selectedAuthOptionId: string;\n}\n\nconst requestInit: RequestInit = {\n headers: {\n \"Content-Type\": \"application/json; charset=UTF-8\",\n Accept: \"application/json\",\n },\n};\n\nclass CampaignStateService {\n private _lastStoreGuid: Ref;\n\n constructor() {\n this._lastStoreGuid = ref(null);\n }\n\n public get lastStoredGuid(): string | null {\n return this._lastStoreGuid.value;\n }\n\n public getState() {\n return state;\n }\n\n public async initializeCampaignState() {\n const authTokenParam = getQueryParam(SUPPORTED_QUERY_PARAMS.AUTH_TOKEN);\n\n if (authTokenParam) {\n state = await campaignStateService.read(authTokenParam);\n }\n\n return Promise.resolve();\n }\n\n public async read(storeGuid: string | null): Promise {\n storeGuid = storeGuid || this.lastStoredGuid;\n\n if (!storeGuid) {\n throw new Error(\n \"Missing storeGuid. Was the campaign state stored before?\"\n );\n }\n\n const url = `${basePrivateApiUrl}${BK_STORE_ENDPOINT_URL}/${storeGuid}`;\n\n return (await fetch(url, { method: \"GET\" })).json();\n }\n\n public async serializeSignInStateAndStore(selectedAuthOptionId: string) {\n return this.store({\n selectedAuthOptionId,\n isLogin: true,\n });\n }\n\n public async serializeSignUpStateAndStore(selectedAuthOptionId: string) {\n const campaignState = await serializeCampaignState();\n\n return this.store({\n selectedAuthOptionId,\n ...campaignState,\n });\n }\n\n public setState(_state: StateObj) {\n state = _state;\n\n return this.getState();\n }\n\n public async store(campaignState: CampaignState): Promise {\n const promise = await fetch(\n `${basePrivateApiUrl}${BK_STORE_ENDPOINT_URL}`,\n {\n body: JSON.stringify(campaignState),\n method: \"POST\",\n ...requestInit,\n }\n );\n\n this._lastStoreGuid.value = await promise.json();\n\n return promise;\n }\n}\n\nexport const campaignStateService = new CampaignStateService();\n","import {\n getCampaignDateTimeSettingAsTime,\n getCampaignDateTimeSetting,\n} from \"@/services/settings.service\";\nimport { campaignApp } from \"./campaignApp.service\";\n\nexport type CampaignStatus = {\n isPlanning: boolean;\n isRunning: boolean;\n isEndedOrArchived: boolean;\n isBeforeActivity: boolean;\n isAfterActivity: boolean;\n isDuringActivity: boolean;\n activityStartDate?: Date;\n activityEndDate?: Date;\n campaignIsOver?: boolean;\n};\n\nexport const useCampaignStatus = (activityName: string): CampaignStatus => {\n const now = Date.now();\n const { status } = campaignApp;\n const isPlanning = status === \"planning\";\n const isRunning = status === \"running\";\n const isEndedOrArchived = status === \"ended\" || status === \"archived\";\n\n const activityStartSettingName = `${activityName}FromDateTime`;\n const activityEndSettingName = `${activityName}ToDateTime`;\n const activityStartDateTime = getCampaignDateTimeSettingAsTime(\n activityStartSettingName\n );\n const activityEndDateTime = getCampaignDateTimeSettingAsTime(\n activityEndSettingName\n );\n\n let isBeforeActivity = false;\n let isAfterActivity = false;\n let isDuringActivity = false;\n\n if (isPlanning) {\n isBeforeActivity = true;\n } else if (isRunning) {\n isBeforeActivity = activityStartDateTime\n ? now < activityStartDateTime\n : false;\n isAfterActivity =\n !isBeforeActivity && activityEndDateTime\n ? now > activityEndDateTime\n : false;\n isDuringActivity = !isBeforeActivity && !isAfterActivity;\n } else {\n isAfterActivity = true;\n }\n\n return {\n isPlanning,\n isRunning,\n isEndedOrArchived,\n isBeforeActivity,\n isAfterActivity,\n isDuringActivity,\n activityStartDate:\n getCampaignDateTimeSetting(activityStartSettingName) || new Date(),\n activityEndDate: getCampaignDateTimeSetting(activityEndSettingName),\n };\n};\n","import { getCampaignSettingValue } from \"./settings.service\";\n\nexport function useCustomCSS() {\n const stylesSetting = getCampaignSettingValue(\"customCss\");\n\n if (!stylesSetting) {\n return;\n }\n\n const style = document.createElement(\"style\");\n document.body.append(style);\n\n style.textContent = stylesSetting;\n}\n","import { onMounted, onUpdated } from \"vue\";\nimport { getCampaignSettingValue } from \"./settings.service\";\n\nlet _customJSFunc: ((arg0: unknown) => void) | null = null;\n\nfunction _setupCustomJS() {\n const customJSSetting = getCampaignSettingValue(\"customJs\");\n\n if (customJSSetting) {\n _customJSFunc = eval(`(context) => {${customJSSetting}}`);\n }\n}\n\nfunction _executeCustomJs(context: unknown) {\n if (_customJSFunc) {\n _customJSFunc(context);\n }\n}\n\nexport function useCustomJS() {\n onMounted(() => {\n _setupCustomJS();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n _executeCustomJs(this);\n });\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n onUpdated(() => _executeCustomJs(this));\n}\n","import { $te, $ttt } from \"@/mixins/i18n.mixin\";\nimport { translateCampaignSetting } from \"./i18n.service\";\n\nconst ULTIMATE_FALLBACK_WINDOW_TITLE = \"Fandrive Campaign\";\n\nfunction setWindowTitle() {\n let title = translateCampaignSetting(\"externalTitle\");\n\n title = title ? title.trim() : \"\";\n\n if (!title) {\n const fallbackTrnKey = \"campaign.txt_campaignTitle\";\n\n title = $te(fallbackTrnKey)\n ? $ttt(fallbackTrnKey)\n : ULTIMATE_FALLBACK_WINDOW_TITLE;\n }\n\n document.title = title;\n}\n\nfunction setWindowIcon() {\n const linkEl = document.querySelector(\"link[rel~='icon']\");\n\n if (linkEl) {\n (linkEl as HTMLLinkElement).href = require(\"@/assets/favicon.png\");\n }\n}\n\nexport function setTitleAndIcon() {\n setWindowTitle();\n setWindowIcon();\n}\n","import { Ref, ref } from \"vue\";\n\nclass ErrorService {\n private _errorMessage: Ref;\n constructor() {\n this._errorMessage = ref(null);\n }\n\n public get errorMessage(): string | null {\n return this._errorMessage.value;\n }\n\n set errorMessage(m: string | null) {\n this._errorMessage.value = m;\n }\n\n public clearErrorMessage(): void {\n this._errorMessage.value = null;\n }\n\n public raiseErrorMessage(message: string): void {\n this.errorMessage = message;\n }\n}\n\nexport const errorService = new ErrorService();\n","// See: socialcee\\SocialCeeApp.Web\\SocialCeeApp.Campaign\\app\\common\\dict\\Application.js\n\nexport const HOST_URI =\n window.location.origin ||\n `${window.location.protocol}//${window.location.host}`;\nexport const SCRAPE_URI = `${HOST_URI.replace(\n /^(?!.*[/]$).*$/gm,\n \"$&/\"\n)}campaign/fbshare`;\n\nexport const ApplicationDictionary = {\n HOST_URI,\n SCRAPE_URI,\n};\n","import { translateObject } from \"./i18n.service\";\nimport { stripTags } from \"./url.service\";\nimport { getSingleFileUrl } from \"./files.service\";\nimport { PUBLIC_DATA } from \"./publicData.service\";\nimport { HOST_URI, SCRAPE_URI } from \"@/common/application.dictionary\";\nimport { SmartLink } from \"@/models/campaign/smartLink.model\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { browserCompatibility } from \"./browserCompatibility.service\";\n\nconst campaignApp = PUBLIC_DATA.campaignApps?.campaignApps[0];\nconst fbAppId = campaignApp?.facebookAppId;\n\nexport const shareOnFb = (linkToShare: string): void => {\n // https://developers.facebook.com/docs/sharing/reference/share-dialog\n\n const url = encodeURIComponent(linkToShare);\n const shareURL = `https://www.facebook.com/dialog/share?app_id=${fbAppId}&display=popup&href=${url}`;\n\n let params = undefined;\n\n if (browserCompatibility?.hasPopups) {\n const width = 600;\n const height = 300;\n const y = window.outerHeight / 2 + window.screenY - height / 2;\n const x = window.outerWidth / 2 + window.screenX - width / 2;\n\n params = `scrollbars=false,resizable=false,status=false,location=false,toolbar=false,menubar=false,\n width=${width},height=${height},left=${x},top=${y}`;\n }\n\n window.open(shareURL, \"_blank\", params);\n};\n\nexport const createQueryForFbShare = (\n url?: string,\n title?: string,\n description?: string,\n imgUrl?: string\n): string => {\n const smartLink = PUBLIC_DATA.campaignApps?.linked?.smartLinks[0];\n const parameters: {\n fbAppId: string;\n title: string;\n description: string;\n redirectDesktopUrl?: string;\n redirectMobileUrl?: string;\n imageUrl?: string;\n } = {\n fbAppId,\n title: stripTags(\n title || translateObject(smartLink, \"smartLink\", \"title\", smartLink.title)\n ),\n description: createDescriptionForFbShare(description),\n redirectDesktopUrl: url || smartLink.originalUrl,\n redirectMobileUrl: url || smartLink.mobileUrl,\n };\n\n imgUrl = createImageLinkForFbShare(smartLink, imgUrl);\n\n if (imgUrl) {\n parameters.imageUrl = imgUrl;\n }\n\n const paramsString = JSON.stringify(parameters);\n const escapedParamsString = encodeURIComponent(paramsString);\n const base64Params = window.btoa(escapedParamsString);\n\n return `${SCRAPE_URI}?${encodeURIComponent(base64Params)}`;\n};\n\nconst createDescriptionForFbShare = (description?: string) => {\n // if description is an empty string, we have to put space char, otherwise FB doesn't respect it\n if (description !== undefined && description.trim().length === 0) {\n description = \" \";\n }\n\n // now we either have some description or fallback to default one\n description =\n description || $ttt(\"campaign.facebookShare.txt_participationDescription\");\n\n return stripTags(description);\n};\n\nconst createImageLinkForFbShare = (\n smartLink: SmartLink,\n imageUrl?: string\n): string | undefined => {\n const settings = PUBLIC_DATA.campaignSettings?.campaignSettings ?? [];\n\n // specific passed image url\n if (imageUrl) {\n return `${HOST_URI}${imageUrl}`;\n }\n\n // smart link image\n const smartLinkImageId = smartLink ? smartLink.imageFileMetaDataId : null;\n\n if (smartLinkImageId) {\n return `${HOST_URI}${getSingleFileUrl(smartLinkImageId)}`;\n }\n\n // sponsor logo or top banner\n const fallbackImage = settings\n ? settings.find((s) => s.key === \"sponsorLogoImage\")?.value ||\n settings.find((s) => s.key === \"topBannerImage\")?.value\n : null;\n\n if (fallbackImage) {\n return `${HOST_URI}${getSingleFileUrl(fallbackImage)}`;\n }\n\n return undefined;\n};\n","import { basePrivateApiUrl } from \"@/services/url.service\";\nimport { campaignApp } from \"./campaignApp.service\";\n\nconst FILES_API_URL = `${basePrivateApiUrl}campaignapplive/campaignfiles`;\n\nfunction getUrlWithParams(\n url: string,\n params: { [key: string]: string },\n id = \"\"\n) {\n if (id && id.length > 0) {\n return `${url}/${id}/?${new URLSearchParams(params).toString()}`;\n } else {\n return `${url}/?${new URLSearchParams(params).toString()}`;\n }\n}\n\nexport function getSingleFileUrl(\n id: string | undefined | null,\n campaignGuid = campaignApp.guid\n) {\n if (!id) {\n return;\n }\n\n return getUrlWithParams(FILES_API_URL, { guid: campaignGuid }, id);\n}\n\nexport function getSingleFileUrlByGuid(\n guid: string,\n campaignGuid = campaignApp.guid\n) {\n if (!guid) {\n return;\n }\n\n return getUrlWithParams(FILES_API_URL, {\n fileguid: guid,\n guid: campaignGuid,\n });\n}\n\nexport function getSingleFileCreateUrl(\n params: { [key: string]: string },\n campaignGuid = campaignApp.guid\n) {\n if (!params.guid) {\n params.guid = campaignGuid;\n }\n\n return getUrlWithParams(FILES_API_URL, params);\n}\n","// Check https://matteo-gabriele.gitbook.io/vue-gtag/api\n\nimport { event, pageview } from \"vue-gtag\";\nimport { campaignApp, getAbbreviatedVisualType } from \"./campaignApp.service\";\n\nexport const GOOGLE_ANALYTICS_EVENTS = {\n CAMPAIGN: {\n COMMON: {\n LOGIN_CANCELLED: {\n category: \"COMMON\",\n action: \"LoginCancelled\",\n },\n LOGIN_FAILURE_WITH: {\n category: \"COMMON\",\n action: \"LoginFailureWith\",\n },\n LOGIN_SELECTION_OPENED: {\n category: \"COMMON\",\n action: \"LoginSelectionOpened\",\n },\n LOGIN_SUCCESS: { category: \"COMMON\", action: \"LoginSuccess\" },\n LOGIN_SUCCESS_KIOSK: {\n category: \"COMMON\",\n action: \"LoginSuccessKiosk\",\n },\n LOGIN_SUCCESS_WITH: {\n category: \"COMMON\",\n action: \"LoginSuccessWith\",\n },\n PARTICIPATION_SHARE: {\n category: \"COMMON\",\n action: \"CampaignParticipationShare\",\n },\n POST_PARTICIPATION_ACTION_LINK_CLICK: {\n category: \"COMMON\",\n action: \"CampaignPostParticipationActionLinkClick\",\n },\n SHARE: { category: \"COMMON\", action: \"CampaignShare\" },\n SPONSOR_LOGO_LINK_CLICK: {\n category: \"COMMON\",\n action: \"CampaignSponsorLogoLinkClick\",\n },\n },\n CQ: {\n ANSWER_SENT: \"AnswerSent\",\n },\n GTA: {\n ANSWER_SENT: \"AnswerSent\",\n },\n GTN: {\n ANSWER_SENT: \"AnswerSent\",\n },\n GTLU: {\n ANSWER_SENT: \"AnswerSent\",\n DREAM_TEAM_GUESS_SENT: \"DreamTeamGuessSent\",\n },\n GTS: {\n ANSWER_SENT: \"AnswerSent\",\n ANSWER_SENT_KIOSK: \"AnswerSentKiosk\",\n },\n KQ: {\n ANSWERS_SENT: \"AnswersSent\",\n },\n PQ: {\n ANSWERS_SENT: \"AnswersSent\",\n },\n SU: {\n SIGNED_UP: \"SignedUp\",\n },\n SF: {\n ANSWER_SENT: \"AnswerSent\",\n },\n SMV: {\n VOTE: \"Vote\",\n },\n WOF: {\n MADE_ATTEMPT: \"MadeSpin\",\n MADE_ATTEMPT_KIOSK: \"MadeSpinKiosk\",\n },\n SM: {\n MADE_ATTEMPT: \"MadeSlotSpin\",\n MADE_ATTEMPT_KIOSK: \"MadeSlotSpinKiosk\",\n },\n SCA: {\n MADE_ATTEMPT: \"MadeScratch\",\n MADE_ATTEMPT_KIOSK: \"MadeScratchKiosk\",\n },\n IL: {\n LINK_ACTION_BTN: \"LinkActionButtonClick\",\n MAIL_ACTION_BTN: \"MailActionButtonClick\",\n },\n ES: {\n UPLOAD_BTN: \"UploadButtonClick\",\n UPLOAD_COMPLETE: \"UploadComplete\",\n UPLOAD_SUBMIT: \"UploadSubmit\",\n },\n V: {\n VOTE: \"Vote\",\n },\n AF: {\n FORM_SENT: \"Form\",\n },\n GTO: {\n ANSWER_SENT: \"AnswerSent\",\n },\n GTP: {\n ANSWER_SENT: \"AnswerSent\",\n },\n SGTO: {\n CHOICE_MADE: \"ChoiceMade\",\n GUESS_SENT: \"GuessSent\",\n ROUND_POST_PARTICIPATION_BUTTON_CLICK: \"RoundPPAClick\",\n },\n SGTS: {\n GUESS_SENT: \"GuessSent\",\n MATCH_POST_PARTICIPATION_BUTTON_CLICK: \"MatchPPAClick\",\n },\n GTI: {\n GUESS_SENT: \"GuessSent\",\n },\n LE: {\n ANSWER_SENT: \"AnswerSent\",\n },\n SQ: {\n GUESS_SENT: \"GuessSent\",\n },\n },\n};\n\nexport const GOOGLE_ANALYTICS_CUSTOM_DIMENSIONS = {\n SC_CAMPAIGN_TYPE: \"dimension2\",\n SC_EVENT_VALUE: \"dimension1\",\n SC_ORGANIZATION_ID: \"dimension3\",\n};\n\ntype GAEventParams = {\n event_category?: string;\n event_label?: string;\n [key: string]: string | number | undefined;\n};\n\ntype GAPageViewParams = {\n page_path?: string;\n page_title?: string;\n [key: string]: string | number | undefined;\n};\n\nexport function sendCampaignEvent(\n eventAction: string,\n eventCategory?: string,\n eventValue?: number | string\n) {\n const param = {\n event_category: `CMP${eventCategory || getAbbreviatedVisualType()}`,\n event_label: campaignApp.guid,\n } as GAEventParams;\n\n if (eventValue !== undefined && eventValue !== null) {\n param[GOOGLE_ANALYTICS_CUSTOM_DIMENSIONS.SC_EVENT_VALUE] = eventValue;\n }\n\n event(eventAction, param);\n}\n\nexport function sendPageView() {\n const param = {\n page_path: `${location.pathname}${location.hash}`,\n page_title: \"FD - Campaign\",\n } as GAPageViewParams;\n\n param[GOOGLE_ANALYTICS_CUSTOM_DIMENSIONS.SC_CAMPAIGN_TYPE] =\n getAbbreviatedVisualType();\n param[GOOGLE_ANALYTICS_CUSTOM_DIMENSIONS.SC_ORGANIZATION_ID] =\n campaignApp.tenantId;\n param[\"title\"] = campaignApp.name;\n\n pageview(param);\n}\n\nexport function sendShareEvent() {\n sendCampaignEvent(\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.SHARE.action,\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.SHARE.category\n );\n}\n\nexport function resetGASession() {\n // TODO - this is quite hard in GA4 ;x\n}\n","import { campaignApp } from \"./campaignApp.service\";\nimport { getAuthToken } from \"./localStorage.service\";\nimport { basePrivateApiUrl } from \"./url.service\";\n\nconst headers = {\n \"Content-Type\": \"application/vnd.api+json; charset=UTF-8\",\n};\n\nexport async function get(\n endpoint: string,\n params: URLSearchParams = new URLSearchParams(),\n customHeaders?: { [key: string]: any }\n): Promise {\n params.append(\"campaignAppGuid\", campaignApp.guid);\n\n const data = await fetch(`${basePrivateApiUrl}${endpoint}?${params}`, {\n method: \"GET\",\n headers: prepareHeaders(endpoint, customHeaders),\n });\n\n return responseHandler(data);\n}\n\nexport async function post(\n endpoint: string,\n body: BodyInit,\n params: URLSearchParams = new URLSearchParams(),\n customHeaders?: { [key: string]: any }\n): Promise {\n params.append(\"campaignAppGuid\", campaignApp.guid);\n\n const data = await fetch(`${basePrivateApiUrl}${endpoint}?${params}`, {\n method: \"POST\",\n headers: prepareHeaders(endpoint, customHeaders),\n body,\n });\n\n return responseHandler(data);\n}\n\nexport async function put(\n endpoint: string,\n body: BodyInit,\n params: URLSearchParams = new URLSearchParams(),\n customHeaders?: { [key: string]: any }\n): Promise {\n params.append(\"campaignAppGuid\", campaignApp.guid);\n\n const data = await fetch(`${basePrivateApiUrl}${endpoint}?${params}`, {\n method: \"PUT\",\n headers: prepareHeaders(endpoint, customHeaders),\n body,\n });\n\n return responseHandler(data);\n}\n\nexport async function del(\n endpoint: string,\n id: string | number,\n params: URLSearchParams = new URLSearchParams(),\n customHeaders?: { [key: string]: any }\n): Promise {\n params.append(\"campaignAppGuid\", campaignApp.guid);\n\n await fetch(`${basePrivateApiUrl}${endpoint}/${id}?${params}`, {\n method: \"DELETE\",\n headers: prepareHeaders(endpoint, customHeaders),\n });\n\n return;\n}\n\nfunction isCrossDomain(url: string) {\n try {\n const requestUrl = new URL(url, window.location.origin);\n\n return requestUrl.origin !== window.location.origin;\n } catch (error) {\n return false;\n }\n}\n\nexport function prepareHeaders(\n endpoint: string,\n customHeaders: { [key: string]: any } = {}\n) {\n let authHeaders = {};\n const storedAuthToken = getAuthToken();\n\n if (storedAuthToken && !isCrossDomain(endpoint)) {\n authHeaders = {\n Authorization: `Bearer ${storedAuthToken}`,\n };\n }\n\n return new Headers({\n ...headers,\n ...authHeaders,\n ...customHeaders,\n });\n}\n\nfunction responseHandler(res: Response) {\n if (res.ok) {\n if (res.status !== 204) {\n return res.json();\n }\n\n return;\n }\n\n throw res;\n}\n","import { Language } from \"@/models/language/language.model\";\nimport { basePrivateApiUrl } from \"./url.service\";\nimport { campaignApp } from \"./campaignApp.service\";\n\nconst LANGUAGES_ENDPOINT = `campaignapplive/languages`;\n\nexport const getLanguages = async (): Promise => {\n const data = await fetch(\n `${basePrivateApiUrl}${LANGUAGES_ENDPOINT}?campaignAppGuid=${campaignApp.guid}`,\n { method: \"GET\" }\n );\n return data.json();\n};\n","import { LanguageOverride } from \"@/models/language/languageOverride.model\";\nimport { TranslationsDictionary } from \"@/models/language/translationsDictionary.model\";\nimport { basePrivateApiUrl } from \"./url.service\";\nimport { campaignApp } from \"./campaignApp.service\";\n\nconst CAMPAIGN_COMMON_LANGUAGE_MODULE = `campaignCommon`;\nconst TRANSLATIONS_ENDPOINT = `i18n/dictionaries`;\nconst LANGUAGE_OVERRIDES_ENDPOINT = `campaignapplive/languageOverrides`;\n\nexport async function getTranslationsForLanguage(\n languageCode: string,\n campaignVisualType: string\n): Promise {\n const promise = await fetch(\n `${basePrivateApiUrl}${TRANSLATIONS_ENDPOINT}/${languageCode}?moduleNames[]=${CAMPAIGN_COMMON_LANGUAGE_MODULE}&moduleNames[]=${campaignVisualType}`,\n { method: \"GET\" }\n );\n\n return promise.json();\n}\n\nexport async function getLanguageOverridesFor(\n languageCode: string\n): Promise {\n const promise = await fetch(\n `${basePrivateApiUrl}${LANGUAGE_OVERRIDES_ENDPOINT}?campaignAppGuid=${campaignApp.guid}&language=${languageCode}`,\n { method: \"GET\" }\n );\n\n return promise.json();\n}\n","import { ICampaignSetting } from \"./../models/campaign/campaignSetting.model\";\nimport { PUBLIC_DATA } from \"@/services/publicData.service\";\nimport { getCampaignSetting } from \"./settings.service\";\nimport { I18n, createI18n } from \"vue-i18n\";\nimport { getLanguages } from \"./languages.service\";\nimport { TranslationsDictionary } from \"@/models/language/translationsDictionary.model\";\nimport {\n getLanguageOverridesFor,\n getTranslationsForLanguage,\n} from \"./translations.service\";\nimport {\n SUPPORTED_QUERY_PARAMS,\n queryParams,\n updateQueryParam,\n} from \"./url.service\";\nimport {\n getCampaignLanguage,\n storeCampaignLanguage,\n} from \"./localStorage.service\";\nimport { LanguagesDictionary } from \"@/common/languages.dictionary\";\nimport { LanguageOverride } from \"@/models/language/languageOverride.model\";\nimport { Language } from \"@/models/language/language.model\";\nimport { ref } from \"vue\";\nimport { parseJSON } from \"./json.service\";\nimport { IPrimitiveDictionary } from \"@/models/primitiveDictionary._model\";\nimport { campaignApp } from \"./campaignApp.service\";\n\nconst translations: { [key: string]: IPrimitiveDictionary } = {};\nlet fallbackLocale: string;\nconst languageOverrides = ref([]);\nlet availableLanguages: Language[] = [];\n\nexport let _i18n: I18n<\n Record,\n Record,\n Record,\n string,\n false\n> | null = null;\n\nexport let locale: string;\n\n/**\n * Use this function when creating vue app\n *\n * Example:\n * ```\n * export const i18n = await initializeI18n();\n *\n * createApp(signUp).use(i18n).mount(\"#app\");\n * ```\n *\n */\nexport async function initializeI18n() {\n const dict = getInitialTranslationsDictionary();\n locale = fallbackLocale = dict.language;\n translations[locale] = dict.values;\n\n let resultLangCode = establishLanguageCodeFromQueryParam();\n\n resultLangCode = resultLangCode || establishLanguageCodeFromLocalStorage();\n\n resultLangCode = resultLangCode || establishLanguageCodeFromBrowser();\n\n // if not established yet -> fallback to primary campaign language\n resultLangCode = resultLangCode || locale;\n\n if (\n resultLangCode !== locale &&\n (await isCampaignUsingThisLanguage(resultLangCode))\n ) {\n await switchLanguageTo(resultLangCode, false);\n } else {\n resultLangCode = locale;\n updateQueryParam(SUPPORTED_QUERY_PARAMS.LANGUAGE, resultLangCode);\n }\n\n _i18n = createI18n({\n legacy: false,\n globalInjection: true,\n locale: resultLangCode, // set locale\n fallbackLocale: fallbackLocale,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n messages: translations as any, // set locale messages,\n missing: (locale: string, key: string) =>\n missingTranslationHandler(key, locale),\n });\n\n return _i18n;\n}\n\nexport function getInitialTranslationsDictionary(): TranslationsDictionary {\n const dictionary: TranslationsDictionary = PUBLIC_DATA.dictionaries ?? {};\n\n try {\n dictionary.values = {\n ...dictionary.values,\n ...JSON.parse(getCampaignSetting(\"customTranslations\")?.value as string),\n };\n } catch (e) {\n /* silently ignore an invalid setting */\n }\n\n return dictionary;\n}\n\nexport async function switchLanguageTo(\n languageCode: string,\n withReload = true\n) {\n await fetchTranslationsForLanguage(languageCode);\n await fetchLanguageOverrides(languageCode);\n\n storeCampaignLanguage(languageCode);\n updateQueryParam(SUPPORTED_QUERY_PARAMS.LANGUAGE, languageCode);\n locale = languageCode;\n\n if (withReload) {\n window.location.reload();\n }\n}\n\nfunction missingTranslationHandler(key: string, _locale: string = locale) {\n console.warn(`Missing ${_locale} translation: ${key}`);\n return `Missing ${_locale} translation: ${key}`;\n}\n\nasync function fetchTranslationsForLanguage(\n languageCode: string\n): Promise {\n if (!translations[languageCode]) {\n const campaign = PUBLIC_DATA.campaignApps ?? {};\n\n const dictionary = await getTranslationsForLanguage(\n languageCode,\n campaign.campaignApps[0].visualType\n );\n\n translations[languageCode] = dictionary.values;\n }\n}\n\nasync function fetchLanguageOverrides(languageCode: string): Promise {\n languageOverrides.value = await getLanguageOverridesFor(languageCode);\n\n const languageTranslationsOverrides = languageOverrides.value.filter(\n (override: LanguageOverride) => override.objectType === \"customTranslation\"\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const translationOverrides: any = {};\n\n languageTranslationsOverrides.forEach(\n (override: LanguageOverride) =>\n (translationOverrides[override.objectId] = override.value)\n );\n\n translations[languageCode] = {\n ...translations[languageCode],\n ...translationOverrides,\n };\n}\n\nfunction establishLanguageCodeFromQueryParam(): string | null {\n return queryParams ? queryParams[SUPPORTED_QUERY_PARAMS.LANGUAGE] : null;\n}\n\nfunction establishLanguageCodeFromLocalStorage(): string | null {\n return getCampaignLanguage();\n}\n\nfunction establishLanguageCodeFromBrowser(): string | null {\n if (!window.navigator || !window.navigator.languages) {\n return null;\n }\n\n const languageCodes: string[] = Object.values(\n LanguagesDictionary.languageCodes\n );\n\n let matchedLanguage: string | null = null;\n\n for (const browserLanguageCode of window.navigator.languages) {\n if (languageCodes.includes(browserLanguageCode)) {\n matchedLanguage = browserLanguageCode;\n }\n\n if (browserLanguageCode.includes(\"-\")) {\n const twoLetterLanguageCode = browserLanguageCode.substring(0, 2);\n\n if (languageCodes.includes(twoLetterLanguageCode)) {\n matchedLanguage = twoLetterLanguageCode;\n }\n }\n\n if (matchedLanguage) {\n return matchedLanguage;\n }\n }\n\n return matchedLanguage;\n}\n\nasync function fetchLanguagesUsedByCampaign(): Promise {\n const allLanguages = await getLanguages();\n const campaignLangsIds: number[] = parseJSON(\n getCampaignSetting(\"additionalLanguages\")?.value as string\n );\n\n const campaignLangs = allLanguages.filter((language) =>\n campaignLangsIds.find((id) => id === language.id)\n );\n\n const campaign = PUBLIC_DATA.campaignApps ?? {};\n\n const mainLanguage: Language | undefined = allLanguages.find(\n (lang) => lang.languageCode === campaign.campaignApps[0].language\n );\n\n if (mainLanguage) {\n campaignLangs.push(mainLanguage);\n }\n\n return campaignLangs;\n}\n\nasync function isCampaignUsingThisLanguage(\n languageCode: string\n): Promise {\n const langs = await getLanguagesUsedByCampaign();\n\n return langs.some((lang: Language) => lang.languageCode === languageCode);\n}\n\nexport async function getLanguagesUsedByCampaign(): Promise {\n if (availableLanguages.length < 1) {\n availableLanguages = await fetchLanguagesUsedByCampaign();\n }\n\n return availableLanguages;\n}\n\nexport function translateCampaignSetting(key: string): string {\n const setting = getCampaignSetting(key);\n\n if (!setting) {\n throw Error(`Can't find setting translation for: ${key}`);\n }\n\n const settingLanguageOverride = languageOverrides.value.find(\n (override: LanguageOverride) =>\n override.objectType === \"setting\" && override.objectId === key\n );\n\n if (settingLanguageOverride) {\n return settingLanguageOverride.value;\n }\n\n return setting.value as string;\n}\n\nexport function translateObject(\n object: unknown | { id: string; [key: string]: string },\n fieldName: string,\n objectType: string,\n defaultValue?: string\n): string {\n const withDefaultValuePassed = typeof defaultValue !== \"undefined\";\n\n if (!object) {\n if (withDefaultValuePassed) {\n return defaultValue as string;\n } else {\n throw Error(`Missing object and default translation`);\n }\n }\n\n if (\n objectType &&\n (objectType === \"settings\" || objectType === \"campaignSettings\")\n ) {\n const settingValue = translateCampaignSetting(\n (object as ICampaignSetting).key\n );\n\n if (settingValue) {\n return settingValue;\n }\n\n if (withDefaultValuePassed && defaultValue) {\n return defaultValue;\n }\n\n return (\n (object as ICampaignSetting).value ??\n missingTranslationHandler(`object: ${(object as ICampaignSetting).key}`)\n );\n }\n\n defaultValue = withDefaultValuePassed\n ? defaultValue\n : (object as { id: string; [key: string]: string })[fieldName];\n\n const lo = languageOverrides.value.find(\n (ot) =>\n ot.objectType === objectType &&\n ot.objectId ===\n String((object as { id: string; [key: string]: string }).id) &&\n ot.fieldName === fieldName\n );\n\n return lo ? lo.value : (defaultValue as string);\n}\n\nexport function trimMustachesInTranslation(key: string) {\n if (!_i18n) {\n throw new Error(\"i18n was not initialized before calling this function\");\n }\n\n const dict = translations[_i18n.global.locale.value];\n\n if (!dict) {\n return;\n }\n\n let translation = dict[key] as string;\n\n if (!translation) {\n translation = translations[fallbackLocale][key] as string;\n }\n\n if (!translation) {\n return;\n }\n\n translations[_i18n.global.locale.value][key] = translation\n .replace(new RegExp(`{{`, \"g\"), \"{\")\n .replace(new RegExp(`}}`, \"g\"), \"}\");\n}\n\nexport function getLanguageCodeToSearchBy() {\n return locale !== campaignApp.language ? locale : undefined;\n}\n","export const parseJSON = (text: string) => {\n let parsed;\n\n try {\n parsed = JSON.parse(text);\n } catch (e) {\n parsed = null;\n }\n\n return parsed;\n};\n\nexport const stringifyJSON = (text: string) => {\n let string;\n\n try {\n string = JSON.stringify(text);\n } catch (e) {\n string = null;\n }\n\n return string;\n};\n","import { campaignApp } from \"./campaignApp.service\";\n\nconst LANGUAGE_PREFIX = `FD-XLA-lang`;\nconst AUTH_TOKEN_LOCAL_STORAGE_PREFIX = \"fd-auth-token-\";\n\nexport function storeCampaignLanguage(languageCode: string): void {\n localStorage.setItem(`${LANGUAGE_PREFIX}.${campaignApp.guid}`, languageCode);\n}\n\nexport function getCampaignLanguage(): string | null {\n return localStorage.getItem(`${LANGUAGE_PREFIX}.${campaignApp.guid}`);\n}\n\nexport function storeAuthToken(authToken: string) {\n localStorage.setItem(AUTH_TOKEN_LOCAL_STORAGE_PREFIX, authToken);\n}\n\nexport function clearAuthToken() {\n localStorage.removeItem(AUTH_TOKEN_LOCAL_STORAGE_PREFIX);\n}\n\nexport function getAuthToken(): string | null {\n return localStorage.getItem(AUTH_TOKEN_LOCAL_STORAGE_PREFIX);\n}\n","import { ILoginState } from \"@/models/authentication/loginState.model\";\nimport { clearAuthToken, storeAuthToken } from \"./localStorage.service\";\nimport { basePrivateApiUrl } from \"./url.service\";\nimport {\n GOOGLE_ANALYTICS_EVENTS,\n sendCampaignEvent,\n} from \"./googleAnalytics.service\";\nimport { Ref, computed, readonly, ref } from \"vue\";\nimport { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport { campaignApp } from \"./campaignApp.service\";\nimport { getAuthFields } from \"./auth/authFields.service\";\nimport { authProgress } from \"./auth/auth.service\";\nimport { prepareHeaders } from \"./http.service\";\n\nconst _loginState: Ref = ref(null);\nexport const loginState = readonly(_loginState);\n\nconst CLEAR_COOKIES_API_URL = \"campaignapplive/signup/clearcookies\";\nconst LOGIN_STATE_API_URL = \"campaignapplive/signup/loginstates\";\nconst LOGIN_STATE_SIGN_IN_API_URL = \"campaignapplive/signup/signin\";\n\nconst requestHeaders = {\n \"Content-Type\": \"application/json; charset=UTF-8\",\n};\n\nexport async function clearLoginState() {\n _loginState.value = null;\n clearAuthToken();\n\n const endpoint = CLEAR_COOKIES_API_URL;\n const promise = await fetch(`${basePrivateApiUrl}${endpoint}`, {\n method: \"POST\",\n headers: prepareHeaders(endpoint),\n });\n\n // TODO reset GA session (currently not available in GTAG)\n // socialcee\\SocialCeeApp.Web\\SocialCeeApp.Campaign\\app\\mixins\\LoginState.js : 78\n\n return promise;\n}\n\nexport function getMissingAuthFieldsSummary() {\n const summary = {\n hasMissingRequiredAuthFields: false,\n hasMissingRequiredConsents: false,\n hasMissingConsents: false,\n };\n\n if (!loginState || !loginState.value) {\n return summary;\n }\n\n return (getAuthFields() || []).reduce((set, af) => {\n const lsValue = loginState.value as ILoginState;\n\n if (af.type === \"consentTexts\") {\n const isMissing = lsValue.missingConsentTextIds?.includes(\n parseInt(af.id)\n );\n\n set.hasMissingConsents = Boolean(set.hasMissingConsents || isMissing);\n set.hasMissingRequiredConsents = Boolean(\n set.hasMissingRequiredConsents || (isMissing && af.isRequired)\n );\n } else {\n let fieldValue = lsValue[af.id];\n\n if (fieldValue && typeof fieldValue === \"string\") {\n fieldValue = fieldValue.trim();\n }\n\n set.hasMissingRequiredAuthFields = Boolean(\n set.hasMissingRequiredAuthFields ||\n (af.isRequired &&\n (fieldValue === null ||\n fieldValue === undefined ||\n fieldValue === \"\"))\n );\n }\n\n return set;\n }, summary);\n}\n\nexport const isLoggedIn = computed(\n () => loginState.value?.loginStateType === \"SignedUp\"\n);\n\nexport async function loadLoginState(): Promise {\n const endpoint = `${LOGIN_STATE_API_URL}?guid=${campaignApp.guid}`;\n const fetchResponse = await fetch(`${basePrivateApiUrl}${endpoint}`, {\n headers: prepareHeaders(endpoint, requestHeaders),\n method: \"GET\",\n });\n\n await processRetrievedLoginState(fetchResponse);\n\n return Promise.resolve(_loginState.value);\n}\n\nexport async function saveLoginState() {\n patchLoginState({ setCookie: true });\n\n const selectedAuthOptionType = authProgress.value?.authOption?._type;\n const endpoint = LOGIN_STATE_API_URL;\n let saveResponse;\n\n try {\n saveResponse = await fetch(`${basePrivateApiUrl}${endpoint}`, {\n headers: prepareHeaders(endpoint, requestHeaders),\n method: \"POST\",\n body: JSON.stringify(_loginState.value),\n });\n } catch (err) {\n sendCampaignEvent(\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_FAILURE_WITH.action,\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_FAILURE_WITH.category,\n selectedAuthOptionType\n );\n\n return Promise.reject();\n }\n\n if (saveResponse.status === 201) {\n sendCampaignEvent(\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_SUCCESS.action,\n GOOGLE_ANALYTICS_EVENTS.CAMPAIGN.COMMON.LOGIN_SUCCESS.category,\n selectedAuthOptionType\n );\n\n // TODO send LOGIN_SUCCESS_KIOSK when kiosk will be implemented\n // socialcee\\SocialCeeApp.Web\\SocialCeeApp.Campaign\\app\\mixins\\LoginState.js : 104\n }\n\n await processRetrievedLoginState(saveResponse);\n\n return Promise.resolve(_loginState);\n}\n\nexport async function signIn() {\n patchLoginState({ setCookie: true });\n\n const endpoint = LOGIN_STATE_SIGN_IN_API_URL;\n const signInResponse = await fetch(`${basePrivateApiUrl}${endpoint}`, {\n headers: prepareHeaders(endpoint, requestHeaders),\n method: \"POST\",\n body: JSON.stringify(_loginState.value),\n });\n\n if (!signInResponse.ok) {\n throw new Error(signInResponse.statusText);\n }\n\n await processRetrievedLoginState(signInResponse);\n\n return Promise.resolve(_loginState.value);\n}\n\nexport function patchLoginState(loginStatePatch: Partial) {\n setLoginState({\n ..._loginState.value,\n ...loginStatePatch,\n } as ILoginState);\n}\n\nexport function resetLoginState(\n campaignAppGuid: string = campaignApp.guid\n): void {\n if (_loginState.value) {\n patchLoginState({\n ...getResetAuthFields(),\n campaignAppGuid: campaignAppGuid,\n isNew: false,\n loginStateType: undefined,\n });\n }\n}\n\nexport function setLoginState(loginState: ILoginState): void {\n _loginState.value = loginState;\n}\n\nexport function setLoginStateBasedOnForm(\n formFields: FormFieldDefinition[],\n authenticationType: string\n): void {\n const loginState: {\n [key: string]:\n | string\n | number\n | boolean\n | Date\n | number[]\n | null\n | undefined;\n } = {\n campaignAppGuid: campaignApp.guid,\n authenticationType: authenticationType,\n };\n\n formFields.forEach((field) => {\n loginState[field.id] = field.value;\n });\n\n patchLoginState(loginState as Partial);\n}\n\nexport function setMyPageToken(myPageToken: string) {\n if (_loginState.value) {\n patchLoginState({ myPageToken });\n }\n}\n\nfunction getResetAuthFields() {\n return getAuthFields().reduce((authFields, authField) => {\n authFields[authField.id] = null;\n\n return authFields;\n }, {} as { [key: string]: null });\n}\n\nasync function processRetrievedLoginState(response: Response) {\n const loginState = (await response.json()) as ILoginState;\n\n loginState.isNew = response.status === 201;\n setLoginState(loginState as ILoginState);\n\n if (_loginState.value?.token) {\n storeAuthToken(_loginState.value.token);\n }\n\n return _loginState.value;\n}\n","/* This is a generic modal service. It serves as a state source for ModalContainer component.\nIts goal is to provide methods to open/close modals in this app and provide some communication\nbetween modal opener and modal instance. */\n\nimport { PromiseFunc } from \"@/models/promiseFunc._model\";\nimport { markRaw, ref } from \"vue\";\nimport { resetAuthFields } from \"./auth/authFields.service\";\n\nexport const DIALOG_MODAL_CSS_CLASS = \"fd-dialog-modal\";\nexport const currentModal = ref();\nexport const MODAL_CONFIG = ref({\n canCloseByOverlay: false,\n});\nexport const currentModalPromise = ref();\n\nlet _currentModalPromiseResolve: PromiseFunc;\nlet _currentModalPromiseReject: PromiseFunc;\n\nexport function openModal(view: object, model?: unknown): Promise {\n if (currentModalPromise.value) {\n currentModalPromise.value.catch(() => {\n /* yeah, we shouldn't throw imho*/\n return;\n });\n\n _currentModalPromiseReject(undefined);\n }\n\n currentModalPromise.value = new Promise((resolve, reject) => {\n _currentModalPromiseResolve = resolve;\n _currentModalPromiseReject = reject;\n\n currentModal.value = {\n view: markRaw(view),\n model,\n onConfirm: (param: unknown) => {\n _currentModalPromiseResolve(param);\n closeModal();\n },\n onClose: closeModal,\n onError: ({\n error,\n withClose = true,\n }: {\n error?: unknown;\n withClose: boolean;\n }) => {\n _currentModalPromiseReject(error);\n\n if (withClose) {\n closeModal();\n }\n },\n };\n });\n\n return currentModalPromise.value;\n}\n\nexport function closeModal() {\n if (_currentModalPromiseResolve) {\n _currentModalPromiseResolve(undefined);\n }\n\n currentModal.value = undefined;\n}\n\nexport function resetWithClose() {\n resetAuthFields();\n closeModal();\n}\n","import { get } from \"./http.service\";\n\nconst ENDPOINT = `campaignapplive/privatebundle`;\n\nexport async function getPrivateData(): Promise {\n return await get(ENDPOINT);\n}\n","import { EnvGlobals } from \"@/models/campaign/envGlobals.model\";\nimport { PublicData } from \"@/models/campaign/publicData._model\";\nimport { DeepReadonly } from \"vue\";\n\ndeclare global {\n interface Window {\n FD_PUBLIC_DATA: unknown;\n FD_ENV_GLOBALS: unknown;\n grecaptcha: ReCaptcha;\n }\n}\n\nexport const PUBLIC_DATA: DeepReadonly =\n window.FD_PUBLIC_DATA as DeepReadonly;\n\nexport const ENV_GLOBALS: DeepReadonly =\n window.FD_ENV_GLOBALS as DeepReadonly;\n","import { PUBLIC_DATA } from \"@/services/publicData.service\";\nimport { ICampaignSetting } from \"@/models/campaign/campaignSetting.model\";\n\nexport const getCampaignSetting = (\n key: string\n): ICampaignSetting | undefined => {\n const campaignSettings = PUBLIC_DATA.campaignSettings ?? [];\n\n if (!campaignSettings || !campaignSettings.campaignSettings.length) {\n throw Error(\"Could not read Campaign settings from public bundle\");\n }\n\n const setting = campaignSettings.campaignSettings.find(\n (setting: ICampaignSetting) => setting.key === key\n );\n\n return setting;\n};\n\nexport const getCampaignBooleanSettingValue = (key: string): boolean => {\n const value = getCampaignSettingValue(key);\n\n return value === \"true\";\n};\n\nexport const getCampaignDateTimeSetting = (key: string): Date | undefined => {\n const value = getCampaignSettingValue(key);\n\n return value ? new Date(value) : undefined;\n};\n\nexport const getCampaignDateTimeSettingAsTime = (\n key: string\n): number | undefined => {\n const date = getCampaignDateTimeSetting(key);\n\n return date ? date.getTime() : undefined;\n};\n\nexport const getCampaignSettingValue = (\n key: string\n): string | undefined | null => {\n const setting = getCampaignSetting(key);\n\n return setting ? setting.value : undefined;\n};\n\nexport const hasCampaignSetting = (key: string): boolean => {\n const { campaignSettings } = PUBLIC_DATA.campaignSettings ?? [];\n return Boolean(\n campaignSettings.find((setting: ICampaignSetting) => setting.key === key)\n );\n};\n","import { computed } from \"vue\";\nimport { getSingleFileUrl } from \"../files.service\";\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"../settings.service\";\nimport { isEmptyOrWhitespace } from \"@/utils/string\";\n\nexport const hasSportsHeaderEnabled =\n getCampaignBooleanSettingValue(\"hasSportsHeader\");\n\nexport const customImageUrl = getSingleFileUrl(\n getCampaignSettingValue(\"customSportsHeaderImage\") as string\n);\n\nexport const preselectedImageUrl = getCampaignSettingValue(\n \"sportsHeaderImageUrl\"\n);\n\nexport const sportsHeaderImageUrl = computed(() =>\n isEmptyOrWhitespace(preselectedImageUrl as string)\n ? customImageUrl\n : preselectedImageUrl\n);\n\nexport const hasSportsHeaderImageUrl = computed(() =>\n Boolean(sportsHeaderImageUrl.value)\n);\n\nexport const hasSportsHeaderWithImage = computed(\n () => hasSportsHeaderEnabled && hasSportsHeaderImageUrl.value\n);\n","import {\n CampaignSportsMatch,\n CampaignSportsMatchParticipant,\n SportsMatchVotingPublicData,\n SportsPlayer,\n SportsTeam,\n} from \"@/models/campaign/sportsMatchVoting/sportsMatchVotingPublicData._model\";\nimport { PUBLIC_DATA } from \"../publicData.service\";\nimport { parseJSON } from \"../json.service\";\nimport { getSingleFileUrl } from \"../files.service\";\nimport { translateObject } from \"../i18n.service\";\nimport { ref } from \"vue\";\nimport { CampaignSportsMatchVote } from \"@/models/campaign/sportsMatchVoting/sportsMatchVotingPrivateData._model\";\nimport { preloadImage } from \"@/utils/utils\";\nimport PLAYER_PLACEHOLDER_PHOTO_URL from \"@/assets/images/player_placeholder.png\";\n\nconst publicData = PUBLIC_DATA as SportsMatchVotingPublicData;\n\nexport interface DisplayablePlayer {\n id: string;\n name: string;\n sportsPlayerId: number;\n sportsTeamId: number;\n vote?: CampaignSportsMatchVote | undefined;\n voteCount: any;\n votePercentage: any;\n isFromHomeTeam: boolean;\n isWinner: boolean;\n isSelected?: boolean | undefined;\n isSaved?: boolean | undefined;\n isBeingSaved?: boolean | undefined;\n photoUrl: string;\n positions: string[];\n}\n\nexport function getSportsDataFromPublicData() {\n const matchesPublicData = publicData.campaignSportsMatches;\n const participantsData = publicData.campaignSportsMatchParticipants;\n const winnersData = publicData.campaignSportsMatchParticipantsWinners;\n\n const match = matchesPublicData\n ? matchesPublicData.campaignSportsMatches[0]\n : null;\n\n const sportsTeams = matchesPublicData\n ? matchesPublicData.linked.sportsTeams\n : [];\n\n const matchParticipants = participantsData\n ? participantsData.campaignSportsMatchParticipants\n : [];\n\n const winner = winnersData && winnersData.length ? winnersData[0] : null;\n\n const sportsPlayers = participantsData\n ? participantsData.linked.sportsPlayers\n : [];\n\n return {\n match,\n sportsTeams,\n matchParticipants,\n sportsPlayers,\n winner,\n };\n}\n\nexport function getSportsTeamsInfo({\n match,\n sportsTeams,\n}: {\n match: CampaignSportsMatch | null;\n sportsTeams: SportsTeam[];\n}) {\n const homeTeam = sportsTeams.find(\n (t) => t.id === match?.links?.homeSportsTeam\n );\n const awayTeam = sportsTeams.find(\n (t) => t.id === match?.links?.awaySportsTeam\n );\n\n return {\n homeTeam,\n awayTeam,\n isHomeTeamEnabled: ref(match?.isHomeTeamEnabled),\n isAwayTeamEnabled: ref(match?.isAwayTeamEnabled),\n homeTeamName: translateObject(homeTeam, \"name\", \"sportsTeam\"),\n awayTeamName: translateObject(awayTeam, \"name\", \"sportsTeam\"),\n isHomeTeamSelected: ref(\n isHomeTeamInitial({\n homeTeam: match?.isHomeTeamEnabled ? homeTeam : null,\n awayTeam: match?.isAwayTeamEnabled ? awayTeam : null,\n })\n ),\n };\n}\n\nexport function getMatchParticipantPlayers({\n match,\n sportsTeams,\n matchParticipants,\n sportsPlayers,\n winner,\n}: {\n match: CampaignSportsMatch | null;\n sportsTeams: SportsTeam[];\n matchParticipants: CampaignSportsMatchParticipant[];\n sportsPlayers: SportsPlayer[];\n winner: any;\n}) {\n const participantPlayers = matchParticipants.reduce(\n (\n {\n home,\n away,\n all,\n }: {\n home: DisplayablePlayer[];\n away: DisplayablePlayer[];\n all: DisplayablePlayer[];\n },\n csmp\n ) => {\n const sportsPlayer = sportsPlayers.find(\n (p) => `${p.id}` === `${csmp.sportsPlayerId}`\n );\n\n if (sportsPlayer) {\n const sportsTeamId = csmp.sportsTeamId;\n const sportsPlayerId = csmp.sportsPlayerId;\n const name = getSportsPlayerDisplayableName(sportsPlayer);\n const isWinner =\n winner && `${winner.sportsPlayerId}` === `${sportsPlayerId}`;\n const photoFileUrl = getSingleFileUrl(\n sportsPlayer.photoFileMetaDataId?.toString()\n );\n\n const player: DisplayablePlayer = {\n id: csmp.id,\n name,\n sportsPlayerId,\n sportsTeamId,\n voteCount: csmp.voteCount,\n votePercentage: csmp.votePercentage || 0,\n isFromHomeTeam: false,\n isWinner: isWinner,\n photoUrl: photoFileUrl ? photoFileUrl : PLAYER_PLACEHOLDER_PHOTO_URL,\n positions: sportsPlayer.positions\n ? parseJSON(sportsPlayer.positions)\n : [],\n };\n\n const homeTeam = sportsTeams.find(\n (t) => t.id === match?.links?.homeSportsTeam\n );\n\n if (`${sportsTeamId}` === `${homeTeam?.id}`) {\n player.isFromHomeTeam = true;\n home.push(player);\n } else {\n away.push(player);\n }\n\n all.push(player);\n }\n\n return { home, away, all };\n },\n { home: [], away: [], all: [] }\n );\n\n sortParticipantPlayers(participantPlayers.home);\n sortParticipantPlayers(participantPlayers.away);\n sortParticipantPlayers(participantPlayers.all);\n preloadParticipantImages(participantPlayers.all);\n\n return participantPlayers;\n}\n\nexport function getParticipantPlayerBgImage(\n participantPlayer: DisplayablePlayer\n) {\n return `url(\"${participantPlayer.photoUrl}\")`;\n}\n\nexport function getSportsPlayerDisplayableName(sportsPlayer: SportsPlayer) {\n const number = translateObject(sportsPlayer, \"number\", \"sportsPlayer\");\n const shortName = translateObject(sportsPlayer, \"shortName\", \"sportsPlayer\");\n const fullName = translateObject(sportsPlayer, \"fullName\", \"sportsPlayer\");\n\n return `${number ? `${number} ` : \"\"}${shortName || fullName}`;\n}\n\nexport function isHomeTeamInitial({\n homeTeam,\n awayTeam,\n}: {\n homeTeam: SportsTeam | null | undefined;\n awayTeam: SportsTeam | null | undefined;\n}) {\n return getInitialSportsTeam({ homeTeam, awayTeam }) === homeTeam;\n}\n\nexport const getInitialSportsTeam = ({\n homeTeam,\n awayTeam,\n}: {\n homeTeam: SportsTeam | null | undefined;\n awayTeam: SportsTeam | null | undefined;\n}) => {\n if (!homeTeam || !awayTeam) {\n return homeTeam || awayTeam;\n }\n\n return homeTeam.isOurTeam || !awayTeam.isOurTeam ? homeTeam : awayTeam;\n};\n\nexport const preloadParticipantImages = async (\n participantPlayers: DisplayablePlayer[]\n) => {\n return await Promise.all(\n (participantPlayers || []).map(async (pp) => {\n try {\n return await preloadImage(pp.photoUrl);\n } catch (err) {\n return (pp.photoUrl = PLAYER_PLACEHOLDER_PHOTO_URL);\n }\n })\n );\n};\n\nexport function sortParticipantPlayers(\n participantPlayers: DisplayablePlayer[]\n) {\n (participantPlayers || []).sort((p1, p2) => {\n if (p1.isWinner) {\n return -1;\n }\n\n if (p2.isWinner) {\n return 1;\n }\n\n if (p1.votePercentage === p2.votePercentage) {\n return 0;\n }\n\n return p1.votePercentage > p2.votePercentage ? -1 : 1;\n });\n}\n","import { campaignStateService, StateObj } from \"./campaignState.service\";\n\ntype SerializerHandler = (value: EventParam) => StateObj;\ntype NormalizerHandler = (value: EventParam) => void;\ntype EventParam = {\n resolve: (value?: StateObj) => void;\n state?: StateObj;\n};\n\ntype StateConsumer = {\n id?: number;\n serializer?: SerializerHandler;\n normalizer?: NormalizerHandler;\n};\n\nlet nextStateConsumerId = 1;\nconst stateConsumers: StateConsumer[] = [];\n\nasync function executeHandler(\n handler: SerializerHandler | NormalizerHandler = () => {\n return null;\n },\n state?: StateObj\n) {\n return new Promise((resolve) => handler({ resolve, state }));\n}\n\nexport async function serializeCampaignState() {\n const promises = stateConsumers\n .filter((sc) => sc.serializer !== undefined)\n .map((sc) => executeHandler(sc.serializer) as Promise);\n\n return Promise.all(promises).then((subStates: StateObj[]) => {\n const state = subStates.reduce((allState, state) => {\n allState = {\n ...allState,\n ...(state || {}),\n };\n\n return allState;\n }, {});\n\n return campaignStateService.setState(state);\n });\n}\n\nexport async function normalizeCampaignState() {\n const state = campaignStateService.getState();\n\n if (state) {\n const promises = stateConsumers.map((sc) =>\n executeHandler(sc.normalizer, state)\n );\n\n return Promise.all(promises);\n }\n\n return Promise.resolve();\n}\n\nexport function registerAsStateConsumer(stateConsumerDTO: StateConsumer) {\n stateConsumers.push({\n ...stateConsumerDTO,\n id: nextStateConsumerId++,\n });\n}\n","export const SUPPORTED_QUERY_PARAMS = {\n AUTH_TOKEN: \"authToken\",\n LANGUAGE: \"language\",\n REDIRECT_FLOW: \"redirectFlow\",\n};\n\nexport const basePrivateApiUrl = \"/privateapi/\";\nexport let queryParams: { [k: string]: string } | null = null;\n\nexport const deleteQueryParam = (key: string): void => {\n const searchParams = new URLSearchParams(window.location.search);\n\n searchParams.delete(key);\n updateUrlWithQueryParams(searchParams);\n};\n\nexport const getQueryParam = (key: string): string | null => {\n return queryParams ? queryParams[key] : null;\n};\n\nexport const initializeQueryParams = () => {\n queryParams = getQueryParams();\n\n // this should be dropped from URL asap after load\n deleteQueryParam(SUPPORTED_QUERY_PARAMS.AUTH_TOKEN);\n};\n\nexport const stripTags = (text: string): string =>\n text ? text.replaceAll(/(<([^>]+)>)/gi, \"\") : text;\n\nexport const updateQueryParam = (key: string, value: string): void => {\n const searchParams = new URLSearchParams(window.location.search);\n\n searchParams.set(key, value);\n updateUrlWithQueryParams(searchParams);\n};\n\nconst getQueryParams = () =>\n Object.fromEntries(new URLSearchParams(window.location.search));\n\nconst updateUrlWithQueryParams = (searchParams: URLSearchParams) => {\n const newRelativePathQuery = `${\n window.location.pathname\n }?${searchParams.toString()}${window.location.hash}`;\n history.pushState(null, \"\", newRelativePathQuery);\n};\n\nexport function hasCMTokenInURL() {\n return !!getCMToken();\n}\n\nexport function getCMToken() {\n return getQueryParam(\"cmtoken\") || getQueryParam(\"cmToken\") || getQueryParam(\"token\");\n}\n\nexport function removeCMToken() {\n deleteQueryParam(\"cmtoken\");\n deleteQueryParam(\"cmToken\");\n deleteQueryParam(\"token\");\n\n if (queryParams) {\n delete queryParams.cmtoken;\n delete queryParams.cmToken;\n delete queryParams.token;\n }\n}\n","import { I18nInstance } from \"@/mixins/i18n.mixin\";\nimport { _i18n } from \"@/services/i18n.service\";\n\ntype FormatOptions = {\n [key in\n | \"LLLL\"\n | \"LLL\"\n | \"LL\"\n | \"L\"\n | \"MMMM\"\n | \"MMM\"\n | \"L LT\"\n | \"HH:mm\"\n | \"LT\"]: Intl.DateTimeFormatOptions;\n};\n\nconst formatOptions: FormatOptions = {\n LLLL: {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n },\n LLL: {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n },\n LL: {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n },\n L: {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n },\n MMMM: {\n month: \"long\",\n },\n MMM: {\n month: \"short\",\n },\n \"L LT\": {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"numeric\",\n minute: \"2-digit\",\n },\n LT: {\n hour: \"numeric\",\n minute: \"2-digit\",\n },\n \"HH:mm\": {\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: false,\n },\n};\n\nexport function formatDate(\n date: number | Date,\n format: keyof FormatOptions\n): string {\n if (!date) return \"global.err_invalidDate\";\n\n const options: Intl.DateTimeFormatOptions = formatOptions[format];\n\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts\n // TODO format to remove 'at' from english (and potentially other) date formats. Moment.js did not included 'at'\n // expected: December 20, 2023 10:09 AM\n // actual: December 20, 2023 at 10:09 AM\n\n return new Intl.DateTimeFormat(\n (_i18n as I18nInstance).global.locale.value,\n options\n ).format(date);\n}\n","/**\n * Simple check if whole string is empty or whitespace only.\n * @param candidate for possible empty or whitespace only string\n * @returns true if candidate is an empty or whitespace only string\n */\nexport function isEmptyOrWhitespace(candidate: string): boolean {\n return !candidate?.toString().trim();\n}\n\nexport function countChar(text: string, char: string): number {\n return ((text || \"\").match(new RegExp(char, \"g\")) || []).length;\n}\n\nexport function trimToLength(text: string, maxLength: number) {\n return text && text.length > maxLength\n ? `${text.substring(0, maxLength)}...`\n : text;\n}\n","/**\n * Simple check if whole string is an email address.\n * @param candidate for possible email address\n * @returns true if candidate is an email address\n */\nexport function isEmail(candidate: string): boolean {\n const regex = new RegExp(\n /^[a-zA-Z0-9._+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/gi\n );\n return regex.test(candidate);\n}\n\nexport function preloadImages(\n imageUrls: string[],\n fallbackImgUrl: string | null | undefined = undefined\n) {\n (imageUrls || []).forEach((imgUrl: string) => {\n try {\n preloadImage(imgUrl, fallbackImgUrl);\n } catch (err) {\n // ...\n }\n });\n}\n\nexport function preloadImage(\n imageUrl: string,\n fallbackImgUrl: string | null | undefined = undefined\n) {\n return new Promise((resolve, reject) => {\n const imgEl = document.createElement(\"img\");\n\n imgEl.addEventListener(\"load\", () => resolve());\n imgEl.addEventListener(\"error\", () => {\n if (fallbackImgUrl) {\n imgEl.src = fallbackImgUrl;\n fallbackImgUrl = null;\n } else {\n reject();\n }\n });\n\n imgEl.src = imageUrl;\n });\n}\n\nexport function getRandomNumber() {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n}\n\nexport function getAsUrlParams(data: any) {\n if (!data) {\n return \"\";\n }\n\n const paramsString: string = Object.entries(data).reduce(\n (result: string, [propName, propValue]) => {\n if (propValue !== undefined && propValue !== \"\") {\n if (Array.isArray(propValue)) {\n const arrayParams = propValue\n .filter((v) => Boolean(v))\n .map((value: any) => `${propName}[]=${value}`)\n .join(\"&\");\n\n result += `&${arrayParams}`;\n } else {\n result += `&${propName}=${propValue}`;\n }\n }\n\n return result;\n },\n \"\"\n );\n\n return paramsString ? `&${paramsString}` : \"\";\n}\n\nexport function debounce(callback: (args?: any) => any, timeout: number) {\n let timeoutId: number | undefined = undefined;\n\n return (...args: any) => {\n window.clearTimeout(timeoutId);\n\n timeoutId = window.setTimeout(() => {\n callback(...args);\n }, timeout);\n };\n}\n",";(function(window){var hadGlobal='Modernizr' in window;var oldGlobal=window.Modernizr;/*! modernizr 3.13.1 (Custom Build) | MIT *\n * https://modernizr.com/download/?-cookies-localstorage-sessionstorage !*/\n!function(e,n,o,t){function s(e,n){return typeof e===n}var i=[],r={_version:\"3.13.1\",_config:{classPrefix:\"\",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var o=this;setTimeout(function(){n(o[e])},0)},addTest:function(e,n,o){i.push({name:e,fn:n,options:o})},addAsyncTest:function(e){i.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=r,Modernizr=new Modernizr;var a=[];Modernizr.addTest(\"cookies\",function(){try{o.cookie=\"cookietest=1\";var e=-1!==o.cookie.indexOf(\"cookietest=\");return o.cookie=\"cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT\",e}catch(e){return!1}}),Modernizr.addTest(\"localstorage\",function(){var e=\"modernizr\";try{return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch(e){return!1}}),Modernizr.addTest(\"sessionstorage\",function(){var e=\"modernizr\";try{return sessionStorage.setItem(e,e),sessionStorage.removeItem(e),!0}catch(e){return!1}}),function(){var e,n,o,t,r,c,f;for(var u in i)if(i.hasOwnProperty(u)){if(e=[],n=i[u],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(o=0;o {\n return (_openBlock(), _createElementBlock(\"div\", { innerHTML: _unref(ingressToShow) }, null, 8, _hoisted_1))\n}\n}\n\n})","\n\n\n","import script from \"./DisplayableItemIngress.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DisplayableItemIngress.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createBlock as _createBlock, renderList as _renderList, Fragment as _Fragment, createVNode as _createVNode } from \"vue\"\nimport _imports_0 from '@/assets/images/video-overlay-1-1.png'\n\n\nconst _hoisted_1 = {\n key: 0,\n src: _imports_0,\n class: \"cursor-pointer absolute w-full h-full left-0 top-0\"\n}\nconst _hoisted_2 = { class: \"content p-10 flex-grow shrink-0\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"vote-count rounded-sm text-sm font-bold inline-flex line-height-1 mb-20 h-[25px] items-center px-10 bg-text-color/10\"\n}\nconst _hoisted_4 = { class: \"w-full mb-10 text-ellipsis overflow-hidden whitespace-nowrap break-words\" }\nconst _hoisted_5 = [\"title\"]\nconst _hoisted_6 = { class: \"categories-wrapper mt-10\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"categories\"\n}\nconst _hoisted_8 = { class: \"actions flex flex-wrap mobileXl:flex-nowrap w-full gap-10 justify-between items-center p-10\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = { key: 0 }\nconst _hoisted_11 = { key: 1 }\n\nimport { DisplayableVotingItem } from \"../models/displayableVotingItem.class\";\nimport { computed } from \"vue\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"@/services/settings.service\";\nimport DisplayableItemIngress from \"@/components/content/DisplayableItemIngress.vue\";\nimport { faFacebook } from \"@fortawesome/free-brands-svg-icons\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'ListVotingItem',\n props: {\n item: DisplayableVotingItem,\n hasAnyLoadingState: {\n type: Boolean,\n default: false,\n },\n hasVotingDisabled: {\n type: Boolean,\n default: false,\n },\n withCategories: {\n type: Boolean,\n default: true,\n },\n},\n emits: [\"goToItem\", \"sendVote\", \"shareItem\"],\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst imgRatio = getCampaignSettingValue(\"imageRatio\");\nconst showShareButton = getCampaignBooleanSettingValue(\"showShareButton\");\nconst hasVoteBtnDisabled = computed(() =>\n Boolean(props.item?.votingVotes?.length)\n);\nconst showVoteCount = getCampaignBooleanSettingValue(\"showVoteCount\");\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"voting-item overflow-hidden text-text-color shadow-sm rounded-lg flex flex-col\", `${\n __props.item?.votingVotes?.length ? 'bg-text-color/5' : ''\n } voting-item-${__props.item?.id}`])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"image-container overflow-hidden\", `ratio-${_unref(imgRatio)?.replace(':', '-')}`])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"image w-full h-full cursor-pointer bg-center bg-no-repeat bg-cover relative\", `${\n __props.item?.hasPlaceholderPreviewImage ? 'with-placeholder' : ''\n } ${__props.item?.hasVideoPreviewImage ? 'with-video' : ''}`]),\n style: _normalizeStyle({ backgroundImage: `url(${__props.item?.previewImage})` }),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('goToItem', __props.item)))\n }, [\n (__props.item?.hasVideoPreviewImage && !__props.item?.hasPlaceholderPreviewImage)\n ? (_openBlock(), _createElementBlock(\"img\", _hoisted_1))\n : _createCommentVNode(\"\", true)\n ], 6)\n ], 2),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(showVoteCount))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.txt_vote\", {\n count: __props.item?.voteCount,\n })), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"a\", {\n class: \"item-link font-bold text-sm inline hover:underline\",\n href: \"javascript:;\",\n title: __props.item?.title,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('goToItem', __props.item)))\n }, _toDisplayString(__props.item?.title), 9, _hoisted_5)\n ]),\n (__props.item?.ingress || __props.item?.description)\n ? (_openBlock(), _createBlock(DisplayableItemIngress, {\n key: 1,\n class: \"ingress text-sm opacity-70 overflow-hidden text-ellipsis line-clamp-2\",\n ingress: __props.item?.ingress,\n description: __props.item?.description\n }, null, 8, [\"ingress\", \"description\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_6, [\n (__props.withCategories && __props.item?.votingCategories?.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.item?.votingCategories, (category) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: category.id,\n class: \"category inline-block font-semibold text-xs\"\n }, _toDisplayString(category.name), 1))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (!__props.hasVotingDisabled)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: _normalizeClass([\"vote bg-primary-color inline-flex items-center justify-center text-primary-color-inverted-for-text rounded-lg p-10 text-sm font-bold\", {\n 'hover:opacity-70': !hasVoteBtnDisabled.value,\n 'opacity-50': hasVoteBtnDisabled.value,\n 'w-full mobileXl:w-1/2': _unref(showShareButton),\n 'w-full': !_unref(showShareButton),\n }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('sendVote', __props.item))),\n disabled: hasVoteBtnDisabled.value\n }, [\n (__props.item?.votingVotes?.length)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.txt_voted\")), 1))\n : _createCommentVNode(\"\", true),\n (!__props.item?.votingVotes?.length)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.btn_vote\")), 1))\n : _createCommentVNode(\"\", true)\n ], 10, _hoisted_9))\n : _createCommentVNode(\"\", true),\n (_unref(showShareButton))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n class: \"share bg-facebook text-white text-sm font-bold rounded-lg p-10 inline-flex grow basis-1/2 items-center justify-center hover:opacity-70\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('shareItem', __props.item)))\n }, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"mr-15\",\n icon: _unref(faFacebook)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", null, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.btn_share\")), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ], 2))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./ListVotingItem.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ListVotingItem.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ListVotingItem.vue?vue&type=style&index=0&id=1be75e23&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1be75e23\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, unref as _unref, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"fd-video-object\",\n ref: \"cmpEl\"\n}\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = [\"src\", \"allow\", \"width\", \"height\"]\nconst _hoisted_4 = {\n key: 1,\n class: \"text-danger-color incorrect-url-info\"\n}\n\nimport { countChar } from \"@/utils/string\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { faExclamationCircle } from \"@fortawesome/free-solid-svg-icons\";\nimport { computed, getCurrentInstance, onMounted } from \"vue\";\n\n\nconst DEFAULT_WIDTH = '400';\nconst DEFAULT_HEIGHT = '250';\nconst W_MODE_PARAM = \"wmode=transparent\";\nconst AUTOPLAY_PARAM_ON = \"autoplay=1\";\nconst AUTOPLAY_PARAM_OFF = \"autoplay=0\";\nconst YT_FORMAT_A = \"www.youtube.com/watch?v=\";\nconst YT_FORMAT_B = \"youtu.be/\";\nconst YT_FORMAT_C = \"youtube.com/watch?v=\";\nconst YT_TARGET_FORMAT = \"www.youtube.com/embed/\";\nconst YT_MUTED_PARAM_ON = \"mute=1\";\nconst YT_MUTED_PARAM_OFF = \"mute=0\";\nconst YT_PARAM_KEYS_MAP: { [key: string]: string } = {\n // add more params when necessary, from https://developers.google.com/youtube/player_parameters\n t: \"start\",\n};\nconst VIMEO_FORMAT_A = \"vimeo.com/\";\nconst VIMEO_TARGET_FORMAT = \"player.vimeo.com/video/\";\nconst VIMEO_MUTED_PARAM_ON = \"muted=1\";\nconst VIMEO_MUTED_PARAM_OFF = \"muted=0\";\n\nconst __default__ = {};\n\nexport default /*@__PURE__*/_defineComponent({\n ...__default__,\n __name: 'VideoObject',\n props: {\n src: {\n type: String,\n required: true,\n },\n width: {\n default: DEFAULT_WIDTH,\n },\n height: {\n default: DEFAULT_HEIGHT,\n },\n allowFullscreen: {\n type: Boolean,\n default: true,\n },\n allowAutoplay: {\n type: Boolean,\n default: false,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\nconst allowParamString = computed(() =>\n [\n ...(props.allowAutoplay ? [\"autoplay\"] : []),\n ...(props.allowFullscreen ? [\"fullscreen\"] : []),\n ].join(\"; \")\n);\n\nconst displayableSrc = computed(() => {\n let src = props.src;\n\n if (isYTFormat.value) {\n src = parseYTSrc(src);\n } else if (isVimeoFormat.value) {\n src = parseVimeoSrc(src);\n }\n\n src = verifyAutoplay(src);\n src = fixProtocol(src);\n src = fixQueryParams(src);\n\n return src;\n});\n\nconst isYTFormatA = computed(() => props.src.includes(YT_FORMAT_A));\nconst isYTFormatB = computed(() => props.src.includes(YT_FORMAT_B));\nconst isYTFormatC = computed(() => props.src.includes(YT_FORMAT_C));\nconst isYTFormat = computed(\n () => isYTFormatA.value || isYTFormatB.value || isYTFormatC.value\n);\n\nconst isVimeoFormat = computed(() => props.src.includes(VIMEO_FORMAT_A));\n\nconst isCorrect = computed(() => isYTFormat.value || isVimeoFormat.value);\n\nconst cmpInstance = getCurrentInstance();\n\nonMounted(() => {\n const cmpEl = cmpInstance?.proxy?.$el as HTMLElement;\n const iFrameEl = cmpEl.querySelector(\"iframe\") as HTMLIFrameElement;\n\n iFrameEl?.setAttribute(\"width\", props.width.toString());\n iFrameEl?.setAttribute(\"height\", props.height.toString());\n});\n\n// ------------\nconst fixProtocol = (url: string) => {\n const protocol = window.location.protocol;\n const isHttps = protocol.indexOf(\"https\") !== -1;\n const urlShouldBeChanged = isHttps && url.indexOf(\"https\") === -1;\n\n return urlShouldBeChanged ? url.replace(\"http://\", \"https://\") : url;\n};\n\nconst fixQueryParams = (url: string) => {\n const queryStartPos = url.indexOf(\"?\");\n const firstParamPos = url.indexOf(\"&\");\n\n if (\n queryStartPos === -1 ||\n (firstParamPos === -1 && countChar(url, \"\\\\?\") === 1) ||\n queryStartPos < firstParamPos\n ) {\n return url;\n }\n\n return url.replaceAll(\"?\", \"&\").replace(\"&\", \"?\");\n};\n\nconst mapKnownYTParams = (params: string[]) => {\n return (params || []).reduce((mapped: string[], paramKeyValue: string) => {\n const [paramKey, paramValue] = paramKeyValue.split(\"=\");\n const mappedParamKey = YT_PARAM_KEYS_MAP[paramKey];\n\n if (mappedParamKey) {\n mapped.push(`${mappedParamKey}=${paramValue}`);\n }\n\n return mapped;\n }, []);\n};\n\nconst parseVimeoSrc = (src: string) => {\n let matchedVimeoFormat = isVimeoFormat.value ? VIMEO_FORMAT_A : null;\n\n if (!matchedVimeoFormat) {\n return src;\n }\n\n src = src.replace(matchedVimeoFormat, VIMEO_TARGET_FORMAT);\n\n const extraParametersIndex = src.indexOf(\"&\");\n\n src = extraParametersIndex === -1 ? src : src.slice(0, extraParametersIndex);\n\n return src;\n};\n\nconst parseYTSrc = (src: string) => {\n let matchedYTFormat = null;\n\n if (isYTFormatA.value) {\n matchedYTFormat = YT_FORMAT_A;\n } else if (isYTFormatB.value) {\n matchedYTFormat = YT_FORMAT_B;\n } else if (isYTFormatC.value) {\n matchedYTFormat = YT_FORMAT_C;\n }\n\n if (!matchedYTFormat) {\n return src;\n }\n\n src = src.replace(matchedYTFormat, YT_TARGET_FORMAT);\n src = processYTParams(src);\n\n return src;\n};\n\nconst processYTParams = (src: string) => {\n let params: string[] = [];\n const paramsStartIndex = src.indexOf(\"?\");\n\n if (paramsStartIndex !== -1) {\n params = src.substring(paramsStartIndex + 1).split(\"&\");\n params = mapKnownYTParams(params);\n src = src.substring(0, paramsStartIndex);\n }\n\n params.push(W_MODE_PARAM);\n\n return `${src}?${params.join(\"&\")}`;\n};\n\nconst verifyAutoplay = (src: string) => {\n const isYT = isYTFormat.value;\n const mutedParamOn = isYT ? YT_MUTED_PARAM_ON : VIMEO_MUTED_PARAM_ON;\n const mutedParamOff = isYT ? YT_MUTED_PARAM_OFF : VIMEO_MUTED_PARAM_OFF;\n\n if (!props.allowAutoplay) {\n src\n .replace(AUTOPLAY_PARAM_ON, AUTOPLAY_PARAM_OFF)\n .replace(mutedParamOn, mutedParamOff);\n } else {\n const hasQPStart = src.indexOf(\"?\") !== -1;\n\n if (src.indexOf(AUTOPLAY_PARAM_ON) === -1) {\n src += `${hasQPStart ? \"&\" : \"?\"}${AUTOPLAY_PARAM_ON}`;\n }\n\n if (src.indexOf(mutedParamOn) === -1) {\n src += `&${mutedParamOn}`;\n }\n }\n\n return src;\n};\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (isCorrect.value && displayableSrc.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"iframe\", {\n src: displayableSrc.value,\n allow: allowParamString.value,\n width: __props.width,\n height: __props.height\n }, null, 8, _hoisted_3)\n ]))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_4, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"mr-20 text-sm\",\n icon: _unref(faExclamationCircle)\n }, null, 8, [\"icon\"])\n ]))\n ], 512))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./VideoObject.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./VideoObject.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = [\"onClick\"]\nconst _hoisted_2 = { class: \"w-full flex justify-center items-center overscroll-contain overflow-hidden\" }\nconst _hoisted_3 = [\"src\"]\n\nimport { SwiperSlide, Swiper } from \"swiper/vue\";\nimport { Pagination, Autoplay, Navigation } from \"swiper/modules\";\nimport { PaginationOptions } from \"swiper/types\";\nimport \"swiper/scss\";\nimport \"swiper/scss/pagination\";\nimport \"swiper/scss/navigation\";\nimport \"swiper/scss/autoplay\";\nimport { ref, computed } from \"vue\";\nimport FullscreenModal from \"@/components/FullscreenModal.vue\";\nimport { VotingItemImage } from \"@/models/campaign/voting/votingPublicData._model\";\nimport { getSingleFileUrl } from \"@/services/files.service\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport { DisplayableVotingItem } from \"../models/displayableVotingItem.class\";\nimport { getCampaignSettingValue } from \"@/services/settings.service\";\n\n// --------- setup\nconst SLIDES_PER_VIEW = 2;\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'VotingItemImageCarousel',\n props: {\n item: DisplayableVotingItem,\n},\n setup(__props) {\n\nconst props = __props;\n\nconst votingItemImagePreview = ref | null>(\n null\n);\n\nconst votingItemImageCount = computed(\n () => props.item?.sortedImages?.length || 0\n);\n// ---------\n\n// --------- carousel plugin config\nconst canLoop = votingItemImageCount.value >= SLIDES_PER_VIEW * 2;\n\nconst autoplay = {\n delay: 2500,\n};\n\nconst pagination: PaginationOptions = {\n clickable: !canLoop, // when loop is on, then pagination bullets gets buggy\n dynamicBullets: canLoop,\n renderBullet: function (_: number, className: string) {\n return ``;\n },\n};\n\nconst modules = [Pagination, Autoplay, Navigation];\nconst navigation = {\n nextEl: \".carousel-next\",\n prevEl: \".carousel-prev\",\n};\n// -------------------------\n\nconst imgRatio = getCampaignSettingValue(\"imageRatio\");\n\nconst currentImage = ref(undefined);\nconst imageUrl = ref(\"\");\n\nfunction getVotingItemImageUrl(votingItemImage: VotingItemImage) {\n return getSingleFileUrl(\n `${votingItemImage.fileMetaDataId}`,\n campaignApp.guid\n );\n}\n\nfunction onIndexChange(event: typeof Swiper) {\n currentImage.value = (props.item?.sortedImages || [])[event.realIndex];\n}\n\nfunction openImagePreview(votingItemImage: VotingItemImage) {\n imageUrl.value = getVotingItemImageUrl(votingItemImage) as string;\n votingItemImagePreview.value?.openModal();\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(_unref(Swiper), {\n class: \"voting-item-image-carousel\",\n modules: modules,\n loop: canLoop,\n rewind: !canLoop,\n pagination: pagination,\n autoplay: autoplay,\n navigation: navigation,\n centeredSlides: true,\n slidesOffsetBefore: 0,\n autoHeight: false,\n spaceBetween: 20,\n slidesPerView: SLIDES_PER_VIEW,\n onActiveIndexChange: _cache[0] || (_cache[0] = ($event: any) => (onIndexChange($event as any)))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.item?.sortedImages, (votingItemImage, iter) => {\n return (_openBlock(), _createBlock(_unref(SwiperSlide), {\n class: \"rounded-[4px] overflow-hidden pb-30 bg-transparent\",\n key: iter\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n onClick: ($event: any) => (openImagePreview(votingItemImage)),\n class: \"bg-transparent rounded-[4px]\"\n }, [\n _createElementVNode(\"div\", {\n class: \"xla-prize-image bg-no-repeat bg-center bg-cover rounded-[4px]\",\n style: _normalizeStyle(`background-image: url(${getVotingItemImageUrl(\n votingItemImage\n )}); aspect-ratio: ${_unref(imgRatio)?.replace(':', '/')};`)\n }, null, 4)\n ], 8, _hoisted_1)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"rewind\"]),\n _createVNode(FullscreenModal, {\n ref_key: \"votingItemImagePreview\",\n ref: votingItemImagePreview\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"img\", {\n class: \"w-10/12 mobileXl:w-1/3 py-80\",\n src: imageUrl.value\n }, null, 8, _hoisted_3)\n ])\n ]),\n _: 1\n }, 512)\n ]))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./VotingItemImageCarousel.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./VotingItemImageCarousel.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./VotingItemImageCarousel.vue?vue&type=style&index=0&id=928149e0&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-928149e0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, renderList as _renderList, Fragment as _Fragment, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"voting-item bg-background-color text-text-color\" }\nconst _hoisted_2 = { class: \"item-title flex flex-row justify-between p-20\" }\nconst _hoisted_3 = { class: \"flex items-center gap-10\" }\nconst _hoisted_4 = { class: \"hidden mobileXl:block text-2xl text-left font-bold\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"votes-count mr-10 px-10 py-[4px] font-bold text-xs rounded-sm bg-text-sc-black/10\"\n}\nconst _hoisted_6 = { class: \"font-bold text-base\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"video p-20\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"images-wrapper w-full mt-20 px-20\"\n}\nconst _hoisted_9 = { class: \"w-full p-20 flex justify-between\" }\nconst _hoisted_10 = { class: \"w-full text-left inline-flex flex-col\" }\nconst _hoisted_11 = { class: \"empty:mb-0 mb-20\" }\nconst _hoisted_12 = { class: \"block mobileXl:hidden mb-20 text-xl text-left font-bold\" }\nconst _hoisted_13 = [\"innerHTML\"]\nconst _hoisted_14 = [\"innerHTML\"]\nconst _hoisted_15 = {\n key: 2,\n class: \"mt-20\"\n}\nconst _hoisted_16 = { class: \"actions flex w-full justify-start items-center\" }\nconst _hoisted_17 = [\"disabled\"]\nconst _hoisted_18 = { key: 0 }\nconst _hoisted_19 = { key: 1 }\nconst _hoisted_20 = [\"disabled\"]\nconst _hoisted_21 = [\"disabled\"]\nconst _hoisted_22 = [\"disabled\"]\nconst _hoisted_23 = { class: \"w-full flex justify-center items-center overscroll-contain overflow-hidden\" }\nconst _hoisted_24 = [\"src\"]\n\nimport { DisplayableVotingItem } from \"../models/displayableVotingItem.class\";\nimport { computed, ref } from \"vue\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { faArrowLeft } from \"@fortawesome/free-solid-svg-icons\";\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"@/services/settings.service\";\nimport VideoObject from \"@/components/VideoObject.vue\";\nimport { faFacebook } from \"@fortawesome/free-brands-svg-icons\";\nimport VotingItemImageCarousel from \"./VotingItemImageCarousel.vue\";\nimport FullscreenModal from \"@/components/FullscreenModal.vue\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'VotingItem',\n props: {\n item: DisplayableVotingItem,\n showNavigationButtons: {\n type: Boolean,\n default: true,\n },\n hasPreviousItems: {\n type: Boolean,\n default: false,\n },\n hasMoreItems: {\n type: Boolean,\n default: false,\n },\n hasAnyLoadingState: {\n type: Boolean,\n default: false,\n },\n hasVotingDisabled: {\n type: Boolean,\n default: false,\n },\n withCategories: {\n type: Boolean,\n default: true,\n },\n},\n emits: [\n \"getPrevItem\",\n \"getNextItem\",\n \"backToList\",\n \"goToItem\",\n \"sendVote\",\n \"shareItem\",\n],\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst imgRatio = getCampaignSettingValue(\"imageRatio\");\nconst imgRatioClass = `ratio-${imgRatio?.replace(\":\", \"-\")}`;\nconst showVoteCount = getCampaignBooleanSettingValue(\"showVoteCount\");\nconst showShareButton = getCampaignBooleanSettingValue(\"showShareButton\");\n\nconst hasAtLeastOneImage = computed(\n () => (props.item?.votingItemImages?.length || 0) <= 1\n);\n\nconst hasVotes = computed(() => {\n return Boolean(props.item?.votingVotes?.length);\n});\n\nconst imagePreview = ref | null>(null);\n\nfunction seeMainImage() {\n if (!props.item?.hasPlaceholderPreviewImage) {\n imagePreview.value?.openModal();\n }\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"voting-item-wrapper\", `voting-item-${__props.item?.id}`])\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, [\n _createElementVNode(\"h3\", _hoisted_4, _toDisplayString(__props.item?.title), 1),\n (_unref(showVoteCount))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.txt_vote\", {\n count: __props.item?.voteCount,\n })), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"button\", {\n class: \"back-to-list-button flex items-center px-20 py-10 rounded-lg bg-background-color mobileXl:bg-text-color text-text-color mobileXl:text-[var(--text-color-inverted)] hover:opacity-70\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('backToList')))\n }, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"mr-15 text-lg align-middle\",\n icon: _unref(faArrowLeft)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_unref($ttt)(\"campaign.voting.btn_backToList\")), 1)\n ])\n ]),\n _cache[7] || (_cache[7] = _createElementVNode(\"div\", { class: \"border border-solid border-text-color/20\" }, null, -1)),\n (__props.item?.videoUrl)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createVNode(VideoObject, {\n src: __props.item.videoUrl,\n width: '100%',\n height: '100%'\n }, null, 8, [\"src\"])\n ]))\n : _createCommentVNode(\"\", true),\n ((__props.item?.votingItemImages?.length || 0) >= 2)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createVNode(VotingItemImageCarousel, { item: __props.item }, null, 8, [\"item\"])\n ]))\n : _createCommentVNode(\"\", true),\n (hasAtLeastOneImage.value && !__props.item?.hasVideoPreviewImage)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 2,\n class: _normalizeClass([\"image block mobileXl:hidden rounded-lg mx-20 mt-20 bg-center h-full bg-no-repeat bg-cover relative shrink-0\", [\n {\n 'hover:cursor-pointer': !props.item?.hasPlaceholderPreviewImage,\n },\n imgRatioClass,\n ]]),\n style: _normalizeStyle({\n backgroundImage: `url(${__props.item?.previewImage})`,\n }),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (seeMainImage()))\n }, null, 6))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"h3\", _hoisted_12, _toDisplayString(__props.item?.title), 1),\n (__props.item?.ingress)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"ingress ingress--detail-view text-base mobileXl:text-lg mb-10\",\n innerHTML: __props.item?.ingress\n }, null, 8, _hoisted_13))\n : _createCommentVNode(\"\", true),\n (__props.item?.description)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"description text-sm\",\n innerHTML: __props.item?.description\n }, null, 8, _hoisted_14))\n : _createCommentVNode(\"\", true),\n (__props.withCategories && __props.item?.votingCategories?.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.item?.votingCategories, (category) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: category.id,\n class: \"inline-block font-semibold text-base mr-10\"\n }, _toDisplayString(category.name), 1))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n (!__props.hasVotingDisabled)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: _normalizeClass([\"vote w-full mobileXl:w-auto min-w-[109px] h-[50px] mobileXl:h-auto p-10 mr-10 leading-[22px] inline-flex items-center justify-center bg-primary-color text-primary-color-inverted-for-text rounded-lg font-bold\", {\n 'hover:opacity-70': !hasVotes.value && !__props.hasAnyLoadingState,\n 'opacity-50': hasVotes.value || __props.hasAnyLoadingState,\n }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('sendVote', __props.item))),\n disabled: hasVotes.value || __props.hasAnyLoadingState\n }, [\n (hasVotes.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.txt_voted\")), 1))\n : _createCommentVNode(\"\", true),\n (!hasVotes.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_19, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.btn_vote\")), 1))\n : _createCommentVNode(\"\", true)\n ], 10, _hoisted_17))\n : _createCommentVNode(\"\", true),\n (_unref(showShareButton))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n disabled: __props.hasAnyLoadingState,\n class: _normalizeClass([\"share w-full mobileXl:w-auto min-w-[109px] h-[50px] mobileXl:h-auto p-10 leading-[22px] bg-facebook text-white font-bold rounded-lg inline-flex items-center justify-center\", {\n 'hover:opacity-70': !__props.hasAnyLoadingState,\n 'opacity-50': __props.hasAnyLoadingState,\n }]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('shareItem', __props.item)))\n }, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"mr-15\",\n icon: _unref(faFacebook)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", null, _toDisplayString(_unref($ttt)(\"campaign.voting.votingItem.btn_share\")), 1)\n ], 10, _hoisted_20))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n (hasAtLeastOneImage.value && !__props.item?.hasVideoPreviewImage)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"image hidden mobileXl:block rounded-lg ml-10 bg-center h-full bg-no-repeat bg-cover relative shrink-0 w-[30%]\", [\n {\n 'hover:cursor-pointer': !props.item?.hasPlaceholderPreviewImage,\n },\n imgRatioClass,\n ]]),\n style: _normalizeStyle({\n backgroundImage: `url(${__props.item?.previewImage})`,\n }),\n onClick: _cache[4] || (_cache[4] = ($event: any) => (seeMainImage()))\n }, null, 6))\n : _createCommentVNode(\"\", true)\n ]),\n _cache[8] || (_cache[8] = _createElementVNode(\"div\", { class: \"border border-solid border-text-color/20\" }, null, -1)),\n (__props.showNavigationButtons)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 3,\n class: _normalizeClass([\"prev-next-controls p-20 flex\", {\n 'prev-only': __props.hasMoreItems,\n 'next-only': __props.hasPreviousItems,\n }])\n }, [\n (__props.hasPreviousItems)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: _normalizeClass([\"min-w-[109px] p-10 bg-none border-2 border-solid border-primary-color text-[var(--background-color-inverted)] text-base font-bold rounded-lg\", {\n 'hover:opacity-70': !__props.hasAnyLoadingState,\n 'opacity-50': __props.hasAnyLoadingState,\n }]),\n disabled: __props.hasAnyLoadingState,\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$emit('getPrevItem', __props.item)))\n }, _toDisplayString(_unref($ttt)(\"tools.pager.txt_previous\")), 11, _hoisted_21))\n : _createCommentVNode(\"\", true),\n (__props.hasMoreItems)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n class: _normalizeClass([\"ml-auto min-w-[109px] p-10 bg-none border-2 border-solid border-primary-color text-[var(--background-color-inverted)] text-base font-bold rounded-lg\", {\n 'hover:opacity-70': !__props.hasAnyLoadingState,\n 'opacity-50': __props.hasAnyLoadingState,\n }]),\n disabled: __props.hasAnyLoadingState,\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$emit('getNextItem', __props.item)))\n }, _toDisplayString(_unref($ttt)(\"tools.pager.txt_next\")), 11, _hoisted_22))\n : _createCommentVNode(\"\", true)\n ], 2))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(FullscreenModal, {\n ref_key: \"imagePreview\",\n ref: imagePreview\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_23, [\n _createElementVNode(\"img\", {\n class: \"w-10/12 mobileXl:w-1/3 py-80\",\n src: __props.item?.mainImage\n }, null, 8, _hoisted_24)\n ])\n ]),\n _: 1\n }, 512)\n ], 2))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./VotingItem.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./VotingItem.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./VotingItem.vue?vue&type=style&index=0&id=515e1b02&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-515e1b02\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex items-center align-middle\" }\n\n\ninterface Props {\n color: \"success\" | \"cancel\" | \"error\" | \"info\";\n}\n\nconst commonBoxClass = `cm-alert-box py-30 px-30 rounded text-xl w-full tracking-[0.5px]`;\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'AlertBox',\n props: {\n color: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (props.color === 'success')\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass(`${commonBoxClass} bg-primary-color text-primary-color-inverted-for-text `)\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2))\n : _createCommentVNode(\"\", true),\n (props.color === 'cancel')\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: _normalizeClass(`${commonBoxClass} bg-white border-2 border-solid border-primary-color`)\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2))\n : _createCommentVNode(\"\", true),\n (props.color === 'error')\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 2,\n class: _normalizeClass(`${commonBoxClass} bg-text-sc-black/10 border-2 border-solid border-text-sc-black/10`)\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2))\n : _createCommentVNode(\"\", true),\n (props.color === 'info')\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 3,\n class: _normalizeClass(`${commonBoxClass} bg-white border-2 border-solid border-text-sc-black/20 text-text-sc-black/50`)\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","\n\n\n","import script from \"./AlertBox.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AlertBox.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderSlot as _renderSlot, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"fixed top-0 left-0 right-0 z-10 bg-black/40 w-full h-full overflow-y-scroll overflow-x-hidden overscroll-none\" }\nconst _hoisted_2 = { class: \"pb-10 border-b border-text-sc-black/10 text-lg\" }\nconst _hoisted_3 = { class: \"border-t border-text-sc-black/10\" }\nconst _hoisted_4 = { class: \"flex justify-end\" }\n\nimport { onMounted, ref } from \"vue\";\nimport { faTimes } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { resetWithClose } from \"@/services/modal.service\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { DIALOG_MODAL_CSS_CLASS } from \"@/services/modal.service\";\nimport { callIFrameParent } from \"@/services/auth/iFrameHandler.service\";\nimport { isEmbedded } from \"@/services/auth/embedding.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'DialogModal',\n setup(__props) {\n\nlibrary.add(faTimes);\nconst dialogElement = ref(null);\n\nconst modalTopPosition = ref();\n\nonMounted(() => {\n dialogElement.value?.show();\n\n if (isEmbedded.value) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callIFrameParent().then((parent: any) => {\n setTimeout(() => {\n parent.scroll(-1);\n }, 10);\n });\n }\n\n if (dialogElement.value) {\n dialogElement.value.addEventListener(\"keyup\", (ev) => {\n if (ev.key === \"Escape\") {\n resetWithClose();\n }\n });\n }\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"dialog\", {\n class: _normalizeClass([\"p-15 my-20 rounded-md shadow-fd-md w-full max-w-[var(--modal-md-width)]\", _unref(DIALOG_MODAL_CSS_CLASS)]),\n style: _normalizeStyle({ top: modalTopPosition.value }),\n ref_key: \"dialogElement\",\n ref: dialogElement\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _renderSlot(_ctx.$slots, \"header\"),\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_unref(resetWithClose)())),\n class: \"absolute top-0 right-0 cursor-pointer flex flex-col items-center mt-10 mr-10 text-text-sc-black/50 text-sm z-50 p-5 hover:invert\"\n }, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fa faTimes text-sm\",\n icon: _unref(faTimes)\n }, null, 8, [\"icon\"])\n ])\n ]),\n _renderSlot(_ctx.$slots, \"content\"),\n _createElementVNode(\"div\", _hoisted_3, [\n _renderSlot(_ctx.$slots, \"footer\", {}, () => [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_unref(resetWithClose)())),\n class: \"mt-10 py-5 px-10 border border-solid rounded-md border-text-sc-black/20 hover:bg-text-sc-black/20\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_ok\")), 1)\n ])\n ])\n ])\n ], 6)\n ]))\n}\n}\n\n})","\n\n\n","import script from \"./DialogModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DialogModal.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, renderSlot as _renderSlot, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"fixed w-full h-full z-50 overflow-y-auto\" }\nconst _hoisted_2 = { class: \"container mx-auto h-auto text-left p-30 text-white\" }\n\nimport { ref, onMounted, onUnmounted } from \"vue\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'FullscreenModal',\n setup(__props, { expose: __expose }) {\n\nlet isModalOpened = ref(false);\n\nonMounted(() => {\n document.addEventListener(\"keydown\", onKeyboardEvent);\n});\n\nonUnmounted(() => {\n document.removeEventListener(\"keydown\", onKeyboardEvent);\n});\n\nfunction openModal() {\n isModalOpened.value = true;\n}\n\nfunction closeModal() {\n isModalOpened.value = false;\n}\n\nfunction onKeyboardEvent(event: KeyboardEvent) {\n if (event.code === \"Escape\") {\n closeModal();\n }\n}\n\n__expose({\n openModal,\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"flex items-center justify-center\", {\n 'overflow-x-hidden': _unref(isModalOpened),\n 'overflow-y-visible': _unref(isModalOpened),\n }])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"modal fixed w-full h-full top-0 left-0 flex z-50 items-center justify-center\", {\n 'opacity-0': !_unref(isModalOpened),\n 'pointer-events-none': !_unref(isModalOpened),\n }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (closeModal()))\n }, [\n _cache[3] || (_cache[3] = _createElementVNode(\"div\", { class: \"absolute w-full h-full bg-black opacity-70\" }, null, -1)),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (closeModal())),\n class: \"absolute top-0 right-0 cursor-pointer flex flex-col items-center mt-30 mr-30 text-white text-sm z-50 p-5 hover:invert\"\n }, _cache[2] || (_cache[2] = [\n _createElementVNode(\"svg\", {\n class: \"fill-current text-white\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"18\",\n height: \"18\",\n viewBox: \"0 0 18 18\"\n }, [\n _createElementVNode(\"path\", { d: \"M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47 4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z\" })\n ], -1)\n ])),\n _createElementVNode(\"section\", _hoisted_2, [\n _renderSlot(_ctx.$slots, \"default\")\n ])\n ])\n ], 2)\n ], 2))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./FullscreenModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FullscreenModal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FullscreenModal.vue?vue&type=style&index=0&id=3c2028dc&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3c2028dc\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./LoadIndicator.vue?vue&type=template&id=c1430f38&scoped=true\"\nconst script = {}\n\nimport \"./LoadIndicator.vue?vue&type=style&index=0&id=c1430f38&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c1430f38\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { currentModal } from \"@/services/modal.service\";\nimport { ref } from \"vue\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'ModalContainer',\n setup(__props) {\n\n/* This is a generic \"modal wrapper\" component, that's bound with `modal.service`.\nIts goal is to keep track of any pending modal request at which point it should\ndisplay a certain modal component instance and pass actions/model from/to\n`modal.service` and that component \n\nAll modal components must implement:\n\n-- const emit = defineEmits<{\n-- confirm: [result: unknown];\n-- close: [];\n-- error: [error: unknown];\n-- }>();\n\nAll modal components may implement following, to get some param from `model.service`:\n-- const model = defineProps([\"model\"]);\n\nCheck `AuthSelectionModal.vue` to see an example modal component implementation.\n*/\n\nconst modal = ref(currentModal);\n\nreturn (_ctx: any,_cache: any) => {\n return (modal.value)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent(modal.value.view), {\n key: 0,\n model: modal.value.model,\n onConfirm: _cache[0] || (_cache[0] = ($event: any) => (modal.value?.onConfirm($event))),\n onClose: _cache[1] || (_cache[1] = ($event: any) => (modal.value?.onClose($event))),\n onError: _cache[2] || (_cache[2] = ($event: any) => (modal.value?.onError($event)))\n }, null, 40, [\"model\"]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","\n\n\n\n\n","import script from \"./ModalContainer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ModalContainer.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ModalContainer.vue?vue&type=style&index=0&id=72c9184e&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-72c9184e\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { ref, computed, watch } from \"vue\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'PaginationComponent',\n props: {\n totalPageCount: {\n type: Number,\n required: true,\n },\n pageSize: {\n type: Number,\n required: true,\n },\n maxPagesShown: {\n type: Number,\n default: 10,\n },\n currentPage: {\n type: Number,\n default: 1,\n },\n showFirstLast: {\n type: Boolean,\n default: true,\n },\n hidePrevNextWhenEnds: {\n type: Boolean,\n default: true,\n },\n isDisabled: {\n type: Boolean,\n default: false,\n },\n},\n emits: [\"pageChanged\"],\n setup(__props, { emit: __emit }) {\n\nconst props = __props;\n\nconst emit = __emit;\nconst _totalItemCount = computed(() => props.totalPageCount * props.pageSize);\nconst page = ref(props.currentPage);\n\nwatch(\n () => props.currentPage,\n () => {\n page.value = props.currentPage;\n }\n);\n\nfunction onClickHandler(page: number) {\n emit(\"pageChanged\", page - 1);\n}\n\nreturn (_ctx: any,_cache: any) => {\n const _component_VueAwesomePaginate = _resolveComponent(\"VueAwesomePaginate\")!\n\n return (_openBlock(), _createBlock(_component_VueAwesomePaginate, {\n modelValue: page.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((page).value = $event)),\n class: _normalizeClass({ '!hidden': __props.totalPageCount === 1 }),\n \"total-items\": _totalItemCount.value,\n \"items-per-page\": __props.pageSize,\n \"max-pages-shown\": __props.maxPagesShown,\n \"show-ending-buttons\": __props.showFirstLast,\n \"hide-prev-next-when-ends\": __props.hidePrevNextWhenEnds,\n disablePagination: __props.isDisabled,\n onClick: onClickHandler\n }, {\n \"prev-button\": _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref($ttt)(\"tools.pager.txt_previous\")), 1)\n ]),\n \"next-button\": _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref($ttt)(\"tools.pager.txt_next\")), 1)\n ]),\n \"first-page-button\": _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref($ttt)(\"tools.pager.txt_first\")), 1)\n ]),\n \"last-page-button\": _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref($ttt)(\"tools.pager.txt_last\")), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"class\", \"total-items\", \"items-per-page\", \"max-pages-shown\", \"show-ending-buttons\", \"hide-prev-next-when-ends\", \"disablePagination\"]))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./PaginationComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PaginationComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PaginationComponent.vue?vue&type=style&index=0&id=00ec599c&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-00ec599c\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"xla-ppa-wrapper bg-text-color/10 text-text-color rounded-[4px] p-40 mt-20 mx-20 text-center\"\n}\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = [\"href\"]\nconst _hoisted_4 = { class: \"mt-40 inline-flex py-10 px-20 rounded-[4px] bg-primary-color hover:bg-primary-color/80 text-primary-color-inverted-for-text items-center whitespace-nowrap align-middle touch-manipulation select-none\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"mt-40\"\n}\nconst _hoisted_6 = { class: \"inline-block bg-black rounded-sm\" }\nconst _hoisted_7 = { class: \"text-[18px] tracking-[0.45px] mr-30 leading-none\" }\n\nimport { PUBLIC_DATA } from \"@/services/publicData.service\";\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"@/services/settings.service\";\nimport { isEmail } from \"@/utils/utils\";\nimport { faSquareFacebook } from \"@fortawesome/free-brands-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { shareParticipation } from \"@/mixins/sharing.mixin\";\nimport { createQueryForFbShare, shareOnFb } from \"@/services/facebook.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { translateCampaignSetting } from \"@/services/i18n.service\";\n\n\ninterface Props {\n customShareUrl?: undefined | string;\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'PostParticipationAction',\n props: {\n customShareUrl: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\nconst postParticipationText = translateCampaignSetting(\n \"postParticipationContent\"\n);\n\nconst postParticipationActionCaption = translateCampaignSetting(\n \"postParticipationActionCaption\"\n);\n\nlet postParticipationActionLink = getCampaignSettingValue(\n \"postParticipationActionLink\"\n) as string;\n\nif (\n postParticipationActionLink &&\n postParticipationActionLink.length > 0 &&\n isEmail(postParticipationActionLink)\n) {\n postParticipationActionLink = `mailto:${postParticipationActionLink}`;\n}\n\nconst hasParticipation =\n PUBLIC_DATA.campaignApps.linked.campaignAppTypes[0].hasParticipation;\nconst showShareButton = getCampaignBooleanSettingValue(\"showShareButton\");\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (\n (_unref(postParticipationText) && _unref(postParticipationText).length > 0) ||\n (_unref(postParticipationActionCaption) &&\n _unref(postParticipationActionCaption).length > 0)\n )\n ? (_openBlock(), _createElementBlock(\"section\", _hoisted_1, [\n (_unref(postParticipationText))\n ? (_openBlock(), _createElementBlock(\"p\", {\n key: 0,\n innerHTML: _unref(postParticipationText),\n class: \"text-[16px] no-tailwindcss-base\"\n }, null, 8, _hoisted_2))\n : _createCommentVNode(\"\", true),\n (_unref(postParticipationActionCaption))\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 1,\n href: _unref(postParticipationActionLink),\n target: \"_blank\"\n }, [\n _createElementVNode(\"button\", _hoisted_4, _toDisplayString(_unref(postParticipationActionCaption)), 1)\n ], 8, _hoisted_3))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(hasParticipation) && _unref(showShareButton))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n props.customShareUrl\n ? _unref(shareOnFb)(_unref(createQueryForFbShare)(props.customShareUrl))\n : _unref(shareParticipation)()\n )),\n class: \"my-0 mx-auto py-15 px-0 flex items-center shadow-lg bg-facebook hover:bg-facebook/80 text-detail-bg rounded-sm\"\n }, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fab fa-square-facebook my-0 mx-20 text-[22px] text-base\",\n icon: _unref(faSquareFacebook)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_unref($ttt)(\"campaign.facebookShare.btn_shareParticipation\")), 1)\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","\n\n\n","import script from \"./PostParticipationAction.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PostParticipationAction.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"ml-10\"\n}\n\n\nimport { faCheck } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\n\ninterface Props {\n show: boolean;\n hideMessage?: boolean;\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SavedMessage',\n props: {\n show: { type: Boolean },\n hideMessage: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props;\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"saved-msg flex items-center font-bold\", { 'save-show': props.show }])\n }, [\n _createVNode(_unref(FontAwesomeIcon), {\n icon: _unref(faCheck),\n class: \"fa-solid\"\n }, null, 8, [\"icon\"]),\n (!_ctx.hideMessage)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _toDisplayString(_unref($ttt)(\"campaign.common.mla.txt_saved\")), 1))\n : _createCommentVNode(\"\", true)\n ], 2))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./SavedMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SavedMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./SavedMessage.vue?vue&type=style&index=0&id=1904a386&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1904a386\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"xla-submission-response\" }\nconst _hoisted_2 = [\"innerHTML\"]\n\nimport AlertBox from \"./AlertBox.vue\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { translateCampaignSetting } from \"@/services/i18n.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SubmissionResponse',\n setup(__props) {\n\nconst customSubmissionResponse = translateCampaignSetting(\"submissionResponse\");\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_unref(customSubmissionResponse))\n ? (_openBlock(), _createBlock(AlertBox, {\n key: 0,\n class: \"m-20\",\n color: 'success'\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_unref($ttt)(\"global.txt_submissionResponse\")), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_unref(customSubmissionResponse))\n ? (_openBlock(), _createBlock(AlertBox, {\n key: 1,\n class: \"no-tailwindcss-base m-20\",\n color: 'success'\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", { innerHTML: _unref(customSubmissionResponse) }, null, 8, _hoisted_2)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","\n\n\n","import script from \"./SubmissionResponse.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SubmissionResponse.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"font-bold text-xl\" }\nconst _hoisted_2 = { class: \"py-30 text-sm\" }\nconst _hoisted_3 = [\"onClick\"]\nconst _hoisted_4 = [\"src\"]\nconst _hoisted_5 = { class: \"align-middle\" }\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = { class: \"flex justify-end\" }\n\nimport { IDisplayableAuthenticationOption } from \"@/models/campaign/displayableAuthenticationOption._model\";\nimport { getDisplayableAuthOptions } from \"@/services/auth/campaignAppAuthenticationOptions.service\";\nimport { ref } from \"vue\";\nimport DialogModal from \"../DialogModal.vue\";\nimport { ICampaignAppAuthenticationOption } from \"@/models/authentication/campaignAppAuthenticationOption.model\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { faFacebook } from \"@fortawesome/free-brands-svg-icons\";\nimport {\n faMobileAlt,\n faSignInAlt,\n faBuilding,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { faIdCard } from \"@fortawesome/free-regular-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'AuthSelectionModal',\n emits: [\"confirm\", \"close\", \"error\"],\n setup(__props, { emit: __emit }) {\n\nlibrary.add(faFacebook, faMobileAlt, faSignInAlt, faIdCard, faBuilding);\n\nconst emit = __emit;\n\nconst displayableAuthOptions = getDisplayableAuthOptions();\nconst simpleAuthOption = ref(displayableAuthOptions.simple);\nconst complexAuthOptions = ref(\n displayableAuthOptions.complex\n);\n\nfunction authSelected(displayableAuthOption: IDisplayableAuthenticationOption) {\n emit(\"confirm\", displayableAuthOption.option);\n}\n\nfunction closeModal() {\n emit(\"close\");\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(DialogModal, null, {\n header: _withCtx(() => [\n _createElementVNode(\"h4\", _hoisted_1, _toDisplayString(_unref($ttt)(\n \"global.campaignAuthentication.authSelectionModal.hdr_authentication\"\n )), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"section\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(complexAuthOptions.value, (authOption) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n key: authOption.name,\n onClick: ($event: any) => (authSelected(authOption)),\n class: \"block w-full rounded-md py-15 px-15 mb-15 text-left hover:opacity-80\",\n style: _normalizeStyle(authOption.brandSpecificButtonStyles)\n }, [\n (\n !authOption.displayableImageIconUrl && authOption.iconCssClass\n )\n ? (_openBlock(), _createBlock(_unref(FontAwesomeIcon), {\n key: 0,\n class: \"mr-15 text-lg align-middle\",\n icon: authOption.iconCssClass\n }, null, 8, [\"icon\"]))\n : _createCommentVNode(\"\", true),\n (authOption.displayableImageIconUrl)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n class: \"h-15 inline-block mr-15\",\n src: authOption.displayableImageIconUrl\n }, null, 8, _hoisted_4))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(authOption.name), 1)\n ], 12, _hoisted_3))\n }), 128)),\n (complexAuthOptions.value.length && simpleAuthOption.value)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_6, _toDisplayString(_unref($ttt)(\"global.campaignAuthentication.authSelectionModal.txt_or\")), 1))\n : _createCommentVNode(\"\", true),\n (simpleAuthOption.value)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (authSelected(simpleAuthOption.value))),\n class: \"block w-full border border-solid rounded-md border-text-sc-black/20 py-15 px-15 mt-15 text-center hover:bg-text-sc-black/10\"\n }, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref($ttt)(simpleAuthOption.value.name)), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n footer: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (closeModal())),\n class: \"mt-15 ml-10 py-10 px-[25px] rounded-sm bg-text-sc-black/10 hover:bg-text-sc-black/5\"\n }, _toDisplayString(_unref($ttt)(\"global.btn_close\")), 1)\n ])\n ]),\n _: 1\n }))\n}\n}\n\n})","\n\n\n","import script from \"./AuthSelectionModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AuthSelectionModal.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\n\nconst CUSTOM_FORM_FIELD_PREFIX = \"custom-\";\n\nexport function craftLabel(formField: FormFieldDefinition): string {\n if (formField.customLabel) {\n return formField.customLabel;\n }\n\n if (formField.customLabelTranslationKey) {\n return $ttt(formField.customLabelTranslationKey);\n }\n\n if (formField.id.includes(CUSTOM_FORM_FIELD_PREFIX)) {\n return formField.id.replace(CUSTOM_FORM_FIELD_PREFIX, \"\");\n }\n\n return $ttt(`global.campaignAuthentication.field.txt_${formField.id}`);\n}\n\nexport function craftInvalidMessage(formField: FormFieldDefinition): string {\n if (formField.id.includes(CUSTOM_FORM_FIELD_PREFIX)) {\n return $ttt(\"global.campaignAuthentication.field.txt_fieldInvalid\");\n }\n\n return $ttt(\"global.campaignAuthentication.field.txt_enterValidField\", {\n fieldName: craftLabel(formField),\n });\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, Fragment as _Fragment, renderList as _renderList, toDisplayString as _toDisplayString, mergeProps as _mergeProps, createBlock as _createBlock, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = [\"for\"]\nconst _hoisted_2 = {\n key: 0,\n class: \"text-brand-danger mr-[1px] text-lg\"\n}\nconst _hoisted_3 = [\"innerHTML\"]\nconst _hoisted_4 = [\"pattern\", \"required\", \"disabled\", \"id\", \"type\", \"inputmode\", \"value\"]\nconst _hoisted_5 = [\"required\", \"disabled\", \"id\", \"type\", \"inputmode\", \"value\"]\nconst _hoisted_6 = [\"required\", \"disabled\", \"id\", \"type\", \"inputmode\", \"value\", \"max\", \"min\"]\nconst _hoisted_7 = [\"pattern\", \"required\", \"disabled\", \"id\", \"type\", \"inputMode\", \"value\"]\nconst _hoisted_8 = [\"required\", \"disabled\", \"id\", \"value\"]\nconst _hoisted_9 = {\n key: 0,\n disabled: \"\",\n value: \"\"\n}\nconst _hoisted_10 = {\n key: 1,\n value: \"\"\n}\nconst _hoisted_11 = [\"required\", \"disabled\", \"id\", \"type\", \"value\", \"max\", \"min\"]\nconst _hoisted_12 = [\"required\", \"disabled\", \"id\", \"value\", \"max\", \"min\"]\nconst _hoisted_13 = [\"required\", \"disabled\", \"id\", \"checked\"]\nconst _hoisted_14 = [\"for\"]\nconst _hoisted_15 = [\"innerHTML\"]\nconst _hoisted_16 = {\n key: 0,\n class: \"text-brand-danger ml-5\"\n}\nconst _hoisted_17 = {\n key: 8,\n class: \"text-brand-danger mt-10 block\"\n}\nconst _hoisted_18 = { class: \"ml-10\" }\nconst _hoisted_19 = {\n key: 9,\n class: \"text-brand-danger mt-10 block\"\n}\nconst _hoisted_20 = [\"innerHTML\"]\n\nimport { ref, toRef, computed } from \"vue\";\nimport { FormFieldDefinition } from \"@/models/authentication/formFieldDefinition._model\";\nimport { AuthenticationFieldTypes } from \"@/common/authentication.dictionary\";\nimport { VueTelInput } from \"vue-tel-input\";\nimport \"vue-tel-input/vue-tel-input.css\";\nimport {\n craftInvalidMessage,\n craftLabel,\n} from \"@/services/auth/utility/labelTranslationHelper.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { faTriangleExclamation } from \"@fortawesome/free-solid-svg-icons\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\n\nconst MAX_DOB_YEARS_FROM_NOW = 10;\nconst MIN_DOB_YEARS_FROM_NOW = 100;\n\ninterface Props {\n field: FormFieldDefinition;\n}\n\ninterface TelInputValidityChangeEvent {\n countryCallingCode: string;\n nationalNumber: string;\n number: string;\n country: {\n name: string;\n iso2: string;\n dialCode: string;\n };\n countryCode: string;\n valid: boolean;\n formatted: string;\n}\n\nconst inputClasses = `xla-form-field w-full text-[15px] py-[7px] px-15 border border-solid border-text-sc-black/30 rounded-md invalid:border-brand-danger invalid:shadow-[1px_3px_5px_0_rgba(0,0,0,0.05)]`;\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'FormField',\n props: {\n field: {}\n },\n emits: [\"update:field\"],\n setup(__props: any, { emit: __emit }) {\n\nlibrary.add(faTriangleExclamation);\n\nconst telInput = ref | null>();\nconst props = __props;\nconst emit = __emit;\nconst fieldVisited = ref(props.field.visited);\n\nconst phoneNumberValue = toRef(props.field, \"value\");\nconst phoneNumberValid = ref(false);\n\nconst phoneInputProps = ref({\n disabledFetchingCountry: false,\n disabled: toRef(() => props.field.isReadOnly),\n disabledFormatting: false,\n required: props.field.isRequired,\n enabledCountryCode: false,\n ignoredCountries: [],\n autocomplete: \"on\",\n name: \"phone\",\n maxLen: 25,\n wrapperClasses: \"\",\n inputClasses: \"\",\n inputOptions: {\n showDialCode: true,\n type: \"tel\",\n },\n defaultCountry: campaignApp.countryCode,\n});\n\nconst genderOptions = [\n \"global.campaignAuthentication.field.option.gender.txt_male\",\n \"global.campaignAuthentication.field.option.gender.txt_female\",\n \"global.campaignAuthentication.field.option.gender.txt_other\",\n \"global.campaignAuthentication.field.option.gender.txt_undefined\",\n];\n\nconst isRequired = computed(() => {\n return (\n props.field.isRequired &&\n !props.field.value &&\n props.field.visited &&\n props.field.type !== \"hidden\"\n );\n});\n\nconst isInvalid = computed(() => {\n return (\n (isTouchedAndInvalid() && !props.field.isRequired) ||\n (isTouchedAndInvalid() && props.field.isRequired && props.field.value)\n );\n});\n\nfunction isTouchedAndInvalid() {\n return (\n !props.field.valid && props.field.visited && props.field.type !== \"hidden\"\n );\n}\n\nfunction inputChange(event: Event) {\n const input = event.target as HTMLInputElement;\n\n emit(\"update:field\", {\n value:\n props.field.type === \"checkbox\" || props.field.type === \"consentTexts\"\n ? input.checked\n : input.value,\n valid:\n props.field.id === \"phoneNumber\"\n ? phoneNumberValid\n : input.checkValidity(),\n visited: fieldVisited.value,\n });\n}\n\nfunction formatMinMaxDateTime(\n dateTime: string | undefined,\n isWithTime: boolean | undefined\n): string | undefined {\n if (!dateTime) {\n return;\n }\n\n const day = new Date(dateTime).toISOString().split(\"T\")[0];\n\n return isWithTime ? `${day}T00:00` : day;\n}\n\nfunction getCurrentDateMinusYears(years: number) {\n const date = new Date(); // now\n\n date.setFullYear(date.getFullYear() - years);\n\n return date.toISOString().split(\"T\")[0];\n}\n\nfunction getMaxDateOfBirth() {\n return getCurrentDateMinusYears(MAX_DOB_YEARS_FROM_NOW);\n}\n\nfunction getMinDateOfBirth() {\n return (\n props.field.minDate || getCurrentDateMinusYears(MIN_DOB_YEARS_FROM_NOW)\n );\n}\n\nfunction phoneInputChange(event: TelInputValidityChangeEvent) {\n if (!event.valid) {\n telInput.value?.$el.classList.add(\"error\");\n } else {\n telInput.value?.$el.classList.remove(\"error\");\n }\n\n phoneNumberValid.value = event.valid;\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (\n props.field.type !== _unref(AuthenticationFieldTypes).CHECK_BOX &&\n props.field.type !== _unref(AuthenticationFieldTypes).HIDDEN &&\n props.field.type !== _unref(AuthenticationFieldTypes).CONSENT_TEXT\n )\n ? (_openBlock(), _createElementBlock(\"label\", {\n key: 0,\n class: \"block font-bold text-sm mb-5\",\n for: props.field.id\n }, [\n (props.field.isRequired)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, \"*\"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", {\n innerHTML: _unref(craftLabel)(props.field)\n }, null, 8, _hoisted_3)\n ], 8, _hoisted_1))\n : _createCommentVNode(\"\", true),\n (props.field.type === _unref(AuthenticationFieldTypes).TEXT)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n (!props.field.multiline)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n pattern: props.field.pattern,\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n class: _normalizeClass(inputClasses),\n id: props.field.id,\n type: props.field.type,\n inputmode: props.field.inputMode,\n value: props.field.value,\n onInput: _cache[0] || (_cache[0] = ($event: any) => (inputChange($event))),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (fieldVisited.value = true))\n }, null, 40, _hoisted_4))\n : _createCommentVNode(\"\", true),\n (props.field.multiline)\n ? (_openBlock(), _createElementBlock(\"textarea\", {\n key: 1,\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n class: _normalizeClass(inputClasses),\n id: props.field.id,\n type: props.field.type,\n inputmode: props.field.inputMode,\n value: (props.field.value as string),\n onInput: _cache[2] || (_cache[2] = ($event: any) => (inputChange($event))),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (fieldVisited.value = true))\n }, null, 40, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ], 64))\n : _createCommentVNode(\"\", true),\n (props.field.type === _unref(AuthenticationFieldTypes).NUMBER)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 2,\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n class: _normalizeClass(inputClasses),\n id: props.field.id,\n type: props.field.type,\n inputmode: props.field.inputMode,\n value: props.field.value,\n max: props.field.maxValue,\n min: props.field.minValue,\n onInput: _cache[4] || (_cache[4] = ($event: any) => (inputChange($event))),\n onClick: _cache[5] || (_cache[5] = ($event: any) => (fieldVisited.value = true))\n }, null, 40, _hoisted_6))\n : _createCommentVNode(\"\", true),\n (props.field.type === _unref(AuthenticationFieldTypes).EMAIL)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 3,\n pattern: props.field.pattern,\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n class: _normalizeClass(inputClasses),\n id: props.field.id,\n type: props.field.type,\n inputMode: props.field.inputMode,\n value: props.field.value,\n onInput: _cache[6] || (_cache[6] = ($event: any) => (inputChange($event))),\n onClick: _cache[7] || (_cache[7] = ($event: any) => (fieldVisited.value = true))\n }, null, 40, _hoisted_7))\n : _createCommentVNode(\"\", true),\n (props.field.type === _unref(AuthenticationFieldTypes).OPTION)\n ? (_openBlock(), _createElementBlock(\"select\", {\n key: 4,\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n class: _normalizeClass(inputClasses),\n id: props.field.id,\n value: props.field.value,\n onInput: _cache[8] || (_cache[8] = ($event: any) => (inputChange($event))),\n onClick: _cache[9] || (_cache[9] = ($event: any) => (fieldVisited.value = true))\n }, [\n (props.field.isRequired)\n ? (_openBlock(), _createElementBlock(\"option\", _hoisted_9))\n : _createCommentVNode(\"\", true),\n (!props.field.isRequired)\n ? (_openBlock(), _createElementBlock(\"option\", _hoisted_10))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(props.field.selectOptions, (option) => {\n return (_openBlock(), _createElementBlock(\"option\", { key: option }, _toDisplayString(option), 1))\n }), 128)),\n (props.field.id === 'gender')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, _renderList(genderOptions, (option, index) => {\n return _createElementVNode(\"option\", { key: index }, _toDisplayString(_unref($ttt)(option)), 1)\n }), 64))\n : _createCommentVNode(\"\", true)\n ], 40, _hoisted_8))\n : _createCommentVNode(\"\", true),\n (props.field.type === _unref(AuthenticationFieldTypes).TEL)\n ? (_openBlock(), _createBlock(_unref(VueTelInput), _mergeProps({\n key: 5,\n ref_key: \"telInput\",\n ref: telInput,\n id: props.field.id,\n onInput: _cache[10] || (_cache[10] = ($event: any) => (inputChange($event))),\n onValidate: _cache[11] || (_cache[11] = ($event: any) => (phoneInputChange($event))),\n onClick: _cache[12] || (_cache[12] = ($event: any) => (fieldVisited.value = true)),\n class: \"py-[2px] px-5\",\n modelValue: phoneNumberValue.value,\n \"onUpdate:modelValue\": _cache[13] || (_cache[13] = ($event: any) => ((phoneNumberValue).value = $event))\n }, phoneInputProps.value, { mode: \"international\" }), null, 16, [\"id\", \"modelValue\"]))\n : _createCommentVNode(\"\", true),\n (props.field.type === _unref(AuthenticationFieldTypes).DATE_TIME)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 6 }, [\n (props.field.id !== 'dateOfBirth')\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n class: _normalizeClass(inputClasses),\n id: props.field.id,\n type: props.field.includeTime ? 'datetime-local' : 'date',\n value: props.field.value,\n max: formatMinMaxDateTime(props.field.maxDate, props.field.includeTime),\n min: formatMinMaxDateTime(props.field.minDate, props.field.includeTime),\n onInput: _cache[14] || (_cache[14] = ($event: any) => (inputChange($event))),\n onClick: _cache[15] || (_cache[15] = ($event: any) => (fieldVisited.value = true))\n }, null, 40, _hoisted_11))\n : _createCommentVNode(\"\", true),\n (props.field.id === 'dateOfBirth')\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 1,\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n class: _normalizeClass(inputClasses),\n id: props.field.id,\n type: 'date',\n value: props.field.value,\n max: getMaxDateOfBirth(),\n min: getMinDateOfBirth(),\n onInput: _cache[16] || (_cache[16] = ($event: any) => (inputChange($event))),\n onClick: _cache[17] || (_cache[17] = ($event: any) => (fieldVisited.value = true))\n }, null, 40, _hoisted_12))\n : _createCommentVNode(\"\", true)\n ], 64))\n : _createCommentVNode(\"\", true),\n (\n props.field.type === _unref(AuthenticationFieldTypes).CHECK_BOX ||\n props.field.type === _unref(AuthenticationFieldTypes).CONSENT_TEXT\n )\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 7 }, [\n _createElementVNode(\"input\", {\n required: props.field.isRequired,\n disabled: props.field.isReadOnly,\n id: props.field.id,\n type: 'checkbox',\n checked: Boolean(props.field.value),\n onInput: _cache[18] || (_cache[18] = ($event: any) => (inputChange($event))),\n onClick: _cache[19] || (_cache[19] = ($event: any) => (fieldVisited.value = true)),\n class: \"w-20 h-20 align-middle\"\n }, null, 40, _hoisted_13),\n _createElementVNode(\"label\", {\n class: \"w-full font-bold pl-10 align-middle\",\n for: props.field.id\n }, [\n _createElementVNode(\"span\", {\n innerHTML: _unref(craftLabel)(props.field)\n }, null, 8, _hoisted_15),\n (props.field.isRequired)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_16, \" * \"))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_14)\n ], 64))\n : _createCommentVNode(\"\", true),\n (isRequired.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_17, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fas triangle-exclamation\",\n icon: _unref(faTriangleExclamation)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(_unref($ttt)(\"global.campaignAuthentication.field.txt_fieldRequired\")), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (isInvalid.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_19, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fas triangle-exclamation\",\n icon: _unref(faTriangleExclamation)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", {\n class: \"ml-10\",\n innerHTML: _unref(craftInvalidMessage)(props.field)\n }, null, 8, _hoisted_20)\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","\n\n \n\n \n\n\n\n\n\n","import script from \"./FormField.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FormField.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FormField.vue?vue&type=style&index=0&id=463c2a20&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./SecureMobileModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SecureMobileModal.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./SignUpFormModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SignUpFormModal.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./SimpleEmailLoginModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SimpleEmailLoginModal.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./SimpleMobileModal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SimpleMobileModal.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"innerHTML\"]\n\nimport { translateCampaignSetting } from \"@/services/i18n.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'AuthenticationDescription',\n setup(__props) {\n\nconst authenticationDescription = translateCampaignSetting(\n \"authenticationDescription\"\n);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"section\", {\n class: \"no-tailwindcss-base mt-30\",\n innerHTML: _unref(authenticationDescription)\n }, null, 8, _hoisted_1))\n}\n}\n\n})","\n\n\n","import script from \"./AuthenticationDescription.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./AuthenticationDescription.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"outside-activity-msg\" }\nconst _hoisted_2 = { class: \"text-center\" }\n\n\nimport { CampaignStatus } from \"@/services/campaignStatus.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport AlertBox from \"../AlertBox.vue\";\nimport { formatDate } from \"@/utils/dateFormatter.helper\";\n\ninterface Props {\n campaignStatus: CampaignStatus;\n visualType: string;\n activity: string;\n activityStartDate?: Date;\n}\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'OutsideActivityMsg',\n props: {\n campaignStatus: {},\n visualType: {},\n activity: {},\n activityStartDate: {}\n },\n setup(__props: any) {\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(AlertBox, {\n class: \"m-20\",\n color: 'info'\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_2, [\n (_ctx.campaignStatus.isBeforeActivity && _ctx.activityStartDate)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createTextVNode(_toDisplayString(_unref($ttt)(`campaign.${_ctx.visualType}.txt_${_ctx.activity}NotAvailableYet`, {\n submissionStartDate: _unref(formatDate)(_ctx.activityStartDate, \"LLL\"),\n })), 1)\n ], 64))\n : _createCommentVNode(\"\", true),\n (!_ctx.campaignStatus.isBeforeActivity)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_unref($ttt)(`campaign.${_ctx.visualType}.txt_${_ctx.activity}NotAvailableAlready`)), 1)\n ], 64))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./OutsideActivityMsg.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./OutsideActivityMsg.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n","import { render } from \"./DefaultPrivacyPolicyTemplate.vue?vue&type=template&id=bcabbf48\"\nconst script = {}\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withCtx as _withCtx, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"xla-campaign-copyright mt-5 text-text-color font-bold leading-tight text-xs\" }\nconst _hoisted_2 = {\n class: \"opacity-40 hover:opacity-100 hover:underline\",\n href: \"https://crowdmanager.io/\",\n target: \"_blank\"\n}\nconst _hoisted_3 = {\n key: 0,\n class: \"inline-block\"\n}\nconst _hoisted_4 = [\"href\"]\nconst _hoisted_5 = {\n key: 1,\n class: \"inline-block\"\n}\nconst _hoisted_6 = [\"innerHTML\"]\nconst _hoisted_7 = {\n key: 2,\n class: \"inline-block\"\n}\nconst _hoisted_8 = [\"innerHTML\"]\n\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"@/services/settings.service\";\nimport FullscreenModal from \"../FullscreenModal.vue\";\nimport DefaultPrivacyPolicyTemplate from \"./DefaultPrivacyPolicyTemplate.vue\";\nimport { ref } from \"vue\";\nimport { VisualTypesWithPayments } from \"@/common/visualType.dictionary\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { translateCampaignSetting } from \"@/services/i18n.service\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport { isEmptyOrWhitespace } from \"@/utils/string\";\n\ntype ModalInstance = InstanceType | null;\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'CopyrightAndPrivacyPolicy',\n setup(__props) {\n\nconst privacyPolicyModal = ref(null);\nconst paymentTermsModal = ref(null);\n\nconst myProfileLinkVisible = getCampaignBooleanSettingValue(\n \"myProfileLinkVisible\"\n);\n\nconst myProfileLink = myProfileLinkVisible\n ? (getCampaignSettingValue(\"myProfileLink\") as string)\n : undefined;\n\nconst paymentTerms = translateCampaignSetting(\"paymentTerms\") as string;\nconst canShowPaymentTerms =\n VisualTypesWithPayments.includes(campaignApp.visualType) &&\n !isEmptyOrWhitespace(paymentTerms);\n\nconst customPrivacyPolicy = translateCampaignSetting(\"privacyPolicy\");\nconst hasCustomPrivacyPolicy = !isEmptyOrWhitespace(customPrivacyPolicy);\n\nfunction openPrivacyPolicy(event: Event) {\n event.preventDefault();\n privacyPolicyModal.value?.openModal();\n}\n\nfunction openPaymentTerms(event: Event) {\n event.preventDefault();\n paymentTermsModal.value?.openModal();\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"span\", _hoisted_1, [\n _createElementVNode(\"a\", _hoisted_2, _toDisplayString(`Copyright © ${new Date().getFullYear()} Fandrive`), 1),\n (_unref(myProfileLinkVisible))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _cache[2] || (_cache[2] = _createElementVNode(\"span\", { class: \"mx-5\" }, \"|\", -1)),\n _createElementVNode(\"a\", {\n class: \"opacity-40 hover:opacity-100 hover:underline\",\n href: _unref(myProfileLink),\n target: \"_blank\"\n }, _toDisplayString(_unref($ttt)(\"tools.campaignCopyright.txt_myProfile\")), 9, _hoisted_4)\n ]))\n : _createCommentVNode(\"\", true),\n true\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _cache[3] || (_cache[3] = _createElementVNode(\"span\", { class: \"mx-5\" }, \"|\", -1)),\n _createElementVNode(\"a\", {\n class: \"opacity-40 hover:opacity-100 hover:underline\",\n href: \"\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (openPrivacyPolicy($event)))\n }, _toDisplayString(_unref($ttt)(\"tools.campaignCopyright.txt_privacyPolicy\")), 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(FullscreenModal, {\n ref_key: \"privacyPolicyModal\",\n ref: privacyPolicyModal\n }, {\n default: _withCtx(() => [\n (!hasCustomPrivacyPolicy)\n ? (_openBlock(), _createBlock(DefaultPrivacyPolicyTemplate, { key: 0 }))\n : _createCommentVNode(\"\", true),\n hasCustomPrivacyPolicy\n ? (_openBlock(), _createElementBlock(\"section\", {\n key: 1,\n innerHTML: _unref(customPrivacyPolicy),\n class: \"no-tailwindcss-base text-text-sc-black\"\n }, null, 8, _hoisted_6))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 512),\n (_unref(paymentTerms) && _unref(canShowPaymentTerms))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _cache[4] || (_cache[4] = _createElementVNode(\"span\", { class: \"mx-5\" }, \"|\", -1)),\n _createElementVNode(\"a\", {\n class: \"opacity-40 hover:opacity-100 hover:underline\",\n href: \"\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (openPaymentTerms($event)))\n }, _toDisplayString(_unref($ttt)(\"tools.campaignCopyright.txt_paymentTerms\")), 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(FullscreenModal, {\n ref_key: \"paymentTermsModal\",\n ref: paymentTermsModal\n }, {\n default: _withCtx(() => [\n (_unref(paymentTerms) && _unref(canShowPaymentTerms))\n ? (_openBlock(), _createElementBlock(\"section\", {\n key: 0,\n innerHTML: _unref(paymentTerms),\n class: \"no-tailwindcss-base text-text-sc-black\"\n }, null, 8, _hoisted_8))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 512)\n ]))\n}\n}\n\n})","\n\n\n","import script from \"./CopyrightAndPrivacyPolicy.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CopyrightAndPrivacyPolicy.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bg-background-color flex-grow text-center pb-80\" }\n\nimport CopyrightAndPrivacyPolicy from \"./CopyrightAndPrivacyPolicy.vue\";\nimport TermsAndConditions from \"./TermsAndConditions.vue\";\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'CampaignFooter',\n setup(__props) {\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"footer\", _hoisted_1, [\n _createVNode(TermsAndConditions, {\n class: \"mt-60 mb-30\",\n \"text-color\": 'campaign-theme'\n }),\n _createVNode(CopyrightAndPrivacyPolicy)\n ]))\n}\n}\n\n})","import script from \"./CampaignFooter.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CampaignFooter.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"justify-center flex\"\n}\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = {\n key: 1,\n class: \"px-30\"\n}\nconst _hoisted_4 = { class: \"list-decimal text-left\" }\nconst _hoisted_5 = { class: \"mb-20 pl-20 leading-normal\" }\nconst _hoisted_6 = { class: \"mb-20 pl-20 leading-normal\" }\nconst _hoisted_7 = { class: \"mb-20 pl-20 leading-normal\" }\n\nimport { $ttt } from \"@/mixins/i18n.mixin\";\n\nimport { translateCampaignSetting } from \"@/services/i18n.service\";\n\ninterface Props {\n textColor: \"campaign-theme\" | \"inherit\";\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'TermsAndConditionsContent',\n props: {\n textColor: { default: \"inherit\" }\n },\n setup(__props: any) {\n\n\n\nconst customTerms = translateCampaignSetting(\"termsAndConditions\");\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_unref(customTerms))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n innerHTML: _unref(customTerms),\n class: _normalizeClass([\"no-tailwindcss-base\", { 'text-text-color': _ctx.textColor === 'campaign-theme' }])\n }, null, 10, _hoisted_2)\n ]))\n : _createCommentVNode(\"\", true),\n (!_unref(customTerms))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"ol\", _hoisted_4, [\n _createElementVNode(\"li\", _hoisted_5, _toDisplayString(_unref($ttt)(\"campaign.terms.txt_termsLine1\")), 1),\n _createElementVNode(\"li\", _hoisted_6, _toDisplayString(_unref($ttt)(\"campaign.terms.txt_termsLine2\")), 1),\n _createElementVNode(\"li\", _hoisted_7, _toDisplayString(_unref($ttt)(\"campaign.terms.txt_termsLine3\")), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","\n\n\n","import script from \"./TermsAndConditionsContent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TermsAndConditionsContent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"xla-campaign-terms\" }\nconst _hoisted_2 = [\"open\"]\nconst _hoisted_3 = [\"tabindex\"]\nconst _hoisted_4 = {\n key: 0,\n class: \"underline hover:scale-105 hover:opacity-70 hover:cursor-pointer mt-15 mb-30\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"inline mt-15 mb-30\"\n}\nconst _hoisted_6 = { class: \"px-40\" }\n\nimport { getCampaignBooleanSettingValue } from \"@/services/settings.service\";\nimport TermsAndConditionsContent from \"./TermsAndConditionsContent.vue\";\nimport { onMounted, ref } from \"vue\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { registerAsStateConsumer } from \"@/services/stateProcessor.service\";\n\ninterface Props {\n textColor: \"campaign-theme\" | \"inherit\";\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'TermsAndConditions',\n props: {\n textColor: { default: \"inherit\" }\n },\n setup(__props: any) {\n\n\n\nconst termsMustNotCollapse = getCampaignBooleanSettingValue(\n \"termsExpanding\"\n) as boolean;\nlet termsExpanded = ref(termsMustNotCollapse);\n\nfunction toggleExpand() {\n if (!termsMustNotCollapse) {\n termsExpanded.value = !termsExpanded.value;\n }\n}\n\nonMounted(() =>\n registerAsStateConsumer({\n serializer: ({ resolve }) => {\n resolve({\n termsAndConditions: {\n termsExpanded: termsExpanded.value,\n },\n });\n },\n normalizer: ({ resolve, state }) => {\n const thisState = state[\"termsAndConditions\"];\n\n if (thisState) {\n termsExpanded = thisState[\"termsExpanded\"];\n }\n\n resolve();\n },\n })\n);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"details\", {\n open: _unref(termsExpanded),\n onToggle: toggleExpand,\n class: _normalizeClass({ 'text-text-color': _ctx.textColor === 'campaign-theme' })\n }, [\n _createElementVNode(\"summary\", {\n class: _normalizeClass([\"inline-block\", { 'pointer-events-none': _unref(termsMustNotCollapse) }]),\n tabindex: _unref(termsMustNotCollapse) ? -1 : 0\n }, [\n (!_unref(termsMustNotCollapse))\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_4, _toDisplayString(_unref($ttt)(\"global.txt_termsAndConditions\")), 1))\n : _createCommentVNode(\"\", true),\n (_unref(termsMustNotCollapse))\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_5, _toDisplayString(_unref($ttt)(\"global.txt_termsAndConditions\")), 1))\n : _createCommentVNode(\"\", true)\n ], 10, _hoisted_3),\n _createElementVNode(\"section\", _hoisted_6, [\n _createVNode(TermsAndConditionsContent, { \"text-color\": _ctx.textColor }, null, 8, [\"text-color\"])\n ])\n ], 42, _hoisted_2)\n ]))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./TermsAndConditions.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TermsAndConditions.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TermsAndConditions.vue?vue&type=style&index=0&id=244df1e2&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-244df1e2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createVNode as _createVNode, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = { class: \"tablet:flex justify-between items-center p-20 bg-header-text-color/[0.03]\" }\nconst _hoisted_2 = { class: \"text-left text-2xl font-medium\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = {\n key: 0,\n class: \"text-left block mt-10 tablet:mt-0\"\n}\nconst _hoisted_6 = { class: \"text-lg\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"relative\"\n}\nconst _hoisted_8 = [\"src\"]\nconst _hoisted_9 = [\"src\"]\nconst _hoisted_10 = {\n key: 2,\n class: \"bg-cover bg-bottom h-auto pb-[50%]\"\n}\nconst _hoisted_11 = {\n key: 3,\n class: \"absolute text-black flex flex-grow justify-around left-0 top-1/2 -translate-y-1/2 w-full\"\n}\nconst _hoisted_12 = [\"src\"]\nconst _hoisted_13 = [\"src\"]\n\nimport {\n SportsMatchVotingPublicData,\n SportsTeam,\n} from \"@/models/campaign/sportsMatchVoting/sportsMatchVotingPublicData._model\";\nimport { getSingleFileUrl } from \"@/services/files.service\";\nimport { PUBLIC_DATA } from \"@/services/publicData.service\";\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"@/services/settings.service\";\nimport { formatDate } from \"@/utils/dateFormatter.helper\";\nimport { faCalendarAlt } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { translateObject } from \"@/services/i18n.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SportsMatchHeader',\n setup(__props) {\n\nconst publicData = PUBLIC_DATA as SportsMatchVotingPublicData;\n\nconst preselectedSportsHeaderImageName = getCampaignSettingValue(\n \"sportsHeaderImageUrl\"\n)\n ? getCampaignSettingValue(\"sportsHeaderImageUrl\")?.split(\"/\")[4] // file name comes with path to TLA's asset folder instead of XLA's\n : null;\n\nconst customSportsHeaderImageUrl = getCampaignSettingValue(\n \"customSportsHeaderImage\"\n)\n ? getSingleFileUrl(getCampaignSettingValue(\"customSportsHeaderImage\") ?? \"\")\n : null;\n\nconst showTeamsLogo = getCampaignBooleanSettingValue(\"showTeamLogos\");\nconst showLogosWrapper =\n showTeamsLogo ||\n preselectedSportsHeaderImageName ||\n customSportsHeaderImageUrl;\n\nconst homeTeamId =\n publicData.campaignSportsMatches.campaignSportsMatches[0].homeSportsTeamId;\nconst awayTeamId =\n publicData.campaignSportsMatches.campaignSportsMatches[0].awaySportsTeamId;\n\nconst homeTeam = publicData.campaignSportsMatches.linked.sportsTeams.find(\n (team: SportsTeam) => team.id === homeTeamId.toString()\n);\nconst awayTeam = publicData.campaignSportsMatches.linked.sportsTeams.find(\n (team: SportsTeam) => team.id === awayTeamId.toString()\n);\n\nconst canShowMatchDate = Boolean(\n publicData.campaignSportsMatches.campaignSportsMatches[0].startDateTime\n);\n\nconst matchDateTime = new Date(\n publicData.campaignSportsMatches.campaignSportsMatches[0].startDateTime\n);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"section\", _hoisted_1, [\n _createElementVNode(\"span\", _hoisted_2, [\n (_unref(homeTeamId) && _unref(homeTeam))\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_3, _toDisplayString(_unref(translateObject)(_unref(homeTeam), \"name\", \"sportsTeam\")), 1))\n : _createCommentVNode(\"\", true),\n (_unref(awayTeamId) && _unref(awayTeam))\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_4, _toDisplayString(_unref(translateObject)(_unref(awayTeam), \"name\", \"sportsTeam\")), 1))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(canShowMatchDate))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"mr-10 fa fa-lg fa-calendar-alt text-header-text-color opacity-30\",\n icon: _unref(faCalendarAlt)\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_unref(formatDate)(_unref(matchDateTime), \"L LT\")), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(showLogosWrapper))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n (_unref(preselectedSportsHeaderImageName) && !_unref(customSportsHeaderImageUrl))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: \n require(`@/assets/campaigns/sportsMatchHeader/${_unref(preselectedSportsHeaderImageName)}`)\n ,\n alt: \"Sports Header Background Image\"\n }, null, 8, _hoisted_8))\n : _createCommentVNode(\"\", true),\n (_unref(customSportsHeaderImageUrl) && !_unref(preselectedSportsHeaderImageName))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n src: _unref(customSportsHeaderImageUrl),\n class: \"w-full\",\n alt: \"Sports Header Background Image\"\n }, null, 8, _hoisted_9))\n : _createCommentVNode(\"\", true),\n (\n _unref(showTeamsLogo) &&\n !_unref(customSportsHeaderImageUrl) &&\n !_unref(preselectedSportsHeaderImageName)\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10))\n : _createCommentVNode(\"\", true),\n (_unref(showTeamsLogo))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n (_unref(homeTeam) && _unref(homeTeam).logoFileMetaDataId)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"w-[160px] h-[160px]\",\n src: _unref(getSingleFileUrl)(_unref(homeTeam).logoFileMetaDataId.toString()),\n alt: \"Home team logo\"\n }, null, 8, _hoisted_12))\n : _createCommentVNode(\"\", true),\n (_unref(awayTeam) && _unref(awayTeam).logoFileMetaDataId)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n class: \"w-[160px] h-[160px]\",\n src: _unref(getSingleFileUrl)(_unref(awayTeam).logoFileMetaDataId.toString()),\n alt: \"Away team logo\"\n }, null, 8, _hoisted_13))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","\n\n\n","import script from \"./SportsMatchHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SportsMatchHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./CampaignHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CampaignHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"xla-sponsor-logo max-w-[75%] mx-auto mb-30 mobileXl:mb-40\"\n}\nconst _hoisted_2 = [\"href\"]\nconst _hoisted_3 = [\"src\", \"alt\"]\nconst _hoisted_4 = [\"src\", \"alt\"]\n\nimport { getSingleFileUrl } from \"@/services/files.service\";\nimport { getCampaignSettingValue } from \"@/services/settings.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SponsorLogo',\n setup(__props) {\n\nconst sponsorLogoImageSrc = getSingleFileUrl(\n getCampaignSettingValue(\"sponsorLogoImage\") as string\n);\n\nconst sponsorLogoRedirectUrl = getCampaignSettingValue(\n \"sponsorLogoUrl\"\n) as string;\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(sponsorLogoImageSrc))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(sponsorLogoRedirectUrl))\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n href: _unref(sponsorLogoRedirectUrl),\n target: \"_blank\"\n }, [\n _createElementVNode(\"img\", {\n class: \"mt-0 mr-auto inline-block\",\n src: _unref(sponsorLogoImageSrc),\n alt: _unref($ttt)('global.alt_sponsorLogo')\n }, null, 8, _hoisted_3)\n ], 8, _hoisted_2))\n : _createCommentVNode(\"\", true),\n (!_unref(sponsorLogoRedirectUrl))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n class: \"mt-0 mr-auto inline-block\",\n src: _unref(sponsorLogoImageSrc),\n alt: _unref($ttt)('global.alt_sponsorLogo')\n }, null, 8, _hoisted_4))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","\n\n\n","import script from \"./SponsorLogo.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SponsorLogo.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"xla-facebook-share pb-40 flex items-center justify-center\"\n}\nconst _hoisted_2 = { class: \"mr-10 inline-block bg-black rounded-[4px]\" }\nconst _hoisted_3 = { class: \"text-sm tracking-[0.4px]\" }\n\nimport { getCampaignBooleanSettingValue } from \"@/services/settings.service\";\nimport { faFacebook } from \"@fortawesome/free-brands-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { shareCampaign } from \"@/mixins/sharing.mixin\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'FacebookShare',\n setup(__props) {\n\nconst canShowFacebookShare =\n getCampaignBooleanSettingValue(\"showShareButton\") &&\n campaignApp?.status === \"running\";\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(canShowFacebookShare))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"span\", _hoisted_2, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = () => _unref(shareCampaign)()),\n class: \"py-[6px] px-[8px] leading-none items-center rounded-[4px] flex bg-facebook text-detail-bg text-xs hover:bg-facebook/80 active:outline-2 active:outline active:-outline-offset-2 active:outline-black\"\n }, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fab fa-facebook mr-[8px] text-base\",\n icon: _unref(faFacebook)\n }, null, 8, [\"icon\"]),\n _createTextVNode(\" \" + _toDisplayString(_unref($ttt)(\"global.txt_facebookShare\")), 1)\n ])\n ]),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_unref($ttt)(\"campaign.facebookShare.txt_campaignShareDescription\")), 1)\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","\n\n\n\n","import script from \"./FacebookShare.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FacebookShare.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FacebookShare.vue?vue&type=style&index=0&id=1370fb0e&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1370fb0e\"]])\n\nexport default __exports__","import { PrizeAssignment } from \"@/models/prizeAssignment/prizeAssignment.model\";\nimport { getSingleFileUrl } from \"./files.service\";\nimport { PUBLIC_DATA } from \"./publicData.service\";\nimport { DeepReadonly } from \"vue\";\nimport { Prize } from \"@/models/prizeAssignment/prize.model\";\nimport { translateObject } from \"./i18n.service\";\n\nexport function getPrizeAssignments(): DeepReadonly[] {\n return PUBLIC_DATA.prizeAssignments.prizeAssignments.map((pa) => {\n const prize = PUBLIC_DATA.prizeAssignments.linked.prizes.find(\n (prize) => prize.id === pa.links.prize\n );\n\n const translatedPrize: Prize = {\n ...(prize as Prize),\n name: translateObject(prize, \"name\", \"prize\"),\n description: translateObject(prize, \"description\", \"prize\"),\n };\n\n return {\n id: pa.id,\n createdDateTime: pa.createdDateTime,\n createdById: pa.createdById,\n tenantId: pa.tenantId,\n objectId: pa.objectId,\n objectType: pa.objectType,\n assignedQuantity: pa.assignedQuantity,\n campaignAppGuid: pa.campaignAppGuid,\n prizeId: pa.prizeId,\n prize: translatedPrize,\n };\n });\n}\n\nexport function getPrizeAssignmentImageUrl(\n prizeAssignment: PrizeAssignment\n): string {\n return prizeAssignment.prize?.fileMetaDataId\n ? getSingleFileUrl(String(prizeAssignment.prize.fileMetaDataId))\n : require(\"@/assets/images/image-placeholder-300x160.png\");\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeStyle as _normalizeStyle, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"xla-prizes-carousel py-40\"\n}\nconst _hoisted_2 = { class: \"mr-40\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"flex flex-col relative py-30 items-center\"\n}\nconst _hoisted_4 = [\"onClick\"]\nconst _hoisted_5 = { class: \"border border-solid rounded-sca border-header-text-color/20 p-20 mt-10 mobileXl:mt-0 text-left\" }\nconst _hoisted_6 = { class: \"mb-10 font-bold\" }\nconst _hoisted_7 = [\"innerHTML\"]\nconst _hoisted_8 = { class: \"flex\" }\nconst _hoisted_9 = [\"innerHTML\"]\nconst _hoisted_10 = [\"onClick\"]\nconst _hoisted_11 = [\"innerHTML\"]\nconst _hoisted_12 = {\n key: 1,\n class: \"flex flex-col relative py-30 items-center\"\n}\nconst _hoisted_13 = { class: \"w-full\" }\nconst _hoisted_14 = { class: \"flex bg-header-text-color/[0.07] rounded-[4px] mt-60 mx-20 mb-20\" }\nconst _hoisted_15 = { class: \"p-20 text-xs carousel-prev active:shadow-inner\" }\nconst _hoisted_16 = { class: \"w-full flex items-center justify-center\" }\nconst _hoisted_17 = [\"innerHTML\"]\nconst _hoisted_18 = { class: \"p-20 text-xs carousel-next active:shadow-inner\" }\nconst _hoisted_19 = [\"onClick\"]\nconst _hoisted_20 = {\n key: 0,\n class: \"absolute top-[5%] left-[5%] py-5 px-10 mr-[8px] rounded-sm text-detail-bg text-[14px] tracking-[0.38px] font-bold backdrop-blur-sm bg-black/25 shadow-sm\"\n}\nconst _hoisted_21 = [\"innerHTML\"]\nconst _hoisted_22 = [\"innerHTML\"]\nconst _hoisted_23 = { class: \"w-full flex justify-center items-center overscroll-contain overflow-hidden\" }\nconst _hoisted_24 = [\"src\"]\n\nimport { SwiperSlide, Swiper } from \"swiper/vue\";\nimport { Pagination, Autoplay, Navigation } from \"swiper/modules\";\nimport { PaginationOptions } from \"swiper/types\";\nimport \"swiper/scss\";\nimport \"swiper/scss/pagination\";\nimport \"swiper/scss/navigation\";\nimport \"swiper/scss/autoplay\";\nimport { getCampaignBooleanSettingValue } from \"@/services/settings.service\";\nimport {\n faAngleRight,\n faAngleLeft,\n faGift,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport {\n getPrizeAssignments,\n getPrizeAssignmentImageUrl,\n} from \"@/services/prizeAssignments.service\";\nimport { PrizeAssignment } from \"@/models/prizeAssignment/prizeAssignment.model\";\nimport { onMounted, ref, watch } from \"vue\";\nimport FullscreenModal from \"@/components/FullscreenModal.vue\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\nimport { registerAsStateConsumer } from \"@/services/stateProcessor.service\";\n\ninterface DisplayablePrize {\n descriptionExpanded: boolean;\n isDescriptionExpandable: boolean;\n prizeAssignment: PrizeAssignment;\n}\n\nconst DESCRIPTION_CHECK_INTERVAL_TIME = 1000 * 0.5;\n\nconst SLIDES_PER_VIEW = 2;\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'PrizesCarousel',\n setup(__props) {\n\nconst prizeImagePreview = ref | null>(\n null\n);\nconst prizeImageURL = ref(\"\");\nconst carouselPrizeDescriptionEl = ref(null);\nconst carouselPrizeDescriptionWrapperEl = ref(null);\nconst lightViewPrizeDescriptions = ref(null); // there should be two elements max in light view\n\nconst modules = [Pagination, Autoplay, Navigation];\n\nconst autoplay = {\n delay: 2500,\n};\n\n// sorry, the way this Component was written before needs 'mutable' version\nlet displayablePrizes = ref(\n (getPrizeAssignments() as unknown as PrizeAssignment[]).map((pa) => {\n return {\n prizeAssignment: pa,\n descriptionExpanded: false,\n isDescriptionExpandable: false,\n };\n })\n);\n\nlet currentDisplayablePrize = ref(displayablePrizes.value[0]);\n\nconst canLoop = displayablePrizes.value.length >= SLIDES_PER_VIEW * 2;\n\nconst pagination: PaginationOptions = {\n clickable: !canLoop, // when loop is on, then pagination bullets gets buggy\n dynamicBullets: canLoop,\n renderBullet: function (index: number, className: string) {\n return '' + \"\";\n },\n};\n\nconst navigation = {\n nextEl: \".carousel-next\",\n prevEl: \".carousel-prev\",\n};\n\nconst openPrizesPanelByDefault = getCampaignBooleanSettingValue(\n \"openPrizesPanelByDefault\"\n);\nconst prizesPanelOpened = ref(openPrizesPanelByDefault);\n\nconst showPrizesPanel = getCampaignBooleanSettingValue(\"showPrizesPanel\");\n\nfunction togglePrizesPanel() {\n prizesPanelOpened.value = !prizesPanelOpened.value;\n}\n\nfunction onIndexChange(event: typeof Swiper) {\n currentDisplayablePrize.value = displayablePrizes.value[event.realIndex];\n}\n\nwatch(currentDisplayablePrize, checkCarouselDescriptionSize);\n\nfunction expandPrizeDescription(\n displayablePrize: DisplayablePrize | undefined\n) {\n if (!displayablePrize) {\n return;\n }\n displayablePrize.descriptionExpanded = true;\n}\n\nfunction openImagePreview(prizeAssignment: PrizeAssignment) {\n prizeImageURL.value = getPrizeAssignmentImageUrl(prizeAssignment);\n prizeImagePreview.value?.openModal();\n}\n\nonMounted(() => {\n const descriptionSizeChecker = setInterval(() => {\n if (\n !isLightView() ||\n !lightViewPrizeDescriptions.value ||\n lightViewPrizeDescriptions.value.length < 0\n ) {\n checkCarouselDescriptionSize();\n } else {\n lightViewPrizeDescriptions.value.forEach(\n (el: HTMLSpanElement, index: number) => {\n displayablePrizes.value[index].isDescriptionExpandable =\n el?.offsetHeight < el?.scrollHeight;\n\n if (el.offsetHeight > 0) {\n clearInterval(descriptionSizeChecker);\n }\n }\n );\n }\n }, DESCRIPTION_CHECK_INTERVAL_TIME);\n\n registerAsStateConsumer({\n serializer: ({ resolve }) => {\n resolve({\n prizesCarousel: {\n prizesPanelOpened: prizesPanelOpened.value,\n },\n });\n },\n normalizer: ({ resolve, state }) => {\n const thisState = state[\"prizesCarousel\"];\n\n if (thisState) {\n prizesPanelOpened.value = thisState[\"prizesPanelOpened\"];\n }\n\n resolve();\n },\n });\n});\n\nfunction isLightView() {\n return displayablePrizes.value.length <= 2;\n}\n\nfunction checkCarouselDescriptionSize() {\n {\n if (\n carouselPrizeDescriptionWrapperEl?.value &&\n carouselPrizeDescriptionEl?.value\n ) {\n if (currentDisplayablePrize.value?.prizeAssignment.prize?.description) {\n carouselPrizeDescriptionEl.value.innerHTML =\n currentDisplayablePrize.value?.prizeAssignment.prize.description;\n }\n\n currentDisplayablePrize.value.isDescriptionExpandable =\n carouselPrizeDescriptionWrapperEl?.value.offsetHeight <\n carouselPrizeDescriptionWrapperEl?.value.scrollHeight;\n }\n }\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(showPrizesPanel) && _unref(displayablePrizes).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"button\", {\n class: \"py-15 px-20 border-solid border-2 border-header-text-color rounded-[4px] tracking-[.8px]\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (togglePrizesPanel()))\n }, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(_unref($ttt)(`campaign.btn_checkMainPrizes`, {\n count: _unref(displayablePrizes).length,\n })), 1),\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fa fa-lg fa-angle-right text-header-text-color rotate-90\",\n icon: _unref(faAngleRight)\n }, null, 8, [\"icon\"])\n ])\n ]),\n _createElementVNode(\"div\", null, [\n (_unref(showPrizesPanel) && prizesPanelOpened.value)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (isLightView())\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(displayablePrizes), (displayablePrize, iter) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: iter,\n class: \"p-20 w-full block mobileXl:grid mobileXl:grid-cols-2 gap-20\"\n }, [\n _createElementVNode(\"div\", {\n onClick: ($event: any) => (openImagePreview(displayablePrize.prizeAssignment)),\n class: \"xla-prize-image w-full aspect-video bg-no-repeat bg-center bg-cover rounded-[4px] overflow-hidden hover:cursor-pointer\",\n style: _normalizeStyle(`background-image: url(${_unref(getPrizeAssignmentImageUrl)(\n displayablePrize.prizeAssignment\n )});`)\n }, null, 12, _hoisted_4),\n _createElementVNode(\"section\", _hoisted_5, [\n _createElementVNode(\"h2\", _hoisted_6, [\n _createElementVNode(\"span\", {\n innerHTML: displayablePrize.prizeAssignment.prize?.name\n }, null, 8, _hoisted_7),\n _cache[3] || (_cache[3] = _createElementVNode(\"span\", { class: \"px-5\" }, \"x\", -1)),\n _createElementVNode(\"span\", null, _toDisplayString(displayablePrize.prizeAssignment.assignedQuantity), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (!displayablePrize.descriptionExpanded)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n ref_for: true,\n ref_key: \"lightViewPrizeDescriptions\",\n ref: lightViewPrizeDescriptions,\n class: \"relative text-base opacity-70 mt-20 text-ellipsis overflow-hidden break-words h-[78px] leading-[26px] tracking-[0.4px] w-4/5\"\n }, [\n _createElementVNode(\"span\", {\n innerHTML: \n displayablePrize.prizeAssignment.prize?.description\n \n }, null, 8, _hoisted_9),\n (\n displayablePrize.isDescriptionExpandable &&\n !displayablePrize.descriptionExpanded &&\n displayablePrize.prizeAssignment.prize?.description\n )\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: ($event: any) => (expandPrizeDescription(displayablePrize)),\n class: \"underline absolute bottom-0 right-0 hover:text-header-text-color/80 pl-80 bg-gradient-to-r from-transparent to-header-background-color to-50%\"\n }, _toDisplayString(_unref($ttt)(\"global.txt_seeMore\")), 9, _hoisted_10))\n : _createCommentVNode(\"\", true)\n ], 512))\n : _createCommentVNode(\"\", true),\n (displayablePrize.descriptionExpanded)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: \"text-base opacity-70 mt-20 text-ellipsis overflow-hidden break-words leading-[26px] tracking-[0.4px] w-4/5\",\n innerHTML: displayablePrize.prizeAssignment.prize?.description\n }, null, 8, _hoisted_11))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n (!isLightView())\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", _hoisted_15, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fa fa-lg fa-angle-left text-header-text-color\",\n icon: _unref(faAngleLeft)\n }, null, 8, [\"icon\"])\n ]),\n _createElementVNode(\"span\", _hoisted_16, [\n _createElementVNode(\"span\", {\n innerHTML: \n _unref(currentDisplayablePrize)?.prizeAssignment.prize?.name\n \n }, null, 8, _hoisted_17),\n _cache[4] || (_cache[4] = _createElementVNode(\"span\", { class: \"px-5\" }, \"x\", -1)),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(currentDisplayablePrize)?.prizeAssignment.assignedQuantity), 1)\n ]),\n _createElementVNode(\"button\", _hoisted_18, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fa fa-lg fa-angle-right text-header-text-color\",\n icon: _unref(faAngleRight)\n }, null, 8, [\"icon\"])\n ])\n ])\n ]),\n _createVNode(_unref(Swiper), {\n modules: modules,\n loop: canLoop,\n rewind: !canLoop,\n pagination: pagination,\n autoplay: autoplay,\n navigation: navigation,\n class: \"prizes-carousel\",\n centeredSlides: true,\n \"slides-offset-before\": 0,\n \"auto-height\": false,\n \"space-between\": 20,\n \"slides-per-view\": SLIDES_PER_VIEW,\n onActiveIndexChange: _cache[1] || (_cache[1] = ($event: any) => (onIndexChange($event as any)))\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(displayablePrizes), (displayablePrize, iter) => {\n return (_openBlock(), _createBlock(_unref(SwiperSlide), { key: iter }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n onClick: ($event: any) => (openImagePreview(displayablePrize.prizeAssignment)),\n class: \"pb-40 bg-header-background-color\"\n }, [\n (\n _unref(currentDisplayablePrize)?.prizeAssignment.id ===\n displayablePrize.prizeAssignment.id\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_20, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fas fa-gift\",\n icon: _unref(faGift)\n }, null, 8, [\"icon\"]),\n _createTextVNode(\" \" + _toDisplayString(displayablePrize.prizeAssignment.assignedQuantity), 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: \"xla-prize-image aspect-video bg-no-repeat bg-center bg-cover rounded-[4px] overflow-hidden\",\n style: _normalizeStyle(`background-image: url(${_unref(getPrizeAssignmentImageUrl)(\n displayablePrize.prizeAssignment\n )});`)\n }, null, 4)\n ], 8, _hoisted_19)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"rewind\"]),\n (!_unref(currentDisplayablePrize).descriptionExpanded)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n ref_key: \"carouselPrizeDescriptionWrapperEl\",\n ref: carouselPrizeDescriptionWrapperEl,\n class: \"relative text-base opacity-70 mt-20 text-ellipsis overflow-hidden break-words h-[78px] leading-[26px] tracking-[0.4px] text-center w-4/5\"\n }, [\n _createElementVNode(\"span\", {\n ref_key: \"carouselPrizeDescriptionEl\",\n ref: carouselPrizeDescriptionEl,\n innerHTML: \n _unref(currentDisplayablePrize)?.prizeAssignment.prize?.description\n \n }, null, 8, _hoisted_21),\n (\n _unref(currentDisplayablePrize).isDescriptionExpandable &&\n !_unref(currentDisplayablePrize).descriptionExpanded &&\n _unref(currentDisplayablePrize)?.prizeAssignment.prize?.description\n )\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[2] || (_cache[2] = ($event: any) => (expandPrizeDescription(_unref(currentDisplayablePrize)))),\n class: \"underline absolute bottom-0 right-0 hover:text-header-text-color/80 pl-80 bg-gradient-to-r from-transparent to-header-background-color to-50%\"\n }, _toDisplayString(_unref($ttt)(\"global.txt_seeMore\")), 1))\n : _createCommentVNode(\"\", true)\n ], 512))\n : _createCommentVNode(\"\", true),\n (_unref(currentDisplayablePrize).descriptionExpanded)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: \"text-base opacity-70 mt-20 text-ellipsis overflow-hidden break-words leading-[26px] tracking-[0.4px] text-center w-4/5\",\n innerHTML: \n _unref(currentDisplayablePrize)?.prizeAssignment.prize?.description\n \n }, null, 8, _hoisted_22))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(FullscreenModal, {\n ref_key: \"prizeImagePreview\",\n ref: prizeImagePreview\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_23, [\n _createElementVNode(\"img\", {\n class: \"w-10/12 mobileXl:w-1/3 py-80\",\n src: prizeImageURL.value\n }, null, 8, _hoisted_24)\n ])\n ]),\n _: 1\n }, 512)\n ], 64))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","\n\n\n\n\n","import script from \"./PrizesCarousel.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PrizesCarousel.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PrizesCarousel.vue?vue&type=style&index=0&id=edaba1d6&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-edaba1d6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"xla-header-content mt-80 mb-40 text-center\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"text-3xl font-bold w-[70%] mx-auto mb-40 text-center leading-[1.25] tracking-[0.8px]\"\n}\nconst _hoisted_3 = [\"innerHTML\"]\n\nimport SponsorLogo from \"@/components/header/common/SponsorLogo.vue\";\nimport FacebookShare from \"@/components/header/common/FacebookShare.vue\";\nimport PrizesCarousel from \"@/components/PrizesCarousel.vue\";\nimport { translateCampaignSetting } from \"@/services/i18n.service\";\nimport {\n getCampaignBooleanSettingValue,\n getCampaignSettingValue,\n} from \"@/services/settings.service\";\nimport { campaignApp } from \"@/services/campaignApp.service\";\nimport { getSingleFileUrl } from \"@/services/files.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'HeaderContent',\n setup(__props) {\n\nconst campaignTitle = translateCampaignSetting(\"externalTitle\");\nconst introduction = translateCampaignSetting(\"externalDescription\");\n\nconst showPrizesPanel = getCampaignBooleanSettingValue(\"showPrizesPanel\");\nconst canShowFacebookShare =\n getCampaignBooleanSettingValue(\"showShareButton\") &&\n campaignApp?.status === \"running\";\nconst sponsorLogoImageSrc = getSingleFileUrl(\n getCampaignSettingValue(\"sponsorLogoImage\") as string\n);\n\nconst canShowHeaderContent =\n campaignTitle ||\n introduction ||\n showPrizesPanel ||\n canShowFacebookShare ||\n sponsorLogoImageSrc;\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(canShowHeaderContent))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(campaignTitle))\n ? (_openBlock(), _createElementBlock(\"h1\", _hoisted_2, _toDisplayString(_unref(campaignTitle)), 1))\n : _createCommentVNode(\"\", true),\n (_unref(introduction))\n ? (_openBlock(), _createElementBlock(\"section\", {\n key: 1,\n innerHTML: _unref(introduction),\n class: \"no-tailwindcss-base text-header-text-color w-[80%] mx-auto mb-40 text-center break-words text-base leading-[1.5] tracking-[0.4px]\"\n }, null, 8, _hoisted_3))\n : _createCommentVNode(\"\", true),\n _createVNode(SponsorLogo),\n _createVNode(FacebookShare),\n _createVNode(PrizesCarousel)\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","\n\n\n","import script from \"./HeaderContent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./HeaderContent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"items-center bg-header-background-color flex border-b border-solid border-header-text-color/10 justify-between h-40 px-20\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"flex items-center overflow-x-auto\"\n}\nconst _hoisted_3 = [\"onClick\"]\nconst _hoisted_4 = [\"v-if\", \"src\"]\nconst _hoisted_5 = {\n key: 1,\n class: \"flex items-center overflow-x-auto\"\n}\nconst _hoisted_6 = [\"onClick\"]\nconst _hoisted_7 = { class: \"h-20 text-sm\" }\n\nimport { onMounted, ref } from \"vue\";\nimport {\n getLanguagesUsedByCampaign,\n switchLanguageTo,\n} from \"@/services/i18n.service\";\nimport { LanguageMappings } from \"@/common/languages.dictionary\";\nimport { Language } from \"@/models/language/language.model\";\nimport { faGlobe } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { getCampaignBooleanSettingValue } from \"@/services/settings.service\";\nimport { useI18n } from \"vue-i18n\";\n\ntype SwitcherType = \"flags\" | \"languageCodes\";\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'LanguageSwitcher',\n setup(__props) {\n\nconst { locale } = useI18n({ useScope: \"global\" });\n\nlet langs = ref([]);\n\nconst switcherType = ref(\n getCampaignBooleanSettingValue(\"showLanguageFlag\") ? \"flags\" : \"languageCodes\"\n);\n\nconst selectedLanguage = ref(locale);\n\nonMounted(async () => {\n langs.value = await getLanguagesUsedByCampaign();\n});\nasync function switchLanguage(lang: Language) {\n switchLanguageTo(lang.languageCode);\n}\n\nfunction mapCountryCodeFromLanguage(language: Language): string | undefined {\n return LanguageMappings.languageToCountryCode.find(\n (c) => c.key === language.languageCode\n )?.value;\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(langs) && _unref(langs).length > 1)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_unref(FontAwesomeIcon), {\n class: \"fa fa-lg fa-globe text-header-text-color opacity-30\",\n icon: _unref(faGlobe)\n }, null, 8, [\"icon\"]),\n (switcherType.value === 'flags')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(langs), (lang) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n key: `locale=${lang.languageCode}`,\n onClick: ($event: any) => (switchLanguage(lang)),\n class: _normalizeClass([{\n 'bg-header-text-color/30': selectedLanguage.value === lang.languageCode,\n }, \"rounded-sm px-[7px] py-[3px] ml-10 uppercase hover:cursor-pointer hover:bg-header-text-color/30 justify-center items-center shrink-0\"])\n }, [\n _createElementVNode(\"img\", {\n class: \"h-20\",\n \"v-if\": mapCountryCodeFromLanguage(lang),\n src: \n require(`@/assets/images/flags/${mapCountryCodeFromLanguage(\n lang\n )?.toUpperCase()}.png`)\n \n }, null, 8, _hoisted_4)\n ], 10, _hoisted_3))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n (switcherType.value === 'languageCodes')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(langs), (lang) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n key: `locale=${lang.languageCode}`,\n onClick: ($event: any) => (switchLanguage(lang)),\n class: _normalizeClass([{\n 'opacity-50': selectedLanguage.value !== lang.languageCode,\n }, \"border border-black/25 border-solid rounded-sm px-[7px] py-[3px] ml-10 uppercase hover:cursor-pointer hover:opacity-100 justify-center items-center flex\"])\n }, [\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(lang.twoLetterLanguageCode), 1)\n ], 10, _hoisted_6))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","\n\n\n","import script from \"./LanguageSwitcher.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LanguageSwitcher.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./LoginBar.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LoginBar.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = [\"href\"]\nconst _hoisted_2 = [\"src\", \"alt\"]\nconst _hoisted_3 = [\"src\", \"alt\"]\n\nimport { getCampaignSettingValue } from \"@/services/settings.service\";\nimport { getSingleFileUrl } from \"@/services/files.service\";\nimport { getCampaignBooleanSettingValue } from \"@/services/settings.service\";\nimport { $ttt } from \"@/mixins/i18n.mixin\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'TopBanner',\n setup(__props) {\n\nconst topBannerImageUrl = getSingleFileUrl(\n getCampaignSettingValue(\"topBannerImage\") as string\n);\nconst topBannerRedirectUrl = getCampaignSettingValue(\"topBannerUrl\") as\n | string\n | undefined;\n\nconst isSportsMatch =\n getCampaignBooleanSettingValue(\"hasSportsHeader\") && !!topBannerImageUrl;\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(topBannerImageUrl))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"xla-top-banner mt-0 mr-auto mb-15\", {\n 'is-sports-match': _unref(isSportsMatch),\n }])\n }, [\n (_unref(topBannerRedirectUrl))\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n href: _unref(topBannerRedirectUrl),\n target: \"_blank\"\n }, [\n _createElementVNode(\"img\", {\n class: \"w-full\",\n src: _unref(topBannerImageUrl),\n alt: _unref($ttt)('global.alt_campaignBanner')\n }, null, 8, _hoisted_2)\n ], 8, _hoisted_1))\n : _createCommentVNode(\"\", true),\n (!_unref(topBannerRedirectUrl))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 1,\n class: \"w-full\",\n src: _unref(topBannerImageUrl),\n alt: _unref($ttt)('global.alt_campaignBanner')\n }, null, 8, _hoisted_3))\n : _createCommentVNode(\"\", true)\n ], 2))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","\n\n\n\n\n","import script from \"./TopBanner.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TopBanner.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TopBanner.vue?vue&type=style&index=0&id=d6006f26&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode } from \"vue\"\nimport _imports_0 from '@/assets/templates/superettan/images/obos-logo-white.png'\n\n\nconst _hoisted_1 = { class: \"fd-superettan-top-banner\" }\nconst _hoisted_2 = { class: \"content flex tablet:flex-row flex-col items-center justify-center py-20 text-[24px] text-[white] bg-[var(--superettan-secondary-color)]\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"w-full tablet:mb-0 mb-10 text-sm mobileSm:text-base mobileXl:text-2xl font-['Gordita_Medium']\"\n}\n\nimport { computed } from \"vue\";\nimport TopBanner from \"../header/common/TopBanner.vue\";\nimport { hasSportsHeaderWithImage } from \"@/services/sports/campaignSportsHeader.service\";\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'SuperettanBanner',\n props: {\n isCompact: Boolean,\n},\n setup(__props) {\n\nconst hasTopBannerFirst = computed(() => !hasSportsHeaderWithImage.value);\n\nconst props = __props;\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (hasTopBannerFirst.value)\n ? (_openBlock(), _createBlock(TopBanner, {\n key: 0,\n class: \"!mb-0\"\n }))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n (!props.isCompact)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, \" Tävlingen presenteras av nya bostäder från \"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"img\", {\n class: _normalizeClass([\"max-h-[30px] mobileXl:max-h-[40px] mr-40\", { 'ml-15': !__props.isCompact }]),\n src: _imports_0\n }, null, 2)\n ]),\n (!hasTopBannerFirst.value)\n ? (_openBlock(), _createBlock(TopBanner, {\n key: 1,\n class: \"!mb-0\"\n }))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","\n\n\n\n\n","import script from \"./SuperettanBanner.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SuperettanBanner.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","var map = {\n\t\"./football1.jpg\": 92288,\n\t\"./football2.jpg\": 75279,\n\t\"./football3.jpg\": 98898,\n\t\"./handball1.jpg\": 29017,\n\t\"./iceHockey1.jpg\": 56113,\n\t\"./iceHockey2.jpg\": 28358\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 89976;","var map = {\n\t\"./AD.png\": 25856,\n\t\"./AE.png\": 20329,\n\t\"./AF.png\": 89362,\n\t\"./AG.png\": 4187,\n\t\"./AH.png\": 24300,\n\t\"./AI.png\": 60213,\n\t\"./AK.png\": 26951,\n\t\"./AL.png\": 47336,\n\t\"./AM.png\": 57553,\n\t\"./AN.png\": 36442,\n\t\"./AO.png\": 84195,\n\t\"./AQ.png\": 477,\n\t\"./AR.png\": 19270,\n\t\"./AS.png\": 815,\n\t\"./AT.png\": 15440,\n\t\"./AU.png\": 21689,\n\t\"./AW.png\": 29259,\n\t\"./AX.png\": 24220,\n\t\"./AZ.png\": 32302,\n\t\"./BA.png\": 56272,\n\t\"./BB.png\": 21675,\n\t\"./BD.png\": 67165,\n\t\"./BE.png\": 46036,\n\t\"./BF.png\": 68495,\n\t\"./BG.png\": 83398,\n\t\"./BH.png\": 39553,\n\t\"./BI.png\": 66840,\n\t\"./BJ.png\": 41331,\n\t\"./BL.png\": 75237,\n\t\"./BM.png\": 41372,\n\t\"./BN.png\": 30103,\n\t\"./BO.png\": 56462,\n\t\"./BQ.png\": 98432,\n\t\"./BR.png\": 95995,\n\t\"./BS.png\": 74450,\n\t\"./BT.png\": 4429,\n\t\"./BV.png\": 26463,\n\t\"./BW.png\": 72662,\n\t\"./BY.png\": 63048,\n\t\"./BZ.png\": 25027,\n\t\"./CA.png\": 90247,\n\t\"./CC.png\": 51189,\n\t\"./CD.png\": 82778,\n\t\"./CF.png\": 10632,\n\t\"./CG.png\": 59025,\n\t\"./CH.png\": 20246,\n\t\"./CI.png\": 74047,\n\t\"./CK.png\": 52013,\n\t\"./CL.png\": 22034,\n\t\"./CM.png\": 27227,\n\t\"./CN.png\": 46016,\n\t\"./CO.png\": 70217,\n\t\"./CR.png\": 88956,\n\t\"./CU.png\": 88915,\n\t\"./CV.png\": 98072,\n\t\"./CW.png\": 87137,\n\t\"./CX.png\": 30982,\n\t\"./CY.png\": 16079,\n\t\"./CZ.png\": 93620,\n\t\"./DE.png\": 2126,\n\t\"./DJ.png\": 34041,\n\t\"./DK.png\": 27792,\n\t\"./DM.png\": 84646,\n\t\"./DO.png\": 49172,\n\t\"./DZ.png\": 19881,\n\t\"./EC.png\": 1603,\n\t\"./EE.png\": 54325,\n\t\"./EG.png\": 39911,\n\t\"./EH.png\": 12640,\n\t\"./ER.png\": 53194,\n\t\"./ES.png\": 92051,\n\t\"./ET.png\": 37180,\n\t\"./EU.png\": 20069,\n\t\"./FI.png\": 43116,\n\t\"./FJ.png\": 63175,\n\t\"./FK.png\": 44862,\n\t\"./FM.png\": 88008,\n\t\"./FO.png\": 55706,\n\t\"./FR.png\": 42927,\n\t\"./GA.png\": 72011,\n\t\"./GB.png\": 58192,\n\t\"./GD.png\": 62022,\n\t\"./GE.png\": 43567,\n\t\"./GF.png\": 22100,\n\t\"./GG.png\": 43229,\n\t\"./GH.png\": 32458,\n\t\"./GI.png\": 64371,\n\t\"./GL.png\": 75054,\n\t\"./GM.png\": 74551,\n\t\"./GN.png\": 66972,\n\t\"./GP.png\": 32114,\n\t\"./GQ.png\": 46939,\n\t\"./GR.png\": 68608,\n\t\"./GS.png\": 63081,\n\t\"./GT.png\": 22998,\n\t\"./GU.png\": 19935,\n\t\"./GW.png\": 36973,\n\t\"./GY.png\": 26947,\n\t\"./HK.png\": 30660,\n\t\"./HM.png\": 79698,\n\t\"./HN.png\": 10665,\n\t\"./HR.png\": 50469,\n\t\"./HT.png\": 11955,\n\t\"./HU.png\": 80042,\n\t\"./IC.png\": 20439,\n\t\"./ID.png\": 57176,\n\t\"./IE.png\": 29889,\n\t\"./IL.png\": 46608,\n\t\"./IM.png\": 78713,\n\t\"./IN.png\": 64706,\n\t\"./IO.png\": 12011,\n\t\"./IQ.png\": 93941,\n\t\"./IR.png\": 57214,\n\t\"./IS.png\": 32999,\n\t\"./IT.png\": 53384,\n\t\"./JE.png\": 29900,\n\t\"./JM.png\": 79108,\n\t\"./JO.png\": 10582,\n\t\"./JP.png\": 77473,\n\t\"./KE.png\": 10427,\n\t\"./KG.png\": 10217,\n\t\"./KH.png\": 11326,\n\t\"./KI.png\": 99015,\n\t\"./KM.png\": 44355,\n\t\"./KN.png\": 7496,\n\t\"./KP.png\": 74982,\n\t\"./KR.png\": 39508,\n\t\"./KW.png\": 24377,\n\t\"./KY.png\": 38039,\n\t\"./KZ.png\": 79932,\n\t\"./LA.png\": 91554,\n\t\"./LB.png\": 39737,\n\t\"./LC.png\": 42832,\n\t\"./LI.png\": 53834,\n\t\"./LK.png\": 18200,\n\t\"./LR.png\": 16521,\n\t\"./LS.png\": 61696,\n\t\"./LT.png\": 13023,\n\t\"./LU.png\": 16694,\n\t\"./LV.png\": 98317,\n\t\"./LY.png\": 98458,\n\t\"./MA.png\": 64105,\n\t\"./MC.png\": 87611,\n\t\"./MD.png\": 5956,\n\t\"./ME.png\": 45901,\n\t\"./MF.png\": 64278,\n\t\"./MG.png\": 60607,\n\t\"./MH.png\": 78344,\n\t\"./MK.png\": 63619,\n\t\"./ML.png\": 33452,\n\t\"./MM.png\": 2549,\n\t\"./MN.png\": 35198,\n\t\"./MO.png\": 53511,\n\t\"./MP.png\": 90416,\n\t\"./MQ.png\": 87321,\n\t\"./MR.png\": 39138,\n\t\"./MS.png\": 60267,\n\t\"./MT.png\": 14356,\n\t\"./MU.png\": 35485,\n\t\"./MV.png\": 94246,\n\t\"./MW.png\": 33263,\n\t\"./MX.png\": 65784,\n\t\"./MY.png\": 50401,\n\t\"./MZ.png\": 1418,\n\t\"./NA.png\": 57308,\n\t\"./NC.png\": 65390,\n\t\"./NE.png\": 59096,\n\t\"./NF.png\": 54707,\n\t\"./NG.png\": 22794,\n\t\"./NI.png\": 12436,\n\t\"./NL.png\": 54777,\n\t\"./NO.png\": 88194,\n\t\"./NP.png\": 93301,\n\t\"./NR.png\": 60039,\n\t\"./NU.png\": 80424,\n\t\"./NY.png\": 73412,\n\t\"./NZ.png\": 10271,\n\t\"./OM.png\": 57855,\n\t\"./PA.png\": 53334,\n\t\"./PE.png\": 55122,\n\t\"./PF.png\": 3305,\n\t\"./PG.png\": 79104,\n\t\"./PH.png\": 23335,\n\t\"./PK.png\": 50271,\n\t\"./PL.png\": 5699,\n\t\"./PM.png\": 15866,\n\t\"./PN.png\": 92113,\n\t\"./PR.png\": 47837,\n\t\"./PS.png\": 26708,\n\t\"./PT.png\": 2347,\n\t\"./PW.png\": 36944,\n\t\"./PY.png\": 37134,\n\t\"./QA.png\": 15293,\n\t\"./RE.png\": 90820,\n\t\"./RO.png\": 1662,\n\t\"./RS.png\": 58626,\n\t\"./RU.png\": 29844,\n\t\"./RW.png\": 81670,\n\t\"./SA.png\": 55,\n\t\"./SB.png\": 99420,\n\t\"./SC.png\": 28837,\n\t\"./SD.png\": 44170,\n\t\"./SE.png\": 83027,\n\t\"./SG.png\": 93153,\n\t\"./SH.png\": 36998,\n\t\"./SI.png\": 76015,\n\t\"./SJ.png\": 57108,\n\t\"./SK.png\": 78237,\n\t\"./SL.png\": 81890,\n\t\"./SM.png\": 3019,\n\t\"./SN.png\": 33168,\n\t\"./SO.png\": 30073,\n\t\"./SR.png\": 76204,\n\t\"./SS.png\": 45301,\n\t\"./ST.png\": 88794,\n\t\"./SV.png\": 21096,\n\t\"./SX.png\": 7030,\n\t\"./SY.png\": 3359,\n\t\"./SZ.png\": 48708,\n\t\"./TC.png\": 68680,\n\t\"./TD.png\": 43847,\n\t\"./TF.png\": 92885,\n\t\"./TG.png\": 23788,\n\t\"./TH.png\": 77947,\n\t\"./TJ.png\": 54441,\n\t\"./TK.png\": 99616,\n\t\"./TL.png\": 50943,\n\t\"./TM.png\": 54614,\n\t\"./TN.png\": 36237,\n\t\"./TO.png\": 96292,\n\t\"./TR.png\": 40737,\n\t\"./TT.png\": 47639,\n\t\"./TV.png\": 76421,\n\t\"./TW.png\": 47004,\n\t\"./TZ.png\": 77657,\n\t\"./UA.png\": 70561,\n\t\"./UG.png\": 55223,\n\t\"./UM.png\": 23901,\n\t\"./US.png\": 7619,\n\t\"./UY.png\": 43753,\n\t\"./UZ.png\": 12786,\n\t\"./VA.png\": 69460,\n\t\"./VC.png\": 6822,\n\t\"./VE.png\": 79696,\n\t\"./VG.png\": 97794,\n\t\"./VI.png\": 64796,\n\t\"./VN.png\": 64755,\n\t\"./VU.png\": 21856,\n\t\"./WF.png\": 12196,\n\t\"./WS.png\": 59385,\n\t\"./XK.png\": 72596,\n\t\"./YE.png\": 28113,\n\t\"./YT.png\": 69720,\n\t\"./ZA.png\": 98872,\n\t\"./ZM.png\": 47444,\n\t\"./ZW.png\": 68286\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 77900;"],"names":["_hoisted_1","class","_hoisted_2","key","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_defineComponent","__name","emits","setup","__props","emit","__emit","library","add","faTriangleExclamation","authFields","ref","id","isEnabled","isRequired","customLabel","type","isMandatory","value","valid","undefined","visited","customLabelTranslationKey","inputMode","pattern","RegExp","source","phoneAuthField","smsTokenField","isFormInValid","computed","userHasToken","isRecaptchaEmpty","showRecaptchaRequiredMessage","isLoading","phoneCheckupErrorMessageKey","recaptchaSuccess","recaptchaExpired","fieldUpdated","newValue","field","submitForm","window","grecaptcha","getResponse","executePhoneNumberLookup","phoneNumber","recaptchaToken","smsToken","then","ls","setLoginState","authenticationType","authProgress","authOption","_type","campaignAppGuid","campaignApp","guid","enforceRequiredAuthFields","loginState","error","reset","statusToError","errorKey","status","currentModal","model","isLogIn","sendCampaignEvent","GOOGLE_ANALYTICS_EVENTS","CAMPAIGN","COMMON","LOGIN_CANCELLED","action","category","finally","executeSMSTokenRequest","getAuthFields","find","af","isReadOnly","closeModal","message","onMounted","script","document","createElement","setAttribute","async","defer","head","appendChild","onload","initCaptchaInterval","setInterval","render","clearInterval","sitekey","ENV_GLOBALS","RECAPTCHA_SITE_KEY","callback","_ctx","_cache","_openBlock","_createBlock","DialogModal","header","_withCtx","_createElementVNode","_toDisplayString","_unref","$ttt","content","_createVNode","AuthenticationDescription","_createCommentVNode","_createElementBlock","FormField","$event","_createTextVNode","onClick","href","FontAwesomeIcon","icon","LoadIndicator","footer","disabled","_","index","some","v","mapConsentTextCheckboxesToConsentTextIds","purifyAuthFields","setLoginStateBasedOnForm","resetAuthFields","consentTextIds","filter","map","f","Number","authField","consentTextsIds","Object","entries","patchLoginState","fromEntries","c","forEach","fieldKey","fieldValue","replace","AuthenticationFieldTypes","DATE_TIME","prepareDateAuthFieldValue","date","cutOffTimezonePart","Date","includeTime","slice","year","getFullYear","month","getMonth","toString","padStart","day","getDate","hours","getHours","minutes","getMinutes","_Fragment","_renderList","TermsAndConditions","SIMPLE_EMAIL_LOGIN_CANCELLED_ERROR_NAME","email","OptionTypes","FORM","phone","props","canShowLanguageSwitcher","Boolean","default","LanguageSwitcher","hasSportsHeaderEnabled","SportsMatchHeader","TopBanner","hasLoginSupport","hasCMTokenInURL","LoginBar","HeaderContent","faFacebook","faMobileAlt","faSignInAlt","faIdCard","faBuilding","user","displayableAuthOptions","getDisplayableAuthOptions","displayableBrandLoginButton","displayableSimpleLoginButton","login","option","Promise","resolve","openAuthSelectionModal","result","authLogin","updateUser","logOut","clearLoginState","logout","isLoggedIn","displayName","nickname","nickName","complex","length","simple","name","brandName","watch","_normalizeClass","style","_normalizeStyle","brandSpecificButtonStyles","displayableImageIconUrl","iconCssClass","src","faCheck","signUp","useCustomJS","useCustomCSS","registerAsStateConsumer","normalizer","state","submit","normalizeCampaignState","handleIfEmbedded","campaignStatus","useCampaignStatus","showSubmissionResponse","isSaving","isEmbedded","_isEmbedded","hasDuplicateParticipation","isAuthenticating","signUpButtonText","translateCampaignSetting","canShowSubmissionResponse","canShowSubmitBtn","errorService","clearErrorMessage","saveParticipation","isNew","SU","SIGNED_UP","errorMessage","scrollToResponseWrapper","AUTH_CANCELLED_ERROR_NAME","LOGIN_SELECTION_CANCELLED_ERROR_NAME","element","querySelector","scrollToPosition","scrollIntoView","SINGLE_VOTING_MODE","match","sportsTeams","matchParticipants","sportsPlayers","winner","getSportsDataFromPublicData","matchParticipantsPlayers","getMatchParticipantPlayers","homeTeam","awayTeam","homeTeamName","awayTeamName","isHomeTeamEnabled","isAwayTeamEnabled","isHomeTeamSelected","getSportsTeamsInfo","handleWinner","_isHomeTeamSelected","hasHomeTeamVotes","hasAwayTeamVotes","hasVoteChangeInProgress","votes","isLoadingVotePrivateData","votedMessage","voteCanceledMessage","isSingleVotingMode","getCampaignSettingValue","lastClickedPlayer","players","home","away","hasVoteTogglingDisabled","hasVotingDisabled","sportsMatchVoting","serializer","vote","playerId","selectedPlayer","player","isSelected","togglePlayerSelection","loadVotes","data","getPrivateData","campaignSportsMatchVotes","markVotes","participant","all","pp","sportsPlayerId","matchParticipantPlayers","winnerParticipant","isWinner","isFromHomeTeam","isAfterActivity","isBeforeActivity","deleteVote","saveVote","SMV","VOTE","isBeingSaved","response","createVote","push","indicateAsSaved","err","raiseErrorMessage","removeVote","splice","indexOf","isSaved","setTimeout","_hasHomeTeamVotes","_hasAwayTeamVotes","homeTeamId","awayTeamId","votePlayerIds","p","includes","every","teamId","sportsTeamId","ENDPOINT","post","JSON","stringify","del","DisplayableVotingCategory","constructor","dto","_defineProperty","this","votingCategoryTypeId","$to","DisplayableVotingCategoryType","links","selectedCategory","votingCategories","vc","selectedCategoryId","DisplayableVotingItem","isRemoved","itemShareUrl","videoThumbnailFileMetaDataId","videoUrl","voteCount","votePercentage","title","ingress","description","videoThumbnail","getSingleFileUrl","evaluateImages","sortedImages","votingItemImages","sort","a","b","ordinal","mainImage","fileMetaDataId","hasVideoPreviewImage","previewImage","hasPlaceholderPreviewImage","require","hasGalleryPreview","votingCategoryTypes","votingItems","votingItemsMetadata","_extractVotingItemData","lastVotedItem","showItemCount","getCampaignBooleanSettingValue","hasAnyItem","isLoadingAnything","hasToRecalculatePages","cantShowNoItemsInfo","hasNoItemsInFiltering","isFiltering","hasNoItemsNotFiltering","canShowBackButton","totalItemCount","isLoadingItems","currentPage","pageIndex","singleItemLoadedByRoute","ITEM_ROUTE","currentPath","location","hash","hasNextItem","hasPrevItem","isCalculatingNeighborItem","addEventListener","isSingleItemView","split","selectedSingleItem","itemId","itemInCurrentPage","item","getProcessedVotingItem","immediate","VOTING_ITEMS_MAX_PAGES","FILTERING_DEBOUNCE_TIMEOUT","showCategoryFilter","showSearchTextFilter","selectedCategories","isReloadingAfterFiltering","searchText","votingMode","votingModeCustomCount","canPlaceVotes","voting","selectedCategoriesIds","selectedSingleItemId","votingCategoryType","vct","onSelectedCategoryChange","loadItemsPage","votedItem","votingVotes","sendVote","navigateToSingleItemView","navigateToList","navigateToNextItem","navigateToPrevItem","pageChanged","getFilteringData","clearFilters","searchTextChanged","applyFiltering","debouncedApplyFiltering","canShowVoteButton","shareItem","getNeighborItem","side","itemIndex","findIndex","votingItem","reduce","selected","filters","pageData","getVotingItemsPage","processedPageData","processVotingItemsPagePayload","categoryIds","languageCode","getLanguageCodeToSearchBy","event","target","debounce","votingItemId","V","shareOnFb","createQueryForFbShare","publicData","PUBLIC_DATA","linked","categoryType","reactive","totalPageCount","RANDOM_ITEM_SORT_ORDER","headers","Accept","pageSize","itemSortOrder","hasRandomSortOrder","endpoint","basePrivateApiUrl","getAsUrlParams","getRandomNumber","fetch","method","responseHandler","getVotingItem","votingItemResponse","vi","votingItemCategories","stringId","vic","votingCategoryId","categories","itemImages","vii","metadata","res","ok","json","Error","statusText","FACEBOOK","MYPAGE","SIMPLE_MOBILE","SECURE_MOBILE","SPORTS_ALLIANCE","OpenIdOptionTypes","OIDC_SINGLE_SIGN_ON","TEXT","EMAIL","CHECK_BOX","TEL","NUMBER","OPTION","HIDDEN","CONSENT_TEXT","SimpleOptionTypes","AuthMappings","authenticationOptionTypeToIconCssClass","authenticationOptionTypeToColorStyle","authenticationOptionTypeToIconImageUrl","LanguagesDictionary","languageCodes","ENGLISH","NORWEGIAN","SWEDISH","DANISH","NORWEGIAN_NYNORSK","ITALIAN","GERMAN","POLISH","DUTCH","FRENCH","SPANISH","PORTUGUESE","SPANISH_LA","KOREAN","LanguageMappings","languageToFacebookSdkCode","languageToCountryCode","VisualTypes","AUCTION","VOTING","ITEM_LIST","ADVANCED_FORM","SIMPLE_FORM","SIGN_UP","PERSONA_QUIZ","CALENDAR_QUIZ","KNOWLEDGE_QUIZ","GUESS_THE_LINE_UP","GUESS_THE_AUDIENCE","GUESS_THE_NUMBER","GUESS_THE_SCORE","SPORTS_MATCH_VOTING","EVENT_SELFIE","WHEEL_OF_FORTUNE","CROWDFUNDING","SLOT_MACHINE","SCRATCH_CARD","GUESS_THE_OUTCOMES","GUESS_THE_PLAYER","GOAL_CLUB","SEASONAL_GUESS_THE_OUTCOMES","SEASONAL_GUESS_THE_SCORE","GUESS_THE_ITEM","LIVE_EVENT","SORTING_QUIZ","VisualTypesWithPayments","VisualTypesWithLoginFeature","params","pluralizeTranslationKey","locale","trimMustachesInTranslation","_i18n","global","t","$te","_locale","effectiveLocale","messages","object","fieldName","objectType","defaultValue","translateObject","param","count","cardinalRules","Intl","PluralRules","concat","select","removeLoadIndicator","getElementsByClassName","remove","getElementsByTagName","classList","shareCampaign","linkToShare","campaignApps","smartLinks","s","smartLinkId","url","sendShareEvent","shareParticipation","authInitializationProgress","authToken","queryParams","SUPPORTED_QUERY_PARAMS","AUTH_TOKEN","CM_TOKEN_AUTH_TYPE","cancelAuth","errorName","resetLoginState","rejectHook","confirmAuth","saveLoginState","resolveHook","AUTH_ERROR_ERROR_NAME","finalizeComplexAuth","forcedAuthType","signIn","handleIncompleteComplexAuthRegistration","Response","myPageToken","removeCMToken","finalizeSilentComplexAuth","evaluateSilentComplexAuthType","finalizeSimpleAuthLogIn","newLoginState","simplifyProcessForMobileAuths","handleSimpleAuthLogInError","handleComplexAuth","handleAuthSelection","beginOpenIdClientAuth","handleSimpleAuth","CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES","beginSimpleEmailLogIn","beginSimpleEmailAuth","beginSimpleMobileLogIn","beginSimpleMobileAuth","beginSecureMobileLogIn","beginSecureMobileAuth","initializeAuthentication","hasParticipationSupport","cmToken","getCMToken","hasSuspendedCMTokenLogin","loginWithCMToken","campaignState","campaignStateService","getState","resumeComplexLogIn","initializeDefaultAuthFlow","setupForEmbedding","authProgressPromise","startAuthProgress","continueAuth","identityClientConfiguration","getIdentityClientConfiguration","logoutUrl","authorityUrl","iframe","display","body","listener","removeEventListener","reload","resumeComplexAuth","tryRestoreAuthTypeFromCampaignState","userManager","createUserManagerInstance","signinRedirectCallback","removeCallbackParamsFromUrl","confirmOpenIdClientAuth","cancelOpenIdClientAuth","authInitProgress","beginAuthentication","selectedAuthOptionId","restoredAuthOption","getProcessedGroupedAuthOptions","caao","catch","reject","continueWithDefaultAuthMethod","defaultOnlyOption","defaultWhenOnlyAuthOption","syncSelectedAuthOption","caaoIsSimple","createAuthProgressFlow","promise","progress","canSignUpComplexAuth","isNewUser","skipPersonalDataForm","campaignAppAuthenticationOptions","isKillswitchActive","summary","getMissingAuthFieldsSummary","hasMissingRequiredConsents","hasMissingRequiredAuthFields","hasMissingConsents","openAuthFormModal","loginStatePart","loadLoginState","enabledComplexAuthOptions","enabledComplex","beginOpenIdClientSilentAuth","authProgressFlow","currentAuthType","expectedCaao","signInLoginState","selectedOption","isSimpleMobile","isSecureMobile","defaultAuthOption","potentiallyUsedAuthOptions","figureOutPotentiallyUsedAuthOptions","topPriorityOption","prev","current","priority","profile","FacebookAppIdentity","MyPage","Email","SportsAllianceId","checkForOIDCClaims","console","setState","regex","test","initializeAuthFields","authFieldsResponse","customAuthFields","customAuthenticationFields","consentTexts","consentTextBundles","parse","setupCustomAuthFields","moveTermsToBottomOfTheArray","consentText","termsVerificationField","aF","customAuthField","properties","fieldType","options","setupOptionNames","maxValue","max","minValue","min","maxDate","minDate","withTime","multiline","selectOptions","openModal","AuthSelectionModalVue","openAuthModal","modalPromise","SignUpFormModalVue","SimpleMobileModalVue","SecureMobileModalVue","openSimpleEmailLogInModal","SimpleEmailLoginModalVue","SIMPLE_CAMPAIGN_APP_AUTHENTICATION_OPTION_TYPES","ProcessedGroupedAuthOptions","hasMobileSignInOnlySecure","simpleMobileOption","secureMobileOption","hasSomeMobileSignIn","enabledSimple","getDisplayableSimpleAuthOption","simpleAuthOption","o","getDisplayableComplexAuthOptions","complexAuthOptions","brandForegroundColor","brandColor","customizedBrandName","groups","simpleEmailOption","facebookAuthOption","myPageAuthOption","processedGroupedAuthOptions","checkIsInIFrame","callIFrameParent","parent","overflow","childInitialized","userAgent","navigator","scroll","tryAuthorize3rdParty","msg","confirm","open","getBoundingClientRect","y","iFrameParentConnection","CONNECTION_PARENT_WAIT_TIMEOUT","resolvedParent","resolvedTimeout","getIFrameParentConnection","_resolve","methods","connectToParent","getCurrentSize","fixMainContentHeights","height","app","getElementById","outerOuterWrapper","children","innerOuterWrapper","innerWrapper","el","htmlEl","modalEl","querySelectorAll","DIALOG_MODAL_CSS_CLASS","htmlElRectSize","htmlElStyle","getComputedStyle","htmlElMarginY","pxToFloat","marginTop","marginBottom","htmlElMarginX","marginLeft","marginRight","newHeight","modalElRectSize","modalElStyle","modalElMarginY","modalElHeight","Math","width","isModal","pxValue","parseFloat","IDENTITY_CLIENT_CONFIGURATION_API_URL","PHONE_LOOKUP_URL","REQUEST_TOKEN_URL","requestInit","mobileAuth","OPEN_ID_CONFIG_CLIENT_ID","OPEN_ID_CONFIG_POPUP_REDIRECT_HTML_NAME","OPEN_ID_CONFIG_REDIRECT_HTML_NAME","OPEN_ID_CONFIG_SILENT_REDIRECT_HTML_NAME","OPEN_ID_POPUP_WINDOW_FEATURES","OPEN_ID_RESPONSE_TYPE","OPEN_ID_SCOPE","OPEN_ID_LOAD_USER_INFO","OPEN_ID_AUTOMATIC_SILENT_RENEW","OPEN_ID_FILTER_PROTOCOL_CLAIMS","OPEN_ID_ASSETS_BASE_PATH","origin","OPEN_ID_AUTH_CANCELLED_ERROR_NAME","OPEN_ID_AUTH_POPUP_OPEN_ERROR_NAME","OPEN_ID_AUTH_ERROR_NAME","OPEN_ID_INTERNAL_ERROR_POPUP_CLOSED","OPEN_ID_INTERNAL_ERROR_POPUP_OPEN","OPEN_ID_EXTERNAL_PROVIDER_QUERY_PARAM_NAME","POPUP_RETURN_CHECK_LS_KEY_NAME","POPUP_CHECK_INTERVAL","POPUP_CHECK_MAX_TIME","popupCurrentCheckTotalTime","popupCurrentCheckIntervalRef","userManagerConfig","authority","client_id","popup_redirect_uri","redirect_uri","popupWindowFeatures","response_type","scope","loadUserInfo","silent_redirect_uri","automaticSilentRenew","filterProtocolClaims","isLogin","externalProviderName","checkRedirectFlowSupport","stateStorePromise","serializeSignInStateAndStore","serializeSignUpStateAndStore","searchParams","URLSearchParams","search","set","lastStoredGuid","campaignUrl","pathname","signinRedirect","extraQueryParams","createOpenIdClientExtraQueryParams","clearPopupCheckLsKey","signinPopup","externalProviderNames","join","signinSilent","confirmOpenIdClientSilentAuth","handleDetachedPopup","setMyPageToken","access_token","UserManager","callbackParams","deleteQueryParam","localStorage","removeItem","browserCompatibility","hasLocalStorage","selectedAuthMethod","checkInterval","log","interval","timeSpentAlready","getItem","signinPopupCallback","Log","logger","AUTH_MOBILE_CANCELLED_ERROR_NAME","bootstrapCampaign","component","plugins","i18n","initializeI18n","initializeQueryParams","initializeBrowserCompatibility","initializeCampaignState","createApp","VueGtagPlugin","config","GOOGLE_ANALYTICS_MEASUREMENT_ID","plugin","pluginConfig","use","mount","setTitleAndIcon","getBrowserCompatibility","forceRedirectFlow","checkHasPopups","hasCookies","hasSessionStorage","modernizr","hasPopups","redirectFlowUserAgentGroups","getRedirectFlowUserAgentGroups","userAgentsToCheck","groupAgents","agent","agents","rfua","parseJSON","REDIRECT_FLOW","getAbbreviatedVisualType","visualType","w","charAt","BK_STORE_ENDPOINT_URL","CampaignStateService","_lastStoreGuid","authTokenParam","getQueryParam","read","storeGuid","store","serializeCampaignState","_state","activityName","now","isPlanning","isRunning","isEndedOrArchived","activityStartSettingName","activityEndSettingName","activityStartDateTime","getCampaignDateTimeSettingAsTime","activityEndDateTime","isDuringActivity","activityStartDate","getCampaignDateTimeSetting","activityEndDate","stylesSetting","append","textContent","_customJSFunc","_setupCustomJS","customJSSetting","eval","_executeCustomJs","context","onUpdated","ULTIMATE_FALLBACK_WINDOW_TITLE","setWindowTitle","trim","fallbackTrnKey","setWindowIcon","linkEl","ErrorService","_errorMessage","m","HOST_URI","protocol","host","SCRAPE_URI","fbAppId","facebookAppId","encodeURIComponent","shareURL","outerHeight","screenY","x","outerWidth","screenX","imgUrl","smartLink","parameters","stripTags","createDescriptionForFbShare","redirectDesktopUrl","originalUrl","redirectMobileUrl","mobileUrl","createImageLinkForFbShare","imageUrl","paramsString","escapedParamsString","base64Params","btoa","settings","campaignSettings","smartLinkImageId","imageFileMetaDataId","fallbackImage","FILES_API_URL","getUrlWithParams","campaignGuid","LOGIN_FAILURE_WITH","LOGIN_SELECTION_OPENED","LOGIN_SUCCESS","LOGIN_SUCCESS_KIOSK","LOGIN_SUCCESS_WITH","PARTICIPATION_SHARE","POST_PARTICIPATION_ACTION_LINK_CLICK","SHARE","SPONSOR_LOGO_LINK_CLICK","CQ","ANSWER_SENT","GTA","GTN","GTLU","DREAM_TEAM_GUESS_SENT","GTS","ANSWER_SENT_KIOSK","KQ","ANSWERS_SENT","PQ","SF","WOF","MADE_ATTEMPT","MADE_ATTEMPT_KIOSK","SM","SCA","IL","LINK_ACTION_BTN","MAIL_ACTION_BTN","ES","UPLOAD_BTN","UPLOAD_COMPLETE","UPLOAD_SUBMIT","AF","FORM_SENT","GTO","GTP","SGTO","CHOICE_MADE","GUESS_SENT","ROUND_POST_PARTICIPATION_BUTTON_CLICK","SGTS","MATCH_POST_PARTICIPATION_BUTTON_CLICK","GTI","LE","SQ","GOOGLE_ANALYTICS_CUSTOM_DIMENSIONS","SC_CAMPAIGN_TYPE","SC_EVENT_VALUE","SC_ORGANIZATION_ID","eventAction","eventCategory","eventValue","event_category","event_label","get","customHeaders","prepareHeaders","isCrossDomain","requestUrl","URL","authHeaders","storedAuthToken","getAuthToken","Authorization","Headers","LANGUAGES_ENDPOINT","getLanguages","CAMPAIGN_COMMON_LANGUAGE_MODULE","TRANSLATIONS_ENDPOINT","LANGUAGE_OVERRIDES_ENDPOINT","getTranslationsForLanguage","campaignVisualType","getLanguageOverridesFor","translations","fallbackLocale","languageOverrides","availableLanguages","dict","getInitialTranslationsDictionary","language","values","resultLangCode","establishLanguageCodeFromQueryParam","establishLanguageCodeFromLocalStorage","establishLanguageCodeFromBrowser","isCampaignUsingThisLanguage","switchLanguageTo","updateQueryParam","LANGUAGE","createI18n","legacy","globalInjection","missing","missingTranslationHandler","dictionary","dictionaries","getCampaignSetting","e","withReload","fetchTranslationsForLanguage","fetchLanguageOverrides","storeCampaignLanguage","warn","campaign","languageTranslationsOverrides","override","translationOverrides","objectId","getCampaignLanguage","languages","matchedLanguage","browserLanguageCode","twoLetterLanguageCode","substring","fetchLanguagesUsedByCampaign","allLanguages","campaignLangsIds","campaignLangs","mainLanguage","lang","langs","getLanguagesUsedByCampaign","setting","settingLanguageOverride","withDefaultValuePassed","settingValue","lo","ot","String","translation","text","parsed","LANGUAGE_PREFIX","AUTH_TOKEN_LOCAL_STORAGE_PREFIX","setItem","storeAuthToken","clearAuthToken","_loginState","readonly","CLEAR_COOKIES_API_URL","LOGIN_STATE_API_URL","LOGIN_STATE_SIGN_IN_API_URL","requestHeaders","lsValue","isMissing","missingConsentTextIds","parseInt","loginStateType","fetchResponse","processRetrievedLoginState","setCookie","selectedAuthOptionType","saveResponse","signInResponse","loginStatePatch","getResetAuthFields","formFields","token","currentModalPromise","canCloseByOverlay","_currentModalPromiseResolve","_currentModalPromiseReject","view","markRaw","onConfirm","onClose","onError","withClose","resetWithClose","FD_PUBLIC_DATA","FD_ENV_GLOBALS","getTime","customImageUrl","preselectedImageUrl","sportsHeaderImageUrl","isEmptyOrWhitespace","hasSportsHeaderImageUrl","hasSportsHeaderWithImage","matchesPublicData","campaignSportsMatches","participantsData","campaignSportsMatchParticipants","winnersData","campaignSportsMatchParticipantsWinners","homeSportsTeam","awaySportsTeam","isHomeTeamInitial","participantPlayers","csmp","sportsPlayer","getSportsPlayerDisplayableName","photoFileUrl","photoFileMetaDataId","photoUrl","PLAYER_PLACEHOLDER_PHOTO_URL","positions","sortParticipantPlayers","preloadParticipantImages","number","shortName","fullName","getInitialSportsTeam","isOurTeam","preloadImage","p1","p2","nextStateConsumerId","stateConsumers","executeHandler","handler","promises","sc","subStates","allState","stateConsumerDTO","delete","updateUrlWithQueryParams","getQueryParams","replaceAll","newRelativePathQuery","history","pushState","cmtoken","formatOptions","LLLL","weekday","hour","minute","LLL","LL","L","MMMM","MMM","LT","hour12","formatDate","format","DateTimeFormat","candidate","countChar","char","trimToLength","maxLength","isEmail","fallbackImgUrl","imgEl","crypto","getRandomValues","Uint32Array","propName","propValue","Array","isArray","arrayParams","timeout","timeoutId","args","clearTimeout","hadGlobal","oldGlobal","Modernizr","n","i","r","_version","_config","classPrefix","enableClasses","enableJSClass","usePrefixes","_q","on","addTest","fn","addAsyncTest","prototype","cookie","sessionStorage","u","hasOwnProperty","toLowerCase","aliases","module","exports","INGRESS_MAX_LENGTH","ingressToShow","htmlToText","innerHTML","__exports__","_imports_0","hasAnyLoadingState","withCategories","imgRatio","showShareButton","hasVoteBtnDisabled","showVoteCount","backgroundImage","$emit","DisplayableItemIngress","DEFAULT_WIDTH","DEFAULT_HEIGHT","W_MODE_PARAM","AUTOPLAY_PARAM_ON","AUTOPLAY_PARAM_OFF","YT_FORMAT_A","YT_FORMAT_B","YT_FORMAT_C","YT_TARGET_FORMAT","YT_MUTED_PARAM_ON","YT_MUTED_PARAM_OFF","YT_PARAM_KEYS_MAP","VIMEO_FORMAT_A","VIMEO_TARGET_FORMAT","VIMEO_MUTED_PARAM_ON","VIMEO_MUTED_PARAM_OFF","__default__","required","allowFullscreen","allowAutoplay","allowParamString","displayableSrc","isYTFormat","parseYTSrc","isVimeoFormat","parseVimeoSrc","verifyAutoplay","fixProtocol","fixQueryParams","isYTFormatA","isYTFormatB","isYTFormatC","isCorrect","cmpInstance","getCurrentInstance","cmpEl","proxy","$el","iFrameEl","isHttps","urlShouldBeChanged","queryStartPos","firstParamPos","mapKnownYTParams","mapped","paramKeyValue","paramKey","paramValue","mappedParamKey","matchedVimeoFormat","extraParametersIndex","matchedYTFormat","processYTParams","paramsStartIndex","isYT","mutedParamOn","mutedParamOff","hasQPStart","allow","faExclamationCircle","SLIDES_PER_VIEW","votingItemImagePreview","votingItemImageCount","canLoop","autoplay","delay","pagination","clickable","dynamicBullets","renderBullet","className","modules","Pagination","Autoplay","Navigation","navigation","nextEl","prevEl","currentImage","getVotingItemImageUrl","votingItemImage","onIndexChange","realIndex","openImagePreview","Swiper","loop","rewind","centeredSlides","slidesOffsetBefore","autoHeight","spaceBetween","slidesPerView","onActiveIndexChange","iter","SwiperSlide","FullscreenModal","ref_key","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","showNavigationButtons","hasPreviousItems","hasMoreItems","imgRatioClass","hasAtLeastOneImage","hasVotes","imagePreview","seeMainImage","faArrowLeft","VideoObject","VotingItemImageCarousel","commonBoxClass","color","_renderSlot","$slots","faTimes","dialogElement","modalTopPosition","show","ev","top","expose","__expose","isModalOpened","onKeyboardEvent","code","onUnmounted","xmlns","viewBox","d","_createStaticVNode","modal","_resolveDynamicComponent","maxPagesShown","showFirstLast","hidePrevNextWhenEnds","isDisabled","_totalItemCount","page","onClickHandler","_component_VueAwesomePaginate","_resolveComponent","modelValue","disablePagination","customShareUrl","postParticipationText","postParticipationActionCaption","postParticipationActionLink","hasParticipation","campaignAppTypes","faSquareFacebook","hideMessage","customSubmissionResponse","AlertBox","authSelected","displayableAuthOption","CUSTOM_FORM_FIELD_PREFIX","craftLabel","formField","craftInvalidMessage","MAX_DOB_YEARS_FROM_NOW","MIN_DOB_YEARS_FROM_NOW","inputClasses","telInput","fieldVisited","phoneNumberValue","toRef","phoneNumberValid","phoneInputProps","disabledFetchingCountry","disabledFormatting","enabledCountryCode","ignoredCountries","autocomplete","maxLen","wrapperClasses","inputOptions","showDialCode","defaultCountry","countryCode","genderOptions","isInvalid","isTouchedAndInvalid","inputChange","input","checked","checkValidity","formatMinMaxDateTime","dateTime","isWithTime","toISOString","getCurrentDateMinusYears","years","setFullYear","getMaxDateOfBirth","getMinDateOfBirth","phoneInputChange","for","inputmode","onInput","VueTelInput","_mergeProps","onValidate","mode","authenticationDescription","activity","submissionStartDate","privacyPolicyModal","paymentTermsModal","myProfileLinkVisible","myProfileLink","paymentTerms","canShowPaymentTerms","customPrivacyPolicy","hasCustomPrivacyPolicy","openPrivacyPolicy","preventDefault","openPaymentTerms","DefaultPrivacyPolicyTemplate","CopyrightAndPrivacyPolicy","textColor","customTerms","termsMustNotCollapse","termsExpanded","toggleExpand","termsAndConditions","thisState","onToggle","tabindex","TermsAndConditionsContent","preselectedSportsHeaderImageName","customSportsHeaderImageUrl","showTeamsLogo","showLogosWrapper","homeSportsTeamId","awaySportsTeamId","team","canShowMatchDate","startDateTime","matchDateTime","faCalendarAlt","alt","logoFileMetaDataId","sponsorLogoImageSrc","sponsorLogoRedirectUrl","canShowFacebookShare","getPrizeAssignments","prizeAssignments","pa","prize","prizes","translatedPrize","createdDateTime","createdById","tenantId","assignedQuantity","prizeId","getPrizeAssignmentImageUrl","prizeAssignment","DESCRIPTION_CHECK_INTERVAL_TIME","prizeImagePreview","prizeImageURL","carouselPrizeDescriptionEl","carouselPrizeDescriptionWrapperEl","lightViewPrizeDescriptions","displayablePrizes","descriptionExpanded","isDescriptionExpandable","currentDisplayablePrize","openPrizesPanelByDefault","prizesPanelOpened","showPrizesPanel","togglePrizesPanel","expandPrizeDescription","displayablePrize","isLightView","checkCarouselDescriptionSize","offsetHeight","scrollHeight","descriptionSizeChecker","prizesCarousel","faAngleRight","ref_for","faAngleLeft","faGift","campaignTitle","introduction","canShowHeaderContent","SponsorLogo","FacebookShare","PrizesCarousel","useI18n","useScope","switcherType","selectedLanguage","switchLanguage","mapCountryCodeFromLanguage","faGlobe","toUpperCase","topBannerImageUrl","topBannerRedirectUrl","isSportsMatch","isCompact","hasTopBannerFirst","webpackContext","req","webpackContextResolve","__webpack_require__","keys"],"sourceRoot":""}