{"version":3,"file":"js/5928-8f74a836b60dc5aea8c3.js","mappings":"sFAAA,IAAIA,EAAM,CACT,sBAAuB,MACvB,yBAA0B,MAC1B,qBAAsB,MACtB,wBAAyB,OAI1B,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOG,EAAoBF,EAC5B,CACA,SAASC,EAAsBF,GAC9B,IAAIG,EAAoBC,EAAEN,EAAKE,GAAM,CACpC,IAAIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEE,KAAO,mBACHF,CACP,CACA,OAAOP,EAAIE,EACZ,CACAD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,EACpB,EACAC,EAAeW,QAAUR,EACzBS,EAAOC,QAAUb,EACjBA,EAAeE,GAAK,K,0qCCDpB,IAkFA,EAlFkB,SAAHY,GAiBS,IAhBtBC,EAAQD,EAARC,SACAC,EAAMF,EAANE,OACAC,EAAQH,EAARG,SACAC,EAAUJ,EAAVI,WACAC,EAAWL,EAAXK,YACAC,EAAMN,EAANM,OACAC,EAAMP,EAANO,OACAC,EAAIR,EAAJQ,KACAC,EAAKT,EAALS,MACAC,EAAKV,EAALU,MACAC,EAAMX,EAANW,OACAC,EAAKZ,EAALY,MACAC,EAAIb,EAAJa,KACAC,EAAad,EAAbc,cAAaC,EAAAf,EACbgB,MAAAA,OAAK,IAAAD,GAAQA,EAAAE,EAAAjB,EACbkB,QAAAA,OAAO,IAAAD,EAAG,KAAIA,EAKZE,EAAAC,GAHkCC,EAAAA,EAAAA,UAA4C,CAC9ET,MAAO,EACPD,OAAQ,IACR,GAHKW,EAAUH,EAAA,GAAEI,EAAaJ,EAAA,GAK1BK,GAASC,EAAAA,EAAAA,cAAY,WACzBF,EAAc,CAAEX,MAAAA,EAAOD,OAAAA,GACzB,GAAG,CAACC,EAAOD,IAELe,GAASD,EAAAA,EAAAA,cAAY,WACzBF,EAAc,CAAEX,MAAO,EAAGD,OAAQ,GACpC,GAAG,KAEHgB,EAAAA,EAAAA,YAAU,WACJnB,EACFgB,IAEAE,GAEJ,GAAG,CAAClB,EAAMgB,EAAQE,IAElB,IAAME,EAAyBZ,EAC3B,CACEJ,MAAQ,GAAEU,EAAWV,UACrBD,OAAS,GAAEW,EAAWX,WACtBkB,IAAKnB,EACLoB,KAAMrB,EACNsB,SAAU,SAEZ,CACEnB,MAAQ,GAAEU,EAAWV,UACrBD,OAAS,GAAEW,EAAWX,WACtBkB,IAAKnB,EAAQY,EAAWX,OACxBmB,KAAMrB,EAAQa,EAAWV,MAAQ,GAGjCoB,EAAwB,CAC5BC,gBAAkB,OAAM9B,KACxB+B,eAAiB,GAAE9B,EAAaS,OAAUR,EAAcQ,MACxDsB,mBAAqB,MACrBxB,OAAWN,EAAcQ,EAAhB,KACTD,MAAUR,EAAaS,EAAf,KACRiB,OAAWxB,EAASO,EAAOS,EAAWV,MAAQ,GAAvC,KACPiB,MAAUtB,EAASM,EAAOS,EAAWX,OAAS,GAAxC,MAGR,OAAOyB,EAAAA,EAAAA,cACLC,EAAAA,cAAA,OACEC,UAAY,GAAEC,EAAAA,EAAAA,aAAmBzB,GAAgC,MAAME,EAAQuB,EAAAA,EAAAA,MAAcA,EAAAA,EAAAA,WAC7FA,MAAOX,GAEPS,EAAAA,cAACG,EAAAA,EAAa,CAACC,GAAIjC,EAAMkC,QAAS,IAAKC,WAAW,6BAChDN,EAAAA,cAAA,OAAKC,UAAWC,EAAAA,EAAAA,SACdF,EAAAA,cAAA,OAAKC,UAAWC,EAAAA,EAAAA,QAAeA,MAAOP,GACnC/B,GAEFC,KAIPgB,GAAW0B,SAASC,KAExB,E,ghEC7EA,IACMC,EAAmB,IACnBC,EAAkB,IAEjB,SAASC,EAAUhD,GAAmF,IAAhFiD,EAAGjD,EAAHiD,IAAKC,EAAalD,EAAbkD,cAAeC,EAAMnD,EAANmD,OAAQC,EAAcpD,EAAdoD,eAAgBC,EAAcrD,EAAdqD,eACjEC,GAAWC,EAAAA,EAAAA,UACXC,GAAWD,EAAAA,EAAAA,QAAyB,MAEHpC,EAAAC,GAAfC,EAAAA,EAAAA,WAAS,GAAM,GAAhCb,EAAIW,EAAA,GAAEsC,EAAOtC,EAAA,GAWlBuC,EAAAtC,GAVkCC,EAAAA,EAAAA,UAAqB,CACvDT,MAAO,EACPD,OAAQ,EACRF,MAAO,EACPC,MAAO,EACPiD,eAAgB,EAChBC,eAAgB,EAChBC,aAAcd,EACde,SAAU,GACVC,SAAU,KACV,GAVKC,EAAUN,EAAA,GAAEO,EAAaP,EAAA,GAmC1BQ,GAAkBX,EAAAA,EAAAA,UACxBW,EAAgBC,QAAU,SAAAC,GACxB,IAAMC,EAAMD,EAAME,OACZC,EA1BqB,WAC3B,GAAIf,EAASW,QAAS,CACpB,IAAMK,EAAQhB,EAASW,QAAQM,wBACzBX,EACJU,EAAME,EAAIF,EAAM5D,MAAQ,EAAI,IAAMmC,EAAkB4B,OAAOC,WACvDJ,EAAME,EAAIF,EAAM5D,MAAQ,EAAI,IAC5B4D,EAAME,EAAIF,EAAM5D,MAAQ,GACxBmD,EAAWS,EAAMK,EAAmB,IAAfL,EAAM7D,OAAgBmC,IAC3Ce,EACJW,EAAME,EAAIF,EAAM5D,MAAQ,GAAKmC,EAAkB4B,OAAOC,WAClDD,OAAOC,WAAaJ,EAAME,EAAIF,EAAM5D,MAAQ,GAC5CmC,EAEN,OAAA+B,EAAAA,EAAA,GACKd,GAAU,IACbF,SAAAA,EACAC,SAAAA,EACAF,aAAAA,GAEJ,CACA,OAAOG,CACT,CAKmBe,GACjBtB,GAAQ,GACR,IAAMe,EAAQhB,EAASW,QAAQM,wBAC/BR,EAAaa,EAAAA,EAAC,CAAC,EACVP,GAAQ,IACX3D,OAAU,OAAHyD,QAAG,IAAHA,OAAG,EAAHA,EAAKzD,SAAY,OAAHyD,QAAG,IAAHA,OAAG,EAAHA,EAAKW,aAC1BrE,QAAW,OAAH0D,QAAG,IAAHA,OAAG,EAAHA,EAAK1D,UAAa,OAAH0D,QAAG,IAAHA,OAAG,EAAHA,EAAKY,cAC5BxE,MAAOyE,KAAKC,IACVX,EAAME,EAAIV,EAAWH,aAvDhB,EAuDsC,EAC3CqB,KAAKE,IAAIhB,EAAMiB,YAAY5E,MAAO+D,EAAME,EAAIF,EAAM5D,MAAQoD,EAAWH,aAxDhE,EAwDsF,IAE7FnD,MAAOwE,KAAKC,IACVX,EAAMK,EAAIb,EAAWH,aA3DhB,EA2DsC,EAC3CqB,KAAKE,IAAIhB,EAAMiB,YAAY3E,MAAO8D,EAAMK,EAAIL,EAAM7D,OAASmC,MAE7Da,eAAgBuB,KAAKC,IACnBnB,EAAWH,aA/DN,EA+D4B,EACjCqB,KAAKE,IAAIhB,EAAMiB,YAAYC,QAASd,EAAM5D,MAAQoD,EAAWH,aAhExD,EAgE8E,IAErFD,eAAgBsB,KAAKC,IACnBnB,EAAWH,aAnEN,EAmE4B,EACjCqB,KAAKE,IAAIhB,EAAMiB,YAAYE,QAASf,EAAM7D,OAASmC,QAGzD,EAEA,IAIM0C,GAAS/D,EAAAA,EAAAA,cACb,SAAC2C,GAGC,IAFAqB,EAAAA,EAAAA,IAAUrB,GACVsB,aAAapC,EAASa,SAClBC,EAAMiB,YACR,GAAI7E,EAAM,CACR,IAAMgE,EAAQhB,EAASW,QAAQM,wBAC/BR,GAAc,SAAA0B,GACZ,OAAAb,EAAAA,EAAA,GACKa,GAAS,IACZlF,MAAOyE,KAAKC,IACVX,EAAME,EAAIV,EAAWH,aAxFxB,EAwF8C,EAC3CqB,KAAKE,IAAIhB,EAAMiB,YAAY5E,MAAO+D,EAAME,EAAIF,EAAM5D,MAAQoD,EAAWH,aAzFxE,EAyF8F,IAE7FnD,MAAOwE,KAAKC,IACVX,EAAMK,EAAI/B,IACVoC,KAAKE,IAAIhB,EAAMiB,YAAY3E,OAAQkF,EAAAA,EAAAA,MAAWpB,EAAMK,EAAIL,EAAM7D,OAASmC,MAEzEa,eAAgBuB,KAAKC,IACnBnB,EAAWH,aAhGd,EAgGoC,EACjCqB,KAAKE,IAAIhB,EAAMiB,YAAYC,QAASd,EAAM5D,MAAQoD,EAAWH,aAjGhE,EAiGsF,IAErFD,eAAgBsB,KAAKC,IACnBrC,IACAoC,KAAKE,IAAIhB,EAAMiB,YAAYE,QAASf,EAAM7D,OAASmC,OAGzD,GACF,MACEQ,EAASa,QAAUQ,OAAOkB,YAAW,WAAO,IAADC,EAClB,QAAvBA,EAAA5B,EAAgBC,eAAO,IAAA2B,GAAvBA,EAAAC,KAAA7B,EAA0BE,EAC5B,GAAG,GAGT,GACA,CAAC5D,EAAMwD,EAAWH,eAmBpB,OAAIV,EAEAd,EAAAA,cAAAA,EAAAA,SAAA,KACGe,EACCf,EAAAA,cAAA,OAAKC,UAAWC,EAAAA,EAAAA,gBACdF,EAAAA,cAAA,KAAGC,UAAU,0BACbD,EAAAA,cAAA,YAAM,iDAGRA,EAAAA,cAAA,gBAAcY,IAAKA,EAAK+C,IAAE,EAAC,qBAAgB,eAAa,WAO9D3D,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OACEY,IAAKA,EACLiD,aAAchC,EAAgBC,QAC9BgC,IAAK3C,EACL4C,aA/Ee,WACnB3C,GAAQ,EACV,EA8EM4C,YAAab,EACb,gBAAetC,QAAuBoD,IAEvCpD,GACCb,EAAAA,cAACkE,EAAO,CACNpG,SAAU8C,GAAO,GACjB3C,OAAQ0D,EAAWL,eACnBpD,OAAQyD,EAAWJ,eACnBvD,YAAa2D,EAAWrD,QAAU,EAClCP,WAAY4D,EAAWpD,OAAS,EAChCH,MAAO+C,EAASW,SAAWH,EAAWF,SAAW,EAAIE,EAAWF,SAAW,EAC3EpD,MAAO8C,EAASW,SAAWH,EAAWD,SAAW,EAAIC,EAAWD,SAAW,EAC3EvD,KAAMA,EACNK,KAtKG,EAuKHD,MAAOoD,EAAWH,aAClBlD,OAAQmC,EACR5C,OArDDsD,EAASW,SAAY3D,EAGxB6B,EAAAA,cAAA,OACEC,UAAU,kBACVC,MAAO,CACLV,IAAKmC,EAAWtD,MAAQoC,IACxBhB,KAAMkC,EAAWvD,MAAQuD,EAAWH,aAAe,EACnDjD,MAAOoD,EAAWH,aA5Hf,EA6HHlD,OAAQmC,OATyB,KAsDjC9B,OAAO,EACPF,cAAeuC,IAKzB,CAEA,OAAemD,EAAAA,EAAAA,MACbxD,GACA,SAACyD,EAA4BC,GAA0B,OACrDD,EAAUxD,MAAQyD,EAAUzD,KAAOwD,EAAUvD,gBAAkBwD,EAAUxD,aAAa,G,+NC/M1F,EAA4B,mDAA5B,EAAuF,+CAAvF,EAA+S,mCAA/S,EAAiW,kCAAjW,EAAqhB,iCAArhB,EAAgkB,6BAAhkB,EAA0mB,gCAA1mB,EAAopB,6BAAppB,EAAmsB,sEAAnsB,EAAuxB,kEAAvxB,EAAs2B,gCAAt2B,EAAo5B,iCAAp5B,EAA67B,2BAA77B,EAA6gC,iCAA7gC,EAA0jC,+BAA1jC,EAA4mC,sCAA5mC,EAA+pC,gCAA/pC,EAAgtC,oCAAhtC,EAA4wC,2CAA5wC,EAA00C,sCAA10C,EAA04C,6CAA14C,EAAm8C,+BAAn8C,EAA6+C,8BAA7+C,EAAohD,4BAAphD,EAA+jD,kCAA/jD,EAAmnD,qCAAnnD,EAA2qD,sCAA3qD,EAA0uD,4CAA1uD,EAAuyD,oCAAvyD,EAAg2D,wCAAh2D,EAAm5D,8BAAn5D,EAAmgE,wCAAngE,EAAkjE,0DAAljE,EAAunE,8BAAvnE,EAAsqE,oCAAtqE,EAAktE,2BAAltE,EAA2vE,iCAA3vE,EAAoyE,2BAApyE,EAAs0E,0BAAt0E,EAA62E,6DAA72E,EAAy7E,kCAAz7E,GAAm+E,2BAAn+E,GAAygF,8BAAzgF,GAAojF,gCAApjF,GAA4lF,2BAA5lF,GAAyoF,qCAAzoF,GAAguF,4BAAhuF,GAAuwF,8BAAvwF,GAA4yF,0BAA5yF,GAAi1F,8BAAj1F,GAA03F,8BAA13F,GAA26F,sCAA36F,GAA87G,4BAA97G,GAA4iH,4DAA5iH,GAAinH,0DAAjnH,GAA8rH,sCCA9rH,IAAgB,UAAY,kCAAkC,WAAa,mCAAmC,QAAU,wCAAwC,OAAS,0CAA0C,OAAS,uCAAuC,aAAe,qCAAqC,iBAAmB,yCAAyC,WAAa,mCAAmC,kBAAoB,0CAA0C,OAAS,+BAA+B,OAAS,+BAA+B,MAAQ,8BAA8B,cAAgB,sCAAsC,YAAc,oCAAoC,MAAQ,8BAA8B,kBAAoB,0CAA0C,MAAQ,8BAA8B,KAAO,6BAA6B,OAAS,+BAA+B,SAAW,iCAAiC,cAAgB,sCAAsC,OAAS,+BAA+B,MAAQ,8BAA8B,cAAgB,sCAAsC,WAAa,mCAAmC,aAAe,qCAAqC,MAAQ,8BAA8B,WAAa,mCAAmC,SAAW,iCAAiC,WAAa,mCAAmC,QAAU,gCAAgC,KAAO,6BAA6B,IAAM,4BAA4B,OAAS,+BAA+B,MAAQ,8BAA8B,WAAa,mCAAmC,OAAS,+BAA+B,IAAM,4BAA4B,SAAW,iCAAiC,SAAW,iCAAiC,UAAY,kCAAkC,SAAW,iCAAiC,UAAY,kCAAkC,UAAY,kCAAkC,UAAY,kCAAkC,KAAO,6BAA6B,QAAU,gCAAgC,UAAY,kCAAkC,UAAY,kCAAkC,UAAY,kCAAkC,UAAY,kCAAkC,WAAa,mCAAmC,YAAc,oCAAoC,UAAY,kCAAkC,UAAY,kCAAkC,WAAa,mCAAmC,MAAQ,8BAA8B,WAAa,mCAAmC,QAAU,gCAAgC,SAAW,iCAAiC,OAAS,+BAA+B,QAAU,gCAAgC,SAAW,iCAAiC,UAAY,kCAAkC,WAAa,mCAAmC,MAAQ,8BAA8B,UAAY,kCAAkC,OAAS,+BAA+B,OAAS,+BAA+B,OAAS,+BAA+B,OAAS,+BAA+B,OAAS,+BAA+B,UAAY,kCAAkC,cAAgB,sCAAsC,UAAY,kCAAkC,UAAY,kCAAkC,OAAS,+BAA+B,OAAS,+BAA+B,IAAM,4BAA4B,SAAW,iCAAiC,UAAY,kCAAkC,YAAc,oCAAoC,WAAa,mCAAmC,WAAa,mCAAmC,MAAQ,8BAA8B,UAAY,kCAAkC,KAAO,6BAA6B,WAAa,mCAAmC,cAAgB,sCAAsC,WAAa,mCAAmC,OAAS,+BAA+B,OAAS,+BAA+B,KAAO,6BAA6B,UAAY,kCAAkC,OAAS,+BAA+B,OAAS,+BAA+B,OAAS,+BAA+B,OAAS,+BAA+B,OAAS,+BAA+B,cAAgB,sCAAsC,MAAQ,8BAA8B,OAAS,+BAA+B,UAAY,kCAAkC,YAAc,oCAAoC,WAAa,mCAAmC,OAAS,+BAA+B,OAAS,+BAA+B,QAAU,gCAAgC,QAAU,gCAAgC,QAAU,gCAAgC,QAAU,gCAAgC,QAAU,gCAAgC,QAAU,gCAAgC,QAAU,gCAAgC,QAAU,oDAAoD,QAAU,gCAAgC,OAAS,+BAA+B,OAAS,+BAA+B,WAAa,mCAAmC,UAAY,kCAAkC,cAAgB,sCAAsC,UAAY,kCAAkC,QAAU,gDAAgD,eAAiB,uCAAuC,WAAa,mCAAmC,YAAc,oCAAoC,aAAe,qCAAqC,OAAS,+BAA+B,MAAQ,8BAA8B,OAAS,+BAA+B,cAAgB,uC,gxBCC9rL,IAAMyD,GAAaC,GAAIC,MAAM,KAAKC,QACvC,SAACC,EAAMC,EAAMC,GAAC,OAAKF,EAAKG,MAAKC,EAAAA,EAAAA,KAAI,CAAEC,MAAOH,EAAI,EAAGI,KAAMJ,EAAI,IAAK,IAChEK,EAAAA,EAAAA,MAAK,KAEMC,GAAiBX,GAAIC,MAAM,MAAMC,QAC5C,SAACC,EAAMC,EAAMC,GAAC,OAAKF,EAAKG,MAAKC,EAAAA,EAAAA,KAAI,CAAEC,MAAOH,EAAI,EAAGI,KAAMJ,EAAI,IAAK,IAChEK,EAAAA,EAAAA,MAAK,KAGME,GAAc,SAACC,EAAOC,EAAWC,GAAO,OAC1C,MAATF,QAA0BnB,GAATmB,GAAsBA,EAAMG,QACzCF,EAAUG,QACR,YACA,QACEJ,EAAMG,QAAQ,GAAGE,MAAM,KAAK,GAD9B,gBAIIH,GAAWF,GAAS,IAAM,GAAK,IAAMA,EAAMG,QAAQ,GAAGE,MAAM,KAAK,IACnE,UAEJ,KAAK,EASEC,GAAW,SAACC,EAAaC,GAAI,OACxCD,EACGE,IAAI,WACJpB,QACC,SAACC,EAAMoB,GAAG,OACRF,GAAQA,EAAKC,IAAI,OAASC,EAAID,IAAI,MAC9BnB,EACAoB,EAAID,IAAI,UAAYC,EAAIC,MAAM,CAAC,OAAQ,sBAAwBD,EAAIC,MAAM,CAAC,OAAQ,WAAarB,CAAI,GACzG,EACD,EAgBQsB,GAAU,SAACL,EAAaC,GAAI,OACvCD,EACGE,IAAI,WACJpB,QAAO,SAACwB,EAAKC,GAAC,OAAMN,GAAQA,EAAKC,IAAI,OAASK,EAAEH,MAAM,CAAC,OAAQ,OAASE,EAAMA,EAAMC,EAAEL,IAAI,QAAQ,GAAG,EAAE,E,2mCC7C5G,IAAMM,GAAoB,SAAApE,GACxBA,EAAMqE,iBACNrE,EAAMsE,iBACR,EAeO,SAASC,GAAaC,GAC3B,IACEC,EAUED,EAVFC,eACAZ,EASEW,EATFX,KACAa,EAQEF,EARFE,OACA5F,EAOE0F,EAPF1F,cACAE,EAMEwF,EANFxF,eACA2F,EAKEH,EALFG,aACAC,EAIEJ,EAJFI,OACAC,EAGEL,EAHFK,SACAC,EAEEN,EAFFM,WACAC,EACEP,EADFO,eAEIC,EAAYN,EAAOV,MAAM,CAAC,UAAWH,EAAKC,IAAI,MAAO,UACrDmB,EACJ,QAAUR,EAAeX,IAAI,cAC5B,GAAKW,EAAeX,IAAI,mBAAqBW,EAAeX,IAAI,iBAE7DoB,EAASD,EAAc,KAAOR,EAAeX,IAAI,uBACjDqB,EAAcF,EAAc,KAAOR,EAAeX,IAAI,iBACtDsB,EAAWH,EAAc,KAAOR,EAAeX,IAAI,mBACnDuB,EAAQ1B,GAASe,GACjBY,EAAYzB,EAAKC,IAAI,qBAAuBD,EAAKC,IAAI,SACrDyB,EAAOtB,GAAQS,GAEuB3H,EAAAC,IAAdC,EAAAA,EAAAA,UAAS,MAAK,GAArCuI,EAAOzI,EAAA,GAAE0I,EAAU1I,EAAA,GAC6CuC,EAAAtC,IAA3CC,EAAAA,EAAAA,UAAS4G,EAAKG,MAAM,CAAC,SAAU,aAAY,GAAhEjF,EAAMO,EAAA,GAAEoG,EAASpG,EAAA,GACSqG,EAAA3I,IAAXC,EAAAA,EAAAA,UAAS,GAAE,GAA1B2I,EAAGD,EAAA,GAAEE,EAAMF,EAAA,GAEZG,GAAWjC,EAAKC,IAAI,aAAcZ,EAAAA,EAAAA,MAAK,KAAK6C,OAAO,EAAGlC,EAAKC,IAAI,UAC/DkC,EAAc,SAAAC,GAClBJ,EAAOI,EAAYnC,IAAI,SACzB,EAEMoC,EAAgB,WACpBrB,EAASe,EACX,EAEMO,EAAmB,SAAAnG,GAClBA,EAAME,OAAOrB,KAAK8F,GACzB,EAEMyB,EAAe,SAACpD,EAAOqD,GAC3BZ,EAAWzC,GACX0C,EAAU,UAAY1C,GACtB+B,GAAkB,oBAAsBA,GAAkBA,EAAesB,EAAQ,EACnF,EAEMC,EAAe,WAAH,OAChBrI,EAAAA,cAAA,OACEC,UAAY,GAAEqI,GAAAA,EAAAA,UAAuBzB,EAAc,GAAEyB,GAAAA,EAAAA,SAAuB,IAC5E,cAAY,cACZtE,YAAamC,GACboC,UAAWpC,GACXqC,YAAarC,IAEbnG,EAAAA,cAAA,OAAKC,UAAWqI,GAAAA,EAAAA,YAAwBG,QAAS/B,GAC/C1G,EAAAA,cAAA,KAAGC,UAAU,wBAEb2F,EAAKC,IAAI,YAAcD,EAAKC,IAAI,YAChC7F,EAAAA,cAAC0I,GAAAA,EAAY,CACXC,UAAW/C,EAAKC,IAAI,UAAYgC,EAAQC,OAAO,EAAGlC,EAAKC,IAAI,UAAU+C,IAAI,eAAgB,WAAaf,EACtGgB,SAAUV,EACVpD,MACEjE,EACI,EACA8E,EAAKC,IAAI,kBACTD,EAAKG,MAAM,CAAC,iBAAkB,WAAaH,EAAKC,IAAI,UAAY,EAAI,GACpE,IAKV7F,EAAAA,cAAA,OACEC,UAAY,GAAEqI,GAAAA,EAAAA,mBACXzB,GAAcjB,EAAKC,IAAI,YAAcD,EAAKC,IAAI,WAAWyB,KAAO,EAAIgB,GAAAA,EAAAA,MAAmB,KAE1FG,QAASP,EACT,cAAY,qBAEZlI,EAAAA,cAACW,GAAAA,EAAU,CACTC,IACEE,EACI8E,EAAKG,MAAM,CAAC,SAAU,aACtBwB,GAAW3B,EAAKG,MAAM,CAAC,iBAAkB,kBAAoBH,EAAKG,MAAM,CAAC,QAAS,iBAExFlF,cAAeA,EACfE,eAAgBA,EAChBD,OAAQA,KAGZd,EAAAA,cAAA,OAAKC,UAAWqI,GAAAA,EAAAA,aAAyB,cAAY,uBAClD9B,EAAeX,IAAI,cAClB7F,EAAAA,cAAA,WACEA,EAAAA,cAAA,QACEC,UAAWqI,GAAAA,EAAAA,KACXQ,wBAAyB,CACvBC,OAAQnD,EAAKC,IAAI,SAEnB,cAAY,yBAIhBW,EAAeX,IAAI,eACnB7F,EAAAA,cAAA,WACG4F,EAAKC,IAAI,oBACR7F,EAAAA,cAAA,QACEC,UAAWqI,GAAAA,EAAAA,gBACX,cAAY,qBACZQ,wBAAyB,CACvBC,OAAQ5D,GAAYS,EAAKC,IAAI,SAAUW,EAAeX,IAAI,eAAe,MAI7E,GAEF7F,EAAAA,cAAA,QACEC,UAAWqI,GAAAA,EAAAA,MACX,cAAY,oBACZQ,wBAAyB,CACvBC,OAAQ5D,GACNS,EAAKC,IAAI,qBAAuBD,EAAKC,IAAI,SACzCW,EAAeX,IAAI,eACnB,MAILD,EAAKC,IAAI,UACR7F,EAAAA,cAAA,QAAM8I,wBAAyB,CAAEC,OAAQnD,EAAKC,IAAI,UAAY5F,UAAWqI,GAAAA,EAAAA,SAI/EtI,EAAAA,cAACgJ,GAAAA,EAAM,CACL/I,UAAWqI,GAAAA,EAAAA,MACXW,SAAS,EACTC,QAAS5E,GAAW6E,QAClB,SAAAC,GAAC,QACGnC,GAAUmC,EAAEvD,IAAI,UAAYoB,EAASF,MACrCG,GAAekC,EAAEvD,IAAI,SAAWyB,GAAQJ,MACxCC,GAAYiC,EAAEvD,IAAI,SAAWwB,EAAYD,GAASD,EAAS,IAEjE5I,MAAO,GACP8K,YAAY,IACZtE,MAAO4C,EACP2B,SAAUvB,EACVwB,cAAc,EACdC,eAAe,EACfC,iBAAkB5C,EAAa,GAAK,UACpC6C,SAAU1C,EACV,cAAY,uBAOdhH,EAAAA,cAAC2J,GAAAA,EAAM,CACLC,MAAOjD,EAAOZ,MAAM,CAAC,KAAM,cAC3B,cAAY,wBACZa,SAAUqB,EACVhI,UAAWqI,GAAAA,EAAAA,OACXoB,UACGG,EAAAA,GAAAA,IAAU5C,IAAWA,GAAUF,IAC/B8C,EAAAA,GAAAA,IAAU3C,IAAgBA,GAAeI,IACzCuC,EAAAA,GAAAA,IAAU1C,IAAaA,EAAWC,EAAQC,KAK7C,EAGR,OAAOb,EAAeX,IAAI,cAAgB7F,EAAAA,cAAC8J,EAAAA,EAAQ,KAAEzB,KAA6BA,GACpF,CAEA,QAAelE,EAAAA,EAAAA,MACbmC,IACA,SAAClC,EAAWC,GAAS,OACnBD,EAAUoC,iBAAmBnC,EAAUmC,gBACvCpC,EAAUwB,OAASvB,EAAUuB,MAC7BxB,EAAUqC,SAAWpC,EAAUoC,QAC/BrC,EAAUvD,gBAAkBwD,EAAUxD,eACtCuD,EAAUyC,aAAexC,EAAUwC,YACnCzC,EAAUsC,eAAiBrC,EAAUqC,cACrCtC,EAAUuC,SAAWtC,EAAUsC,QAC/BvC,EAAUwC,WAAavC,EAAUuC,QAAQ,I,oiCC5LtC,SAASmD,GAAexD,GAC7B,IAAQC,EAAgGD,EAAhGC,eAAgBZ,EAAgFW,EAAhFX,KAAMa,EAA0EF,EAA1EE,OAAQ5F,EAAkE0F,EAAlE1F,cAAe6F,EAAmDH,EAAnDG,aAAcC,EAAqCJ,EAArCI,OAAQC,EAA6BL,EAA7BK,SAAU7F,EAAmBwF,EAAnBxF,eAC/EgG,EAAYN,EAAOV,MAAM,CAAC,UAAWH,EAAKC,IAAI,MAAO,UACrDmB,EACJ,QAAUR,EAAeX,IAAI,cAC5B,GAAKW,EAAeX,IAAI,mBAAqBW,EAAeX,IAAI,iBAE7DoB,EAASD,EAAc,KAAOR,EAAeX,IAAI,uBACjDqB,EAAcF,EAAc,KAAOR,EAAeX,IAAI,iBACtDsB,EAAWH,EAAc,KAAOR,EAAeX,IAAI,mBACnDuB,EAAQ1B,GAASe,GACjBY,EAAYzB,EAAKC,IAAI,qBAAuBD,EAAKC,IAAI,SACrDyB,EAAOtB,GAAQS,GACkD3H,EAAAC,IAA3CC,EAAAA,EAAAA,UAAS4G,EAAKG,MAAM,CAAC,SAAU,aAAY,GAAhEjF,EAAMhC,EAAA,GAAE2I,EAAS3I,EAAA,GAEoBuC,EAAAtC,IAAdC,EAAAA,EAAAA,UAAS,MAAK,GAArCuI,EAAOlG,EAAA,GAAEmG,EAAUnG,EAAA,GACOqG,EAAA3I,IAAXC,EAAAA,EAAAA,UAAS,GAAE,GAA1B2I,EAAGD,EAAA,GAAEE,EAAMF,EAAA,GACZG,GAAWjC,EAAKC,IAAI,aAAcZ,EAAAA,EAAAA,MAAK,KAAK6C,OAAO,EAAGlC,EAAKC,IAAI,UAerE,OACE7F,EAAAA,cAAA,OAAKC,UAAWqI,GAAAA,EAAAA,eAA2B,cAAY,eACrDtI,EAAAA,cAAA,OAAKC,UAAWqI,GAAAA,EAAAA,YAAwBG,QAAS/B,EAAc,cAAY,qBACzE1G,EAAAA,cAAA,KAAGC,UAAU,uBAEfD,EAAAA,cAAA,OAAKC,UAAWqI,GAAAA,EAAAA,kBACZ1C,EAAKC,IAAI,YAAcD,EAAKC,IAAI,YAChC7F,EAAAA,cAAA,OAAKC,UAAWqI,GAAAA,EAAAA,YAAwB,cAAY,kBAChD1C,EAAKC,IAAI,YAAcD,EAAKC,IAAI,YAChC7F,EAAAA,cAAC0I,GAAAA,EAAY,CACXC,UACE/C,EAAKC,IAAI,UAAYgC,EAAQC,OAAO,EAAGlC,EAAKC,IAAI,UAAU+C,IAAI,eAAgB,WAAaf,EAE7FgB,SAlBO,SAAA9D,GACnByC,EAAWzC,GACX0C,EAAU,UAAY1C,EACxB,EAgBcA,MACEjE,EACI,EACA8E,EAAKC,IAAI,kBACTD,EAAKG,MAAM,CAAC,iBAAkB,WAAaH,EAAKC,IAAI,UAAY,EAAI,GACpE,KAMd7F,EAAAA,cAAA,OAAKC,UAAWqI,GAAAA,EAAAA,gBACdtI,EAAAA,cAACW,GAAAA,EAAU,CACTC,IACEE,EACI8E,EAAKG,MAAM,CAAC,SAAU,aACtBwB,GAAW3B,EAAKG,MAAM,CAAC,iBAAkB,kBAAoBH,EAAKG,MAAM,CAAC,QAAS,iBAExFlF,cAAeA,EACfE,eAAgBA,EAChBD,OAAQA,KAGZd,EAAAA,cAAA,OAAKC,UAAWqI,GAAAA,EAAAA,KAAiB,cAAY,cAC3CtI,EAAAA,cAAA,OACEC,UAAWqI,GAAAA,EAAAA,OACX,cAAY,oBACZQ,wBAAyB,CAAEC,OAAQnD,EAAKC,IAAI,WAE9C7F,EAAAA,cAAA,OACEC,UAAWqI,GAAAA,EAAAA,KACX,cAAY,kBACZQ,wBAAyB,CAAEC,OAAQnD,EAAKC,IAAI,mBAG5CW,EAAeX,IAAI,eACnB7F,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OACEC,UAAWqI,GAAAA,EAAAA,MACX,cAAY,mBACZQ,wBAAyB,CACvBC,OAAQnD,EAAKC,IAAI,oBACbV,GAAYS,EAAKC,IAAI,oBAAqBW,EAAeX,IAAI,eAC7DV,GAAYS,EAAKC,IAAI,SAAUW,EAAeX,IAAI,kBAGzDD,EAAKC,IAAI,UAAY7F,EAAAA,cAAA,OAAKC,UAAWqI,GAAAA,EAAAA,OAAkB,IAAE1C,EAAKC,IAAI,SAAS,MAIhF7F,EAAAA,cAAA,QAAMC,UAAWqI,GAAAA,EAAAA,eFrGG,SAAA1C,GAAI,OAChCA,EAAKC,IAAI,mBACLD,EAAKC,IAAI,mBAAqB,IAAMD,EAAKC,IAAI,mBAAqB,EAChED,EAAKC,IAAI,eACTD,EAAKC,IAAI,QACX,EAAE,CEgG8CmE,CAAepE,IAC3D5F,EAAAA,cAAA,OAAKC,UAAWqI,GAAAA,EAAAA,QAAoB,cAAY,sBAC9CtI,EAAAA,cAACgJ,GAAAA,EAAM,CACL/I,UAAWqI,GAAAA,EAAAA,MACXW,SAAS,EACTC,QAAS5E,GAAW6E,QAClB,SAAAC,GAAC,QACGnC,GAAUmC,EAAEvD,IAAI,UAAYoB,EAASF,MACrCG,GAAekC,EAAEvD,IAAI,SAAWyB,GAAQJ,MACxCC,GAAYiC,EAAEvD,IAAI,SAAWwB,EAAYD,GAASD,EAAS,IAEjE5I,MAAO,GACP8K,YAAY,IACZtE,MAAO4C,EACP2B,SA3FQ,SAAAtB,GAClBJ,EAAOI,EAAYnC,IAAI,SACzB,EA0FY0D,cAAc,EACdG,SAAU1C,EACV,cAAY,sBAOdhH,EAAAA,cAAC2J,GAAAA,EAAM,CACLC,MAAOjD,EAAOZ,MAAM,CAAC,KAAM,cAC3Ba,SAnGU,WACpBA,EAASe,EACX,EAkGY1H,UAAWqI,GAAAA,EAAAA,OACX,cAAY,uBACZoB,UACGG,EAAAA,GAAAA,IAAU5C,IAAWA,GAAUF,IAC/B8C,EAAAA,GAAAA,IAAU3C,IAAgBA,GAAeI,IACzCuC,EAAAA,GAAAA,IAAU1C,IAAaA,EAAWC,EAAQC,OAQ3D,CAEA,QAAelD,EAAAA,EAAAA,MACb4F,IACA,SAAC3F,EAAWC,GAAS,OACnBD,EAAUoC,iBAAmBnC,EAAUmC,gBACvCpC,EAAUwB,OAASvB,EAAUuB,MAC7BxB,EAAUqC,SAAWpC,EAAUoC,QAC/BrC,EAAUvD,gBAAkBwD,EAAUxD,eACtCuD,EAAUsC,eAAiBrC,EAAUqC,cACrCtC,EAAUuC,SAAWtC,EAAUsC,QAC/BvC,EAAUwC,WAAavC,EAAUuC,QAAQ,IC/K7C,IAAgB,QAAU,iCAAiC,SAAW,2DAA2D,UAAY,4DAA4D,YAAc,gDAAgD,gBAAkB,yCAAyC,OAAS,gCAAgC,iBAAmB,0CAA0C,iBAAmB,0CAA0C,mBAAqB,4CAA4C,kBAAoB,2CAA2C,QAAU,iCAAiC,KAAO,8BAA8B,UAAY,mCAAmC,cAAgB,8DAA8D,MAAQ,+BAA+B,YAAc,qCAAqC,eAAiB,wCAAwC,aAAe,sCAAsC,IAAM,gDAAgD,OAAS,sDAAsD,cAAgB,uCAAuC,aAAe,sCAAsC,WAAa,oCAAoC,WAAa,wDAAwD,OAAS,gCAAgC,OAAS,gCAAgC,UAAY,6DAA6D,WAAa,+DAA+D,iBAAmB,4EAA4E,gBAAkB,0EAA0E,aAAe,sCAAsC,OAAS,iC,2LCD3yDqD,GAAUzF,MAAMyF,QAETC,GAAa,SAACC,EAAOC,EAASvL,GACzC,OAAIuL,EAAQC,OAAS,IAAMJ,GAAQE,GAAe,MAE7CF,GAAQE,EAAMC,EAAQ,OAAMD,EAAMC,EAAQ,IAAM,IAEjD,GAAKA,EAAQC,QACfF,EAAMC,EAAQ,IAAIA,EAAQ,IAAMvL,EACzBA,IAGJoL,GAAQE,EAAMC,EAAQ,IAAIA,EAAQ,OAAMD,EAAMC,EAAQ,IAAIA,EAAQ,IAAM,IAEzE,GAAKA,EAAQC,QACfF,EAAMC,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAAMvL,EACrCA,IAGJoL,GAAQE,EAAMC,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,OAAMD,EAAMC,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAAM,IAEjG,GAAKA,EAAQC,QACfF,EAAMC,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAAMvL,EACjDA,IAGJoL,GAAQE,EAAMC,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,OAC7DD,EAAMC,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAAM,IAE1DD,EAAMC,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAAMvL,EAE7DA,KACT,EAEayL,GAAe,SAACH,EAAOC,GAClC,OAAIA,EAAQC,OAAS,IAAMJ,GAAQE,KAAWF,GAAQE,EAAMC,EAAQ,KAAa,KAE7E,GAAKA,EAAQC,OAAeF,EAAMC,EAAQ,IAAIA,EAAQ,IAErDH,GAAQE,EAAMC,EAAQ,IAAIA,EAAQ,KAEnC,GAAKA,EAAQC,OAAeF,EAAMC,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAEjEH,GAAQE,EAAMC,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,KAE/C,GAAKA,EAAQC,OAAeF,EAAMC,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAE7EH,GAAQE,EAAMC,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,MAE3D,GAAKA,EAAQC,OAAeF,EAAMC,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAAIA,EAAQ,IAFlB,KAJZ,KAJZ,IAatD,ECpDaG,GAAW,CACtBC,OAAQ,CACNC,QAAS,CACPC,MAAO,EACPC,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRtL,IAAK,GACLuL,WAAY,EACZC,YAAY,EACZC,UAAW,EACXC,cAAe,SACfC,KAAM,EACNC,WAAY,qBAEdC,cAAe,CACbX,MAAO,EACPC,IAAK,EACLE,YAAa,GACbE,WAAY,EACZO,WAAY,EACZR,OAAQ,EACRE,YAAY,EACZO,QAAQ,EACRC,UAAU,EACVC,aAAc,IACdR,UAAW,EACXC,cAAe,SACfC,KAAM,EACN3L,IAAK,GACL4L,WAAY,mBACZM,YAAa,mBACbC,gBAAiB,wBACjBC,iBAAkB,0BAEpBC,cAAe,CACbnB,MAAO,EACPY,WAAY,GACZX,IAAK,EACLC,OAAQ,EACRC,YAAa,EACbC,OAAQ,GACRE,YAAY,EACZC,UAAW,EACXC,cAAe,SACf1L,IAAK,GACL4L,WAAY,gBACZD,KAAM,EACNW,uBAAwB,EACxBC,cAAc,EACdC,aAAc,KAGlBC,SAAU,CACRC,OAAQ,CACNxB,MAAO,GACPY,WAAY,EACZX,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRG,UAAW,EACXC,cAAe,WACfiB,QAAQ,EACR3M,IAAK,GACL4M,SAAU,IACVC,UAAW,GACXlB,KAAM,EACNC,WAAY,WACZkB,SAAS,EACTR,uBAAwB,GACxBC,cAAc,GAEhBF,cAAe,CACbnB,MAAO,EACPY,WAAY,GACZX,IAAK,EACLC,OAAQ,EACRC,YAAa,EACbC,OAAQ,GACRE,YAAY,EACZC,UAAW,EACXC,cAAe,WACf1L,IAAK,GACL4L,WAAY,gBACZD,KAAM,EACNW,uBAAwB,EACxBC,cAAc,EACdC,aAAc,KAGlBO,OAAQ,CACN9B,QAAS,CACPC,MAAO,EACPC,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRC,WAAY,EACZC,YAAY,EACZC,UAAW,EACXC,cAAe,SACfC,KAAM,EACN3L,IAAK,GACL4L,WAAY,UAEdS,cAAe,CACbnB,MAAO,EACPY,WAAY,GACZX,IAAK,EACLC,OAAQ,EACRC,YAAa,EACbC,OAAQ,GACRE,YAAY,EACZC,UAAW,EACXC,cAAe,SACf1L,IAAK,GACL4L,WAAY,gBACZD,KAAM,EACNW,uBAAwB,EACxBC,cAAc,EACdC,aAAc,KAGlBQ,IAAK,CACH/B,QAAS,CACPC,MAAO,EACPC,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRC,WAAY,EACZC,YAAY,EACZC,UAAW,EACXC,cAAe,MACfC,KAAM,EACN3L,IAAK,GACL4L,WAAY,QAGhBqB,OAAQ,CACNhC,QAAS,CACPC,MAAO,EACPC,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRC,WAAY,EACZC,YAAY,EACZC,UAAW,EACXC,cAAe,SACfC,KAAM,EACN3L,IAAK,GACL4L,WAAY,WAGhBsB,OAAQ,CACNjC,QAAS,CACPC,MAAO,EACPC,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRC,WAAY,EACZC,YAAY,EACZC,UAAW,EACXC,cAAe,SACfC,KAAM,EACN3L,IAAK,GACL4L,WAAY,WAGhBuB,UAAW,CACTlC,QAAS,CACPC,MAAO,EACPC,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRC,WAAY,EACZC,YAAY,EACZC,UAAW,EACXC,cAAe,YACfC,KAAM,EACN3L,IAAK,GACL4L,WAAY,cAGhBwB,OAAQ,CACNnC,QAAS,CACPC,MAAO,EACPC,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRC,WAAY,EACZC,YAAY,EACZC,UAAW,EACXC,cAAe,SACfC,KAAM,EACN3L,IAAK,GACL4L,WAAY,WAGhBnJ,OAAQ,CACNwI,QAAS,CACPC,MAAO,EACPC,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRC,WAAY,EACZC,YAAY,EACZC,UAAW,EACXC,cAAe,SACfC,KAAM,EACN3L,IAAK,GACL4L,WAAY,qBAEdC,cAAe,CACbX,MAAO,EACPC,IAAK,EACLE,YAAa,GACbE,WAAY,EACZO,WAAY,EACZR,OAAQ,EACRE,YAAY,EACZO,QAAQ,EACRC,UAAU,EACVC,aAAc,IACdR,UAAW,EACXC,cAAe,SACfC,KAAM,EACN3L,IAAK,GACL4L,WAAY,mBACZM,YAAa,mBACbC,gBAAiB,wBACjBC,iBAAkB,0BAEpBiB,iBAAkB,CAChBnC,MAAO,GACPC,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbY,aAAc,IACdV,WAAY,GACZD,OAAQ,GACRS,QAAQ,EACRP,YAAY,EACZC,UAAW,EACXC,cAAe,SACfC,KAAM,EACN2B,SAAU,EACVtN,IAAK,GACLuN,YAAa,KACb3B,WAAY,cAEdS,cAAe,CACbnB,MAAO,EACPY,WAAY,GACZX,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRE,YAAY,EACZC,UAAW,EACXC,cAAe,SACf1L,IAAK,GACL4L,WAAY,gBACZD,KAAM,EACNW,uBAAwB,EACxBC,cAAc,EACdC,aAAc,KAGlBgB,QAAS,CACPvC,QAAS,CACPC,MAAO,EACPC,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRC,WAAY,EACZC,YAAY,EACZC,UAAW,EACXC,cAAe,UACfC,KAAM,EACN3L,IAAK,GACL4L,WAAY,qBAEdC,cAAe,CACbX,MAAO,EACPC,IAAK,EACLE,YAAa,GACbE,WAAY,EACZO,WAAY,GACZR,OAAQ,EACRE,YAAY,EACZO,QAAQ,EACRC,UAAU,EACVC,aAAc,IACdR,UAAW,EACXC,cAAe,UACfC,KAAM,EACN3L,IAAK,GACL4L,WAAY,mBACZM,YAAa,mBACbC,gBAAiB,wBACjBC,iBAAkB,0BAEpBiB,iBAAkB,CAChBnC,MAAO,GACPC,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbY,aAAc,IACdV,WAAY,GACZD,OAAQ,GACRS,QAAQ,EACRP,YAAY,EACZC,UAAW,EACXC,cAAe,UACfC,KAAM,EACN2B,SAAU,EACVtN,IAAK,GACLuN,YAAa,KACb3B,WAAY,cAEdS,cAAe,CACbnB,MAAO,EACPY,WAAY,GACZX,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRE,YAAY,EACZC,UAAW,EACXC,cAAe,UACf1L,IAAK,GACL4L,WAAY,gBACZD,KAAM,EACNW,uBAAwB,EACxBC,cAAc,EACdC,aAAc,KAGlBiB,OAAQ,CACNf,OAAQ,CACNxB,MAAO,GACPY,WAAY,EACZX,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRG,UAAW,EACXC,cAAe,SACfiB,QAAQ,EACR3M,IAAK,GACL4M,SAAU,IACVC,UAAW,GACXlB,KAAM,EACNC,WAAY,SACZkB,SAAS,EACTY,MAAM,EACNpB,uBAAwB,GACxBC,cAAc,GAEhBF,cAAe,CACbnB,MAAO,EACPY,WAAY,GACZX,IAAK,EACLC,OAAQ,EACRC,YAAa,EACbC,OAAQ,GACRE,YAAY,EACZC,UAAW,EACXC,cAAe,SACf1L,IAAK,GACL4L,WAAY,gBACZD,KAAM,EACNW,uBAAwB,EACxBC,cAAc,EACdC,aAAc,KAGlBmB,MAAO,CACL1C,QAAS,CACPC,MAAO,GACPY,WAAY,GACZX,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRG,UAAW,EACXF,WAAY,EACZG,cAAe,QACfC,KAAM,EACN3L,IAAK,GACL4L,WAAY,QACZkB,SAAS,EACTY,MAAM,IAGVE,QAAS,CACP3C,QAAS,CACPC,MAAO,GACPY,WAAY,GACZX,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRG,UAAW,EACXF,WAAY,EACZG,cAAe,UACfC,KAAM,EACN3L,IAAK,GACL4L,WAAY,UACZ8B,MAAM,IAGVG,UAAW,CACT5C,QAAS,CACPC,MAAO,GACPY,WAAY,GACZX,IAAK,EACLC,OAAQ,EACRC,YAAa,GACbC,OAAQ,GACRG,UAAW,EACXF,WAAY,EACZG,cAAe,YACfC,KAAM,EACN3L,IAAK,GACL4L,WAAY,YACZkB,SAAS,EACTY,MAAM,IAGVI,UAAW,CACT7C,QAAS,CAAC,ICjbP,SAAS8C,GAAUhH,GACxB,IAAQX,EAA+CW,EAA/CX,KAAMY,EAAyCD,EAAzCC,eAAgBgH,EAAyBjH,EAAzBiH,KAAM/N,EAAmB8G,EAAnB9G,KAAMgO,EAAalH,EAAbkH,SAC1C,IAAK7H,EAAKC,IAAI,SAAU,OAAO7F,EAAAA,cAAC4D,EAAAA,SAAQ,MACxC,IAAMwB,EAAQQ,EAAKC,IAAI,SACjB6H,EAAW9H,EAAKC,IAAI,oBAEpB8H,GAAaC,EAAAA,EAAAA,UAAQ,kBAAOH,EAAW,EAAoB,EAAhB5K,KAAKgL,SAAe,CAAC,GAAG,CAACJ,IACpEK,EAAaJ,EAAW,EACxBK,EAAiB,UAAYvH,EAAeX,IAAI,cACtD,OAAI,IAAUD,EAAKC,IAAI,aAAqB7F,EAAAA,cAAC4D,EAAAA,SAAQ,MAGnD5D,EAAAA,cAAA,OACEC,UACG,GAAE+N,GAAAA,SAAoBA,GAAAA,WAAsBA,GAAWxH,EAAeX,IAAI,cAC1EiI,EAAc,GAAEE,GAAAA,aAA2B,GAAEA,GAAAA,UAEhD,cAAY,cACZ9N,MAAO,CACL+N,YAAaN,EAAa,KAC1BlO,KAAMA,EAAOA,EAAO,KAAO,SAI3B,CACEuN,QACEhN,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,MACdhO,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,IACXlF,wBAAyB,CACvBC,OAAQ+E,EAAa3I,GAAYuI,EAAUlH,EAAeX,IAAI,eAAe,GAAQ,MAGzF7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,UAElBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,OACdhO,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,IACXlF,wBAAyB,CAAEC,OAAQ5D,GAAYC,EAAOoB,EAAeX,IAAI,eAAe,MAE1F7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,WAItB/L,OACEjC,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,QACdhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YACdhO,EAAAA,cAAA,QAAM8I,wBAAyB,CAAEC,OAAQ5D,GAAYC,EAAOoB,EAAeX,IAAI,mBAEjF7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,QACdhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,OAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,UAGnBF,GAAcC,GACb/N,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YACdhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,SACdhO,EAAAA,cAAA,YAAM,QACNA,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAElBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,eACdhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,UAChBhO,EAAAA,cAAA,QACE8I,wBAAyB,CAAEC,OAAQ5D,GAAYuI,EAAUlH,EAAeX,IAAI,kBAE9E7F,EAAAA,cAAA,WACAA,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,WAAsB,KACtChO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAM1BvB,OACEzM,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,WACEA,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,QACE8I,wBAAyB,CACvBC,OAAQ5D,GAAYC,EAAOoB,EAAeX,IAAI,eAAeL,QAAQ,IAAK,QAI/EsI,GAAcC,GACb/N,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,eACdhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,QACdhO,EAAAA,cAAA,QACE8I,wBAAyB,CACvBC,OAAQ5D,GAAYuI,EAAUlH,EAAeX,IAAI,eAAeL,QAAQ,IAAK,QAInFxF,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,KAAgB,SAKxCzB,OACEvM,EAAAA,cAAC4D,EAAAA,SAAQ,KACNkK,EACC9N,EAAAA,cAAA,WACEA,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,SACdhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAElBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,SAChBhO,EAAAA,cAAA,QAAM8I,wBAAyB,CAAEC,OAAQ5D,GAAYuI,EAAUlH,EAAeX,IAAI,kBAClF7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,UACdhO,EAAAA,cAAA,YAAM,SAERA,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAGlBhO,EAAAA,cAAA,WACEA,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,QAAM8I,wBAAyB,CAAEC,OAAQ5D,GAAYC,EAAOoB,EAAeX,IAAI,kBAC/E7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,cAKxBtB,OACE1M,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,WAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,cAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YACdhO,EAAAA,cAAA,QACE8I,wBAAyB,CACvBC,OAAQ5D,GAAYuI,GAAsBtI,EAAOoB,EAAeX,IAAI,eAAeL,QAAQ,IAAK,SAM1GmH,UACE3M,EAAAA,cAAC4D,EAAAA,SAAQ,KACNkK,EACC9N,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YACdhO,EAAAA,cAAA,OAAKC,UAAY,GAAE+N,GAAAA,kBAA+BD,EAAiB,GAAM,GAAEC,GAAAA,UACzEhO,EAAAA,cAAA,QAAMC,UAAW+N,GAAAA,MACd,IAAI,QACAhO,EAAAA,cAAA,WAAK,aAAgB,KAE5BA,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,WAChBhO,EAAAA,cAAA,QACE8I,wBAAyB,CACvBC,OAAQ5D,GAAYuI,EAAUlH,EAAeX,IAAI,eAAeL,QAAQ,IAAK,OAGjFxF,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,cAIpBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,QACdhO,EAAAA,cAAA,QACE8I,wBAAyB,CACvBC,OAAQ5D,GAAYC,EAAOoB,EAAeX,IAAI,eAAeL,QAAQ,IAAK,OAG9ExF,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,WAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,WAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,gBAKxBpB,OACE5M,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,WAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,UACdhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YACfF,GAAc9N,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,UAC/BhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,WAChBhO,EAAAA,cAAA,QACE8I,wBAAyB,CACvBC,OAAQ5D,GAAY2I,EAAaJ,EAAWtI,EAAOoB,EAAeX,IAAI,kBAG1E7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAElBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAGpBf,OACEjN,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,QAChBhO,EAAAA,cAAA,QACE8I,wBAAyB,CACvBC,OAAQ5D,GAAY2I,EAAaJ,EAAWtI,EAAOoB,EAAeX,IAAI,mBAK9EwH,UACErN,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,KACXlF,wBAAyB,CACvBC,OAAQ5D,GAAY2I,EAAaJ,EAAWtI,EAAOoB,EAAeX,IAAI,mBAK9EoG,SACEjM,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,KACXlF,wBAAyB,CACvBC,OAAQ5D,GAAY2I,EAAaJ,EAAWtI,EAAOoB,EAAeX,IAAI,mBAK9E2G,IACExM,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,WAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,WAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,WAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,KACXlF,wBAAyB,CAAEC,OAAQ5D,GAAYC,EAAOoB,EAAeX,IAAI,kBAE3E7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YACfF,GAAcC,GACb/N,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YACdhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,UAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,KACXlF,wBAAyB,CAAEC,OAAQ5D,GAAYuI,EAAUlH,EAAeX,IAAI,kBAE9E7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aACdhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,eAM1Bb,MACEnN,EAAAA,cAAC4D,EAAAA,SAAQ,KACNkK,EACC9N,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YACdhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,OACdhO,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,KACXlF,wBAAyB,CAAEC,OAAQ5D,GAAYuI,EAAUlH,EAAeX,IAAI,kBAE9E7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,cAIpBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,QACdhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,KACXlF,wBAAyB,CAAEC,OAAQ5D,GAAYC,EAAOoB,EAAeX,IAAI,kBAE3E7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,cAKxBZ,QACEpN,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,WAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,UACdhO,EAAAA,cAAA,OAAKC,UAAY,GAAE+N,GAAAA,SAAsBF,EAAc,GAAEE,GAAAA,SAAsB,KAC7EhO,EAAAA,cAAA,QACE8I,wBAAyB,CACvBC,OAAQ5D,GAAY2I,EAAaJ,EAAWtI,EAAOoB,EAAeX,IAAI,mBAI5E7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,WAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAElBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAGpBxD,OACExK,EAAAA,cAAC4D,EAAAA,SAAQ,KACNkK,EACC9N,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YACdhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,MACdhO,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,KACXlF,wBAAyB,CAAEC,OAAQ5D,GAAYC,EAAOoB,EAAeX,IAAI,kBAE3E7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAElBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,OACdhO,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,KACXlF,wBAAyB,CACvBC,OAAQ5D,GAAYuI,EAAUlH,EAAeX,IAAI,kBAGrD7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,cAIpBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,QACdhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,aAChBhO,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,KACXlF,wBAAyB,CAAEC,OAAQ5D,GAAYC,EAAOoB,EAAeX,IAAI,eAAe,MAE1F7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,eAKxBR,GAIV,CAUA,QAAerJ,EAAAA,EAAAA,MACboJ,IACA,SAACnJ,EAAWC,GAAS,OACnBD,EAAUoC,iBAAmBnC,EAAUmC,gBACvCpC,EAAUwB,OAASvB,EAAUuB,MAC7BxB,EAAUoJ,OAASnJ,EAAUmJ,MAC7BpJ,EAAUoC,iBAAmBnC,EAAUmC,cAAc,I,6+BC5XlD,SAAS0H,GAAS3H,GACvB,IAAQC,EAA+DD,EAA/DC,eAAgBjI,EAA+CgI,EAA/ChI,MAAO4P,EAAwC5H,EAAxC4H,YAAaC,EAA2B7H,EAA3B6H,QAASC,EAAkB9H,EAAlB8H,MAAOC,EAAW/H,EAAX+H,OACtDC,EAAQ9L,GAAAA,GAAA,GACT+D,EAAeX,IAAI,gBAAgB2I,QACnCjE,GAAS/D,EAAeX,IAAI,UAAUW,EAAeX,IAAI,gBAG9D,OACE7F,EAAAA,cAAA,OACEC,UAAY,GAAE+N,GAAAA,SAAoBA,GAAAA,UAAqBA,GAAWO,EAASnD,cAC3ElL,MAAO,CACLuO,UAAWF,EAASG,SAASpQ,OAAS6P,EAAcI,EAAS1D,YAC7DtM,MAAOA,EAAQgQ,EAAS7D,MAAQ,GAElC,cAAY,eAEZ1K,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,YAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,gBAChBhO,EAAAA,cAAA,OAAKC,UAAY,GAAE+N,GAAAA,eAA0BA,GAAAA,YAC5CM,IAAW9H,EAAeX,IAAI,eAC7B7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,OACbxJ,MAAMmK,MAAM,KAAMnK,MAAM6J,EAAM/G,OAAO1K,KAAI,SAACgS,EAAGC,GAC5C,IAAMpI,EAAS2H,EAAQvI,IAAIwI,EAAMtI,MAAM,CAAC8I,EAAW,KAAKjG,IAAI,aAAc,GAEpEkG,EAAaT,EAAMtI,MAAM,CAAC8I,EAAW,IAE3C,OACE7O,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,MACXe,IAAK,OAASF,EACd3O,MAAO,CAAE3B,MAAOkI,EAAOZ,IAAI,SAAWiJ,IAEtC9O,EAAAA,cAACuN,GAAS,CAAC3H,KAAMa,EAAQD,eAAgBA,EAAgBgH,KAAMe,EAASrD,gBAG9E,KAKV,CAEA,I,wBCvBA,SAAS8D,KACP,IAAMC,EAAmB,IAAIC,GAAAA,GAS7B,OAPAD,EAAiBE,MAAQ,GACzBF,EAAiBG,MAAQ,GACzBH,EAAiBI,KAAO,EACxBJ,EAAiBK,SAAW,GAC5BL,EAAiBM,UAAY,GAC7BN,EAAiBO,QAAU,EAEpBP,CACT,CA9CAQ,GAAAA,GAAAA,YAA4B,IAC5BA,GAAAA,GAAAA,kCAAiD,EACjDA,GAAAA,GAAAA,Y,gBCDaC,GAAoB,SACpBC,GAAqB,QACrBC,GAAoB,SACpBC,GAAe,SAErB,SAASC,GAAgBrJ,GAC9B,OAAOA,EAAOV,MAAM,CAAC,UAAW,mBAC5BgK,EAAAA,GAAAA,IAAkB,CAChB5G,OAAQ6G,GAAAA,GACRzR,MAAO,IACPD,OAAQ,KACR2R,KAAMxJ,EAAOV,MAAM,CAAC,UAAW,kBAC/BmK,gBAAiB,cACjBC,UAAU,EACVC,MAAM,IAER,mCACN,CAEe,SAASC,GAAY9B,EAAU+B,GAC5C,IAAMC,EAAc,IAAId,GAAAA,GAAAA,KAAkBlB,EAASpM,OAC7CqO,EAAsBjC,EAASkC,aAAelC,EAASjQ,OACvDoS,EAAU,IAAIjB,GAAAA,GAClBc,EACA,IAAId,GAAAA,GACF,EACA5M,KAAK8N,MACHH,GAAuBjC,EAASqC,UAAYrC,EAASjQ,OAASiQ,EAASjQ,OAASiQ,EAASqC,UAAY,IAEvGrC,EAASsC,YACThO,KAAK8N,MAAMH,EAAsB3N,KAAKE,IAAIwL,EAASqC,UAAWrC,EAASjQ,WAGrEwS,EAAMrB,GAAAA,GAAAA,KAAiBlB,EAASpM,MAAM5D,MAAQmS,EAAUH,EAAa,CACzEQ,QAAQ,EACRC,UAAWvB,GAAAA,GAAAA,OACXwB,YAAa,GACbC,YAAa,GACbC,gBAAiB,CACfF,aAAa,EACbC,aAAa,KAsIjB,OAlIAJ,EAAIJ,QAAQH,YAAYQ,QAAS,EACjCD,EAAI1B,MAAQ,EACZ0B,EAAIM,YAAa,EAEjBN,EAAIvS,MAAQgQ,EAAShQ,MACrBuS,EAAIxS,OAASuE,KAAKE,IAAIwL,EAASjQ,OAAQiQ,EAASqC,WAChDE,EAAIG,aAAc,EAClBH,EAAIO,YAAc9C,EAAS8C,YAC3BP,EAAIQ,OAAS/C,EAASgD,EACtBT,EAAIzO,EAAIkM,EAASlM,EACjByO,EAAIU,KAAOjD,EAASlM,EACpByO,EAAItO,EAAI+L,EAAS/L,EACjBsO,EAAIW,KAAOlD,EAASkD,KACpBX,EAAIY,OAASnD,EAASoD,MAItBb,EAAIc,GAAG,cAAc,WACnBd,EAAIe,SAAU,CAChB,IAEAf,EAAIc,GAAG,aAAa,WAClBd,EAAIe,SAAU,CAChB,IAEAf,EAAIc,GAAG,aAAa,WACdrD,EAASuD,SACTvD,EAASxN,gBA2BT,mBAAqBwN,EAASwD,SAChCxD,EAASwD,QAAQ,CACfnR,IAAK2N,EAASpM,MAAMvB,IACpByB,EAAGyO,EAAIzO,EAAIiO,EACX9N,EAAGsO,EAAItO,EAAI8N,EACX/R,MAAOuS,EAAIvS,MAAQ+R,EACnBhS,OAAQwS,EAAIxS,OAASgS,EACrB0B,WACGzD,EAASqC,UAAYrC,EAASjQ,OAASiQ,EAASjQ,OAASiQ,EAASqC,UAAY,GAAKN,GAE5F,IAEAQ,EAAIc,GAAG,YAAY,WAWb,oBAAsBrD,EAASwD,SAASxD,EAASwD,QAAQ,KAC/D,IAEAjB,EAAIc,GAAG,aAAa,SAAA7P,GAClB,IAAIwM,EAASuD,SACTvD,EAASxN,eAAgB,CAC3B,IAAMkR,GACH1D,EAAS2D,YAAcnQ,EAAMoQ,KAAKC,OAAO/P,EAAIiO,GAAsB/K,QAAQ,GAC5E,KACCxD,EAAMoQ,KAAKC,OAAO5P,EAAI8N,GAAsB/K,QAAQ,GACvDgJ,EAAS8D,SAASJ,EAIpB,CACF,IAEAnB,EAAIc,GAAG,aAAa,SAAA7P,GAClB,IAAIwM,EAASuD,SACTvD,EAASxN,eAAgB,CAC3B,IAAMkR,GACH1D,EAAS2D,YAAcnQ,EAAMoQ,KAAKC,OAAO/P,EAAIiO,GAAsB/K,QAAQ,GAC5E,KACCxD,EAAMoQ,KAAKC,OAAO5P,EAAI8N,GAAsB/K,QAAQ,GACvDgJ,EAAS8D,SAASJ,EACpB,CACF,IAEAnB,EAAIc,GAAG,YAAY,SAAA7P,GACjB,GAAI+O,EAAIe,QAAS,CACf,GAAItD,EAASuD,QAAS,OACtB,IAAMG,GACH1D,EAAS2D,YAAcnQ,EAAMoQ,KAAKC,OAAO/P,EAAIiO,GAAsB/K,QAAQ,GAC5E,KACCxD,EAAMoQ,KAAKC,OAAO5P,EAAI8N,GAAsB/K,QAAQ,GACvD/B,YAAW,WACT+K,EAAS8D,SAASJ,EACpB,GAAG,IACL,CACAnB,EAAIe,SAAU,CAChB,IAEAf,EAAIc,GAAG,SAAS,SAAA7P,GACd,IAAIwM,EAASuD,QAAb,CACA,IAAMG,GACH1D,EAAS2D,YAAcnQ,EAAMoQ,KAAKC,OAAO/P,EAAIiO,GAAsB/K,QAAQ,GAC5E,KACCxD,EAAMoQ,KAAKC,OAAO5P,EAAI8N,GAAsB/K,QAAQ,GACvD/B,YAAW,WACT+K,EAAS8D,SAASJ,EACpB,GAAG,IAPyB,CAQ9B,IAEOnB,CACT,C,+jCCvKe,SAASwB,GAAiBC,EAAKhU,EAAOD,EAAQkU,EAAgBC,EAAe/D,GAAW,IAADgE,EAAA,KAC9FpC,EAAuB/R,EAAQ,KAAQkU,EAAgB,EAAI,EAChEE,EFPI,SAAmBJ,EAAKhU,EAAOD,GACpC,IAAMsU,EAAU,IAAInD,GAAAA,GAAiB,CACnClR,MAAOA,EACPD,OAAQA,EACRuU,aAAa,EACbC,kBAAkB,EAClBC,YAAY,EACZC,WAAW,EACXC,cAAc,IAGhBL,EAAQM,SAASC,QAAQC,YAAYC,oBAAqB,EAC1DT,EAAQM,SAASI,KAAKpT,MAAMqT,YAAc,OAC1CX,EAAQM,SAASF,WAAY,EAC7BJ,EAAQM,SAASM,uBAAwB,EACzCZ,EAAQa,WAAY,EACpBb,EAAQK,cAAe,EAEvB,IAAMS,EAAY,IAAIjE,GAAAA,GACtBiE,EAAUC,QAAU,CAAC3E,MACrB0E,EAAUZ,kBAAmB,EAC7BF,EAAQgB,MAAMC,SAASH,GACvBnB,EAAIuB,YAAYlB,EAAQU,MACxB,IAAMS,EAAStE,GAAAA,GAAAA,OACfiE,EAAUM,OAASpB,EAAQoB,OAC3BN,EAAUK,OAASA,EACnB,IAAMb,EAAWzD,GAAAA,KAEjB,MAAO,CAACmD,EAASc,EAAWd,EAAQoB,OAAQD,EAAQb,EACtD,CEtB6Ee,CACzE1B,EACAjC,EAAuB/R,EACvB+R,EAAuBhS,GACxB4V,EAAAnV,GAAA4T,EAAA,GAJCwB,KAAKvB,QAAOsB,EAAA,GAAEC,KAAKT,UAASQ,EAAA,GAAEC,KAAKH,OAAME,EAAA,GAAEC,KAAKJ,OAAMG,EAAA,GAAEC,KAAKjB,SAAQgB,EAAA,GAKvEC,KAAKC,UAAY,GACjBD,KAAKE,UAAY,GACjBF,KAAKG,mBAAqB,GAC1BH,KAAKI,iBAAmB,GACxBJ,KAAKK,OAAS,GAMdL,KAAKM,YAAc,WACjB,IAAMC,EAAMhC,EAAKiC,OAAO5X,GACpBuF,OAAO,mBAAqBoS,IAAQpS,OAAO,mBAAqBoS,GAAK9T,KACzE4C,YAAW,WACToR,KAAAA,MACSrC,EAAIsC,QAAQ,sCAClBC,MAAK,SAAUC,GACVA,EAAQ1K,OAAS,OACP,IAAI2K,OACZpU,IAAMmU,EACVH,KAAAA,MACSrC,EAAIsC,QAAQ,sCAClBC,MAAK,SAAUC,GACd,GAAIA,EAAQ1K,OAAS,IAAK,CACxB,IAAMrI,EAAM,IAAIgT,MAChBhT,EAAIpB,IAAMmU,EACVzS,OAAO,mBAAqBoS,GAAO1S,EAC9BM,OAAwB,kBAAGA,OAAwB,gBAAIsS,KAAAA,MAC9D,CACF,IACCK,OAAM,SAAAC,GAELC,QAAQC,IAAIF,EACd,IAEN,IACCD,OAAM,SAAAC,GAELC,QAAQC,IAAIF,EACd,GACJ,GAAG,KACL,EAEAf,KAAKkB,QAAU,WAQb3C,EAAKQ,SAASmC,UACd3C,EAAKgB,UAAU2B,UACf3C,EAAKE,QAAQyC,UACb3C,EAAKqB,OAAOuB,OACd,EAEAnB,KAAKoB,eAAiB,WACpB7C,EAAKgB,UAAU6B,gBACjB,EAEApB,KAAKN,SAAW,SAAA/C,GACd4B,EAAKgB,UAAUG,SAAS/C,EAC1B,EAEAqD,KAAKqB,oBAAsB,SAAApN,GAAK,OAAIsK,EAAK6B,iBAAiBnM,EAAM,EAEhE+L,KAAKsB,SAAW,WACd,IAAMtD,EAAOO,EAAKQ,SAASC,QAAQuC,QAAQvT,MAAMuQ,EAAKgB,WAItDpR,OAAOqT,OAASxD,CAClB,EAEAgC,KAAKyB,cAAgB,SAAAnP,GAOnB,YAL2BxC,GAAzBwC,EAAOZ,IAAI,WACPY,EAAOZ,IAAI,WAAWgQ,MAAK,SAAA1T,GAAK,MAAI,UAAYA,EAAM4D,MAAM,CAAC,UAAW,cAAc,MAAKjB,EAAAA,EAAAA,KAAI,CAAC,GAChG2B,EAAOZ,IAAI,UAAY6M,EAAKiC,OAAOjG,SAASpQ,OAASoU,EAAKiC,OAAOxG,YACjE1H,EAAOZ,IAAI,UACXf,EAAAA,EAAAA,KAAI,CAAC,EAEb,EAEAqP,KAAK2B,UAAY,SACfnB,EACAvG,EACA2H,EACAC,EACAC,EACAC,EACAC,EACAC,EACArE,GAqJA,GAlJAW,EAAKiC,OAASA,EACdjC,EAAKqD,YAAcA,EACnBrD,EAAKwD,cAAgBA,EACrBxD,EAAKyD,WAAaA,EAClBzD,EAAK4B,mBAAqB,GAC1B5B,EAAK2D,aAAe,GACpB3D,EAAKsD,YAAcA,EAAYxH,OAC/BkE,EAAKuD,OAASA,EAAOzH,OACrBkE,EAAKX,QAAUA,EAEfW,EAAK4D,QAAU,SAACjU,EAAG+H,GACjB,IAAKA,EAAQ,IAAMsI,EAAKiC,OAAO4B,WAAa7D,EAAKiC,OAAO6B,cAAe,OAAO,EAE9E,IAAMC,GACHpU,GAAKqQ,EAAKiC,OAAO+B,cAAgBhE,EAAKiC,OAAOgC,OAASjE,EAAKiC,OAAOpJ,OAAS,IAAW,IACrFmH,EAAKiC,OAAOxG,YACdwG,EAAOiC,YAAY,GAErB,OAAgD,MAAzCtM,GAAaoI,EAAK0B,UAAWhK,GAChCvH,KAAKgU,MAAMvM,GAAaoI,EAAK0B,UAAWhK,IACxCF,GACEwI,EAAK0B,UACLhK,EACA,iBAAmBsI,EAAKiC,OAAOvJ,WAC3B,GAAKvI,KAAKgL,SAAW,IACqB,MAAxC4I,EAAW9B,EAAOiC,YAAY,GAAK,GAAYxM,EAAQ,IAAM,GAAKA,EAAQ,GAAK,EAAI,KAEjG,EAGA8L,EAAcY,SAAQ,SAACzI,EAAOjG,GAC5B,IAAM2O,EAAY3O,GAAS8N,EAAc5O,KAAO,EAChDoL,EAAK2D,aAAaxR,MACf6N,EAAKiC,OAAOqC,cAAgB,YAActE,EAAKiC,OAAOqC,aAAajR,MAAM,CAACqC,EAAO,eAC9EsK,EAAKiC,OAAO/J,OACZ8H,EAAKiC,OAAOhK,MACb+H,EAAKiC,OAAOqC,cACR5O,EAAQsK,EAAK2D,aAAajO,EAAQ,GAAK,GAAKsK,EAAKiC,OAAOqC,aAAajR,MAAM,CAACqC,EAAO,WACpFsK,EAAKiC,OAAOrW,SAEpBoU,EAAKuE,YAAc,EAGnBzS,MAAMmK,MAAM,KAAMnK,MAAM6J,EAAM/G,OAAOwP,SAAQ,SAAClI,EAAGC,GAC/C,IAAMpI,EAAS2H,EAAQvI,IAAIwI,EAAMtI,MAAM,CAAC8I,EAAW,KACnD,IAAIpI,EAAOZ,IAAI,gBAAf,CACA,IAAM1D,EAAQ2N,GAAgBrJ,GACxBqI,EAAaT,EAAMtI,MAAM,CAAC8I,EAAW,IACrCqI,EAAYvC,EAAO+B,YAAe/B,EAAOgC,MAAQvO,EAAQ,EAAIA,EAASA,EAC5EsK,EAAKuE,aAAepI,EAChB6D,EAAKuD,OAAO7N,GAAOyG,EAAY,GAAKqH,EAAcnQ,MAAM,CAACqC,EAAOyG,EAAY,EAAG,IAC/E,EACJrK,MAAMmK,MACJ,KACAnK,MAAMiO,EAAgB,EAAIsE,GAAapC,EAAO7H,SAAW6H,EAAO7H,SAAW6H,EAAOxJ,OAClF2L,SAAQ,SAAClI,EAAGuI,GACZ,IAAMC,EAAa3E,GAAiBsE,GAAapC,EAAO7H,SAAW6H,EAAO7H,SAAW,EAAIqK,EACnFhM,EAAO4L,GAAapC,EAAO7H,SAAW6H,EAAO7H,SAAW6H,EAAOxJ,KACrE,GAAIwJ,EAAOxI,QAAUuC,GAAY,GAAK0I,EAAY,CAChD,IAAMC,EAAa3E,EAAKkD,cAAcnP,GACtC,GAAI4Q,GAAcA,EAAW/P,KAAM,CACjC,IAAMgQ,EAAWjH,GACfqC,EAAK6E,gBACHnB,EAAc3P,EAAOZ,IAAI,MAAQ,QAC7BuQ,EAAc3P,EAAOZ,IAAI,MAAQ,QACjCiK,IACE0H,EAAAA,EAAAA,QAAO,CACLjZ,MAAOsE,KAAKgU,MAAMQ,EAAWtR,MAAM,CAAC,UAAW,UAAY2M,EAAKiC,OAAOxG,aACvE7P,OAAQuE,KAAKgU,MAAMQ,EAAWtR,MAAM,CAAC,UAAW,WAAa2M,EAAKiC,OAAOxG,aACzE5G,QAAS8P,KAGjBA,EACA5Q,EACA,CAAC2B,EAAOyG,GACRC,GAEFwB,GAEFoC,EAAKgB,UAAUG,SAASyD,EAC1B,CACF,CAEA9S,MAAMmK,MAAM,KAAMnK,MAAMkO,EAAKuD,OAAO7N,GAAOyG,KAAaiI,SAAQ,SAAClI,EAAG6I,GAClEjT,MAAMmK,MAAM,KAAMnK,MAAMsK,IAAagI,SAAQ,SAAClI,EAAG8I,GAC/C,IACGvB,EAAWpQ,MAAM,CAChBmR,EAAYvC,EAAOgD,WACnB9I,EACA6I,EACAD,EAAgBtM,EAAOA,EAAOiM,EAAa,KAE7C3Q,EAAOZ,IAAI,gBACVY,EAAOV,MAAM,CAAC,QAAS,kBACxB,CACA,IAAM4O,EAASjC,EAAKkF,WAClBxB,EAAc3P,EAAOZ,IAAI,OAASuQ,EAAc3P,EAAOZ,IAAI,OAAS1D,EACpEsE,EACA,CAAC2B,EAAOyG,EAAW6I,EAAWN,EAAYK,IAE5C,IAAK9C,EAAQ,OACb,GAAIA,EAAOkD,aAAenF,EAAKuD,OAAO7N,GAAOyG,GAAa4I,EAAgB9C,EAAOkD,YAAa,OAC9F,IAAM/G,EAAMT,GAAYsE,EAAQrE,GAyBhCpG,GACEwI,EAAK2B,UACL,CAAC6C,EAAWrI,EAAW6I,EAAWD,EAAgBtM,EAAOA,EAAOiM,EAAa,GAC7EtG,GAEE2B,GAAiB,GAAK2E,GACxB1E,EAAK4B,mBAAmBzP,KAAK,CAC3B9H,GAAI0J,EAAOZ,IAAI,MACfxD,EAAGsS,EAAOtS,EAAIsS,EAAOpW,MAAQ,EAC7BiE,EAAGmS,EAAOnS,EAAImS,EAAOrW,OAAS,IAElCoU,EAAKgB,UAAUG,SAAS/C,GACxB4B,EAAK8B,OAAO3P,KAAKiM,EACnB,CACF,GACF,GACF,GAlGsC,CAmGxC,GACF,IACI2B,EAAe,CAEjB,GADAnQ,OAAOwV,oBAAsBpF,EAAK4B,mBAC9BhS,OAAO,mBAAqBoQ,EAAKiC,OAAO5X,KAAOuF,OAAO,mBAAqBoQ,EAAKiC,OAAO5X,IAAI6D,IAAK,OAEpG8R,EAAK+B,aACP,CAEA,GAAI/B,EAAKiC,OAAOoD,eACdrF,EAAKsF,gBAAkBtF,EAAKiC,OAAOoD,eAE/BrF,EAAKiC,OAAO4B,YAAc9D,IAAkBC,EAAKiC,OAAO6B,eAAe,CACzE,IAAMyB,EAAOvF,EACbA,EAAKsB,OAAOkE,KAAI,SAAAC,GACd,GAAIzF,EAAKsF,gBAAiB,CACxB,IAAMI,EAAeH,EAAKD,gBAAgBpa,SAAS,GAAGA,SAAS,GACzDya,EAAQD,EAAahW,wBAAwB7D,MAAQ6Z,EAAazV,YAClE2V,EAAa5F,EAAKsF,gBAAgBM,WAClCC,EAAiBjI,EAAuBgI,EAAcD,EACtDG,EAAelI,GAAwBgI,EAAahW,OAAOC,YAAe8V,EAC1EI,EAAiBnI,EAAuBhO,OAAOC,WAAc,EAAI8V,EAOvE3F,EAAK8B,OAAOsC,SAAQ,SAAA4B,GAClB,IAAMC,EAASD,EAAMrW,EAAIsS,EAAOiC,YAAY,GAAKlE,EAAKiC,OAAOxG,YAAcmC,EAC3E,GAAIoI,EAAMhH,QAAUiH,EAASJ,GAAiBI,EAASH,EAAcE,EAAMna,MAAO,CAChF,IAAMqa,EAAQD,EAASJ,EACvBG,EAAMrW,EAAIqW,EAAMlH,KAAO,KAAQoH,EAAQH,GAAiBC,EAAMhH,OAC1DgH,EAAMrW,EAAI,IAAGqW,EAAMrW,EAAI,GACvBqW,EAAMrW,EAAIiO,EAAuB/R,EAAQma,EAAMna,QACjDma,EAAMrW,EAAIiO,EAAuB/R,EAAQma,EAAMna,MAEnD,CACF,GACF,CACF,GACF,CAEJ,EAEA4V,KAAK0E,kBAAoB,SAAAzO,IACrBA,EAAQ,GAAK,GAAKsI,EAAKiC,OAAOxJ,MAAQb,GAAaoI,EAAK2B,UAAUvS,QAASsI,EAC/E,EAEA+J,KAAK2E,UAAY,SAAC/a,EAAY0I,EAAQ2D,EAAS0E,GAC7C,IAAMiK,EAAWlW,KAAKmW,MAAMlK,EAAa,GACnCmK,EAAcvG,EAAKiC,OAAOxI,OAAStJ,KAAKmW,MAAM5O,EAAQ,GAAK,GAAKA,EAAQ,GAC9E,OAAOvH,KAAKE,IACVF,KAAKgU,MACHnE,EAAKqD,YAAY3L,EAAQ,IAAIA,EAAQ,IAAI2O,GACvCtS,EAAOZ,IAAI,UAAYiJ,EAAa,GAAKiK,EAAW,EAAI,GACvDhb,EAAa2U,EAAKiC,OAAOxG,YAAe,EACzC+K,OAAO3a,GAASmU,EAAKiC,OAAOxI,OAAS,EAAI,GAAKuG,EAAKqD,YAAY3L,EAAQ,KAAK,IAAM,GACjF6O,GAAe7O,EAAQ,GAAK7L,EAAQ,EAAI,IAE7CA,EAAQR,EAAa2U,EAAKiC,OAAOxG,YAErC,EAEAgG,KAAKgF,aAAe,SAAC1S,EAAQ2D,GAAO,OAAK,SAAA6H,GACvC,IAAMiF,EAAYxE,EAAKiC,OAAO+B,YAAehE,EAAKiC,OAAOgC,MAAQvM,EAAQ,GAAK,EAAIA,EAAQ,GAAMA,EAAQ,GAClG6O,EAAcvG,EAAKiC,OAAOxI,OAAStJ,KAAKmW,MAAM5O,EAAQ,GAAK,GAAKA,EAAQ,GAExEe,EADYf,EAAQ,IAAMsI,EAAKwD,cAAc5O,KAAO,GAChCoL,EAAKiC,OAAO7H,SAAW4F,EAAKiC,OAAO7H,SAAW4F,EAAKiC,OAAOxJ,KAEhFiO,EAAchP,EAAQ,GAAKe,EAAOA,EAAOf,EAAQ,GAAK,EAC1D,GACEsI,EAAKiC,OAAOxI,QACXuG,EAAKiC,OAAOqC,cACX,QAAUtE,EAAKiC,OAAOqC,aAAajR,MAAM,CAACkT,EAAa,cAC7B,iBAA1BvG,EAAKiC,OAAOvJ,WAEd,KACEgO,EAAc,GACdA,EAAcjO,GAAQ,GACtBb,GAAaoI,EAAK2B,UAAW,CAAC6C,EAAW9M,EAAQ,GAAIA,EAAQ,GAAIgP,EAAcjO,KAE/EiO,GAA4BjO,EAGhCqH,EACE/L,EACA,CAACyQ,EAAYxE,EAAKiC,OAAOgD,WAAYvN,EAAQ,GAAIA,EAAQ,GAAIgP,IAC7D,WACO1G,EAAKiC,OAAO4B,WAAW7D,EAAKsB,OAAOqF,QACxC3G,EAAKgB,UAAU4F,YAAY5G,EAAK2B,UAAU6C,GAAW9M,EAAQ,IAAIA,EAAQ,IAAIgP,IAC7E1G,EAAK2B,UAAU6C,GAAW9M,EAAQ,IAAIA,EAAQ,IAAIgP,GAAe,KAC5D1G,EAAKiC,OAAO4B,WAAW/S,YAAW,kBAAMkP,EAAKsB,OAAOuF,MAAM,GAAE,IACnE,GACAtH,EAEJ,CAAC,EAEDkC,KAAKqF,kBAAoB,SAAC/S,EAAQ2D,EAASqP,GAAQ,OAAK,SAAAxH,GACtD,IAAMiF,EAAYxE,EAAKiC,OAAO+B,YAAehE,EAAKiC,OAAOgC,MAAQvM,EAAQ,GAAK,EAAIA,EAAQ,GAAMA,EAAQ,GAExGoI,EACE/L,EAAOmC,IAAI,iBAAkB6Q,GAC7B,CAACvC,EAAW9M,EAAQ,GAAI,EAAG,IAC3B,WACOsI,EAAKiC,OAAO4B,WAAW7D,EAAKsB,OAAOqF,QACxC3G,EAAKgB,UAAU4F,YAAY5G,EAAK2B,UAAU6C,GAAW9M,EAAQ,IAAI,GAAG,IACpEsI,EAAK2B,UAAU6C,GAAW9M,EAAQ,IAAI,GAAG,GAAK,KACzCsI,EAAKiC,OAAO4B,WAAW/S,YAAW,kBAAMkP,EAAKsB,OAAOuF,MAAM,GAAE,IACnE,GACAtH,EAEJ,CAAC,EAEDkC,KAAKoD,gBAAkB,SAACpV,EAAOsX,EAAUhT,EAAQ2D,EAAS0E,GACxD,IAAM4K,EAAgB,CAAC,EACjBT,EAAcvG,EAAKiC,OAAOxI,OAAStJ,KAAKmW,MAAM5O,EAAQ,GAAK,GAAKA,EAAQ,GAwC9E,OAvCAsP,EAAcnb,MAAQ+R,EAAuBmJ,EAAS1T,MAAM,CAAC,UAAW,UAAY2M,EAAKiC,OAAOxG,YAChGuL,EAAcpb,OACZgS,EACAzN,KAAKgU,MAAM4C,EAAS1T,MAAM,CAAC,UAAW,WAAa0T,EAAS1T,MAAM,CAAC,UAAW,cAC9E2M,EAAKiC,OAAOxG,YACduL,EAAc9I,UACZ8B,EAAKiC,OAAOxG,YACZmC,GACCoC,EAAKiC,OAAOqC,aAAetE,EAAKiC,OAAOqC,aAAajR,MAAM,CAACqE,EAAQ,GAAI,WAAasI,EAAKiC,OAAOrW,QACnGob,EAAcjJ,aACZtO,EAAM7D,OAAU6D,EAAM5D,MAAQkI,EAAOZ,IAAI,SAAY4T,EAAS1T,MAAM,CAAC,UAAW,aAClF2T,EAAc7I,YAAc1O,EAAM5D,MAClCmb,EAAc3Y,eAAiB2R,EAAKiC,OAAO5T,eAC3C2Y,EAAcrX,EACZiO,EAAuBoC,EAAKoG,UAAUW,EAAS1T,MAAM,CAAC,UAAW,UAAWU,EAAQ2D,EAAS0E,GAC/F4K,EAAcrI,YAAcsI,SAASlT,EAAOZ,IAAI,eAAiBY,EAAOV,MAAM,CAAC,QAAS,mBACxF2T,EAAcxH,YAAcQ,EAAKiC,OAAO+B,cAAgBhE,EAAKiC,OAAOgC,MAAQ,IAAM,EAClFzM,GACEwI,EAAK6B,iBACL,CAAC0E,GAAcvG,EAAK6B,iBAAiB0E,IAAgB,IAAI5O,QACzDxH,KAAKE,IAAI2W,EAAcrX,EAAIiO,EAAuB,GAAI,MAExDoJ,EAAcE,UAAuC,GAA3BnT,EAAOZ,IAAI,aACrC6T,EAAclX,EACZ8N,IACGoC,EAAKiC,OAAOrW,OAASoU,EAAKiC,OAAOhK,KAAO+H,EAAKiC,OAAOxG,YAAe,EACpEuE,EAAKiC,OAAOtI,WACXoN,EAAS1T,MAAM,CAAC,UAAW,WAAa0T,EAAS1T,MAAM,CAAC,UAAW,cAAgB2M,EAAKiC,OAAOxG,aACpGuL,EAAcG,OAASH,EAAclX,EAAI8N,EACzCoJ,EAAcnI,EAAI,EAClBmI,EAAcI,MAAQpH,EAAKiC,OAAOxI,OAAStJ,KAAKmW,MAAM5O,EAAQ,GAAK,GAAKA,EAAQ,IAAMsI,EAAKwD,cAAc5O,KAAO,EAChHoS,EAAcrH,SAAWK,EAAK8G,kBAAkB/S,EAAQ2D,EAASqP,GACjEC,EAAc3M,YAAc,EAC5B2M,EAAcvX,MAAQA,EACtBuX,EAAcjI,KAAO/B,GACrBgK,EAAc3H,QAAUU,EAAgB,KAAOiH,EAAcE,UAAYlH,EAAKX,QAAU,WAAO,EAC/F2H,EAAcxH,YAAcwH,EAAcxH,YAAcQ,EAAKiC,OAAOiC,YAAY,GAAKlE,EAAKiC,OAAOxG,YACjGuL,EAAc5H,QAAUrL,EAAOZ,IAAI,gBAAkB6T,EAAcE,UAE5DF,CACT,EAEAvF,KAAKyD,WAAa,SAACzV,EAAOsE,EAAQ2D,GAChC,IAkBMsP,EAAgB,CAAC,EACvBA,EAAcnD,UAAY7D,EAAKiC,OAAO4B,UACtCmD,EAAcT,YAAcvG,EAAKiC,OAAOxI,OAAStJ,KAAKmW,MAAM5O,EAAQ,GAAK,GAAKA,EAAQ,GACtFsP,EAAcK,SACZrH,EAAKiC,OAAOxI,QACXuG,EAAKiC,OAAOqC,cAAgB,QAAUtE,EAAKiC,OAAOqC,aAAajR,MAAM,CAAC2T,EAAcT,YAAa,aACpGS,EAAc7B,YAAcpR,EAAOZ,IAAI,gBACvC6T,EAAcE,UAAuC,GAA3BnT,EAAOZ,IAAI,aAErC6T,EAAc9I,UACZ8B,EAAKiC,OAAOxG,YACVmC,GACCoC,EAAKiC,OAAOqC,aAAetE,EAAKiC,OAAOqC,aAAajR,MAAM,CAACqE,EAAQ,GAAI,WAAasI,EAAKiC,OAAOrW,QACnG,EACF,IAAMgW,EACJ5B,EAAKsD,YAAY5L,EAAQ,IACvBsI,EAAKuD,OAAO7L,EAAQ,IAAIA,EAAQ,IAAMA,EAAQ,GAC5CsI,EAAKuE,aACJvE,EAAKuD,OAAO7L,EAAQ,IAAIA,EAAQ,IAAMA,EAAQ,GAAK,IAa1D,GAVAsP,EAAcM,cAAgBtH,EAAKuD,OAAO7L,EAAQ,IAAIA,EAAQ,IAUzDkK,EAAL,CAMA,IAAMpR,EAAUuD,EAAOZ,IAAI,YAAc,EAAIY,EAAOZ,IAAI,YAAc,EAqHtE,OApHA6T,EAAcvX,MAAQA,EACtBuX,EAAcvO,KAAOuH,EAAKiC,OAAOxJ,KACjCuO,EAAc3C,UAAY3M,EAAQ,IAAMsI,EAAKwD,cAAc5O,KAAO,EAClEoS,EAAcjJ,aAAetO,EAAM7D,OAAU6D,EAAM5D,MAAQkI,EAAOZ,IAAI,SAAY3C,EAClFwW,EAAc7I,YAAc1O,EAAM5D,MAClCmb,EAAc3M,iBACe9I,GAA3ByO,EAAKiC,OAAO5H,aAA4B2M,EAAc3C,WAAa3M,EAAQ,GAAK,IAAMsI,EAAKiC,OAAO6B,cAC9FyD,WAAWvH,EAAKiC,OAAO5H,aACvB,EACN2M,EAAcnb,MAAQ+R,EAAuBzN,KAAKgU,MAAMpQ,EAAOZ,IAAI,UAAY6T,EAAc3M,YAAc,EAC3G2M,EAAcpb,OAASgS,EAAuBzN,KAAKgU,MAAMpQ,EAAOZ,IAAI,UAAY6T,EAAc3M,YAAc7J,GAC5GwW,EAAcrI,YAAcsI,SAASlT,EAAOZ,IAAI,eAAiBY,EAAOV,MAAM,CAAC,QAAS,mBACxF2T,EAAcnI,EAAInH,EAAQ,GAC1BsP,EAAc3Y,eAAiB2R,EAAKiC,OAAO5T,eAC3C2Y,EAAcQ,YACZxH,EAAKiC,OAAOqC,cACZ,YAActE,EAAKiC,OAAOqC,aAAajR,MAAM,CAAC2T,EAAcT,YAAa,eAE3ES,EAAcxH,YAAcQ,EAAKiC,OAAO+B,cAAgBhE,EAAKiC,OAAOgC,MAASjE,EAAKiC,OAAOpJ,OAAS,IAAM,IAAO,EAE/GmO,EAAcrX,EACZiO,EACAzN,KAAKgU,MACHvC,EAAmB,IAChB7B,EACG,EACA,GACA5P,KAAKsX,KAAKT,EAAcnb,OACxBmU,EAAK4D,QAAQhC,EAAmB,GAAI,CAClClK,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRsI,EAAKiC,OAAOxJ,KAAOf,EAAQ,GAAK,EAChCA,EAAQ,OAxFbsI,EAAKiC,OAAOxI,OACa,iBAA1BuG,EAAKiC,OAAOvJ,YACZhB,EAAQ,GAAK,GAAKsI,EAAKwD,cAAc5O,KADa,EAE/C8C,EAAQ,GAAK,GAEd,KACCsI,EAAKqD,YAAY3L,EAAQ,IAAIC,OAASD,EAAQ,KAC9C7L,EAAQ,EAAImU,EAAKqD,YAAY3L,EAAQ,GAAK,IAAI,IAC7CsI,EAAKqD,YAAY3L,EAAQ,IAAIC,OAChC,KACED,EAAQ,GAAK,IACbsI,EAAKqD,YAAY3L,EAAQ,GAAK,IAAMsI,EAAKqD,YAAY3L,EAAQ,GAAK,GAAG,GAClEsI,EAAKqD,YAAY3L,EAAQ,GAAK,GAAG,GAAG,GACpC,GACJsI,EAAKqD,YAAY3L,EAAQ,IAAIC,OAdH,GA4F5BqP,EAAcxH,aAGpBwH,EAAcI,KAAOJ,EAAcT,aAAevG,EAAKwD,cAAc5O,KAAO,EAAI,EAChFoS,EAAcT,YAAcvG,EAAKiC,OAAOxI,OAAStJ,KAAKmW,MAAM5O,EAAQ,GAAK,GAAKA,EAAQ,GAEtFsP,EAAcxH,YAAcQ,EAAKiC,OAAO+B,cAAgBhE,EAAKiC,OAAOgC,MAASjE,EAAKiC,OAAOpJ,OAAS,IAAM,IAAO,EAE/GmO,EAAcxH,YAAcwH,EAAcxH,YAAcQ,EAAKiC,OAAOiC,YAAY,GAAKlE,EAAKiC,OAAOxG,YACjGuL,EAAcG,OAAShX,KAAKgU,MAC1BvC,EAAmB,IAChB,iBAAmB5B,EAAKiC,OAAOvJ,YAAesH,EAAKiC,OAAO6B,cASvD,EARA,GACA9D,EAAK4D,QAAQhC,EAAmB,GAAI,CAClClK,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRsI,EAAKiC,OAAOxJ,KAAOf,EAAQ,GAAK,EAChCA,EAAQ,OAKlBsP,EAAcU,cAAgB,iBAAmB1H,EAAKiC,OAAOvJ,WAI7DsO,EAAclX,EACZ8N,EACAzN,KAAKgU,MACH6C,EAAcG,QACXnH,EAAKiC,OAAO6B,cACT,EACApM,EAAQ,GAAK,GACZsI,EAAKiC,OAAOqC,cACX,YAActE,EAAKiC,OAAOqC,aAAajR,MAAM,CAAC2T,EAAcT,YAAa,gBAC1E,EAAI7O,EAAQ,KAAO,EAAIA,EAAQ,IAAMsP,EAAc3M,YACpD,IAIR2M,EAAc9I,UAAY8I,EAAcpb,QACxC,YAAcoU,EAAKiC,OAAOqC,aAAajR,MAAM,CAACqE,EAAQ,GAAI,iBAE1DsP,EAAclX,EAAIkX,EAAclX,EAAIkX,EAAc9I,UAAY8I,EAAcpb,OAAS,GAEvFob,EAAcjI,KAAO/B,GACrBgK,EAAc5H,QACZrL,EAAOZ,IAAI,gBACVY,EAAOV,MAAM,CAAC,QAAS,mBACxB2M,EAAKmG,kBAAkBzO,KACtBsP,EAAcE,UAEbF,EAAcnI,EAAImB,EAAKiC,OAAOxJ,KAAO,IAEpC,iBAAmBuH,EAAKiC,OAAOvJ,YAC9BsH,EAAKyD,WAAWpQ,MAAM,CACpBqE,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GAAKsI,EAAKiC,OAAOxJ,KAAOuH,EAAKiC,OAAOxJ,KAAOf,EAAQ,GAAK,KAEpEqI,GACAC,EAAKiC,OAAO6B,cAEZkD,EAAcjI,KAAO/B,IAErBgK,EAAcjI,KAAOiI,EAAcnI,EAAImB,EAAKiC,OAAOxJ,KAAO,EAAIwE,GAAqBC,GACnF8J,EAAc/H,MAAQ+H,EAAcnI,EAAImB,EAAKiC,OAAOxJ,KAAO,EAAI,EAAI,IAInE1E,EAAOZ,IAAI,gBACb6T,EAAcjI,KAAO5B,IAEvB6J,EAAcrH,SAAWK,EAAKyG,aAAa1S,EAAQ2D,GACnDsP,EAAc3H,QAAUU,EAAgB,KAAOiH,EAAcE,UAAYlH,EAAKX,QAAU,WAAO,EAGxF2H,CAvHP,CAFEvE,QAAQC,IAAI,SA0HhB,CACF,C,qFC7jBO,SAASiF,GAAO9T,GACrB,IACEC,EAWED,EAXFC,eACA8T,EAUE/T,EAVF+T,WACA/L,EASEhI,EATFgI,SACAgM,EAQEhU,EARFgU,OACAhc,EAOEgI,EAPFhI,MACA6P,EAME7H,EANF6H,QACAM,EAKEnI,EALFmI,SACAiI,EAIEpQ,EAJFoQ,MACA6D,EAGEjU,EAHFiU,YACAxE,EAEEzP,EAFFyP,YACArB,EACEpO,EADFoO,OAEF,OACE3U,EAAAA,cAAA,OACEC,UACG,GAAE+N,GAAAA,UAAqBA,GAAWO,EAASnD,gBAC3CsD,EAAY,GAAEV,GAAAA,cAA4B,KAC1C,QAAUxH,EAAeX,IAAI,eAAkB,GAAEmI,GAAAA,UAAwB,KACzExH,EAAeX,IAAI,gBAChB8Q,EACG,GAAE3I,GAAAA,eACF,GAAEA,GAAAA,gBACJ,IAEP,cAAY,eACZ9N,MAAO,CACL3B,MAAOiI,EAAeX,IAAI,kBAAoB0I,EAAShD,OAAShN,EAAQ,EAAI,GAAKA,IAGlFic,EAAY5d,KAAI,SAACyR,EAAOzJ,GACvB,IAAI6V,EAAa,EACjB,OACEza,EAAAA,cAAC4D,EAAAA,SAAQ,CAACmL,IAAK,QAAUnK,GACtB8J,GACC1O,EAAAA,cAACkO,GAAQ,CACP1H,eAAgBA,EAChBjI,MAAOiI,EAAeX,IAAI,gBAAkBtH,EAAQ,EAAI,GAAKA,EAC7D4P,YAAaI,EAASJ,YACtBoM,OAAQA,EACRlM,MAAOA,EACPD,QAASA,EACTE,QAAQ,IAGZtO,EAAAA,cAAA,OACEC,UACG,GAAE+N,GAAAA,SACDA,GAAW,SAAWO,EAASpC,QAAUoC,EAASG,SAAY9J,GAAK4V,EAAYlT,KAAO,EAAI,EAAI,EAAK1C,OACjGoJ,GAAWO,EAASnD,gBACvBxG,GAAK4B,EAAeX,IAAI,gBAAgByB,MAAQd,EAAeX,IAAI,gBAAkB,EAAI,GAAK,EAC1F,GAAEmI,GAAAA,QACF,KACJO,EAASyI,cACVzI,EAASyI,aAAajR,MAAM,CAACnB,EAAG,gBAChC,YAAc2J,EAASyI,aAAajR,MAAM,CAACnB,EAAG,eACzC,GAAEoJ,GAAW,QAAUO,EAASyI,aAAajR,MAAM,CAACnB,EAAG,mBACvD,KACJA,GACD2J,EAASyI,cACTzI,EAASyI,aAAajR,MAAM,CAACnB,EAAI,EAAG,gBACpC,YAAc2J,EAASyI,aAAajR,MAAM,CAACnB,EAAI,EAAG,eAC7C,GAAEoJ,GAAW,YAAcO,EAASyI,aAAajR,MAAM,CAACnB,EAAI,EAAG,mBAC/D,IAEP1E,MAAO,CACLuO,YACIF,EAASyI,aAAezI,EAASyI,aAAajR,MAAM,CAACnB,EAAG,WAAa2J,EAASjQ,SAC7EsG,IAAM4V,EAAYlT,KAAO,GAAIiH,EAASzC,wBAA8B,IACpEyC,EAASyI,cAAgB,YAAczI,EAASyI,aAAajR,MAAM,CAACnB,EAAG,eACpE2J,EAAS3D,OACTpE,EAAeX,IAAI,WAAa,GAAK,WAAaW,EAAeX,IAAI,cACrE,EACA0I,EAAS5D,MACV2P,EAAa,EAAI,IACtB/L,EAASJ,YACX5P,OACGiI,EAAeX,IAAI,kBAAoB0I,EAAShD,OAAShN,EAAQ,EAAI,GAAKA,GAC3EgQ,EAAS7D,MACT,EACFuD,YAA+BzH,EAAeX,IAAI,cAAgB,KAGpE7F,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,QACZU,GACAlK,MAAMmK,MAAM,KAAMnK,MAAM6J,EAAM/G,OAAO1K,KAAI,SAACgS,EAAGC,GAC3C,IAAMpI,EAAS2H,EAAQvI,IAAIwI,EAAMtI,MAAM,CAAC8I,EAAW,KAC7CC,EAAaT,EAAMtI,MAAM,CAAC8I,EAAW,IAE3C,IAAKmH,EAAYnQ,IAAIjB,GAAI,MAAO,GAChC,IAAM8V,EAAa1E,EAChBnQ,IAAIjB,GACJ+V,WAAU,SAACC,EAAOC,GAAE,OAAKpU,EAAOZ,IAAI,OAAS+U,EAAM/U,IAAI,IAAMgV,GAAMhM,CAAS,IAEzEiM,EACJ,QAAUtU,EAAeX,IAAI,gBAC7B,SAAWW,EAAeX,IAAI,gBAC9B,QAAUW,EAAeX,IAAI,gBAC5B8O,GAAU,YAAcA,EAAO5O,MAAM,CAACnB,EAAG,qBAAkBX,GAAayW,EACrE1E,EAAYjQ,MAAM,CAACnB,EAAG8V,EAAY,IAClC1E,EAAYjQ,MAAM,CAACnB,EAAG8V,EAAY,IAAM,EACxC,IACClU,EAAeX,IAAI,kBAAoB8Q,EAAQpY,EAAQ,GACxD,KAEN,OAAOoW,GAAU,YAAcA,EAAO5O,MAAM,CAACnB,EAAG,eAC9CJ,MAAMmK,MAAM,KAAMnK,MAAMsK,IAAalS,KAAI,SAACgS,EAAG8I,GAE3C,OADA+C,GAAc,EAEZza,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,MACXe,IAAK,OAAS2I,EACdxX,MAAO,CAAE3B,MAAOkI,EAAOZ,IAAI,SAAWiJ,IAEtC9O,EAAAA,cAACuN,GAAS,CACRwB,IAAK,QAAU2I,EACf9R,KAAMa,EACNhH,KACEuW,EAAYjQ,MAAM,CAACnB,EAAG6V,EAAa,EAAG,IACtCzE,EAAYjQ,MAAM,CAACnB,EAAG6V,EAAa,EAAG,IAAM,GAC3C,WAAajU,EAAeX,IAAI,SAAW,EAAI,IAElDW,eAAgBA,EAChBgH,KAAMe,EAASrD,cACfuC,SAAU,YAAcc,EAASyI,aAAajR,MAAM,CAACnB,EAAG,iBAIhE,IAEA5E,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,MACXe,IAAK,OAASF,EACd3O,MAAO,CAAE3B,MAAOkI,EAAOZ,IAAI,SAAWiJ,IAEtC9O,EAAAA,cAACuN,GAAS,CACRwB,IAAK,QAAUF,EACfjJ,KAAMa,EACNhH,KAAMqb,EACNtU,eAAgBA,EAChBgH,KAAMe,EAASrD,gBAIvB,MAKZ,IAGN,CAEA,QAAe/G,EAAAA,EAAAA,MAAKkW,IAAQ,SAACU,EAAaC,GAAW,OAAK,CAAI,I,w3EC3IvD,SAASC,GAAQ1U,GACtB,IACEC,EAoBED,EApBFC,eACA0U,EAmBE3U,EAnBF2U,WACA3E,EAkBEhQ,EAlBFgQ,UACAgE,EAiBEhU,EAjBFgU,OACApM,EAgBE5H,EAhBF4H,YACA5P,EAeEgI,EAfFhI,MACA6P,EAcE7H,EAdF6H,QACA+H,EAaE5P,EAbF4P,WACA3D,EAYEjM,EAZFiM,eACA2I,EAWE5U,EAXF4U,UACAxE,EAUEpQ,EAVFoQ,MACAyE,EASE7U,EATF6U,cACAC,EAQE9U,EARF8U,UACAtD,EAOExR,EAPFwR,aACAtF,EAMElM,EANFkM,cACA2D,EAKE7P,EALF6P,cACAzB,EAIEpO,EAJFoO,OACA2G,EAGE/U,EAHF+U,eACA1E,EAEErQ,EAFFqQ,YACA7V,EACEwF,EADFxF,eAEIwN,EAAQ9L,GAAAA,GAAAA,GAAAA,GAAA,GACT8H,GAAS/D,EAAeX,IAAI,UAAUW,EAAeX,IAAI,gBACzDW,EAAeX,IAAI,gBAAgB2I,QACnChI,EAAeT,MAAM,CAAC,eAAgB,UAAUyI,QAAM,IACzDwI,aAAcrC,EACdxG,YAAaA,EACb5P,MAAOA,EACPoY,MAAOA,EACPJ,UAAWA,EACXK,YAAaA,EACbF,YAAalQ,EAAeX,IAAI,gBAChC0V,MAAO/U,EAAeX,IAAI,eAC1B9I,GAAIyJ,EAAeX,IAAI,MACvB9E,eAAgBA,EAChBgX,aAAcA,EACdJ,WAAYnR,EAAeX,IAAI,kBAAoB8Q,EAAQ2E,EAAe,GAAKA,EAAe,GAC9F9E,cAAe,MAAQhQ,EAAeX,IAAI,cAC1CiG,uBACEtF,EAAeX,IAAI,wBAA0B,UAAYW,EAAeX,IAAI,cACxE,EACA0E,GAAS/D,EAAeX,IAAI,UAAUW,EAAeX,IAAI,eAAeiG,yBAE1EoK,GAAgBtI,EAAAA,EAAAA,UACpB,kBACEpH,EACGX,IAAI,gBACJsD,QAAO,SAACqS,EAAQ5W,GAAC,OAChB4B,EAAeX,IAAI,kBACf0I,EAASpC,OACNwK,GAAS/R,EAAI,EAAI,IAAQ+R,GAAS/R,EAAI,EAAI,EAC1C+R,GAAS,GAAK/R,EAAI,IAAQ+R,GAAS,GAAK/R,EAAI,EAC3C,IAET6W,MAAMH,EAAe,GAAIA,EAAe,GAAG,GAGhD,CAAC3E,IAGGX,GAAcpI,EAAAA,EAAAA,UAClB,kBACEpH,EACGT,MAAM,CAAC,cAAe,gBACtBoD,QAAO,SAACqS,EAAQ5W,GAAC,OAChB4B,EAAeX,IAAI,kBACf0I,EAASpC,OACNwK,GAAS/R,EAAI,EAAI,IAAQ+R,GAAS/R,EAAI,EAAI,EAC1C+R,GAAS,GAAK/R,EAAI,IAAQ+R,GAAS,GAAK/R,EAAI,EAC3C,IAET6W,MAAMH,EAAe,GAAIA,EAAe,GAAG,GAGhD,CAAC3E,IAGGV,GAASrI,EAAAA,EAAAA,UACb,kBACEpH,EAAeT,MAAM,CAAC,cAAe,WACjCS,EACGT,MAAM,CAAC,cAAe,WACtBoD,QAAO,SAACqS,EAAQ5W,GAAC,OAChB4B,EAAeX,IAAI,kBACf0I,EAASpC,OACNwK,GAAS/R,EAAI,EAAI,IAAQ+R,GAAS/R,EAAI,EAAI,EAC1C+R,GAAS,GAAK/R,EAAI,IAAQ+R,GAAS,GAAK/R,EAAI,EAC3C,IAET6W,MAAMH,EAAe,GAAIA,EAAe,IAC3C9U,EACGT,MAAM,CAAC,cAAe,gBACtBoD,QAAO,SAACqS,EAAQ5W,GAAC,OAChB4B,EAAeX,IAAI,kBACf0I,EAASpC,OACNwK,GAAS/R,EAAI,EAAI,IAAQ+R,GAAS/R,EAAI,EAAI,EAC1C+R,GAAS,GAAK/R,EAAI,IAAQ+R,GAAS,GAAK/R,EAAI,EAC3C,IAET6W,MAAMH,EAAe,GAAIA,EAAe,IACxC1e,KAAI,SAAAsJ,GAAC,OAAIA,EAAEtJ,KAAI,SAAA8e,GAAE,OAAI,CAAC,GAAC,GAAC,GAGjC,CAAC/E,IAGG6D,EAAcjM,EAASpC,OACzB+J,EAAczR,QACZ,SAACC,EAAMiX,EAAO/W,GAAC,OACXA,EAAI,EAQFF,EAPAA,EAAKG,MACHI,EAAAA,EAAAA,MACEiR,EAAcrQ,IAAIjB,GAAGgX,OAAO1F,EAAcrQ,IAAIjB,EAAI,KAAMK,EAAAA,EAAAA,MAAK,MAK7D,IACVA,EAAAA,EAAAA,MAAK,KAEPiR,EAIE2F,GAAgB3a,EAAAA,EAAAA,UACtB2a,EAAc/Z,QAAUqU,EAExB,IAAMJ,GAAcnI,EAAAA,EAAAA,UAAQ,WAC1B,IAAMkO,EAAO,GAab,OAZA5F,EAAcY,SAAQ,SAACzI,EAAO0N,GAC5B,IAAIxd,EAAQ,EACNwO,OACoB9I,GAAxBsK,EAASxB,aAA4BgP,GAAK7F,EAAc5O,KAAO,EAAI2S,WAAW1L,EAASxB,aAAe,EACxGsB,EAAMyI,SAAQ,SAACkF,EAASC,GACrB1X,GAAIC,MAAMwX,EAAQnW,IAAI,KAAKiR,SAAQ,SAACoF,EAAOtX,GAC1CrG,GAAgB6P,EAAQvI,IAAImW,EAAQnW,IAAI,IAAIA,IAAI,UAA2B,GAAfkH,EAAmBA,EAAc,GAC7F7C,GAAW4R,EAAM,CAACC,EAAGE,EAAGrX,GAAIrG,EAC9B,GACF,IACA2L,GAAW4R,EAAM,CAACC,GAAI,GAAIxd,EAC5B,IACOud,CAGT,GAAG,CAAC5F,EAAe9H,IAEbsF,GAAYxS,EAAAA,EAAAA,UAC0BpC,EAAAC,IAAdC,EAAAA,EAAAA,UAAS,MAAK,GAArCmd,EAAOrd,EAAA,GAAEsd,EAAUtd,EAAA,GAEpBiT,GAAU3S,EAAAA,EAAAA,cACd,SAAA4C,GACEoa,EAAWpa,GACP,mBAAqBmZ,GAAWA,EAAUnZ,EAChD,GACA,CAACmZ,IAGGkB,GAAiBjd,EAAAA,EAAAA,cACrB,SAAA+W,GACEzC,EAAU5R,QAAQgU,UAChBvH,EACAH,EACA2H,EACAC,EACAC,EACAC,EACAC,EACAC,EACArE,EAEJ,GAGA,IAGIuK,GAAUpb,EAAAA,EAAAA,UAEVwN,EAAW,UAAYlI,EAAeX,IAAI,eAAiB0I,EAASpC,QAAU+J,EAAc5O,KAAO,EAGnGgT,EACJ,iBAAmB9T,EAAeX,IAAI,eAAiB,aAAeW,EAAeX,IAAI,aAErF0W,EAAkBhO,EAASyI,cAC5BtI,EAAWH,EAASnC,SAAWmC,EAAS/O,KACzC+O,EAASyI,aAAavS,QACpB,SAACC,EAAMoB,EAAKlB,GAAC,OACXA,EAAI/B,KAAKmW,MAAM9C,EAAc5O,MAAQiH,EAASpC,OAAS,EAAI,IACvDzH,EAEAyJ,GACGrI,EAAID,IAAI,WACN,YAAcC,EAAID,IAAI,cACnB0I,EAAS3D,OACTpE,EAAeX,IAAI,WAAa,GAAK,WAAaW,EAAeX,IAAI,cACrE,EACA0I,EAAS5D,MACV2P,EAAa,EAAI,IACxB5V,CAAI,GACV,IAED6J,EAASpC,OAASoC,EAASzC,uBAAyBqC,EAAc,GACnEtL,KAAKmW,MAAM9C,EAAc5O,MAAQiH,EAASpC,OAAS,EAAI,MACnDoC,EAASjQ,QAAUkI,EAAeX,IAAI,WAAa,EAAI,EAAI0I,EAAS5D,MAAQwD,EAAcI,EAASzD,SACtG4D,EAAWH,EAASnC,SAAWmC,EAAS/O,MACxC+O,EAASpC,OAASoC,EAASzC,uBAAyBqC,EAAc,GAuCvE,OArCI7L,OAAO,mBAAqBkE,EAAeX,IAAI,SACjDvD,OAAO,mBAAqBkE,EAAeX,IAAI,OAAOvH,OAASuE,KAAKC,IAClER,OAAO,mBAAqBkE,EAAeX,IAAI,OAAOvH,QAAU,EAChEie,KAGJjd,EAAAA,EAAAA,YAAU,WAiBR,OAhBAoU,EAAU5R,QAAU,IAAIwQ,GACtBgK,EAAQxa,QACRvD,GAASiI,EAAeX,IAAI,iBAAmB0I,EAASpC,OAAS,EAAI,GACrEoQ,EACA/J,EACAC,EACA/D,GAGFlL,YAAW,WAIT,GACC,IAEI,WACLkQ,EAAU5R,QAAQuT,SACpB,CAGF,GAAG,CAAC9W,EAAO4P,KAEX7O,EAAAA,EAAAA,YAAU,WACRoU,EAAU5R,QAAQkS,OAAOqF,QAEzB3F,EAAU5R,QAAQyT,iBAClB8G,EAAeR,EAAc/Z,QAC/B,GAAG,CAACuZ,EAAWgB,IAIbrc,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OACEE,MAAO,CAAER,SAAU,UAAY8G,EAAeX,IAAI,cAAgB,WAAa,UAC/E9I,GAAIyJ,EAAeX,IAAI,OAGrB7F,EAAAA,cAAA,SACEwN,KAAK,WACL1E,wBAAyB,CACvBC,OACG,sBACEvC,EAAeX,IAAI,wFAGlBW,EAAeX,IAAI,kBAAoB0I,EAAShD,OAC5ChN,EAAQ,EAAI,KACZgQ,EAAShD,OACThN,EAAQ,KACR,4DAIPgQ,EAASrB,KACL,wFAEDsP,EAAQ,GACP,yCAGA,OAIbxc,EAAAA,cAAA,OACEC,UACG,GAAE+N,GAAAA,WAAsBA,GAAWO,EAASnD,gBAC3CuL,EAAmC,GAA1B,GAAE3I,GAAAA,YACZkN,EAAc,GAAElN,GAAAA,cAA4B,KAC5CU,EAAY,GAAEV,GAAAA,cAA4B,KAC1CuM,EAAU,GAAEvM,GAAAA,SAAuB,IAEtC,cAAY,gBACZ9N,MAAO,CACL3B,MACEiI,EAAeX,IAAI,kBAAoB0I,EAAShD,OAAShN,EAAQ,GAAKgQ,EAASjC,QAAU,GAAK,GAAK/N,KAGrGgQ,EAAShD,SAAWmD,GACpB1O,EAAAA,cAAA,OACEC,UACG,GAAE+N,GAAAA,cAAyBA,GAAAA,SAAoBA,GAAWO,EAASnD,gBACnEmD,EAASyI,cACVzI,EAASyI,aAAajR,MAAM,CAAC,EAAG,gBAChC,YAAcwI,EAASyI,aAAajR,MAAM,CAAC,EAAG,eACzC,GAAEiI,GAAW,QAAUO,EAASyI,aAAajR,MAAM,CAAC,EAAG,mBACvD,IAEP,cAAY,cACZ7F,MAAO,CACL3B,MAGgC,GAF7BiI,EAAeX,IAAI,kBAAoB0I,EAAShD,QAC5ChN,EAAQgQ,EAAS7D,OAAS,EAC3BnM,EAAQgQ,EAAS7D,SAGxB6D,EAASjC,SACRtM,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,YACX9N,MAAO,CACLN,gBAAiB2O,EAASjC,QACtB,OAASkQ,EAAAA,MAAAA,CAAQ,KAAWjO,EAASnD,WAAa,eAAiB,IACnE,UAIVpL,EAAAA,cAAA,OAAKC,UAAY,GAAE+N,GAAAA,eAA0BA,GAAAA,WAC3ChO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,SAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,SAEjBO,EAASjC,SACRtM,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,WACX9N,MAAO,CACLN,gBAAiB2O,EAASjC,QACtB,OAASkQ,EAAAA,MAAAA,CAAQ,KAAWjO,EAASnD,WAAa,eAAiB,IACnE,WAMdpL,EAAAA,cAAA,OACEC,UACG,GAAE+N,GAAAA,qBACFxH,EAAeX,IAAI,gBAChB8Q,EACG,GAAE3I,GAAAA,eACF,GAAEA,GAAAA,gBACJ,IAEP,cAAY,sBAEXwM,EAAY5d,KAAI,SAACyR,EAAOzJ,GAAC,OACxB5E,EAAAA,cAAC4D,EAAAA,SAAQ,CAACmL,IAAK,QAAUnK,GACtB8J,GACC1O,EAAAA,cAACkO,GAAQ,CACP1H,eAAgBA,EAChBjI,MAAOiI,EAAeX,IAAI,gBAAkBtH,EAAQ,GAAKgQ,EAASjC,QAAU,GAAK,GAAK/N,EACtF4P,YAAaA,EACboM,OAAQA,EACRlM,MAAOA,EACPD,QAASA,EACToE,eAAgBA,IAGpBxS,EAAAA,cAAA,OACEC,UACG,GAAE+N,GAAAA,SACDA,GACE,SAAWO,EAASpC,QAAUoC,EAASG,SAAY9J,GAAK4V,EAAYlT,KAAO,EAAI,EAAI,EAAK1C,OAExFoJ,GAAWO,EAASnD,gBACvBxG,GAAK4B,EAAeX,IAAI,gBAAgByB,MAAQd,EAAeX,IAAI,gBAAkB,EAAI,GAAK,EAC1F,GAAEmI,GAAAA,QACF,KACJpJ,GAAK4B,EAAeX,IAAI,gBAAgByB,MAAQd,EAAeX,IAAI,gBAAkB,EAAI,GAAK,EAC1F,GAAEmI,GAAAA,UACF,KACJO,EAASyI,cACVzI,EAASyI,aAAajR,MAAM,CAACnB,EAAG,gBAChC,YAAc2J,EAASyI,aAAajR,MAAM,CAACnB,EAAG,eACzC,GAAEoJ,GAAW,QAAUO,EAASyI,aAAajR,MAAM,CAACnB,EAAG,mBACvD,KACJA,GACD2J,EAASyI,cACTzI,EAASyI,aAAajR,MAAM,CAACnB,EAAI,EAAG,gBACpC,YAAc2J,EAASyI,aAAajR,MAAM,CAACnB,EAAI,EAAG,eAC7C,GAAEoJ,GAAW,YAAcO,EAASyI,aAAajR,MAAM,CAACnB,EAAI,EAAG,mBAC/D,IAEP,cAAY,cACZ1E,MAAO,CACLuO,YACIF,EAASyI,aAAezI,EAASyI,aAAajR,MAAM,CAACnB,EAAG,WAAa2J,EAASjQ,SAC7EsG,GAAK4V,EAAYlT,KAAO,GAAIiH,EAASzC,wBAA8B,IACnEyC,EAASyI,cAAgB,YAAczI,EAASyI,aAAajR,MAAM,CAACnB,EAAG,eACpE2J,EAAS3D,OACTpE,EAAeX,IAAI,WAAa,GAAK,WAAaW,EAAeX,IAAI,cACrE,EACA0I,EAAS5D,MACV2P,EAAa,EAAI,IACtBnM,EACF5P,OACGiI,EAAeX,IAAI,kBAAoB0I,EAAShD,OAC7ChN,EAAQ,GAAKgQ,EAASjC,QAAU,GAAK,GACrC/N,GACJgQ,EAAS7D,MACT,IAGJ1K,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,YACX9N,MAAO,CACLN,gBAAiB2O,EAASjC,QACtB,OAASkQ,EAAAA,MAAAA,CAAQ,KAAWjO,EAASnD,WAAa,eAAiB,IACnE,WAGN,oBAAsBmD,EAASnD,YAAc,iBAAmBmD,EAASnD,aACzEpL,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,UACX9N,MAAO,CACLN,gBACE,oBAAsB2O,EAASnD,WAC3B,OAASoR,EAAQ,OAA0B,IAC3C,UAIZxc,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,cACX9N,MAAO,CACLN,gBACE,oBAAsB2O,EAASnD,WAC3B,OACAoR,EACEhW,EAAeX,IAAI,gBACf8Q,EACE,MACA,MACF,OAEN,IACA,UAGV3W,EAAAA,cAAA,OACEC,UAAY,GAAE+N,GAAAA,eAA0BA,GAAAA,UACxC9N,MAAO,CACLN,gBACE2O,EAASjC,SAAWiC,EAASpC,QAAUvH,GAAK4V,EAAYlT,KAAO,EAC3D,OAASoE,GAAc,IACvB,SAGR1L,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,SAChBhO,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,SAElBhO,EAAAA,cAAA,OACEC,UAAW+N,GAAAA,WACX9N,MAAO,CACLN,gBAAiB2O,EAASjC,QACtB,OAASkQ,EAAAA,MAAAA,CAAQ,KAAWjO,EAASnD,WAAa,eAAiB,IACnE,WAID,KAGdmD,EAASpC,QACRnM,EAAAA,cAAA,OACEC,UAAY,GAAE+N,GAAAA,WAAsBA,GAAWO,EAASnD,eACtD,QAAU5E,EAAeX,IAAI,eAAkB,GAAEmI,GAAAA,UAAwB,OACtEmO,GAAWf,IAAkB5U,EAAeX,IAAI,QAAUmI,GAAAA,QAAqB,KACpFjR,GAAG,UACH,cAAY,qBACZ+G,IAAKwY,MAIT/N,EAASpC,QACTnM,EAAAA,cAAA,OACEC,UAAY,GAAE+N,GAAAA,WAAsBA,GAAWO,EAASnD,eACtD,QAAU5E,EAAeX,IAAI,eAAkB,GAAEmI,GAAAA,UAAwB,OACtEmO,GAAWf,IAAkB5U,EAAeX,IAAI,QAAUmI,GAAAA,QAAqB,KACpFjR,GAAG,UACH,cAAY,qBACZ+G,IAAKwY,EACLpc,MAAO,CAAE3B,MAAOA,KAInB4d,GAAWA,EAAQvb,KAClBZ,EAAAA,cAAA,OACEC,UACG,GAAE+N,GAAAA,gBAA2BA,GAAWO,EAASnD,iBAChDuL,GAASpI,EAASpC,OAAU,GAAE6B,GAAAA,UAAwB,IAE1D,cAAY,uBACZ9N,MAAO,CACLN,gBAAkB,OAAMuc,EAAQvb,OAChCrC,MAAO4d,EAAQ5d,MAAQ,EACvBD,OAAQ6d,EAAQ7d,OAChBkB,IAAK2c,EAAQ3Z,EACb/C,KAAMoD,KAAKE,IAAIoZ,EAAQ9Z,EAAG9D,EAAwB,KAAhB4d,EAAQ5d,OAC1Cke,qBAAsBN,EAAQnK,WAAa,MAI/CxL,EAAeX,IAAI,eACnB7F,EAAAA,cAAA,OACEC,UAAY,IAAGkc,GAAWf,IAAkB5U,EAAeX,IAAI,QAAUmI,GAAAA,cAA2B,MAEpGhO,EAAAA,cAACqa,GAAM,CACL7T,eAAgBA,EAChB0U,WAAYA,EACZ3M,SAAUA,EACV+L,WAAYA,EACZC,OAAQA,EACRhc,MAAOA,EACP6P,QAASA,EACTM,SAAUA,EACV8D,eAAgBA,EAChBmE,MAAOA,EACP6D,YAAaA,EACbxE,YAAaA,EACbrB,OAAQA,MAQtB,CAEA,QAAexQ,EAAAA,EAAAA,MACb8W,IACA,SAAC7W,EAAWC,GAAS,OACnBD,EAAUoC,iBAAmBnC,EAAUmC,gBACvCpC,EAAU8W,aAAe7W,EAAU6W,YACnC9W,EAAUmS,YAAclS,EAAUkS,WAClCnS,EAAUmW,SAAWlW,EAAUkW,QAC/BnW,EAAU+J,cAAgB9J,EAAU8J,aACpC/J,EAAU7F,QAAU8F,EAAU9F,OAC9B6F,EAAUrD,iBAAmBsD,EAAUtD,gBACvCqD,EAAUgK,UAAY/J,EAAU+J,SAChChK,EAAUuQ,SAAWtQ,EAAUsQ,QAC/BvQ,EAAU+R,aAAe9R,EAAU8R,YACnC/R,EAAUiX,YAAchX,EAAUgX,WAClCjX,EAAUuS,QAAUtS,EAAUsS,OAC9BvS,EAAUgX,gBAAkB/W,EAAU+W,eACtChX,EAAUgS,gBAAkB/R,EAAU+R,eACtChS,EAAUoO,iBAAmBnO,EAAUmO,cAAc,I,wvEC5iBlD,SAASkK,GAAOnW,GACrB,IAAQC,EAAyGD,EAAzGC,eAAgB+T,EAAyFhU,EAAzFgU,OAAQlC,EAAiF9R,EAAjF8R,MAAO9Z,EAA0EgI,EAA1EhI,MAAOqY,EAAmErQ,EAAnEqQ,YAAa+F,EAAsDpW,EAAtDoW,QAASvB,EAA6C7U,EAA7C6U,cAAeD,EAA8B5U,EAA9B4U,UAAWpa,EAAmBwF,EAAnBxF,eAE1BjC,EAAAC,IAA5BC,EAAAA,EAAAA,WAASiG,EAAAA,EAAAA,MAAK,EAAC,GAAM,KAAO,GAA7D2X,EAAY9d,EAAA,GAAE+d,EAAe/d,EAAA,GAC9ByP,EAAQ9L,GAAAA,GAAAA,GAAA,GACT+D,EAAeX,IAAI,gBAAgB2I,QACnCjE,GAAS/D,EAAeX,IAAI,UAAUW,EAAeX,IAAI,gBAAc,IAC1E9E,eAAgBA,IAEZ+b,EAAa,QAAUtW,EAAeX,IAAI,aAE1CkX,EAAiB,SAAUC,GAC/B,IAAMC,EAAUD,EAAS,EAAI,EAC7BH,EACED,EACGhU,IAAIoU,GAASJ,EAAa/W,IAAImX,IAC9BpU,IAAIqU,IAASL,EAAa/W,IAAImX,IAAiBJ,EAAa/W,IAAIoX,IAEvE,EAEMC,GAAYhc,EAAAA,EAAAA,UA8GlB,OACElB,EAAAA,cAAA,OAAKC,UAAY,GAAEkd,GAAAA,mBAAiC5C,EAAU,IAAG4C,GAAAA,SAAwB,IAAIrZ,IAAKoZ,GAvFhGld,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,SACEwN,KAAK,WACL1E,wBAAyB,CACvBC,OACG,oGAGDyT,EAAQ,OACP,8HAKDA,EAAQ,OACP,8HAKDA,EAAQ,OACP,sHAKDA,EAAQ,OACP,+HAKDA,EAAQ,OACP,8HAKDA,EAAQ,OACP,6GAKDA,EAAQ,OACP,uIAKDA,EAAQ,OACP,2HAKDA,EAAQ,OACP,0HAIDA,EAAQ,OACP,2HAIDA,EAAQ,OACP,iIAIDA,EAAQ,OACP,kIAIDA,EAAQ,OACP,4BAYTxc,EAAAA,cAAA,OACEC,UAAY,GAAEkd,GAAAA,UAAsBA,GAAY5O,EAASnD,cACzD,cAAY,eACZlL,MAAO,CACLkd,UAAW,SAAW/E,EAAQ,IAC9BrG,UAAW2K,EAAQnd,IACnB6d,cAAeV,EAAQnd,IACvByO,WAAY0O,EAAQld,KACpB6d,SAAUza,KAAKgU,OAAOtI,EAAS9C,cAAgBlN,GAAS8Z,GAAS7R,EAAeX,IAAI,gBAAkB,EAAI,MAG5G7F,EAAAA,cAACud,GAASC,GAAA,GACJjX,EAAK,CACTkX,mBAAoB,kBAAMV,EAAe,EAAE,EAC3CW,OAAQd,EAAa/W,IAAI,GACzB8Q,OAAO,EACP5V,eAAgBA,EAChBqa,cAAeA,EACfD,UAAWA,EACXwC,OAAQnX,EAAeX,IAAI,iBAAmBiX,EAC9CA,WAAYA,EACZlG,YAAa,CAAC,GAAIpQ,EAAeX,IAAI,gBAAkB,EAAS+Q,EAAY,QAE7EpQ,EAAeX,IAAI,iBAClB7F,EAAAA,cAACud,GAASC,GAAA,GACJjX,EAAK,CACTkX,mBAAoB,kBAAMV,EAAe,EAAE,EAC3CW,OAAQd,EAAa/W,IAAI,GACzBsV,UAAWA,EACXC,cAAeA,EACfra,eAAgBA,EAChB4c,OAAQnX,EAAeX,IAAI,iBAAmBiX,EAC9ClG,YAAa,CAAC,EAAGA,EAAY,QAMzC,CAEA,IAAM2G,IAAYpZ,EAAAA,EAAAA,OAAK,SAAAoC,GACrB,IACEC,EAsBED,EAtBFC,eACAoX,EAqBErX,EArBFqX,MACArD,EAoBEhU,EApBFgU,OACApM,EAmBE5H,EAnBF4H,YACA5P,EAkBEgI,EAlBFhI,MACA2c,EAiBE3U,EAjBF2U,WACA/E,EAgBE5P,EAhBF4P,WACA3D,EAeEjM,EAfFiM,eACApE,EAcE7H,EAdF6H,QACAqP,EAaElX,EAbFkX,mBACAC,EAYEnX,EAZFmX,OACAZ,EAWEvW,EAXFuW,WACAa,EAUEpX,EAVFoX,OACA5c,EASEwF,EATFxF,eACA4V,EAQEpQ,EARFoQ,MACA0E,EAOE9U,EAPF8U,UACAD,EAME7U,EANF6U,cACA3I,EAKElM,EALFkM,cACA2D,EAIE7P,EAJF6P,cACAQ,EAGErQ,EAHFqQ,YACAyB,EAEE9R,EAFF8R,MACA8C,EACE5U,EADF4U,UAEI5M,EAAQ9L,GAAAA,GAAA,GACT+D,EAAeX,IAAI,gBAAgB2I,QACnCjE,GAAS/D,EAAeX,IAAI,UAAUW,EAAeX,IAAI,gBAGxDqX,GAAYhc,EAAAA,EAAAA,UAEZ2c,EAAc,WACdf,GAAca,GACd,oBAAsBF,GAAoBA,GAChD,EAEMK,EAAYF,GAASV,EAAUpb,WAAa4b,GAAUZ,IAAezE,GAAS,IAAMkC,IAAWoD,EAC/FI,EAAcH,GAASF,IAAWZ,IAAea,EACvD,OACE3d,EAAAA,cAAA,OACEC,UACG,GAAEkd,GAAAA,cACF3W,EAAeX,IAAI,gBAAmB8Q,EAAS,GAAEwG,GAAAA,OAAsB,GAAEA,GAAAA,QAAwB,KAGnGY,GACC/d,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,YACX1U,QAASoV,EACT,cAAY,2BACZ3d,MAAO,CACLN,gBAAiB,OAAS4c,EAAQ,OAAqB,MAGzDxc,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,eACXjd,MAAO,CACLN,gBAAiB,OAAS4c,EAAQ,OAAwB,QAKjEuB,GACC/d,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,aACXjd,MAAO,CACLN,gBAAiB,OAAS4c,EAAQ,OAAsB,OAI9Dxc,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,cACXrZ,IAAKoZ,EACL,cAAY,uBACZhd,MAAO,CACLN,gBAAiB2O,EAAS/C,SACtB,OACAgR,EACEhW,EAAeX,IAAI,gBACf8Q,EACE,MACA,MACF,OAEN,IACA,SAGN3W,EAAAA,cAAA,OACEE,MAAO,CACLN,gBAAiB2O,EAAS/C,SACtB,OACAgR,EACEhW,EAAeX,IAAI,gBACf8Q,EACE,MACA,MACF,OAEN,IACA,QAEN1W,UAAWkd,GAAAA,MAEZW,GACC9d,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,kBACX,cAAY,wBACZjd,MAAO,CAAE5B,OAAQ4e,EAAUpb,QAAQkc,aAAe,KAElDhe,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,SACX1U,QAASoV,EACTjd,IAAKqd,GACL/d,MAAO,CACLge,QAASN,EAAQ,QAAU,OAC3Btf,OAAQ4e,EAAUpb,QAAQkc,aAC1BZ,UACEF,EAAUpb,QAAQkc,aAAe,IAC7B,UAAY,IAAMd,EAAUpb,QAAQkc,aAAe,IACnD,UAAYd,EAAUpb,QAAQkc,aAAe,IAAM,QAKhEF,GACC9d,EAAAA,cAAA,OAAKC,UAAWkd,GAAAA,MACdnd,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,iBACXjd,MAAO,CACLN,gBAAiB,OAAS4c,EAAQ,OAA0B,OAGhExc,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,QACXjd,MAAO,CACLN,gBAAiB,OAAS4c,EAAQ,OAAuB,QAKjExc,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,cACXjd,MAAO,CACLuO,UAAW5L,KAAKgU,MAAMtI,EAASjQ,OAAS6P,EAAcI,EAAS1D,aAC/DtM,MAAOgQ,EAAS/C,SAAW3I,KAAKgU,OAAOtI,EAAShQ,MAAyB,EAAjBgQ,EAAS7D,OAAayD,GAAe5P,IAG/FyB,EAAAA,cAACib,GAAO,CACNzU,eAAgBA,EAChB0U,WAAYA,EACZX,OAAQA,EACRpM,YAAaA,EACb5P,MAAOA,EACP6P,QAASA,EACT+H,WAAYA,EACZpV,eAAgBA,EAChByR,eAAgBA,EAChB2I,UAAWA,EACXxE,MAAOA,EACPP,cAAeA,EACfgF,cAAeA,EACfC,UAAWA,EACX1G,OAAQnO,EAAeX,IAAI,iBAAiBE,MAAM,CAAC,EAAG,YACtD0M,cAAeA,EACf6I,eAAgB,CAAC,EAAG9U,EAAeX,IAAI,mBACvC+Q,YAAaA,KAGhBkH,GACC9d,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,mBACX,cAAY,yBACZjd,MAAO,CAAE5B,OAAQ4e,EAAUpb,QAAQkc,aAAe,KAElDhe,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,UACX1U,QAASoV,EACTjd,IAAKud,GACLje,MAAO,CACL5B,OAAQ4e,EAAUpb,QAAQkc,aAC1BZ,UACEF,EAAUpb,QAAQkc,aAAe,IAC7B,UAAY,IAAMd,EAAUpb,QAAQkc,aAAe,IACnD,UAAYd,EAAUpb,QAAQkc,aAAe,IAAM,QAKhEF,GACC9d,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,QACXjd,MAAO,CACLN,gBAAiB,OAAS4c,EAAQ,OAAuB,IACzD0B,QAAS,WAIb3P,EAAS/C,UACTxL,EAAAA,cAAA,OAAKC,UAAWkd,GAAAA,QACdnd,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,UACXjd,MAAO,CAAE0Q,UAAqD,GAA1CpK,EAAeX,IAAI,gBAAgByB,QAEzDtH,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,WACXjd,MAAO,CAAE0Q,UAAqD,GAA1CpK,EAAeX,IAAI,gBAAgByB,QAExDd,EAAeX,IAAI,gBAAgByB,KAAO,GACzCtH,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,gBACXjd,MAAO,CACL5B,OAAwD,IAA/CkI,EAAeX,IAAI,gBAAgByB,KAAO,MAGvDtH,EAAAA,cAAA,OACEC,UAAWkd,GAAAA,iBACXjd,MAAO,CACL5B,OAAwD,IAA/CkI,EAAeX,IAAI,gBAAgByB,KAAO,QAO/DtH,EAAAA,cAAA,OACEE,MAAO,CACLN,gBAAiB2O,EAAS/C,SACtB,OACAgR,EACEhW,EAAeX,IAAI,gBACf8Q,EACE,MACA,MACF,OAEN,IACA,QAEN1W,UAAWkd,GAAAA,UAGfnd,EAAAA,cAAA,OAAKC,UAAWkd,GAAAA,eAGtB,IA4BAI,GAAUa,YAAc,YAExB,QAAeja,EAAAA,EAAAA,MACbuY,IACA,SAACtY,EAAWC,GAAS,OACnBD,EAAUoC,iBAAmBnC,EAAUmC,gBACvCpC,EAAUwZ,QAAUvZ,EAAUuZ,OAC9BxZ,EAAUmW,SAAWlW,EAAUkW,QAC/BnW,EAAUgX,gBAAkB/W,EAAU+W,eACtChX,EAAU+J,cAAgB9J,EAAU8J,aACpC/J,EAAU7F,QAAU8F,EAAU9F,OAC9B6F,EAAU8W,aAAe7W,EAAU6W,YACnC9W,EAAU+R,aAAe9R,EAAU8R,YACnC/R,EAAUrD,iBAAmBsD,EAAUtD,gBACvCqD,EAAUiU,QAAUhU,EAAUgU,OAC9BjU,EAAUuY,UAAYtY,EAAUsY,SAChCvY,EAAU+W,YAAc9W,EAAU8W,WAClC/W,EAAUiX,YAAchX,EAAUgX,WAClCjX,EAAUoO,iBAAmBnO,EAAUmO,gBACvCpO,EAAUwS,cAAgBvS,EAAUuS,aACpCxS,EAAUgK,UAAY/J,EAAU+J,OAAO,ICrf3C,IAAgB,UAAY,sCAAsC,OAAS,mCAAmC,UAAY,sCAAsC,KAAO,iCAAiC,SAAW,qCAAqC,SAAW,qCAAqC,SAAW,qCAAqC,SAAW,qCAAqC,OAAS,mCAAmC,eAAiB,2CAA2C,OAAS,mCAAmC,KAAO,iCAAiC,MAAQ,kCAAkC,gBAAkB,4CAA4C,OAAS,oC,wBCsB9qB,SAASiQ,GAAU9X,GACxB,IAAQ+X,EAA0F/X,EAA1F+X,WAAY3X,EAA8EJ,EAA9EI,OAAQyH,EAAsE7H,EAAtE6H,QAASoE,EAA6DjM,EAA7DiM,eAAgBhM,EAA6CD,EAA7CC,eAAgBC,EAA6BF,EAA7BE,OAAQG,EAAqBL,EAArBK,SAAU2T,EAAWhU,EAAXgU,OACjFvT,EACJ,QAAUR,EAAeX,IAAI,cAC5B,GAAKW,EAAeX,IAAI,mBAAqBW,EAAeX,IAAI,iBAC7DoB,EAASD,EAAc,KAAOR,EAAeX,IAAI,uBACjDqB,EAAcF,EAAc,KAAOR,EAAeX,IAAI,iBACtDsB,EAAWH,EAAc,KAAOR,EAAeX,IAAI,mBACnD0Y,EAAiB/X,EAAeX,IAAI,qBAAuB,EAOjE,OACE7F,EAAAA,cAAA,OAAKC,UAAWue,GAAAA,UAA0B,cAAY,uBACnDxX,EACC,GAEAhH,EAAAA,cAACye,GAAAA,EAAM,CACLxe,UAAWue,GAAAA,OACXF,WAAYA,EACZtZ,KAAM2B,EAAOZ,MAAM,CAAC,KAAM,eAC1B,cAAY,4BAGhB/F,EAAAA,cAAA,OAAKC,UAAWue,GAAAA,UAA0B,cAAY,eACnDpQ,EACEjF,QAAO,SAAA1C,GAAM,OAAKA,EAAOZ,IAAI,KAAK,IAClC6Y,UACA9hB,KAAI,SAACgJ,EAAMhB,GACV,IAAMwC,EAAQ1B,GAASe,GACjBY,EAAYzB,EAAKC,IAAI,qBAAuBD,EAAKC,IAAI,SACrDkB,EAAYN,EAAOV,MAAM,CAAC,UAAWH,EAAKC,IAAI,MAAO,UACrD6D,GACHG,EAAAA,GAAAA,IAAU5C,IAAWA,GAAUF,IAC/B8C,EAAAA,GAAAA,IAAU3C,IAAgBA,GAAelB,GAAQS,KACjDoD,EAAAA,GAAAA,IAAU1C,IAAaA,EAAWC,EAAQC,EAE7C,OACErH,EAAAA,cAAA,OACEC,UAAY,GAAEue,GAAAA,QAAuBA,GAAe,UAAYD,MAC9D3Y,EAAKC,IAAI,aAAe2Y,GAAAA,OAAwB,MAC9CjE,EAASiE,GAAAA,OAAwB,KACrCzP,IAAK,OAASnK,EACd,cAAY,aACZ6D,QAAS7C,EAAKC,IAAI,aAAe,kBAAM2M,EAAe5M,EAAK,EAAG,MAE9D5F,EAAAA,cAAA,OACE,cAAY,uBACZC,UAAWue,GAAAA,eACXte,MAAO,CACLN,gBAAiBgG,EAAKG,MAAM,CAAC,QAAS,iBACjC,OAAMH,EAAKG,MAAM,CAAC,QAAS,oBAC3B,2CAKRH,EAAKC,IAAI,cACR7F,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OACE,cAAY,oBACZC,UAAWue,GAAAA,OACX1V,wBAAyB,CAAEC,OAAQnD,EAAKC,IAAI,WAE7CD,EAAKC,IAAI,UAAYD,EAAKC,IAAI,qBAC/BD,EAAKC,IAAI,sBACRW,EAAeX,IAAI,cAClB7F,EAAAA,cAAA,OACEC,UAAWue,GAAAA,gBACX,cAAY,oBACZ1V,wBAAyB,CACvBC,OAAQ5D,GAAYS,EAAKC,IAAI,SAAUW,EAAeX,IAAI,eAAe,MAI7E,IAEAW,EAAeX,IAAI,eACnB7F,EAAAA,cAAA,OACEC,UAAWue,GAAAA,MACX,cAAY,mBACZ1V,wBAAyB,CACvBC,OAAQ5D,GACNS,EAAKC,IAAI,oBAAsBD,EAAKC,IAAI,oBAAsBD,EAAKC,IAAI,SACvEW,EAAeX,IAAI,eACnB,MAKR7F,EAAAA,cAAC2J,GAAAA,EAAM,CACLC,MAAOjD,EAAOZ,MAAM,CAAC,KAAM,cAC3B0C,QAAS,SAAA1G,GAAK,OArFZ,SAACA,EAAO6D,EAAM8D,IAClCtG,EAAAA,GAAAA,IAAUrB,GACL2H,GAAU9C,EAAShB,EAAM,EAChC,CAkFsCqC,CAAclG,EAAO6D,EAAM8D,EAAS,EACtDzJ,UAAY,GAAEqI,GAAAA,EAAAA,UAAqBoB,EAAWpB,GAAAA,EAAAA,cAA2B,KACzE,cAAY,uBACZoB,SAAUA,KAMtB,KAIV,CAEA,QAAevF,EAAAA,EAAAA,MACbka,IACA,SAACja,EAAWC,GAAS,OACnBD,EAAUka,aAAeja,EAAUia,YACnCla,EAAUuC,SAAWtC,EAAUsC,QAC/BvC,EAAUgK,UAAY/J,EAAU+J,SAChChK,EAAUqC,SAAWpC,EAAUoC,QAC/BrC,EAAUmW,SAAWlW,EAAUkW,QAC/BnW,EAAUoO,iBAAmBnO,EAAUmO,gBACvCpO,EAAUoC,iBAAmBnC,EAAUmC,cAAc,IC7IzD,IAAgB,OAAS,kDAAkD,KAAO,gDAAgD,KAAO,4BAA4B,OAAS,8BAA8B,MAAQ,6BAA6B,MAAQ,6BAA6B,KAAO,4BAA4B,MAAQ,6BAA6B,YAAc,mCAAmC,cAAgB,qCAAqC,MAAQ,6BAA6B,MAAQ,6BAA6B,MAAQ,6BAA6B,aAAe,oCAAoC,KAAO,4BAA4B,WAAa,kCAAkC,QAAU,+BAA+B,OAAS,8BAA8B,WAAa,mC,gFCmB9wB,SAASmY,GAAKpY,GACnB,IAAQC,EAAkGD,EAAlGC,eAAgBC,EAAkFF,EAAlFE,OAAQmY,EAA0ErY,EAA1EqY,WAAYpM,EAA8DjM,EAA9DiM,eAAgBqM,EAA8CtY,EAA9CsY,YAAaC,EAAiCvY,EAAjCuY,SAAUnY,EAAuBJ,EAAvBI,OAAQE,EAAeN,EAAfM,WACrFuH,EAAU3H,EAAOZ,IAAI,WACrBoB,EAAST,EAAeX,IAAI,uBAC5BqB,EAAcV,EAAeX,IAAI,iBACjCsB,EAAWX,EAAeX,IAAI,mBAEpC,OACE7F,EAAAA,cAAA,OACEC,UACG,GAAE8e,GAAAA,SACFH,EAAc,GAAEG,GAAAA,aAA0B,KAC1ClY,EAAc,GAAEkY,GAAAA,aAA0B,IAE7C,cAAY,oBAEX3Q,EAAQjF,QAAO,SAAA1C,GAAM,OAAIA,EAAOZ,IAAI,SAAW,CAAC,IAAEyB,KACjD8G,EACGjF,QAAO,SAAA1C,GAAM,OAAIA,EAAOZ,IAAI,SAAW,CAAC,IACxC6Y,UACA9hB,KAAI,SAACoiB,EAAMpa,GACV,IAAMgB,EAAOoZ,EAAKnZ,IAAI,QAChBwB,EAAYzB,EAAKC,IAAI,qBAAuBD,EAAKC,IAAI,SACrDuB,EAAQ1B,GAASe,EAAQb,GACzB0B,EAAOtB,GAAQS,EAAQb,GAE7B,OACE5F,EAAAA,cAAC4D,EAAAA,SAAQ,CAACmL,IAAK,OAASnK,GACtB5E,EAAAA,cAAA,OAAKC,UAAW8e,GAAAA,KAAgB,cAAY,qBAC1C/e,EAAAA,cAAA,OAAKC,UAAW8e,GAAAA,OACd/e,EAAAA,cAAA,OACE,cAAY,0BACZY,IACEgF,EAAKC,IAAI,kBACLD,EAAKG,MAAM,CAAC,iBAAkB,iBAC9BH,EAAKG,MAAM,CAAC,QAAS,iBAE3B9F,UAAW8e,GAAAA,IACXtW,QAAS,kBAAM+J,EAAe5M,EAAK,KAGvC5F,EAAAA,cAAA,OAAKC,UAAW8e,GAAAA,YAAuB,cAAY,iCACjD/e,EAAAA,cAAA,OAAKC,UAAW8e,GAAAA,eACd/e,EAAAA,cAAA,OAAKC,UAAW8e,GAAAA,OACd/e,EAAAA,cAAA,QACE,cAAY,2BACZC,UAAW8e,GAAAA,OACXjW,wBAAyB,CAAEC,OAAQnD,EAAKC,IAAI,aAQlD7F,EAAAA,cAAA,OAAKC,UAAW8e,GAAAA,QAAmB,cAAY,6BAC7C/e,EAAAA,cAACgJ,GAAAA,EAAM,CACL/I,UAAW8e,GAAAA,MACXE,aAAW,EACXhW,SAAS,EACTC,QAAShE,GAAeiE,QACtB,SAAAC,GAAC,OACCA,EAAEvD,IAAI,UAAYmZ,EAAKnZ,IAAI,YACxBoB,GAAUmC,EAAEvD,IAAI,UAAYoB,MAC3BC,GAAekC,EAAEvD,IAAI,SAAWyB,GAAQJ,MACxCC,GAAYiC,EAAEvD,IAAI,SAAWwB,EAAYD,GAASD,EAAU,IAEpE5I,MAAO,GACP+K,SAAU,SAAA4V,GAAG,OAAIL,EAAYK,EAAKtZ,EAAK,EACvC2D,cAAc,EACdxE,MAAOia,EAAKnZ,IAAI,WAElB7F,EAAAA,cAAA,OACE,cAAY,kCACZyI,QAAS,kBAAMqW,EAASlZ,EAAK,EAC7B3F,UAAW8e,GAAAA,QAEVpY,EAAOZ,MAAM,CAAC,KAAM,uBAIzBS,EAAeX,IAAI,eACnB7F,EAAAA,cAAA,OAAKC,UAAW8e,GAAAA,MAAiB,cAAY,2BAC3C/e,EAAAA,cAAA,KACE8I,wBAAyB,CACvBC,OAAQ5D,GACN6Z,EAAKnZ,IAAI,UAAYD,EAAKC,IAAI,qBAAuBD,EAAKC,IAAI,UAC9DW,EAAeX,IAAI,kBAIxBD,EAAKC,IAAI,oBACR7F,EAAAA,cAAA,KACEC,UAAW8e,GAAAA,aACXjW,wBAAyB,CACvBC,OACE5D,GAAYS,EAAKC,IAAI,SAAUW,EAAeX,IAAI,gBACjDmZ,EAAKnZ,IAAI,SAAW,EAAI,IAAMc,EAAOZ,MAAM,CAAC,KAAM,SAAW,OAGlE,KACHiZ,EAAKnZ,IAAI,SAAW,GACnB7F,EAAAA,cAAA,KACEC,UAAW8e,GAAAA,MACXjW,wBAAyB,CACvBC,OACE5D,GACES,EAAKC,IAAI,qBAAuBD,EAAKC,IAAI,SACzCW,EAAeX,IAAI,eAErB,IACAc,EAAOZ,MAAM,CAAC,KAAM,cASxC,IAEF/F,EAAAA,cAAA,OAAKC,UAAW8e,GAAAA,MAAiB,cAAY,mBAC3C/e,EAAAA,cAAA,OAAKY,IAAKue,KACVnf,EAAAA,cAAA,WAAM2G,EAAOZ,MAAM,CAAC,KAAM,gBAKpC,CAEA,I,GAAA,IAAe5B,EAAAA,EAAAA,MACbwa,IACA,SAACva,EAAWC,GAAS,OACnBD,EAAUoC,iBAAmBnC,EAAUmC,gBACvCpC,EAAUqC,SAAWpC,EAAUoC,QAC/BrC,EAAUwa,aAAeva,EAAU+a,MACnChb,EAAUoO,iBAAmBnO,EAAUgb,aACvCjb,EAAUya,cAAgBxa,EAAUwa,aACpCza,EAAU0a,WAAaza,EAAUya,UACjC1a,EAAUuC,SAAWtC,EAAUsC,MAAM,I,ytGCpHzC,IAUM2Y,GAAmB,KAEZC,GAAO,SAAAC,GAAA,SAAAD,IAAA,IAAA7M,EAAA+M,GAAA,KAAAF,GAAA,QAAAG,EAAAC,UAAAtV,OAAAuV,EAAA,IAAApb,MAAAkb,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAD,EAAAC,GAAAF,UAAAE,GAkCjB,OAlCiBnN,EAAAoN,GAAA,KAAAP,EAAA,GAAA3D,OAAAgE,KAkClBxW,OAAC,EAAAsJ,CAAA,QAAAqN,GAAAR,EAAAC,GAAAQ,GAAAT,EAAA,EAAAxQ,IAAA,wBAAAhK,MA3BD,SAAsBV,EAAW4b,GAC/B,OAAO5b,EAAU6b,cAAgB/L,KAAKgM,oBAAsB9b,EAAU+b,UAAYjM,KAAKiM,OACzF,GAAC,CAAArR,IAAA,SAAAhK,MAED,WACE,IAAMmb,EAAc/L,KAAK5N,MAAM2Z,YACzBE,EAAUjM,KAAK5N,MAAM6Z,QAK3B,OAHAjM,KAAKgM,mBAAqBD,EAC1B/L,KAAKiM,QAAUA,EAGbpgB,EAAAA,cAAA,SACEwN,KAAK,WACL1E,wBAAyB,CACvBC,OAAS,iFAEOmX,6IASxB,IAAC,CAjCiB,CAASG,EAAAA,WAqCRC,IAAEC,GAAA,SAAAC,GACrB,SAAAF,EAAY/Z,GAAQ,IAADka,EAAAC,EAAAjB,GAAA,KAAAa,IACjBI,EAAAZ,GAAA,KAAAQ,EAAA,CAAM/Z,KACDI,QAASA,EAAAA,EAAAA,GAAOJ,EAAMI,QAAQd,IAAI,aAEvC,IAAA8a,EAA8CD,EAAKna,MAA3CC,EAAcma,EAAdna,eAAgBoa,EAAKD,EAALC,MAAOre,EAAUoe,EAAVpe,WAwI9B,OAtIDme,EAAKvK,WAAa,GAClBuK,EAAKG,eAAgB5b,EAAAA,EAAAA,QACrByb,EAAKtK,cAAgB,CAAC,EACtBsK,EAAKI,sBAAwB,KAC7BJ,EAAKK,mBAAqB,KAC1BL,EAAKM,iBAAmB,KACxBN,EAAKO,MAAQ1gB,SAAS2gB,cAAc,KAAKC,QAAQC,SAAS,MAE1DV,EAAKtS,QAAU,IAAIiT,EAAAA,WACjB7a,EAAeX,IAAI,WAAWjJ,KAAI,SAAAwM,GAAC,MAAI,CAACA,EAAEvD,IAAI,MAAOuD,EAAER,IAAI,kBAjEzCnC,EAiE2E2C,OAhExEnF,GAAzBwC,EAAOZ,IAAI,YAECjB,EAAI6B,EAAOZ,IAAI,WAAW8U,WAAU,SAAAxY,GAAK,OAAIA,EAAM4D,MAAM,CAAC,UAAW,WAAW,KAC9E,EAAU,MACiB,QAA5Bub,EAAA7a,EAAOV,MAAM,CAAC,UAAWnB,WAAG,IAAA0c,OAAA,EAA5BA,EAA8B1Y,IAAI,QAAShE,KAAM,KAE1D,QAPkB,IAAA6B,EAEjB6a,EACO1c,CA8DyF,KAGnG8b,EAAKa,gBAAe9e,GAAAA,GAAA,GACf8H,GAAS/D,EAAeX,IAAI,UAAUW,EAAeX,IAAI,gBACzDW,EAAeX,IAAI,gBAAgB2I,QAGxCkS,EAAKniB,MAAQmiB,EAAKa,gBAAgBhW,OAAS,IAAM,IAEd,aAA/B/E,EAAeX,IAAI,WACrB6a,EAAKc,UAAYd,EAAKa,gBAAgBhjB,MACtCmiB,EAAKvS,YAAc3H,EAAeT,MAAM,CAAC,cAAe,gBACpDS,EAAeT,MAAM,CAAC,cAAe,gBACrC2a,EAAKniB,OAASmiB,EAAKa,gBAAgBhjB,OAAS,IAChDmiB,EAAKe,kBAGPf,EAAK/L,OACHnO,EAAeX,IAAI,kBAAoBW,EAAeX,IAAI,iBAAiByB,KACvEd,EAAeX,IAAI,kBACnBZ,EAAAA,EAAAA,MAAK,EACHH,EAAAA,EAAAA,KAAI,CACF4c,QAASlb,EAAeX,IAAI,kBAC5BtH,MAAOmiB,EAAKa,gBAAgBhjB,UAItCmiB,EAAKiB,WAAajB,EAAK/L,OAAOlQ,QAAO,SAACC,EAAMoB,GAAG,OAAKpB,EAAOoB,EAAID,IAAI,QAAQ,GAAE,GAE7E6a,EAAKkB,YAAc/e,KAAKC,IAAIyD,EAAMhI,MAAOiI,EAAeT,MAAM,CAAC,cAAe,gBAC9E2a,EAAKmB,aAAerb,EAAeT,MAAM,CAAC,cAAe,gBACzD2a,EAAKoB,kBAAoB,UAAYpB,EAAKa,gBAAgBQ,OAE1DrB,EAAKsB,gBACHtB,EAAKkB,aAAerf,GACpBiE,EAAeX,IAAI,eACJ,UAAfU,EAAMqa,OACN,UAAYF,EAAKa,gBAAgBQ,OACnCrB,EAAKuB,qBAAuBvB,EAAKsB,iBAAmB,UAAYtB,EAAKa,gBAAgBQ,OAErFrB,EAAKwB,SAAW1b,EAAeX,IAAI,gBAAkB6a,EAAKjO,cAAgBnQ,OAAOC,WAAa+c,GAE9FoB,EAAKjO,cAAgBkH,QAAQrX,OAAO6f,qBAGhCzB,EAAKjO,eAAuE,QAAtDgO,EAACne,OAAO,mBAAqBkE,EAAeX,IAAI,cAAM,IAAA4a,GAArDA,EAAuD7f,MAC5E8f,EAAKkB,YAAclB,EAAKwB,WAC1B5f,OAAO,mBAAqBkE,EAAeX,IAAI,OAAS6a,EAAKkB,YAAclB,EAAKwB,SAChF5f,OAAO,oBAAsBkE,EAAeX,IAAI,QAAU6a,EAAKkB,YAAclB,EAAKwB,UAAY,GAEhG5f,OAAO,mBAAqBkE,EAAeX,IAAI,OAAS,CACtDtH,MAAOmiB,EAAKkB,YAActf,OAAO,mBAAqBkE,EAAeX,IAAI,SAI7E6a,EAAK0B,eACD1B,EAAKkB,aAAerf,GAAciE,EAAeX,IAAI,gBACnDW,EAAeX,IAAI,eAAiB6a,EAAKkB,YAActC,KAE3D,UAAYoB,EAAKa,gBAAgBQ,OAEtB,UAATnB,GACFF,EAAKna,MAAM8b,eAAe7b,EAAeX,IAAI,cAAgB,IAAMhD,KAAKE,IAAI2d,EAAKwB,SAAUxB,EAAKkB,cAClGlB,EAAK4B,cAAgB,EAErB5B,EAAK6B,MAAK9f,GAAAA,GAAA,GACLie,EAAK6B,OAAK,IACbC,aAAc,KACdC,aAAc,KACdC,cAAe,EACfrH,UAAW,EACXsH,UAAW,EACXC,IAAI,EACJC,WAAW,EACXC,UAAU,EACVC,OAAO,EACP1gB,EAAG,EACHG,EAAG,EACH6V,MAAO,EACP2K,MAAOtC,EAAKG,cACZoC,YAAa1gB,EACb2gB,iBAAiB,EACjBC,eAAe,EACfC,OAAO,IAGT1C,EAAK9b,EAAI,EACT8b,EAAK2C,GAAK,EACV3C,EAAK4C,GAAK,EAEV5C,EAAK1Z,YACH,QAAUR,EAAeX,IAAI,cAC5B,GAAKW,EAAeX,IAAI,mBAAqBW,EAAeX,IAAI,iBAEnE6a,EAAK6C,aAAcze,EAAAA,EAAAA,KAAI,CACrB0e,QAAS,EACT/jB,OAEIihB,EAAKkB,aAAetf,OAAOC,YAC3BiE,EAAeX,IAAI,eACnBW,EAAeX,IAAI,kBAChB6a,EAAK1Z,YACZyc,QAEI/C,EAAKkB,aAAetf,OAAOC,YAC3BiE,EAAeX,IAAI,eACnBW,EAAeX,IAAI,kBAChB6a,EAAK1Z,YACZoH,QAASsS,EAAKtS,QAAQxR,KAAI,SAAA6J,GAAM,OAC9B4a,EAAAA,EAAAA,YAAW,CAAEtkB,GAAI0J,EAAOZ,IAAI,MAAOD,KAAMa,EAAQid,MAAO,EAAGd,GAAInc,EAAOZ,IAAI,OAAQ,MAGtF6a,EAAKiD,UACHnd,EAAeX,IAAI,SACnB,UAAYU,EAAMqa,OACa,aAA/Bpa,EAAeX,IAAI,WAClB6a,EAAKjO,cACRiO,EAAKkD,aAAelD,EAAK6C,YACzB7C,EAAKmD,WAAWnD,EAAK6C,aACrB7C,EAAKoD,YAAc,SAAA/hB,GACb,WAAaA,EAAMgN,OACrB3L,EAAAA,GAAAA,IAAUrB,GACV2e,EAAKqD,iBAET,EAACrD,CACH,CAAC,OAAAX,GAAAO,EAAAE,GAAAR,GAAAM,EAAA,EAAAvR,IAAA,uBAAAhK,MAED,WACEif,GAAAC,GAAA3D,EAAA4D,WAAA,6BAAAxgB,KAAA,MACAnD,SAAS4jB,oBAAoB,UAAWhQ,KAAK2P,aAAa,GACtD3P,KAAKiQ,UAAUC,cAAclQ,KAAKiQ,SACxC,GAAC,CAAArV,IAAA,mCAAAhK,MAED,SAAiCV,GAC/B2f,GAAAC,GAAA3D,EAAA4D,WAAA,yCAAAxgB,KAAA,KAAuCW,GACnCA,EAAU9F,OAAS4V,KAAK5N,MAAMhI,QAEhC4V,KAAK+N,SAAW/N,KAAK1B,cACjB,IACApO,EAAUmC,eAAeX,IAAI,cAC7BxB,EAAU9B,WACV+c,GACJnL,KAAKmQ,iBACLnQ,KAAKoQ,YAAY,GAErB,GAAC,CAAAxV,IAAA,oBAAAhK,MAED,WACEif,GAAAC,GAAA3D,EAAA4D,WAAA,0BAAAxgB,KAAA,MACA,IAAQ8C,EAAmB2N,KAAK5N,MAAxBC,eACR2N,KAAKmQ,iBACLnQ,KAAKqQ,WAoBDhe,EAAeX,IAAI,eAAevD,OAAOmiB,iBAAiB,SAAUtQ,KAAKuQ,kBACzEvQ,KAAKwP,WAAWrhB,OAAOmiB,iBAAiB,SAAUtQ,KAAKwQ,gBAC7D,GAAC,CAAA5V,IAAA,iBAAAhK,MAED,WACkB,IAAD6f,EAAA,KACfC,EAAqC1Q,KAAK5N,MAAlCqa,EAAKiE,EAALjE,MAAOre,EAAUsiB,EAAVtiB,WAAYuiB,EAAKD,EAALC,MACrBC,EAAY5Q,KAAKyN,YAAcrf,EAAaM,KAAKC,IAAI,GAAKP,EAAa4R,KAAKyN,aAAe,EAC7F,UAAYhB,GAAUkE,GACxBthB,YAAW,WACT,IAAMwhB,EAAS,SAATA,EAASC,GACTA,EAAWF,GACbH,EAAKL,YAAYU,GACjBzhB,YAAW,kBAAMwhB,EAAOC,EAAW,IAAOF,EAAYA,EAAYE,EAAW,IAAK,GAAE,KAC/EL,EAAKL,YAAYQ,EAC1B,EACAvhB,YAAW,kBAAMwhB,EAAO,EAAE,GAAE,IAC9B,GAAG,KACD,UAAYpE,GAASkE,GAAO3Q,KAAKoQ,YAAYQ,EACnD,GAAC,CAAAhW,IAAA,kBAAAhK,MAED,WAEE,GAAIoP,KAAK+Q,iBAAmB/Q,KAAKgR,cAAe,CAC9C,IAAMC,EAAcjR,KAAKgR,cAAc/iB,wBACjCijB,EAAclR,KAAK+Q,gBAAgB9iB,wBACrCgjB,EAAY5iB,EAAI,KAClB2R,KAAK+Q,gBAAgBhlB,MAAMR,SAAW,QACtCyU,KAAK+Q,gBAAgBhlB,MAAMT,KAAO4lB,EAAYhjB,EAAI,KAClD8R,KAAK+Q,gBAAgBhlB,MAAMujB,MAAQ,OACnCtP,KAAK+Q,gBAAgBhlB,MAAMV,IAAM,QAQrC,CACF,GAAC,CAAAuP,IAAA,mBAAAhK,MAED,WAEEoP,KAAKmR,SAAS,CAAErC,YAAa3gB,OAAOC,YACtC,GAAC,CAAAwM,IAAA,qBAAAhK,MAED,SAAmBwB,GAAQ,IAADgf,EAAA,KAClBtN,EAAO9D,KACbqR,EAAkCrR,KAAK5N,MAA/BC,EAAcgf,EAAdhf,eAAgBoa,EAAK4E,EAAL5E,MAClB6E,EAAQlf,EAAMC,eAAeX,IAAI,WAAWpB,QAAO,SAACC,EAAM+B,GAC9D,IAAMif,EAAgE,GAAtD7iB,KAAKC,IAAI2D,EAAOZ,IAAI,SAAUY,EAAOZ,IAAI,WACnD8f,EAAYD,EAAU,KAAOA,EAAU,IAAM,IAAa,IAC1DE,EACJnf,EAAOZ,IAAI,UAAYY,EAAOV,MAAM,CAAC,QAAS,kBAC1CrB,EAAKG,KAAK,CACRghB,KAAK9V,EAAAA,GAAAA,IAAkB,CACrB5G,OAAQ6G,GAAAA,GACRzR,MAAOonB,EACPrnB,OAAQqnB,EACR1V,KAAMxJ,EAAOV,MAAM,CAAC,QAAS,kBAC7BmK,gBAAiB,cACjBC,UAAU,EACVC,MAAM,EACN0V,MAAM,IAERC,SAAUtf,EAAOZ,IAAI,QAEvBnB,EACAshB,EACJvf,EAAOZ,IAAI,YAAcY,EAAOZ,IAAI,WAAWgQ,MAAK,SAAA1T,GAAK,MAAI,UAAYA,EAAM4D,MAAM,CAAC,UAAW,cAAc,IACjH,OAAOigB,EACHJ,EAAY/gB,KAAK,CACfghB,KAAK9V,EAAAA,GAAAA,IAAkB,CACrB5G,OAAQ6G,GAAAA,GACRzR,MAAO,IACPD,OAAQ,IACR2R,KAAM+V,EAASngB,IAAI,iBACnBqK,gBAAiB,cACjBC,UAAU,EACVC,MAAM,EACN0V,MAAM,IAERC,SAAUtf,EAAOZ,IAAI,MAAQ,SAE/B+f,CACN,IAAG3gB,EAAAA,EAAAA,SAEHghB,QAAQC,IACNT,EAAM7oB,KACJ,SAAAqT,GAAI,OACF,IAAIgW,SAAQ,SAAAzoB,GACLyS,EAAK4V,KAAKroB,EAAQyS,GACvBkW,IAAMlW,EAAK4V,IAAK,CACdO,OAAQ,MACRC,KAAM/jB,OAAOgkB,iBAAmB,UAAY,SAE3CxR,MAAK,SAAAyR,GAAI,OAAIA,EAAKT,MAAM,IACxBhR,MAAK,SAAAyR,GACJ,GAAIA,EAAKV,IAAK,CACZ,IAAM7jB,EAAM,IAAIgT,MAChBhT,EAAIkP,YAAc,GAClBlP,EAAIpB,IAAM2lB,EAAKV,IACf7jB,EAAIwkB,OAAS,WACXvO,EAAK7B,cAAcnG,EAAK8V,UAAY/jB,EACpCxE,EAAQyS,EACV,EACAjO,EAAIykB,QAAU,WACZjpB,EAAQyS,EACV,CACF,CACF,IACCgF,OAAM,kBAAMzX,EAAQyS,EAAK,GAC9B,GAAE,KAEN6E,MAAK,WACQ,UAAT8L,GACF2E,EAAKhf,MAAM8b,eACT7b,EAAeX,IAAI,eAA0B,UAAT+a,IAAsB2E,EAAK9S,cAC3D,IACA5P,KAAKE,IAAIwiB,EAAKrD,SAAUqD,EAAK3D,cAErCpe,YAAW,WACT+hB,EAAKD,SAAS,CAAEoB,kBAAkB,IAEhCzO,EAAKkN,eACL3e,EAAeX,IAAI,eACnBW,EAAeX,IAAI,iBACoB,SAAvCW,EAAeX,IAAI,iBACnBoS,EAAK2J,YAAc3J,EAAKiK,YAExByE,EAAAA,GAAAA,GAAS1O,EAAKkN,cAAe,CAC3B1lB,KAAO,SAACC,EAAUnB,GAChB,GAAiB,WAAbmB,EAAuB,OAAOnB,GAAS,UAAYmB,EAAW,EAAI,GACtE,IAAM2C,EAAIQ,KAAKgL,SAMf,OALIrH,EAAeX,IAAI,eACrBoS,EAAK2O,eAAe,CAClBpZ,KAAM,kBACNvL,OAAQI,EAAI,IAAQA,EAAI,IAAO,SAAW,QAAW,SAElD9D,EAAQ8D,CACjB,CATO,CASJmE,EAAeX,IAAI,gBAAiBoS,EAAKkN,cAAc0B,YAAcvkB,OAAOC,YAC/EukB,SAAU,IAER7O,EAAKsK,MAAM9b,QAAQwR,EAAK8O,aAAa9O,EAAKsK,MAAM9b,OAAOugB,OAAO,QAAQ,kBAAM,CAAK,MAGnF,oBAAsBzgB,EAAM0gB,YAAY1gB,EAAM0gB,aAClD1B,EAAK2B,eACP,GAAG,GACL,GACF,GAAC,CAAAnY,IAAA,eAAAhK,MAED,WACgB,IAADoiB,EAAAC,EACTjT,KAAKgR,gBACPwB,EAAAA,GAAAA,GAASxS,KAAKgR,cAAe,CAC3B1lB,MAAwB,QAAlB0nB,EAAAhT,KAAKgR,qBAAa,IAAAgC,OAAA,EAAlBA,EAAoB7O,aAA+B,QAAlB8O,EAAAjT,KAAKgR,qBAAa,IAAAiC,OAAA,EAAlBA,EAAoBP,aAAc,GACzEC,SAAU,MACT7R,OAAM,WAAO,GACpB,GAAC,CAAAlG,IAAA,gBAAAhK,MAED,WACiB,IAADsiB,EAAAC,EACVnT,KAAKgR,gBACPwB,EAAAA,GAAAA,GAASxS,KAAKgR,cAAe,CAC3B1lB,MAAwB,QAAlB4nB,EAAAlT,KAAKgR,qBAAa,IAAAkC,OAAA,EAAlBA,EAAoB/O,aAA+B,QAAlBgP,EAAAnT,KAAKgR,qBAAa,IAAAmC,OAAA,EAAlBA,EAAoBT,aAAc,GACzEC,SAAU,MACT7R,OAAM,WAAO,GACpB,GAAC,CAAAlG,IAAA,gBAAAhK,MAED,WAAiB,IAADwiB,EAAA,KACN3G,EAAUzM,KAAK5N,MAAfqa,MACF3I,EAAO9D,KACb,GAAIA,KAAKgR,eAAiBhR,KAAK+Q,gBAAiB,CAC9C,IAAME,EAAcjR,KAAKgR,cAAc/iB,wBACvC+R,KAAK+Q,gBAAgBhlB,MAAMT,KAAOoD,KAAKE,IAAIqiB,EAAY/iB,EAAI+iB,EAAY7mB,MAAQ,IAAKgE,WAAa,IAAM,KACvG4R,KAAK+Q,gBAAgBhlB,MAAMujB,MAAQ,OACnCtP,KAAK+Q,gBAAgBhlB,MAAMge,QAAU,cACvC,CACA,GAAI/J,KAAKgR,gBAAkBhR,KAAK6N,iBAAmB,UAAYpB,GAAQ,CACrE,IAAMve,EACJ,UAAYue,EACR3I,EAAKkN,cAAc0B,YAAcvkB,OAAOC,YACvC0V,EAAKkN,cAAc0B,YAAcvkB,OAAOC,YAAc,EAEzDD,OAAOklB,YAAc,IAAMrT,KAAKgR,cAAcviB,cAAgBuR,KAAKsT,WACrEtT,KAAKsT,SAASvnB,MAAMR,SAAW,QAC/ByU,KAAKuT,UAAUxnB,MAAMR,SAAW,SAIlC8D,YAAW,WACL,UAAYod,GAAS2G,EAAKpC,eAAiBoC,EAAKpC,cAAc0B,YAActkB,WAAa,KAC3FglB,EAAKI,eAAgB,GACnB1P,EAAKkN,gBAAkBoC,EAAKI,gBAC9BhB,EAAAA,GAAAA,GAAS1O,EAAKkN,cAAe,CAAE1lB,KAAM4C,EAAGykB,SAAU,GAAKzkB,IACpDyS,MAAK,WACJtR,YAAW,WACLyU,EAAKkN,gBAAkBoC,EAAKI,gBAC9BhB,EAAAA,GAAAA,GAAS1O,EAAKkN,cAAe,CAC3B1lB,KAAM4C,EAAI,EACVykB,SAAU,GAAKzkB,IAEdyS,MAAK,WACJtR,YAAW,WACLyU,EAAKkN,gBAAkBoC,EAAKI,gBAC9BhB,EAAAA,GAAAA,GAAS1O,EAAKkN,cAAe,CAAE1lB,KAAM4C,EAAGykB,SAAU,GAAKzkB,IAAK4S,OAAM,WAAO,GAC7E,GAAG,IACL,IACCA,OAAM,WAAO,GACpB,GAAG,IACL,IACCA,OAAM,WAAO,GACpB,GAAG,IACL,CAQF,GAAC,CAAAlG,IAAA,WAAAhK,MAED,SAASY,GACP,IAAQa,EAAmB2N,KAAK5N,MAAxBC,eACFY,EAAQ1B,GAASC,GACjB2B,EAAOtB,GAAQL,GACfod,GACFvc,EAAeX,IAAI,MAAqCyB,EAAO,EAApC3B,EAAYE,IAAI,eAC3CW,EAAeX,IAAI,wBACnBsO,KAAKnN,aACLR,EAAeX,IAAI,wBACjBF,EAAYE,IAAI,WAAWpB,QAAO,SAAC3B,EAAKoD,GAAC,OAAKrD,KAAKC,IAAIA,EAAKoD,EAAEL,IAAI,SAAS,GAAE,OAC/EW,EAAeX,IAAI,oBAAsBuB,GAASZ,EAAeX,IAAI,oBAAsBsO,KAAKnN,gBAChGR,EAAeX,IAAI,kBAAoByB,GAAQd,EAAeX,IAAI,kBAAoBsO,KAAKnN,eAC3FrB,EAAYE,IAAI,SAAWF,EAAYE,IAAI,WAAcW,EAAeX,IAAI,iBAIhF,OAFAsO,KAAKmR,SAAS,CAAEvC,MAAOA,KAEhBje,EAAAA,EAAAA,KAAI,CACTie,MAAOA,GAEX,GAAC,CAAAhU,IAAA,kBAAAhK,MAED,SAAgBY,GACd,OAAOA,EAAYE,IAAI,WACnBF,EACGE,IAAI,WACJsD,QAAO,SAAAvD,GAAI,OAAIA,EAAKC,IAAI,SAAW,CAAC,IACpCjJ,KAAI,SAAAgJ,GACH,MAAO,CAAE7I,GAAI6I,EAAKC,IAAI,MAAOuD,EAAGxD,EAAKC,IAAI,SAC3C,IACC6Y,UACH,EACN,GAAC,CAAA3P,IAAA,iBAAAhK,MAED,WAAkB,IAAD6iB,EAAA,KACfC,EAAkC1T,KAAK5N,MAA/BC,EAAcqhB,EAAdrhB,eAAgBoa,EAAKiH,EAALjH,MACxBzM,KAAK/F,QAAU+F,KAAK/F,QAAQ0Z,eAAc,SAAA1Z,GAAO,OAC/CA,EAAQ0I,SAAQ,SAAArQ,GAAM,OACpB2H,EACG2Z,MACC,CAACthB,EAAOZ,IAAI,MAAO,UACnBhD,KAAKgU,MAAM+Q,EAAKzZ,YAAc1H,EAAOZ,IAAI,UAAY+hB,EAAKrG,gBAAgBtW,YAE3E8c,MACC,CAACthB,EAAOZ,IAAI,MAAO,SACnBhD,KAAKgU,MAAM+Q,EAAKzZ,YAAc1H,EAAOZ,IAAI,SAAW+hB,EAAKrG,gBAAgBtW,YAE1E8c,MACC,CAACthB,EAAOZ,IAAI,MAAO,YACnBhD,KAAKgU,MAAM+Q,EAAKzZ,YAAc1H,EAAOZ,IAAI,YAAc+hB,EAAKrG,gBAAgBtW,WAC7E,GACJ,IAGHkJ,KAAK6T,aAAe7T,KAAKoN,gBAAgBhW,QACpC,IAAM4I,KAAKoN,gBAAgB7W,MAAQyJ,KAAKhG,cAAgB3H,EAAeX,IAAI,gBAAkB,EAAI,GAClGhD,KAAKgU,MAAM1C,KAAKhG,YAAcgG,KAAKqN,WACnCrN,KAAKqN,WAAarN,KAAKoN,gBAAgBhjB,OAAkB,UAATqiB,GAClDzM,KAAK5N,MAAM8b,eAAexf,KAAKE,IAAIoR,KAAK+N,SAAU/N,KAAK6T,eAGzD,IAAMC,EAAQzhB,EAAeX,IAAI,cAC3BqiB,EAAO,SAAWD,GAAS,MAAQA,GAAS9T,KAAK1B,cAAgB,EAAI,WAAawV,EAAQ,GAAK,GACjGC,GACF1hB,EAAeX,IAAI,gBAAgBiR,SAAQ,SAACzI,EAAO8Z,GACjD9Z,EAAMyI,SAAQ,SAACsR,EAAOC,GACpB,IAAIC,EAAQ,EACZ,GAAIF,EAAMviB,IAAI,GAAK,EACjB,IAAK,IAAIjB,EAAI,EAAGA,EAAIwjB,EAAMviB,IAAI,GAAK,EAAGjB,IAWpC,GAVoB,IAAhB/B,KAAKgL,UAAkB+Z,EAAKrG,gBAAgBpV,OAAS,EAAI+b,EAAOA,KAClEhe,GAAW0d,EAAKzR,WAAY,CAACgS,EAAYE,EAAYzjB,EAAG,IAAI,GACxC,IAAhB/B,KAAKgL,UAAkB+Z,EAAKrG,gBAAgBpV,OAAS,EAAI+b,EAAOA,IAClEhe,GAAW0d,EAAKzR,WAAY,CAACgS,EAAYE,EAAYzjB,EAAG,IAAI,GAE1C,IAAhB/B,KAAKgL,SAAiB,EAAIqa,GAAQN,EAAKrG,gBAAgBpV,QAAUic,EAAMviB,IAAI,GAAKyiB,EAAQ,IAC1FA,GAAS,EACTpe,GAAW0d,EAAKzR,WAAY,CAACgS,EAAYE,EAAYzjB,EAAG,IAAI,KAG5DgjB,EAAKrG,gBAAgBpV,QAAU,iBAAmByb,EAAKrG,gBAAgBnW,WAEzE,IADA,IAAIkd,EAAQ,EACH1jB,EAAI,EAAGA,EAAIwjB,EAAMviB,IAAI,GAAIjB,IAC5B0F,GAAasd,EAAKzR,WAAY,CAACgS,EAAYE,EAAYzjB,EAAG,KAAuB,IAAhB/B,KAAKgL,SAAiB,EAAIqa,IAC7Fhe,GAAW0d,EAAKzR,WAAY,CAACgS,EAAYE,EAAYzjB,EAAGgjB,EAAKrG,gBAAgBpW,OAAO,GAElFb,GAAasd,EAAKzR,WAAY,CAACgS,EAAYE,EAAYzjB,EAAGgjB,EAAKrG,gBAAgBpW,QAC/Eb,GAAasd,EAAKzR,WAAY,CAACgS,EAAYE,EAAYzjB,EAAG,KAC1C,IAAhB/B,KAAKgL,SAAiB,EAAIqa,IAE1Bhe,GAAW0d,EAAKzR,WAAY,CAACgS,EAAYE,EAAYzjB,EAAGgjB,EAAKrG,gBAAgBpW,KAAO,IAAI,GAEtFb,GAAasd,EAAKzR,WAAY,CAACgS,EAAYE,EAAYzjB,EAAGgjB,EAAKrG,gBAAgBpW,KAAO,KACtFb,GAAasd,EAAKzR,WAAY,CAACgS,EAAYE,EAAYzjB,EAAG,KAC1C,IAAhB/B,KAAKgL,SAAiB,EAAIqa,GAC1BI,EAAQF,EAAMviB,IAAI,GAAK,IAEvBqE,GAAW0d,EAAKzR,WAAY,CAACgS,EAAYE,EAAYzjB,EAAGgjB,EAAKrG,gBAAgBpW,KAAO,IAAI,GACxFmd,GAAS,IAOzB,GACF,IACFnU,KAAK0M,eAAgBrJ,EAAAA,EAAAA,QAAOrD,KAAKgC,WACnC,GAAC,CAAApH,IAAA,iBAAAhK,MAED,SACea,EAAMoX,EAAQ3K,EAAUJ,GACjC+K,GAAQ7I,KAAKmR,SAAS,CAAE7C,aAAczF,IAC1C7I,KAAKoU,cAAc3iB,EAAMqM,GACzBkC,KAAK9B,SAAWA,CAClB,GAAC,CAAAtD,IAAA,UAAAhK,MAED,SACQoX,GACNhI,KAAKmR,SAAS,CAAElC,MAAOjH,GACzB,GAAC,CAAApN,IAAA,gBAAAhK,MAED,SACca,EAAMqM,GAElB,IAAQxL,EAAW0N,KAAKoO,MAAhB9b,OACR,GAAI0N,KAAKqU,SACPrU,KAAKqU,UAAW,MADlB,CAIArU,KAAKmR,SAAS,CAAE9C,aAAc5c,IAE9B,IAAM6iB,EAAWtU,KAAKyS,eAAe,CACnCpZ,KAAM,aACN1J,IAAK8B,EAAKC,IAAI,MACd5D,OAAQgQ,IAEJyW,EAAYjiB,EAAOugB,OAAO,WAAW,SAAAjiB,GAAK,OAAIA,EAAQ,CAAC,IAC7DoP,KAAK4S,aAAa2B,EAAWD,GAC7BtU,KAAKwT,eAAgB,EAErBxT,KAAKwU,mBACLpoB,SAASkkB,iBAAiB,UAAWtQ,KAAK2P,aAAa,EAbvD,CAcF,GAAC,CAAA/U,IAAA,iBAAAhK,MAED,SACeiY,GACb,IAAQwF,EAAiBrO,KAAKoO,MAAtBC,aACRrO,KAAKyS,eAAe,CAClBpZ,KAAM,wBACN1J,IAAK0e,EAAa3c,IAAI,MACtB5D,OAAQ+a,EAASA,EAAO4L,WAAa,IAEzC,GAAC,CAAA7Z,IAAA,eAAAhK,MAED,SACa2jB,GAAY,IAADG,EAAA,KACtBC,EAA8B3U,KAAKoO,MAA3B9b,EAAMqiB,EAANriB,OAAQ4U,EAASyN,EAATzN,UAChB,GAAKqN,EAAL,CACA,IAAMK,GAAYL,GAAajiB,GAAQZ,IAAI,WAAWpB,QAAO,SAACC,EAAMoB,GAAG,OAAKA,EAAID,IAAI,SAAWnB,CAAI,GAAE,GAC/FskB,EAAWtjB,GAASgjB,GAAajiB,GAKnCsiB,GAAY1N,GACd7X,YAAW,WACTqlB,EAAKvD,SAAS,CAAEjK,UAAW0N,EAAUpG,UAAWqG,GAClD,GAAG,GAViB,CAexB,GAAC,CAAAja,IAAA,iBAAAhK,MAED,SACe2jB,GACb,IAAQlG,EAAiBrO,KAAKoO,MAAtBC,aACRjiB,SAAS4jB,oBAAoB,UAAWhQ,KAAK2P,aAAa,GAEtDtB,IACFrO,KAAKyS,eAAe,CAClBpZ,KAAM,cACN1J,IAAK0e,EAAa3c,IAAI,QAGxBsO,KAAKmR,SAAS,CACZ9C,aAAc,KACdE,cAAe,EACfD,aAAc,OAEhBtO,KAAK8U,aAAaP,GAEtB,GAAC,CAAA3Z,IAAA,mBAAAhK,MAED,SACiBa,EAAM+B,GAAM,IAADuhB,EAAA,KAC1B/U,KAAKmR,SAAS,CAAE9C,aAAc5c,IAAQ,kBAAMsjB,EAAKC,UAAUxhB,EAAI,GACjE,GAAC,CAAAoH,IAAA,YAAAhK,MAED,SACU4C,GACR,IAAAyhB,EAA+CjV,KAAKoO,MAA5CC,EAAY4G,EAAZ5G,aAAc/b,EAAM2iB,EAAN3iB,OAAQgc,EAAY2G,EAAZ3G,aAC9B4G,EAAmClV,KAAK5N,MAAhCC,EAAc6iB,EAAd7iB,eAAgB8iB,EAAMD,EAANC,OAEW,aAA/B9iB,EAAeX,IAAI,UAA2B4c,IAChDvY,GAAWiK,KAAKgC,WAAYsM,GAAc,GAC1CtO,KAAKmR,SAAS,CAAEtC,OAAOxL,EAAAA,EAAAA,QAAOrD,KAAKgC,eAErC,IAAMsS,EAAWtU,KAAKyS,eAAe,CACnCpZ,KAAM,cACN1J,IAAK0e,EAAa3c,IAAI,MACtB5D,OAAQ0F,EAAIihB,aAERF,EAAYjiB,EAAO8iB,SAAS,CAAC,UAAW/G,EAAa3c,IAAI,MAAO,UAAU,SAAAd,GAAK,OAAIA,EAAQ4C,GAAO,CAAC,IACzGwM,KAAK4S,aAAa2B,EAAWD,GAC7BtU,KAAK4P,eAAe2E,GAChB,mBAAqBvU,KAAK9B,UAAU8B,KAAK9B,WACzC,mBAAqBiX,GAAUnV,KAAKnN,aACtCxD,YAAW,WACT8lB,GACF,GAAG,IACP,GAAC,CAAAva,IAAA,YAAAhK,MAED,WAEE,IAAQ0B,EAAW0N,KAAKoO,MAAhB9b,OACFgiB,EAAWtU,KAAKyS,eAAe,CACnCpZ,KAAM,eAEFkb,EAAYjiB,EAAOugB,OAAO,WAAW,SAAAjiB,GAAK,OAAIA,EAAMnI,KAAI,SAAA4sB,GAAC,OAAIA,EAAE5gB,IAAI,QAAS,EAAE,GAAC,IACrFuL,KAAK4S,aAAa2B,EAAWD,GAC7BtU,KAAKmR,SAAS,CAAEzC,WAAW,EAAOG,MAAO7O,KAAK0M,gBAC9C1M,KAAKgC,WAAahC,KAAK0M,cAAcrS,OACrC2F,KAAK8U,aAAaP,EACpB,GAAC,CAAA3Z,IAAA,YAAAhK,MAED,SACU4C,EAAK/B,GACb,IAAQ4c,EAAiBrO,KAAKoO,MAAtBC,aACFiG,EAAWtU,KAAKyS,eAAe,CACnCpZ,KAAM,eACN1J,IAAK8B,EAAOA,EAAKC,IAAI,MAAQ2c,EAAa3c,IAAI,MAC9C5D,OAAQ0F,EAAI9B,IAAI,SAAS+iB,aAE3B,GAAIhjB,EAAM,CACR,IACM8iB,EADavU,KAAKoO,MAAhB9b,OACiBshB,MAAM,CAAC,UAAWniB,EAAKC,IAAI,MAAO,SAAU8B,EAAI9B,IAAI,UAC7EsO,KAAK4S,aAAa2B,EAAWD,GAC7BtU,KAAK8U,aAAaP,EACpB,MAAOvU,KAAKmR,SAAS,CAAE5C,cAAe/a,EAAI9B,IAAI,UAChD,GAAC,CAAAkJ,IAAA,iBAAAhK,MAED,SACea,GACb,IAAQa,EAAW0N,KAAKoO,MAAhB9b,OACFgiB,EAAWtU,KAAKyS,eAAe,CACnCpZ,KAAM,mBACN1J,IAAK8B,EAAKC,IAAI,QAEV6iB,EAAYjiB,EAAOshB,MAAM,CAAC,UAAWniB,EAAKC,IAAI,MAAO,SAAU,GACrEsO,KAAK4S,aAAa2B,EAAWD,GAC7BtU,KAAK8U,aAAaP,EACpB,GAAC,CAAA3Z,IAAA,WAAAhK,MAED,WAEE,IAAA0kB,EAAuBtV,KAAKoO,MAApBK,EAAE6G,EAAF7G,GAAInc,EAAMgjB,EAANhjB,OACNgiB,EAAWtU,KAAKyS,eAAe,CACnCpZ,KAAMoV,EAAK,QAAU,OAGvB,GAAIA,EACFzO,KAAK4S,aAAa5S,KAAKyP,aAAc6E,GACrCtU,KAAK8U,aAAa9U,KAAKyP,cACvBzP,KAAKyP,aAAezP,KAAKoP,gBACpB,CACL,IAAMmG,EAAqBvV,KAAKoP,YAAY3a,IAAI,UAAW,GAAGA,IAAI,QAAQ,GAAMA,IAAI,SAAS,GACvF+gB,EAAWxV,KAAK/F,QAAQyH,MAAK,SAAApP,GAAM,OAAIA,EAAOZ,IAAI,KAAK,IAC7DsO,KAAKyP,aAAend,EAChBkjB,GAAUxV,KAAK4S,aAAa2C,EAAmB3B,MAAM,CAAC,UAAW4B,EAAS9jB,IAAI,MAAO,SAAU,GACrG,CACAsO,KAAKmR,SAAS,CAAEzC,WAAW,EAAOG,MAAO7O,KAAK0M,gBAC9C1M,KAAKgC,WAAahC,KAAK0M,cAAcrS,OACrC2F,KAAKmR,SAAS,CAAE1C,IAAKA,EAAIvH,UAAW,GACtC,GAAC,CAAAtM,IAAA,eAAAhK,MAED,WAEE,IAAA6kB,EAAyBzV,KAAKoO,MAAtBO,EAAQ8G,EAAR9G,SAAUF,EAAEgH,EAAFhH,GAClBiH,EAA2C1V,KAAK5N,MAAxCC,EAAcqjB,EAAdrjB,eAAgBoa,EAAKiJ,EAALjJ,MAAOkJ,EAAOD,EAAPC,QAEzBH,EAAWnjB,EAAeX,IAAI,WAAWgQ,MAAK,SAAA2T,GAAC,OAAIA,EAAE3jB,IAAI,KAAK,IAC9DkkB,EACHvjB,EAAeX,IAAI,gBAAkBsO,KAAK1B,iBAAmBqX,GAAW,UAAYlJ,IAAW,UAAYA,EAE9G,OACE5gB,EAAAA,cAAC4D,EAAAA,SAAQ,OACJkf,GAAYiH,IACb/pB,EAAAA,cAAA,OAAKC,UAAWC,GAAc,cAAY,YACxCF,EAAAA,cAACgqB,GAAAA,EAAQ,CACPpgB,MAAO+f,GAAYA,EAAS9jB,IAAI,QAAU8jB,EAAS9jB,IAAI,QAAUsO,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,OAC1Fa,SAAUuN,KAAK8V,SACfC,QAAStH,KAMrB,GAAC,CAAA7T,IAAA,WAAAhK,MAED,WAEE,IAEwBolB,EAAAC,EAAAC,EAFxBC,EAAoCnW,KAAKoO,MAAjCO,EAAQwH,EAARxH,SAAUzK,EAAKiS,EAALjS,MAAO5R,EAAM6jB,EAAN7jB,OACjBma,EAAUzM,KAAK5N,MAAfqa,MACJzM,KAAKgR,gBACPhR,KAAKmO,eAAkC,QAAlB6H,EAAAhW,KAAKgR,qBAAa,IAAAgF,OAAA,EAAlBA,EAAoB7R,aAAcnE,KAAKyN,YAAcvJ,EAAQlE,KAAKgR,cAAcxiB,aACrGwR,KAAKoW,uBACe,QAAlBH,EAAAjW,KAAKgR,qBAAa,IAAAiF,OAAA,EAAlBA,EAAoBI,aAAc,GAAKrW,KAAK0N,cAAgBxJ,EAAQlE,KAAKgR,cAAcnH,cACzF7J,KAAKsW,yBACe,QAAlBJ,EAAAlW,KAAKgR,qBAAa,IAAAkF,OAAA,EAAlBA,EAAoB/R,aAAcnE,KAAKyN,YAAcvJ,EAAQlE,KAAKgR,cAAcxiB,aAC9EwR,KAAKyN,YAAcvJ,GAAS,KAAOlE,KAAKgR,cAAcxiB,cACxDwR,KAAK4S,aAAatgB,EAAOugB,OAAO,QAAQ,kBAAM,CAAI,KAClD7S,KAAK4S,aAAatgB,EAAOugB,OAAO,SAAS,kBAAM,CAAI,OAKrD7S,KAAKyN,aAAezN,KAAK+N,WACxBY,GACD3O,KAAKgR,eACI,UAATvE,GACAzM,KAAKuW,mBAELvW,KAAKuW,iBAAiBxqB,MAAMT,KAC1B0U,KAAKmO,eAAiBnO,KAAKwW,aAAaC,YAAczW,KAAKuW,iBAAiBE,aAAe,KAC7FzW,KAAK0W,cAAc3qB,MAAM4qB,QAAU3W,KAAKmO,cACxCnO,KAAK4W,eAAe7qB,MAAM4qB,QAAU,EAAI3W,KAAKmO,eAQ7CnO,KAAK6W,sBACL7W,KAAK0N,aAAexJ,GAASlE,KAAK6W,qBAAqBhN,cACvD7J,KAAKgR,eACLhR,KAAKoW,uBACLpW,KAAK8W,2BAEL9W,KAAK8W,yBAAyB/qB,MAAMV,IAClCqD,KAAKC,IAAI,EAAGqR,KAAKoW,uBAAyB,GAAKpW,KAAK8W,yBAAyBjN,eAAiB,EAAI,MAIpG7J,KAAK+W,wBACL/W,KAAKyN,YAAcvJ,GAASlE,KAAK+W,uBAAuBN,aACxDzW,KAAKgR,eAELhR,KAAKgX,6BAELhX,KAAKgX,2BAA2BjrB,MAAMT,KACpCoD,KAAKC,IAAI,EAAGqR,KAAKsW,yBAA2B,GAAKtW,KAAKgX,2BAA2BP,cAAgB,EAAI,MAGrGzW,KAAKmO,cAAgB,MAAS7b,EAAOZ,IAAI,SAASsO,KAAK4S,aAAatgB,EAAOugB,OAAO,QAAQ,kBAAM,CAAI,KACpG7S,KAAKmO,cAAgB,MAAS7b,EAAOZ,IAAI,UAAUsO,KAAK4S,aAAatgB,EAAOugB,OAAO,SAAS,kBAAM,CAAI,IAC5G,GAAC,CAAAjY,IAAA,qBAAAhK,MAED,SACmBhD,GACjB,OAAO,GAAKA,EAAMqpB,QAAQ/gB,QAAS8J,KAAKkX,mBAAkBC,EAAAA,EAAAA,IAAkBvpB,GAC9E,GAAC,CAAAgN,IAAA,qBAAAhK,MAED,SAAmBwmB,GACjB,IAAAC,EAA4BrX,KAAKoO,MAAzBO,EAAQ0I,EAAR1I,SAAUzK,EAAKmT,EAALnT,MACVuI,EAAUzM,KAAK5N,MAAfqa,MAER,IAAKkC,GAAqB,UAATlC,GAAqBzM,KAAKgR,cAAe,CACxD,IAAM9iB,EAAIkpB,EACN1oB,KAAKE,IACHoR,KAAKwW,aAAaC,YAAczW,KAAKuW,iBAAiBE,YAAc,EACpEW,EAAWlpB,EAAI8R,KAAKuW,iBAAiBE,YAAc,GAErDzW,KAAKwW,aAAaC,YAAc/nB,KAAKgL,SACzCsG,KAAKmO,cAAgBjgB,GAAK8R,KAAKwW,aAAaC,YAAczW,KAAKuW,iBAAiBE,aAChFzW,KAAKgR,cAAc7M,WAAanE,KAAKmO,eAAiBnO,KAAKyN,YAAcvJ,EAAQlE,KAAKgR,cAAcxiB,YACtG,CAGF,GAAC,CAAAoM,IAAA,aAAAhK,MAED,SACWwmB,GACTpX,KAAKsX,mBAAmBF,EAC1B,GAAC,CAAAxc,IAAA,oBAAAhK,MAED,SACkBhD,GAAQ,IAAD2pB,EAAA,KACjBC,EAAUxX,KAAKuW,iBAAiBkB,WAAazX,KAAKuW,iBAAiB/nB,YAAc,EACjFkpB,EAAU1X,KAAKuW,iBAAiBoB,UAAY3X,KAAKuW,iBAAiB9nB,aAAe,EACvFuR,KAAK4M,oBAAqBgL,EAAAA,EAAAA,IAAKhqB,EAAO4pB,EAASE,GAASG,WAAU,SAAAT,GAChEG,EAAKO,WAAWV,GACXA,EAAW/C,UACdkD,EAAKQ,WAAaR,EAAKQ,WAE3B,GACF,GAAC,CAAAnd,IAAA,eAAAhK,MAED,WAEE,IAAQyB,EAAmB2N,KAAK5N,MAAxBC,eACAoc,EAAOzO,KAAKoO,MAAZK,GACR,OACE5iB,EAAAA,cAAA,OACEC,UAAWC,EACX4D,IAAKqQ,KAAKgY,QAAQ,aAClB,cAAY,eACZjsB,MAAO,CACL3B,MAAOiI,EAAeX,IAAI,iBAAmB,MAAQ,OACrDqY,QAAS0E,EAAK,OAAS,UAGzB5iB,EAAAA,cAAA,OAAKC,UAAWC,IAChBF,EAAAA,cAAA,OACEC,UAAWC,EACX4D,IAAKqQ,KAAKgY,QAAQ,iBAClBjsB,MAAO,CACL3B,MAAQ4V,KAAK+N,SAAW/N,KAAKyN,YAAe,IAAM,IAClD6B,MAAO,SAGTzjB,EAAAA,cAAA,OACEC,UAAWC,EACX,cAAY,iBACZksB,aAAcjY,KAAKkY,mBACnB7jB,YAAa2L,KAAKkX,mBAElBrrB,EAAAA,cAAA,KAAGC,UAAU,6BAKvB,GAAC,CAAA8O,IAAA,iBAAAhK,MAED,WAEE,IAAAunB,EAAoCnY,KAAKoO,MAAjCO,EAAQwJ,EAARxJ,SAAUzH,EAASiR,EAATjR,UAAWuH,EAAE0J,EAAF1J,GAC7B2J,EAA2CpY,KAAK5N,MAAxCC,EAAc+lB,EAAd/lB,eAAgBoa,EAAK2L,EAAL3L,MAAOkJ,EAAOyC,EAAPzC,QACzB0C,EAAOhmB,EAAeX,IAAI,mBAAqBsO,KAAKnN,YACpD+iB,IACF,cAAgBvjB,EAAeX,IAAI,UAAYW,EAAeX,IAAI,gBACnEikB,GAAW,UAAYlJ,GACxB,UAAYA,EACR1F,EACJ1U,EAAeX,IAAI,iBACjBikB,GAAW,UAAYlJ,IACzB,UAAYA,IACXzM,KAAK1B,eACN,aAAejM,EAAeX,IAAI,SAEpC,OACE7F,EAAAA,cAAC4D,EAAAA,SAAQ,KACNuQ,KAAK6N,iBAAmB7N,KAAKsY,eAC9BzsB,EAAAA,cAAA,OAAKC,UAAY,GAAEC,OAAqBiU,KAAK6N,gBAAmB,GAAE9hB,KAAgB,IAAI,cAAY,cAC/FssB,IAAS5J,GACR5iB,EAAAA,cAAC4D,EAAAA,SAAQ,KACNmmB,GACC/pB,EAAAA,cAAA,QACEC,UAAY,GAAEC,MAAmBmb,GAAc0O,EAAqC,GAAtB,GAAE7pB,KAChE,cAAY,kBACZuI,QAASshB,EAAc5V,KAAKuY,UAAY,MAEvCvY,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,eAG7B+c,GAAYiH,GACX/pB,EAAAA,cAAA,QAAMC,UAAWC,EAAYuI,QAAS0L,KAAKwY,aAAc,cAAY,kBAClExY,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,kBAQjCoO,KAAKwP,WAAazI,EAAa/G,KAAKyY,qBAAuB,MAIpE,GAAC,CAAA7d,IAAA,cAAAhK,MAED,WAEE,IAAA8nB,EAA2C1Y,KAAKoO,MAAxClH,EAASwR,EAATxR,UAAWsH,EAASkK,EAATlK,UAAWG,EAAQ+J,EAAR/J,SAC9BgK,EAA8C3Y,KAAK5N,MAA3CC,EAAcsmB,EAAdtmB,eAAgBoa,EAAKkM,EAALlM,MAAOre,EAAUuqB,EAAVvqB,WAE/B,OACEvC,EAAAA,cAAA,QACEC,UACG,GAAEC,MACF4iB,EAAY,GAAE5iB,KAAqB,KACnCsG,EAAeX,IAAI,cAAiB,GAAE3F,KAAoB,IAE7DuI,QAASqa,EAAW,KAAO3O,KAAKwY,aAChCzsB,MAAO,CACLyR,MAAO,UAAYiP,GAASre,EAAa,IAAM,EAAI,EACnDwqB,UAAW,UAAYnM,GAASre,EAAa,IAAM,OAAS,WAE9D,cAAY,eAEZvC,EAAAA,cAAA,SACEA,EAAAA,cAAA,QAAM,cAAY,iBAAiBC,UAAWC,IAC3C,IACAiU,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,UAAY,IAAK,MAK/C/F,EAAAA,cAAA,QACE8I,wBAAyB,CAAEC,OAAQsS,EAAY,IAAMlH,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,WAC9E,cAAY,oBAGd/F,EAAAA,cAAA,UAEIwG,EAAeX,IAAI,eACnB7F,EAAAA,cAAA,QACEC,UAAWC,GACX,cAAY,cACZ4I,wBAAyB,CAAEC,OAAQ5D,GAAYwd,EAAWnc,EAAeX,IAAI,eAAe,OAOxG,GAAC,CAAAkJ,IAAA,SAAAhK,MAED,WACU,IAADioB,EAAA,KACPxpB,YAAW,WACTwpB,EAAKzmB,MAAM+iB,QACb,GAAG,IACL,GAAC,CAAAva,IAAA,aAAAhK,MAED,WAEE,IAAQkoB,EAAgB9Y,KAAK5N,MAArB0mB,YACAlK,EAAU5O,KAAKoO,MAAfQ,MACR,OACE/iB,EAAAA,cAAA,OACEC,UAAY,IAAGC,MAAe6iB,GAAS,SAAWkK,EAAc,GAAK/sB,IACrEuI,QAAS0L,KAAKmV,OACd,cAAY,gBAEXnV,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,SAC1B/F,EAAAA,cAAA,KAAGC,UAAU,yBAGnB,GAAC,CAAA8O,IAAA,kBAAAhK,MAED,WAEE,IAAAmoB,EAA+C/Y,KAAK5N,MAA5CC,EAAc0mB,EAAd1mB,eAAgBymB,EAAWC,EAAXD,YAAarM,EAAKsM,EAALtM,MACrC,OACE5gB,EAAAA,cAAC4D,EAAAA,SAAQ,KACG,UAATgd,IACEpa,EAAeX,IAAI,eACpBsO,KAAKyN,YAActC,IACnB9Y,EAAeX,IAAI,YACnBonB,GACEjtB,EAAAA,cAAA,OAAKC,UAAWC,EAAkB,cAAY,sBAC5CF,EAAAA,cAAA,YAAOmU,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,4BAK5C,GAAC,CAAAgJ,IAAA,cAAAhK,MAED,WAEE,IAAQyB,EAAmB2N,KAAK5N,MAAxBC,eACAC,EAAW0N,KAAKoO,MAAhB9b,OAER,KAEID,EAAeX,IAAI,YACnBW,EAAeX,IAAI,kBACnBW,EAAeX,IAAI,wBACnBW,EAAeX,IAAI,oBAClBW,EAAeX,IAAI,eAAiBW,EAAeX,IAAI,iBAG1D,MAAO,GAET,GAAIsO,KAAKnN,YAAa,MAAO,GAC7B,IAAMmmB,EAAWnnB,GAAQS,GACnB2mB,EAAY1nB,GAASe,GACrB4mB,EAAsC5mB,ElBpiClCZ,IAAI,WAAWpB,QAAO,SAACC,EAAMoB,GAAG,OAAMA,EAAID,IAAI,SAAWnB,EAAOoB,EAAID,IAAI,SAAWnB,CAAI,GAAG,GkBqiC9F4oB,ElBniCiB,SAAA3nB,GAAW,OACpCA,EACGE,IAAI,WACJpB,QACC,SAACC,EAAMoB,GAAG,OACPA,EAAIC,MAAM,CAAC,OAAQ,sBAAwBD,EAAIC,MAAM,CAAC,OAAQ,WAAarB,EACxEoB,EAAIC,MAAM,CAAC,OAAQ,sBAAwBD,EAAIC,MAAM,CAAC,OAAQ,UAC9DrB,CAAI,GACV,EACD,CkB0hCgB6oB,CAAY9mB,GAEvByO,IACF1O,EAAeX,IAAI,YAAcW,EAAeX,IAAI,YAAcsnB,EAChE,GACAhZ,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,kBAAzBoO,CAA4C3N,EAAeX,IAAI,YAAc,QAC/EW,EAAeX,IAAI,kBAAoBW,EAAeX,IAAI,iBAAmBsnB,EAC3E,GACAhZ,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,qBAAzBoO,CAA+C3N,EAAeX,IAAI,kBAAoB,QACxFW,EAAeX,IAAI,oBAAsBW,EAAeX,IAAI,oBAAsBunB,EAAYE,EAC5F,GACAnZ,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,iBAAzBoO,CACEhP,GAAYqB,EAAeX,IAAI,mBAAoBW,EAAeX,IAAI,gBACpE,QACNW,EAAeX,IAAI,wBAA0BW,EAAeX,IAAI,uBAAyBwnB,EACvF,GACAlZ,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,wBAAzBoO,CAAkD3N,EAAeX,IAAI,wBAA0B,MAE/F2nB,GACJhnB,EAAeX,IAAI,gBACnBW,EAAeX,IAAI,iBACjBY,EAAOZ,IAAI,SAAYY,EAAOZ,IAAI,SAEhC,GADAsO,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,gBAG/B,OACE/F,EAAAA,cAAAA,EAAAA,SAAA,MACIkV,GAASsY,IACTxtB,EAAAA,cAAA,OAAKC,UAAWC,GACdF,EAAAA,cAAA,QAAM8I,wBAAyB,CAAEC,OAAQmM,EAAQ,IAAMsY,MAKjE,GAAC,CAAAze,IAAA,mBAAAhK,MAED,SACiBgK,GACf,IAAA0e,EAAwCtZ,KAAK5N,MAArCC,EAAcinB,EAAdjnB,eAAgBymB,EAAWQ,EAAXR,YAExB,OAAOA,EACLjtB,EAAAA,cAAA,OAAKC,UAAWC,EAAkB6O,IAAKA,EAAK,cAAY,oBACtD/O,EAAAA,cAAA,QACE8I,wBAAyB,CACvBC,OACEoL,KAAKxN,OAAOZ,MAAM,CAAC,KAAMknB,EAAc,cACrC,oBAAsBzmB,EAAeX,IAAI,eACzC,iBAAmBW,EAAeX,IAAI,eACtC,UAAYW,EAAeX,IAAI,eAC/BW,EAAeX,IAAI,gBACrBsO,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,cAAgBgJ,EAAM,gBAC3CoF,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,cAAgBgJ,EAAM,gBAC/CoF,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,cAAgBgJ,SAKrD,EAEJ,GAAC,CAAAA,IAAA,eAAAhK,MAED,WACgB,IAAD2oB,EAAA,KACbC,EAA0CxZ,KAAKoO,MAAvCC,EAAYmL,EAAZnL,aAAcM,EAAQ6K,EAAR7K,SAAUzK,EAAKsV,EAALtV,MACxBuI,EAAUzM,KAAK5N,MAAfqa,MACF6H,EAAWjG,EACbrO,KAAKyS,eAAe,CAClBpZ,KAAM,cACN1J,IAAK0e,EAAa3c,IAAI,QAExBsO,KAAKoO,MAAMkG,SACftU,KAAKyS,eACH,CACEpZ,KAAMsV,EAAW,aAAe,aAElC2F,GAGEpQ,EAAQ,GAAKlE,KAAKwP,YACfb,EAIH3O,KAAKwU,kBAAiB,IAHtBxU,KAAKmE,WAAanE,KAAKgR,cAAc7M,WACrCnE,KAAKqW,UAAYrW,KAAKgR,cAAcqF,YAKxCrW,KAAKmR,SAAS,CAAExC,UAAWA,EAAUN,aAAc,OAC/CM,GAAY,UAAYlC,IAC1BzM,KAAKmR,SAAS,CAAEsI,aAAa,IAC7BpqB,YAAW,WACT,IAAQ6U,EAAUqV,EAAKnL,MAAflK,MACRqV,EAAKnJ,YAAYlM,GACjBqV,EAAKpI,SAAS,CAAEsI,aAAa,GAC/B,GAAG,KAEP,GAAC,CAAA7e,IAAA,mBAAAhK,MAED,SACiBuQ,GAAQ,IAADuY,EAAA,KAEtB,GADkB1Z,KAAKoO,MAAflK,MACI,GAAKlE,KAAKwP,YAAcxP,KAAKmE,YAAcnE,KAAKqW,WAC1D,IAAMsD,EAAiBC,aAAY,WAC7BF,EAAK1I,gBACP0I,EAAK1I,cAAcwB,SAASkH,EAAKvV,WAAYuV,EAAKrD,WAC9ClV,IACFuY,EAAKvV,WAAa,EAClBuV,EAAKrD,UAAY,GAEnBnG,cAAcyJ,GAElB,GAAG,GAEP,GAAC,CAAA/e,IAAA,cAAAhK,MAED,SACYkgB,GACV,IAAQrE,EAAUzM,KAAK5N,MAAfqa,MACRoN,EAA0B7Z,KAAKoO,MAAvB9b,EAAMunB,EAANvnB,OAAQ4R,EAAK2V,EAAL3V,MAChB,KAAI,UAAYuI,GAASqE,EAAW,IAApC,CACA,IACwBgJ,EADlBC,EAAYjJ,EAAW5M,EAC7B,GAAIlE,KAAKgR,cACFhR,KAAKga,iBACRha,KAAKga,gBAAyC,QAAxBF,EAAA9Z,KAAKia,2BAAmB,IAAAH,OAAA,EAAxBA,EAA0BjQ,eAAgB7J,KAAKgR,cAAcnH,cACrF7J,KAAKgR,cAAc7M,WACjBnE,KAAKgR,cAAc7M,WAAa4V,EAAa5rB,OAAOC,WAAa,GAAM0iB,EAAW5M,GAChF4M,GAAY,GAAK9Q,KAAKga,eAAiBha,KAAKgR,cAAcnH,aAAeiH,EAAW,GAClF9Q,KAAKia,oBAAqBja,KAAKia,oBAAoBluB,MAAM5B,OAAS6V,KAAK0N,aAAeoD,EAAW,GAAK,KAExG9Q,KAAKgR,cAAcjlB,MAAM8R,UACvBqc,SAASla,KAAKga,eAAiBha,KAAKgR,cAAcnH,aAAeiH,GAAY,GAAK,KAEtF9Q,KAAK6J,aAAe7J,KAAKgR,cAAcnH,cAClC7J,KAAKgR,cAAcjlB,MAAM8R,UAAY,MAG1CmC,KAAKgR,eAAiBhR,KAAKyN,YAAcqD,GAAY,KAAO9Q,KAAKgR,cAAcxiB,aACjFwR,KAAK4S,aAAatgB,EAAOugB,OAAO,QAAQ,kBAAM,CAAI,IAAEA,OAAO,SAAS,kBAAM,CAAI,KAMhF7S,KAAKmR,SAAS,CAAEjN,MAAO4M,IACvB9Q,KAAKqQ,UAzB0C,CA0BjD,GAAC,CAAAzV,IAAA,sBAAAhK,MAED,WAEMoP,KAAK2M,wBACP3M,KAAK2M,sBAAsBwN,cAC3Bna,KAAK2M,sBAAwB,KAC7B3M,KAAKoa,MAAQ,EAEjB,GAAC,CAAAxf,IAAA,sBAAAhK,MAED,WAEMoP,KAAK6M,mBACP7M,KAAK6M,iBAAiBsN,cACtBna,KAAK6M,iBAAmB,KAE5B,GAAC,CAAAjS,IAAA,YAAAhK,MAED,WACa,IAADypB,EAAA,KACVhrB,YAAW,WACLgrB,EAAKxN,kBAAkBwN,EAAKC,qBAClC,GAAG,IACL,GAAC,CAAA1f,IAAA,cAAAhK,MAED,SACYhD,GAAQ,IAAD2sB,EAAA,KACTrW,EAAUlE,KAAKoO,MAAflK,MACR,GAAKlE,KAAKwP,aAAatL,GAAS,GAAhC,CACA,IAAMsW,EAAOxa,KAAKgR,cAAc/iB,wBAC1B6P,EAAS,CAAE5P,EAAGssB,EAAKtsB,EAAGG,EAAGmsB,EAAKnsB,GACpC2R,KAAK6M,kBAAmB+K,EAAAA,EAAAA,IAAKhqB,EAAO4sB,EAAKtsB,EAAGssB,EAAKnsB,GAAGwpB,WAAU,SAAA4C,GAC5DF,EAAKvJ,cAAc0J,SAAS5c,EAAO5P,EAAIusB,EAAWvsB,EAAG4P,EAAOzP,EAAIosB,EAAWpsB,GAC3EyP,EAAO5P,EAAIusB,EAAWvsB,EACtB4P,EAAOzP,EAAIosB,EAAWpsB,EAClBosB,EAAWpG,SAAUkG,EAAKlG,SAAWoG,EAAWpG,SAElDhlB,YAAW,WACTkrB,EAAKlG,SAAWoG,EAAWpG,QAC7B,GAAG,IACP,GAZyC,CAa3C,GAAC,CAAAzZ,IAAA,eAAAhK,MAED,SACahD,GAAQ,IAAD+sB,EAAA,KAClBC,EAAiC5a,KAAKoO,MAA9BC,EAAYuM,EAAZvM,aAAc/b,EAAMsoB,EAANtoB,OAClB+b,IACJrO,KAAK2M,uBAAwBkE,EAAAA,EAAAA,IAAOjjB,GAAOiqB,WAAU,SAAA4C,GACnD,IAAQvW,EAAUyW,EAAKvM,MAAflK,MAMR,GALIuW,EAAWL,QACTO,EAAKP,OACPO,EAAKvK,YAAY1hB,KAAKC,IAAIR,OAAOC,WAAausB,EAAKlN,YAAcvJ,EAAQuW,EAAWL,MAASO,EAAKP,QAChGjsB,OAAOC,WAAausB,EAAKlN,cAAakN,EAAKP,MAAQK,EAAWL,SAE/DK,EAAWI,QAAS,CACvBF,EAAKG,sBACLH,EAAKP,MAAQ,EAEb,IAAMxJ,EAAY+J,EAAKlN,YAActf,OAAOC,WAAaD,OAAOC,WAAausB,EAAKlN,YAAc,EAChG,GAAIvJ,EAAQ0M,EAAW,EACN,SAATC,EAASC,GACTA,EAAWF,GACb+J,EAAKvK,YAAYU,GACjBzhB,YAAW,kBAAMwhB,EAAOC,EAAW,IAAOF,EAAYA,EAAYE,EAAW,IAAK,GAAE,KAC/E6J,EAAKvK,YAAYQ,EAC1B,CACAC,CAAO3M,EAAQ,IACjB,KAAO,CAAC,IAAD6W,EACDJ,EAAKlN,YAAcvJ,GAAS,MAAyB,QAArB6W,EAAGJ,EAAK3J,qBAAa,IAAA+J,OAAA,EAAlBA,EAAoBvsB,cACzDmsB,EAAK/H,aAAatgB,EAAOugB,OAAO,QAAQ,kBAAM,CAAI,IAAEA,OAAO,SAAS,kBAAM,CAAI,IAClF,CACF,CACF,IACF,GAAC,CAAAjY,IAAA,eAAAhK,MAED,WAEE,OAAOoP,KAAKgR,aACd,GAAC,CAAApW,IAAA,uBAAAhK,MAED,WAEE,OACE/E,EAAAA,cAAA,OAAKC,UAAWC,EAAsB4D,IAAKqQ,KAAKgY,QAAQ,sBACtDnsB,EAAAA,cAAA,OACEC,UAAWC,EACX4D,IAAKqQ,KAAKgY,QAAQ,yBAClBC,aAAcjY,KAAKgb,2BACnB3mB,YAAa2L,KAAKib,4BAI1B,GAAC,CAAArgB,IAAA,yBAAAhK,MAED,WAEE,OACE/E,EAAAA,cAAA,OAAKC,UAAWC,EAAwB4D,IAAKqQ,KAAKgY,QAAQ,wBACxDnsB,EAAAA,cAAA,OACEC,UAAWC,EACX4D,IAAKqQ,KAAKgY,QAAQ,2BAClBC,aAAcjY,KAAKkb,6BACnB7mB,YAAa2L,KAAKmb,8BAI1B,GAAC,CAAAvgB,IAAA,6BAAAhK,MAED,SAA2BwmB,GACzB,IAAAgE,EAA4Bpb,KAAKoO,MAAzBO,EAAQyM,EAARzM,SAAUzK,EAAKkX,EAALlX,MAClB,IAAKyK,GAAY3O,KAAKgR,cAAe,CACnC,IAAM9iB,EAAIkpB,EACN1oB,KAAKE,IACHoR,KAAK6W,qBAAqBhN,aAAe7J,KAAK8W,yBAAyBjN,aAAe,EACtFuN,EAAW/oB,EAAI2R,KAAK8W,yBAAyBjN,aAAe,GAE9D7J,KAAK6W,qBAAqBhN,aAAenb,KAAKgL,SAClDsG,KAAKoW,sBACHloB,GAAK8R,KAAK6W,qBAAqBhN,aAAe7J,KAAK8W,yBAAyBjN,cAC9E7J,KAAKgR,cAAcqF,UACjBrW,KAAKoW,uBAAyBpW,KAAK0N,aAAexJ,EAAQlE,KAAKgR,cAAcviB,aACjF,CAGF,GAAC,CAAAmM,IAAA,6BAAAhK,MAED,SAC2BhD,GACzB,OAAO,GAAKA,EAAMqpB,QAAQ/gB,QAAS8J,KAAKib,2BAA0B9D,EAAAA,EAAAA,IAAkBvpB,GACtF,GAAC,CAAAgN,IAAA,4BAAAhK,MAED,SAC0BhD,GAAQ,IAADytB,EAAA,KACzB7D,EAAUxX,KAAK8W,yBAAyBW,WAAazX,KAAK8W,yBAAyBtoB,YAAc,EACjGkpB,EAAU1X,KAAK8W,yBAAyBa,UAAY3X,KAAK8W,yBAAyBroB,aAAe,EACvGuR,KAAKsb,uBAAwB1D,EAAAA,EAAAA,IAAKhqB,EAAO4pB,EAASE,GAASG,WAAU,SAAAT,GACnEiE,EAAKE,2BAA2BnE,EAClC,GACF,GAAC,CAAAxc,IAAA,+BAAAhK,MAED,SAA6BwmB,GAC3B,IAAAoE,EAA4Bxb,KAAKoO,MAAzBO,EAAQ6M,EAAR7M,SAAUzK,EAAKsX,EAALtX,MAClB,IAAKyK,GAAY3O,KAAKgR,cAAe,CACnC,IAAM9iB,EAAIkpB,EACN1oB,KAAKE,IACHoR,KAAK+W,uBAAuBN,YAAczW,KAAKgX,2BAA2BP,YAAc,EACxFW,EAAWlpB,EAAI8R,KAAKgX,2BAA2BP,YAAc,GAE/DzW,KAAK+W,uBAAuBN,YAAc/nB,KAAKgL,SACnDsG,KAAKsW,wBACHpoB,GAAK8R,KAAK+W,uBAAuBN,YAAczW,KAAKgX,2BAA2BP,aACjFzW,KAAKgR,cAAc7M,WACjBnE,KAAKsW,yBAA2BtW,KAAKyN,YAAcvJ,EAAQlE,KAAKgR,cAAcxiB,YAClF,CAGF,GAAC,CAAAoM,IAAA,+BAAAhK,MAED,SAC6BhD,GAC3B,OAAO,GAAKA,EAAMqpB,QAAQ/gB,QAAS8J,KAAKmb,6BAA4BhE,EAAAA,EAAAA,IAAkBvpB,GACxF,GAAC,CAAAgN,IAAA,8BAAAhK,MAED,SAC4BhD,GAAQ,IAAD6tB,EAAA,KAC3BjE,EAAUxX,KAAKgX,2BAA2BS,WAAazX,KAAKgX,2BAA2BxoB,YAAc,EACrGkpB,EAAU1X,KAAKgX,2BAA2BW,UAAY3X,KAAKgX,2BAA2BvoB,aAAe,EAC3GuR,KAAK0b,0BAA2B9D,EAAAA,EAAAA,IAAKhqB,EAAO4pB,EAASE,GAASG,WAAU,SAAAT,GACtEqE,EAAKE,6BAA6BvE,EACpC,GACF,GAAC,CAAAxc,IAAA,qBAAAhK,MAED,WACsB,IAADgrB,EAAAC,EAAA,KACnBC,EAAkD9b,KAAK5N,MAA/CC,EAAcypB,EAAdzpB,eAAgBoa,EAAKqP,EAALrP,MAAO7f,EAAckvB,EAAdlvB,eAC/BmvB,EAA8E/b,KAAKoO,MAA3EC,EAAY0N,EAAZ1N,aAAc/b,EAAMypB,EAANzpB,OAAQuc,EAAKkN,EAALlN,MAAO3H,EAAS6U,EAAT7U,UAAWhD,EAAK6X,EAAL7X,MAAOuV,EAAWsC,EAAXtC,YAAaxK,EAAK8M,EAAL9M,MAC9DlI,EAAa1U,EAAeX,IAAI,gBAAkBsO,KAAK1B,cAEvD0d,EAAahc,KAAK1B,eAAiB0B,KAAK+N,SAAW/N,KAAKyN,YAAc,EAExEwO,EAAsB,EACtBC,EAAqB,EACnBC,EAAW,UAAY1P,EAE7B,OACE5gB,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OACEosB,aAAcjY,KAAKiY,aACnB5jB,YAAa2L,KAAK3L,YAClBD,UAAW4L,KAAK5L,UAEhB,cAAY,iBAEX4L,KAAKoN,gBAAgBhW,OACpBvL,EAAAA,cAAA,OACE8D,IAAKqQ,KAAKgY,QAAQ,cAClBlsB,UAAWC,EACXA,MAAO,CACLqwB,SAAUpc,KAAKwP,WAAatL,EAAQ,EAAI,SAAW,YAGrDrY,EAAAA,cAAC0c,GAAM,CACLlW,eAAgBA,EAChB2H,YAAagG,KAAKhG,YAClByP,OAAQ0S,IAAa9N,EACrBjI,OAAQ+V,EACRliB,QAAS+F,KAAK/F,QACd8M,WAAYA,EACZ3c,MAAO4V,KAAKoN,gBAAgB/V,SAAW2I,KAAK5V,MAAQ4V,KAAKyN,YACzDzL,WAAY6M,EACZ3H,UAAWA,EACXD,cAAegI,EACfjI,UAAWhH,KAAKpC,QAChBhR,eAAgBA,EAChByR,eAAgB2B,KAAK3B,eACrBrG,QAAQ,EACRiK,cAAejC,KAAKiC,cACpBiC,MAAOA,EACPsE,QAAS,CACPld,KAAM0U,KAAKwP,UAAaxP,KAAKyN,aAAevJ,EAAQ,GAAM,EAAI,UAC9D7Y,IAAK2U,KAAKwP,WAAatL,EAAQ,EAAKlE,KAAKga,gBAAkB9V,EAAQ,GAAM,EAAI,GAE/E5F,cAAe0B,KAAK1B,cACpBmE,YAAa,CAAC,EAAGzC,KAAKwN,eAI1B3hB,EAAAA,cAAAA,EAAAA,SAAA,KAMGmU,KAAK8N,qBACJzb,EAAeT,MAAM,CAAC,cAAe,eAAiBsS,GAAS,MAAyB,QAArB0X,EAAG5b,KAAKgR,qBAAa,IAAA4K,OAAA,EAAlBA,EAAoBptB,cAC1FwR,KAAKqc,yBACPxwB,EAAAA,cAAA,OACEC,UAAY,IAAGC,KACb8N,GAAWzD,GAAS/D,EAAeX,IAAI,UAAUW,EAAeX,IAAI,eAAeuF,eACjF4C,GAAAA,aAAwBmG,KAAKyN,YAActC,GAAmBpf,EAAkB,MAClF0tB,EAAc1tB,EAAoB,KAEpC4D,IAAKqQ,KAAKgY,QAAQ,cAClB3H,SAAUrQ,KAAKqQ,SACftkB,MAAO,CACLgiB,SAAU/N,KAAK6N,gBAAkB1f,OAAOC,WAAa,OACrDguB,SAAU,WAGZvwB,EAAAA,cAAA,OAAK8D,IAAKqQ,KAAKgY,QAAQ,oBAAqBlsB,UAAWC,IACrDF,EAAAA,cAAA,OACEC,UAAY,GAAEC,MACZ8N,GAAWzD,GAAS/D,EAAeX,IAAI,UAAUW,EAAeX,IAAI,eAAeuF,cAErFlL,MAAO,CACL3B,MAAO4V,KAAKwP,UAAYxP,KAAKyN,YAAczN,KAAKyN,YAAcvJ,EAC9D+E,UAAW,UAAY+S,EAAahc,KAAK+N,SAAW/N,KAAKyN,YAAcvJ,GAAS,IAChFpK,WAAYkG,KAAKwP,UACZxP,KAAKyN,aAAevJ,EAAQ,GAAM,EACnC8X,IACEhc,KAAKyN,YAAczN,KAAK+N,UAAY,EACtC,OACJlQ,UAAWmC,KAAKwP,WAAatL,EAAQ,EAAKlE,KAAKga,gBAAkB9V,EAAQ,GAAM,EAAI,EACnFgF,eAAgBlJ,KAAKwP,WAAatL,EAAQ,EAAKlE,KAAKga,gBAAkB9V,EAAQ,GAAM,EAAI,MAGxFiY,GACAtwB,EAAAA,cAAA,OACEC,UAAY,IAAGmjB,GAAS5c,EAAeX,IAAI,QAAU3F,EAAgB,MACnE8N,GAAAA,kBAILmG,KAAKQ,OAAO+J,UAAU9hB,KAAI,SAAC6zB,EAAO7rB,GACjC,IAAM8rB,EAAYV,EAAKrb,OAAO5O,MAAM,CAACnB,EAAG,YAAY0C,KAGpD,OAFA+oB,GAAsBI,EAAM5qB,IAAI,SAChCuqB,GAAuBM,EAErB1wB,EAAAA,cAAA,OACEC,UAAY,GAAEC,KAAoB0E,GAAKorB,EAAKrb,OAAOrN,KAAO,EAAI0G,GAAAA,UAAuB,KACrFe,IAAK,QAAUnK,GAEd0rB,GAAYtwB,EAAAA,cAAA,OAAKC,UAAW+N,GAAAA,gBAC7BhO,EAAAA,cAACib,GAAO,CACNzU,eAAgBA,EAChB0U,WAAYA,EACZ3E,UAAWyZ,EAAK5N,cAChBrK,aAAciY,EAAKjY,aACnBwC,OAAQ,UAAYqG,EACpBzS,YAAa6hB,EAAK7hB,YAClB5P,MAAQyxB,EAAKpO,YAAc6O,EAAM5qB,IAAI,SAAYmqB,EAAKrO,WACtDvT,QAAS4hB,EAAK5hB,QACdiN,UAAWA,EACXta,eAAgBA,EAChBoV,WAAY6M,EACZxQ,eAAgBwd,EAAKxd,eACrB2I,UAAW6U,EAAKje,QAChB4E,OAAO,EACPyE,cAAegI,EACfhN,cAAe4Z,EAAK5Z,cACpB3D,cAAeud,EAAKvd,cACpBkC,OAAQqb,EAAKrb,OAAO5O,MAAM,CAACnB,EAAG,YAC9B0W,eAAgB,CAAC8U,EAAsBM,EAAWN,GAClDxZ,YAAa,CACXyZ,EAAqBI,EAAM5qB,IAAI,UAC9BW,EAAeX,IAAI,gBAChB,EACA,UAAYW,EAAeX,IAAI,cAC/B,EACA,GAAKmqB,EAAKrO,cAKxB,IACCnb,EAAeX,IAAI,iBAClB7F,EAAAA,cAACib,GAAO,CACNzU,eAAgBA,EAChB0U,WAAYA,EACZ3E,UAAWpC,KAAKiO,cAChBrK,aAAc5D,KAAK4D,aACnBwC,OAAQ,UAAYqG,EACpBzS,YAAagG,KAAKhG,YAClB5P,MAAO4V,KAAKyN,YACZ7gB,eAAgBA,EAChBsa,UAAWA,EACXjN,QAAS+F,KAAK/F,QACduG,OAAQR,KAAKQ,OAAO5O,MAAM,CAAC,EAAG,YAC9BoQ,WAAY6M,EACZ5H,cAAegI,EACf3c,OAAQA,EAAOZ,IAAI,WACnB2M,eAAgB2B,KAAK3B,eACrB2I,UAAWhH,KAAKpC,QAChBqE,cAAejC,KAAKiC,cACpB3D,cAAe0B,KAAK1B,cACpB6I,eAAgB,CAAC,EAAG9U,EAAeX,IAAI,mBACvC+Q,YAAa,CAAC,EAAG,EAAIzC,KAAKwN,kBAavCa,GACCxiB,EAAAA,cAACsG,GAAY,CACXE,eAAgBA,EAChBZ,KAAM4c,EACN/b,OAAQA,EACR5F,cAAe,UAAY+f,EAC3B7f,eAAgBA,EAChB2F,aAAc,kBAAMspB,EAAKjM,gBAAgB,EACzCnd,SAAUuN,KAAKgV,UACfxiB,OAAQwN,KAAKxN,OACbE,WAAYqU,EACZpU,eAAgBqN,KAAKrN,eACrByT,OAAQ,UAAYqG,KAMhC,GAAC,CAAA7R,IAAA,qBAAAhK,MAED,WACsB,IAAD4rB,EAAA,KACnBxc,KAAKmR,SAAS,CAAEpC,iBAAkB/O,KAAKoO,MAAMW,kBAC7C1f,YAAW,WACLmtB,EAAKxL,eAAiB7iB,OAAOklB,YAAc,IAAMmJ,EAAKxL,cAAcviB,eACtE+tB,EAAKlJ,SAASvnB,MAAMR,SAAW,QAC/BixB,EAAKjJ,UAAUxnB,MAAMR,SAAW,QAIpC,GAAG,IACL,GAAC,CAAAqP,IAAA,gBAAAhK,MAED,WACiB,IAAD6rB,EAAAC,EAAAC,EAAA,KACdC,EAA0E5c,KAAK5N,MAAvEC,EAAcuqB,EAAdvqB,eAAgBoa,EAAKmQ,EAALnQ,MAAOkJ,EAAOiH,EAAPjH,QAAS/oB,EAAcgwB,EAAdhwB,eAAgBiwB,EAAaD,EAAbC,cACxDC,EAAkF9c,KAAKoO,MAA/EO,EAAQmO,EAARnO,SAAUN,EAAYyO,EAAZzO,aAAc/b,EAAMwqB,EAANxqB,OAAQmc,EAAEqO,EAAFrO,GAAIvH,EAAS4V,EAAT5V,UAAW6H,EAAe+N,EAAf/N,gBAAiB7K,EAAK4Y,EAAL5Y,MAClE6Y,EAAc1qB,EAAeX,IAAI,WACjC2mB,EAAOhmB,EAAeX,IAAI,mBAAqBsO,KAAKnN,YACpDkU,EACJ1U,EAAeX,IAAI,eACnB,UAAY+a,GACZ,aAAepa,EAAeX,IAAI,WACjCsO,KAAK1B,cACF0e,EAAa3qB,EAAeX,IAAI,SAChCurB,EAAQ5qB,EAAeX,IAAI,SAC3BsqB,EAAahc,KAAK1B,eAAiBnQ,OAAOC,WAAa4R,KAAKyN,YAAczN,KAAKkd,QAErF,OAAO,IAAMH,EAAY5pB,KACvBtH,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,OAAKC,UAAWqxB,GAAAA,EAAAA,cAA2B,cAAY,mBACpDnd,KAAKxN,OAAOd,IAAI,eAIrB7F,EAAAA,cAAC4D,EAAAA,SAAQ,KACNutB,GAAcA,EAAW7pB,KAAO6M,KAAKod,iBAAiBJ,EAAWK,SAAS7a,SAAW,IACpFiM,IAAO4J,GAAQhmB,EAAeX,IAAI,kBAAoBsO,KAAKsd,cAC5Dtd,KAAKud,mBACL5O,GAAaN,GAAiBtH,GAU3BA,GAAegI,GAAoB/O,KAAK1B,cA6GxC,aAAe2e,EACjBpxB,EAAAA,cAAA,OAAKC,UAAY,IAAG2iB,EAAK1iB,EAAsB,MAC5CsiB,EACCxiB,EAAAA,cAAC+J,GAAc,CACbvD,eAAgBA,EAChBZ,KAAM4c,EACN/b,OAAQA,EACR5F,cAAe,UAAY+f,EAC3B7f,eAAgBA,EAChB2F,aAAc,kBAAMoqB,EAAK/M,gBAAgB,EACzCnd,SAAUuN,KAAKgV,UACfxiB,OAAQwN,KAAKxN,SAGf3G,EAAAA,cAACqe,GAAS,CACR7X,eAAgBA,EAChB+T,OAAQ,UAAYqG,EACpBxS,QAAS+F,KAAK/F,QACdxH,SAAUuN,KAAKwd,iBACflrB,OAAQA,EACRE,OAAQwN,KAAKxN,OACb6L,eAAgB2B,KAAK3B,kBAK3BxS,EAAAA,cAAC4D,EAAAA,SAAQ,KACNsX,GAAcgI,EACbljB,EAAAA,cAAA,OAAKC,UAAWC,EAAwB,cAAY,kBAClDF,EAAAA,cAAA,OAAKC,UAAWC,EAA8BuI,QAAS0L,KAAKyd,oBACzDzd,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,4BAI9B/F,EAAAA,cAAA,OAAKC,UAAY,GAAEC,KAAsB0iB,EAAK1iB,EAAsB,KAAM,cAAY,iBACnFiU,KAAK6N,kBAAoBmO,GACxBnwB,EAAAA,cAAA,OAAKC,UAAWC,EAAkB4D,IAAKqQ,KAAKgY,QAAQ,gBAErDhY,KAAK2N,mBACJtb,EAAeT,MAAM,CAAC,cAAe,gBAAkBsS,GACrD,MAAyB,QAArBwY,EAAG1c,KAAKgR,qBAAa,IAAA0L,OAAA,EAAlBA,EAAoBjuB,eAC7BuR,KAAK0d,uBACN1d,KAAK2d,qBACL3d,KAAK6N,kBAAoBmO,GACxBnwB,EAAAA,cAAA,OAAKC,UAAWC,EAAmB4D,IAAKqQ,KAAKgY,QAAQ,mBAxJ7DnsB,EAAAA,cAAC8J,EAAAA,EAAQ,CACPhG,IAAKqQ,KAAKgY,QAAQ,YAClB4F,WAAW,QACX9xB,UAAY,oBAAmBC,KAA4BA,kBAEzDiU,KAAK6d,aAAe7d,KAAK6d,YAAYC,oBAAoBjU,aAAe1b,OAAOhE,OAC3E4B,EACA,MAGNF,EAAAA,cAAA,OAAKC,UAAWC,EAA0BA,MAAO,CAAEgiB,SAAU/N,KAAKyN,cAChE5hB,EAAAA,cAAA,WACEA,EAAAA,cAAA,MAAIC,UAAWC,EAAanD,GAAG,+BAA+B,cAAY,iBACvEi0B,IAGJlO,IAAaN,IAAiBI,GAC7B5iB,EAAAA,cAAA,OACEC,UAAY,GAAEC,MAA4Bmb,EAAgC,GAAnB,GAAEnb,KACzD,cAAY,gBAEZF,EAAAA,cAAC2e,GAAI,CACHnY,eAAgBA,EAChBC,OAAQA,EACRmY,WAAY4D,EACZ3b,YAAY,EACZ2L,eAAgB2B,KAAKoU,cACrB1J,YAAa1K,KAAK+d,UAClBpT,SAAU3K,KAAKge,eACfxrB,OAAQwN,KAAKxN,SAEd6lB,IAAS5J,GACR5iB,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAAA,QACEC,UAAY,GAAEC,MAAmBmb,EAAmC,GAAtB,GAAEnb,KAChDuI,QAAS0L,KAAKuY,WAEbvY,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,eAE5B/F,EAAAA,cAAA,QAAMC,UAAWC,EAAYuI,QAAS0L,KAAKwY,cACxCxY,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,kBAIhC/F,EAAAA,cAAA,QAAMC,UAAWC,EAAmBuI,QAAS0L,KAAKwY,aAAc,cAAY,iBAC1E3sB,EAAAA,cAAA,KAAGC,UAAU,wBAIlBkU,KAAKsd,cACNzxB,EAAAA,cAAA,OACEC,UAAY,GAAEC,KACZ0iB,GAAO1H,GAAc4H,IAAaN,EAAgBtiB,EAAsB,KAE1E,cAAY,iBAEXsG,EAAeT,MAAM,CAAC,cAAe,gBAAkBsS,GACtD,MAAyB,QAArBuY,EAAGzc,KAAKgR,qBAAa,IAAAyL,OAAA,EAAlBA,EAAoBhuB,eAC3BuR,KAAK2N,mBACL3N,KAAK0d,uBAKN1d,KAAK6N,iBACJhiB,EAAAA,cAAA,OACEC,UAAWC,EACX4D,IAAKqQ,KAAKgY,QAAQ,cAClBjsB,MAAO,CACL4qB,QAAS,GAEX,cAAY,qBAGf3W,KAAK2d,qBACL3d,KAAK6N,iBACJhiB,EAAAA,cAAA,OACEC,UAAWC,EACX4D,IAAKqQ,KAAKgY,QAAQ,eAClBjsB,MAAO,CACL4qB,QAAS,GAEX,cAAY,uBAKjB5P,GAAc4O,IAAYtH,GACzBxiB,EAAAA,cAAA,OAAKC,UAAWC,EAAuBuI,QAAS0L,KAAKyd,mBAAoB,cAAY,iBAClF,IACD5xB,EAAAA,cAAA,KAAGC,UAAU,yBAInBD,EAAAA,cAAA,OACEC,UAAWC,GACX4D,IAAKqQ,KAAKgY,QAAQ,SAClBjsB,MAAO,CAAEgiB,SAAU/N,KAAKyN,aACxB,cAAY,iBAEX4K,IAAS5J,GAAMzO,KAAKie,cACpB5rB,EAAeX,IAAI,QAAUid,GAAY3O,KAAKke,eAC9Cle,KAAKme,kBAERtyB,EAAAA,cAAA,OAAKC,UAAWC,GAAwB4D,IAAKqQ,KAAKgY,QAAQ,WACvDhY,KAAKoe,eAnHVvyB,EAAAA,cAAC2e,GAAI,CACHnY,eAAgBA,EAChBC,OAAQA,EACRmY,WAAY4D,EACZhQ,eAAgB2B,KAAKoU,cACrB1J,YAAa1K,KAAK+d,UAClBpT,SAAU3K,KAAKge,eACfxrB,OAAQwN,KAAKxN,UAiKfuU,GACAlb,EAAAA,cAAA,OAAKC,UAAWC,GAAa,cAAY,qBACtCssB,IAAS5J,GAAMzO,KAAKie,cACpB5rB,EAAeX,IAAI,QAAUid,GAAY3O,KAAKke,eAC9C7F,IAAS5J,GAAMzO,KAAKme,kBAGxBne,KAAKwP,YAAczI,EAAa/G,KAAKyY,qBAAuB,KAGnE,GAAC,CAAA7d,IAAA,WAAAhK,MAED,WAEE,IAAQsT,EAAUlE,KAAKoO,MAAflK,MACRlE,KAAKoQ,YAAYlM,EAAQ,GAC3B,GAAC,CAAAtJ,IAAA,WAAAhK,MAED,WAEE,IAAQsT,EAAUlE,KAAKoO,MAAflK,MACRlE,KAAKoQ,YAAYlM,EAAQ,GAC3B,GAAC,CAAAtJ,IAAA,qBAAAhK,MAED,WAEE,IAAAytB,EAAgCre,KAAKoO,MAA7BO,EAAQ0P,EAAR1P,SAAUF,EAAE4P,EAAF5P,GAAIvK,EAAKma,EAALna,MACd7R,EAAmB2N,KAAK5N,MAAxBC,eACR,OACExG,EAAAA,cAAA,OACEC,UAAY,GAAEC,MAAyBsG,EAAeX,IAAI,cAAiB,GAAE3F,KAAoB,IACjG4D,IAAKqQ,KAAKgY,QAAQ,gBAClB,cAAY,qBACZjsB,MAAO,CAAE4qB,QAAShI,GAAYF,EAAK,EAAI,IAEvC5iB,EAAAA,cAAA,OACE,cAAY,yBACZC,UAAWoY,EAAQ,EAAK,GAAEnY,IAAoB,GAC9CuI,QAAS0L,KAAKse,UACf,KAGDzyB,EAAAA,cAAA,OACE,cAAY,0BACZC,UAAY,GAAEC,OAAkBmY,GAAS,EAAK,GAAEnY,IAAoB,IACpEuI,QAAS0L,KAAKue,UACf,KAKP,GAAC,CAAA3jB,IAAA,gBAAAhK,MAED,WAEE,IAAA4tB,EAAwDxe,KAAK5N,MAArD2Z,EAAWyS,EAAXzS,YAAa0S,EAAcD,EAAdC,eAAgBpsB,EAAcmsB,EAAdnsB,eAErC,OAAI2N,KAAK8M,MAAc9M,KAAK0e,eAG1B7yB,EAAAA,cAAC4D,EAAAA,SAAQ,KACP5D,EAAAA,cAACuf,GAAO,CAACW,YAAaA,EAAa0S,eAAgBA,IACnD5yB,EAAAA,cAAA,OACEC,UAAY,GAAEC,KAAmBA,KACjC,cAAY,QACZA,MAAO,CACL3B,MAIEiI,EAAeX,IAAI,gBAAkBsO,KAAK1B,cAAgB,IAAM5P,KAAKE,IAAIoR,KAAK+N,SAAU/N,KAAKyN,eAGhGzN,KAAK2e,iBAId,GAAC,CAAA/jB,IAAA,QAAAhK,MAED,WAEEoP,KAAKmR,SAAS,CAAEnC,eAAe,GACjC,GAAC,CAAApU,IAAA,SAAAhK,MAED,WAEE,IAAAguB,EAA4C5e,KAAK5N,MAAzCysB,EAAMD,EAANC,OAAQxsB,EAAcusB,EAAdvsB,eAAgBysB,EAAOF,EAAPE,QAChC,GAAID,EAAQ,CACV,IAAME,EACJ,uDACAC,mBAAmBH,IAClB7e,KAAK8M,MAAQ,uDAAyD,6BAEnE5O,EAAW,WACf+gB,aAAaC,QAAQ,oBAAqBC,SAAS9sB,EAAeX,IAAI,YAAa,IAAM,GACzFvD,OAAOixB,SAASC,QAClB,EAEAlxB,OAAOmiB,iBAAiB,QAASpS,GACjC/P,OAAOmiB,iBAAiB,WAAYpS,GACpC8B,KAAKiQ,SAAW2J,aAAY,WAC1BkF,EAAQ5gB,EACV,GAAG,MACHohB,EAAAA,GAAAA,KAAY,qBAAqB,GACjCnxB,OAAOixB,SAAS/tB,QAAQ0tB,EAC1B,MAAO/e,KAAKuf,OACd,GAAC,CAAA3kB,IAAA,kBAAAhK,MAED,WAEE,OACE/E,EAAAA,cAAC8J,EAAAA,EAAQ,KACP9J,EAAAA,cAAA,OAAKC,UAAWC,GACdF,EAAAA,cAAA,KAAGC,UAAU,0BACbD,EAAAA,cAAA,OACEC,UAAWC,EACX4I,wBAAyB,CACvBC,OAAQoL,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,cAAeoO,KAAK8M,MAAQ,UAAY,mBAG7EjhB,EAAAA,cAAA,OAAKC,UAAWC,GACdF,EAAAA,cAAC2J,GAAAA,EAAM,CACLC,MAAOuK,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,cAAe,cAC/C9F,UAAWC,GACXuI,QAAS0L,KAAKwf,SAEhB3zB,EAAAA,cAAC2J,GAAAA,EAAM,CACLC,MAAOuK,KAAKxN,OAAOZ,MAAM,CAAC,KAAM,cAAe,aAC/C9F,UAAWC,GACXuI,QAAS0L,KAAKuf,UAM1B,GAAC,CAAA3kB,IAAA,eAAAhK,MAED,WAEE,IAAQoe,EAAkBhP,KAAKoO,MAAvBY,cACA3c,EAAmB2N,KAAK5N,MAAxBC,eACR,OACExG,EAAAA,cAAA,OAAKC,UAAY,GAAEC,KAAmBA,KAAgB,cAAY,SAC/DsG,EAAeX,IAAI,gBAAkBW,EAAeX,IAAI,WACrDsd,EACEhP,KAAK2e,gBACL3e,KAAKyf,kBACPzf,KAAK2e,gBAGf,IAAC,CA31DoB,CAASe,EAAAA,GAAQC,GAAAvT,GAAA2D,UAAA,kBAgMrC6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,kBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,mBAiBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,mBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,oBAoBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,oBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,gBA+GR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,gBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,iBASR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,iBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,kBA2KR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,kBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,WAOR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,WAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,iBAKR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,iBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,kBAuBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,kBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,gBAUR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,gBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,kBAoBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,kBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,oBAoBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,oBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,aAKR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,aAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,aAwBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,aAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,aAaR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,aAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,kBAgBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,kBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,YAYR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,YAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,gBAsBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,gBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,YAwBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,YAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,sBA2DR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,sBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,cAuBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,cAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,qBAKR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,qBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,gBAYR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,gBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,kBAoCR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,kBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,eA+CR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,eAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,UA+CR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,UAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,cAOR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,cAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,mBAgBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,mBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,eAkBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,eAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,oBAwDR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,oBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,gBAyBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,gBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,oBAoCR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,oBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,eAiBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,eAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,uBAgCR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,uBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,uBASR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,uBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,aAQR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,aAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,eAOR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,eAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,gBAkBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,gBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,gBAgCR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,gBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,wBAKR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,wBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,0BAcR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,0BAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,8BAgCR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,8BAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,6BAKR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,6BAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,gCA2BR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,gCAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,+BAKR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,+BAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,sBASR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,sBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,sBAqMR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,sBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,iBAaR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,iBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,YA+MR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,YAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,YAMR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,YAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,sBAMR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,sBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,iBA6BR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,iBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,SA0BR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,SAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,UAKR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,UAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,mBAwBR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,mBAAA3D,GAAA2D,WAAA4P,GAAAvT,GAAA2D,UAAA,gBA6BR6P,EAAAA,IAAQx2B,OAAAy2B,yBAAAzT,GAAA2D,UAAA,gBAAA3D,GAAA2D,WAAA3D,G,4FC36DX,IAAM0T,EAAa,SAAC5a,EAAO6a,EAAKC,GAC9B,GAAIA,GAAS9a,EACX,OAAO,EAET,GAAI8a,GAASD,EACX,OAAO,EAET,IAAM7xB,GAAK8xB,EAAQ9a,IAAU6a,EAAM7a,GACnC,OAAOhX,EAAIA,GAAK,EAAI,EAAIA,EAC1B,EAEe,SAASskB,EAAS9nB,EAASu1B,GACxC,GAAIA,EAAOtN,SAAW,EAAG,OAAOb,QAAQoO,SAExC,GAAI,GAAKD,EAAOtN,SAId,OAHkB,MAAdsN,EAAO50B,MAAaX,EAAQ2rB,UAAY4J,EAAO50B,KAChC,MAAf40B,EAAO30B,OAAcZ,EAAQyZ,WAAa8b,EAAO30B,MAE9CwmB,QAAQzoB,UAGjB,IAAM82B,EAAYC,KAAKC,MACjBC,EAAUH,EAAYF,EAAOtN,SAC7BzN,EAAaxa,EAAQyZ,WAArBe,EAAoCxa,EAAQ2rB,UAC5Clb,EACD,MAAQ8kB,EAAO30B,KAAO,KAAO20B,EAAO30B,KAAO4Z,EAD1C/J,EAED,MAAQ8kB,EAAO50B,IAAM,KAAO40B,EAAO50B,IAAM6Z,EAG9C,OAAO,IAAI4M,SAAQ,SAACzoB,EAAS62B,GAC3B,IAAM3vB,EAAO,CAAErC,EAAGxD,EAAQyZ,WAAY9V,EAAG3D,EAAQ2rB,WAmCjDhnB,YAjCoB,SAAdkxB,IACJ,GAAI71B,EAAQyZ,YAAc5T,EAAKrC,GAAKxD,EAAQ2rB,WAAa9lB,EAAKlC,EAA9D,CAKA,IAAMgyB,EAAMD,KAAKC,MACXL,EAAQF,EAAWK,EAAWG,EAASD,GACvCG,EAAQ,CAAEtyB,EAAGQ,KAAKgU,MAAMwC,EAAU/J,EAAa6kB,GAAQ3xB,EAAGK,KAAKgU,MAAMwC,EAAU/J,EAAa6kB,IAClGt1B,EAAQyZ,WAAaqc,EAAMtyB,EAC3BxD,EAAQ2rB,UAAYmK,EAAMnyB,EAEtBgyB,GAAOC,EACTj3B,IAKAqB,EAAQ2rB,WAAa9lB,EAAKlC,GAC1B3D,EAAQyZ,YAAc5T,EAAKrC,GAC3BxD,EAAQ2rB,YAAcmK,EAAMnyB,GAC5B3D,EAAQyZ,aAAeqc,EAAMtyB,GAM/BqC,EAAKrC,EAAIxD,EAAQyZ,WACjB5T,EAAKlC,EAAI3D,EAAQ2rB,UAEjBhnB,WAAWkxB,EAAa,IAPtBl3B,GAnBF,MAFE62B,GA6BJ,GAEwB,EAC1B,GACF,CAEO,SAASO,EAAgC/1B,GAAkE,IAAzD6U,EAASiM,UAAAtV,OAAA,QAAApG,IAAA0b,UAAA,GAAAA,UAAA,GAAG9gB,EAAQg2B,cAAkCC,GAArBnV,UAAAtV,OAAA,QAAApG,IAAA0b,UAAA,GAAAA,UAAA,GAAmB,CAAC,GAAhBoV,OAAAA,OAAM,IAAAD,EAAG,EAACA,EACtG,GAAIj2B,GAAW6U,GAAa7U,EAAQuD,uBAAyBsR,EAAUtR,sBAAuB,CAC5F,IAAM4yB,EAAgBthB,EAAUtR,wBAC1B6yB,EAAcp2B,EAAQuD,wBACxB6yB,EAAYnqB,OAASkqB,EAAclqB,OAASiqB,EAE9CrhB,EAAU8W,UAAY9W,EAAU8W,WAAayK,EAAYnqB,QAAUkqB,EAAclqB,OAASiqB,IACjFE,EAAYz1B,IAAMw1B,EAAcx1B,IAAMu1B,IAE/CrhB,EAAU8W,UAAY9W,EAAU8W,WAAawK,EAAcx1B,IAAMu1B,EAASE,EAAYz1B,KAE1F,CACF,C,sMC7EM01B,EAAe,EAEd,SAAS5J,EAAkBvpB,GAQhC,OAPIA,EAAMqpB,QAAQ/gB,QAChBtI,EAAMozB,QAAUpzB,EAAMqpB,QAAQ,GAAG+J,QACjCpzB,EAAMqzB,QAAUrzB,EAAMqpB,QAAQ,GAAGgK,UAEjCrzB,EAAMozB,QAAUpzB,EAAMszB,eAAe,GAAGF,QACxCpzB,EAAMqzB,QAAUrzB,EAAMszB,eAAe,GAAGD,SAEnCrzB,CACT,CAEA,SAASuzB,EAAwBvzB,GAO/B,OANIA,EAAMqpB,QAAQ/gB,OAAS,IACzBtI,EAAMwsB,MAAQ1rB,KAAK0rB,MACjBxsB,EAAMqpB,QAAQ,GAAGhtB,MAAQ2D,EAAMqpB,QAAQ,GAAGhtB,MAC1C2D,EAAMqpB,QAAQ,GAAG/sB,MAAQ0D,EAAMqpB,QAAQ,GAAG/sB,QAGvC0D,CACT,CAEe,SAASgqB,EAAKhqB,EAAOwzB,EAAeC,GACjD,IAAMC,EAAK1zB,EAAME,OAAO4S,QAAQ,QAC1B6gB,EAAS3zB,EAAMozB,QACfQ,EAAS5zB,EAAMqzB,QAEfnyB,EAAUsyB,EAAgBG,EAC1BxyB,EAAUsyB,EAAgBG,EAE1BC,GAAQC,EAAAA,EAAAA,IACZC,EAAAA,EAAAA,GAAoBL,EAAI,cACxBK,EAAAA,EAAAA,GAAoBL,EAAI,YAAa,CAAEM,SAAS,IAASC,MAAKC,EAAAA,EAAAA,IAAM,SAAAl0B,GAAK,OAAIupB,EAAkBvpB,EAAM,MAEjGm0B,GAAOL,EAAAA,EAAAA,IACXC,EAAAA,EAAAA,GAAoBL,EAAI,YACxBK,EAAAA,EAAAA,GAAoBL,EAAI,WAAY,CAAEM,SAAS,IAASC,MAAKC,EAAAA,EAAAA,IAAM,SAAAl0B,GAAK,OAAIupB,EAAkBvpB,EAAM,MAGlGo0B,GAAe,EAEnB,OAAON,EAAAA,EAAAA,GACLD,EAAMI,MACJI,EAAAA,EAAAA,IAAS,SAAAr0B,GACP,GAAIo0B,EACF,OAAO,EAET,IAAME,EACJxzB,KAAKyzB,IAAIZ,EAAS3zB,EAAMozB,SAAWD,GAAgBryB,KAAKyzB,IAAIX,EAAS5zB,EAAMqzB,SAAWF,EAIxF,OAHKiB,GAAgBE,IACnBF,GAAe,GAEVE,CACT,KACAJ,EAAAA,EAAAA,IAAM,SAAAl0B,GAIJ,OAHIA,EAAMw0B,aACRnzB,EAAAA,EAAAA,IAAUrB,GAEL,CACLM,EAAGN,EAAMozB,QAAUlyB,EACnBT,EAAGT,EAAMqzB,QAAUlyB,EACnBslB,UAAU,EAEd,KACAgO,EAAAA,EAAAA,GAAYN,IAEdA,EAAKF,MACHS,EAAAA,EAAAA,GAAO,IACPR,EAAAA,EAAAA,IAAM,SAAAl0B,GAIJ,OAHIA,EAAMw0B,aACRnzB,EAAAA,EAAAA,IAAUrB,GAEL,CACLM,EAAGN,EAAMozB,QAAUlyB,EACnBT,EAAGT,EAAMqzB,QAAUlyB,EACnBslB,UAAU,EAEd,KAGN,CAEO,SAASxD,EAAOjjB,GACrB,IAAM20B,EAAa30B,EAAMwsB,MAEnBoI,GAAab,EAAAA,EAAAA,GAAoBv1B,SAAU,YAAa,CAAEw1B,SAAS,IAASC,MAChFC,EAAAA,EAAAA,IAAM,SAAAl0B,GAAK,OAAIuzB,EAAwBvzB,EAAM,KAEzC60B,GAAWd,EAAAA,EAAAA,GAAoBv1B,SAAU,WAAY,CAAEw1B,SAAS,IAASC,MAC7EC,EAAAA,EAAAA,IAAM,SAAAl0B,GAAK,OAAIuzB,EAAwBvzB,EAAM,KAG/C,OAAO8zB,EAAAA,EAAAA,GACLc,EAAWX,MACTI,EAAAA,EAAAA,IAAS,SAAAr0B,GACP,OAAI,IAAMA,EAAMqpB,QAAQ/gB,MAI1B,KACA4rB,EAAAA,EAAAA,IAAM,SAAAl0B,GACJ,IAAM20B,EAAa30B,EAAMwsB,MAIzB,OAHIxsB,EAAMw0B,aACRnzB,EAAAA,EAAAA,IAAUrB,GAEL,CACLwsB,MAAOmI,EACP1H,SAAS,EAEb,KACAwH,EAAAA,EAAAA,GAAYI,IAEdA,EAASZ,MACPS,EAAAA,EAAAA,GAAO,IACPR,EAAAA,EAAAA,IAAM,SAAAY,GACJ,MAAO,CACLtI,MAAOmI,EACP1H,SAAS,EAEb,KAGN,C,gnGC5HA,IAAM8H,EAAgB,mBAAqBC,OAASA,OAAO,gBAAkB,gCACvEC,EAAQ,mBAAqBD,OAASA,OAAO,SAAW,yBAE/C,SAASE,IAAgF,IAAjEC,EAAYvX,UAAAtV,OAAA,QAAApG,IAAA0b,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGwX,EAAYxX,UAAAtV,OAAA,EAAAsV,UAAA,QAAA1b,EAAAtG,EAAAgiB,UAAAtV,OAAA,QAAApG,IAAA0b,UAAA,GAAAA,UAAA,GAA6B,CAAC,EAA1ByX,EAAUz5B,EAAVy5B,WAAYC,EAAQ15B,EAAR05B,SAC9EC,EACJ,mBAAqBH,IAAgBI,EAAAA,EAAAA,IAAaJ,GAAcL,GAC5Dv5B,OAAOi6B,OAAO,CAAC,GAAGD,EAAAA,EAAAA,IAAaJ,GAAcL,GAAgBI,GAC7DA,EACAD,EAAc,SAAAQ,GAOlB,SAAAR,IAA0B,IAAdS,EAAM/X,UAAAtV,OAAA,QAAApG,IAAA0b,UAAA,GAAAA,UAAA,GAAG,CAAC,G,4FAACF,CAAA,KAAAwX,GACrB,IAAMU,GAAY7yB,EAAAA,EAAAA,KAAI4yB,GAAO,OAAA5X,EAAA,KAAAmX,EAAA,EAE3BnyB,EAAAA,EAAAA,OAAMgjB,eAAc,SAAA8P,GAAY,OAC9Br6B,OAAOD,KAAKg6B,GAAsB7yB,QAChC,SAACmzB,EAAc7oB,GAAG,OAAK6oB,EAAahvB,IAAImG,EAAKuoB,EAAqBvoB,GAAK4oB,EAAU9xB,IAAIkJ,GAAMA,EAAK4oB,GAAW,GAC3GC,EACD,KAGP,CAAC,O,sRAAA7X,CAAAkX,EAAAQ,G,EAAAR,G,EAAA,EAAAloB,IAAA,MAAAhK,MACD,SAAIgX,EAAG3S,GAAI,IAADsJ,EAAA,KACR,OAAO,MAAQ2kB,GAAY,iBAAmBA,GAAY7yB,MAAMyF,QAAQotB,EAAStb,IAC7E5H,KAAK2T,eAAc,SAAA+P,GAAK,OACtBR,EAAStb,GAAGtX,QACV,SAACozB,EAAOC,GAAW,OACjB9T,EAAAC,EAAAgT,EAAA/S,WAAA,MAAAxR,GAAUhP,KACRm0B,EACAC,EACA,mBAAqBR,EAAqBQ,GACtCR,EAAqBQ,GAAaD,EAAMhyB,IAAIiyB,GAAcA,EAAaD,GACvEA,EAAMhyB,IAAIiyB,GACf,GACH9T,EAAAC,EAAAgT,EAAA/S,WAAA,MAAAxR,GAAUhP,KACRm0B,EACA9b,EACA,mBAAqBub,EAAqBvb,GAAKub,EAAqBvb,GAAG3S,EAAG2S,EAAG8b,GAASzuB,GAEzF,IACF4a,EAAAC,EAAAgT,EAAA/S,WAAA,YAAAxgB,KAAA,KACSqY,EAAG,mBAAqBub,EAAqBvb,GAAKub,EAAqBvb,GAAG3S,EAAG2S,EAAG5H,MAAQ/K,EACxG,M,yFAAC,CAtCiB,EAAS2uB,EAAAA,EAAAA,QAC3Bx6B,OAAOD,KAAKg6B,GAAsB7yB,QAChC,SAACuzB,EAAejpB,GAAG,OAAOipB,EAAcjpB,GAAOuoB,EAAqBvoB,QAAK,EAAQA,GAAKjK,EAAAA,EAAAA,QAASkzB,CAAa,GAC5G,CAAC,GAEHZ,IAwCF,OALAH,EAAe/S,UAAU+T,kBAAmB,EAC5ChB,EAAeH,GAAiBQ,EAChCL,EAAeC,aAAe,WAC5B,OAAOI,CACT,EACOL,CACT,CAEAA,EAAegB,iBAAmB,SAAUC,GAC1C,OAAOve,QACL,MAAQue,GAAuB,iBAAmBA,GAAuBA,EAAoBD,iBAEjG,EAEA,IAAME,EAA2B56B,OAAO66B,qBAAoB,WAAa,IAAG3zB,QAC1E,SAAC4zB,EAAOC,GAAI,OAAOD,EAAMC,IAAQ,EAAOD,CAAK,GAC7C,CAAC,GAqEI,SAASE,EAAQl2B,GACtB,OAAOA,CACT,CAEO,SAASm2B,EAAQC,GACtB,OAAO,WACL,OAAOA,CACT,CACF,CAEO,SAAS5uB,EAAUxH,GACxB,OAAOsX,QAAQtX,EACjB,CAEO,SAASq2B,EAASr2B,GACvB,OAAO,MAAQA,EAAI,GAAK,iBAAmBA,EAAIA,EAAIA,EAAEumB,UACvD,CAEO,SAAS+P,EAAUt2B,GACxB,OAAOixB,SAASjxB,EAAG,GACrB,CAEO,SAASu2B,EAAQv2B,GACtB,OAAO4X,WAAW5X,EACpB,CAEO,SAASw2B,EAAQx2B,GACtB,OAAOmC,MAAMyF,QAAQ5H,GAAKA,EAAIy2B,EAAAA,SAAAA,WAAoBz2B,IAAM,mBAAqBA,EAAEqc,QAAUrc,EAAEqc,UAAY,EACzG,CAEO,SAASqa,EAASC,GACvB,OAAO,SAAU32B,GACf,OAAO,MAAQA,EAAI,KAAO22B,EAAY32B,EACxC,CACF,CAEO,SAAS42B,IAAyC,IAAjCC,EAAQvZ,UAAAtV,OAAA,QAAApG,IAAA0b,UAAA,GAAAA,UAAA,IAAGwZ,EAAAA,EAAAA,OAAOC,EAAYzZ,UAAAtV,OAAA,EAAAsV,UAAA,QAAA1b,EACpD,OAAO,SAAU5B,GACf,OAAO62B,EAASG,SAASh3B,GAAKA,EAAI+2B,CACpC,CACF,CAEO,SAASE,EAAQC,GACtB,OAAO,MAAQA,EACX,SAAUl3B,GACR,OAAOA,aAAak3B,EAChBl3B,GACC,MAAQA,GAAM,iBAAmBA,GAAK,GAAK9E,OAAOD,KAAK+E,GAAGgI,SAAY,mBAAqBkvB,EAAWC,MACvGD,EAAWC,QACXD,EAAWE,GAAGp3B,EACpB,EACA,WACE,OAAO,IACT,CACN,CAEO,SAASq3B,EAAYC,GAC1B,OAAO,SAAUt3B,GACf,OAAOA,aAAas3B,EAAiBt3B,EAAIs3B,EAAet3B,EAC1D,CACF,CAEO,SAASu3B,EAAev3B,GAC7B,OAAOyC,EAAAA,IAAAA,MAAUzC,GAAKA,EAAI,MAAQA,GAAK,iBAAmBA,GAAImV,EAAAA,EAAAA,QAAOnV,IAAKyC,EAAAA,EAAAA,KAAIzC,EAChF,CAEO,SAASw3B,EAAgBx3B,GAC9B,OAAO4C,EAAAA,KAAAA,OAAY5C,GAAKA,EAAImC,MAAMyF,QAAQ5H,IAAKmV,EAAAA,EAAAA,QAAOnV,IAAK4C,EAAAA,EAAAA,MAAK5C,EAClE,CAEO,SAASy3B,EAAWC,EAAOC,GAChC,OAAO,SAAU33B,GACf,OAAO03B,EAAM13B,GAAKA,EAAI23B,EAAM33B,EAC9B,CACF,CAMO,SAAS43B,EAAkBjB,GAChC,OAAO,SAAU32B,GACf,OAA8B22B,EAAvB,iBAAmB32B,EAAgB63B,KAAKC,MAAM93B,GAAkBA,EACzE,CACF,CAEO,SAAS+3B,EAAYhB,EAAciB,GAAsC,IAA9BC,EAAU3a,UAAAtV,OAAA,QAAApG,IAAA0b,UAAA,GAAAA,UAAA,GAAG,SAAAtd,GAAC,OAAI,MAAQA,CAAC,EAC3E,OAAO,SAAUA,GACf,OAAOi4B,EAAWj4B,GAAM,mBAAqB+2B,EAAeA,EAAa/2B,GAAK+2B,EAAgBiB,EAAOh4B,EACvG,CACF,CAEO,SAASk4B,EAAKR,EAAOM,EAAQG,GAClC,OAAO,SAAUn4B,GACf,OAAO03B,EAAM13B,GAAKg4B,EAAOh4B,GAAKm4B,EAAYn4B,EAC5C,CACF,CAlKA40B,EAAewD,UAAY,WAAiD,IAADC,EAAA/a,UAAAtV,OAAA,QAAApG,IAAA0b,UAAA,GAAAA,UAAA,GAAJ,CAAC,EAAjC2Y,EAAIoC,EAAJpC,KAAenB,EAAYuD,EAArBC,QAC3C,OAAO,SAAUpB,GACfA,EAAWE,KACRF,EAAWE,GAAK,WAAwB,IAAd/B,EAAM/X,UAAAtV,OAAA,QAAApG,IAAA0b,UAAA,GAAAA,UAAA,GAAG,CAAC,EACnC,OAAO+X,aAAkB6B,EAAa7B,EAAS,IAAI6B,EAAW7B,EAChE,GACF6B,EAAWC,QACRD,EAAWC,MAAQ,WAClB,OAAOD,EAAWE,IACpB,IACG,iBAAmBnB,GAAQA,EAAKjuB,QAAY,iBAAmBkvB,EAAWjB,MAAQiB,EAAWjB,KAAKjuB,UACrGkvB,EAAWrV,UAAW,KAAIoU,GAAQiB,EAAWjB,SAAU,EACvDiB,EAAY,KAAIjB,GAAQiB,EAAWjB,QAAU,SAAUsC,GACrD,OAAOjhB,QACL,MAAQihB,GAAc,iBAAmBA,GAAcA,EAAY,KAAItC,GAAQiB,EAAWjB,QAE9F,GAEF,IAAMuC,GACH,mBAAqBtB,EAAWrV,UAAU4W,MACvC,mBAAqBvB,EAAWrV,UAAU4W,MAAM9D,GAC9CuC,EAAWrV,UAAU4W,MAAM9D,GAC3BuC,EAAWrV,UAAU4W,MACvB,QACH,mBAAqB3D,GACtB,mBAAqBA,EAAajT,UAAU4W,OAC5C,mBAAqB3D,EAAajT,UAAU4W,MAAM9D,GAC9CG,EAAajT,UAAU4W,MAAM9D,GAC7B,MAENuC,EAAWrV,UAAU4W,MAAQ,WAAyB,IAAD,IAAApb,EAAAC,UAAAtV,OAAX0wB,EAAS,IAAAv2B,MAAAkb,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAATkb,EAASlb,GAAAF,UAAAE,GACjD,IAAMmb,EAAc7mB,KAAK2T,eAAc,SAAAkT,GAOrC,OANAA,EAAYC,WAAWnkB,SAAQ,SAAAokB,GAAa,IAADC,EAAAp8B,EAAAm8B,EAAA,GAAVnf,EAACof,EAAA,GAAE/xB,EAAC+xB,EAAA,GACnCH,EAAYpyB,IACVmT,EACA,MAAQ3S,GAAK,iBAAmBA,GAAK,mBAAqBA,EAAE0xB,MAAQ1xB,EAAE0xB,MAAKnsB,MAAPvF,EAAW2xB,GAAa3xB,EAEhG,IACO4xB,CACT,IACA,OAAO,MAAQH,EAAcG,EAAcH,EAAYlsB,MAAMqsB,EAAaD,EAC5E,EACAxB,EAAWrV,UAAU4W,MAAM9D,GAAS6D,EAEhC,mBAAqB1D,IACvB55B,OAAO66B,oBAAoBjB,GAAcrgB,SAAQ,SAAUskB,GACpDjD,EAAyBiD,SAAa,IAAW7B,EAAW6B,KAC/D7B,EAAW6B,GAAYjE,EAAaiE,GAExC,IACA79B,OAAO66B,oBAAoBjB,EAAajT,WAAWpN,SAAQ,SAAUskB,GAC9DjD,EAAyBiD,SAAa,IAAW7B,EAAWrV,UAAUkX,KACzE7B,EAAWrV,UAAUkX,GAAYjE,EAAajT,UAAUkX,GAE5D,IASJ,CACF,C,inCCvHO,SAAS1yB,IAA8D,IAAD/K,EAAAgiB,UAAAtV,OAAA,QAAApG,IAAA0b,UAAA,GAAAA,UAAA,GAAJ,CAAC,EAA3ChX,EAAShL,EAATgL,UAAW0yB,EAAS19B,EAAT09B,UAAWxyB,EAAQlL,EAARkL,SAAU9D,EAAKpH,EAALoH,MAChBjG,EAAAC,GAAfC,EAAAA,EAAAA,UAAS+F,GAAM,GAAtCjD,EAAOhD,EAAA,GAAEw8B,EAAUx8B,EAAA,GACauC,EAAAtC,GAAXC,EAAAA,EAAAA,UAAS,GAAE,GAAhCu8B,EAAMl6B,EAAA,GAAEm6B,EAASn6B,EAAA,GAElBoH,EAAU,SAAA1D,GACV8D,GAAUA,EAASF,EAAU5C,MAAM,CAAChB,EAAO,iBAAkBA,GACjEu2B,EAAWv2B,GACXy2B,EAAUz2B,EACZ,EAEA,OACE/E,EAAAA,cAAA,OACEC,UAAWK,IAAW,uBAAwB,CAC5C+6B,UAAWA,EACXI,WAAYJ,KAGbA,EACCr7B,EAAAA,cAAC07B,EAAAA,EAAQ,CACPC,WAAYhzB,EAAU5C,MAAM,CAACjE,EAAS,iBACtC85B,QAASjzB,EAAU5C,MAAM,CAACjE,EAAS,iBACnC+5B,cAAc,EACdC,aAAa,EACbC,UAAU,EACVC,YAAa,mBAAqBnzB,KAGpCF,EAAU/L,KAAI,SAACuF,EAAOyC,GAAC,OACrB5E,EAAAA,cAAA,OAAKC,UAAW6B,GAAW8C,EAAK,UAAY,GAAGmK,IAAK,eAAiBnK,GAClE,UAAYzC,EAAM0D,IAAI,gBACrB7F,EAAAA,cAAA,OAAKC,UAAWK,IAAW,SAAU,CAAEi7B,OAAQ32B,GAAK22B,IAAW9yB,QAAS,kBAAMA,EAAQ7D,EAAE,GACtF5E,EAAAA,cAAA,KAAGC,UAAU,2BAGfD,EAAAA,cAACi8B,EAAgB,CACfN,WAAYx5B,EAAM4D,MAAM,CAAC,iBACzB8C,SAAUJ,EACVuzB,YAAa,mBAAqBnzB,GAClCT,MAAOxD,EACP22B,OAAQ32B,GAAK22B,GAAUF,EACvBO,QAASh3B,GAAK22B,EAAS5yB,EAAU5C,MAAM,CAACjE,EAAS,iBAAmBK,EAAM4D,MAAM,CAAC,mBAGjF,IAKhB,CAEA,IAAe/F,EAAAA,KAAW0I,GAAc,SAAChE,EAAMw3B,GAAI,OAAKx3B,EAAKiE,YAAcuzB,EAAKvzB,SAAS,IAEzF,IAAMszB,EAAmBj8B,EAAAA,MACvB,SAAAuG,GACE,IAAQ6B,EAAoD7B,EAApD6B,MAAOS,EAA6CtC,EAA7CsC,SAAU8yB,EAAmCp1B,EAAnCo1B,WAAYC,EAAuBr1B,EAAvBq1B,QAASI,EAAcz1B,EAAdy1B,UAE9C,OACEh8B,EAAAA,cAAC07B,EAAAA,EAAQ,CACPS,QAASP,EACTD,WAAYA,EACZE,cAAc,EACdC,aAAa,EACbE,UAAWA,EACXvzB,QAAS,WACPI,EAAST,EACX,GAGN,IACA,SAAC1D,EAAMw3B,GAAI,OAAKx3B,EAAKk3B,UAAYM,EAAKN,OAAO,IAG/CK,EAAiB7d,YAAc,kB,0pECjFmB,I,YAE7BzU,GAAMyyB,EAAA,SAAAC,GAAA,SAAA1yB,IAAA,O,4FAAA8V,CAAA,KAAA9V,GAAAmW,EAAA,KAAAnW,EAAAgW,UAAA,Q,sRAAAI,CAAApW,EAAA0yB,G,EAAA1yB,G,EAAA,EAAAoF,IAAA,UAAAhK,MAgEzB,SACQhD,GACN,IAAA8iB,EAAgD1Q,KAAK5N,MAA7CmD,EAAQmb,EAARnb,SAAU9C,EAAQie,EAARje,SAAU6B,EAAOoc,EAAPpc,QAAS6zB,EAAMzX,EAANyX,OACjC,mBAAqB7zB,GAASA,EAAQ1G,GACrC2H,GAAY,mBAAqB9C,GAAUA,EAAS01B,EAAQv6B,EACnE,GAAC,CAAAgN,IAAA,SAAAhK,MAED,WACE,I,MAAAygB,EAgBIrR,KAAK5N,MAfPqD,EAAK4b,EAAL5b,MACAF,EAAQ8b,EAAR9b,SACA6yB,EAAO/W,EAAP+W,QACAh+B,EAAKinB,EAALjnB,MACAi+B,EAAIhX,EAAJgX,KACAC,EAAYjX,EAAZiX,aAIAC,GAHMlX,EAAN8W,OACQ9W,EAAR5e,SACO4e,EAAP/c,QACQ+c,EAARkX,UACAz6B,EAAMujB,EAANvjB,OACAhC,EAASulB,EAATvlB,UACAC,EAAKslB,EAALtlB,MACA0gB,EAAK4E,EAAL5E,MACG+b,EAAUC,EAAApX,EAAAqX,GAETC,EAAc58B,EAAQ3C,OAAOi6B,OAAO,CAAEj5B,MAAAA,GAAS2B,GAAS,CAAE3B,MAAAA,GAC1Dw+B,EAAc,CAClB98B,UAAWK,IAAW,gBAAiBL,G,EAAS,CAC9C,yBAA0ByJ,EAC1B,wBAAyB6yB,EACzB,0BAA2BC,GAAwB,QAAhBC,EACnC,+BAAgCD,GAAQ,QAAUC,G,EAChD,uBAAsB7b,I,EAAUA,G,sGAEpC1gB,MAAO48B,EACPr0B,QAAS0L,KAAK1L,SAEVzD,EAAOw3B,EAAQ,GAAE5yB,kCAAsC4yB,UAAe5yB,EAC5E,OAAO8yB,EACL18B,EAAAA,cAAA,IAAAwd,EAAA,GAAOuf,EAAiBJ,EAAU,CAAEK,KAAMN,EAAUz6B,OAAQA,GAAkB,UAC5EjC,EAAAA,cAAA,QAAM8I,wBAAyB,CAAEC,OAAQ/D,MAG3ChF,EAAAA,cAAA,SAAAwd,EAAA,GAAYuf,EAAiBJ,EAAU,CAAE7zB,wBAAyB,CAAEC,OAAQ/D,KAEhF,M,yFAAC,CA7GwB,CAASi4B,EAAAA,GAAiBb,EAC5Cc,UAAY,CAIjBtzB,MAAOuzB,IAAAA,OAIPzzB,SAAUyzB,IAAAA,KAIVX,KAAMW,IAAAA,OAINV,aAAcU,IAAAA,OAId5+B,MAAO4+B,IAAAA,OAIPZ,QAASY,IAAAA,KAITb,OAAQa,IAAAA,OAIRv2B,SAAUu2B,IAAAA,KAIV10B,QAAS00B,IAAAA,KAITT,SAAUS,IAAAA,OAIVl7B,OAAQk7B,IAAAA,OAIRj9B,MAAOi9B,IAAAA,OAIPl9B,UAAWk9B,IAAAA,OAIXvc,MAAOuc,IAAAA,QACRf,EAEMgB,aAAe,CACpBX,aAAc,S,GA7DSlc,EA8DxB6b,GAAAlY,U,EAAA,U,EAAA,CAEA6P,EAAAA,I,EAAQx2B,OAAAy2B,yBAAAzT,EAAA2D,UAAA,W,EAAA3D,EAAA2D,U,uYAAA3D,E,06BCeI,SAASyJ,IAoBf,IAADrsB,EAAAgiB,UAAAtV,OAAA,QAAApG,IAAA0b,UAAA,GAAAA,UAAA,GAAJ,CAAC,EAnBHuK,EAAOvsB,EAAPusB,QACAxgB,EAAQ/L,EAAR+L,SACAwL,EAAKvX,EAALuX,MACAtL,EAAKjM,EAALiM,MACAyzB,EAAS1/B,EAAT0/B,UACAC,EAAS3/B,EAAT2/B,UACAC,EAAU5/B,EAAV4/B,WACAr9B,EAAKvC,EAALuC,MACAD,EAAStC,EAATsC,UAASu9B,EAAA7/B,EACT8/B,YAAAA,OAAW,IAAAD,EAAG,+BAA8BA,EAAAE,EAAA//B,EAC5CggC,cAAAA,OAAa,IAAAD,EAAG,0BAAyBA,EACzC92B,EAAQjJ,EAARiJ,SACAiC,EAAQlL,EAARkL,SACS+0B,EAAajgC,EAAtB8K,QACWo1B,EAAelgC,EAA1BmgC,UAASC,EAAApgC,EACTqgC,kBAAAA,OAAiB,IAAAD,GAAOA,EAAAE,EAAAtgC,EACxBugC,kBAAAA,OAAiB,IAAAD,GAAQA,EAAAE,EAAAxgC,EACzBygC,UAAAA,OAAS,IAAAD,EAAG,UAASA,EAClBxB,EAAUC,EAAAj/B,EAAAk/B,GAEPwB,GAAmBzwB,EAAAA,EAAAA,UACvB,kBACE2vB,EACK,GAAEA,OAEK7X,EAAU7iB,KAAKC,IAAIu6B,EAAWC,IACN,IAAV5X,EAAF,KAAsB,KAFzC,IACOA,CAEJ,GACV,CAAC6X,EAAYF,EAAWC,IAEpBgB,GAAa1wB,EAAAA,EAAAA,UAAQ,kBAAOywB,EAAmB,CAAEd,WAAYc,GAAqB,CAAC,CAAC,GAAG,CAACA,IACxFvB,GAAclvB,EAAAA,EAAAA,UAClB,kBAAO,MAAQ1N,EAAQ3C,OAAOi6B,OAAO8G,EAAYp+B,GAASo+B,CAAU,GACpE,CAACp+B,EAAOo+B,IAGJ71B,GAAUrJ,EAAAA,EAAAA,cACd,SAAA2C,GACM67B,GACFA,EAAc77B,GAEX2H,QAAa,IAAW3H,EAAMw8B,QAAU,IAAMx8B,EAAMw8B,SACnD33B,GACFA,EAAS7E,GAEP8G,GACFA,GAAUqhB,GAGhB,GACA,CAAC0T,EAAeh3B,EAAUiC,EAAUa,EAAUwgB,IAG1C4T,GAAY1+B,EAAAA,EAAAA,cAChB,SAAA2C,GAIE,GAHI87B,GACFA,EAAgB97B,IAEb2H,EACH,GAAIs0B,GAAqBv1B,IAAY,MAAQ1G,EAAMgN,KAAO,UAAYhN,EAAMgN,KAC1EtG,EAAQ1G,IACRqB,EAAAA,EAAAA,IAAUrB,QACL,GAAIm8B,EACT,GAAI,YAAcn8B,EAAMgN,IAAK,CAI3B,IAHA,IAAMyvB,EAAmBj+B,SAASk+B,kBAC7BL,EAAa,0BAAyBA,IAAc,IAAtD,kCAEMx5B,EAAI,EAAGA,EAAI45B,EAAiBn0B,OAAQzF,IAC3C,GAAIrE,SAASm+B,gBAAkBF,EAAiB55B,GAAI,CAC9CA,EAAI,GACN45B,EAAiB55B,EAAI,GAAG+5B,QAE1B,KACF,EAEFv7B,EAAAA,EAAAA,IAAUrB,EACZ,MAAO,GAAI,cAAgBA,EAAMgN,IAAK,CAIpC,IAHA,IAAMyvB,EAAmBj+B,SAASk+B,kBAC7BL,EAAa,0BAAyBA,IAAc,IAAtD,kCAEMx5B,EAAI,EAAGA,EAAI45B,EAAiBn0B,OAAQzF,IAC3C,GAAIrE,SAASm+B,gBAAkBF,EAAiB55B,GAAI,CAC9CA,EAAI45B,EAAiBn0B,OAAS,GAChCm0B,EAAiB55B,EAAI,GAAG+5B,QAE1B,KACF,EAEFv7B,EAAAA,EAAAA,IAAUrB,EACZ,CAGN,GACA,CAAC87B,EAAiBp1B,EAASiB,EAAUs0B,EAAmBE,EAAmBE,IAG7E,OACEp+B,EAAAA,cAAA,OAAAwd,EAAA,CACEvd,UAAY,kBAAiBA,EAAY,IAAMA,EAAY,KAAKiqB,EAAU,2BAA6B,KACrGxgB,EAAW,4BAA8B,KACxCwL,EAAQ,yBAA2B,KAAKkpB,EAAa,0BAAyBA,IAAc,KAC/FQ,SAAUl1B,GAAY,EAAI,EAC1BxJ,MAAO48B,EACPr0B,QAASA,EACTq1B,UAAWA,EACXe,KAAK,WACL,eAAc3U,EACd,kBAAexgB,GAAkB,MAC7BizB,GAEJ38B,EAAAA,cAAA,KACEC,UAAY,wBAAuBiqB,EAAUuT,EAAcE,IAC3Dz9B,MAAO,CAAE4+B,SAAUzB,EAAWE,WAAYc,GAC1CQ,KAAK,iBAENj1B,GACC5J,EAAAA,cAAA,QACEC,UAAU,wBACV6I,wBAAyB,CAAEC,OAAQa,GACnC1J,MAAO,CAAE4+B,SAAUxB,EAAWC,WAAYc,KAKpD,CApIArU,EAASoT,aAAe,CACtBK,YAAa,+BACbE,cAAe,0BACfK,mBAAmB,EACnBE,mBAAmB,EACnBE,UAAW,U,kCCpFb,KAAgB,UAAY,wDAAwD,MAAQ,kCAAkC,QAAU,oCAAoC,SAAW,qCAAqC,QAAU,oC,mCCAtO,KAAgB,eAAiB,uCAAuC,KAAO,iDAAiD,OAAS,+BAA+B,cAAgB,sCAAsC,MAAQ,qDAAqD,eAAiB,uCAAuC,MAAQ,8BAA8B,eAAiB,uCAAuC,YAAc,oCAAoC,YAAc,oCAAoC,YAAc,oCAAoC,MAAQ,8BAA8B,aAAe,qCAAqC,MAAQ,8BAA8B,gBAAkB,wCAAwC,MAAQ,8BAA8B,eAAiB,uCAAuC,gBAAkB,wCAAwC,KAAO,6BAA6B,OAAS,+BAA+B,KAAO,6BAA6B,QAAU,gC","sources":["webpack://AYTM/./app/_stock/webpack/app/swidget/questions/components/sh/svg/ sync ^\\.\\/.*Holders\\.svg$","webpack://AYTM/./app/_stock/webpack/app/swidget/base/components/Magnifier.tsx","webpack://AYTM/./app/_stock/webpack/app/swidget/base/components/PopupImage.tsx","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/styles/sh.module.scss?2ca4","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/styles/sh/shelf.module.scss?c0b6","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/components/sh/functions.js","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/components/sh/productPopup.jsx","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/components/sh/ecommercePopup.jsx","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/styles/sh/fridge.module.scss?ef2c","webpack://AYTM/./app/_stock/webpack/lib/common/array.js","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/components/sh/settings.js","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/components/sh/price.jsx","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/components/sh/topShelf.jsx","webpack://AYTM/./app/_stock/webpack/lib/shelves/stage.js","webpack://AYTM/./app/_stock/webpack/lib/shelves/product.js","webpack://AYTM/./app/_stock/webpack/lib/shelves/container.js","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/components/sh/prices.jsx","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/components/sh/shelves.jsx","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/components/sh/fridge.jsx","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/styles/sh/ecommerce.module.scss?bd29","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/components/sh/ecommerce.jsx","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/styles/sh/cart.module.scss?db5a","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/components/sh/cart.jsx","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/components/sh.jsx","webpack://AYTM/./app/_stock/webpack/lib/common/scroll.js","webpack://AYTM/./app/_stock/webpack/lib/drag.js","webpack://AYTM/./app/_stock/webpack/lib/immutable/ImmutableModel.js","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/advanced/image-gallery.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/button.jsx","webpack://AYTM/./app/_stock/webpack/lib/rfd-ui/components/basic/check-box.jsx","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/styles/common/magnifier.module.scss?b356","webpack://AYTM/./app/_stock/webpack/app/swidget/questions/styles/sh/popup.module.scss?fa29"],"sourcesContent":["var map = {\n\t\"./costcoHolders.svg\": 93404,\n\t\"./homedepotHolders.svg\": 17181,\n\t\"./lowesHolders.svg\": 46993,\n\t\"./samsclubHolders.svg\": 31570\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 = 48079;","import React, { useEffect, useState, useCallback } from 'react'\nimport { createPortal } from 'react-dom'\nimport { CSSTransition } from 'react-transition-group'\nimport style from '@aytm/app/swidget/questions/styles/common/magnifier.module.scss'\n\ninterface IMagnifierProps {\n cursor: React.ReactNode\n imageSrc: string\n externalClass?: string\n imageWidth: number\n imageHeight: number\n imageX: number\n imageY: number\n show: boolean\n pageX: number\n pageY: number\n height: number\n width: number\n zoom: number\n fixed: boolean\n element?: HTMLElement | null\n children?: React.ReactNode\n}\n\nconst Magnifier = ({\n children,\n cursor,\n imageSrc,\n imageWidth,\n imageHeight,\n imageX,\n imageY,\n show,\n pageX,\n pageY,\n height,\n width,\n zoom,\n externalClass,\n fixed = false,\n element = null\n}: IMagnifierProps) => {\n const [dimensions, setDimensions] = useState<{ width: number; height: number }>({\n width: 0,\n height: 0\n })\n\n const onShow = useCallback(() => {\n setDimensions({ width, height })\n }, [width, height])\n\n const onHide = useCallback(() => {\n setDimensions({ width: 0, height: 0 })\n }, [])\n\n useEffect(() => {\n if (show) {\n onShow()\n } else {\n onHide()\n }\n }, [show, onShow, onHide])\n\n const magnifierPositionStyle = fixed\n ? {\n width: `${dimensions.width}px`,\n height: `${dimensions.height}px`,\n top: pageY,\n left: pageX,\n position: 'fixed' as const\n }\n : {\n width: `${dimensions.width}px`,\n height: `${dimensions.height}px`,\n top: pageY - dimensions.height,\n left: pageX - dimensions.width / 2\n }\n\n const magnifierContentStyle = {\n backgroundImage: `url(${imageSrc})`,\n backgroundSize: `${imageWidth * zoom}px ${imageHeight * zoom}px`,\n backgroundPosition: `0 0`,\n height: `${imageHeight * zoom}px`,\n width: `${imageWidth * zoom}px`,\n left: `${-(imageX * zoom - dimensions.width / 2)}px`,\n top: `${-(imageY * zoom - dimensions.height / 2)}px`\n }\n\n return createPortal(\n \n \n
\n
\n {children}\n
\n {cursor}\n
\n
\n ,\n element || document.body\n )\n}\n\nexport default Magnifier\n","import React, { useCallback, Fragment, useState, useRef, memo } from 'react'\nimport { scrollY, stopEvent } from '@aytm/lib/common/func'\nimport style from '@aytm/app/swidget/questions/styles/sh/popup.module.scss'\n// import Magnify from '@aytm/app/swidget/questions/components/common/magnifier'\nimport Magnify from '@aytm/app/swidget/base/components/Magnifier.tsx'\nimport '@google/model-viewer/dist/model-viewer'\n\ninterface PopupImageProps {\n src: string\n magnifierClass?: string\n enableMagnify: boolean\n emulatedMobile: boolean\n volume: boolean\n}\n\ninterface ImagePopup {\n width: number\n height: number\n pageX: number\n pageY: number\n magnifyOffsetX: number\n magnifyOffsetY: number\n magnifyWidth: number\n magnifyX: number\n magnifyY: number\n}\n\nconst ZOOM = 3\nconst MAGNIFIER_HEIGHT = 600\nconst MAGNIFIER_WIDTH = 600\n\nexport function PopupImage({ src, enableMagnify, volume, emulatedMobile, magnifierClass }: PopupImageProps) {\n const refTimer = useRef()\n const imageRef = useRef(null)\n\n const [show, setShow] = useState(false)\n const [imagePopup, setImagePopup] = useState({\n width: 0,\n height: 0,\n pageX: 0,\n pageY: 0,\n magnifyOffsetX: 0,\n magnifyOffsetY: 0,\n magnifyWidth: MAGNIFIER_WIDTH,\n magnifyX: 50,\n magnifyY: 50\n })\n\n const recalcMagnifierWidth = () => {\n if (imageRef.current) {\n const image = imageRef.current.getBoundingClientRect()\n const magnifyX =\n image.x + image.width / 2 + 300 + MAGNIFIER_WIDTH < window.innerWidth\n ? image.x + image.width / 2 + 350\n : image.x + image.width + 50\n const magnifyY = image.y + image.height * 0.35 - MAGNIFIER_HEIGHT / 2\n const magnifyWidth =\n image.x + image.width + 50 + MAGNIFIER_WIDTH > window.innerWidth\n ? window.innerWidth - image.x - image.width - 70\n : MAGNIFIER_WIDTH\n\n return {\n ...imagePopup,\n magnifyX,\n magnifyY,\n magnifyWidth\n }\n }\n return imagePopup\n }\n\n const onEnterImageRef = useRef<(event: React.MouseEvent) => void>()\n onEnterImageRef.current = event => {\n const img = event.target as HTMLImageElement\n const newPopup = recalcMagnifierWidth()\n setShow(true)\n const image = imageRef.current.getBoundingClientRect()\n setImagePopup({\n ...newPopup,\n width: img?.width || img?.offsetWidth,\n height: img?.height || img?.offsetHeight,\n pageX: Math.max(\n image.x + imagePopup.magnifyWidth / ZOOM / 2,\n Math.min(event.nativeEvent.pageX, image.x + image.width - imagePopup.magnifyWidth / ZOOM / 2)\n ),\n pageY: Math.max(\n image.y + imagePopup.magnifyWidth / ZOOM / 2,\n Math.min(event.nativeEvent.pageY, image.y + image.height - MAGNIFIER_HEIGHT / ZOOM / 2)\n ),\n magnifyOffsetX: Math.max(\n imagePopup.magnifyWidth / ZOOM / 2,\n Math.min(event.nativeEvent.offsetX, image.width - imagePopup.magnifyWidth / ZOOM / 2)\n ),\n magnifyOffsetY: Math.max(\n imagePopup.magnifyWidth / ZOOM / 2,\n Math.min(event.nativeEvent.offsetY, image.height - MAGNIFIER_HEIGHT / ZOOM / 2)\n )\n })\n }\n\n const onLeaveImage = () => {\n setShow(false)\n }\n\n const onMove = useCallback(\n (event: React.MouseEvent) => {\n stopEvent(event)\n clearTimeout(refTimer.current)\n if (event.nativeEvent) {\n if (show) {\n const image = imageRef.current.getBoundingClientRect()\n setImagePopup(prevPopup => {\n return {\n ...prevPopup,\n pageX: Math.max(\n image.x + imagePopup.magnifyWidth / ZOOM / 2,\n Math.min(event.nativeEvent.pageX, image.x + image.width - imagePopup.magnifyWidth / ZOOM / 2)\n ),\n pageY: Math.max(\n image.y + MAGNIFIER_HEIGHT / ZOOM / 2,\n Math.min(event.nativeEvent.pageY - scrollY(), image.y + image.height - MAGNIFIER_HEIGHT / ZOOM / 2)\n ),\n magnifyOffsetX: Math.max(\n imagePopup.magnifyWidth / ZOOM / 2,\n Math.min(event.nativeEvent.offsetX, image.width - imagePopup.magnifyWidth / ZOOM / 2)\n ),\n magnifyOffsetY: Math.max(\n MAGNIFIER_HEIGHT / ZOOM / 2,\n Math.min(event.nativeEvent.offsetY, image.height - MAGNIFIER_HEIGHT / ZOOM / 2)\n )\n }\n })\n } else {\n refTimer.current = window.setTimeout(() => {\n onEnterImageRef.current?.(event)\n }, 20)\n }\n }\n },\n [show, imagePopup.magnifyWidth]\n )\n\n const cursor = () => {\n if (!imageRef.current || !show) return null\n\n return (\n \n )\n }\n\n if (volume) {\n return (\n <>\n {emulatedMobile ? (\n
\n \n Preview on mobile device to see 3D rendering\n
\n ) : (\n \n )}\n \n )\n }\n\n return (\n \n \n {enableMagnify && (\n 0 ? imagePopup.magnifyX : 0}\n pageY={imageRef.current && imagePopup.magnifyY > 0 ? imagePopup.magnifyY : 0}\n show={show}\n zoom={ZOOM}\n width={imagePopup.magnifyWidth}\n height={MAGNIFIER_HEIGHT}\n cursor={cursor()}\n fixed={true}\n externalClass={magnifierClass}\n />\n )}\n \n )\n}\n\nexport default memo(\n PopupImage,\n (prevProps: PopupImageProps, nextProps: PopupImageProps) =>\n prevProps.src === nextProps.src && prevProps.enableMagnify === nextProps.enableMagnify\n)\n","// extracted by mini-css-extract-plugin\nexport default {\"component\":\"sh-module__component___3BFs3 swidget-question-sh\",\"total\":\"sh-module__total___2Xrlb swidget-global-span\",\"shadowItem\":\"sh-module__shadowItem___3E9Dl shadowItem\",\"topItem\":\"sh-module__topItem___31459 topItem\",\"backItem\":\"sh-module__backItem___1XqVb backItem\",\"disabledStore\":\"sh-module__disabledStore___1-si4\",\"shelfContent\":\"sh-module__shelfContent___aw4re\",\"fullscreenCloseButton\":\"sh-module__fullscreenCloseButton___26biG\",\"buttons\":\"sh-module__buttons___3a6FR shelf-test-resize-buttons\",\"application\":\"sh-module__application___3EZ5k\",\"appText\":\"sh-module__appText___1iuor\",\"appButtons\":\"sh-module__appButtons___39TLo\",\"blurred\":\"sh-module__blurred___3JfzZ\",\"scrollContainer\":\"sh-module__scrollContainer___3FI80 swidget-question-shelf-container\",\"shelfvesRef\":\"sh-module__shelfvesRef___1Sxqb swidget-question-shelf-container\",\"leftShadow\":\"sh-module__leftShadow___2EHhq\",\"rightShadow\":\"sh-module__rightShadow___1SjRa\",\"title\":\"sh-module__title___in1df\",\"reverse\":\"sh-module__reverse___2CL5B\",\"hideContent\":\"sh-module__hideContent___3SO_n\",\"scrolling\":\"sh-module__scrolling___3k6Oc\",\"shelvesContainer\":\"sh-module__shelvesContainer___2LJ9n\",\"shelfBlock\":\"sh-module__shelfBlock___3odK-\",\"verticalScroll\":\"sh-module__verticalScroll___3rQ-e\",\"verticalscrollPointer\":\"sh-module__verticalscrollPointer___1lGfD\",\"horizontalScroll\":\"sh-module__horizontalScroll___1X_ug\",\"horizontalscrollPointer\":\"sh-module__horizontalscrollPointer___GCbmd\",\"scrollDiv\":\"sh-module__scrollDiv___1pVWJ\",\"scrollBg\":\"sh-module__scrollBg___2xKtF\",\"scroll\":\"sh-module__scroll___yegke\",\"scrollCircle\":\"sh-module__scrollCircle___TjiWk\",\"closeFullscreen\":\"sh-module__closeFullscreen___2RcPP\",\"closedFullscreen\":\"sh-module__closedFullscreen___suVi5\",\"closedFullscreenButton\":\"sh-module__closedFullscreenButton___1Ja_t\",\"fullsizedShelf\":\"sh-module__fullsizedShelf___1Ous6\",\"fullsizedContainer\":\"sh-module__fullsizedContainer___26JuL\",\"topAlign\":\"sh-module__topAlign___2xQv8\",\"showPreviewButtons\":\"sh-module__showPreviewButtons___1gSF6\",\"hidePreviewButtons\":\"sh-module__hidePreviewButtons___1Hih0\",\"next\":\"sh-module__next___3pTQE swidget-sh-question-next-button\",\"disabled\":\"sh-module__disabled___JjHkA\",\"fullscreenCart\":\"sh-module__fullscreenCart___jTgI_\",\"empty\":\"sh-module__empty___2ubxt\",\"closeButton\":\"sh-module__closeButton___2bKre\",\"clear\":\"sh-module__clear___namsN\",\"back\":\"sh-module__back___xKQLc\",\"errorBlock\":\"sh-module__errorBlock___2Xyo8 swidget-question-error-block\",\"scaleButtons\":\"sh-module__scaleButtons___1bm1r\",\"minus\":\"sh-module__minus___33gy_\",\"relative\":\"sh-module__relative___nKON5\",\"totalMoney\":\"sh-module__totalMoney___2eCP0\",\"links\":\"sh-module__links___2z_YN\",\"fullScreenLinks\":\"sh-module__fullScreenLinks___1sK33\",\"totalDiv\":\"sh-module__totalDiv___izKIJ\",\"NALink\":\"sh-module__NALink___1iMVd\",\"cartLink\":\"sh-module__cartLink___2hLUw\",\"long\":\"sh-module__long___2yF5H\",\"cartName\":\"sh-module__cartName___3D-Zz\",\"noPrices\":\"sh-module__noPrices___jbsPL\",\"fullScreenFooter\":\"sh-module__fullScreenFooter___2rx2b\",\"fixed\":\"sh-module__fixed___1qnfw\",\"lightbox\":\"sh-module__lightbox___1wgta\",\"lightboxContent\":\"sh-module__lightboxContent___3nZVP\",\"image\":\"sh-module__image___2rLkB\",\"mobileImage\":\"sh-module__mobileImage___1dFoD\",\"item\":\"sh-module__item___vkED0\",\"header\":\"sh-module__header___1sR70\",\"text\":\"sh-module__text___3Dgff\",\"smallPhotos\":\"sh-module__smallPhotos___3zinj\",\"price\":\"sh-module__price___TFyOA\",\"priceComments\":\"sh-module__priceComments___3vxOV\",\"combo\":\"sh-module__combo___RYTo3\",\"button\":\"sh-module__button___3niiX\",\"popup\":\"sh-module__popup___2twdM\",\"amazon\":\"sh-module__amazon___W-tfu\",\"desktop\":\"sh-module__desktop___1tX5n swidget-question-theme-desktop\",\"mobile\":\"sh-module__mobile___1gL1e swidget-question-theme-mobile\",\"scrollShelvesRef\":\"sh-module__scrollShelvesRef___Lmu8J\"};","// extracted by mini-css-extract-plugin\nexport default {\"leftArrow\":\"shelf-module__leftArrow___34CFx\",\"rightArrow\":\"shelf-module__rightArrow___2Rw2n\",\"topItem\":\"shelf-module__topItem___1uiAk topItem\",\"layer1\":\"shelf-module__layer1___HMsC2 shadowItem\",\"layer0\":\"shelf-module__layer0___1rJts topItem\",\"hoveredImage\":\"shelf-module__hoveredImage___1WY2k\",\"fridgeTypeTarget\":\"shelf-module__fridgeTypeTarget___2aKAH\",\"airCurtain\":\"shelf-module__airCurtain___1Dl9y\",\"regularTypeTarget\":\"shelf-module__regularTypeTarget____x20Z\",\"costco\":\"shelf-module__costco___3IUTi\",\"second\":\"shelf-module__second___xZtDs\",\"shelf\":\"shelf-module__shelf___1pKwn\",\"stylepegboard\":\"shelf-module__stylepegboard___1iZde\",\"bottomShelf\":\"shelf-module__bottomShelf___1Bzm6\",\"price\":\"shelf-module__price___2fOnH\",\"prevStylepegboard\":\"shelf-module__prevStylepegboard___2pvwi\",\"layer\":\"shelf-module__layer___24oqp\",\"item\":\"shelf-module__item___1BQGN\",\"layer2\":\"shelf-module__layer2___1k5fL\",\"samsclub\":\"shelf-module__samsclub___3JD-j\",\"verticalLayer\":\"shelf-module__verticalLayer___2DDlA\",\"shelf0\":\"shelf-module__shelf0___2Qh5Z\",\"items\":\"shelf-module__items___1st7b\",\"verticalItems\":\"shelf-module__verticalItems___1LltL\",\"fakeHidden\":\"shelf-module__fakeHidden___3pbC7\",\"reallyHidden\":\"shelf-module__reallyHidden___1RG6V\",\"taken\":\"shelf-module__taken___b9Rao\",\"shadowItem\":\"shelf-module__shadowItem___1xr3K\",\"backItem\":\"shelf-module__backItem___1MyRb\",\"hiddenItem\":\"shelf-module__hiddenItem___1zl1I\",\"walmart\":\"shelf-module__walmart___1fgY6\",\"left\":\"shelf-module__left___5Jj9y\",\"top\":\"shelf-module__top___16ccZ\",\"bottom\":\"shelf-module__bottom___16b94\",\"right\":\"shelf-module__right___2S-j8\",\"discounted\":\"shelf-module__discounted___A05tc\",\"normal\":\"shelf-module__normal___1gFpw\",\"cvs\":\"shelf-module__cvs___1zsO1\",\"grayLine\":\"shelf-module__grayLine___2NcHS\",\"leftLine\":\"shelf-module__leftLine___20Hb0\",\"rightLine\":\"shelf-module__rightLine___3pHxG\",\"blueLine\":\"shelf-module__blueLine___2Sxqo\",\"leftLine2\":\"shelf-module__leftLine2___3PRJU\",\"leftLine3\":\"shelf-module__leftLine3___2FPFR\",\"leftLine4\":\"shelf-module__leftLine4___3z1PM\",\"text\":\"shelf-module__text___oFYf0\",\"topLine\":\"shelf-module__topLine___lxetF\",\"grayLine1\":\"shelf-module__grayLine1___3v-oX\",\"grayLine2\":\"shelf-module__grayLine2___1nC_m\",\"grayLine3\":\"shelf-module__grayLine3___tzLs5\",\"grayLine4\":\"shelf-module__grayLine4___2JP0r\",\"bottomLine\":\"shelf-module__bottomLine___5vM5b\",\"bottomBlock\":\"shelf-module__bottomBlock___1VW4t\",\"blackLine\":\"shelf-module__blackLine___8fX9K\",\"firstLine\":\"shelf-module__firstLine___2TMUy\",\"secondLine\":\"shelf-module__secondLine___2G8Vr\",\"line3\":\"shelf-module__line3___1thXU\",\"yellowLine\":\"shelf-module__yellowLine___2cIvx\",\"loblaws\":\"shelf-module__loblaws___jrhJs\",\"innerDiv\":\"shelf-module__innerDiv___2jO-O\",\"yellow\":\"shelf-module__yellow___2TR0B\",\"redLine\":\"shelf-module__redLine___-ttem\",\"starLine\":\"shelf-module__starLine___1OaLG\",\"thirdLine\":\"shelf-module__thirdLine___3ox_l\",\"fourthLine\":\"shelf-module__fourthLine___7dcgc\",\"lowes\":\"shelf-module__lowes___2L8e-\",\"homedepot\":\"shelf-module__homedepot___-fySn\",\"target\":\"shelf-module__target___3qrIr\",\"publix\":\"shelf-module__publix___3_BjT\",\"amazon\":\"shelf-module__amazon___1HwMw\",\"family\":\"shelf-module__family___w9i0W\",\"dollar\":\"shelf-module__dollar___2Gx0g\",\"whiteLine\":\"shelf-module__whiteLine___1VEqV\",\"discountBlock\":\"shelf-module__discountBlock___3sO1H\",\"grayLines\":\"shelf-module__grayLines___3muMc\",\"redCircle\":\"shelf-module__redCircle___2lHxQ\",\"cstore\":\"shelf-module__cstore___32s7x\",\"circle\":\"shelf-module__circle___3Opdc\",\"wow\":\"shelf-module__wow___2ix4i\",\"greenBox\":\"shelf-module__greenBox___Ds8Bb\",\"walgreens\":\"shelf-module__walgreens___1lwSy\",\"bottomLine2\":\"shelf-module__bottomLine2___rzE7p\",\"rightLine1\":\"shelf-module__rightLine1___RRQBO\",\"rightLine2\":\"shelf-module__rightLine2___1EzG9\",\"short\":\"shelf-module__short___-LUDY\",\"grayLine5\":\"shelf-module__grayLine5___3GzsT\",\"sale\":\"shelf-module__sale___1-X_l\",\"rightBlock\":\"shelf-module__rightBlock___3Pkz_\",\"counterFridge\":\"shelf-module__counterFridge___d3_kW\",\"firstShelf\":\"shelf-module__firstShelf___2upnl\",\"shelf1\":\"shelf-module__shelf1___3-pz4\",\"shelf2\":\"shelf-module__shelf2___1mKOc\",\"last\":\"shelf-module__last___1F3T8\",\"dotsShelf\":\"shelf-module__dotsShelf___vnLvk\",\"shelf3\":\"shelf-module__shelf3___3AONI\",\"shelf4\":\"shelf-module__shelf4___P66Tz\",\"shelf5\":\"shelf-module__shelf5___2gD_5\",\"shelf6\":\"shelf-module__shelf6___1WB6A\",\"shelf7\":\"shelf-module__shelf7___2Wvac\",\"gradientShelf\":\"shelf-module__gradientShelf___2-7Ng\",\"first\":\"shelf-module__first___iR_Tq\",\"penult\":\"shelf-module__penult___3yX_v\",\"addToCart\":\"shelf-module__addToCart___1nIPV\",\"shelfBefore\":\"shelf-module__shelfBefore___JILlL\",\"shelfAfter\":\"shelf-module__shelfAfter___281Py\",\"shelf8\":\"shelf-module__shelf8___341wE\",\"shelf9\":\"shelf-module__shelf9___1r5jy\",\"shelf10\":\"shelf-module__shelf10___283OH\",\"shelf11\":\"shelf-module__shelf11___3yrii\",\"shelf12\":\"shelf-module__shelf12___sxvQ3\",\"shelf13\":\"shelf-module__shelf13___2d9mm\",\"shelf14\":\"shelf-module__shelf14___3q05O\",\"shelf15\":\"shelf-module__shelf15___1RiX2\",\"shelf16\":\"shelf-module__shelf16___1Z2l8\",\"pixiDiv\":\"shelf-module__pixiDiv___8LAfg shelf-test-pixi-div\",\"blurred\":\"shelf-module__blurred___2OvCN\",\"flexed\":\"shelf-module__flexed___3iS1Q\",\"prices\":\"shelf-module__prices___2xqQ5\",\"topShelved\":\"shelf-module__topShelved___1CCKo\",\"container\":\"shelf-module__container___3OFhZ\",\"dotsContainer\":\"shelf-module__dotsContainer___3u9QT\",\"lastBlock\":\"shelf-module__lastBlock___1OaTs\",\"shelves\":\"shelf-module__shelves___3RAQz swidget-shelves\",\"productShelves\":\"shelf-module__productShelves___1lC_X\",\"fullscreen\":\"shelf-module__fullscreen___3ma8I\",\"leftShelves\":\"shelf-module__leftShelves___2S0GH\",\"rightShelves\":\"shelf-module__rightShelves___1zn3j\",\"before\":\"shelf-module__before___3d3dC\",\"after\":\"shelf-module__after___1Cny6\",\"mobile\":\"shelf-module__mobile___IvI1w\",\"blurredPrices\":\"shelf-module__blurredPrices___2tKPz\"};","import { List, Map } from 'immutable'\n\nexport const QTY_SELECT = [...Array(50)].reduce(\n (prev, _cur, i) => prev.push(Map({ value: i + 1, text: i + 1 })),\n List([])\n)\nexport const QTY_BIG_SELECT = [...Array(999)].reduce(\n (prev, _cur, i) => prev.push(Map({ value: i + 1, text: i + 1 })),\n List([])\n)\n\nexport const formatPrice = (price, priceMask, noRound) =>\n price != null && price != undefined && price.toFixed\n ? priceMask.replace(\n '{{price}}',\n '' +\n price.toFixed(2).split('.')[0] +\n '' +\n '' +\n (!noRound && price >= 100 ? '' : '.' + price.toFixed(2).split('.')[1]) +\n ''\n )\n : '---'\n\nexport const replacePackage = item =>\n item.get('amount_per_item')\n ? item.get('amount_per_item') + ' ' + item.get('amount_per_item') > 1\n ? item.get('unit_plural')\n : item.get('unit')\n : ''\n\nexport const getTotal = (answerModel, item) =>\n answerModel\n .get('answers')\n .reduce(\n (prev, cur) =>\n item && item.get('id') == cur.get('id')\n ? prev\n : cur.get('count') * (cur.getIn(['item', 'discounted_price']) || cur.getIn(['item', 'price'])) + prev,\n 0\n )\n\nexport const getMaxProductCount = answerModel =>\n answerModel.get('answers').reduce((prev, cur) => (cur.get('count') > prev ? cur.get('count') : prev), 0)\n\nexport const getMaxPrice = answerModel =>\n answerModel\n .get('answers')\n .reduce(\n (prev, cur) =>\n (cur.getIn(['item', 'discounted_price']) || cur.getIn(['item', 'price'])) > prev\n ? cur.getIn(['item', 'discounted_price']) || cur.getIn(['item', 'price'])\n : prev,\n 0\n )\n\nexport const getSize = (answerModel, item) =>\n answerModel\n .get('answers')\n .reduce((sum, c) => (item && item.get('id') == c.getIn(['item', 'id']) ? sum : sum + c.get('count')), 0)\n","import React, { useState, memo } from 'react'\nimport PropTypes from 'prop-types'\nimport { List, Map } from 'immutable'\nimport { formatPrice, QTY_SELECT, getTotal, getSize } from '@aytm/app/swidget/questions/components/sh/functions'\n\nimport popupStyle from '@aytm/app/swidget/questions/styles/sh/popup.module.scss'\nimport ImageGallery from '@aytm/lib/rfd-ui/components/advanced/image-gallery'\n// import PopupImage from '@aytm/app/swidget/questions/components/sh/popupImage'\nimport PopupImage from '@aytm/app/swidget/base/components/PopupImage.tsx'\nimport Select from '@aytm/lib/rfd-ui/components/basic/select'\nimport { asBoolean } from '@aytm/lib/immutable/ImmutableModel'\nimport Button from '@aytm/lib/rfd-ui/components/basic/button'\nimport LightBox from '@aytm/lib/rfd-ui/components/basic/light-box'\n\nconst preventEverything = event => {\n event.preventDefault()\n event.stopPropagation()\n}\n\nProductPopup.propTypes = {\n questionSchema: PropTypes.instanceOf(Map).isRequired,\n item: PropTypes.instanceOf(Map).isRequired,\n locale: PropTypes.instanceOf(Map).isRequired,\n answer: PropTypes.instanceOf(Map).isRequired,\n enableMagnify: PropTypes.bool,\n fullScreen: PropTypes.bool,\n emulatedMobile: PropTypes.bool,\n onClosePopup: PropTypes.func,\n onPictureClick: PropTypes.func,\n onAction: PropTypes.func\n}\n\nexport function ProductPopup(props) {\n const {\n questionSchema,\n item,\n answer,\n enableMagnify,\n emulatedMobile,\n onClosePopup,\n locale,\n onAction,\n fullScreen,\n onPictureClick\n } = props\n const answerQty = answer.getIn(['answers', item.get('id'), 'count'])\n const findability =\n 'find' == questionSchema.get('mode_type') ||\n (1 == questionSchema.get('max_cart_size') && !questionSchema.get('shopping_cart'))\n\n const maxQty = findability ? null : questionSchema.get('max_qty_per_product')\n const maxCartSize = findability ? null : questionSchema.get('max_cart_size')\n const maxMoney = findability ? null : questionSchema.get('max_money_spent')\n const total = getTotal(answer)\n const itemPrice = item.get('discounted_price') || item.get('price')\n const size = getSize(answer)\n\n const [picture, setPicture] = useState(null)\n const [volume, setVolume] = useState(item.getIn(['view3d', 'default']))\n const [qty, setQty] = useState(1)\n\n const gallery = (item.get('gallery') || List([])).insert(0, item.get('image'))\n const onSelectQty = selectedQty => {\n setQty(selectedQty.get('value'))\n }\n\n const onButtonClick = () => {\n onAction(qty)\n }\n\n const onContainerClick = event => {\n if (!event.target.src) onClosePopup()\n }\n\n const onSetPicture = (value, index) => {\n setPicture(value)\n setVolume('view3d' == value)\n onPictureClick && 'function' === typeof onPictureClick && onPictureClick(index + 1)\n }\n\n const popupContent = () => (\n \n
\n \n
\n {(item.get('gallery') || item.get('view3d')) && (\n \n )}\n {/*
*/}\n 1 ? popupStyle.think : ''\n }`}\n onClick={onContainerClick}\n data-testid=\"SW-SH-Popup-Image\"\n >\n \n
\n
\n {questionSchema.get('show_name') && (\n
\n \n
\n )}\n {!questionSchema.get('hide_price') && (\n
\n {item.get('discounted_price') ? (\n \n ) : (\n ''\n )}\n \n {item.get('units') && (\n \n )}\n
\n )}\n \n (!maxQty || v.get('value') <= maxQty - answerQty) &&\n (!maxCartSize || v.get('value') + size <= maxCartSize) &&\n (!maxMoney || v.get('value') * itemPrice + total <= maxMoney)\n )}\n width={80}\n placeholder=\"1\"\n value={qty}\n onSelect={onSelectQty}\n showSelected={true}\n filterOptions={false}\n optionsMaxHeight={fullScreen ? 80 : 'inherit'}\n disabled={findability}\n data-testid=\"SW-SH-Popup-Select\"\n // disabled={\n // (asBoolean(maxQty) && maxQty <= answerQty + 1) ||\n // (asBoolean(maxCartSize) && maxCartSize <= size + 1) ||\n // (asBoolean(maxMoney) && maxMoney <= total + itemPrice)\n // }\n />\n \n
\n {/**/}\n \n )\n\n return questionSchema.get('fullscreen') ? {popupContent()} : popupContent()\n}\n\nexport default memo(\n ProductPopup,\n (prevProps, nextProps) =>\n prevProps.questionSchema === nextProps.questionSchema &&\n prevProps.item === nextProps.item &&\n prevProps.answer === nextProps.answer &&\n prevProps.enableMagnify === nextProps.enableMagnify &&\n prevProps.fullScreen === nextProps.fullScreen &&\n prevProps.onClosePopup === nextProps.onClosePopup &&\n prevProps.locale === nextProps.locale &&\n prevProps.onAction === nextProps.onAction\n)\n","import React, { useState, memo } from 'react'\nimport PropTypes from 'prop-types'\nimport { List, Map } from 'immutable'\nimport {\n formatPrice,\n replacePackage,\n QTY_SELECT,\n getTotal,\n getSize\n} from '@aytm/app/swidget/questions/components/sh/functions'\n\nimport popupStyle from '@aytm/app/swidget/questions/styles/sh/popup.module.scss'\nimport ImageGallery from '@aytm/lib/rfd-ui/components/advanced/image-gallery'\nimport PopupImage from '@aytm/app/swidget/base/components/PopupImage.tsx'\nimport Select from '@aytm/lib/rfd-ui/components/basic/select'\nimport { asBoolean } from '@aytm/lib/immutable/ImmutableModel'\nimport Button from '@aytm/lib/rfd-ui/components/basic/button'\n\nEcommercePopup.propTypes = {\n questionSchema: PropTypes.instanceOf(Map).isRequired,\n item: PropTypes.instanceOf(Map).isRequired,\n locale: PropTypes.instanceOf(Map).isRequired,\n answer: PropTypes.instanceOf(Map).isRequired,\n enableMagnify: PropTypes.bool,\n emulatedMobile: PropTypes.bool,\n onClosePopup: PropTypes.func,\n onAction: PropTypes.func\n}\n\nexport function EcommercePopup(props) {\n const { questionSchema, item, answer, enableMagnify, onClosePopup, locale, onAction, emulatedMobile } = props\n const answerQty = answer.getIn(['answers', item.get('id'), 'count'])\n const findability =\n 'find' == questionSchema.get('mode_type') ||\n (1 == questionSchema.get('max_cart_size') && !questionSchema.get('shopping_cart'))\n\n const maxQty = findability ? null : questionSchema.get('max_qty_per_product')\n const maxCartSize = findability ? null : questionSchema.get('max_cart_size')\n const maxMoney = findability ? null : questionSchema.get('max_money_spent')\n const total = getTotal(answer)\n const itemPrice = item.get('discounted_price') || item.get('price')\n const size = getSize(answer)\n const [volume, setVolume] = useState(item.getIn(['view3d', 'default']))\n\n const [picture, setPicture] = useState(null)\n const [qty, setQty] = useState(1)\n const gallery = (item.get('gallery') || List([])).insert(0, item.get('image'))\n\n const onSelectQty = selectedQty => {\n setQty(selectedQty.get('value'))\n }\n\n const onButtonClick = () => {\n onAction(qty)\n }\n\n const onSetPicture = value => {\n setPicture(value)\n setVolume('view3d' == value)\n }\n\n return (\n
\n
\n \n
\n
\n {(item.get('gallery') || item.get('view3d')) && (\n
\n {(item.get('gallery') || item.get('view3d')) && (\n \n )}\n
\n )}\n
\n \n
\n
\n \n \n\n {!questionSchema.get('hide_price') && (\n <>\n \n {item.get('units') &&
{item.get('units')}
}\n \n )}\n\n {replacePackage(item)}\n
\n \n (!maxQty || v.get('value') <= maxQty - answerQty) &&\n (!maxCartSize || v.get('value') + size <= maxCartSize) &&\n (!maxMoney || v.get('value') * itemPrice + total <= maxMoney)\n )}\n width={70}\n placeholder=\"1\"\n value={qty}\n onSelect={onSelectQty}\n showSelected={true}\n disabled={findability}\n data-testid=\"SW-SH-Item-Select\"\n // disabled={\n // (asBoolean(maxQty) && maxQty <= answerQty + 1) ||\n // (asBoolean(maxCartSize) && maxCartSize <= size + 1) ||\n // (asBoolean(maxMoney) && maxMoney <= total + itemPrice)\n // }\n />\n \n
\n
\n
\n
\n )\n}\n\nexport default memo(\n EcommercePopup,\n (prevProps, nextProps) =>\n prevProps.questionSchema === nextProps.questionSchema &&\n prevProps.item === nextProps.item &&\n prevProps.answer === nextProps.answer &&\n prevProps.enableMagnify === nextProps.enableMagnify &&\n prevProps.onClosePopup === nextProps.onClosePopup &&\n prevProps.locale === nextProps.locale &&\n prevProps.onAction === nextProps.onAction\n)\n","// extracted by mini-css-extract-plugin\nexport default {\"blurred\":\"fridge-module__blurred___K3CGK\",\"leftDoor\":\"fridge-module__leftDoor___3DJbX swidget-question-sh-door\",\"rightDoor\":\"fridge-module__rightDoor___2rJBf swidget-question-sh-door\",\"parallaxing\":\"fridge-module__parallaxing___MrnrD fridgeItem\",\"fridgeContainer\":\"fridge-module__fridgeContainer___3RYYC\",\"fridge\":\"fridge-module__fridge___2cKvL\",\"fridgeTypeTarget\":\"fridge-module__fridgeTypeTarget___1UxrP\",\"fridgeOpenLights\":\"fridge-module__fridgeOpenLights___3FMSh\",\"rightDoorContainer\":\"fridge-module__rightDoorContainer___1vpee\",\"leftDoorContainer\":\"fridge-module__leftDoorContainer___2ntQz\",\"handler\":\"fridge-module__handler___2mxra\",\"left\":\"fridge-module__left____d4X0\",\"fridgeBox\":\"fridge-module__fridgeBox___rT0Ok\",\"fridgeContent\":\"fridge-module__fridgeContent___2ULuO swidget-fridge-content\",\"right\":\"fridge-module__right___2l1xe\",\"fridgeDoors\":\"fridge-module__fridgeDoors___3Iv1P\",\"fridgeHandlers\":\"fridge-module__fridgeHandlers___34rKP\",\"fridgeLights\":\"fridge-module__fridgeLights___AmUzL\",\"top\":\"fridge-module__top___2I6-d swidget-fridge-top\",\"bottom\":\"fridge-module__bottom___3oESF swidget-fridge-bottom\",\"fridgeShelves\":\"fridge-module__fridgeShelves___Q-84w\",\"fridgeBottom\":\"fridge-module__fridgeBottom____Sf-E\",\"fullscreen\":\"fridge-module__fullscreen___2oO-3\",\"airCurtain\":\"fridge-module__airCurtain____bWGF swidget-air-curtain\",\"topFix\":\"fridge-module__topFix___3WrSE\",\"curves\":\"fridge-module__curves___2S-yr\",\"curveLeft\":\"fridge-module__curveLeft___1-Tdt swidget-fridge-curve-left\",\"curveRight\":\"fridge-module__curveRight___2rqi8 swidget-fridge-curve-right\",\"curveRightBottom\":\"fridge-module__curveRightBottom___qt15U swidget-fridge-curve-bottom-right\",\"curveLeftBottom\":\"fridge-module__curveLeftBottom___2z4X3 swidget-fridge-curve-bottom-left\",\"costcoFridge\":\"fridge-module__costcoFridge___1Vnd4\",\"mobile\":\"fridge-module__mobile___3HfS9\"};","const isArray = Array.isArray\n\nexport const putToArray = (array, indexes, element) => {\n if (indexes.length < 2 || !isArray(array)) return null\n\n if (!isArray(array[indexes[0]])) array[indexes[0]] = []\n\n if (2 == indexes.length) {\n array[indexes[0]][indexes[1]] = element\n return element\n }\n\n if (!isArray(array[indexes[0]][indexes[1]])) array[indexes[0]][indexes[1]] = []\n\n if (3 == indexes.length) {\n array[indexes[0]][indexes[1]][indexes[2]] = element\n return element\n }\n\n if (!isArray(array[indexes[0]][indexes[1]][indexes[2]])) array[indexes[0]][indexes[1]][indexes[2]] = []\n\n if (4 == indexes.length) {\n array[indexes[0]][indexes[1]][indexes[2]][indexes[3]] = element\n return element\n }\n\n if (!isArray(array[indexes[0]][indexes[1]][indexes[2]][indexes[3]]))\n array[indexes[0]][indexes[1]][indexes[2]][indexes[3]] = []\n\n array[indexes[0]][indexes[1]][indexes[2]][indexes[3]][indexes[4]] = element\n\n return element\n}\n\nexport const getFromArray = (array, indexes) => {\n if (indexes.length < 2 || !isArray(array) || !isArray(array[indexes[0]])) return null\n\n if (2 == indexes.length) return array[indexes[0]][indexes[1]]\n\n if (!isArray(array[indexes[0]][indexes[1]])) return null\n\n if (3 == indexes.length) return array[indexes[0]][indexes[1]][indexes[2]]\n\n if (!isArray(array[indexes[0]][indexes[1]][indexes[2]])) return null\n\n if (4 == indexes.length) return array[indexes[0]][indexes[1]][indexes[2]][indexes[3]]\n\n if (!isArray(array[indexes[0]][indexes[1]][indexes[2]][indexes[3]])) return null\n\n if (5 == indexes.length) return array[indexes[0]][indexes[1]][indexes[2]][indexes[3]][indexes[4]]\n\n return null\n}\n","export const SETTINGS = {\n cstore: {\n regular: {\n walls: 0,\n air: 0,\n pegAir: 5,\n buttonWidth: 10,\n bottom: 17,\n top: 55,\n alignWalls: 3,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'cstore',\n deep: 3,\n styleClass: 'regularTypeTarget'\n },\n displayFridge: {\n walls: 2,\n air: 0,\n buttonWidth: 10,\n alignWalls: 4,\n emptyWalls: 0,\n bottom: 5,\n sameHeight: true,\n fridge: true,\n discrete: true,\n displayWidth: 430,\n widthCoef: 1,\n priceTemplate: 'cstore',\n deep: 3,\n top: 25,\n styleClass: 'fridgeTypeTarget',\n bottomImage: './svg/bottom.svg',\n bottomLeftImage: './svg/bottom-left.svg',\n bottomRightImage: './svg/bottom-rigth.svg'\n },\n counterFridge: {\n walls: 0,\n emptyWalls: 25,\n air: 0,\n pegAir: 0,\n buttonWidth: 5,\n bottom: 15,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'cstore',\n top: 90,\n styleClass: 'counterFridge',\n deep: 3,\n bottomAdditionalHeight: 0,\n autoStacking: true,\n bottomMargin: 25\n }\n },\n samsclub: {\n pallet: {\n walls: 39,\n emptyWalls: 2,\n air: 5,\n pegAir: 5,\n buttonWidth: 14,\n bottom: 35,\n widthCoef: 1,\n priceTemplate: 'samsclub',\n double: true,\n top: 35,\n topFirst: 150,\n topBottom: 35,\n deep: 3,\n styleClass: 'samsclub',\n holders: true,\n bottomAdditionalHeight: 10,\n autoStacking: true\n },\n counterFridge: {\n walls: 2,\n emptyWalls: 25,\n air: 0,\n pegAir: 0,\n buttonWidth: 5,\n bottom: 15,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'samsclub',\n top: 90,\n styleClass: 'counterFridge',\n deep: 3,\n bottomAdditionalHeight: 0,\n autoStacking: true,\n bottomMargin: 25\n }\n },\n publix: {\n regular: {\n walls: 7,\n air: 5,\n pegAir: 5,\n buttonWidth: 10,\n bottom: 17,\n alignWalls: 3,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'publix',\n deep: 3,\n top: 55,\n styleClass: 'publix'\n },\n counterFridge: {\n walls: 2,\n emptyWalls: 25,\n air: 0,\n pegAir: 0,\n buttonWidth: 5,\n bottom: 15,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'publix',\n top: 90,\n styleClass: 'counterFridge',\n deep: 3,\n bottomAdditionalHeight: 0,\n autoStacking: true,\n bottomMargin: 25\n }\n },\n cvs: {\n regular: {\n walls: 7,\n air: 5,\n pegAir: 5,\n buttonWidth: 10,\n bottom: 17,\n alignWalls: 3,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'cvs',\n deep: 3,\n top: 55,\n styleClass: 'cvs'\n }\n },\n family: {\n regular: {\n walls: 7,\n air: 5,\n pegAir: 5,\n buttonWidth: 10,\n bottom: 17,\n alignWalls: 3,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'family',\n deep: 3,\n top: 55,\n styleClass: 'family'\n }\n },\n dollar: {\n regular: {\n walls: 7,\n air: 5,\n pegAir: 5,\n buttonWidth: 10,\n bottom: 17,\n alignWalls: 3,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'dollar',\n deep: 3,\n top: 55,\n styleClass: 'dollar'\n }\n },\n walgreens: {\n regular: {\n walls: 7,\n air: 5,\n pegAir: 5,\n buttonWidth: 10,\n bottom: 19,\n alignWalls: 3,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'walgreens',\n deep: 3,\n top: 55,\n styleClass: 'walgreens'\n }\n },\n amazon: {\n regular: {\n walls: 7,\n air: 5,\n pegAir: 5,\n buttonWidth: 10,\n bottom: 17,\n alignWalls: 3,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'amazon',\n deep: 3,\n top: 55,\n styleClass: 'amazon'\n }\n },\n target: {\n regular: {\n walls: 7,\n air: 5,\n pegAir: 5,\n buttonWidth: 10,\n bottom: 17,\n alignWalls: 3,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'target',\n deep: 3,\n top: 55,\n styleClass: 'regularTypeTarget'\n },\n displayFridge: {\n walls: 2,\n air: 0,\n buttonWidth: 10,\n alignWalls: 4,\n emptyWalls: 0,\n bottom: 5,\n sameHeight: true,\n fridge: true,\n discrete: true,\n displayWidth: 430,\n widthCoef: 1,\n priceTemplate: 'target',\n deep: 3,\n top: 25,\n styleClass: 'fridgeTypeTarget',\n bottomImage: './svg/bottom.svg',\n bottomLeftImage: './svg/bottom-left.svg',\n bottomRightImage: './svg/bottom-rigth.svg'\n },\n airCurtainFridge: {\n walls: 20,\n air: 1,\n pegAir: 1,\n buttonWidth: 10,\n displayWidth: 430,\n alignWalls: 17,\n bottom: 16,\n fridge: true,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'target',\n deep: 3,\n lastDeep: 5,\n top: 25,\n perspective: 1.15,\n styleClass: 'airCurtain'\n },\n counterFridge: {\n walls: 2,\n emptyWalls: 25,\n air: 0,\n pegAir: 0,\n buttonWidth: 10,\n bottom: 15,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'target',\n top: 90,\n styleClass: 'counterFridge',\n deep: 3,\n bottomAdditionalHeight: 0,\n autoStacking: true,\n bottomMargin: 45\n }\n },\n walmart: {\n regular: {\n walls: 7,\n air: 5,\n pegAir: 5,\n buttonWidth: 10,\n bottom: 17,\n alignWalls: 3,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'walmart',\n deep: 3,\n top: 55,\n styleClass: 'regularTypeTarget'\n },\n displayFridge: {\n walls: 2,\n air: 0,\n buttonWidth: 10,\n alignWalls: 4,\n emptyWalls: 15,\n bottom: 5,\n sameHeight: true,\n fridge: true,\n discrete: true,\n displayWidth: 430,\n widthCoef: 1,\n priceTemplate: 'walmart',\n deep: 3,\n top: 25,\n styleClass: 'fridgeTypeTarget',\n bottomImage: './svg/bottom.svg',\n bottomLeftImage: './svg/bottom-left.svg',\n bottomRightImage: './svg/bottom-rigth.svg'\n },\n airCurtainFridge: {\n walls: 20,\n air: 1,\n pegAir: 1,\n buttonWidth: 10,\n displayWidth: 430,\n alignWalls: 17,\n bottom: 16,\n fridge: true,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'walmart',\n deep: 3,\n lastDeep: 5,\n top: 25,\n perspective: 1.15,\n styleClass: 'airCurtain'\n },\n counterFridge: {\n walls: 2,\n emptyWalls: 25,\n air: 0,\n pegAir: 0,\n buttonWidth: 10,\n bottom: 15,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'walmart',\n top: 90,\n styleClass: 'counterFridge',\n deep: 3,\n bottomAdditionalHeight: 0,\n autoStacking: true,\n bottomMargin: 45\n }\n },\n costco: {\n pallet: {\n walls: 39,\n emptyWalls: 2,\n air: 5,\n pegAir: 5,\n buttonWidth: 14,\n bottom: 35,\n widthCoef: 1,\n priceTemplate: 'costco',\n double: true,\n top: 35,\n topFirst: 150,\n topBottom: 35,\n deep: 3,\n styleClass: 'costco',\n holders: true,\n dots: true,\n bottomAdditionalHeight: 10,\n autoStacking: true\n },\n counterFridge: {\n walls: 2,\n emptyWalls: 25,\n air: 0,\n pegAir: 0,\n buttonWidth: 5,\n bottom: 15,\n sameHeight: true,\n widthCoef: 1,\n priceTemplate: 'costco',\n top: 90,\n styleClass: 'counterFridge',\n deep: 3,\n bottomAdditionalHeight: 0,\n autoStacking: true,\n bottomMargin: 25\n }\n },\n lowes: {\n regular: {\n walls: 40,\n emptyWalls: 30,\n air: 5,\n pegAir: 5,\n buttonWidth: 45,\n bottom: 35,\n widthCoef: 1,\n alignWalls: 4,\n priceTemplate: 'lowes',\n deep: 3,\n top: 37,\n styleClass: 'lowes',\n holders: true,\n dots: true\n }\n },\n loblaws: {\n regular: {\n walls: 40,\n emptyWalls: 30,\n air: 5,\n pegAir: 5,\n buttonWidth: 45,\n bottom: 35,\n widthCoef: 1,\n alignWalls: 4,\n priceTemplate: 'loblaws',\n deep: 3,\n top: 37,\n styleClass: 'loblaws',\n dots: true\n }\n },\n homedepot: {\n regular: {\n walls: 40,\n emptyWalls: 30,\n air: 5,\n pegAir: 5,\n buttonWidth: 45,\n bottom: 35,\n widthCoef: 1,\n alignWalls: 4,\n priceTemplate: 'homedepot',\n deep: 3,\n top: 37,\n styleClass: 'homedepot',\n holders: true,\n dots: true\n }\n },\n ecommerce: {\n regular: {}\n }\n}\n","import React, { Fragment, memo, useMemo } from 'react'\nimport PropTypes from 'prop-types'\nimport { Map } from 'immutable'\nimport { formatPrice } from '@aytm/app/swidget/questions/components/sh/functions'\n\nimport shelfStyle from '@aytm/app/swidget/questions/styles/sh/shelf.module.scss'\n\nexport function ItemPrice(props) {\n const { item, questionSchema, type, left, noRandom } = props\n if (!item.get('price')) return \n const price = item.get('price')\n const discount = item.get('discounted_price')\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const randomLeft = useMemo(() => (noRandom ? 0 : Math.random() * 5 - 5), [noRandom])\n const discounted = discount > 0\n const showLongPrices = 'custom' != questionSchema.get('shelf_type')\n if (false === item.get('available')) return \n\n return (\n \n {\n {\n walmart: (\n \n
\n \n
\n
\n
\n \n
\n
\n \n ),\n target: (\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n {discounted && showLongPrices && (\n
\n
\n Sale\n
\n
\n
\n
\n \n
\n
\n
%
\n
\n
\n
\n )}\n \n ),\n family: (\n \n
\n
\n
\n
\n
\n \n
\n {discounted && showLongPrices && (\n
\n
\n \n
\n
WOW
\n
\n )}\n \n ),\n publix: (\n \n {discounted ? (\n
\n
\n
\n
\n
\n \n
\n SAVE\n
\n
\n
\n
\n ) : (\n
\n
\n \n
\n
\n
\n
\n
\n
\n )}\n \n ),\n dollar: (\n \n
\n
\n
\n
\n
\n
\n \n
\n \n ),\n walgreens: (\n \n {discounted ? (\n
\n
\n \n {' '}\n sale this card{' '}\n \n
\n \n
\n
\n
\n
\n
\n
\n ) : (\n
\n \n
\n
\n
\n
\n
\n
\n
\n )}\n \n ),\n amazon: (\n \n
\n
\n
\n {discounted &&
}\n
\n \n
\n
\n
\n
\n \n ),\n costco: (\n \n
\n
\n
\n
\n
\n
\n \n \n ),\n homedepot: (\n \n
\n
\n
\n
\n
\n
\n \n \n ),\n samsclub: (\n \n
\n
\n
\n
\n
\n \n \n ),\n cvs: (\n \n
\n
\n
\n
\n
\n \n
\n
\n {discounted && showLongPrices && (\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n )}\n \n ),\n lowes: (\n \n {discounted ? (\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n ) : (\n
\n
\n
\n \n
\n
\n
\n
\n )}\n \n ),\n loblaws: (\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n ),\n cstore: (\n \n {discounted ? (\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n ) : (\n
\n
\n
\n \n
\n
\n
\n )}\n \n )\n }[type]\n }\n
\n )\n}\n\nItemPrice.propTypes = {\n questionSchema: PropTypes.instanceOf(Map).isRequired,\n item: PropTypes.instanceOf(Map).isRequired,\n type: PropTypes.string,\n noRandom: PropTypes.bool,\n left: PropTypes.number\n}\n\nexport default memo(\n ItemPrice,\n (prevProps, nextProps) =>\n prevProps.questionSchema === nextProps.questionSchema &&\n prevProps.item === nextProps.item &&\n prevProps.type === nextProps.type &&\n prevProps.questionSchema === nextProps.questionSchema\n)\n","import React, { memo } from 'react'\nimport PropTypes from 'prop-types'\nimport { Map, OrderedMap, List } from 'immutable'\nimport ItemPrice from '@aytm/app/swidget/questions/components/sh/price'\n\nimport shelfStyle from '@aytm/app/swidget/questions/styles/sh/shelf.module.scss'\n\nimport { SETTINGS } from '@aytm/app/swidget/questions/components/sh/settings'\n\nTopShelf.propTypes = {\n questionSchema: PropTypes.instanceOf(Map).isRequired,\n width: PropTypes.number.isRequired,\n mobile: PropTypes.bool.isRequired,\n prices: PropTypes.bool,\n widthFactor: PropTypes.number.isRequired,\n shelf: PropTypes.instanceOf(List).isRequired,\n answers: PropTypes.instanceOf(OrderedMap).isRequired\n}\n\nexport function TopShelf(props) {\n const { questionSchema, width, widthFactor, answers, shelf, prices } = props\n const settings = {\n ...questionSchema.get('shelf_config').toJS(),\n ...SETTINGS[questionSchema.get('store')][questionSchema.get('shelf_type')]\n }\n\n return (\n \n
\n
\n
\n {prices && !questionSchema.get('hide_price') && (\n
\n {Array.apply(null, Array(shelf.size)).map((_, packIndex) => {\n const answer = answers.get(shelf.getIn([packIndex, 0])).set('firstIndex', 1)\n\n const itemsCount = shelf.getIn([packIndex, 1])\n\n return (\n \n \n
\n )\n })}\n
\n )}\n
\n )\n}\n\nexport default memo(\n TopShelf,\n (prevProps, nextProps) =>\n prevProps.questionSchema === nextProps.questionSchema &&\n prevProps.width === nextProps.width &&\n prevProps.widthFactor === nextProps.widthFactor &&\n prevProps.answers === nextProps.answers &&\n prevProps.mobile === nextProps.mobile &&\n prevProps.answersIndex === nextProps.answersIndex\n)\n","import * as PIXI from 'pixi.js'\nimport { DropShadowFilter } from 'pixi-filters'\n\nPIXI.settings.TARGET_FPMS = 0.01\nPIXI.settings.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT = false\nPIXI.utils.skipHello()\n\nexport function initStage(div, width, height) {\n const pixiApp = new PIXI.Application({\n width: width,\n height: height,\n transparent: true,\n sortableChildren: true,\n enableSort: true,\n antialias: false,\n sharedTicker: true\n })\n\n pixiApp.renderer.plugins.interaction.autoPreventDefault = false\n pixiApp.renderer.view.style.touchAction = 'auto'\n pixiApp.renderer.antialias = false\n pixiApp.renderer.preserveDrawingBuffer = true\n pixiApp.autostart = true\n pixiApp.sharedTicker = true\n\n const container = new PIXI.Container()\n container.filters = [initShadowFilter()]\n container.sortableChildren = true\n pixiApp.stage.addChild(container)\n div.appendChild(pixiApp.view)\n const loader = PIXI.Loader.shared\n container.ticker = pixiApp.ticker\n container.loader = loader\n const renderer = PIXI.autoDetectRenderer()\n\n return [pixiApp, container, pixiApp.ticker, loader, renderer]\n}\n\nfunction initShadowFilter() {\n const dropShadowFilter = new DropShadowFilter()\n\n dropShadowFilter.color = 0x000020\n dropShadowFilter.alpha = 0.2\n dropShadowFilter.blur = 3\n dropShadowFilter.distance = 10\n dropShadowFilter.rotation = -15\n dropShadowFilter.quality = 3\n\n return dropShadowFilter\n}\n","import * as PIXI from 'pixi.js'\nimport { getImageAssetPath, IMAGE_ASSET_PATH_FILTER_RESIZE_TO_LIMIT } from '@aytm/lib/common/assets'\n\n// export const CANVAS_RESIZE_FACTOR = 2\nexport const FIRST_LAYER_COLOR = 0xffffff\nexport const SECOND_LAYER_COLOR = 0x555555\nexport const THIRD_LAYER_COLOR = 0xaaaaaa\nexport const HIDDEN_COLOR = 0xbbbbbb\n\nexport function getProductImage(answer) {\n return answer.getIn(['picture', 'original_path'])\n ? getImageAssetPath({\n filter: IMAGE_ASSET_PATH_FILTER_RESIZE_TO_LIMIT,\n width: 600,\n height: 1600,\n path: answer.getIn(['picture', 'original_path']),\n backgroundColor: 'transparent',\n animated: true,\n trim: true\n })\n : '/images/widget/sh/emptyBottle.png'\n}\n\nexport default function drawProduct(settings, CANVAS_RESIZE_FACTOR) {\n const baseTexture = new PIXI.Texture.from(settings.image)\n const heightTextureFactor = settings.canvasHeight / settings.height\n const texture = new PIXI.Texture(\n baseTexture,\n new PIXI.Rectangle(\n 0,\n Math.floor(\n heightTextureFactor * (settings.maxHeight < settings.height ? settings.height - settings.maxHeight : 0)\n ),\n settings.canvasWidth,\n Math.floor(heightTextureFactor * Math.min(settings.maxHeight, settings.height))\n )\n )\n const cat = PIXI.Sprite.from(settings.image.width ? texture : baseTexture, {\n mipmap: false,\n scaleMode: PIXI.SCALE_MODES.LINEAR,\n crossorigin: '',\n crossOrigin: '',\n resourceOptions: {\n crossorigin: true,\n crossOrigin: true\n }\n })\n\n cat.texture.baseTexture.mipmap = false\n cat.alpha = 1\n cat.buttonMode = true\n\n cat.width = settings.width\n cat.height = Math.min(settings.height, settings.maxHeight)\n cat.crossorigin = true\n cat.interactive = settings.interactive\n cat.zIndex = settings.z\n cat.x = settings.x\n cat.oldX = settings.x\n cat.y = settings.y\n cat.tint = settings.tint\n cat.orderZ = settings.order\n\n // window.monitorEvents(cat)\n // console.log(cat)\n cat.on('touchstart', () => {\n cat.pressed = true\n })\n\n cat.on('touchmove', () => {\n cat.pressed = false\n })\n\n cat.on('mouseover', () => {\n if (settings.noHover) return\n if (settings.emulatedMobile) {\n return\n }\n // const extract = se ttings.renderer.plugins.extract\n // const pixels = extract.pixels(cat)\n // const context = canvas.getContext(\"2d\")\n // const rgba = context.getImageData(event.data.global.x, event.data.global.y, 1, 1).data\n // console.log(pixels)\n // console.log(event.data.global.x)\n // console.log(event.data.global.y)\n // console.log(event.data.originalEvent.clientX)\n\n // if (!settings.scrolling) ticker.start()\n // cat.oldWidth = cat.width\n // cat.oldHeight = cat.height\n // cat.oldTint = cat.tint\n // cat.oldY = cat.y\n // cat.oldZIndex = cat.zIndex\n // cat.zIndex = 100\n // if (settings.fridge && settings.discrete && settings.last) cat.y = cat.y - 30\n // else {\n // cat.y = CANVAS_RESIZE_FACTOR * settings.hoverY - cat.height * (settings.noGravitation ? 0 : 0.1)\n // cat.width = cat.width * 1.1\n // cat.height = cat.height * 1.1\n // }\n // cat.tint = FIRST_LAYER_COLOR\n\n if ('function' == typeof settings.onHover)\n settings.onHover({\n src: settings.image.src,\n x: cat.x / CANVAS_RESIZE_FACTOR,\n y: cat.y / CANVAS_RESIZE_FACTOR,\n width: cat.width / CANVAS_RESIZE_FACTOR,\n height: cat.height / CANVAS_RESIZE_FACTOR,\n marginTop:\n (settings.maxHeight < settings.height ? settings.height - settings.maxHeight : 0) / CANVAS_RESIZE_FACTOR\n })\n })\n\n cat.on('mouseout', () => {\n // if (!settings.scrolling) ticker.start()\n // cat.width = cat.oldWidth\n // cat.height = cat.oldHeight\n // cat.tint = cat.oldTint\n // cat.zIndex = cat.oldZIndex\n // cat.y = cat.oldY\n // if (!settings.scrolling)\n // setTimeout(() => {\n // ticker.stop()\n // }, 20)\n if ('function' === typeof settings.onHover) settings.onHover(null)\n })\n\n cat.on('pointerup', event => {\n if (settings.noHover) return\n if (settings.emulatedMobile) {\n const coords =\n (settings.additionalX + event.data.global.x / CANVAS_RESIZE_FACTOR).toFixed(2) +\n ',' +\n (event.data.global.y / CANVAS_RESIZE_FACTOR).toFixed(2)\n settings.callback(coords)\n // setTimeout(() => {\n\n // }, 100)\n }\n })\n\n cat.on('mousedown', event => {\n if (settings.noHover) return\n if (settings.emulatedMobile) {\n const coords =\n (settings.additionalX + event.data.global.x / CANVAS_RESIZE_FACTOR).toFixed(2) +\n ',' +\n (event.data.global.y / CANVAS_RESIZE_FACTOR).toFixed(2)\n settings.callback(coords)\n }\n })\n\n cat.on('touchend', event => {\n if (cat.pressed) {\n if (settings.noHover) return\n const coords =\n (settings.additionalX + event.data.global.x / CANVAS_RESIZE_FACTOR).toFixed(2) +\n ',' +\n (event.data.global.y / CANVAS_RESIZE_FACTOR).toFixed(2)\n setTimeout(() => {\n settings.callback(coords)\n }, 100)\n }\n cat.pressed = false\n })\n\n cat.on('click', event => {\n if (settings.noHover) return\n const coords =\n (settings.additionalX + event.data.global.x / CANVAS_RESIZE_FACTOR).toFixed(0) +\n ',' +\n (event.data.global.y / CANVAS_RESIZE_FACTOR).toFixed(0)\n setTimeout(() => {\n settings.callback(coords)\n }, 100)\n })\n\n return cat\n}\n","import { initStage } from '@aytm/lib/shelves/stage'\nimport { getFromArray, putToArray } from '@aytm/lib/common/array'\nimport drawProduct, {\n getProductImage,\n FIRST_LAYER_COLOR,\n SECOND_LAYER_COLOR,\n THIRD_LAYER_COLOR,\n HIDDEN_COLOR\n} from '@aytm/lib/shelves/product'\nimport { fromJS, Map } from 'immutable'\nimport domtoimage from 'dom-to-image-more'\n\nexport default function ShelvesContainer(div, width, height, onProductClick, generateImage, topShelf) {\n const CANVAS_RESIZE_FACTOR = width > 2000 || generateImage ? 1 : 2\n ;[this.pixiApp, this.container, this.ticker, this.loader, this.renderer] = initStage(\n div,\n CANVAS_RESIZE_FACTOR * width,\n CANVAS_RESIZE_FACTOR * height\n )\n this.leftArray = []\n this.goodState = []\n this.productCoordinates = []\n this.upperCoordinates = []\n this.childs = []\n\n // document.addEventListener('visibilitychange', () => {\n // this.generateImg()\n // })\n\n this.generateImg = () => {\n const qId = this.config.id\n if (window['AYTM_shelfImage_' + qId] && window['AYTM_shelfImage_' + qId].src) return\n setTimeout(() => {\n domtoimage\n .toPng(div.closest('.swidget-question-shelf-container'))\n .then(function (dataUrl) {\n if (dataUrl.length > 100) {\n const img = new Image()\n img.src = dataUrl\n domtoimage\n .toPng(div.closest('.swidget-question-shelf-container'))\n .then(function (dataUrl) {\n if (dataUrl.length > 100) {\n const img = new Image()\n img.src = dataUrl\n window['AYTM_shelfImage_' + qId] = img\n if (!window['AYTM_domToImage']) window['AYTM_domToImage'] = domtoimage.toPng\n }\n })\n .catch(error => {\n // eslint-disable-next-line no-console\n console.log(error)\n })\n }\n })\n .catch(error => {\n // eslint-disable-next-line no-console\n console.log(error)\n })\n }, 1500)\n }\n\n this.destroy = () => {\n // CHECK all\n // this.renderer.context.gl.getExtension('WEBGL_lose_context').loseContext()\n // this.renderer.framebuffer.gl.getExtension('WEBGL_lose_context').loseContext()\n // this.renderer.geometry.gl.getExtension('WEBGL_lose_context').loseContext()\n // this.renderer.state.gl.getExtension('WEBGL_lose_context').loseContext()\n // this.renderer.texture.gl.getExtension('WEBGL_lose_context').loseContext()\n\n this.renderer.destroy()\n this.container.destroy()\n this.pixiApp.destroy()\n this.loader.reset()\n }\n\n this.removeChildren = () => {\n this.container.removeChildren()\n }\n\n this.addChild = cat => {\n this.container.addChild(cat)\n }\n\n this.getUpperCoordinates = index => this.upperCoordinates[index]\n\n this.getImage = () => {\n const data = this.renderer.plugins.extract.image(this.container)\n // const img = new Image()\n // img.src = data\n // document.body.appendChild(data)\n window.newImg = data\n }\n\n this.getUpperImage = answer => {\n const image =\n answer.get('gallery') != undefined\n ? answer.get('gallery').find(image => 'single' == image.getIn(['product', 'image_type'])) || Map({})\n : answer.get('height') < this.config.topShelf.height * this.config.widthFactor\n ? answer.get('image')\n : Map({})\n return image\n }\n\n this.drawScene = (\n config,\n answers,\n answersMask,\n coordinates,\n counts,\n shelvesSchema,\n takenGoods,\n answersImages,\n onHover\n // eslint-disable-next-line max-params\n ) => {\n this.config = config\n this.answersMask = answersMask\n this.shelvesSchema = shelvesSchema\n this.takenGoods = takenGoods\n this.productCoordinates = []\n this.shelfHeights = []\n this.coordinates = coordinates.toJS()\n this.counts = counts.toJS()\n this.onHover = onHover\n\n this.getLeft = (x, indexes) => {\n if (!indexes[3] || this.config.scrolling || this.config.noPerspective) return 0\n // if ('counterFridge' == this.config.styleClass) return 0\n const productX =\n (x - (this.config.doubleWidth && !this.config.first ? (this.config.fridge ? 400 : 0) : 0)) /\n this.config.widthFactor +\n config.blockWidths[0]\n\n return getFromArray(this.leftArray, indexes) != null\n ? Math.round(getFromArray(this.leftArray, indexes))\n : putToArray(\n this.leftArray,\n indexes,\n 'counterFridge' == this.config.styleClass\n ? 6 * (Math.random() - 0.5)\n : -(productX - config.blockWidths[1] / 2) * 0.15 * indexes[3] * (1 == indexes[3] ? 1 : 0.85)\n )\n }\n\n // let productIndex\n shelvesSchema.forEach((shelf, index) => {\n const lastShelf = index == shelvesSchema.size - 1\n this.shelfHeights.push(\n (this.config.customConfig && 'pegboard' == this.config.customConfig.getIn([index, 'shelf_type'])\n ? this.config.pegAir\n : this.config.air) +\n (this.config.customConfig\n ? (index ? this.shelfHeights[index - 1] : 0) + this.config.customConfig.getIn([index, 'height'])\n : this.config.height)\n )\n this.itemsBefore = 0\n\n // productIndex = 0\n Array.apply(null, Array(shelf.size)).forEach((_, packIndex) => {\n const answer = answers.get(shelf.getIn([packIndex, 0]))\n if (answer.get('reallyHidden')) return\n const image = getProductImage(answer)\n const itemsCount = shelf.getIn([packIndex, 1])\n const halfIndex = config.doubleWidth ? (config.first ? index : 2 + index) : index\n this.itemsBefore += packIndex\n ? this.counts[index][packIndex - 1] * shelvesSchema.getIn([index, packIndex - 1, 1])\n : 0\n Array.apply(\n null,\n Array(generateImage ? 1 : lastShelf && config.lastDeep ? config.lastDeep : config.deep)\n ).forEach((_, _layerIndex) => {\n const layerIndex = generateImage && lastShelf && config.lastDeep ? config.lastDeep - 1 : _layerIndex\n const deep = lastShelf && config.lastDeep ? config.lastDeep : config.deep\n if (config.double && topShelf && 0 == layerIndex) {\n const upperImage = this.getUpperImage(answer)\n if (upperImage && upperImage.size) {\n const upperCat = drawProduct(\n this.packUpperConfig(\n answersImages[answer.get('id') + '_top']\n ? answersImages[answer.get('id') + '_top']\n : getProductImage(\n fromJS({\n width: Math.round(upperImage.getIn(['product', 'width']) * this.config.widthFactor),\n height: Math.round(upperImage.getIn(['product', 'height']) * this.config.widthFactor),\n picture: upperImage\n })\n ),\n upperImage,\n answer,\n [index, packIndex],\n itemsCount\n ),\n CANVAS_RESIZE_FACTOR\n )\n this.container.addChild(upperCat)\n }\n }\n\n Array.apply(null, Array(this.counts[index][packIndex])).forEach((_, verticalIndex) => {\n Array.apply(null, Array(itemsCount)).forEach((_, itemIndex) => {\n if (\n !takenGoods.getIn([\n halfIndex + config.firstShelf,\n packIndex,\n itemIndex,\n verticalIndex * deep + deep - layerIndex - 1\n ]) ||\n answer.get('fakeHidden') ||\n !answer.getIn(['image', 'original_path'])\n ) {\n const config = this.packConfig(\n answersImages[answer.get('id')] ? answersImages[answer.get('id')] : image,\n answer,\n [index, packIndex, itemIndex, layerIndex, verticalIndex]\n )\n if (!config) return\n if (config.maxStacking && this.counts[index][packIndex] - verticalIndex > config.maxStacking) return\n const cat = drawProduct(config, CANVAS_RESIZE_FACTOR)\n // const halfCoordIndex = this.config.doubleWidth\n // ? this.config.first\n // ? this.config.fridge\n // ? index * 2\n // : index\n // : this.config.fridge\n // ? 1 + index * 2\n // : index + 2\n // : index\n // if (0 == layerIndex) {\n // config.x =\n // (coordinates.getIn([halfCoordIndex, productIndex, 0]) -\n // (this.config.doubleWidth && !this.config.first ? (this.config.fridge ? 380 : 600) : 0)) *\n // CANVAS_RESIZE_FACTOR\n // config.y = coordinates.getIn([halfCoordIndex, productIndex, 1]) * CANVAS_RESIZE_FACTOR\n // config.z = 100\n // config.width = coordinates.getIn([halfCoordIndex, productIndex, 2]) * CANVAS_RESIZE_FACTOR\n // config.height = coordinates.getIn([halfCoordIndex, productIndex, 3]) * CANVAS_RESIZE_FACTOR\n // config.tint = 0xff0000\n // const newCat = drawProduct(config, this.ticker)\n // this.container.addChild(newCat)\n // productIndex++\n // }\n\n putToArray(\n this.goodState,\n [halfIndex, packIndex, itemIndex, verticalIndex * deep + deep - layerIndex - 1],\n cat\n )\n if (generateImage && 0 == layerIndex)\n this.productCoordinates.push({\n id: answer.get('id'),\n x: config.x - config.width / 2,\n y: config.y - config.height / 2\n })\n this.container.addChild(cat)\n this.childs.push(cat)\n }\n })\n })\n })\n })\n })\n if (generateImage) {\n window.AYTM_SHELF_PRODUCTS = this.productCoordinates\n if (window['AYTM_shelfImage_' + this.config.id] && window['AYTM_shelfImage_' + this.config.id].src) return\n\n this.generateImg()\n }\n\n if (this.config.getContainer) {\n this.scrollContainer = this.config.getContainer()\n\n if (this.config.scrolling && !generateImage && !this.config.noPerspective) {\n const self = this\n this.ticker.add(__delta => {\n if (this.scrollContainer) {\n const childElement = self.scrollContainer.children[0].children[0]\n const scale = childElement.getBoundingClientRect().width / childElement.offsetWidth\n const scrollLeft = this.scrollContainer.scrollLeft\n const viewPortStart = (CANVAS_RESIZE_FACTOR * scrollLeft) / scale\n const viewPortEnd = (CANVAS_RESIZE_FACTOR * (scrollLeft + window.innerWidth)) / scale\n const viewPortWidth = (CANVAS_RESIZE_FACTOR * window.innerWidth) / 2 / scale\n\n // console.log(viewPortStart)\n // console.log(viewPortEnd)\n // console.log(viewPortWidth)\n\n // console.log(self.scrollContainer)\n this.childs.forEach(child => {\n const childX = child.x + config.blockWidths[0] * this.config.widthFactor * CANVAS_RESIZE_FACTOR\n if (child.orderZ && childX > viewPortStart && childX < viewPortEnd + child.width) {\n const delta = childX - viewPortStart\n child.x = child.oldX - 0.01 * (delta - viewPortWidth) * child.orderZ\n if (child.x < 0) child.x = 0\n if (child.x > CANVAS_RESIZE_FACTOR * width - child.width) {\n child.x = CANVAS_RESIZE_FACTOR * width - child.width\n }\n }\n })\n }\n })\n }\n }\n }\n\n this.checkAvailability = indexes => {\n ;(indexes[3] + 1) % this.config.deep && getFromArray(this.goodState.current, indexes)\n }\n\n this.getCenter = (imageWidth, answer, indexes, itemsCount) => {\n const topIndex = Math.trunc(itemsCount / 2)\n const doubleIndex = this.config.double ? Math.trunc(indexes[0] / 2) : indexes[0]\n return Math.min(\n Math.round(\n this.answersMask[indexes[0]][indexes[1]][topIndex] -\n answer.get('width') / (itemsCount / 2 == topIndex ? 1 : 2) -\n (imageWidth * this.config.widthFactor) / 2 +\n Number(width / (this.config.double ? 2 : 1) - this.answersMask[indexes[0]][-1]) / 2 +\n (doubleIndex != indexes[0] ? width / 2 : 0)\n ),\n width - imageWidth * this.config.widthFactor\n )\n }\n\n this.packCallback = (answer, indexes) => coords => {\n const halfIndex = this.config.doubleWidth ? (this.config.first ? indexes[0] : 2 + indexes[0]) : indexes[0]\n const doubleIndex = this.config.double ? Math.trunc(indexes[0] / 2) : indexes[0]\n const lastShelf = indexes[0] == this.shelvesSchema.size - 1\n const deep = lastShelf && this.config.lastDeep ? this.config.lastDeep : this.config.deep\n\n let removeIndex = indexes[4] * deep + deep - indexes[3] - 1\n if (\n this.config.double ||\n (this.config.customConfig &&\n 'auto' == this.config.customConfig.getIn([doubleIndex, 'stacking']) &&\n this.config.styleClass != 'counterFridge')\n ) {\n while (\n removeIndex > 0 &&\n removeIndex - deep >= 0 &&\n getFromArray(this.goodState, [halfIndex, indexes[1], indexes[2], removeIndex - deep])\n )\n removeIndex = removeIndex - deep\n }\n\n onProductClick(\n answer,\n [halfIndex + this.config.firstShelf, indexes[1], indexes[2], removeIndex],\n () => {\n if (!this.config.scrolling) this.ticker.start()\n this.container.removeChild(this.goodState[halfIndex][indexes[1]][indexes[2]][removeIndex])\n this.goodState[halfIndex][indexes[1]][indexes[2]][removeIndex] = null\n if (!this.config.scrolling) setTimeout(() => this.ticker.stop(), 1000)\n },\n coords\n )\n }\n\n this.packUpperCallback = (answer, indexes, newImage) => coords => {\n const halfIndex = this.config.doubleWidth ? (this.config.first ? indexes[0] : 2 + indexes[0]) : indexes[0]\n\n onProductClick(\n answer.set('currentPicture', newImage),\n [halfIndex, indexes[1], 0, 0],\n () => {\n if (!this.config.scrolling) this.ticker.start()\n this.container.removeChild(this.goodState[halfIndex][indexes[1]][0][0])\n this.goodState[halfIndex][indexes[1]][0][0] = null\n if (!this.config.scrolling) setTimeout(() => this.ticker.stop(), 1000)\n },\n coords\n )\n }\n\n this.packUpperConfig = (image, newImage, answer, indexes, itemsCount) => {\n const productConfig = {}\n const doubleIndex = this.config.double ? Math.trunc(indexes[0] / 2) : indexes[0]\n productConfig.width = CANVAS_RESIZE_FACTOR * newImage.getIn(['product', 'width']) * this.config.widthFactor\n productConfig.height =\n CANVAS_RESIZE_FACTOR *\n Math.round(newImage.getIn(['product', 'height']) + newImage.getIn(['product', 'offset_y'])) *\n this.config.widthFactor\n productConfig.maxHeight =\n this.config.widthFactor *\n CANVAS_RESIZE_FACTOR *\n (this.config.customConfig ? this.config.customConfig.getIn([indexes[0], 'height']) : this.config.height)\n productConfig.canvasHeight =\n image.height + (image.width / answer.get('width')) * newImage.getIn(['product', 'offset_y'])\n productConfig.canvasWidth = image.width\n productConfig.emulatedMobile = this.config.emulatedMobile\n productConfig.x =\n CANVAS_RESIZE_FACTOR * this.getCenter(newImage.getIn(['product', 'width']), answer, indexes, itemsCount)\n productConfig.interactive = Boolean(!answer.get('fakeHidden') && answer.getIn(['image', 'original_path']))\n productConfig.additionalX = this.config.doubleWidth && !this.config.first ? 600 : 0\n putToArray(\n this.upperCoordinates,\n [doubleIndex, (this.upperCoordinates[doubleIndex] || []).length],\n Math.min(productConfig.x / CANVAS_RESIZE_FACTOR - 10, 500) //TODO\n )\n productConfig.available = answer.get('available') != false\n productConfig.y =\n CANVAS_RESIZE_FACTOR *\n (((this.config.height + this.config.air) * this.config.widthFactor) / 2 +\n this.config.topBottom -\n (newImage.getIn(['product', 'height']) + newImage.getIn(['product', 'offset_y'])) * this.config.widthFactor)\n productConfig.hoverY = productConfig.y / CANVAS_RESIZE_FACTOR\n productConfig.z = 2\n productConfig.last = (this.config.double ? Math.trunc(indexes[0] / 2) : indexes[0]) < this.shelvesSchema.size - 1\n productConfig.callback = this.packUpperCallback(answer, indexes, newImage)\n productConfig.perspective = 1\n productConfig.image = image\n productConfig.tint = FIRST_LAYER_COLOR\n productConfig.onHover = generateImage ? null : productConfig.available ? this.onHover : () => {}\n productConfig.additionalX = productConfig.additionalX + this.config.blockWidths[0] * this.config.widthFactor\n productConfig.noHover = answer.get('fakeHidden') || !productConfig.available\n\n return productConfig\n }\n\n this.packConfig = (image, answer, indexes) => {\n const calculateDeltas = () => {\n if (!this.config.double) return 0\n if (this.config.styleClass != 'counterFridge') return 0\n if (indexes[0] + 2 >= this.shelvesSchema.size) return 0\n return indexes[0] % 2\n ? -(\n 0.25 *\n (this.answersMask[indexes[0]].length - indexes[1]) *\n (width / 2 - this.answersMask[indexes[0] - 1][-1])\n ) / this.answersMask[indexes[0]].length\n : (0.25 *\n (indexes[1] + 1) *\n (this.answersMask[indexes[0] + 1] && this.answersMask[indexes[0] + 1][0]\n ? this.answersMask[indexes[0] + 1][0][0]\n : 0)) /\n this.answersMask[indexes[0]].length\n }\n\n const productConfig = {}\n productConfig.scrolling = this.config.scrolling\n productConfig.doubleIndex = this.config.double ? Math.trunc(indexes[0] / 2) : indexes[0]\n productConfig.stacking =\n this.config.double ||\n (this.config.customConfig && 'auto' == this.config.customConfig.getIn([productConfig.doubleIndex, 'stacking']))\n productConfig.maxStacking = answer.get('max_stacking')\n productConfig.available = answer.get('available') != false\n\n productConfig.maxHeight =\n this.config.widthFactor *\n CANVAS_RESIZE_FACTOR *\n (this.config.customConfig ? this.config.customConfig.getIn([indexes[0], 'height']) : this.config.height) -\n 2\n const productCoordinates =\n this.coordinates[indexes[0]][\n this.counts[indexes[0]][indexes[1]] * indexes[2] +\n this.itemsBefore +\n (this.counts[indexes[0]][indexes[1]] - indexes[4] - 1)\n ]\n\n productConfig.verticalCount = this.counts[indexes[0]][indexes[1]]\n\n // console.log(this.coordinates)\n // console.log(productConfig.doubleIndex)\n // console.log(this.itemsBefore)\n // console.log(this.verticalCounts)\n // console.log(indexes[4])\n // console.log(this.verticalCounts[indexes[0]][indexes[1]] * indexes[2] + this.itemsBefore + indexes[4])\n //[index, packIndex, itemIndex, layerIndex, verticalIndex]\n\n if (!productCoordinates) {\n // eslint-disable-next-line no-console\n console.log('aloha!')\n return\n }\n\n const offsetY = answer.get('offset_y') < 0 ? answer.get('offset_y') : 0\n productConfig.image = image\n productConfig.deep = this.config.deep\n productConfig.lastShelf = indexes[0] == this.shelvesSchema.size - 1\n productConfig.canvasHeight = image.height + (image.width / answer.get('width')) * offsetY\n productConfig.canvasWidth = image.width\n productConfig.perspective =\n this.config.perspective != undefined && productConfig.lastShelf && indexes[3] > 2 && !this.config.noPerspective\n ? parseFloat(this.config.perspective)\n : 1\n productConfig.width = CANVAS_RESIZE_FACTOR * Math.round(answer.get('width')) * productConfig.perspective - 2\n productConfig.height = CANVAS_RESIZE_FACTOR * Math.round(answer.get('height') * productConfig.perspective + offsetY)\n productConfig.interactive = Boolean(!answer.get('fakeHidden') && answer.getIn(['image', 'original_path']))\n productConfig.z = indexes[3]\n productConfig.emulatedMobile = this.config.emulatedMobile\n productConfig.bottomHover =\n this.config.customConfig &&\n 'pegboard' == this.config.customConfig.getIn([productConfig.doubleIndex, 'shelf_type'])\n\n productConfig.additionalX = this.config.doubleWidth && !this.config.first ? (this.config.fridge ? 400 : 600) : 0\n\n productConfig.x =\n CANVAS_RESIZE_FACTOR *\n Math.round(\n productCoordinates[0] +\n (generateImage\n ? 0\n : 0.1 *\n Math.sqrt(productConfig.width) *\n this.getLeft(productCoordinates[0], [\n indexes[0],\n indexes[1],\n indexes[2],\n this.config.deep - indexes[3] - 1,\n indexes[4]\n ])) -\n // answer.get('width') * (1 + (productConfig.perspective - 1) / 2) +\n calculateDeltas() -\n productConfig.additionalX\n )\n\n productConfig.last = productConfig.doubleIndex >= this.shelvesSchema.size / 2 - 1\n productConfig.doubleIndex = this.config.double ? Math.trunc(indexes[0] / 2) : indexes[0]\n\n productConfig.additionalX = this.config.doubleWidth && !this.config.first ? (this.config.fridge ? 430 : 600) : 0\n\n productConfig.additionalX = productConfig.additionalX + this.config.blockWidths[0] * this.config.widthFactor\n productConfig.hoverY = Math.round(\n productCoordinates[1] -\n ('counterFridge' == this.config.styleClass && !this.config.noPerspective\n ? 0.5 *\n this.getLeft(productCoordinates[0], [\n indexes[0],\n indexes[1],\n indexes[2],\n this.config.deep - indexes[3] - 1,\n indexes[4]\n ])\n : 0)\n )\n\n productConfig.noGravitation = 'counterFridge' == this.config.styleClass\n // if (productConfig.noGravitation)\n // productConfig.hoverY = this.config.height * this.config.widthFactor - productConfig.hoverY\n\n productConfig.y =\n CANVAS_RESIZE_FACTOR *\n Math.round(\n productConfig.hoverY +\n (this.config.noPerspective\n ? 0\n : indexes[0] > 2 ||\n (this.config.customConfig &&\n 'pegboard' == this.config.customConfig.getIn([productConfig.doubleIndex, 'shelf_type']))\n ? (2 - indexes[0]) * (2 - indexes[3]) * productConfig.perspective\n : 0)\n )\n\n if (\n productConfig.maxHeight < productConfig.height &&\n 'pegboard' != this.config.customConfig.getIn([indexes[0], 'shelf_type'])\n )\n productConfig.y = productConfig.y - productConfig.maxHeight + productConfig.height - 3\n\n productConfig.tint = FIRST_LAYER_COLOR\n productConfig.noHover =\n answer.get('fakeHidden') ||\n !answer.getIn(['image', 'original_path']) ||\n this.checkAvailability(indexes) ||\n !productConfig.available\n\n if (productConfig.z < this.config.deep - 1) {\n if (\n ('counterFridge' == this.config.styleClass &&\n this.takenGoods.getIn([\n indexes[0],\n indexes[1],\n indexes[2],\n indexes[4] * this.config.deep + this.config.deep - indexes[3] - 2\n ])) ||\n generateImage ||\n this.config.noPerspective\n )\n productConfig.tint = FIRST_LAYER_COLOR\n else {\n productConfig.tint = productConfig.z < this.config.deep - 2 ? SECOND_LAYER_COLOR : THIRD_LAYER_COLOR\n productConfig.order = productConfig.z < this.config.deep - 2 ? 4 : 2\n }\n }\n\n if (answer.get('fakeHidden')) {\n productConfig.tint = HIDDEN_COLOR\n }\n productConfig.callback = this.packCallback(answer, indexes)\n productConfig.onHover = generateImage ? null : productConfig.available ? this.onHover : () => {}\n\n // eslint-disable-next-line consistent-return\n return productConfig\n }\n}\n","import React, { memo, Fragment } from 'react'\nimport PropTypes from 'prop-types'\nimport { Map, List } from 'immutable'\nimport { TopShelf } from '@aytm/app/swidget/questions/components/sh/topShelf'\nimport { ItemPrice } from '@aytm/app/swidget/questions/components/sh/price'\nimport shelfStyle from '@aytm/app/swidget/questions/styles/sh/shelf.module.scss'\n\nPrices.propTypes = {\n questionSchema: PropTypes.instanceOf(Map).isRequired,\n mobile: PropTypes.bool,\n first: PropTypes.bool,\n topShelf: PropTypes.bool,\n backupPack: PropTypes.bool,\n settings: PropTypes.any,\n config: PropTypes.instanceOf(List).isRequired,\n coordinates: PropTypes.instanceOf(List).isRequired,\n shelvesMask: PropTypes.instanceOf(List).isRequired,\n answers: PropTypes.any.isRequired,\n width: PropTypes.number.isRequired\n}\n\nexport function Prices(props) {\n const {\n questionSchema,\n backupPack,\n settings,\n mobile,\n width,\n answers,\n topShelf,\n first,\n shelvesMask,\n coordinates,\n config\n } = props\n return (\n \n {shelvesMask.map((shelf, i) => {\n let priceIndex = 0\n return (\n \n {topShelf && (\n \n )}\n 0 && 'regular' == questionSchema.get('shelf_type')\n ? 0\n : settings.air) *\n (backupPack ? 0 : 1)) *\n settings.widthFactor,\n width:\n (questionSchema.get('double_width') && !settings.fridge ? width / 2 + 10 : width) -\n settings.walls +\n 1,\n marginLeft: 'counterFridge' == questionSchema.get('shelf_type') ? 0 * 50 : 0\n }}\n >\n
\n {!topShelf &&\n Array.apply(null, Array(shelf.size)).map((_, packIndex) => {\n const answer = answers.get(shelf.getIn([packIndex, 0]))\n const itemsCount = shelf.getIn([packIndex, 1])\n\n if (!coordinates.get(i)) return ''\n const coordIndex = coordinates\n .get(i)\n .findIndex((coord, ci) => answer.get('id') == coord.get(4) && ci >= packIndex)\n\n const priceLeft =\n 'flex' == questionSchema.get('shelf_align') ||\n 'right' == questionSchema.get('shelf_align') ||\n 'left' == questionSchema.get('shelf_align') ||\n (config && 'pegboard' == config.getIn([i, 'shelf_type']) && undefined != coordIndex)\n ? coordinates.getIn([i, coordIndex, 0]) +\n coordinates.getIn([i, coordIndex, 2]) / 2 -\n 20 -\n (questionSchema.get('double_width') && !first ? width : 0)\n : null\n\n return config && 'pegboard' == config.getIn([i, 'shelf_type']) ? (\n Array.apply(null, Array(itemsCount)).map((_, itemIndex) => {\n priceIndex += 1\n return (\n \n \n
\n )\n })\n ) : (\n \n \n
\n )\n })}\n
\n
\n \n )\n })}\n
\n )\n}\n\nexport default memo(Prices, (__prevProps, __nextProps) => true)\n","import React, { useRef, useEffect, memo, useMemo, useCallback, Fragment, useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { Map, OrderedMap, List } from 'immutable'\n\nimport shelfStyle from '@aytm/app/swidget/questions/styles/sh/shelf.module.scss'\nimport { putToArray } from '@aytm/lib/common/array'\n\nimport { SETTINGS } from '@aytm/app/swidget/questions/components/sh/settings'\nimport { TopShelf } from '@aytm/app/swidget/questions/components/sh/topShelf'\nimport ShelvesContainer from '@aytm/lib/shelves/container'\n\nimport bottomImage from '@aytm/app/swidget/questions/images/sh/bottom.png'\nimport Prices from '@aytm/app/swidget/questions/components/sh/prices'\n\nShelves.propTypes = {\n questionSchema: PropTypes.instanceOf(Map).isRequired,\n fullscreen: PropTypes.bool,\n scrolling: PropTypes.bool,\n mobile: PropTypes.bool,\n first: PropTypes.bool,\n generateImage: PropTypes.bool,\n emulatedMobile: PropTypes.bool,\n externalHover: PropTypes.bool,\n shelvesNumbers: PropTypes.array,\n widthFactor: PropTypes.number.isRequired,\n cartCount: PropTypes.number,\n blockWidths: PropTypes.array,\n config: PropTypes.instanceOf(List).isRequired,\n getContainer: PropTypes.func,\n width: PropTypes.number.isRequired,\n answers: PropTypes.instanceOf(OrderedMap).isRequired,\n takenGoods: PropTypes.instanceOf(List).isRequired,\n onProductClick: PropTypes.func,\n onHovered: PropTypes.func,\n answersImages: PropTypes.any\n}\n\nexport function Shelves(props) {\n const {\n questionSchema,\n fullscreen,\n scrolling,\n mobile,\n widthFactor,\n width,\n answers,\n takenGoods,\n onProductClick,\n onHovered,\n first,\n externalHover,\n cartCount,\n getContainer,\n generateImage,\n answersImages,\n config,\n shelvesNumbers,\n blockWidths,\n emulatedMobile\n } = props\n const settings = {\n ...SETTINGS[questionSchema.get('store')][questionSchema.get('shelf_type')],\n ...questionSchema.get('shelf_config').toJS(),\n ...questionSchema.getIn(['shelf_config', 'front']).toJS(),\n customConfig: config,\n widthFactor: widthFactor,\n width: width,\n first: first,\n scrolling: scrolling,\n blockWidths: blockWidths,\n doubleWidth: questionSchema.get('double_width'),\n align: questionSchema.get('shelf_align'),\n id: questionSchema.get('id'),\n emulatedMobile: emulatedMobile,\n getContainer: getContainer,\n firstShelf: questionSchema.get('double_width') && !first ? shelvesNumbers[1] : shelvesNumbers[0],\n noPerspective: 'no' == questionSchema.get('stock_type'),\n bottomAdditionalHeight:\n questionSchema.get('allow_custom_config') && 'pallet' == questionSchema.get('shelf_type')\n ? 0\n : SETTINGS[questionSchema.get('store')][questionSchema.get('shelf_type')].bottomAdditionalHeight\n }\n const shelvesSchema = useMemo(\n () =>\n questionSchema\n .get('answers_mask')\n .filter((_shelf, i) =>\n questionSchema.get('double_width')\n ? settings.double\n ? (first && i % 4 < 2) || (!first && i % 4 > 1)\n : (first && 0 == i % 2) || (!first && 1 == i % 2)\n : true\n )\n .slice(shelvesNumbers[0], shelvesNumbers[1]),\n // disabled: questionSchema, settings are const\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [first]\n )\n\n const coordinates = useMemo(\n () =>\n questionSchema\n .getIn(['coordinates', 'coordinates'])\n .filter((_shelf, i) =>\n questionSchema.get('double_width')\n ? settings.double\n ? (first && i % 4 < 2) || (!first && i % 4 > 1)\n : (first && 0 == i % 2) || (!first && 1 == i % 2)\n : true\n )\n .slice(shelvesNumbers[0], shelvesNumbers[1]),\n // disabled: questionSchema, settings are const\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [first]\n )\n\n const counts = useMemo(\n () =>\n questionSchema.getIn(['coordinates', 'counts'])\n ? questionSchema\n .getIn(['coordinates', 'counts'])\n .filter((_shelf, i) =>\n questionSchema.get('double_width')\n ? settings.double\n ? (first && i % 4 < 2) || (!first && i % 4 > 1)\n : (first && 0 == i % 2) || (!first && 1 == i % 2)\n : true\n )\n .slice(shelvesNumbers[0], shelvesNumbers[1])\n : questionSchema\n .getIn(['coordinates', 'coordinates'])\n .filter((_shelf, i) =>\n questionSchema.get('double_width')\n ? settings.double\n ? (first && i % 4 < 2) || (!first && i % 4 > 1)\n : (first && 0 == i % 2) || (!first && 1 == i % 2)\n : true\n )\n .slice(shelvesNumbers[0], shelvesNumbers[1])\n .map(c => c.map(_b => 1)),\n // disabled: questionSchema, settings are const\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [first]\n )\n\n const shelvesMask = settings.double\n ? shelvesSchema.reduce(\n (prev, __cur, i) =>\n !(i % 2)\n ? prev.push(\n List(\n shelvesSchema.get(i).concat(shelvesSchema.get(i + 1) || List([]))\n // .concat(shelvesSchema.get(i + 2) || List([]))\n // .concat(shelvesSchema.get(i + 3) || List([]))\n )\n )\n : prev,\n List([])\n )\n : shelvesSchema\n\n // const leftArray = useRef([])\n\n const takenGoodsRef = useRef()\n takenGoodsRef.current = takenGoods\n\n const answersMask = useMemo(() => {\n const mask = []\n shelvesSchema.forEach((shelf, k) => {\n let width = 0\n const perspective =\n settings.perspective != undefined && k == shelvesSchema.size - 1 ? parseFloat(settings.perspective) : 1\n shelf.forEach((product, j) => {\n ;[...Array(product.get(1))].forEach((_item, i) => {\n width = width + answers.get(product.get(0)).get('width') * (perspective != 1 ? perspective : 1)\n putToArray(mask, [k, j, i], width)\n })\n })\n putToArray(mask, [k, -1], width)\n })\n return mask\n // disabled: settings is const\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [shelvesSchema, answers])\n\n const container = useRef()\n const [hovered, setHovered] = useState(null)\n\n const onHover = useCallback(\n img => {\n setHovered(img)\n if ('function' == typeof onHovered) onHovered(img)\n },\n [onHovered]\n )\n\n const renderProducts = useCallback(\n takenGoods => {\n container.current.drawScene(\n settings,\n answers,\n answersMask,\n coordinates,\n counts,\n shelvesSchema,\n takenGoods,\n answersImages,\n onHover\n )\n },\n // disabled: settings, questionSchema, shelvesSchema are consts\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n )\n\n const pixiDiv = useRef()\n // const currentGoodsState = useRef()\n const topShelf = 'pallet' == questionSchema.get('shelf_type') && settings.double && shelvesSchema.size < 3\n\n //for running survey\n const backupPack =\n 'displayFridge' == questionSchema.get('shelf_type') && 'planogram' == questionSchema.get('flow_type')\n\n const containerHeight = settings.customConfig\n ? (topShelf ? settings.topFirst : settings.top) +\n settings.customConfig.reduce(\n (prev, cur, i) =>\n i < Math.trunc(shelvesSchema.size / (settings.double ? 2 : 1))\n ? prev +\n // settings.bottom +\n widthFactor *\n (cur.get('height') +\n ('pegboard' == cur.get('shelf_type')\n ? settings.pegAir\n : questionSchema.get('version') > 0 && 'regular' == questionSchema.get('shelf_type')\n ? 0\n : settings.air) *\n (backupPack ? 0 : 1))\n : prev,\n 0\n ) +\n (settings.double ? settings.bottomAdditionalHeight * widthFactor : 0)\n : Math.trunc(shelvesSchema.size / (settings.double ? 2 : 1)) *\n ((settings.height + (questionSchema.get('version') > 0 ? 0 : settings.air)) * widthFactor + settings.bottom) +\n (topShelf ? settings.topFirst : settings.top) +\n (settings.double ? settings.bottomAdditionalHeight * widthFactor : 0)\n\n if (window['AYTM_shelfImage_' + questionSchema.get('id')])\n window['AYTM_shelfImage_' + questionSchema.get('id')].height = Math.max(\n window['AYTM_shelfImage_' + questionSchema.get('id')].height || 0,\n containerHeight\n )\n\n useEffect(() => {\n container.current = new ShelvesContainer(\n pixiDiv.current,\n width / (questionSchema.get('double_width') && settings.double ? 2 : 1),\n containerHeight,\n onProductClick,\n generateImage,\n topShelf\n )\n\n setTimeout(() => {\n // currentGoodsState.current = []\n // container.current.removeChildren()\n // renderProducts(takenGoodsRef.current)\n //container.current.stopTicker(30000)\n }, 10)\n\n return () => {\n container.current.destroy()\n }\n // disabled: settings, questionSchema, shelvesSchema are consts\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [width, widthFactor])\n\n useEffect(() => {\n container.current.ticker.start()\n\n container.current.removeChildren()\n renderProducts(takenGoodsRef.current)\n }, [cartCount, renderProducts])\n\n return (\n // \n \n \n {\n * {\n .shelf-test-pixi-div canvas {\n width: ${\n questionSchema.get('double_width') && !settings.fridge\n ? width / 2 + 'px'\n : settings.fridge\n ? width + 'px'\n : '100%'\n } !important;\n }\n }` +\n (settings.dots\n ? `.swidget-shelves:before, .swidget-shelves:after {\n background-image: url(` +\n require('./svg/dots.svg') +\n `) !important;\n }\n `\n : ``)\n }}\n />\n }\n \n {!settings.fridge && !topShelf && (\n \n {settings.holders && (\n \n )}\n
\n
\n
\n
\n {settings.holders && (\n \n )}\n
\n )}\n \n {shelvesMask.map((shelf, i) => (\n \n {topShelf && (\n \n )}\n 0 && 'regular' == questionSchema.get('shelf_type')\n ? 0\n : settings.air) *\n (backupPack ? 0 : 1)) *\n widthFactor,\n width:\n (questionSchema.get('double_width') && !settings.fridge\n ? width / 2 + (settings.holders ? 10 : 0)\n : width) -\n settings.walls +\n 1\n }}\n >\n \n {('fridgeTypeTarget' == settings.styleClass || 'counterFridge' == settings.styleClass) && (\n \n )}\n \n \n
\n
\n
\n \n
\n
\n ))}\n
\n {settings.double && (\n \n )}\n
\n {!settings.double && (\n \n )}\n\n {hovered && hovered.src && (\n \n )}\n {!questionSchema.get('hide_price') && (\n \n \n
\n )}\n
\n \n // \n )\n}\n\nexport default memo(\n Shelves,\n (prevProps, nextProps) =>\n prevProps.questionSchema === nextProps.questionSchema &&\n prevProps.fullscreen === nextProps.fullscreen &&\n prevProps.scrolling === nextProps.scrolling &&\n prevProps.mobile === nextProps.mobile &&\n prevProps.widthFactor === nextProps.widthFactor &&\n prevProps.width === nextProps.width &&\n prevProps.emulatedMobile === nextProps.emulatedMobile &&\n prevProps.answers === nextProps.answers &&\n prevProps.config === nextProps.config &&\n prevProps.takenGoods === nextProps.takenGoods &&\n prevProps.cartCount === nextProps.cartCount &&\n prevProps.first === nextProps.first &&\n prevProps.externalHover === nextProps.externalHover &&\n prevProps.answersImages === nextProps.answersImages &&\n prevProps.onProductClick === nextProps.onProductClick\n)\n","import React, { useState, useRef, memo, Fragment } from 'react'\nimport PropTypes from 'prop-types'\nimport { List, Map, OrderedMap } from 'immutable'\n\nimport fridgeStyle from '@aytm/app/swidget/questions/styles/sh/fridge.module.scss'\nimport walmartLeftDoor from '@aytm/app/swidget/questions/images/walmartFridge-left.svg'\nimport walmartRightDoor from '@aytm/app/swidget/questions/images/walmartFridge-right.svg'\nimport Shelves from '@aytm/app/swidget/questions/components/sh/shelves'\n\nimport { SETTINGS } from '@aytm/app/swidget/questions/components/sh/settings'\n\n// import scrollTo from '@aytm/lib/common/scroll'\n\nFridge.propTypes = {\n questionSchema: PropTypes.instanceOf(Map).isRequired,\n fullscreen: PropTypes.bool,\n doors: PropTypes.bool,\n mobile: PropTypes.bool,\n generateImage: PropTypes.bool,\n emulatedMobile: PropTypes.bool,\n externalHover: PropTypes.bool,\n widthFactor: PropTypes.number.isRequired,\n scale: PropTypes.number.isRequired,\n answers: PropTypes.instanceOf(OrderedMap).isRequired,\n width: PropTypes.number.isRequired,\n cartCount: PropTypes.number,\n takenGoods: PropTypes.instanceOf(List).isRequired,\n onProductClick: PropTypes.func,\n onHovered: PropTypes.func,\n answersImages: PropTypes.any,\n margins: PropTypes.object,\n blockWidths: PropTypes.array\n}\n\nexport function Fridge(props) {\n const { questionSchema, mobile, scale, width, blockWidths, margins, externalHover, onHovered, emulatedMobile } = props\n\n const [closedFridge, setClosedFridge] = useState(List([true, true]))\n const settings = {\n ...questionSchema.get('shelf_config').toJS(),\n ...SETTINGS[questionSchema.get('store')][questionSchema.get('shelf_type')],\n emulatedMobile: emulatedMobile\n }\n const alwaysOpen = 'find' == questionSchema.get('mode_type')\n\n const closeTheFridge = function (number) {\n const another = number ? 0 : 1\n setClosedFridge(\n closedFridge\n .set(number, !closedFridge.get(number))\n .set(another, closedFridge.get(number) ? true : closedFridge.get(another))\n )\n }\n\n const fridgeRef = useRef()\n\n // useEffect(() => {\n // if (\n // mobile &&\n // fridgeRef &&\n // fridgeRef.current &&\n // fridgeRef.current.scrollWidth > 1.1 * fridgeRef.current.offsetWidth\n // ) {\n // scrollTo(fridgeRef.current, { left: fridgeRef.current.scrollWidth, duration: 2400 })\n // .then(() => {\n // setTimeout(() => {\n // scrollTo(fridgeRef.current, {\n // left: (fridgeRef.current.scrollWidth - fridgeRef.current.offsetWidth) / 4 + 5,\n // duration: 1200\n // })\n // }, 800)\n // })\n // .catch(() => {})\n // }\n // }, [mobile])\n\n const renderImages = function () {\n return (\n \n \n \n )\n }\n\n return (\n
\n {renderImages()}\n \n closeTheFridge(0)}\n closed={closedFridge.get(0)}\n first={true}\n emulatedMobile={emulatedMobile}\n externalHover={externalHover}\n onHovered={onHovered}\n hidden={questionSchema.get('double_width') && alwaysOpen}\n alwaysOpen={alwaysOpen}\n blockWidths={[0, (questionSchema.get('double_width') ? 1 : 1) * blockWidths[1]]}\n />\n {questionSchema.get('double_width') && (\n closeTheFridge(1)}\n closed={closedFridge.get(1)}\n onHovered={onHovered}\n externalHover={externalHover}\n emulatedMobile={emulatedMobile}\n hidden={questionSchema.get('double_width') && alwaysOpen}\n blockWidths={[0, blockWidths[1]]}\n />\n )}\n
\n
\n )\n}\n\nconst FridgeBox = memo(props => {\n const {\n questionSchema,\n doors,\n mobile,\n widthFactor,\n width,\n fullscreen,\n takenGoods,\n onProductClick,\n answers,\n closeAnotherFridge,\n closed,\n alwaysOpen,\n hidden,\n emulatedMobile,\n first,\n cartCount,\n externalHover,\n generateImage,\n answersImages,\n blockWidths,\n scale,\n onHovered\n } = props\n const settings = {\n ...questionSchema.get('shelf_config').toJS(),\n ...SETTINGS[questionSchema.get('store')][questionSchema.get('shelf_type')]\n }\n\n const fridgeRef = useRef()\n\n const switchDoors = function () {\n if (alwaysOpen || hidden) return\n if ('function' === typeof closeAnotherFridge) closeAnotherFridge()\n }\n\n const openDoors = doors && fridgeRef.current && (!closed || alwaysOpen) && scale <= 1 && !mobile && !hidden\n const closedDoors = doors && closed && !alwaysOpen && !hidden\n return (\n \n {closedDoors && (\n \n
\n
\n )}\n {closedDoors && (\n \n )}\n \n
\n {openDoors && (\n \n \n
\n )}\n {openDoors && (\n
\n \n
\n
\n )}\n \n \n
\n {openDoors && (\n \n \n
\n )}\n {openDoors && (\n
\n )}\n {!settings.discrete && (\n
\n \n \n {questionSchema.get('answers_mask').size > 6 && (\n \n \n \n \n )}\n
\n )}\n \n
\n
\n
\n )\n})\n\nFridgeBox.propTypes = {\n questionSchema: PropTypes.instanceOf(Map).isRequired,\n fullscreen: PropTypes.bool,\n doors: PropTypes.bool,\n mobile: PropTypes.bool,\n widthFactor: PropTypes.number.isRequired,\n cartCount: PropTypes.number,\n answers: PropTypes.instanceOf(OrderedMap).isRequired,\n width: PropTypes.number.isRequired,\n takenGoods: PropTypes.instanceOf(List).isRequired,\n onProductClick: PropTypes.func,\n closed: PropTypes.bool,\n hidden: PropTypes.bool,\n emulatedMobile: PropTypes.bool,\n alwaysOpen: PropTypes.bool,\n scale: PropTypes.number.isRequired,\n externalHover: PropTypes.bool,\n first: PropTypes.bool,\n generateImage: PropTypes.bool,\n margins: PropTypes.object,\n closeAnotherFridge: PropTypes.func,\n onHovered: PropTypes.func,\n answersImages: PropTypes.any,\n blockWidths: PropTypes.array\n}\n\nFridgeBox.displayName = 'FridgeBox'\n\nexport default memo(\n Fridge,\n (prevProps, nextProps) =>\n prevProps.questionSchema === nextProps.questionSchema &&\n prevProps.doors === nextProps.doors &&\n prevProps.mobile === nextProps.mobile &&\n prevProps.externalHover === nextProps.externalHover &&\n prevProps.widthFactor === nextProps.widthFactor &&\n prevProps.width === nextProps.width &&\n prevProps.fullscreen === nextProps.fullscreen &&\n prevProps.takenGoods === nextProps.takenGoods &&\n prevProps.emulatedMobile === nextProps.emulatedMobile &&\n prevProps.scale === nextProps.scale &&\n prevProps.margins === nextProps.margins &&\n prevProps.onHovered === nextProps.onHovered &&\n prevProps.cartCount === nextProps.cartCount &&\n prevProps.onProductClick === nextProps.onProductClick &&\n prevProps.blockWidths === nextProps.blockWidths &&\n prevProps.answers === nextProps.answers\n)\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"ecommerce-module__container___FrHMA\",\"notice\":\"ecommerce-module__notice___q_Yen\",\"ecommerce\":\"ecommerce-module__ecommerce___2YHq2\",\"item\":\"ecommerce-module__item___3nE6H\",\"divided2\":\"ecommerce-module__divided2___9pE4F\",\"divided3\":\"ecommerce-module__divided3___2zxTp\",\"divided4\":\"ecommerce-module__divided4___3doon\",\"divided5\":\"ecommerce-module__divided5___9t3Iy\",\"active\":\"ecommerce-module__active___3bIKe\",\"imageContainer\":\"ecommerce-module__imageContainer___2bvzY\",\"header\":\"ecommerce-module__header___1WY9F\",\"text\":\"ecommerce-module__text___HCQaR\",\"price\":\"ecommerce-module__price___nfXYs\",\"discountedPrice\":\"ecommerce-module__discountedPrice___2QnO8\",\"mobile\":\"ecommerce-module__mobile___LCAU7\"};","import React, { memo, Fragment } from 'react'\nimport PropTypes from 'prop-types'\nimport { Map, OrderedMap } from 'immutable'\nimport { formatPrice, getTotal, getSize } from '@aytm/app/swidget/questions/components/sh/functions'\n\nimport ecommerceStyle from '@aytm/app/swidget/questions/styles/sh/ecommerce.module.scss'\nimport popupStyle from '@aytm/app/swidget/questions/styles/sh/popup.module.scss'\nimport Notice from '@aytm/app/swidget/questions/components/common/notice'\nimport { asBoolean } from '@aytm/lib/immutable/ImmutableModel'\nimport Button from '@aytm/lib/rfd-ui/components/basic/button'\nimport { stopEvent } from '@aytm/lib/common/func'\n\nEcommerce.propTypes = {\n questionSchema: PropTypes.instanceOf(Map).isRequired,\n showErrors: PropTypes.bool,\n mobile: PropTypes.bool,\n answer: PropTypes.instanceOf(Map).isRequired,\n locale: PropTypes.instanceOf(Map).isRequired,\n answers: PropTypes.instanceOf(OrderedMap).isRequired,\n onAction: PropTypes.func,\n onProductClick: PropTypes.func\n}\n\nexport function Ecommerce(props) {\n const { showErrors, locale, answers, onProductClick, questionSchema, answer, onAction, mobile } = props\n const findability =\n 'find' == questionSchema.get('mode_type') ||\n (1 == questionSchema.get('max_cart_size') && !questionSchema.get('shopping_cart'))\n const maxQty = findability ? null : questionSchema.get('max_qty_per_product')\n const maxCartSize = findability ? null : questionSchema.get('max_cart_size')\n const maxMoney = findability ? null : questionSchema.get('max_money_spent')\n const productsPerRow = questionSchema.get('products_per_row') || 3\n\n const onButtonClick = (event, item, disabled) => {\n stopEvent(event)\n if (!disabled) onAction(item, 1)\n }\n\n return (\n
\n {findability ? (\n ''\n ) : (\n \n )}\n
\n {answers\n .filter(answer => !answer.get('na'))\n .toArray()\n .map((item, i) => {\n const total = getTotal(answer)\n const itemPrice = item.get('discounted_price') || item.get('price')\n const answerQty = answer.getIn(['answers', item.get('id'), 'count'])\n const disabled =\n (asBoolean(maxQty) && maxQty <= answerQty) ||\n (asBoolean(maxCartSize) && maxCartSize <= getSize(answer)) ||\n (asBoolean(maxMoney) && maxMoney < total + itemPrice)\n\n return (\n onProductClick(item) : null}\n >\n
\n\n {/*
*/}\n {item.get('available') && (\n \n \n {item.get('price') != item.get('discounted_price') &&\n item.get('discounted_price') &&\n !questionSchema.get('hide_price') ? (\n \n ) : (\n ''\n )}\n {!questionSchema.get('hide_price') && (\n \n )}\n onButtonClick(event, item, disabled)}\n className={`${popupStyle.button} ${disabled ? popupStyle.disbledButton : ''}`}\n data-testid=\"SW-SH-Item-AddButton\"\n disabled={disabled}\n />\n \n )}\n
\n )\n })}\n
\n
\n )\n}\n\nexport default memo(\n Ecommerce,\n (prevProps, nextProps) =>\n prevProps.showErrors === nextProps.showErrors &&\n prevProps.locale === nextProps.locale &&\n prevProps.answers === nextProps.answers &&\n prevProps.answer === nextProps.answer &&\n prevProps.mobile === nextProps.mobile &&\n prevProps.onProductClick === nextProps.onProductClick &&\n prevProps.questionSchema === nextProps.questionSchema\n)\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"cart-module__header___gSv_l swidget-global-span\",\"text\":\"cart-module__text___3LwcK swidget-global-span\",\"cart\":\"cart-module__cart___KkWNU\",\"button\":\"cart-module__button___vsj_B\",\"empty\":\"cart-module__empty___e52aN\",\"combo\":\"cart-module__combo___1l-d1\",\"good\":\"cart-module__good___1gnN2\",\"photo\":\"cart-module__photo___1P_gp\",\"description\":\"cart-module__description___28xA8\",\"flexContainer\":\"cart-module__flexContainer___1X_ye\",\"spans\":\"cart-module__spans___3LTc5\",\"price\":\"cart-module__price___XmjBX\",\"small\":\"cart-module__small___2KlBV\",\"smallCrossed\":\"cart-module__smallCrossed___tWif8\",\"line\":\"cart-module__line___1tReW\",\"fullScreen\":\"cart-module__fullScreen___1qEBJ\",\"buttons\":\"cart-module__buttons___1JA-n\",\"mobile\":\"cart-module__mobile___1D-hs\",\"fullHeight\":\"cart-module__fullHeight___3gLFS\"};","import React, { Fragment, memo } from 'react'\nimport PropTypes from 'prop-types'\nimport { Map } from 'immutable'\nimport { formatPrice, getSize, getTotal, QTY_BIG_SELECT } from '@aytm/app/swidget/questions/components/sh/functions'\n\nimport cartStyle from '@aytm/app/swidget/questions/styles/sh/cart.module.scss'\nimport Select from '@aytm/lib/rfd-ui/components/basic/select'\nimport EmptyImage from '@aytm/app/swidget/questions/images/sh/empty.svg'\n\nCart.propTypes = {\n questionSchema: PropTypes.instanceOf(Map).isRequired,\n answer: PropTypes.instanceOf(Map).isRequired,\n fullHeight: PropTypes.bool,\n fullScreen: PropTypes.bool,\n onProductClick: PropTypes.func,\n onQtyChange: PropTypes.func,\n onDelete: PropTypes.func,\n locale: PropTypes.instanceOf(Map).isRequired\n}\n\nexport function Cart(props) {\n const { questionSchema, answer, fullHeight, onProductClick, onQtyChange, onDelete, locale, fullScreen } = props\n const answers = answer.get('answers')\n const maxQty = questionSchema.get('max_qty_per_product')\n const maxCartSize = questionSchema.get('max_cart_size')\n const maxMoney = questionSchema.get('max_money_spent')\n\n return (\n \n {answers.filter(answer => answer.get('count') > 0).size ? (\n answers\n .filter(answer => answer.get('count') > 0)\n .toArray()\n .map((good, i) => {\n const item = good.get('item')\n const itemPrice = item.get('discounted_price') || item.get('price')\n const total = getTotal(answer, item)\n const size = getSize(answer, item)\n\n return (\n \n
\n
\n onProductClick(item)}\n />\n
\n
\n
\n
\n \n {/**/}\n
\n
\n
\n \n v.get('value') == good.get('count') ||\n ((!maxQty || v.get('value') <= maxQty) &&\n (!maxCartSize || v.get('value') + size <= maxCartSize) &&\n (!maxMoney || v.get('value') * itemPrice + total <= maxMoney))\n )}\n width={80}\n onSelect={val => onQtyChange(val, item)}\n showSelected={true}\n value={good.get('count')}\n />\n onDelete(item)}\n className={cartStyle.button}\n >\n {locale.getIn(['sh', 'deleteFromCart'])}\n
\n
\n
\n {!questionSchema.get('hide_price') && (\n
\n \n {item.get('discounted_price') ? (\n 1 ? ' ' + locale.getIn(['sh', 'each']) : '')\n }}\n />\n ) : null}\n {good.get('count') > 1 && (\n \n )}\n
\n )}\n
\n \n )\n })\n ) : (\n
\n \n
{locale.getIn(['sh', 'emptyCard'])}
\n
\n )}\n
\n )\n}\n\nexport default memo(\n Cart,\n (prevProps, nextProps) =>\n prevProps.questionSchema === nextProps.questionSchema &&\n prevProps.answer === nextProps.answer &&\n prevProps.fullHeight === nextProps.full &&\n prevProps.onProductClick === nextProps.onProcessed &&\n prevProps.onQtyChange === nextProps.onQtyChange &&\n prevProps.onDelete === nextProps.onDelete &&\n prevProps.locale === nextProps.locale\n)\n","/* eslint-disable max-lines */ // BOOOOO!!!\nimport fetch from 'isomorphic-fetch'\nimport React, { Component, Fragment } from 'react'\nimport { fromJS, List, Map, OrderedMap } from 'immutable'\nimport autobind from 'autobind-decorator'\nimport cookie from 'react-cookies'\n\nimport Question from '@aytm/app/swidget/questions/components/_base'\nimport locale from '@aytm/app/swidget/questions/locale'\n\nimport LightBox from '@aytm/lib/rfd-ui/components/basic/light-box'\n\nimport drag, { processTouchEvent, resize } from '@aytm/lib/drag'\n\n// styles\nimport style from '@aytm/app/swidget/questions/styles/sh.module.scss'\nimport shelfStyle from '@aytm/app/swidget/questions/styles/sh/shelf.module.scss'\nimport commonStyle from '@aytm/app/swidget/questions/styles/common.module.scss'\n\nimport ProductPopup from '@aytm/app/swidget/questions/components/sh/productPopup'\nimport EcommercePopup from '@aytm/app/swidget/questions/components/sh/ecommercePopup'\nimport Fridge from '@aytm/app/swidget/questions/components/sh/fridge'\nimport Shelves from '@aytm/app/swidget/questions/components/sh/shelves'\nimport Ecommerce from '@aytm/app/swidget/questions/components/sh/ecommerce'\nimport Cart from '@aytm/app/swidget/questions/components/sh/cart'\n\nimport { getFromArray, putToArray } from '@aytm/lib/common/array'\nimport scrollTo from '@aytm/lib/common/scroll'\n\nimport { SETTINGS } from '@aytm/app/swidget/questions/components/sh/settings'\nimport { stopEvent } from '@aytm/lib/common/func'\nimport { getImageAssetPath, IMAGE_ASSET_PATH_FILTER_RESIZE_TO_LIMIT } from '@aytm/lib/common/assets'\nimport CheckBox from '@aytm/lib/rfd-ui/components/basic/check-box'\n\nimport {\n getTotal,\n getSize,\n formatPrice,\n getMaxProductCount,\n getMaxPrice\n} from '@aytm/app/swidget/questions/components/sh/functions'\nimport PropTypes from 'prop-types'\nimport Button from '@aytm/lib/rfd-ui/components/basic/button'\n\nconst getDefaultImage = answer =>\n answer.get('gallery') != undefined\n ? (() => {\n const i = answer.get('gallery').findIndex(image => image.getIn(['product', 'default']))\n if (i < 0) return null\n return answer.getIn(['gallery', i])?.set('index', i) || null\n })()\n : null\n// const isStatPage = document.querySelector('#stat-title') || document.querySelector('.print-controls')\n\nconst MAX_WIDGET_WIDTH = 1200\n\nexport class SHTheme extends Component {\n static propTypes = {\n accentColorRGB: PropTypes.object,\n accentColor: PropTypes.string,\n columns: PropTypes.number\n }\n\n shouldComponentUpdate(nextProps, _nextState) {\n return nextProps.accentColor !== this.currentAccentColor || nextProps.columns !== this.columns\n }\n\n render() {\n const accentColor = this.props.accentColor\n const columns = this.props.columns\n\n this.currentAccentColor = accentColor\n this.columns = columns\n\n return (\n \n )\n }\n v\n}\n\nexport default class Sh extends Question {\n constructor(props) {\n super(props)\n this.locale = locale(props.locale).get('questions')\n\n const { questionSchema, theme, innerWidth } = this.props\n\n this.takenGoods = []\n this.preTakenGoods = List()\n this.answersImages = {}\n this.touchMoveSubscription = null\n this.scrollSubscription = null\n this.dragSubscription = null\n this.isIos = document.createElement('a').relList.supports('ar')\n\n this.answers = new OrderedMap(\n questionSchema.get('answers').map(v => [v.get('id'), v.set('currentPicture', getDefaultImage(v))])\n )\n\n this.shelvesSettings = {\n ...SETTINGS[questionSchema.get('store')][questionSchema.get('shelf_type')],\n ...questionSchema.get('shelf_config').toJS()\n }\n\n this.width = this.shelvesSettings.fridge ? 400 : 600\n\n if (questionSchema.get('store') != 'ecommerce') {\n this.realWidth = this.shelvesSettings.width\n this.widthFactor = questionSchema.getIn(['coordinates', 'widthFactor'])\n ? questionSchema.getIn(['coordinates', 'widthFactor'])\n : this.width / (this.shelvesSettings.width || 80)\n this.calculateSizes()\n }\n\n this.config =\n questionSchema.get('blocks_config') && questionSchema.get('blocks_config').size\n ? questionSchema.get('blocks_config')\n : List([\n Map({\n shelves: questionSchema.get('shelves_config'),\n width: this.shelvesSettings.width\n })\n ])\n\n this.shelfWidth = this.config.reduce((prev, cur) => prev + cur.get('width'), 0)\n\n this.widgetWidth = Math.max(props.width, questionSchema.getIn(['coordinates', 'imageWidth']))\n this.widgetHeight = questionSchema.getIn(['coordinates', 'imageHeight'])\n this.verticalScrolling = 'smooth' == this.shelvesSettings.expand //'mobile' == props.theme || questionSchema.get('fullscreen') // questionSchema.getIn(['coordinates', 'imageHeight']) >= window.innerHeight\n\n this.renderScrolling =\n this.widgetWidth >= innerWidth &&\n questionSchema.get('fullscreen') &&\n props.theme != 'mobile' &&\n 'smooth' == this.shelvesSettings.expand\n this.horizontalScrolling = !this.renderScrolling && 'smooth' == this.shelvesSettings.expand\n\n this.maxWidth = questionSchema.get('fullscreen') && !this.generateImage ? window.innerWidth : MAX_WIDGET_WIDTH\n\n this.generateImage = Boolean(window.preview_token_path)\n // this.maxWidth = this.generateImage ? 10000 : questionSchema.get('fullscreen') ? innerWidth : MAX_WIDGET_WIDTH\n\n if (this.generateImage && !window['AYTM_shelfImage_' + questionSchema.get('id')]?.src) {\n if (this.widgetWidth > this.maxWidth) {\n window['AYTM_shelfScale_' + questionSchema.get('id')] = this.widgetWidth / this.maxWidth\n window['AYTM_shelfMargin_' + questionSchema.get('id')] = (this.widgetWidth - this.maxWidth) / 2\n }\n window['AYTM_shelfImage_' + questionSchema.get('id')] = {\n width: this.widgetWidth / window['AYTM_shelfScale_' + questionSchema.get('id')]\n }\n }\n\n this.animateLayers =\n ((this.widgetWidth >= innerWidth && questionSchema.get('fullscreen')) ||\n (!questionSchema.get('fullscreen') && this.widgetWidth > MAX_WIDGET_WIDTH)) &&\n // props.theme != 'mobile' &&\n 'smooth' == this.shelvesSettings.expand\n\n if (theme != 'mobile')\n this.props.onWidthChanged(questionSchema.get('fullscreen') ? 600 : Math.min(this.maxWidth, this.widgetWidth))\n this.scrollPercent = 0\n\n this.state = {\n ...this.state,\n selectedItem: null,\n selectedGood: null,\n selectedCount: 1,\n cartCount: 0,\n cartTotal: 0,\n na: false,\n fullError: false,\n showCart: false,\n valid: false,\n x: 0,\n y: 0,\n scale: 1,\n goods: this.preTakenGoods,\n windowWidth: innerWidth,\n closeFullscreen: false,\n dontWantToApp: false,\n hover: false\n }\n\n this.i = 0\n this.vx = 0\n this.vy = 0\n\n this.findability =\n 'find' == questionSchema.get('mode_type') ||\n (1 == questionSchema.get('max_cart_size') && !questionSchema.get('shopping_cart'))\n\n this.cleanAnswer = Map({\n clicked: 0,\n left:\n !(\n this.widgetWidth >= window.innerWidth &&\n questionSchema.get('fullscreen') &&\n questionSchema.get('force_scroll')\n ) || this.findability,\n right:\n !(\n this.widgetWidth >= window.innerWidth &&\n questionSchema.get('fullscreen') &&\n questionSchema.get('force_scroll')\n ) || this.findability,\n answers: this.answers.map(answer =>\n OrderedMap({ id: answer.get('id'), item: answer, count: 0, na: answer.get('na') })\n )\n })\n this.handScale =\n questionSchema.get('zoom') &&\n 'mobile' != props.theme &&\n questionSchema.get('store') != 'ecommerce' &&\n !this.generateImage\n this.backupAnswer = this.cleanAnswer\n this.initAnswer(this.cleanAnswer)\n this.escFunction = event => {\n if ('Escape' === event.key) {\n stopEvent(event)\n this.closeItemPopup()\n }\n }\n }\n\n componentWillUnmount() {\n super.componentWillUnmount()\n document.removeEventListener('keydown', this.escFunction, false)\n if (this.interval) clearInterval(this.interval)\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n super.UNSAFE_componentWillReceiveProps(nextProps)\n if (nextProps.width != this.props.width) {\n // this.widgetWidth = Math.max(nextProps.width, nextProps.questionSchema.getIn(['coordinates', 'imageWidth']))\n this.maxWidth = this.generateImage\n ? 10000\n : nextProps.questionSchema.get('fullscreen')\n ? nextProps.innerWidth\n : MAX_WIDGET_WIDTH\n this.resizeToScreen()\n this.updateScale(1)\n }\n }\n\n componentDidMount() {\n super.componentDidMount()\n const { questionSchema } = this.props\n this.resizeToScreen()\n this.onScroll()\n // setTimeout(() => {\n // if (\n // 'mobile' == self.props.theme &&\n // self.refShelvesRef &&\n // self.refShelvesRef &&\n // self.refShelvesRef.scrollWidth > 1.1 * self.refShelvesRef.offsetWidth\n // ) {\n // scrollTo(self.refShelvesRef, { left: self.refShelvesRef.scrollWidth, duration: 2400 })\n // .then(() => {\n // setTimeout(() => {\n // scrollTo(self.refShelvesRef, {\n // left: (self.refShelvesRef.scrollWidth - self.refShelvesRef.offsetWidth) / 3 - 10,\n // duration: 1200\n // })\n // }, 800)\n // })\n // .catch(() => {})\n // }\n // }, 2000)\n if (questionSchema.get('fullscreen')) window.addEventListener('resize', this.updateFullscreen)\n if (this.handScale) window.addEventListener('scroll', this.fixScaleButtons)\n }\n\n @autobind\n resizeToScreen() {\n const { theme, innerWidth, inApp } = this.props\n const goalScale = this.widgetWidth > innerWidth ? Math.max(0.5, innerWidth / this.widgetWidth) : 1\n if ('mobile' == theme && !inApp)\n setTimeout(() => {\n const resize = newScale => {\n if (newScale > goalScale) {\n this.updateScale(newScale)\n setTimeout(() => resize(newScale - 0.02 < goalScale ? goalScale : newScale - 0.02), 50)\n } else this.updateScale(goalScale)\n }\n setTimeout(() => resize(1), 500)\n }, 1000)\n if ('mobile' == theme && inApp) this.updateScale(goalScale)\n }\n\n @autobind\n fixScaleButtons() {\n if (this.refScaleButtons && this.refShelvesRef) {\n const rectShelves = this.refShelvesRef.getBoundingClientRect()\n const rectButtons = this.refScaleButtons.getBoundingClientRect()\n if (rectShelves.y < 20) {\n this.refScaleButtons.style.position = 'fixed'\n this.refScaleButtons.style.left = rectButtons.x + 'px'\n this.refScaleButtons.style.right = 'auto'\n this.refScaleButtons.style.top = '300px'\n }\n // } else {\n // this.refScaleButtons.style.position = 'absolute'\n // this.refScaleButtons.style.left = 'auto'\n // this.refScaleButtons.style.right = '-60px'\n // this.refScaleButtons.style.top = '320px'\n // }\n }\n }\n\n @autobind\n updateFullscreen() {\n this.setState({ windowWidth: window.innerWidth })\n }\n\n waitForSmallImages(props) {\n const self = this\n const { questionSchema, theme } = this.props\n const paths = props.questionSchema.get('answers').reduce((prev, answer) => {\n const maxSize = Math.max(answer.get('width'), answer.get('height')) * 10\n const imageSize = maxSize > 150 ? (maxSize > 300 ? 600 : 300) : 300\n const withPicture =\n answer.get('image') && answer.getIn(['image', 'original_path'])\n ? prev.push({\n url: getImageAssetPath({\n filter: IMAGE_ASSET_PATH_FILTER_RESIZE_TO_LIMIT,\n width: imageSize,\n height: imageSize,\n path: answer.getIn(['image', 'original_path']),\n backgroundColor: 'transparent',\n animated: true,\n trim: true,\n json: true\n }),\n answerId: answer.get('id')\n })\n : prev\n const topImage =\n answer.get('gallery') && answer.get('gallery').find(image => 'single' == image.getIn(['product', 'image_type']))\n return topImage\n ? withPicture.push({\n url: getImageAssetPath({\n filter: IMAGE_ASSET_PATH_FILTER_RESIZE_TO_LIMIT,\n width: 600,\n height: 600,\n path: topImage.get('original_path'),\n backgroundColor: 'transparent',\n animated: true,\n trim: true,\n json: true\n }),\n answerId: answer.get('id') + '_top'\n })\n : withPicture\n }, List())\n\n Promise.all(\n paths.map(\n path =>\n new Promise(resolve => {\n if (!path.url) resolve(path)\n fetch(path.url, {\n method: 'GET',\n mode: window.aytmNoCorsSecret ? 'no-cors' : 'cors'\n })\n .then(resp => resp.json())\n .then(resp => {\n if (resp.url) {\n const img = new Image()\n img.crossOrigin = ''\n img.src = resp.url\n img.onload = () => {\n self.answersImages[path.answerId] = img\n resolve(path)\n }\n img.onerror = () => {\n resolve(path)\n }\n }\n })\n .catch(() => resolve(path))\n })\n )\n ).then(() => {\n if (theme != 'mobile')\n this.props.onWidthChanged(\n questionSchema.get('fullscreen') && theme != 'mobile' && !this.generateImage\n ? 600\n : Math.min(this.maxWidth, this.widgetWidth)\n )\n setTimeout(() => {\n this.setState({ smallImagesReady: true })\n if (\n self.refShelvesRef &&\n questionSchema.get('fullscreen') &&\n questionSchema.get('scroll_start') &&\n questionSchema.get('scroll_start') !== 'left' &&\n self.widgetWidth > self.maxWidth\n ) {\n scrollTo(self.refShelvesRef, {\n left: ((position, width) => {\n if (position !== 'random') return width / ('right' === position ? 1 : 2)\n const x = Math.random()\n if (questionSchema.get('fullscreen'))\n self.updateTimeline({\n type: 'scrolling_start',\n target: x > 0.33 ? (x < 0.66 ? 'center' : 'right') : 'left'\n })\n return width * x\n })(questionSchema.get('scroll_start'), self.refShelvesRef.scrollWidth - window.innerWidth),\n duration: 1\n })\n if (self.state.answer) self.updateAnswer(self.state.answer.update('left', () => false))\n }\n\n if ('function' === typeof props.afterImage) props.afterImage()\n this.animateScroll()\n }, 10)\n })\n }\n\n @autobind\n scrollToLeft() {\n if (this.refShelvesRef)\n scrollTo(this.refShelvesRef, {\n left: this.refShelvesRef?.scrollLeft - this.refShelvesRef?.scrollWidth / 10,\n duration: 500\n }).catch(() => {})\n }\n\n @autobind\n scrollToRight() {\n if (this.refShelvesRef)\n scrollTo(this.refShelvesRef, {\n left: this.refShelvesRef?.scrollLeft + this.refShelvesRef?.scrollWidth / 10,\n duration: 500\n }).catch(() => {})\n }\n\n animateScroll() {\n const { theme } = this.props\n const self = this\n if (this.refShelvesRef && this.refScaleButtons) {\n const rectShelves = this.refShelvesRef.getBoundingClientRect()\n this.refScaleButtons.style.left = Math.min(rectShelves.x + rectShelves.width + 100, innerWidth - 30) + 'px'\n this.refScaleButtons.style.right = 'auto'\n this.refScaleButtons.style.display = 'inline-block'\n }\n if (this.refShelvesRef && (this.renderScrolling || 'mobile' == theme)) {\n const x =\n 'mobile' == theme\n ? self.refShelvesRef.scrollWidth - window.innerWidth\n : (self.refShelvesRef.scrollWidth - window.innerWidth) / 2\n\n if (window.innerHeight - 162 < this.refShelvesRef.offsetHeight && this.refLinks) {\n this.refLinks.style.position = 'fixed'\n this.refFooter.style.position = 'fixed'\n // this.refLightBox.refLightBoxBackdrop.style.height =\n // this.refLightBox.refLightBoxBackdrop.clientHeight - 90 + 'px'\n }\n setTimeout(() => {\n if ('mobile' == theme && this.refShelvesRef && this.refShelvesRef.scrollWidth - innerWidth < 30)\n this.stopScrolling = true\n if (self.refShelvesRef && !this.stopScrolling)\n scrollTo(self.refShelvesRef, { left: x, duration: 20 * x })\n .then(() => {\n setTimeout(() => {\n if (self.refShelvesRef && !this.stopScrolling)\n scrollTo(self.refShelvesRef, {\n left: x / 2,\n duration: 20 * x\n })\n .then(() => {\n setTimeout(() => {\n if (self.refShelvesRef && !this.stopScrolling)\n scrollTo(self.refShelvesRef, { left: x, duration: 20 * x }).catch(() => {})\n }, 200)\n })\n .catch(() => {})\n }, 400)\n })\n .catch(() => {})\n }, 4000)\n }\n\n // setTimeout(() => {\n // this.refShelvesRef.scroll({ left: x - 100, behavior: 'smooth' })\n // setTimeout(() => {\n // this.refShelvesRef.scroll({ left: x - 20, behavior: 'smooth' })\n // }, 500)\n // }, 1000)\n }\n\n validate(answerModel) {\n const { questionSchema } = this.props\n const total = getTotal(answerModel)\n const size = getSize(answerModel)\n const valid =\n (!questionSchema.get('na') ? answerModel.get('clicked') : size > 0) &&\n (!questionSchema.get('max_qty_per_product') ||\n this.findability ||\n questionSchema.get('max_qty_per_product') >=\n answerModel.get('answers').reduce((max, c) => Math.max(max, c.get('count')), 0)) &&\n (!questionSchema.get('max_money_spent') || total <= questionSchema.get('max_money_spent') || this.findability) &&\n (!questionSchema.get('max_cart_size') || size <= questionSchema.get('max_cart_size') || this.findability) &&\n ((answerModel.get('left') && answerModel.get('right')) || !questionSchema.get('force_scroll'))\n\n this.setState({ valid: valid })\n\n return Map({\n valid: valid\n })\n }\n\n backendResponse(answerModel) {\n return answerModel.get('answers')\n ? answerModel\n .get('answers')\n .filter(item => item.get('count') > 0)\n .map(item => {\n return { id: item.get('id'), v: item.get('count') }\n })\n .toArray()\n : []\n }\n\n calculateSizes() {\n const { questionSchema, theme } = this.props\n this.answers = this.answers.withMutations(answers =>\n answers.forEach(answer =>\n answers\n .setIn(\n [answer.get('id'), 'height'],\n Math.round(this.widthFactor * answer.get('height') * this.shelvesSettings.widthCoef)\n )\n .setIn(\n [answer.get('id'), 'width'],\n Math.round(this.widthFactor * answer.get('width') * this.shelvesSettings.widthCoef)\n )\n .setIn(\n [answer.get('id'), 'offset_y'],\n Math.round(this.widthFactor * answer.get('offset_y') * this.shelvesSettings.widthCoef)\n )\n )\n )\n\n this.shelvesWidth = this.shelvesSettings.fridge\n ? (470 + this.shelvesSettings.walls * this.widthFactor) * (questionSchema.get('double_width') ? 2 : 1)\n : Math.round(this.widthFactor * this.realWidth)\n if (this.realWidth != this.shelvesSettings.width && theme != 'mobile') {\n this.props.onWidthChanged(Math.min(this.maxWidth, this.shelvesWidth))\n }\n\n const stock = questionSchema.get('stock_type')\n const prob = 'full' === stock || 'no' == stock || this.generateImage ? 0 : 'typical' == stock ? 20 : 40\n if (prob)\n questionSchema.get('answers_mask').forEach((shelf, shelfIndex) => {\n shelf.forEach((items, itemsIndex) => {\n let taken = 0\n if (items.get(1) > 1)\n for (let i = 0; i < items.get(1) - 1; i++) {\n if (Math.random() * 100 < (this.shelvesSettings.double ? 5 * prob : prob)) {\n putToArray(this.takenGoods, [shelfIndex, itemsIndex, i, 0], true)\n if (Math.random() * 100 < (this.shelvesSettings.double ? 2 * prob : prob)) {\n putToArray(this.takenGoods, [shelfIndex, itemsIndex, i, 1], true)\n }\n if (Math.random() * 100 < 2 * prob && this.shelvesSettings.double && items.get(1) > taken + 1) {\n taken += 1\n putToArray(this.takenGoods, [shelfIndex, itemsIndex, i, 2], true)\n }\n }\n if (this.shelvesSettings.double || 'counterFridge' == this.shelvesSettings.styleClass) {\n let taken = 0\n for (let i = 0; i < items.get(1); i++) {\n if (getFromArray(this.takenGoods, [shelfIndex, itemsIndex, i, 0]) && Math.random() * 100 < 3 * prob) {\n putToArray(this.takenGoods, [shelfIndex, itemsIndex, i, this.shelvesSettings.deep], true)\n if (\n getFromArray(this.takenGoods, [shelfIndex, itemsIndex, i, this.shelvesSettings.deep]) &&\n getFromArray(this.takenGoods, [shelfIndex, itemsIndex, i, 1]) &&\n Math.random() * 100 < 2 * prob\n ) {\n putToArray(this.takenGoods, [shelfIndex, itemsIndex, i, this.shelvesSettings.deep + 1], true)\n if (\n getFromArray(this.takenGoods, [shelfIndex, itemsIndex, i, this.shelvesSettings.deep + 1]) &&\n getFromArray(this.takenGoods, [shelfIndex, itemsIndex, i, 2]) &&\n Math.random() * 100 < 2 * prob &&\n taken < items.get(1) - 2\n ) {\n putToArray(this.takenGoods, [shelfIndex, itemsIndex, i, this.shelvesSettings.deep + 2], true)\n taken += 1\n }\n }\n }\n }\n }\n }\n })\n })\n this.preTakenGoods = fromJS(this.takenGoods)\n }\n\n @autobind\n onProductClick(item, number, callback, coords) {\n if (number) this.setState({ selectedGood: number })\n this.showItemPopup(item, coords)\n this.callback = callback\n }\n\n @autobind\n onHover(hovered) {\n this.setState({ hover: hovered })\n }\n\n @autobind\n showItemPopup(item, coords) {\n // const { theme, preview } = this.props\n const { answer } = this.state\n if (this.dragging) {\n this.dragging = false\n return\n }\n this.setState({ selectedItem: item })\n\n const timeline = this.updateTimeline({\n type: 'open_popup',\n ref: item.get('id'),\n target: coords\n })\n const newAnswer = answer.update('clicked', value => value + 1)\n this.updateAnswer(newAnswer, timeline)\n this.stopScrolling = true\n\n this.scrollToPosition()\n document.addEventListener('keydown', this.escFunction, false)\n }\n\n @autobind\n onPictureClick(number) {\n const { selectedItem } = this.state\n this.updateTimeline({\n type: 'product_picture_click',\n ref: selectedItem.get('id'),\n target: number ? number.toString() : ''\n })\n }\n\n @autobind\n animateCount(newAnswer) {\n const { answer, cartCount } = this.state\n if (!newAnswer) return\n const newCount = (newAnswer || answer).get('answers').reduce((prev, cur) => cur.get('count') + prev, 0)\n const newTotal = getTotal(newAnswer || answer)\n // this.setState({\n // countChanged: newCount != cartCount\n // })\n\n if (newCount != cartCount) {\n setTimeout(() => {\n this.setState({ cartCount: newCount, cartTotal: newTotal })\n }, 50)\n // setTimeout(() => {\n // this.setState({ countChanged: false })\n // }, 600)\n }\n }\n\n @autobind\n closeItemPopup(newAnswer) {\n const { selectedItem } = this.state\n document.removeEventListener('keydown', this.escFunction, false)\n\n if (selectedItem) {\n this.updateTimeline({\n type: 'close_popup',\n ref: selectedItem.get('id')\n })\n\n this.setState({\n selectedItem: null,\n selectedCount: 1,\n selectedGood: null\n })\n this.animateCount(newAnswer)\n }\n }\n\n @autobind\n addProductToCart(item, qty) {\n this.setState({ selectedItem: item }, () => this.addToCart(qty))\n }\n\n @autobind\n addToCart(qty) {\n const { selectedItem, answer, selectedGood } = this.state\n const { questionSchema, goNext } = this.props\n\n if (questionSchema.get('store') != 'ecommerce' && selectedGood) {\n putToArray(this.takenGoods, selectedGood, true)\n this.setState({ goods: fromJS(this.takenGoods) })\n }\n const timeline = this.updateTimeline({\n type: 'add_to_cart',\n ref: selectedItem.get('id'),\n target: qty.toString()\n })\n const newAnswer = answer.updateIn(['answers', selectedItem.get('id'), 'count'], value => value + qty || 0)\n this.updateAnswer(newAnswer, timeline)\n this.closeItemPopup(newAnswer)\n if ('function' == typeof this.callback) this.callback()\n if ('function' == typeof goNext && this.findability)\n setTimeout(() => {\n goNext()\n }, 200)\n }\n\n @autobind\n clearCart() {\n const { answer } = this.state\n const timeline = this.updateTimeline({\n type: 'clear_cart'\n })\n const newAnswer = answer.update('answers', value => value.map(a => a.set('count', 0)))\n this.updateAnswer(newAnswer, timeline)\n this.setState({ fullError: false, goods: this.preTakenGoods })\n this.takenGoods = this.preTakenGoods.toJS()\n this.animateCount(newAnswer)\n }\n\n @autobind\n selectQTY(qty, item) {\n const { selectedItem } = this.state\n const timeline = this.updateTimeline({\n type: 'edit_in_cart',\n ref: item ? item.get('id') : selectedItem.get('id'),\n target: qty.get('value').toString()\n })\n if (item) {\n const { answer } = this.state\n const newAnswer = answer.setIn(['answers', item.get('id'), 'count'], qty.get('value'))\n this.updateAnswer(newAnswer, timeline)\n this.animateCount(newAnswer)\n } else this.setState({ selectedCount: qty.get('value') })\n }\n\n @autobind\n deleteFromCart(item) {\n const { answer } = this.state\n const timeline = this.updateTimeline({\n type: 'delete_from_cart',\n ref: item.get('id')\n })\n const newAnswer = answer.setIn(['answers', item.get('id'), 'count'], 0)\n this.updateAnswer(newAnswer, timeline)\n this.animateCount(newAnswer)\n }\n\n @autobind\n changeNA() {\n const { na, answer } = this.state\n const timeline = this.updateTimeline({\n type: na ? 'no_na' : 'na'\n })\n\n if (na) {\n this.updateAnswer(this.backupAnswer, timeline)\n this.animateCount(this.backupAnswer)\n this.backupAnswer = this.cleanAnswer\n } else {\n const clickedCleanAnswer = this.cleanAnswer.set('clicked', 1).set('left', true).set('right', true)\n const naAnswer = this.answers.find(answer => answer.get('na'))\n this.backupAnswer = answer\n if (naAnswer) this.updateAnswer(clickedCleanAnswer.setIn(['answers', naAnswer.get('id'), 'count'], 1))\n }\n this.setState({ fullError: false, goods: this.preTakenGoods })\n this.takenGoods = this.preTakenGoods.toJS()\n this.setState({ na: !na, cartCount: 0 })\n }\n\n @autobind\n renderNALink() {\n const { showCart, na } = this.state\n const { questionSchema, theme, preview } = this.props\n\n const naAnswer = questionSchema.get('answers').find(a => a.get('na'))\n const renderLinks =\n (questionSchema.get('fullscreen') && !this.generateImage && !(preview && 'mobile' == theme)) || 'mobile' == theme\n\n return (\n \n {(!showCart || renderLinks) && (\n
\n \n
\n )}\n
\n )\n }\n\n @autobind\n onScroll() {\n const { showCart, scale, answer } = this.state\n const { theme } = this.props\n if (this.refShelvesRef) {\n this.scrollPercent = this.refShelvesRef?.scrollLeft / (this.widgetWidth * scale - this.refShelvesRef.offsetWidth)\n this.verticalScrollPercent =\n this.refShelvesRef?.scrollTop / ((40 + this.widgetHeight) * scale - this.refShelvesRef.clientHeight)\n this.horizontalScrollPercent =\n this.refShelvesRef?.scrollLeft / (this.widgetWidth * scale - this.refShelvesRef.offsetWidth)\n if (this.widgetWidth * scale <= 1.05 * this.refShelvesRef.offsetWidth) {\n this.updateAnswer(answer.update('left', () => true))\n this.updateAnswer(answer.update('right', () => true))\n }\n }\n\n if (\n this.widgetWidth >= this.maxWidth &&\n !showCart &&\n this.refShelvesRef &&\n theme != 'mobile' &&\n this.refScrollPointer\n ) {\n this.refScrollPointer.style.left =\n this.scrollPercent * (this.refScrollDiv.clientWidth - this.refScrollPointer.clientWidth) + 'px'\n this.refLeftShadow.style.opacity = this.scrollPercent\n this.refRightShadow.style.opacity = 1 - this.scrollPercent\n }\n // else {\n // if (this.refLeftArrow) this.refLeftArrow.style.opacity = this.scrollPercent\n // if (this.refRightArrow) this.refRightArrow.style.opacity = 1 - this.scrollPercent\n // }\n\n if (\n this.refVerticalScrollDiv &&\n this.widgetHeight * scale >= this.refVerticalScrollDiv.clientHeight &&\n this.refShelvesRef &&\n this.verticalScrollPercent &&\n this.refVerticalScrollPointer\n ) {\n this.refVerticalScrollPointer.style.top =\n Math.max(0, this.verticalScrollPercent * (94 - this.refVerticalScrollPointer.clientHeight)) + 7 + 'px'\n }\n\n if (\n this.refHorizontalScrollDiv &&\n this.widgetWidth * scale >= this.refHorizontalScrollDiv.clientWidth &&\n this.refShelvesRef &&\n // 'mobile' == theme &&\n this.refHorizontalScrollPointer\n ) {\n this.refHorizontalScrollPointer.style.left =\n Math.max(0, this.horizontalScrollPercent * (94 - this.refHorizontalScrollPointer.clientWidth)) + 7 + 'px'\n }\n\n if (this.scrollPercent < 0.05 && !answer.get('left')) this.updateAnswer(answer.update('left', () => true))\n if (this.scrollPercent > 0.95 && !answer.get('right')) this.updateAnswer(answer.update('right', () => true))\n }\n\n @autobind\n onScrollTouchStart(event) {\n return 1 == event.touches.length ? this.onScrollMouseDown(processTouchEvent(event)) : false\n }\n\n calculateScrolling(dragUpdate) {\n const { showCart, scale } = this.state\n const { theme } = this.props\n\n if (!showCart && theme != 'mobile' && this.refShelvesRef) {\n const x = dragUpdate\n ? Math.min(\n this.refScrollDiv.clientWidth - this.refScrollPointer.clientWidth / 2,\n dragUpdate.x - this.refScrollPointer.clientWidth / 2\n )\n : this.refScrollDiv.clientWidth * Math.random()\n this.scrollPercent = x / (this.refScrollDiv.clientWidth - this.refScrollPointer.clientWidth)\n this.refShelvesRef.scrollLeft = this.scrollPercent * (this.widgetWidth * scale - this.refShelvesRef.offsetWidth)\n }\n // this.refScrollPointer.style.left =\n // this.scrollPercent * (this.refScrollDiv.clientWidth - this.refScrollPointer.clientWidth) + 'px'\n }\n\n @autobind\n onDragMove(dragUpdate) {\n this.calculateScrolling(dragUpdate)\n }\n\n @autobind\n onScrollMouseDown(event) {\n const targetX = this.refScrollPointer.offsetLeft + this.refScrollPointer.offsetWidth / 2\n const targetY = this.refScrollPointer.offsetTop + this.refScrollPointer.offsetHeight / 2\n this.scrollSubscription = drag(event, targetX, targetY).subscribe(dragUpdate => {\n this.onDragMove(dragUpdate)\n if (!dragUpdate.dragging) {\n this.onDragEnd && this.onDragEnd()\n }\n })\n }\n\n @autobind\n renderScroll() {\n const { questionSchema } = this.props\n const { na } = this.state\n return (\n \n
\n \n \n \n
\n
\n
\n )\n }\n\n @autobind\n renderCartLink() {\n const { showCart, cartCount, na } = this.state\n const { questionSchema, theme, preview } = this.props\n const cart = questionSchema.get('shopping_cart') && !this.findability\n const renderLinks =\n !('ecommerce' !== questionSchema.get('store') && questionSchema.get('fullscreen')) ||\n (preview && 'mobile' == theme) ||\n 'mobile' == theme\n const fullscreen =\n questionSchema.get('fullscreen') &&\n (!preview || 'mobile' != theme) &&\n 'mobile' != theme &&\n !this.generateImage &&\n 'ecommerce' != questionSchema.get('store')\n\n return (\n \n {this.renderScrolling && this.renderScroll()}\n
\n {cart && !na && (\n \n {renderLinks && (\n \n {this.locale.getIn(['sh', 'clearCart'])}\n \n )}\n {showCart && renderLinks && (\n \n {this.locale.getIn(['sh', 'backToStore'])}\n \n )}\n \n )}\n\n {/* {this.renderScrolling && !na && this.renderScroll()} */}\n\n {this.handScale && fullscreen ? this.renderScaleButtons() : null}\n
\n
\n )\n }\n\n @autobind\n renderTotal() {\n const { cartCount, cartTotal, showCart } = this.state\n const { questionSchema, theme, innerWidth } = this.props\n\n return (\n \n \n \n {' '}\n {this.locale.getIn(['sh', 'total']) + ':'}{' '}\n \n \n\n {/**/}\n \n {/**/}\n \n {/**/}\n {!questionSchema.get('hide_price') && (\n \n )}\n {/**/}\n \n \n )\n }\n\n @autobind\n goNext() {\n setTimeout(() => {\n this.props.goNext()\n }, 200)\n }\n\n @autobind\n renderNext() {\n const { previewMode } = this.props\n const { valid } = this.state\n return (\n \n {this.locale.getIn(['sh', 'next'])}\n \n
\n )\n }\n\n @autobind\n renderLongError() {\n const { questionSchema, previewMode, theme } = this.props\n return (\n \n {theme != 'mobile' &&\n !questionSchema.get('fullscreen') &&\n this.widgetWidth > MAX_WIDGET_WIDTH &&\n questionSchema.get('preview') &&\n previewMode && (\n
\n {this.locale.getIn(['sh', 'shelfError_longWidget'])}\n
\n )}\n
\n )\n }\n\n @autobind\n renderError() {\n const { questionSchema } = this.props\n const { answer } = this.state\n\n if (\n !(\n questionSchema.get('min_qty') ||\n questionSchema.get('max_cart_size') ||\n questionSchema.get('max_qty_per_product') ||\n questionSchema.get('max_money_spent') ||\n (questionSchema.get('fullscreen') && questionSchema.get('force_scroll'))\n )\n )\n return ''\n\n if (this.findability) return ''\n const cartSize = getSize(answer)\n const cartPrice = getTotal(answer)\n const cartProductCount = getMaxProductCount(answer)\n const maxPrice = getMaxPrice(answer)\n\n const error =\n (!questionSchema.get('min_qty') || questionSchema.get('min_qty') <= cartSize\n ? ''\n : this.locale.getIn(['sh', 'emptyCartError'])(questionSchema.get('min_qty')) + ' ') +\n (!questionSchema.get('max_cart_size') || questionSchema.get('max_cart_size') > cartSize\n ? ''\n : this.locale.getIn(['sh', 'maxCartCountError'])(questionSchema.get('max_cart_size')) + ' ') +\n (!questionSchema.get('max_money_spent') || questionSchema.get('max_money_spent') >= cartPrice + maxPrice\n ? ''\n : this.locale.getIn(['sh', 'maxSpentError'])(\n formatPrice(questionSchema.get('max_money_spent'), questionSchema.get('price_mask'))\n ) + ' ') +\n (!questionSchema.get('max_qty_per_product') || questionSchema.get('max_qty_per_product') > cartProductCount\n ? ''\n : this.locale.getIn(['sh', 'maxProductCountError'])(questionSchema.get('max_qty_per_product')) + ' ')\n\n const scrollError =\n questionSchema.get('fullscreen') &&\n questionSchema.get('force_scroll') &&\n (!answer.get('left') || !answer.get('right'))\n ? this.locale.getIn(['sh', 'scrollError'])\n : ''\n\n return (\n <>\n {(error || scrollError) && (\n
\n \n
\n )}\n \n )\n }\n\n @autobind\n renderShelfError(key) {\n const { questionSchema, previewMode } = this.props\n\n return previewMode ? (\n
\n \n
\n ) : (\n ''\n )\n }\n\n @autobind\n showHideCart() {\n const { selectedItem, showCart, scale } = this.state\n const { theme } = this.props\n const timeline = selectedItem\n ? this.updateTimeline({\n type: 'close_popup',\n ref: selectedItem.get('id')\n })\n : this.state.timeline\n this.updateTimeline(\n {\n type: showCart ? 'close_cart' : 'open_cart'\n },\n timeline\n )\n\n if (scale > 1 && this.handScale) {\n if (!showCart) {\n this.scrollLeft = this.refShelvesRef.scrollLeft\n this.scrollTop = this.refShelvesRef.scrollTop\n } else {\n this.scrollToPosition(true)\n }\n }\n this.setState({ showCart: !showCart, selectedItem: null })\n if (showCart && 'mobile' == theme) {\n this.setState({ hideContent: true })\n setTimeout(() => {\n const { scale } = this.state\n this.updateScale(scale)\n this.setState({ hideContent: false })\n }, 500)\n }\n }\n\n @autobind\n scrollToPosition(reset) {\n const { scale } = this.state\n if (scale > 0 && this.handScale && (this.scrollLeft || this.scrollTop)) {\n const scrollInterval = setInterval(() => {\n if (this.refShelvesRef) {\n this.refShelvesRef.scrollTo(this.scrollLeft, this.scrollTop)\n if (reset) {\n this.scrollLeft = 0\n this.scrollTop = 0\n }\n clearInterval(scrollInterval)\n }\n }, 10)\n }\n }\n\n @autobind\n updateScale(newScale) {\n const { theme } = this.props\n const { answer, scale } = this.state\n if ('mobile' == theme && newScale < 0.5) return\n const scaleDiff = newScale / scale\n if (this.refShelvesRef) {\n if (!this.originalHeight)\n this.originalHeight = this.refScrollShelvesRef?.clientHeight || this.refShelvesRef.clientHeight\n this.refShelvesRef.scrollLeft =\n this.refShelvesRef.scrollLeft * scaleDiff + (window.innerWidth / 2) * (newScale - scale)\n if (newScale <= 1 && this.originalHeight - this.refShelvesRef.clientHeight * newScale > 0) {\n if (this.refScrollShelvesRef) this.refScrollShelvesRef.style.height = this.widgetHeight * newScale + 20 + 'px'\n else {\n this.refShelvesRef.style.marginTop =\n String(-(this.originalHeight - this.refShelvesRef.clientHeight * newScale) / 2) + 'px'\n }\n this.clientHeight = this.refShelvesRef.clientHeight\n } else this.refShelvesRef.style.marginTop = '0px'\n }\n\n if (this.refShelvesRef && this.widgetWidth * newScale <= 1.05 * this.refShelvesRef.offsetWidth) {\n this.updateAnswer(answer.update('left', () => true).update('right', () => true))\n }\n // this.verticalScrolling =\n // questionSchema.getIn(['coordinates', 'imageHeight']) * newScale >= this.refShelvesRef?.offsetHeight\n // this.horizontalScrolling =\n // questionSchema.getIn(['coordinates', 'imageWidth']) * newScale >= 1.05 * this.refShelvesRef?.offsetWidth\n this.setState({ scale: newScale })\n this.onScroll()\n }\n\n @autobind\n unsubscribeFromMove() {\n if (this.touchMoveSubscription) {\n this.touchMoveSubscription.unsubscribe()\n this.touchMoveSubscription = null\n this.hypot = 0\n }\n }\n\n @autobind\n unsubscribeFromDrag() {\n if (this.dragSubscription) {\n this.dragSubscription.unsubscribe()\n this.dragSubscription = null\n }\n }\n\n @autobind\n onMouseUp() {\n setTimeout(() => {\n if (this.dragSubscription) this.unsubscribeFromDrag()\n }, 300)\n }\n\n @autobind\n onMouseDown(event) {\n const { scale } = this.state\n if (!this.handScale || scale <= 1) return\n const rect = this.refShelvesRef.getBoundingClientRect()\n const coords = { x: rect.x, y: rect.y }\n this.dragSubscription = drag(event, rect.x, rect.y).subscribe(moveUpdate => {\n this.refShelvesRef.scrollBy(coords.x - moveUpdate.x, coords.y - moveUpdate.y)\n coords.x = moveUpdate.x\n coords.y = moveUpdate.y\n if (moveUpdate.dragging) this.dragging = moveUpdate.dragging\n else\n setTimeout(() => {\n this.dragging = moveUpdate.dragging\n }, 200)\n })\n }\n\n @autobind\n onTouchStart(event) {\n const { selectedItem, answer } = this.state\n if (selectedItem) return\n this.touchMoveSubscription = resize(event).subscribe(moveUpdate => {\n const { scale } = this.state\n if (moveUpdate.hypot) {\n if (this.hypot)\n this.updateScale(Math.max(window.innerWidth / this.widgetWidth, (scale * moveUpdate.hypot) / this.hypot))\n if (window.innerWidth < this.widgetWidth) this.hypot = moveUpdate.hypot\n }\n if (!moveUpdate.scaling) {\n this.unsubscribeFromMove()\n this.hypot = 0\n\n const goalScale = this.widgetWidth > window.innerWidth ? window.innerWidth / this.widgetWidth : 1\n if (scale < goalScale) {\n const resize = newScale => {\n if (newScale < goalScale) {\n this.updateScale(newScale)\n setTimeout(() => resize(newScale + 0.02 > goalScale ? goalScale : newScale + 0.02), 10)\n } else this.updateScale(goalScale)\n }\n resize(scale + 0.02)\n } else {\n if (this.widgetWidth * scale <= 1.05 * this.refShelvesRef?.offsetWidth)\n this.updateAnswer(answer.update('left', () => true).update('right', () => true))\n }\n }\n })\n }\n\n @autobind\n getContainer() {\n return this.refShelvesRef\n }\n\n @autobind\n renderVerticalScroll() {\n return (\n
\n \n
\n )\n }\n\n @autobind\n renderHorizontalScroll() {\n return (\n
\n \n
\n )\n }\n\n calculateVerticalScrolling(dragUpdate) {\n const { showCart, scale } = this.state\n if (!showCart && this.refShelvesRef) {\n const x = dragUpdate\n ? Math.min(\n this.refVerticalScrollDiv.clientHeight - this.refVerticalScrollPointer.clientHeight / 2,\n dragUpdate.y - this.refVerticalScrollPointer.clientHeight / 2\n )\n : this.refVerticalScrollDiv.clientHeight * Math.random()\n this.verticalScrollPercent =\n x / (this.refVerticalScrollDiv.clientHeight - this.refVerticalScrollPointer.clientHeight)\n this.refShelvesRef.scrollTop =\n this.verticalScrollPercent * (this.widgetHeight * scale - this.refShelvesRef.offsetHeight)\n }\n // this.refScrollPointer.style.left =\n // this.scrollPercent * (this.refScrollDiv.clientWidth - this.refScrollPointer.clientWidth) + 'px'\n }\n\n @autobind\n onVerticalScrollTouchStart(event) {\n return 1 == event.touches.length ? this.onVerticalScrollMouseDown(processTouchEvent(event)) : false\n }\n\n @autobind\n onVerticalScrollMouseDown(event) {\n const targetX = this.refVerticalScrollPointer.offsetLeft + this.refVerticalScrollPointer.offsetWidth / 2\n const targetY = this.refVerticalScrollPointer.offsetTop + this.refVerticalScrollPointer.offsetHeight / 2\n this.verticalSubcscription = drag(event, targetX, targetY).subscribe(dragUpdate => {\n this.calculateVerticalScrolling(dragUpdate)\n })\n }\n\n calculateHorizontalScrolling(dragUpdate) {\n const { showCart, scale } = this.state\n if (!showCart && this.refShelvesRef) {\n const x = dragUpdate\n ? Math.min(\n this.refHorizontalScrollDiv.clientWidth - this.refHorizontalScrollPointer.clientWidth / 2,\n dragUpdate.x - this.refHorizontalScrollPointer.clientWidth / 2\n )\n : this.refHorizontalScrollDiv.clientWidth * Math.random()\n this.horizontalScrollPercent =\n x / (this.refHorizontalScrollDiv.clientWidth - this.refHorizontalScrollPointer.clientWidth)\n this.refShelvesRef.scrollLeft =\n this.horizontalScrollPercent * (this.widgetWidth * scale - this.refShelvesRef.offsetWidth)\n }\n // this.refScrollPointer.style.left =\n // this.scrollPercent * (this.refScrollDiv.clientWidth - this.refScrollPointer.clientWidth) + 'px'\n }\n\n @autobind\n onHorizontalScrollTouchStart(event) {\n return 1 == event.touches.length ? this.onHorizontalScrollMouseDown(processTouchEvent(event)) : false\n }\n\n @autobind\n onHorizontalScrollMouseDown(event) {\n const targetX = this.refHorizontalScrollPointer.offsetLeft + this.refHorizontalScrollPointer.offsetWidth / 2\n const targetY = this.refHorizontalScrollPointer.offsetTop + this.refHorizontalScrollPointer.offsetHeight / 2\n this.horizontallSubcscription = drag(event, targetX, targetY).subscribe(dragUpdate => {\n this.calculateHorizontalScrolling(dragUpdate)\n })\n }\n\n @autobind\n renderShelfContent() {\n const { questionSchema, theme, emulatedMobile } = this.props\n const { selectedItem, answer, goods, cartCount, scale, hideContent, hover } = this.state\n const fullscreen = questionSchema.get('fullscreen') && !this.generateImage\n\n const statScroll = this.generateImage && this.maxWidth / this.widgetWidth < 1\n\n let currentShelvesCount = 0\n let currentBlocksWidth = 0\n const isMobile = 'mobile' == theme\n\n return (\n \n \n {this.shelvesSettings.fridge ? (\n 1 ? 'scroll' : 'inherit'\n }}\n >\n 1 ? (this.originalHeight * (scale - 1)) / 2 : 0\n }}\n generateImage={this.generateImage}\n blockWidths={[0, this.shelfWidth]}\n />\n
\n ) : (\n <>\n {/* {this.refShelvesRef && isMobile && this.widgetWidth * scale > 1.1 * this.refShelvesRef.offsetWidth && (\n
\n {' '}\n
\n )} */}\n {this.horizontalScrolling &&\n questionSchema.getIn(['coordinates', 'imageWidth']) * scale >= 1.05 * this.refShelvesRef?.offsetWidth &&\n this.renderHorizontalScroll()}\n MAX_WIDGET_WIDTH ? style.scrolling : ''} ${\n hideContent ? style.hideContent : ''\n }`}\n ref={this.saveRef('ShelvesRef')}\n onScroll={this.onScroll}\n style={{\n maxWidth: this.renderScrolling ? window.innerWidth : 'auto',\n overflow: 'scroll'\n }}\n >\n
\n 1 ? (this.originalHeight * (scale - 1)) / 2 : 0,\n marginBottom: -(this.handScale && scale > 1 ? (this.originalHeight * (scale - 1)) / 2 : 0)\n }}\n >\n {!isMobile && (\n \n )}\n {this.config.toArray().map((block, i) => {\n const blockSize = this.config.getIn([i, 'shelves']).size\n currentBlocksWidth += block.get('width')\n currentShelvesCount += blockSize\n return (\n \n {isMobile &&
}\n \n
\n )\n })}\n {questionSchema.get('double_width') && (\n \n )}\n
\n
\n
\n {/* {this.refShelvesRef && isMobile && this.widgetWidth * scale > 1.05 * this.refShelvesRef.offsetWidth && (\n
\n {' '}\n
\n )} */}\n \n )}\n {selectedItem && (\n this.closeItemPopup()}\n onAction={this.addToCart}\n locale={this.locale}\n fullScreen={fullscreen}\n onPictureClick={this.onPictureClick}\n mobile={'mobile' != theme}\n />\n )}\n
\n \n )\n }\n\n @autobind\n showHideFullscreen() {\n this.setState({ closeFullscreen: !this.state.closeFullscreen })\n setTimeout(() => {\n if (this.refShelvesRef && window.innerHeight - 162 < this.refShelvesRef.offsetHeight) {\n this.refLinks.style.position = 'fixed'\n this.refFooter.style.position = 'fixed'\n // this.refLightBox.refLightBoxBackdrop.style.height =\n // this.refLightBox.refLightBoxBackdrop.clientHeight - 90 + 'px'\n }\n }, 500)\n }\n\n @autobind\n renderContent() {\n const { questionSchema, theme, preview, emulatedMobile, questionTitle } = this.props\n const { showCart, selectedItem, answer, na, cartCount, closeFullscreen, scale } = this.state\n const answerItems = questionSchema.get('answers')\n const cart = questionSchema.get('shopping_cart') && !this.findability\n const fullscreen =\n questionSchema.get('fullscreen') &&\n 'mobile' != theme &&\n 'ecommerce' != questionSchema.get('store') &&\n !this.generateImage\n const shelfError = questionSchema.get('error')\n const store = questionSchema.get('store')\n const statScroll = this.generateImage && window.innerWidth / this.widgetWidth < this.context\n\n return 0 === answerItems.size ? (\n \n
\n {this.locale.get('noAnswers')}\n
\n
\n ) : (\n \n {shelfError && shelfError.size ? this.renderShelfError(shelfError.keySeq().first()) : ''}\n {!na && (cart || questionSchema.get('force_scroll')) && this.renderError()}\n {this.renderLongError()}\n {showCart && !selectedItem && !fullscreen ? (\n \n ) : fullscreen && !closeFullscreen && !this.generateImage ? (\n window.height\n ? style.topAlign\n : ''\n }`}\n >\n
\n
\n

\n {questionTitle}\n

\n
\n {showCart && !selectedItem && !na && (\n \n \n {cart && !na && (\n \n \n {this.locale.getIn(['sh', 'clearCart'])}\n \n \n {this.locale.getIn(['sh', 'backToStore'])}\n \n \n )}\n \n \n \n
\n )}\n {this.renderError()}\n \n {questionSchema.getIn(['coordinates', 'imageHeight']) * scale >=\n 1.05 * this.refShelvesRef?.offsetHeight &&\n this.verticalScrolling &&\n this.renderVerticalScroll()}\n {/*{questionSchema.getIn(['coordinates', 'imageWidth']) * scale >=*/}\n {/* 1.05 * this.refShelvesRef?.offsetWidth &&*/}\n {/* this.horizontalScrolling &&*/}\n {/* this.renderHorizontalScroll()}*/}\n {this.renderScrolling && (\n \n )}\n {this.renderShelfContent()}\n {this.renderScrolling && (\n \n )}\n
\n\n {fullscreen && preview && !selectedItem && (\n
\n {' '}\n \n
\n )}\n
\n \n {cart && !na && this.renderTotal()}\n {questionSchema.get('na') && !showCart && this.renderNALink()}\n {this.renderCartLink()}\n
\n
\n {this.renderNext()}\n
\n \n ) : 'ecommerce' == store ? (\n
\n {selectedItem ? (\n this.closeItemPopup()}\n onAction={this.addToCart}\n locale={this.locale}\n />\n ) : (\n \n )}\n
\n ) : (\n \n {fullscreen && closeFullscreen ? (\n
\n
\n {this.locale.getIn(['sh', 'closedFullscreenLabel'])}\n
\n
\n ) : (\n
\n {this.renderScrolling && !statScroll && (\n
\n )}\n {this.verticalScrolling &&\n questionSchema.getIn(['coordinates', 'imageHeight']) * scale >=\n 1.05 * this.refShelvesRef?.offsetHeight &&\n this.renderVerticalScroll()}\n {this.renderShelfContent()}\n {this.renderScrolling && !statScroll && (\n
\n )}\n
\n )}\n \n )}\n {!fullscreen && (\n
\n {cart && !na && this.renderTotal()}\n {questionSchema.get('na') && !showCart && this.renderNALink()}\n {cart && !na && this.renderCartLink()}\n
\n )}\n {this.handScale && !fullscreen ? this.renderScaleButtons() : null}\n \n )\n }\n\n @autobind\n incScale() {\n const { scale } = this.state\n this.updateScale(scale + 0.1)\n }\n\n @autobind\n decScale() {\n const { scale } = this.state\n this.updateScale(scale - 0.1)\n }\n\n @autobind\n renderScaleButtons() {\n const { showCart, na, scale } = this.state\n const { questionSchema } = this.props\n return (\n \n 3 ? `${style.disabled}` : ``}\n onClick={this.incScale}\n >\n +\n
\n \n -\n
\n
\n )\n }\n\n @autobind\n renderDesktop() {\n const { accentColor, accentColorRGB, questionSchema } = this.props\n\n if (this.isIos) return this.renderMobile()\n\n return (\n \n \n window.innerWidth\n // ? this.widgetWidth\n // :\n questionSchema.get('fullscreen') && !this.generateImage ? 600 : Math.min(this.maxWidth, this.widgetWidth)\n }}\n >\n {this.renderContent()}\n
\n \n )\n }\n\n @autobind\n noApp() {\n this.setState({ dontWantToApp: true })\n }\n\n @autobind\n yesApp() {\n const { appUrl, questionSchema, recheck } = this.props\n if (appUrl) {\n const redirectUrl =\n 'https://swidget.page.link/?link=https://shelf.link/?' +\n encodeURIComponent(appUrl) +\n (this.isIos ? '&isi=1626134368&ibi=com.umongous.swidget&ius=swidget' : '&apn=com.umongous.swidget')\n\n const callback = () => {\n localStorage.setItem('aytmShelfPosition', parseInt(questionSchema.get('position'), 10) + 1)\n window.location.reload()\n }\n\n window.addEventListener('focus', callback)\n window.addEventListener('pageshow', callback)\n this.interval = setInterval(() => {\n recheck(callback)\n }, 1500)\n cookie.save('shelf_test_mobile', true)\n window.location.replace(redirectUrl)\n } else this.noApp()\n }\n\n @autobind\n renderAppScreen() {\n return (\n \n
\n \n
\n
\n \n \n
\n
\n \n )\n }\n\n @autobind\n renderMobile() {\n const { dontWantToApp } = this.state\n const { questionSchema } = this.props\n return (\n
\n {questionSchema.get('enable_app') && !questionSchema.get('preview')\n ? dontWantToApp\n ? this.renderContent()\n : this.renderAppScreen()\n : this.renderContent()}\n
\n )\n }\n}\n","const smoothStep = (start, end, point) => {\n if (point <= start) {\n return 0\n }\n if (point >= end) {\n return 1\n }\n const x = (point - start) / (end - start)\n return x * x * (3 - 2 * x)\n}\n\nexport default function scrollTo(element, params) {\n if (params.duration < 0) return Promise.reject()\n\n if (0 == params.duration) {\n if (params.top != null) element.scrollTop = params.top\n if (params.left != null) element.scrollLeft = params.left\n\n return Promise.resolve()\n }\n\n const startTime = Date.now()\n const endTime = startTime + params.duration\n const start = { x: element.scrollLeft, y: element.scrollTop }\n const distance = {\n x: null == params.left ? null : params.left - start.x,\n y: null == params.top ? null : params.top - start.y\n }\n\n return new Promise((resolve, reject) => {\n const prev = { x: element.scrollLeft, y: element.scrollTop }\n\n const scrollFrame = () => {\n if (element.scrollLeft != prev.x || element.scrollTop != prev.y) {\n reject()\n return\n }\n\n const now = Date.now()\n const point = smoothStep(startTime, endTime, now)\n const frame = { x: Math.round(start.x + distance.x * point), y: Math.round(start.y + distance.y + point) }\n element.scrollLeft = frame.x\n element.scrollTop = frame.y\n\n if (now >= endTime) {\n resolve()\n return\n }\n\n if (\n element.scrollTop == prev.y &&\n element.scrollLeft == prev.x &&\n element.scrollTop !== frame.y &&\n element.scrollLeft !== frame.x\n ) {\n resolve()\n return\n }\n\n prev.x = element.scrollLeft\n prev.y = element.scrollTop\n\n setTimeout(scrollFrame, 0)\n }\n\n setTimeout(scrollFrame, 0)\n })\n}\n\nexport function verticalScrollIntoContainerView(element, container = element.parentElement, { margin = 5 } = {}) {\n if (element && container && element.getBoundingClientRect && container.getBoundingClientRect) {\n const containerRect = container.getBoundingClientRect()\n const elementRect = element.getBoundingClientRect()\n if (elementRect.bottom > containerRect.bottom - margin) {\n // scroll content up\n container.scrollTop = container.scrollTop + (elementRect.bottom - (containerRect.bottom - margin))\n } else if (elementRect.top < containerRect.top + margin) {\n // scroll content down\n container.scrollTop = container.scrollTop - (containerRect.top + margin - elementRect.top)\n }\n }\n}\n","import { stopEvent } from '@aytm/lib/common/func'\nimport { fromEvent as ObservableFromEvent, merge as ObservableMerge } from 'rxjs'\nimport { map as rxMap, takeUntil as rxTakeUntil, take as rxTake, filter as rxFilter } from 'rxjs/operators'\n\nconst JITTER_SPACE = 3\n\nexport function processTouchEvent(event) {\n if (event.touches.length) {\n event.clientX = event.touches[0].clientX\n event.clientY = event.touches[0].clientY\n } else {\n event.clientX = event.changedTouches[0].clientX\n event.clientY = event.changedTouches[0].clientY\n }\n return event\n}\n\nfunction processResizeTouchEvent(event) {\n if (event.touches.length > 1) {\n event.hypot = Math.hypot(\n event.touches[0].pageX - event.touches[1].pageX,\n event.touches[0].pageY - event.touches[1].pageY\n )\n }\n return event\n}\n\nexport default function drag(event, targetOffsetX, targetOffsetY) {\n const el = event.target.closest('body')\n const startX = event.clientX\n const startY = event.clientY\n\n const offsetX = targetOffsetX - startX\n const offsetY = targetOffsetY - startY\n\n const moves = ObservableMerge(\n ObservableFromEvent(el, 'mousemove'),\n ObservableFromEvent(el, 'touchmove', { passive: false }).pipe(rxMap(event => processTouchEvent(event)))\n )\n const ends = ObservableMerge(\n ObservableFromEvent(el, 'mouseup'),\n ObservableFromEvent(el, 'touchend', { passive: false }).pipe(rxMap(event => processTouchEvent(event)))\n )\n\n let dragHappened = false\n\n return ObservableMerge(\n moves.pipe(\n rxFilter(event => {\n if (dragHappened) {\n return true\n }\n const isMoved =\n Math.abs(startX - event.clientX) > JITTER_SPACE || Math.abs(startY - event.clientY) > JITTER_SPACE\n if (!dragHappened && isMoved) {\n dragHappened = true\n }\n return isMoved\n }),\n rxMap(event => {\n if (event.cancelable) {\n stopEvent(event)\n }\n return {\n x: event.clientX + offsetX,\n y: event.clientY + offsetY,\n dragging: true\n }\n }),\n rxTakeUntil(ends)\n ),\n ends.pipe(\n rxTake(1),\n rxMap(event => {\n if (event.cancelable) {\n stopEvent(event)\n }\n return {\n x: event.clientX + offsetX,\n y: event.clientY + offsetY,\n dragging: false\n }\n })\n )\n )\n}\n\nexport function resize(event) {\n const eventHypot = event.hypot\n\n const touchMoves = ObservableFromEvent(document, 'touchmove', { passive: false }).pipe(\n rxMap(event => processResizeTouchEvent(event))\n )\n const touchEnd = ObservableFromEvent(document, 'touchend', { passive: false }).pipe(\n rxMap(event => processResizeTouchEvent(event))\n )\n\n return ObservableMerge(\n touchMoves.pipe(\n rxFilter(event => {\n if (2 !== event.touches.length) {\n return false\n }\n return true\n }),\n rxMap(event => {\n const eventHypot = event.hypot\n if (event.cancelable) {\n stopEvent(event)\n }\n return {\n hypot: eventHypot,\n scaling: true\n }\n }),\n rxTakeUntil(touchEnd)\n ),\n touchEnd.pipe(\n rxTake(1),\n rxMap(__event => {\n return {\n hypot: eventHypot,\n scaling: false\n }\n })\n )\n )\n}\n","import { Record, Map, List, Set, Iterable, fromJS } from 'immutable'\nimport { getPrototype } from '@aytm/lib/common/func'\n\nconst VALUE_MAPPERS = 'function' == typeof Symbol ? Symbol('valueMappers') : '@@ImmutableModel@valueMappers'\nconst SUPER = 'function' == typeof Symbol ? Symbol('super') : '@@ImmutableModel@super'\n\nexport default function ImmutableModel(valueMappers = {}, ExtendsModel, { RecordName, reactive } = {}) {\n const extendedValueMappers =\n 'function' == typeof ExtendsModel && getPrototype(ExtendsModel)[VALUE_MAPPERS]\n ? Object.assign({}, getPrototype(ExtendsModel)[VALUE_MAPPERS], valueMappers)\n : valueMappers\n class ImmutableModel extends Record(\n Object.keys(extendedValueMappers).reduce(\n (defaultValues, key) => ((defaultValues[key] = extendedValueMappers[key](void 0, key, Map())), defaultValues),\n {}\n ),\n RecordName\n ) {\n constructor(values = {}) {\n const valuesMap = Map(values)\n super(\n Map().withMutations(mappedValues =>\n Object.keys(extendedValueMappers).reduce(\n (mappedValues, key) => mappedValues.set(key, extendedValueMappers[key](valuesMap.get(key), key, valuesMap)),\n mappedValues\n )\n )\n )\n }\n set(k, v) {\n return null != reactive && 'object' == typeof reactive && Array.isArray(reactive[k])\n ? this.withMutations(model =>\n reactive[k].reduce(\n (model, reactiveKey) =>\n super.set.call(\n model,\n reactiveKey,\n 'function' == typeof extendedValueMappers[reactiveKey]\n ? extendedValueMappers[reactiveKey](model.get(reactiveKey), reactiveKey, model)\n : model.get(reactiveKey)\n ),\n super.set.call(\n model,\n k,\n 'function' == typeof extendedValueMappers[k] ? extendedValueMappers[k](v, k, model) : v\n )\n )\n )\n : super.set(k, 'function' == typeof extendedValueMappers[k] ? extendedValueMappers[k](v, k, this) : v)\n }\n }\n ImmutableModel.prototype.isImmutableModel = true\n ImmutableModel[VALUE_MAPPERS] = extendedValueMappers\n ImmutableModel.valueMappers = function () {\n return extendedValueMappers\n }\n return ImmutableModel\n}\n\nImmutableModel.isImmutableModel = function (maybeImmutableModel) {\n return Boolean(\n null != maybeImmutableModel && 'object' == typeof maybeImmutableModel && maybeImmutableModel.isImmutableModel\n )\n}\n\nconst functionOwnPropertyNames = Object.getOwnPropertyNames(function () {}).reduce(\n (names, name) => ((names[name] = true), names),\n {}\n)\n\nImmutableModel.decorator = function ({ name, extends: ExtendsModel } = {}) {\n return function (ModelClass) {\n ModelClass.of ||\n (ModelClass.of = function (values = {}) {\n return values instanceof ModelClass ? values : new ModelClass(values)\n })\n ModelClass.empty ||\n (ModelClass.empty = function () {\n return ModelClass.of()\n })\n if (('string' == typeof name && name.length) || ('string' == typeof ModelClass.name && ModelClass.name.length)) {\n ModelClass.prototype[`is${name || ModelClass.name}`] = true\n ModelClass[`is${name || ModelClass.name}`] = function (maybeModel) {\n return Boolean(\n null != maybeModel && 'object' == typeof maybeModel && maybeModel[`is${name || ModelClass.name}`]\n )\n }\n }\n const super_clone =\n ('function' == typeof ModelClass.prototype.clone\n ? 'function' == typeof ModelClass.prototype.clone[SUPER]\n ? ModelClass.prototype.clone[SUPER]\n : ModelClass.prototype.clone\n : null) ||\n ('function' == typeof ExtendsModel &&\n 'function' == typeof ExtendsModel.prototype.clone &&\n 'function' == typeof ExtendsModel.prototype.clone[SUPER]\n ? ExtendsModel.prototype.clone[SUPER]\n : null)\n\n ModelClass.prototype.clone = function (...cloneArgs) {\n const nestedClone = this.withMutations(nestedClone => {\n nestedClone.entrySeq().forEach(([k, v]) => {\n nestedClone.set(\n k,\n null != v && 'object' == typeof v && 'function' == typeof v.clone ? v.clone(...cloneArgs) : v\n )\n })\n return nestedClone\n })\n return null == super_clone ? nestedClone : super_clone.apply(nestedClone, cloneArgs)\n }\n ModelClass.prototype.clone[SUPER] = super_clone\n // copy instance properties from ExtendsModel\n if ('function' == typeof ExtendsModel) {\n Object.getOwnPropertyNames(ExtendsModel).forEach(function (propName) {\n if (!functionOwnPropertyNames[propName] && void 0 === ModelClass[propName]) {\n ModelClass[propName] = ExtendsModel[propName]\n }\n })\n Object.getOwnPropertyNames(ExtendsModel.prototype).forEach(function (propName) {\n if (!functionOwnPropertyNames[propName] && void 0 === ModelClass.prototype[propName]) {\n ModelClass.prototype[propName] = ExtendsModel.prototype[propName]\n }\n })\n // if (ExtendsModel.prototype.constructor && ModelClass.prototype.constructor) {\n // Object.getOwnPropertyNames(ExtendsModel.prototype.constructor).forEach(function(propName) {\n // if (void 0 === ModelClass.prototype.constructor[propName]) {\n // ModelClass.prototype.constructor[propName] = ExtendsModel.prototype.constructor[propName]\n // }\n // })\n // }\n }\n }\n}\n\nexport function asValue(x) {\n return x\n}\n\nexport function asConst(constValue) {\n return function () {\n return constValue\n }\n}\n\nexport function asBoolean(x) {\n return Boolean(x)\n}\n\nexport function asString(x) {\n return null == x ? '' : 'string' == typeof x ? x : x.toString()\n}\n\nexport function asInteger(x) {\n return parseInt(x, 10)\n}\n\nexport function asFloat(x) {\n return parseFloat(x)\n}\n\nexport function asArray(x) {\n return Array.isArray(x) ? x : Iterable.isIterable(x) && 'function' == typeof x.toArray ? x.toArray() : []\n}\n\nexport function asNullOr(asSomething) {\n return function (x) {\n return null == x ? null : asSomething(x)\n }\n}\n\nexport function asOneOf(variants = Set(), defaultValue) {\n return function (x) {\n return variants.includes(x) ? x : defaultValue\n }\n}\n\nexport function asModel(ModelClass) {\n return null != ModelClass\n ? function (x) {\n return x instanceof ModelClass\n ? x\n : (null == x || ('object' == typeof x && 0 == Object.keys(x).length)) && 'function' == typeof ModelClass.empty\n ? ModelClass.empty()\n : ModelClass.of(x)\n }\n : function (/*x*/) {\n return null\n }\n}\n\nexport function asImmutable(ImmutableClass) {\n return function (x) {\n return x instanceof ImmutableClass ? x : ImmutableClass(x)\n }\n}\n\nexport function asImmutableMap(x) {\n return Map.isMap(x) ? x : null != x && 'object' == typeof x ? fromJS(x) : Map(x)\n}\n\nexport function asImmutableList(x) {\n return List.isList(x) ? x : Array.isArray(x) ? fromJS(x) : List(x)\n}\n\nexport function asInstance(check, build) {\n return function (x) {\n return check(x) ? x : build(x)\n }\n}\n\nexport function asPlainObject(x) {\n return Iterable.isIterable(x) ? x.toJS() : x\n}\n\nexport function asOptionalJSONFor(asSomething) {\n return function (x) {\n return 'string' == typeof x ? asSomething(JSON.parse(x)) : asSomething(x)\n }\n}\n\nexport function withDefault(defaultValue, mapper, checkUnset = x => null == x) {\n return function (x) {\n return checkUnset(x) ? ('function' == typeof defaultValue ? defaultValue(x) : defaultValue) : mapper(x)\n }\n}\n\nexport function asOr(check, mapper, otherMapper) {\n return function (x) {\n return check(x) ? mapper(x) : otherMapper(x)\n }\n}\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { List } from 'immutable'\nimport ImagePin from '@aytm/lib/rfd-ui/components/basic/image-pin'\n\nimport '@aytm/lib/rfd-ui/styles/advanced/image-gallery.scss'\nimport classNames from 'classnames'\n\nImageGallery.propTypes = {\n imageList: PropTypes.instanceOf(List).isRequired,\n hideIcons: PropTypes.bool,\n value: PropTypes.number,\n onChange: PropTypes.func\n}\n\nexport function ImageGallery({ imageList, hideIcons, onChange, value } = {}) {\n const [current, setCurrent] = useState(value)\n const [opened, setOpened] = useState(0)\n\n const onClick = value => {\n if (onChange) onChange(imageList.getIn([value, 'original_url']), value)\n setCurrent(value)\n setOpened(value)\n }\n\n return (\n \n {hideIcons ? (\n \n ) : (\n imageList.map((image, i) => (\n
\n {'view3d' == image.get('original_url') ? (\n
onClick(i)}>\n \n
\n ) : (\n \n )}\n
\n ))\n )}\n
\n )\n}\n\nexport default React.memo(ImageGallery, (prev, next) => prev.imageList === next.imageList)\n\nconst ImageGalleryItem = React.memo(\n props => {\n const { index, onChange, previewURL, baseUrl, withPopup } = props\n\n return (\n {\n onChange(index)\n }}\n />\n )\n },\n (prev, next) => prev.baseUrl === next.baseUrl\n)\n\nImageGalleryItem.displayName = 'ImageGalleryItem'\n\nImageGalleryItem.propTypes = {\n index: PropTypes.number.isRequired,\n baseUrl: PropTypes.string.isRequired,\n onChange: PropTypes.any.isRequired,\n withPopup: PropTypes.bool.isRequired,\n previewURL: PropTypes.any.isRequired\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport classNames from 'classnames'\nimport autobind from 'autobind-decorator'\nimport { PureDataComponent } from '@aytm/lib/common/components/pure-component'\n\nimport '@aytm/lib/rfd-ui/styles/basic/button.scss'\n\nexport default class Button extends PureDataComponent {\n static propTypes = {\n /**\n * Button label\n */\n label: PropTypes.string,\n /**\n * is Button disabled\n */\n disabled: PropTypes.bool,\n /**\n * show icon (prop is className)\n */\n icon: PropTypes.string,\n /**\n * icon position: `left` or `right`\n */\n iconPosition: PropTypes.string,\n /**\n * fixed Button width in pixels\n */\n width: PropTypes.number,\n /**\n * Hides left/right paddings\n */\n compact: PropTypes.bool,\n /**\n * string that will be passed to `onAction(action)`\n */\n action: PropTypes.string,\n /**\n * fires when Button is `clicked` and `not disabled`\n */\n onAction: PropTypes.func,\n /**\n * fires when Button is `clicked` (disabled or not)\n */\n onClick: PropTypes.func,\n /**\n * Use `` instead of `