{"version":3,"file":"product.bundle.js","mappings":"gBAAIA,ECAAC,EACAC,E,uECIJ,IAAMC,EAAN,cAAgCC,EAAAA,UAC5BC,MAAAA,GACI,OACID,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,sBACHC,MAAM,sCAENJ,EAAAA,cAAA,WACIA,EAAAA,cAAA,6qBAYAA,EAAAA,cAAA,0XAQAA,EAAAA,cAAA,WACIA,EAAAA,cAAA,KACIK,KAAK,kCACLC,UAAU,iBACVC,OAAO,SAAQ,aACJ,8CAA4C,6BAQ/E,GAzCER,E,mUAAiBS,CAAA,CADtBC,EAAAA,IACKV,GA4CN,K,oCCjDO,IAAKW,E,uDAAZ,SAAYA,GACRA,EAAA,OACH,CAFD,CAAYA,IAAAA,EAAS,KAOd,MAAMC,EAMT,CAEAC,OAAQ,CAAC,EAETC,WAAAA,CAAYC,EAAsBC,GAC9B,MAAO,GAAGD,KAAaC,GAC3B,EAEAC,QAAAA,CAASC,EAAOF,GACZ,MAAMG,EAAYC,KAAKN,YAAYI,EAAOF,GACrCI,KAAKP,OAAOM,IACjBC,KAAKP,OAAOM,GAAWE,SAASC,GAAyBA,KAC7D,EAEAC,SAAAA,CAAUL,EAAOF,EAAcM,GAC3B,MAAMH,EAAYC,KAAKN,YAAYI,EAAOF,GACrCI,KAAKP,OAAOM,KAAYC,KAAKP,OAAOM,GAAa,IACjDC,KAAKP,OAAOM,GAAWK,SAASF,IAAWF,KAAKP,OAAOM,GAAWM,KAAKH,EAChF,EAEAI,WAAAA,CAAYR,EAAOF,GACf,MAAMG,EAAYC,KAAKN,YAAYI,EAAOF,GACrCI,KAAKP,OAAOM,WACVC,KAAKP,OAAOM,EACvB,E,sECpBW,IAAMhB,EAAN,cAA0BF,EAAAA,UACrC0B,WAAAA,CAAYC,GACRC,MAAMD,EACV,CAEAE,iBAAAA,GACQV,KAAKQ,MAAMG,MACXX,KAAKY,MAEb,CAEAA,IAAAA,GACIC,EAAAA,GAAWb,KAAKQ,MAAMxB,GAC1B,CAEA8B,IAAAA,GACQd,KAAKQ,MAAMO,OACXf,KAAKQ,MAAMO,QACXC,YAAW,IAAMC,eAAejB,KAAKQ,MAAMxB,KAAK,MAEhDiC,eAAejB,KAAKQ,MAAMxB,GAElC,CAEAkC,cAAAA,CAAeC,GACNA,EAAE/B,QAIF+B,EAAE/B,OAAuBgC,UAAUC,SAAS,UAC7CrB,KAAKc,MAEb,CAEAhC,MAAAA,GACI,OACID,EAAAA,cAAA,OACIM,UAAW,SAASa,KAAKQ,MAAMc,aAAe,KAC9CtC,GAAIgB,KAAKQ,MAAMxB,GACfuC,UAAW,EACXC,QAASL,GAAKnB,KAAKkB,eAAeC,IAElCtC,EAAAA,cAAA,OACIM,UAAU,eACVsC,MAAO,CACHC,SAAU1B,KAAKQ,MAAMkB,SAAW,GAAG1B,KAAKQ,MAAMkB,WAAa,QAC3DC,UAAgC,GAArBC,OAAOC,cAGtBhD,EAAAA,cAAA,OAAKM,UAAU,iBACXN,EAAAA,cAAA,OACIM,UAAU,eACV2C,KAAK,WAEJ9B,KAAKQ,MAAMvB,MACZJ,EAAAA,cAAA,UACIkD,KAAK,SACL5C,UAAU,YAAW,aACV,QACXqC,QAASA,IAAMxB,KAAKc,UAG5BjC,EAAAA,cAAA,OAAKM,UAAU,cAAca,KAAKQ,MAAMwB,UACxCnD,EAAAA,cAAA,OAAKM,UAAU,gBACXN,EAAAA,cAAA,UACIkD,KAAK,SACL5C,UAAU,kBACVqC,QAASA,IAAMxB,KAAKc,QAAM,YAStD,GA5EiB/B,E,mUAAWM,CAAA,CAD/BC,EAAAA,IACoBP,G,6ECbTkD,E,iVAAZ,SAAYA,GACRA,EAAA,oCACAA,EAAA,8BACAA,EAAA,8BACAA,EAAA,4BACAA,EAAA,oCACAA,EAAA,sBACAA,EAAA,gCACAA,EAAA,oCACAA,EAAA,0BACAA,EAAA,kCACAA,EAAA,yBACH,CAZD,CAAYA,IAAAA,EAAU,KAchB,MAAOC,EAGT3B,WAAAA,GAFY4B,OAAAC,eAAA,W,yDAMZD,OAAAC,eAAA,sB,gDAAuBC,IAA+BC,O,EAAA,K,OAAA,E,EAAA,YAAC,OAAAD,EAAWE,aAAa,E,YAAzB,K,iRAGtDJ,OAAAC,eAAA,e,gDAAUI,KACDZ,OAAOa,SAEkBC,IAAnBd,OAAOa,GAAGD,MAETxC,KAAKyC,SAEWC,IAAjB1C,KAAKyC,GAAGD,KAOvBL,OAAAC,eAAA,oB,gDAAcO,CAACH,EAAaI,MACnBhB,OAAOa,SAEkBC,IAAnBd,OAAOa,GAAGD,MAETxC,KAAKyC,SAEWC,IAAjB1C,KAAKyC,GAAGD,IAIZZ,OAAOa,GAAGD,KAASI,GAAa5C,KAAKyC,IAAMzC,KAAKyC,GAAGD,KAASI,IAIvET,OAAAC,eAAA,mB,gDAAcI,GACLZ,OAAOa,QAEkBC,IAAnBd,OAAOa,GAAGD,GACV,EACCxC,KAAKyC,QAEWC,IAAjB1C,KAAKyC,GAAGD,GACR,EAGJxC,KAAKyC,GAAGD,GALJ,EAJA,IAafL,OAAAC,eAAA,uB,gDAAkBI,GACe,IAAzBxC,KAAK6C,WAAWL,GACT,GAGJ,MAAMxC,KAAK6C,WAAWL,QAvD7BxC,KAAKyC,GAAK,CAAC,CACf,EAJYpD,EAAA,CAAXyD,EAAAA,IAAU,yBASXzD,EAAA,CADC0D,EAAAA,IAAM,6BAeP1D,EAAA,CADC0D,EAAAA,IAAM,kCAgBP1D,EAAA,CADC0D,EAAAA,IAAM,iCAgBP1D,EAAA,CADC0D,EAAAA,IAAM,qCAUX,SAAmBb,C,oGC1EnBc,EAAAA,EAAY,CACRC,IAAK,wFACLC,aAAc,CAACF,EAAAA,KAAoCA,EAAAA,KACnDG,iBAAkB,IAClBC,wBAAyB,CACrB,YACA,2BACA,+BACA,+BACA,0BAEJC,yBAA0B,GAC1BC,yBAA0B,EAC1BC,aAAc,CACV,+BACA,uCACA,uBAEJC,YAAa5B,OAAO6B,SAASC,SAAStD,SAAS,gBAAkB,aAAe,gBAOpFuD,SAASC,iBAAiB,oBAAoB,WAC1C,MAAMC,EAAyBF,SAASG,eAAe,WACnDD,IACaE,EAAAA,EAAAA,GAAWF,GACnB/E,OAAOD,EAAAA,cAACmF,EAAAA,EAAgB,MAErC,G,6eCjCApC,OAAOqC,UAAYrC,OAAOqC,WAAa,GAEvC,MAAMC,EAAMA,CAACC,EAAcC,IAIhBC,EAAAA,EACFC,KAAKH,EAAMC,GACXG,MAAKC,IAEsB,MAApBA,EAASC,QACTC,QAAQC,MAAMC,KAAKC,MAAML,EAASM,OAE/BN,EAASM,QAEnBC,OAAMC,IACHN,QAAQC,MAAMK,GACPA,KAINC,EAAaA,IAA0B3C,OAAA,mCACX4B,EAAI,cAAegB,MACxDC,EAAAA,EAAAA,KAAY,KACRvD,OAAO6B,SAASvE,KAAO0C,OAAO6B,SAASvE,KACvC0C,OAAO6B,SAAS2B,QAAQ,GAEhC,IAEaC,EAAUA,IAA0B/C,OAAA,6BAC7C,IAAIgD,QAAiCpB,EAAI,eAAgBgB,MACzDC,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEC,GAAGC,MAAQH,EAAOI,cAAc,GAE1C,IAEaC,EAAmBJ,GAAgCjD,OAAA,6BAC5D,IAGSsD,EAAcA,IAAAC,IAAwCvD,OAAA,MAAAuD,QAAA,aAAjCC,GAAS,GACvC,IAAIR,QAAiCpB,EAAI,WAAYgB,MAErDC,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEQ,IAAIC,UAAY,GAEK,IAAnBV,EAAOW,QACPrE,OAAO6B,SAASvE,KAAO4G,EAAS,GAAGR,EAAOY,wBAA0BZ,EAAOY,aACjD,IAAnBZ,EAAOW,UACdV,EAAAA,EAAEQ,IAAIC,UAAYV,EAAOX,MAC7B,GAER,IAEawB,EAAkBC,GAAyC9D,OAAA,6BACpE,MAAM+D,EAAInB,IACVmB,EAAEC,UAAYF,EACd,IAAId,QAAiCpB,EAAI,gBAAiBmC,GAE1D,OADA3B,QAAQ6B,IAAIjB,GACLA,EAAOkB,GAClB,IAEMtB,EAAoBA,KACf,CACHoB,UAAWf,EAAAA,EAAEkB,KAAKH,UAClBI,QAASnB,EAAAA,EAAEoB,GAAGD,QACdX,IAAKR,EAAAA,EAAEQ,K,2FCnET,SAAUa,IACZ,IAAI5H,GAAM,EACV,GAAIuG,EAAAA,EAAEQ,IAAIc,SAAWtB,EAAAA,EAAEQ,IAAIe,UAAW,CAClC,MAAMC,EAAKxB,EAAAA,EAAEQ,IAAIe,UACjBvB,EAAAA,EAAEQ,IAAIe,UAAYvB,EAAAA,EAAEQ,IAAIc,SACxBtB,EAAAA,EAAEQ,IAAIc,SAAWE,CACrB,CAEA,IACI,IAAIC,GAAM,EACV,IAAK,IAAIC,EAAI,EAAGA,GAAKC,EAAAA,EAAiBC,OAAQF,IAAK,CAC/C,IAAIG,EAAMF,EAAAA,EAAiBD,GAC3B,GAAI1B,EAAAA,EAAEQ,IAAIc,UAAYO,EAAIC,OAAS9B,EAAAA,EAAEQ,IAAIe,WAAaM,EAAIE,OAAQ,CAC9DtI,EAAKoI,EAAIpI,GACTgI,GAAM,EACN,KACJ,CACJ,EACY,IAARA,IACAhI,EAAK,EAEb,CAAE,MAAOmC,GAELnC,EAAK,CACT,CAEA,IAAIuI,EAAiB,EACrB,GAAIhC,EAAAA,EAAEkB,KAAKe,mBACP,OAAQxI,GACJ,KAAK,EACDuI,EAAS,EACb,KAAK,EACL,KAAK,EACDA,EAAS,EACb,KAAK,EACL,KAAK,EACDA,EAAS,EACb,KAAK,EACDA,EAAS,EACb,QACIA,EAAS,OAGjB,OAAQvI,GACJ,KAAK,EACDuI,EAAS,EACb,KAAK,EACL,KAAK,EACDA,EAAS,EACb,KAAK,EACL,KAAK,EACDA,EAAS,EACb,KAAK,EACDA,EAAS,EACb,QACIA,EAAS,EAGrBhC,EAAAA,EAAEC,GAAG+B,OAASA,CAClB,C,0tBChDe,IAAME,EAAN,cAAwB5I,EAAAA,UAGnC0B,WAAAA,CAAYC,GACRC,MAAMD,GAHE2B,OAAAC,eAAA,gB,iDAAmB,IAQ/BD,OAAAC,eAAA,sB,gDAAgBO,IAAWL,EAAA,gCAAC,OAAAtC,KAAKuC,aAAa,MAO9CJ,OAAAC,eAAA,Y,gDAAMO,IAAAkD,IAAyBvD,EAAA,SAAAuD,QAAA,aAAlBC,GAAS,IAClBX,EAAAA,EAAAA,KAAY,KACRnF,KAAK0H,SAAU,CAAI,KAGnBnC,EAAAA,EAAEkB,KAAKkB,OAAWpC,EAAAA,EAAEQ,IAAI6B,iBAAmBrC,EAAAA,EAAEQ,IAAI8B,gBAE1CtC,EAAAA,EAAEkB,KAAKqB,eAAiBvC,EAAAA,EAAEC,GAAGuC,eACpCxC,EAAAA,EAAEC,GAAGwC,mBAAqB,mBAAmBzC,EAAAA,EAAEkB,KAAKwB,uCAEpD9C,EAAAA,EAAAA,KAAY,MACRS,EAAAA,EAAAA,IAAYE,GACZ9F,KAAK0H,SAAU,CAAK,IANxBnC,EAAAA,EAAEC,GAAG0C,oBAAqB,CASlC,MA1BIlI,KAAKmI,IAAMnI,KAAKmI,IAAIC,KAAKpI,OACzBqI,EAAAA,EAAAA,IAAerI,KACnB,CAIAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,cACpE,CAoBA1J,MAAAA,GACI,MAAM,OAACgH,EAAM,MAAE2C,EAAK,gBAAEC,GAAmB1I,KAAKQ,MAE9C,OACI3B,EAAAA,cAAA,OACIM,UAAW,GAAG+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,kBAAkBF,GAAmB,KACnI5G,KAAK,SAAQ,aACD2G,EACZjH,QAASA,IAAMxB,KAAKmI,IAAIrC,GACxBvE,SAAU,GAETkH,EACAzI,KAAK0H,SACF7I,EAAAA,cAAA,QAAMM,UAAU,YACZN,EAAAA,cAAA,KAAGM,UAAU,8DAKjC,GAnDYE,EAAA,CAAXyD,EAAAA,IAAU,8BAeXzD,EAAA,CADC0D,EAAAA,IAAM,0BAfU0E,EAASpI,EAAA,CAD7BC,EAAAA,IACoBmI,G,6cCEN,IAAMoB,EAAN,cAAkBhK,EAAAA,UAK7B0B,WAAAA,CAAYC,GACRC,MAAMD,GALE2B,OAAAC,eAAA,iB,iDAAoB,IACpBD,OAAAC,eAAA,yB,iDAA4B,IAC5BD,OAAAC,eAAA,mB,iDAAa0G,EAAAA,EAAAA,eAQzB3G,OAAAC,eAAA,sB,gDAAgBO,KAAWL,O,EAAA,K,OAAA,E,EAAA,YACvBtC,KAAKuC,cACLvB,YAAW,IAAMhB,KAAK+I,kBAC1B,E,YAH2B,K,iRAJvB/I,KAAKgJ,WAAaC,UAAUC,OAC5Bb,EAAAA,EAAAA,IAAerI,KACnB,CAOAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,cACpE,CAGAO,cAAAA,GACQ/I,KAAKmJ,WAAWC,SACC,IAAIC,sBACjB,EAAEC,MACEtJ,KAAKuJ,iBAAmBD,EAAME,cAAc,GAEhD,CAACC,UAAW,KAEPC,QAAQ1J,KAAKmJ,WAAWC,QAEzC,CAEAtK,MAAAA,G,MACI,OACID,EAAAA,cAAA,OAAKM,UAAU,qBACXN,EAAAA,cAAA,OAAKM,UAAU,UACXN,EAAAA,cAAA,OAAKM,UAAU,yBACV+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAA,OAAK8K,IAAK3J,KAAKmJ,YACXtK,EAAAA,cAAC4I,EAAAA,EAAS,CACNgB,MAAM,cACNC,gBAAiB1I,KAAKQ,MAAMoJ,KAAO,KAAO,SAKpD1H,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACnD/J,EAAAA,cAAC4I,EAAAA,EAAS,CACNgB,MAAM,cACNC,gBAAiB1I,KAAKQ,MAAMoJ,KAAO,KAAO,QAIhD1H,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACnD1G,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW4H,YAAa,OAC9B,QAAjBC,EAAAvE,EAAAA,EAAEkB,KAAKsD,kBAAU,IAAAD,OAAA,EAAAA,EAAE3C,SAChBtI,EAAAA,cAAC4I,EAAAA,EAAS,CACNgB,MAAM,UACN3C,QAAQ,EACR4C,gBAAiB,cAK/B1I,KAAKQ,MAAMoJ,MAAQrE,EAAAA,EAAEyE,UACnBnL,EAAAA,cAAA,OAAKM,UAAU,UACXN,EAAAA,cAAA,QACIM,UAAU,yBACVqC,QAASA,IAAMyI,UAAU,wBAAsB,gCAO1D/H,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,KACjD5I,KAAKuJ,kBACF1K,EAAAA,cAAA,OAAKM,UAAU,+BACXN,EAAAA,cAAC4I,EAAAA,EAAS,CACNgB,MAAM,cACNC,gBAAgB,aAK9BxG,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAAMrD,EAAAA,EAAEC,GAAG0E,UAC9DrL,EAAAA,cAAA,OAAKM,UAAU,cACXN,EAAAA,cAAC4I,EAAAA,EAAS,CACNgB,MAAM,cACNC,gBAAgB,YAK3BnD,EAAAA,EAAEC,GAAG0E,UAAY3E,EAAAA,EAAEQ,IAAIC,WAAiC,KAApBT,EAAAA,EAAEQ,IAAIC,WACvCnH,EAAAA,cAAA,OAAKM,UAAU,2BACXN,EAAAA,cAAA,kBACAA,EAAAA,cAAA,OAAKM,UAAU,QAAQoG,EAAAA,EAAEQ,IAAIC,YAIrCnH,EAAAA,cAACsL,EAAAA,EAAW,OAGfvI,OAAOwI,WAAa,MACjBvL,EAAAA,cAAA,OAAK4C,MAAO,CAAC4I,SAAU,WAAYC,IAAK,EAAGC,KAAM,IAC5CvK,KAAKgJ,UAAYzD,EAAAA,EAAEyE,UAChBnL,EAAAA,cAAA,KACIM,UAAU,sBACVqC,QAASgJ,EAAAA,EAAEtB,MACXpH,KAAK,SAAQ,aACF,WAOvC,GAtHYzC,EAAA,CAAXyD,EAAAA,IAAU,+BACCzD,EAAA,CAAXyD,EAAAA,IAAU,uCACCzD,EAAA,CAAXyD,EAAAA,IAAU,iCAkBXzD,EAAA,CADC0D,EAAAA,IAAM,mCApBU8F,EAAGxJ,EAAA,CADvBC,EAAAA,IACoBuJ,G,+tBCJN,IAAM4B,EAAN,cAAyB5L,EAAAA,UAkBpC0B,WAAAA,CAAYC,GACRC,MAAMD,GAlBE2B,OAAAC,eAAA,e,yDACAD,OAAAC,eAAA,e,yDACAD,OAAAC,eAAA,e,yDACAD,OAAAC,eAAA,e,yDACAD,OAAAC,eAAA,iB,yDACAD,OAAAC,eAAA,iB,yDACAD,OAAAC,eAAA,iB,yDACAD,OAAAC,eAAA,iB,yDAEAD,OAAAC,eAAA,qB,yDACAD,OAAAC,eAAA,c,yDAEAD,OAAAC,eAAA,e,gDAAiB,KACjBD,OAAAC,eAAA,e,gDAAiB,KACjBD,OAAAC,eAAA,e,gDAAiB,KACjBD,OAAAC,eAAA,e,gDAAiB,KAkB7BD,OAAAC,eAAA,iB,gDAAWO,IAAWL,EAAA,iCAClB6C,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEC,GAAG0C,oBAAqB,EAC1B3C,EAAAA,EAAEC,GAAGkF,yBAA0B,EAC/B1J,YAAW,WACP2J,SAASC,MACb,GAAG,IAAI,GAEf,MAGAzI,OAAAC,eAAA,Y,gDAAMO,IAAWL,EAAA,iCACb6C,EAAAA,EAAAA,KAAY,KAKR,GAJAnF,KAAK6K,OAAS,GACd7K,KAAK8K,OAAS,GACd9K,KAAK+K,OAAS,GACd/K,KAAKgL,OAAS,GACkB,IAA5BzF,EAAAA,EAAEkB,KAAKwE,kBAA0B1F,EAAAA,EAAEC,GAAGkF,wBAAyB,CAC/D,IAAK1K,KAAKkL,OAEN,YADAlL,KAAK+K,OAAS,kBAAkBxF,EAAAA,EAAEkB,KAAKwB,QAAQkD,uBAGnD,IAAKnL,KAAKoL,OAEN,YADApL,KAAK+K,OAAS,kBAAkBxF,EAAAA,EAAEkB,KAAKwB,QAAQkD,wBAG/CnL,KAAKqL,UAAYrL,KAAKqL,SAAW,IACjCrL,KAAK8K,OAAS,4DAEd9K,KAAKsL,UAAYtL,KAAKsL,SAAW,IACjCtL,KAAK8K,OAAS,6DAEd9K,KAAKqL,UAAYrL,KAAKqL,SAAW,KACjCrL,KAAKgL,OAAS,kEAEdhL,KAAKsL,UAAYtL,KAAKsL,SAAW,KACjCtL,KAAKgL,OAAS,2DAEdhL,KAAKqL,UAAYrL,KAAKqL,SAAWrL,KAAKkL,SACtClL,KAAK8K,OAAS,8DAA8DvF,EAAAA,EAAEkB,KAAKwB,QAAQkD,wBAE3FnL,KAAKsL,UAAYtL,KAAKsL,SAAWtL,KAAKoL,SACtCpL,KAAK8K,OAAS,+DAA+DvF,EAAAA,EAAEkB,KAAKwB,QAAQkD,yBAG5FnL,KAAKkL,OAAS,IACdlL,KAAK+K,OAAS,UAAUxF,EAAAA,EAAEkB,KAAKwB,qDAE/BjI,KAAKoL,OAAS,IACdpL,KAAK+K,OAAS,UAAUxF,EAAAA,EAAEkB,KAAKwB,sDAE/BjI,KAAKkL,OAAS,KACdlL,KAAK+K,OAAS,UAAUxF,EAAAA,EAAEkB,KAAKwB,2DAE/BjI,KAAKoL,OAAS,KACdpL,KAAK+K,OAAS,UAAUxF,EAAAA,EAAEkB,KAAKwB,2DAEvC,CAEKjI,KAAKuL,OAILvL,KAAKwL,QAINxL,KAAKuL,OAAS,IACdvL,KAAK6K,OAAS,GAAGtF,EAAAA,EAAEkB,KAAKwB,qDAExBjI,KAAKwL,OAAS,IACdxL,KAAK6K,OAAS,GAAGtF,EAAAA,EAAEkB,KAAKwB,sDAExBjI,KAAKuL,OAAS,KACdvL,KAAK6K,OAAS,GAAGtF,EAAAA,EAAEkB,KAAKwB,2DAExBjI,KAAKwL,OAAS,KACdxL,KAAK6K,OAAS,GAAGtF,EAAAA,EAAEkB,KAAKwB,4DAGxBjI,KAAKyL,UAAYzL,KAAKyL,SAAW,IACjCzL,KAAK8K,OAAS,qDAEd9K,KAAK0L,UAAY1L,KAAK0L,SAAW,IACjC1L,KAAK8K,OAAS,sDAEd9K,KAAKyL,UAAYzL,KAAKyL,SAAW,KACjCzL,KAAK8K,OAAS,2DAEd9K,KAAK0L,UAAY1L,KAAK0L,SAAW,KACjC1L,KAAK8K,OAAS,4DAGd9K,KAAKyL,UAAYzL,KAAKyL,SAAWzL,KAAKuL,SACtCvL,KAAK8K,OAAS,gDAAgDvF,EAAAA,EAAEkB,KAAKwB,QAAQkD,wBAE7EnL,KAAK0L,UAAY1L,KAAK0L,SAAW1L,KAAKwL,SACtCxL,KAAK8K,OAAS,iDAAiDvF,EAAAA,EAAEkB,KAAKwB,QAAQkD,yBAI9D,KAAhBnL,KAAK6K,QACW,KAAhB7K,KAAK8K,QACW,KAAhB9K,KAAK+K,QACW,KAAhB/K,KAAKgL,SAKTzF,EAAAA,EAAEQ,IAAIc,SAAW7G,KAAKuL,OACtBhG,EAAAA,EAAEQ,IAAIe,UAAY9G,KAAKwL,OACvBjG,EAAAA,EAAEQ,IAAI4F,WAAa3L,KAAKyL,SACxBlG,EAAAA,EAAEQ,IAAI6F,YAAc5L,KAAK0L,SAEO,IAA5BnG,EAAAA,EAAEkB,KAAKwE,kBAA0B1F,EAAAA,EAAEC,GAAGkF,yBACtCnF,EAAAA,EAAEQ,IAAI8F,UAAY7L,KAAKkL,OACvB3F,EAAAA,EAAEQ,IAAI+F,WAAa9L,KAAKoL,OACxB7F,EAAAA,EAAEQ,IAAIgG,YAAc/L,KAAKqL,SACzB9F,EAAAA,EAAEQ,IAAIiG,aAAehM,KAAKsL,UACS,IAA5B/F,EAAAA,EAAEkB,KAAKwE,mBACd1F,EAAAA,EAAEQ,IAAI8F,UAAY7L,KAAKuL,OACvBhG,EAAAA,EAAEQ,IAAI+F,WAAa9L,KAAKwL,OACxBjG,EAAAA,EAAEQ,IAAIgG,YAAc/L,KAAKyL,SACzBlG,EAAAA,EAAEQ,IAAIiG,aAAehM,KAAK0L,UAG9B1L,KAAKiM,aAAe1G,EAAAA,EAAEQ,IAAIc,UAAYtB,EAAAA,EAAEQ,IAAIe,UAAY,IAAM,IAE9DvB,EAAAA,EAAEQ,IAAImG,sBAA8C,MAAtBlM,KAAKiM,aAC/BjM,KAAKmM,OAASnM,KAAKmM,MAAMhF,OAAS,IAClC5B,EAAAA,EAAEQ,IAAIqG,SAAWpM,KAAKmM,MAAME,SAAS,KAAK,KAI9ClH,EAAAA,EAAAA,KAAY,MACRS,EAAAA,EAAAA,KAAa,MAvEb5F,KAAK6K,OAAS,WAAWtF,EAAAA,EAAEkB,KAAKwB,QAAQkD,uBAJxCnL,KAAK6K,OAAS,WAAWtF,EAAAA,EAAEkB,KAAKwB,QAAQkD,qBA4E1C,GAEV,MAxJInL,KAAKmI,IAAMnI,KAAKmI,IAAIC,KAAKpI,MACzBA,KAAKsM,SAAWtM,KAAKsM,SAASlE,KAAKpI,OACnCqI,EAAAA,EAAAA,IAAerI,KACnB,CAEAU,iBAAAA,GACQ6E,EAAAA,EAAEQ,IAAIwG,cACNvM,KAAKiM,aAAe,IAEpBjM,KAAKiM,aAAe,GAE5B,CA+IAnN,MAAAA,GACI,OACID,EAAAA,cAAA,OAAKM,UAAU,kBACXN,EAAAA,cAAA,0BAEAA,EAAAA,cAAA,OAAKM,UAAU,aACXN,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,kBACHC,MAAO,qBAEPJ,EAAAA,cAAA,WACIA,EAAAA,cAAA,sEACAA,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAO,6DAEX3N,EAAAA,cAAA,OACI4N,IAAI,oBACJ/E,QAAQ,OACRgF,IAAI,+DAKpB7N,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,kBACHC,MAAO,gCAEPJ,EAAAA,cAAA,WACIA,EAAAA,cAAA,yCACAA,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAO,kFAEX3N,EAAAA,cAAA,OACI4N,IAAI,sBACJ/E,QAAQ,OACRgF,IAAI,+EACJvN,UAAU,YAM1BN,EAAAA,cAAA,OAAKM,UAAU,aACXN,EAAAA,cAAA,KAAGM,UAAU,QAAM,uIAEmD,IAClEN,EAAAA,cAAA,KACIM,UAAU,qBACVqC,QAASA,IAAMX,EAAAA,GAAW,mBAAkB,aACjC,wDAGnBhC,EAAAA,cAAA,KAAGM,UAAU,oBACTN,EAAAA,cAAA,UACIkD,KAAK,SACL5C,UAAU,uBACVqC,QAASA,IAAMX,EAAAA,GAAW,mBAAkB,aACjC,gCAA8B,uBAEpB0E,EAAAA,EAAEkB,KAAKwB,QAC5BpJ,EAAAA,cAAA,QAAM4C,MAAO,CAACkL,YAAa,SACvB9N,EAAAA,cAAA,KAAGM,UAAU,0BAIzBN,EAAAA,cAAA,MAAIM,UAAU,SAEdN,EAAAA,cAAA,OAAKM,UAAU,aACkB,IAA5BoG,EAAAA,EAAEkB,KAAKwE,mBAA2B1F,EAAAA,EAAEC,GAAGkF,yBACpC7L,EAAAA,cAAA,OAAKM,UAAU,QAAM,gBAAmBoG,EAAAA,EAAEkB,KAAKwB,QAAO,KAE7B,IAA5B1C,EAAAA,EAAEkB,KAAKwE,kBAA0B1F,EAAAA,EAAEC,GAAGkF,yBACnC7L,EAAAA,cAAA,OAAKM,UAAU,QAAM,OAAMoG,EAAAA,EAAEkB,KAAKwB,SAEtCpJ,EAAAA,cAAA,OAAKM,UAAU,QACXN,EAAAA,cAAA,OACIM,UAAU,aACVsC,MAAO,CAACmL,aAAc,YAAU,aAErBrH,EAAAA,EAAEkB,KAAKwB,QAAO,UAAS,KAEtCpJ,EAAAA,cAAA,OACIM,UAAU,6BACVsC,MAAO,CAACoL,WAAY,KAEpBhO,EAAAA,cAAA,OACIM,UAAU,gBACVsC,MAAO,CAAC4F,MAAO,IAAKyF,KAAM,YAE1BjO,EAAAA,cAAA,SACIkD,KAAK,SACLgL,KAAK,QACLC,KAAK,SACL7N,UAAU,eACV8N,YAAY,QACZxL,MAAO,CAAC4F,MAAO,KACf6F,SAAU/L,IACNgE,EAAAA,EAAAA,KAAY,KACRnF,KAAKuL,OAAS4B,WAAWhM,EAAE/B,OAAOuD,MAAM,IAC1C,aAEK,iCAEf9D,EAAAA,cAAA,SAAOuO,QAAQ,UAAQ,UAE3BvO,EAAAA,cAAA,QAAMM,UAAU,oBAAkB,KAClCN,EAAAA,cAAA,OACIM,UAAU,gBACVsC,MAAO,CAAC4F,MAAO,IAAKyF,KAAM,YAE1BjO,EAAAA,cAAA,SACIkD,KAAK,SACLgL,KAAK,QACLC,KAAK,SACL7N,UAAU,eACV8N,YAAY,SACZxL,MAAO,CAAC4F,MAAO,KACf6F,SAAU/L,IACNgE,EAAAA,EAAAA,KAAY,KACRnF,KAAKwL,OAAS2B,WAAWhM,EAAE/B,OAAOuD,MAAM,IAC1C,aAEK,kCAEf9D,EAAAA,cAAA,SAAOuO,QAAQ,UAAQ,WAE3BvO,EAAAA,cAAA,QAAMM,UAAU,oBAAkB,WAEtCN,EAAAA,cAAA,OACIM,UAAU,OACVsC,MAAO,CAACoL,WAAY,KAAG,uBAI1B7M,KAAK6K,QAA0B,KAAhB7K,KAAK6K,QACjBhM,EAAAA,cAAA,OAAKM,UAAU,OAAOa,KAAK6K,SAGnChM,EAAAA,cAAA,OAAKM,UAAU,QACXN,EAAAA,cAAA,OACIM,UAAU,aACVsC,MAAO,CAACmL,aAAc,YAAU,mCAEC,KAErC/N,EAAAA,cAAA,OACIM,UAAU,6BACVsC,MAAO,CAACoL,WAAY,KAEpBhO,EAAAA,cAAA,OACIM,UAAU,gBACVsC,MAAO,CAAC4F,MAAO,IAAKyF,KAAM,YAE1BjO,EAAAA,cAAA,SACIkD,KAAK,SACLgL,KAAK,QACLC,KAAK,WACL7N,UAAU,eACV8N,YAAY,QACZxL,MAAO,CAAC4F,MAAO,KACf6F,SAAU/L,IACNgE,EAAAA,EAAAA,KAAY,KACRnF,KAAKyL,SAAW0B,WAAWhM,EAAE/B,OAAOuD,MAAM,IAC5C,aAEK,iCAEf9D,EAAAA,cAAA,SAAOuO,QAAQ,YAAU,UAE7BvO,EAAAA,cAAA,QAAMM,UAAU,oBAAkB,KAClCN,EAAAA,cAAA,OACIM,UAAU,gBACVsC,MAAO,CAAC4F,MAAO,IAAKyF,KAAM,YAE1BjO,EAAAA,cAAA,SACIkD,KAAK,SACLgL,KAAK,QACLC,KAAK,WACL7N,UAAU,eACV8N,YAAY,SACZxL,MAAO,CAAC4F,MAAO,KACf6F,SAAU/L,IACNgE,EAAAA,EAAAA,KAAY,KACRnF,KAAK0L,SAAWyB,WAAWhM,EAAE/B,OAAOuD,MAAM,IAC5C,aAEK,kCAEf9D,EAAAA,cAAA,SAAOuO,QAAQ,YAAU,WAE7BvO,EAAAA,cAAA,QAAMM,UAAU,oBAAkB,WAEtCN,EAAAA,cAAA,OACIM,UAAU,OACVsC,MAAO,CAACoL,WAAY,KAAG,uBAI1B7M,KAAK8K,QAA0B,KAAhB9K,KAAK8K,QACjBjM,EAAAA,cAAA,OAAKM,UAAU,OAAOa,KAAK8K,SAIN,IAA5BvF,EAAAA,EAAEkB,KAAKwE,mBAA2B1F,EAAAA,EAAEC,GAAGkF,yBACpC7L,EAAAA,cAAA,OAAKM,UAAU,QACXN,EAAAA,cAAA,6BACsB0G,EAAAA,EAAEkB,KAAKwB,QAAQkD,cAAa,+BAGlDtM,EAAAA,cAAA,OAAK4C,MAAO,CAACoL,WAAY,KACrBhO,EAAAA,cAAA,UACIkD,KAAK,SACLP,QAASA,KACL2D,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEC,GAAGkF,yBAA0B,CAAI,IAG3CvL,UAAU,+BAA6B,SAQ1B,IAA5BoG,EAAAA,EAAEkB,KAAKwE,kBAA0B1F,EAAAA,EAAEC,GAAGkF,yBACnC7L,EAAAA,cAAA,OAAKM,UAAU,aAAW,UAASoG,EAAAA,EAAEkB,KAAKwB,SAGjB,IAA5B1C,EAAAA,EAAEkB,KAAKwE,kBAA0B1F,EAAAA,EAAEC,GAAGkF,yBACnC7L,EAAAA,cAAA,OAAKM,UAAU,QACXN,EAAAA,cAAA,OACIM,UAAU,aACVsC,MAAO,CAACmL,aAAc,YAAU,aAErBrH,EAAAA,EAAEkB,KAAKwB,QAAO,UAAS,KAEtCpJ,EAAAA,cAAA,OACIM,UAAU,6BACVsC,MAAO,CAACoL,WAAY,KAEpBhO,EAAAA,cAAA,OACIM,UAAU,gBACVsC,MAAO,CAAC4F,MAAO,IAAKyF,KAAM,YAE1BjO,EAAAA,cAAA,SACIkD,KAAK,OACLiL,KAAK,SACL7N,UAAU,eACV8N,YAAY,QACZxL,MAAO,CAAC4F,MAAO,KACf6F,SAAU/L,IACNgE,EAAAA,EAAAA,KAAY,KACRnF,KAAKkL,OAASiC,WAAWhM,EAAE/B,OAAOuD,MAAM,IAGhD0K,QAAQ,OACRC,UAAW,EAAC,aACD,iCAEfzO,EAAAA,cAAA,SAAOuO,QAAQ,UAAQ,UAE3BvO,EAAAA,cAAA,QAAMM,UAAU,oBAAkB,KAClCN,EAAAA,cAAA,OACIM,UAAU,gBACVsC,MAAO,CAAC4F,MAAO,IAAKyF,KAAM,YAE1BjO,EAAAA,cAAA,SACIkD,KAAK,OACLiL,KAAK,SACL7N,UAAU,eACV8N,YAAY,SACZxL,MAAO,CAAC4F,MAAO,KACf6F,SAAU/L,IACNgE,EAAAA,EAAAA,KAAY,KACRnF,KAAKoL,OAAS+B,WAAWhM,EAAE/B,OAAOuD,MAAM,IAGhD0K,QAAQ,OACRC,UAAW,EAAC,aACD,kCAEfzO,EAAAA,cAAA,SAAOuO,QAAQ,UAAQ,WAE3BvO,EAAAA,cAAA,QAAMM,UAAU,oBAAkB,WAErCa,KAAK+K,QAA0B,KAAhB/K,KAAK+K,QACjBlM,EAAAA,cAAA,OAAKM,UAAU,OAAOa,KAAK+K,SAIV,IAA5BxF,EAAAA,EAAEkB,KAAKwE,kBAA0B1F,EAAAA,EAAEC,GAAGkF,yBACnC7L,EAAAA,cAAA,OAAKM,UAAU,QACXN,EAAAA,cAAA,OACIM,UAAU,aACVsC,MAAO,CAACmL,aAAc,YAAU,mCAEC,KAErC/N,EAAAA,cAAA,OACIM,UAAU,6BACVsC,MAAO,CAACoL,WAAY,KAEpBhO,EAAAA,cAAA,OACIM,UAAU,gBACVsC,MAAO,CAAC4F,MAAO,IAAKyF,KAAM,YAE1BjO,EAAAA,cAAA,SACIkD,KAAK,OACLiL,KAAK,WACL7N,UAAU,eACV8N,YAAY,QACZxL,MAAO,CAAC4F,MAAO,KACf6F,SAAU/L,IACNgE,EAAAA,EAAAA,KAAY,KACRnF,KAAKqL,SAAW8B,WAAWhM,EAAE/B,OAAOuD,MAAM,IAGlD0K,QAAQ,OACRC,UAAW,EAAC,aACD,iCAEfzO,EAAAA,cAAA,SAAOuO,QAAQ,YAAU,UAE7BvO,EAAAA,cAAA,QAAMM,UAAU,oBAAkB,KAClCN,EAAAA,cAAA,OACIM,UAAU,gBACVsC,MAAO,CAAC4F,MAAO,IAAKyF,KAAM,YAE1BjO,EAAAA,cAAA,SACIkD,KAAK,OACLiL,KAAK,WACL7N,UAAU,eACV8N,YAAY,SACZxL,MAAO,CAAC4F,MAAO,KACf6F,SAAU/L,IACNgE,EAAAA,EAAAA,KAAY,KACRnF,KAAKsL,SAAW6B,WAAWhM,EAAE/B,OAAOuD,MAAM,IAGlD0K,QAAQ,OACRC,UAAW,EAAC,aACD,kCAEfzO,EAAAA,cAAA,SAAOuO,QAAQ,YAAU,WAE7BvO,EAAAA,cAAA,QAAMM,UAAU,oBAAkB,WAErCa,KAAKgL,QAA0B,KAAhBhL,KAAKgL,QACjBnM,EAAAA,cAAA,OAAKM,UAAU,OAAOa,KAAKgL,SAKvCnM,EAAAA,cAAA,WAEAA,EAAAA,cAAA,OAAKM,UAAU,QACXN,EAAAA,cAAA,OACIM,UAAU,aACVsC,MAAO,CAACmL,aAAc,YAErBrH,EAAAA,EAAEkB,KAAKwB,QAAO,wBAA2B,KAE9CpJ,EAAAA,cAAA,UACIM,UAAU,cACVwD,MAAO3C,KAAKiM,aACZiB,SAAU/L,IACNgE,EAAAA,EAAAA,KAAY,KACRnF,KAAKiM,aAAe9K,EAAE/B,OAAOuD,KAAK,KAI1C9D,EAAAA,cAAA,UAAQ8D,MAAM,KAAG,0BACjB9D,EAAAA,cAAA,UAAQ8D,MAAM,KAAG,yBAGzB9D,EAAAA,cAAA,OAAKM,UAAU,eACXN,EAAAA,cAAA,OACIM,UAAU,gBACVsC,MAAO,CAAC,GAER5C,EAAAA,cAAA,YACImO,KAAK,YACLM,UAAW,IACX7L,MAAO,CAAC6F,OAAQ,IAChB4F,SAAU/L,IACNgE,EAAAA,EAAAA,KAAY,KACRnF,KAAKmM,MAAQhL,EAAE/B,OAAOuD,KAAK,IAGnCxD,UAAU,eACV8N,YAAY,QAAO,aACR,yBAEfpO,EAAAA,cAAA,SAAOuO,QAAQ,aAAW,kBAGlCvO,EAAAA,cAAA,WACAA,EAAAA,cAAA,OAAKM,UAAU,oBACVoG,EAAAA,EAAEQ,KAAOR,EAAAA,EAAEQ,IAAIC,WAAiC,KAApBT,EAAAA,EAAEQ,IAAIC,WAC/BnH,EAAAA,cAAA,OAAKM,UAAU,YAAYoG,EAAAA,EAAEQ,IAAIC,WAErCnH,EAAAA,cAAA,OACIM,UAAU,YACV2C,KAAK,SAELjD,EAAAA,cAAA,UACIkD,KAAK,SACL5C,UAAU,uBAAsB,aACrB,yBACXqC,QAASxB,KAAKsM,SACd/K,SAAU,GAAC,kBAIf1C,EAAAA,cAAA,UACIkD,KAAK,SACL5C,UAAU,mBACVqC,QAASxB,KAAKmI,IAAG,aACN,cACX5G,SAAU,GAAC,oBAW/C,GAhmBYlC,EAAA,CAAXyD,EAAAA,IAAU,6BACCzD,EAAA,CAAXyD,EAAAA,IAAU,6BACCzD,EAAA,CAAXyD,EAAAA,IAAU,6BACCzD,EAAA,CAAXyD,EAAAA,IAAU,6BACCzD,EAAA,CAAXyD,EAAAA,IAAU,+BACCzD,EAAA,CAAXyD,EAAAA,IAAU,+BACCzD,EAAA,CAAXyD,EAAAA,IAAU,+BACCzD,EAAA,CAAXyD,EAAAA,IAAU,+BAECzD,EAAA,CAAXyD,EAAAA,IAAU,mCACCzD,EAAA,CAAXyD,EAAAA,IAAU,4BAECzD,EAAA,CAAXyD,EAAAA,IAAU,6BACCzD,EAAA,CAAXyD,EAAAA,IAAU,6BACCzD,EAAA,CAAXyD,EAAAA,IAAU,6BACCzD,EAAA,CAAXyD,EAAAA,IAAU,6BAkBXzD,EAAA,CADC0D,EAAAA,IAAM,+BAYP1D,EAAA,CADC0D,EAAAA,IAAM,0BA5CU0H,EAAUpL,EAAA,CAD9BC,EAAAA,IACoBmL,G,wuBCGN,IAAM8C,EAAN,cAAuB1O,EAAAA,UAGlC0B,WAAAA,CAAYC,GACRC,MAAMD,GAHE2B,OAAAC,eAAA,sB,yDAQZD,OAAAC,eAAA,sB,gDAAgBO,IAAWL,EAAA,gCAAC,OAAAtC,KAAKuC,aAAa,MAY9CJ,OAAAC,eAAA,a,gDAAcpD,GAAcsD,EAAA,iCACxB6C,EAAAA,EAAAA,KAAY,IAAW7C,EAAA,gCACnB,MAAMkL,EAAMjI,EAAAA,EAAEkB,KAAKsD,WAAW0D,QAAOC,GAAKA,EAAE1O,KAAOA,IAAI,GACvD,GAAKwO,EAIL,GAAIA,EAAIpH,gBAAkB,EAAG,CACzBb,EAAAA,EAAEQ,IAAI4H,gBAAkBH,EAAIxO,GAC5BuG,EAAAA,EAAEQ,IAAI6H,iCAAmCJ,EAAIxO,GAAK,EAClD,MAAM6O,EAAaL,EAAIM,UACjBC,EAAaP,EAAIQ,WAEnBH,GAAME,GACNxI,EAAAA,EAAEQ,IAAIc,SAAWgH,EACjBtI,EAAAA,EAAEQ,IAAIe,UAAYiH,EAClBxI,EAAAA,EAAEQ,IAAIwG,eAAgB,GACfsB,EAAKE,IACZxI,EAAAA,EAAEQ,IAAIc,SAAWgH,EACjBtI,EAAAA,EAAEQ,IAAIe,UAAYiH,EAClBxI,EAAAA,EAAEQ,IAAIwG,eAAgB,GAE1BhH,EAAAA,EAAEkB,KAAKwH,aAAe1I,EAAAA,EAAEQ,IAAIwG,cAC5BhH,EAAAA,EAAEkB,KAAKyH,sBAAwB3I,EAAAA,EAAEQ,IAAIwG,cACrChH,EAAAA,EAAEQ,IAAI8F,UAAYtG,EAAAA,EAAEQ,IAAIc,SACxBtB,EAAAA,EAAEQ,IAAI+F,WAAavG,EAAAA,EAAEQ,IAAIe,UACrBvB,EAAAA,EAAEkB,KAAKoF,WAAa,IACpBtG,EAAAA,EAAEQ,IAAI8F,WAAa,EACnBtG,EAAAA,EAAEQ,IAAI+F,YAAc,GAGD,IAAnBvG,EAAAA,EAAEQ,IAAIoI,WACN5I,EAAAA,EAAEQ,IAAIoI,SAAW,EACjB5I,EAAAA,EAAEkB,KAAK2H,cAAgB,GAG3B7I,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEgJ,OACN,KAAO,CACH,MAAMjJ,QAAgBa,EAAAA,EAAAA,IAASqH,EAAIpH,iBACnCvF,EAAAA,GAAcyE,EAClB,CACJ,KACJ,MA5DItF,KAAKwO,KAAOxO,KAAKwO,KAAKpG,KAAKpI,OAC3BqI,EAAAA,EAAAA,IAAerI,KACnB,CAIAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,gBAChErD,EAAAA,EAAAA,KAAY,KACRnF,KAAKyO,cAAgBlJ,EAAAA,EAAEkB,KAAKsD,WAAW0D,QACnCC,GAAKA,EAAEgB,aAAe1O,KAAKQ,MAAMkO,aACnC,GAAGC,YAAY,GAEzB,CAiDA7P,MAAAA,GACI,GAAKyG,EAAAA,EAAEqJ,OAAU5O,KAAKyO,gBAAiBlJ,EAAAA,EAAEQ,IAAI8I,OAI7C,OACIhQ,EAAAA,cAAA,OACIM,UAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,WAC7EnH,MAAO,CACHkL,YAAazK,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,IAEhF5J,GAAI,YAAYgB,KAAKQ,MAAMkO,cAE3B7P,EAAAA,cAAA,WACIA,EAAAA,cAAA,WACIA,EAAAA,cAAA,QACIM,UAAU,aACVsC,MAAO,CACHmL,aAAc,UACdkC,cAAe5M,EAAAA,GAAYyG,YACvB1G,EAAAA,EAAW2G,iBACX,GAEE,EACA,GACNmG,QAAS7M,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACxD,QACA,GACNoG,WAAY9M,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAC3D,IACA,KAGT5I,KAAKyO,eAGTlJ,EAAAA,EAAEkB,KAAKsD,WAAW5C,OAAS,GACxBtI,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,IAAnF,WACX9G,KAAK,WAEJyD,EAAAA,EAAEkB,KAAKsD,WACH0D,QAAOC,GAAKA,EAAEgB,aAAe1O,KAAKQ,MAAMkO,aACxCO,KAAI,CAACC,EAAGjI,IACLpI,EAAAA,cAAA,OACI2D,IAAKyE,EACLhI,MAAOiQ,EAAEC,KAAI,aACD,YAAYnP,KAAKQ,MAAMkO,aAAY,aACnC,cAAcQ,EAAEC,uCAAuCD,EAAEP,eACrExP,UAAW,GAAG+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,gBAAgBrD,EAAAA,EAAEQ,IAAI4H,kBAAoBuB,EAAElQ,GAAK,UAAY,KAC3JwC,QAASA,IAAMxB,KAAKwO,KAAKU,EAAElQ,IAC3B8C,KAAK,SACLP,SAAU,GAEV1C,EAAAA,cAAA,OAAKM,UAAU,SACV+P,EAAEC,KACF5J,EAAAA,EAAE6J,kBACC7J,EAAAA,EAAEyE,UACFzE,EAAAA,EAAEQ,IAAI4H,kBAAoBuB,EAAElQ,IACxBH,EAAAA,cAAA,OAAKM,UAAU,sBACXN,EAAAA,cAAA,KAAGM,UAAU,+BAShDoG,EAAAA,EAAEkB,KAAKsD,WAAW5C,OAAS,GACxBtI,EAAAA,cAAA,UACIM,UAAU,6BACVsC,MAAO,CACH4F,MAAO,OACPwF,WAAa3K,EAAAA,GAAYyG,YACrB1G,EAAAA,EAAW2G,iBACX,GAGE,GADA,UAGVsE,SAAU/L,GAAKnB,KAAKwO,KAAKa,SAASlO,EAAE/B,OAAOuD,MAAO,MAEjD4C,EAAAA,EAAEkB,MACClB,EAAAA,EAAEkB,KAAK6I,OACP/J,EAAAA,EAAEkB,KAAKsD,WACF0D,QAAOC,GAAKA,EAAEgB,aAAe1O,KAAKQ,MAAMkO,aACxCO,KAAI,CAACC,EAAGjI,IACLpI,EAAAA,cAAA,UACI2D,IAAKyE,EACLtE,MAAOuM,EAAElQ,IAERkQ,EAAEC,WAOlCjN,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAAM/J,EAAAA,cAAA,WAGxE,GAxKYQ,EAAA,CAAXyD,EAAAA,IAAU,oCAoBXzD,EAAA,CADC0D,EAAAA,IAAM,2BApBUwK,EAAQlO,EAAA,CAD5BC,EAAAA,IACoBiO,G,isBCRN,IAAMgC,EAAN,cAAoC1Q,EAAAA,UAC/C0B,WAAAA,CAAYC,GACRC,MAAMD,GAQV2B,OAAAC,eAAA,c,gDAAejB,GAA0CmB,EAAA,iCACrD6C,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEQ,IAAIyJ,cAAgBrO,EAAE/B,OAAOuD,MAAM0J,SAAS,KAAK,EAAM,GAEjE,MAGAlK,OAAAC,eAAA,c,gDAAejB,GAA0CmB,EAAA,iCACrD6C,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEQ,IAAI0J,cAAgBtO,EAAE/B,OAAOuD,MAAM0J,SAAS,KAAK,EAAM,GAEjE,MAGAlK,OAAAC,eAAA,c,gDAAejB,GAA0CmB,EAAA,iCACrD6C,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEQ,IAAI2J,cAAgBvO,EAAE/B,OAAOuD,MAAM0J,SAAS,KAAK,EAAM,GAEjE,MAzBIrM,KAAK2P,MAAQ3P,KAAK2P,MAAMvH,KAAKpI,MAC7BA,KAAK4P,MAAQ5P,KAAK4P,MAAMxH,KAAKpI,MAC7BA,KAAK6P,MAAQ7P,KAAK6P,MAAMzH,KAAKpI,OAC7BqI,EAAAA,EAAAA,IAAerI,KACnB,CAuBAlB,MAAAA,GACI,GAAKyG,EAAAA,EAAEqJ,OAAUrJ,EAAAA,EAAEC,GAAGsK,YAAavK,EAAAA,EAAEkB,KAAKkB,MAI1C,OACI9I,EAAAA,cAAA,OAAKM,UAAU,YACXN,EAAAA,cAAA,WACIA,EAAAA,cAAA,WACIA,EAAAA,cAAA,WACK0G,EAAAA,EAAEkB,KAAKsJ,sBACJlR,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAKM,UAAU,KAAKoG,EAAAA,EAAEkB,KAAKuJ,oBAC3BnR,EAAAA,cAAA,WACIA,EAAAA,cAAA,SACIkD,KAAK,OACL5C,UAAU,eACVsC,MAAO,CAAC4F,MAAO,KACf6F,SAAUlN,KAAK2P,MACfrC,UAAW,IAAG,aACF,SAAS/H,EAAAA,EAAEkB,KAAKuJ,yBAK3CzK,EAAAA,EAAEkB,KAAKwJ,sBACJpR,EAAAA,cAAA,OAAKM,UAAU,QACXN,EAAAA,cAAA,OAAKM,UAAU,KAAKoG,EAAAA,EAAEkB,KAAKyJ,oBAC3BrR,EAAAA,cAAA,SACIkD,KAAK,OACL5C,UAAU,eACVsC,MAAO,CAAC4F,MAAO,KACf6F,SAAUlN,KAAK4P,MACftC,UAAW,IAAG,aACF,SAAS/H,EAAAA,EAAEkB,KAAKyJ,wBAIvC3K,EAAAA,EAAEkB,KAAK0J,sBACJtR,EAAAA,cAAA,OAAKM,UAAU,aACXN,EAAAA,cAAA,OAAKM,UAAU,KAAKoG,EAAAA,EAAEkB,KAAK2J,oBAC3BvR,EAAAA,cAAA,SACIkD,KAAK,OACL5C,UAAU,eACVsC,MAAO,CAAC4F,MAAO,KACf6F,SAAUlN,KAAK6P,MACfvC,UAAW,IAAG,aACF,SAAS/H,EAAAA,EAAEkB,KAAK2J,2BAShE,GA5EA/Q,EAAA,CADC0D,EAAAA,IAAM,4BAQP1D,EAAA,CADC0D,EAAAA,IAAM,4BAQP1D,EAAA,CADC0D,EAAAA,IAAM,4BAvBUwM,EAAqBlQ,EAAA,CADzCC,EAAAA,IACoBiQ,G,6cCcN,IAAMc,EAAN,cAAuBxR,EAAAA,UAIlC0B,WAAAA,CAAYC,GACRC,MAAMD,GAJE2B,OAAAC,eAAA,oB,yDACAD,OAAAC,eAAA,a,iDAAgB,IAO5BD,OAAAC,eAAA,sB,gDAAgBO,KAAWL,O,EAAA,K,OAAA,E,EAAA,YAAC,OAAAtC,KAAKuC,aAAa,E,YAAnB,K,kRAHvB8F,EAAAA,EAAAA,IAAerI,KACnB,CAIAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,cACpE,CAEU,gBAAI8H,GACV,SAAK/K,EAAAA,EAAEqJ,QAIH,CAAC,MAAO,MAAO,MAAO,OAAOxO,SAASmF,EAAAA,EAAEkB,KAAKH,aAC7C,CAAC,UAAUlG,SAASmF,EAAAA,EAAEkB,KAAK8J,QAKnC,CAEU,iBAAIC,GACV,QAAKjL,EAAAA,EAAEqJ,UAIHrJ,EAAAA,EAAEQ,IAAIc,UAAY,GAClBtB,EAAAA,EAAEQ,IAAIe,WAAa,IAClBvB,EAAAA,EAAEkB,KAAK0I,KAAK/O,SAAS,YACE,IAAxBmF,EAAAA,EAAEkB,KAAKgK,eACPlL,EAAAA,EAAEkB,KAAKiK,QAKf,CAEU,mBAAIC,GACV,QAAKpL,EAAAA,EAAEqJ,OAGHrJ,EAAAA,EAAEkB,KAAKmK,SAAW,CAI1B,CAEU,qBAAIC,GACV,QAAKtL,EAAAA,EAAEqJ,UAGHrJ,EAAAA,EAAEkB,KAAKiK,SAAoC,KAAzBnL,EAAAA,EAAEkB,KAAKgK,cAIjC,CAEU,kBAAIK,GACV,QAAKvL,EAAAA,EAAEqJ,SAGFrJ,EAAAA,EAAEC,GAAGuL,oBAINxL,EAAAA,EAAEkB,KAAKuK,gBAAkB,GACzBzL,EAAAA,EAAEkB,KAAKiK,UACNnL,EAAAA,EAAEkB,KAAKwK,uBAAuB9F,cAAc/K,SAAS,UACrDJ,KAAKsQ,aAKd,CAEU,YAAIY,GACV,SAAK3L,EAAAA,EAAEqJ,QAAU5O,KAAK2Q,kBAGf9P,EAAAA,GACH0E,EAAAA,EAAEkB,KAAKmK,SAAWrL,EAAAA,EAAEkB,KAAKI,SAAWtB,EAAAA,EAAEQ,IAAIc,SAAqC,EAA1BtB,EAAAA,EAAEQ,IAAIoL,kBAC3D,EAER,CAEU,aAAIC,GACV,SAAK7L,EAAAA,EAAEqJ,QAAU5O,KAAK2Q,kBAGf9P,EAAAA,GACH0E,EAAAA,EAAEkB,KAAK4K,UAAY9L,EAAAA,EAAEkB,KAAKK,UAAYvB,EAAAA,EAAEQ,IAAIe,UAAsC,EAA1BvB,EAAAA,EAAEQ,IAAIoL,kBAC9D,EAER,CAEAG,kBAAAA,GACStR,KAAK4K,OACN5K,KAAK4K,MAAO,EACZD,SAASC,OAGjB,CAEA9L,MAAAA,GACI,GAAKyG,EAAAA,EAAEqJ,MAAP,CAIA,GACIrJ,EAAAA,EAAEoB,IACFzE,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACrD1G,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACvD,CACE,MAEM2I,GAFS,IAAIC,WACAC,gBAAgBlM,EAAAA,EAAEoB,GAAG+K,yBAA0B,aACnDC,cAAc,MAE7B,GAAIJ,EAAI,CACJ,MAAMK,EAAUL,EAAGI,cAAc,MAE7BC,GACAL,EAAGM,YAAYD,GAGnB5R,KAAK8R,YAAcP,EAAGQ,SAC1B,CACJ,CAEA,OACIlT,EAAAA,cAAA,OAAKG,GAAG,aACJH,EAAAA,cAAA,OACIG,GAAG,iBACHG,UAAU,4BACV2C,KAAK,SAAQ,iBACE,WAAU,iBACV,wBAAuB,iBACvB,EAAK,gBACN,uBACdP,SAAU,EACVyQ,UAAW7Q,GAAKnB,KAAKQ,MAAMyR,iBAAiB9Q,EAAG,mBAAiB,eAIpEtC,EAAAA,cAAA,OACI4C,MAAO,CAAC6F,OAAQ,OAAQ3F,UAAW,WACnC3C,GAAG,uBACHG,UAAU,iBAGNN,EAAAA,cAAA,OACIqT,wBAAyB,CACrBC,OAAQnS,KAAK8R,aAAevM,EAAAA,EAAEoB,GAAG+K,6BAI3C1R,KAAKsQ,cACHzR,EAAAA,cAAA,WACM0G,EAAAA,EAAEkB,KAAKkB,OAAS3H,KAAKwQ,eACnB3R,EAAAA,cAAA,UAAK,GAAG0G,EAAAA,EAAEoB,GAAGyL,gBAAgB7M,EAAAA,EAAEQ,IAAIc,gBAAgBtB,EAAAA,EAAEQ,IAAIe,gBAE3DvB,EAAAA,EAAEkB,KAAKkB,OAAS3H,KAAK2Q,iBACnB9R,EAAAA,cAAA,UAAK,GAAG0G,EAAAA,EAAEoB,GAAG0L,mBAAmBrS,KAAKkR,gBAAgBlR,KAAKoR,gBAG5DlP,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,KAClDrD,EAAAA,EAAEkB,KAAKkB,OACRpC,EAAAA,EAAEkB,KAAK6L,YACS,IAAf/M,EAAAA,EAAEgN,WAAmBC,SAASC,wBAC9BlN,EAAAA,EAAEkB,KAAKiM,eACJ7T,EAAAA,cAAA,UACK0G,EAAAA,EAAEoB,GAAGgM,WAAU,IAAE9T,EAAAA,cAAC+T,EAAAA,EAAc,QAI3C1Q,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,KAClDrD,EAAAA,EAAEkB,KAAKkB,OACRpC,EAAAA,EAAEkB,KAAK6L,YACS,IAAf/M,EAAAA,EAAEgN,UAAkBC,SAASC,wBAC7BlN,EAAAA,EAAEkB,KAAKiM,eACJ7T,EAAAA,cAAA,UAAK0G,EAAAA,EAAEoB,GAAGgM,WAAU,sCAG1BpN,EAAAA,EAAEkB,KAAKkB,OACL3H,KAAK8Q,iBACW,IAAfvL,EAAAA,EAAEgN,WAAmBC,SAASC,uBAC3B5T,EAAAA,cAAA,UACK0G,EAAAA,EAAEoB,GAAGkM,cAAa,IAAEhU,EAAAA,cAACiU,EAAAA,EAAa,QAI7CvN,EAAAA,EAAEkB,KAAKkB,OACL3H,KAAK8Q,iBACW,IAAfvL,EAAAA,EAAEgN,UAAkBC,SAASC,uBAC1B5T,EAAAA,cAAA,UAAK0G,EAAAA,EAAEoB,GAAGkM,cAAa,sBAG7BtN,EAAAA,EAAEkB,KAAKkB,OAAS3H,KAAK6Q,mBAA0C,IAArBtL,EAAAA,EAAEoB,GAAGoM,aAC7ClU,EAAAA,cAAA,2DAEF0G,EAAAA,EAAEkB,KAAKkB,OAAS3H,KAAK6Q,mBAA0C,IAArBtL,EAAAA,EAAEoB,GAAGoM,aAC7ClU,EAAAA,cAAA,UAAK0G,EAAAA,EAAEoB,GAAGqM,iBAEZzN,EAAAA,EAAEkB,KAAKkB,OAC0B,IAA/BpC,EAAAA,EAAEkB,KAAKwM,qBACQ,IAAf1N,EAAAA,EAAEgN,UACuB,KAAzBhN,EAAAA,EAAEkB,KAAKgK,eACH5R,EAAAA,cAAA,qDAC6C,IACzCA,EAAAA,cAAA,KAAGK,KAAK,uCAAqC,mBAMxDqG,EAAAA,EAAEkB,KAAKkB,OAAS3H,KAAKwQ,eAClB3R,EAAAA,cAAA,UAAK,GAAG0G,EAAAA,EAAEkB,KAAKwB,iBAAiB1C,EAAAA,EAAEQ,IAAIc,gBAAgBtB,EAAAA,EAAEQ,IAAIe,eAE/DvB,EAAAA,EAAEkB,KAAKkB,OAAS3H,KAAK2Q,iBAClB9R,EAAAA,cAAA,UAAK,+BAA+BmB,KAAKkR,gBAAgBlR,KAAKoR,eAGjE7L,EAAAA,EAAEkB,KAAKkB,OACJpC,EAAAA,EAAEkB,KAAK6L,YACN/M,EAAAA,EAAEkB,KAAKiM,eACO,IAAfnN,EAAAA,EAAEgN,UACE1T,EAAAA,cAAA,sCAC6BA,EAAAA,cAAC+T,EAAAA,EAAc,OAInDrN,EAAAA,EAAEkB,KAAKkB,OAAS3H,KAAK8Q,gBAAiC,IAAfvL,EAAAA,EAAEgN,UACtC1T,EAAAA,cAAA,2CACkCA,EAAAA,cAACiU,EAAAA,EAAa,OAInDvN,EAAAA,EAAEkB,KAAKkB,OAAS3H,KAAK6Q,mBAA0C,IAArBtL,EAAAA,EAAEoB,GAAGoM,aAC5ClU,EAAAA,cAAA,0DAEH0G,EAAAA,EAAEkB,KAAKkB,OAAS3H,KAAK6Q,mBAA0C,IAArBtL,EAAAA,EAAEoB,GAAGoM,aAC5ClU,EAAAA,cAAA,6EAIF0G,EAAAA,EAAEQ,IAAI8I,SAAWhO,EAAAA,GAAwB0E,EAAAA,EAAEC,GAAG0N,UAC5CrU,EAAAA,cAAA,qBAAa0G,EAAAA,EAAEC,GAAG0N,UAEpB3N,EAAAA,EAAEQ,IAAI8I,SAAWhO,EAAAA,GAAwB0E,EAAAA,EAAEC,GAAG2N,MAC5CtU,EAAAA,cAAA,kBAAU0G,EAAAA,EAAEC,GAAG2N,KAElB5N,EAAAA,EAAEkB,KAAKkB,OACwB,KAA5BpC,EAAAA,EAAEkB,KAAKwE,kBACP1F,EAAAA,EAAEQ,IAAIc,UAAY,GAAKhI,EAAAA,cAAA,iCAC1B0G,EAAAA,EAAEkB,KAAKkB,OAAS9I,EAAAA,cAAA,UAAK0G,EAAAA,EAAEkB,KAAK2M,oBAC5B7N,EAAAA,EAAEkB,KAAKkB,OAAS9I,EAAAA,cAAA,UAAK0G,EAAAA,EAAEC,GAAG6N,eAAc,aACxC9N,EAAAA,EAAEkB,KAAKkB,OAAS9I,EAAAA,cAAA,UAAK0G,EAAAA,EAAEC,GAAG8N,WAAU,YACpC/N,EAAAA,EAAEkB,KAAKkB,OAASpC,EAAAA,EAAEQ,IAAIwN,QAAU,GAC7B1U,EAAAA,cAAA,UAAK0G,EAAAA,EAAEC,GAAGgO,WAAU,iBAEvBjO,EAAAA,EAAEkB,KAAKkB,OAASpC,EAAAA,EAAEQ,IAAI0N,YAAc,GACjC5U,EAAAA,cAAA,UAAK0G,EAAAA,EAAEC,GAAGkO,eAAc,aAE3BnO,EAAAA,EAAEkB,KAAKkB,OAASpC,EAAAA,EAAEQ,IAAI4N,QAAU,GAC7B9U,EAAAA,cAAA,UAAK0G,EAAAA,EAAEQ,IAAI6N,eAAc,kBAE5BrO,EAAAA,EAAEkB,KAAKkB,OAASpC,EAAAA,EAAEQ,IAAI8N,MAAQ,GAAKhV,EAAAA,cAAA,4BACnC0G,EAAAA,EAAEkB,KAAKkB,OACJ9I,EAAAA,cAAA,UACK0G,EAAAA,EAAEQ,IAAIwG,cAAgB,aAAe,WAAU,gBAGvDhH,EAAAA,EAAEkB,KAAKkB,OAASpC,EAAAA,EAAEQ,IAAIoI,SAAW,GAC9BtP,EAAAA,cAAA,UACK0G,EAAAA,EAAEC,GAAGsO,WAAY,IACQ,IAAzBvO,EAAAA,EAAEkB,KAAKsN,eAAuBxO,EAAAA,EAAEQ,IAAIiO,UAC/B,aACA,WA1KlC,CAkLJ,GAlSY3U,EAAA,CAAXyD,EAAAA,IAAU,kCACCzD,EAAA,CAAXyD,EAAAA,IAAU,2BAaDzD,EAAA,CAAT4U,EAAAA,IAAQ,iCAaC5U,EAAA,CAAT4U,EAAAA,IAAQ,kCAgBC5U,EAAA,CAAT4U,EAAAA,IAAQ,oCAUC5U,EAAA,CAAT4U,EAAAA,IAAQ,sCAUC5U,EAAA,CAAT4U,EAAAA,IAAQ,mCAkBC5U,EAAA,CAAT4U,EAAAA,IAAQ,6BAUC5U,EAAA,CAAT4U,EAAAA,IAAQ,8BA5FQ5D,EAAQhR,EAAA,CAD5BC,EAAAA,IACoB+Q,G,yuBCHN,IAAM6D,EAAN,cAAsBrV,EAAAA,UA0BjC0B,WAAAA,CAAYC,GACRC,MAAMD,GA1BV2B,OAAAC,eAAA,kB,gDAAwB,CACpB,CAAC6E,EAAG,EAAGkN,EAAG,MAAOC,EAAG,OACpB,CAACnN,EAAG,EAAGkN,EAAG,MAAOC,EAAG,OACpB,CAACnN,EAAG,EAAGkN,EAAG,MAAOC,EAAG,QACpB,CAACnN,EAAG,EAAGkN,EAAG,MAAOC,EAAG,QACpB,CAACnN,EAAG,EAAGkN,EAAG,OAAQC,EAAG,QACrB,CAACnN,EAAG,EAAGkN,EAAG,OAAQC,EAAG,QACrB,CAACnN,EAAG,EAAGkN,EAAG,OAAQC,EAAG,QACrB,CAACnN,EAAG,EAAGkN,EAAG,OAAQC,EAAG,QACrB,CAACnN,EAAG,EAAGkN,EAAG,OAAQC,EAAG,QACrB,CAACnN,EAAG,EAAGkN,EAAG,OAAQC,EAAG,QACrB,CAACnN,EAAG,GAAIkN,EAAG,OAAQC,EAAG,QACtB,CAACnN,EAAG,GAAIkN,EAAG,OAAQC,EAAG,WAG1BjS,OAAAC,eAAA,wB,gDAA8B,CAC1B,CAAC6E,EAAG,EAAGkN,EAAG,MAAOC,EAAG,OACpB,CAACnN,EAAG,EAAGkN,EAAG,MAAOC,EAAG,WAGxBjS,OAAAC,eAAA,0B,gDAAgC,CAC5B,CAAC6E,EAAG,EAAGkN,EAAG,MAAOC,EAAG,QACpB,CAACnN,EAAG,EAAGkN,EAAG,OAAQC,EAAG,WAWzBjS,OAAAC,eAAA,sB,gDAAgBO,IAAWL,EAAA,gCAAC,OAAAtC,KAAKuC,aAAa,MAO9CJ,OAAAC,eAAA,sB,gDAAuBjB,GAA2CmB,EAAA,gCAC9DnB,EAAEkT,kBACFlP,EAAAA,EAAAA,KAAY,KACR,IAAImP,EAEAA,EAD4B,KAA5B/O,EAAAA,EAAEkB,KAAKwE,iBACFjL,KAAKuU,gBAAgBlF,SAASlO,EAAE/B,OAAOuD,MAAO,KAChB,IAA5B4C,EAAAA,EAAEkB,KAAKwE,iBACTjL,KAAKwU,kBAAkBnF,SAASlO,EAAE/B,OAAOuD,MAAO,KAEhD3C,KAAKyU,UAAUpF,SAASlO,EAAE/B,OAAOuD,MAAO,KAEjD,MAAMkL,EAAaV,WAAWmH,EAAGF,GAC3BrG,EAAaZ,WAAWmH,EAAGH,GAQjC,GAFA5O,EAAAA,EAAEQ,IAAIc,SAAWgH,EACjBtI,EAAAA,EAAEQ,IAAIe,UAAYiH,EACdxI,EAAAA,EAAEQ,IAAIwG,eAAiBhH,EAAAA,EAAEQ,IAAIc,SAAWtB,EAAAA,EAAEQ,IAAIe,UAAW,CACzD,MAAM4N,EAAYnP,EAAAA,EAAEQ,IAAIc,SACxBtB,EAAAA,EAAEQ,IAAIc,SAAWtB,EAAAA,EAAEQ,IAAIe,UACvBvB,EAAAA,EAAEQ,IAAIe,UAAY4N,CAEtB,MAAO,IAAKnP,EAAAA,EAAEQ,IAAIwG,eAAiBhH,EAAAA,EAAEQ,IAAIc,SAAWtB,EAAAA,EAAEQ,IAAIe,UAAW,CACjE,MAAM4N,EAAYnP,EAAAA,EAAEQ,IAAIc,SACxBtB,EAAAA,EAAEQ,IAAIc,SAAWtB,EAAAA,EAAEQ,IAAIe,UACvBvB,EAAAA,EAAEQ,IAAIe,UAAY4N,CAEtB,CACAnP,EAAAA,EAAEQ,IAAI8F,UAAYtG,EAAAA,EAAEQ,IAAIc,SACxBtB,EAAAA,EAAEQ,IAAI+F,WAAavG,EAAAA,EAAEQ,IAAIe,UAEO,IAA5BvB,EAAAA,EAAEkB,KAAKwE,mBACP1F,EAAAA,EAAEQ,IAAI8F,WAAa,EACnBtG,EAAAA,EAAEQ,IAAI+F,YAAc,GAGpBvG,EAAAA,EAAEkB,KAAKkB,QAEyB,IAA5BpC,EAAAA,EAAEkB,KAAKwE,kBACqB,IAA5B1F,EAAAA,EAAEkB,KAAKwE,kBACqB,IAA5B1F,EAAAA,EAAEkB,KAAKwE,kBACqB,IAA5B1F,EAAAA,EAAEkB,KAAKwE,iBAEH1F,EAAAA,EAAEQ,IAAIc,SAAW,GAAKtB,EAAAA,EAAEQ,IAAIe,UAAY,IAEjCvB,EAAAA,EAAEQ,IAAIc,SAAW,IAAMtB,EAAAA,EAAEQ,IAAIe,UAAY,EADhDvB,EAAAA,EAAEQ,IAAIiO,WAAY,EAIlBzO,EAAAA,EAAEQ,IAAIiO,WAAY,EAEa,IAA5BzO,EAAAA,EAAEkB,KAAKwE,kBAAsD,IAA5B1F,EAAAA,EAAEkB,KAAKwE,iBAC3C1F,EAAAA,EAAEQ,IAAIc,SAAW,IAAMtB,EAAAA,EAAEQ,IAAIe,UAAY,IAElCvB,EAAAA,EAAEQ,IAAIc,SAAW,IAAMtB,EAAAA,EAAEQ,IAAIe,UAAY,GADhDvB,EAAAA,EAAEQ,IAAIiO,WAAY,EAIlBzO,EAAAA,EAAEQ,IAAIiO,WAAY,EAGlBzO,EAAAA,EAAEQ,IAAIc,SAAW,IAAMtB,EAAAA,EAAEQ,IAAIe,UAAY,IAElCvB,EAAAA,EAAEQ,IAAIc,SAAW,IAAMtB,EAAAA,EAAEQ,IAAIe,UAAY,GADhDvB,EAAAA,EAAEQ,IAAIiO,WAAY,EAIlBzO,EAAAA,EAAEQ,IAAIiO,WAAY,GAK1BzO,EAAAA,EAAEkB,KAAKkO,kBACPpP,EAAAA,EAAEQ,IAAIiO,WAAY,GAGtBzO,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEgJ,OAAO,GAEjB,MAGApM,OAAAC,eAAA,0B,gDAA2BjB,GAA2CmB,EAAA,iCAClE6C,EAAAA,EAAAA,KAAY,KAIR,GAHAI,EAAAA,EAAEQ,IAAIwG,eAAiBhH,EAAAA,EAAEQ,IAAIwG,cAC7BhH,EAAAA,EAAEkB,KAAKwH,aAAe1I,EAAAA,EAAEQ,IAAIwG,cAC5BhH,EAAAA,EAAEkB,KAAKyH,sBAAwB3I,EAAAA,EAAEQ,IAAIwG,cACjChH,EAAAA,EAAEQ,IAAIwG,eAAiBhH,EAAAA,EAAEQ,IAAIc,SAAWtB,EAAAA,EAAEQ,IAAIe,UAAW,CACzD,MAAM4N,EAAYnP,EAAAA,EAAEQ,IAAIc,SACxBtB,EAAAA,EAAEQ,IAAIc,SAAWtB,EAAAA,EAAEQ,IAAIe,UACvBvB,EAAAA,EAAEQ,IAAIe,UAAY4N,CACtB,MAAO,IAAKnP,EAAAA,EAAEQ,IAAIwG,eAAiBhH,EAAAA,EAAEQ,IAAIc,SAAWtB,EAAAA,EAAEQ,IAAIe,UAAW,CACjE,MAAM4N,EAAYnP,EAAAA,EAAEQ,IAAIc,SACxBtB,EAAAA,EAAEQ,IAAIc,SAAWtB,EAAAA,EAAEQ,IAAIe,UACvBvB,EAAAA,EAAEQ,IAAIe,UAAY4N,CACtB,CACAnP,EAAAA,EAAEQ,IAAI8F,UAAYtG,EAAAA,EAAEQ,IAAIc,SACxBtB,EAAAA,EAAEQ,IAAI+F,WAAavG,EAAAA,EAAEQ,IAAIe,UACzBvB,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEgJ,OAAO,GAEjB,MAGApM,OAAAC,eAAA,kB,gDAAmBjB,GAA2CmB,EAAA,iCAC1D6C,EAAAA,EAAAA,KAAY,KAERtE,EAAAA,GAAcM,EAAE/B,OAAOuD,MAAM,GAErC,MA5HI3C,KAAK4U,cAAgB5U,KAAK4U,cAAcxM,KAAKpI,MAC7CA,KAAK6U,kBAAoB7U,KAAK6U,kBAAkBzM,KAAKpI,MACrDA,KAAK8U,UAAY9U,KAAK8U,UAAU1M,KAAKpI,OACrCqI,EAAAA,EAAAA,IAAerI,KACnB,CAIAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,cACpE,CAoHA1J,MAAAA,GACI,OAAKyG,EAAAA,EAAEQ,IAAI8I,OAoGHhQ,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,YAAlE,gBACXnH,MAAO,CAACsT,aAAc,WAEtBlW,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,qBACHC,MAAO,wBAEPJ,EAAAA,cAAA,WACIA,EAAAA,cAAA,4IAIAA,EAAAA,cAAA,qIAMRA,EAAAA,cAAA,OACIM,UAAU,MACVsC,MAAO,CACHsN,QAAS,OACTiG,eAAgB,gBAChBnI,WAAY3K,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAC3D,EACA,KAGV/J,EAAAA,cAAA,OAAKM,UAAU,mBACXN,EAAAA,cAAA,OAAK4C,MAAO,CAACwT,SAAU,OAAQjG,WAAY,MACtCzJ,EAAAA,EAAEkB,KAAKwB,QAAO,sBAAyB,IACxCpJ,EAAAA,cAAA,KACIM,UAAU,qBACVqC,QAASA,IAAMX,EAAAA,GAAW,sBAC1BiB,KAAK,SAAQ,aACF,2DAGnBjD,EAAAA,cAAA,UACIM,UAAU,cACV+N,SAAUlN,KAAK4U,cACfnT,MAAO,CAAC4F,MAAO,IAAK0H,QAAS,UAEA,KAA5BxJ,EAAAA,EAAEkB,KAAKwE,kBACwB,IAA5B1F,EAAAA,EAAEkB,KAAKwE,kBACPjL,KAAKyU,UAAUxF,KAAI,CAACC,EAAGjI,IACnBpI,EAAAA,cAAA,UACI2D,IAAKyE,EACLiO,SAAkB,IAARhG,EAAEjI,EACZtE,MAAOuM,EAAEjI,GAER1B,EAAAA,EAAEQ,IAAIwG,cACD,SAAS2C,EAAEkF,SAASlF,EAAEiF,MACtB,SAASjF,EAAEiF,SAASjF,EAAEkF,SAGX,KAA5B7O,EAAAA,EAAEkB,KAAKwE,kBACJjL,KAAKuU,gBAAgBtF,KAAI,CAACC,EAAGjI,IACzBpI,EAAAA,cAAA,UACI2D,IAAKyE,EACLiO,SAAkB,IAARhG,EAAEjI,EACZtE,MAAOuM,EAAEjI,GAER1B,EAAAA,EAAEQ,IAAIwG,cACD,SAAS2C,EAAEkF,SAASlF,EAAEiF,MACtB,SAASjF,EAAEiF,SAASjF,EAAEkF,SAGX,IAA5B7O,EAAAA,EAAEkB,KAAKwE,kBACJjL,KAAKwU,kBAAkBvF,KAAI,CAACC,EAAGjI,IAC3BpI,EAAAA,cAAA,UACI2D,IAAKyE,EACLiO,SAAkB,IAARhG,EAAEjI,EACZtE,MAAOuM,EAAEjI,GAER1B,EAAAA,EAAEQ,IAAIwG,cACD,SAAS2C,EAAEkF,SAASlF,EAAEiF,MACtB,SAASjF,EAAEiF,SAASjF,EAAEkF,UAI5CvV,EAAAA,cAAA,UACIM,UAAU,cACV+N,SAAUlN,KAAK6U,kBACfpT,MAAO,CAAC4F,MAAO,IAAK0H,QAAS,UAE7BlQ,EAAAA,cAAA,UACI8D,MAAO,aACPuS,SAAU3P,EAAAA,EAAEQ,IAAIwG,eAAa,cAIjC1N,EAAAA,cAAA,UACI8D,MAAO,WACPuS,UAAW3P,EAAAA,EAAEQ,IAAIwG,eAAa,cAMzChH,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAK0O,SACdtW,EAAAA,cAAA,OAAKM,UAAU,mBACXN,EAAAA,cAAA,OAAK4C,MAAO,CAACwT,SAAU,OAAQjG,WAAY,MAAI,eAC/CnQ,EAAAA,cAAA,UACIM,UAAU,cACV+N,SAAUlN,KAAK8U,UACfrT,MAAO,CAACC,SAAU,IAAK2F,MAAO,MAE7B9B,EAAAA,EAAEkB,KAAK0O,QAAQlG,KAAI,CAACC,EAAGjI,IACpBpI,EAAAA,cAAA,UACI2D,IAAKyE,EACLtE,MAAOuM,EAAElQ,GACTkW,SAAUhG,EAAEjI,IAAM1B,EAAAA,EAAEkB,KAAKH,WAExB4I,EAAEjQ,YAO1BiD,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAA,MAAI4C,MAAO,CAACoL,WAAY,OA9NhCtH,EAAAA,EAAEQ,IAAIc,UAAY,OAAtB,EAKIhI,EAAAA,cAAA,OAAKG,GAAG,YACJH,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,iBACH0C,SAAS,QACTzC,MAAO,GAAGsG,EAAAA,EAAEC,GAAG4P,6BAEfvW,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAO,kFAEX3N,EAAAA,cAAA,OACI6N,IAAI,+EACJD,IAAI,4BAA2B,aACpB,gEACXhL,MAAO,CAAC4F,MAAO,YAI3BxI,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,sBACHC,MAAO,qCAAqCsG,EAAAA,EAAEC,GAAG4P,SAASjK,uBAE1DtM,EAAAA,cAAA,WACIA,EAAAA,cAAA,mIAIAA,EAAAA,cAAA,0DACmD,IAC/CA,EAAAA,cAAA,KAAGK,KAAM2B,EAAAA,MAAsB2R,SAAS6C,sBAAyB,YAC3D,IACNxW,EAAAA,cAAA,KAAGK,KAAM,UAAUsT,SAAS8C,wBACvB9C,SAAS8C,sBACT,IAAG,+IAKZzW,EAAAA,cAAA,qGAMRA,EAAAA,cAAA,OAAKM,UAAU,yBACXN,EAAAA,cAAA,WACIA,EAAAA,cAAA,QACIM,UAAU,aACVsC,MAAO,CACHmL,aAAc,UACdoC,WAAY9M,EAAAA,GAAYyG,YACpB1G,EAAAA,EAAW2G,iBACX,GAEE,IACA,KAGTrD,EAAAA,EAAEC,GAAG4P,SAAQ,SAAQ,KAEzB7P,EAAAA,EAAEQ,IAAIc,SAAQ,QAAOtB,EAAAA,EAAEQ,IAAIe,UAAS,KAAI,IACzCjI,EAAAA,cAAA,KACIM,UAAU,qBACV2C,KAAK,SACLP,SAAU,EACVC,QAASA,IAAMX,EAAAA,GAAW,kBAAiB,aAChC,wDAAuD,gBACpD,SAAQ,gBACR,oBAGtBhC,EAAAA,cAAA,WACIA,EAAAA,cAAA,QACIM,UAAU,OACVqC,QAASA,IAAMX,EAAAA,GAAW,uBAC1BiB,KAAK,SACLP,SAAU,EAAC,aACA,kDAAiD,gBAC9C,SAAQ,gBACR,uBAAqB,oBAKlC,MAARgE,EAAAA,EAAEoB,IAAmC,MAArBpB,EAAAA,EAAEoB,GAAG4O,eAAyBhQ,EAAAA,EAAEyE,UAC7CnL,EAAAA,cAAA,sBAAcgC,EAAAA,GAAc0E,EAAAA,EAAEoB,GAAG4O,gBAGxCrT,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAAM/J,EAAAA,cAAA,WAqI5E,GAtVAQ,EAAA,CADC0D,EAAAA,IAAM,oCAoFP1D,EAAA,CADC0D,EAAAA,IAAM,wCAwBP1D,EAAA,CADC0D,EAAAA,IAAM,gCAlJUmR,EAAO7U,EAAA,CAD3BC,EAAAA,IACoB4U,G,yuBCRN,IAAMsB,EAAN,cAA4B3W,EAAAA,UAMvC0B,WAAAA,CAAYC,GACRC,MAAMD,GANE2B,OAAAC,eAAA,Y,yDACAD,OAAAC,eAAA,Y,yDACAD,OAAAC,eAAA,Y,yDACAD,OAAAC,eAAA,kB,iDAAqB,IAYjCD,OAAAC,eAAA,sB,gDAAgBO,IAAWL,EAAA,gCAAC,OAAAtC,KAAKuC,aAAa,MAO9CJ,OAAAC,eAAA,uB,gDAAiBO,IAAWL,EAAA,iCACxB6C,EAAAA,EAAAA,KAAY,KACRnF,KAAKyV,WAAazV,KAAKyV,SAAS,GAExC,MAOAtT,OAAAC,eAAA,wB,gDAAyBjB,GAAUmB,EAAA,iCAC/B6C,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEQ,IAAI2P,WAAarG,SAASlO,EAAE/B,OAAOuD,MAAO,IACxC4C,EAAAA,EAAEQ,IAAI8N,MAAQ,IACdtO,EAAAA,EAAEQ,IAAI8N,MAAQtO,EAAAA,EAAEQ,IAAI2P,WACpBnQ,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEgJ,QACN,GAER,MAGApM,OAAAC,eAAA,e,gDAAgBjB,GAAUmB,EAAA,iCACtB6C,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEQ,IAAI8N,MAAQtO,EAAAA,EAAEQ,IAAI2P,WACpBnQ,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEQ,IAAI4P,IAAM3V,KAAK2V,IACjBpQ,EAAAA,EAAEQ,IAAI6P,IAAM5V,KAAK4V,IACjBrQ,EAAAA,EAAEQ,IAAI8P,IAAM7V,KAAK6V,IACjBtQ,EAAAA,EAAEQ,IAAI6N,eAAiB,GACvBrO,EAAAA,EAAEQ,IAAI4N,SAAW,EACjBpO,EAAAA,EAAEC,GAAG8I,gBAAiB,EAEF,OAAhB/I,EAAAA,EAAEQ,IAAI8N,OACNtO,EAAAA,EAAEQ,IAAI+P,mBAAoB,EAC1BvQ,EAAAA,EAAEQ,IAAIgQ,kBAAmB,EACzBxQ,EAAAA,EAAEQ,IAAIiQ,oBAAqB,GACJ,KAAhBzQ,EAAAA,EAAEQ,IAAI8N,OACbtO,EAAAA,EAAEQ,IAAI+P,mBAAoB,EAC1BvQ,EAAAA,EAAEQ,IAAIgQ,kBAAmB,EACzBxQ,EAAAA,EAAEQ,IAAIiQ,oBAAqB,GACJ,KAAhBzQ,EAAAA,EAAEQ,IAAI8N,QACbtO,EAAAA,EAAEQ,IAAI+P,mBAAoB,EAC1BvQ,EAAAA,EAAEQ,IAAIgQ,kBAAmB,EACzBxQ,EAAAA,EAAEQ,IAAIiQ,oBAAqB,GAG/BzQ,EAAAA,EAAEgJ,OAAO,GAEjB,MAGApM,OAAAC,eAAA,kB,gDAAmBjB,GAAUmB,EAAA,iCACzB6C,EAAAA,EAAAA,KAAY,KACJI,EAAAA,EAAEQ,IAAI8N,MAAQ,IACdtO,EAAAA,EAAEQ,IAAI8N,MAAQ,EACdtO,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEgJ,QACN,GAER,MAGApM,OAAAC,eAAA,uB,gDAAiBO,IAAWL,EAAA,iCACxB6C,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEQ,IAAI4P,IAAM3V,KAAK2V,IACjBpQ,EAAAA,EAAEQ,IAAI6P,IAAM5V,KAAK4V,IACjBrQ,EAAAA,EAAEQ,IAAI8P,IAAM7V,KAAK6V,GAAG,GAE5B,MAvFI7V,KAAKiW,eAAiBjW,KAAKiW,eAAe7N,KAAKpI,MAC/CA,KAAKkW,gBAAkBlW,KAAKkW,gBAAgB9N,KAAKpI,MACjDA,KAAKmW,OAASnW,KAAKmW,OAAO/N,KAAKpI,MAC/BA,KAAKoW,UAAYpW,KAAKoW,UAAUhO,KAAKpI,MACrCA,KAAKqW,eAAiBrW,KAAKqW,eAAejO,KAAKpI,OAC/CqI,EAAAA,EAAAA,IAAerI,KACnB,CAIAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,cACpE,CASU,eAAI8N,GACV,OAAO/Q,EAAAA,EAAEQ,IAAI8I,QAAUjN,OAAOwI,WAAa,GAC/C,CAkEU,gBAAImM,GACV,OAAOhR,EAAAA,EAAEQ,IAAI8N,OAAS,EAChB,GACgB,KAAhBtO,EAAAA,EAAEQ,IAAI8N,MACJ,OACgB,OAAhBtO,EAAAA,EAAEQ,IAAI8N,MACJ,QACA,QACd,CAEU,qBAAI2C,GACV,OAAIjR,EAAAA,EAAEC,GAAGiR,cAActL,cAAc/K,SAAS,YAAcmF,EAAAA,EAAEQ,IAAIgQ,iBACvDxQ,EAAAA,EAAEQ,IAAI8N,OAAS,EAChB,SACgB,KAAhBtO,EAAAA,EAAEQ,IAAI8N,MACJ,OACgB,OAAhBtO,EAAAA,EAAEQ,IAAI8N,MACJ,QACA,SAEHtO,EAAAA,EAAEQ,IAAI8N,OAAS,GAEA,KAAhBtO,EAAAA,EAAEQ,IAAI8N,MADN,OAGkB,OAAhBtO,EAAAA,EAAEQ,IAAI8N,MACJ,QACA,QAElB,CAEU,YAAI6C,GACV,OAAuB,KAAhBnR,EAAAA,EAAEQ,IAAI8N,MACP,8FACgB,OAAhBtO,EAAAA,EAAEQ,IAAI8N,MACJ,+FACA,+FACZ,CAEA/U,MAAAA,GACI,IAAKyG,EAAAA,EAAEC,GAAGsK,YAAcvK,EAAAA,EAAEkB,KAAKkQ,uBAAyBpR,EAAAA,EAAEkB,KAAKkQ,sBAAwB,EACnF,OAGJ,MAAML,EACFtW,KAAKsW,cAAgBpU,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAE9E,OACI/J,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,YAAlE,MACXnH,MAAO,CAACmV,QAAS,IAEjB/X,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,kBACHC,MAAM,6BACNyC,SAAS,SAET7C,EAAAA,cAAA,WACIA,EAAAA,cAAA,UACsC,IAAjC0G,EAAAA,EAAEkB,KAAKkQ,uBACJ9X,EAAAA,cAAA,2DAE8B,IAAjC0G,EAAAA,EAAEkB,KAAKkQ,uBACJ9X,EAAAA,cAAA,yDAE8B,IAAjC0G,EAAAA,EAAEkB,KAAKkQ,uBACJ9X,EAAAA,cAAA,2DAE8B,IAAjC0G,EAAAA,EAAEkB,KAAKkQ,uBACJ9X,EAAAA,cAAA,uDAE8B,IAAjC0G,EAAAA,EAAEkB,KAAKkQ,uBACJ9X,EAAAA,cAAA,yDAE8B,IAAjC0G,EAAAA,EAAEkB,KAAKkQ,uBACJ9X,EAAAA,cAAA,iEAE8B,IAAjC0G,EAAAA,EAAEkB,KAAKkQ,uBACJ9X,EAAAA,cAAA,0DAE8B,IAAjC0G,EAAAA,EAAEkB,KAAKkQ,uBACJ9X,EAAAA,cAAA,wDAEJA,EAAAA,cAAA,gDACAA,EAAAA,cAAA,0EACAA,EAAAA,cAAA,iCACAA,EAAAA,cAAA,uFAKJA,EAAAA,cAAA,WACIA,EAAAA,cAAA,qCAEJA,EAAAA,cAAA,OACI6N,IAAI,oEACJD,IAAI,yBAAwB,aACjB,6BAIvB5N,EAAAA,cAAA,OAAKM,WAAWa,KAAKsW,aAAe/Q,EAAAA,EAAEQ,IAAI8I,OAAS,KAC/ChQ,EAAAA,cAAA,OACI4C,MAAO,CACHkL,YAAa,GACbC,aAAc,GACdiK,WAAY,EACZ/H,cAAe,EACfzE,SAAU,aAGdxL,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,IAAM,sBAAnE,YAAkG,iBAC7F0N,EAAc,WAAa,GAAE,iBAC9B,YAAW,iBACXA,QAAsB5T,EAAS,gBAC/B4T,EAAc,gBAAa5T,GAE1C7D,EAAAA,cAAA,OAAKM,UAAU,qBACXN,EAAAA,cAAA,gCACAA,EAAAA,cAAA,YAAOmB,KAAKuW,iBAIlBrU,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACnD/J,EAAAA,cAAA,OACIM,UAAU,8BAA6B,iBACvBa,KAAKsW,YAAc,WAAa,GAAE,iBACnC,YAAW,iBACXtW,KAAKsW,kBAAsB5T,EAAS,gBACpC1C,KAAKsW,YAAc,gBAAa5T,GAE/C7D,EAAAA,cAAA,OAAKM,UAAU,kBACXN,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACIM,UAAU,+BACVsC,MAAO,CAACmL,aAAc,YAAU,kBAIpC/N,EAAAA,cAAA,OAAKM,UAAU,cAAca,KAAKuW,eAEtC1X,EAAAA,cAAA,WACK0G,EAAAA,EAAEQ,IAAI8N,MAAQ,GACXhV,EAAAA,cAAA,OACIM,UAAU,OACVuN,IACoB,KAAhBnH,EAAAA,EAAEQ,IAAI8N,MACA,8FACA,gGAEVpH,IAAI,2BACJhL,MAAO,CAAC6F,OAAQ,GAAID,MAAO,cASvDxI,EAAAA,cAAA,OACIG,GAAG,WACHG,UAAWmX,EAAc,WAAa,GACtC7U,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACxD,aACA,WAGV/J,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAKM,UAAW,gBAAgBa,KAAKwW,qBAChCjR,EAAAA,EAAEkB,KAAKqQ,mBAAqB,GACzBjY,EAAAA,cAAA,WACIA,EAAAA,cAAA,SACIkD,KAAK,OACL5C,UAAU,UACVmO,UAAW,GAAE,aACF,+BACXJ,SAAU/L,IACNnB,KAAK2V,IAAMxU,EAAE/B,OAAOuD,MACpB3C,KAAKqW,gBAAgB,KAKpC9Q,EAAAA,EAAEkB,KAAKqQ,mBAAqB,GACzBjY,EAAAA,cAAA,WACIA,EAAAA,cAAA,SACIkD,KAAK,OACL5C,UAAU,UACVmO,UAAW,GAAE,aACF,+BACXJ,SAAU/L,IACNnB,KAAK4V,IAAMzU,EAAE/B,OAAOuD,MACpB3C,KAAKqW,gBAAgB,KAKpC9Q,EAAAA,EAAEkB,KAAKqQ,mBAAqB,GACzBjY,EAAAA,cAAA,WACIA,EAAAA,cAAA,SACIkD,KAAK,OACL5C,UAAU,UACVmO,UAAW,GAAE,aACF,+BACXJ,SAAU/L,IACNnB,KAAK6V,IAAM1U,EAAE/B,OAAOuD,MACpB3C,KAAKqW,gBAAgB,MAOzCxX,EAAAA,cAAA,OAAKM,UAAU,aACuB,IAAjCoG,EAAAA,EAAEkB,KAAKkQ,uBACJ9X,EAAAA,cAAA,OAAKM,UAAU,YACXN,EAAAA,cAAA,UAAQqO,SAAUlN,KAAKkW,iBAClB3Q,EAAAA,EAAEQ,IAAIgQ,kBACHlX,EAAAA,cAAA,UAAQ8D,MAAM,MAAI,QAErB4C,EAAAA,EAAEQ,IAAIiQ,oBACHnX,EAAAA,cAAA,UAAQ8D,MAAM,MAAI,YAKA,IAAjC4C,EAAAA,EAAEkB,KAAKkQ,uBAC6B,IAAjCpR,EAAAA,EAAEkB,KAAKkQ,uBAC0B,IAAjCpR,EAAAA,EAAEkB,KAAKkQ,uBACH9X,EAAAA,cAAA,OAAKM,UAAU,eACRoG,EAAAA,EAAEQ,IAAI8N,OAAStO,EAAAA,EAAEQ,IAAI8N,OAAS,IAC7BhV,EAAAA,cAAA,UACIkD,KAAK,SACLD,KAAK,SAAQ,aACF,gCACXN,QAASxB,KAAKmW,OACd5U,SAAU,GAAC,sBAKlBgE,EAAAA,EAAEQ,IAAI8N,MAAQ,GACXhV,EAAAA,cAAA,UACIkD,KAAK,SACLD,KAAK,SAAQ,aACF,qCACXN,QAASxB,KAAKoW,UACd7U,SAAU,GAAC,2BASnC1C,EAAAA,cAAA,OACIM,UAAU,oBACVqC,QAASA,IAAMX,EAAAA,GAAW,mBAAkB,aACjC,8CAA6C,gBAC1C,SAAQ,gBACR,kBACdU,SAAU,GAAC,yCAGX1C,EAAAA,cAAA,QAAMM,UAAU,YACZN,EAAAA,cAAA,KACIM,UAAU,0BAAyB,eACtB,SASjD,GAvXYE,EAAA,CAAXyD,EAAAA,IAAU,0BACCzD,EAAA,CAAXyD,EAAAA,IAAU,0BACCzD,EAAA,CAAXyD,EAAAA,IAAU,0BACCzD,EAAA,CAAXyD,EAAAA,IAAU,gCAmBXzD,EAAA,CADC0D,EAAAA,IAAM,qCAOG1D,EAAA,CAAT4U,EAAAA,IAAQ,gCAKT5U,EAAA,CADC0D,EAAAA,IAAM,sCAcP1D,EAAA,CADC0D,EAAAA,IAAM,6BA+BP1D,EAAA,CADC0D,EAAAA,IAAM,gCAaP1D,EAAA,CADC0D,EAAAA,IAAM,qCASG1D,EAAA,CAAT4U,EAAAA,IAAQ,iCAUC5U,EAAA,CAAT4U,EAAAA,IAAQ,sCAoBC5U,EAAA,CAAT4U,EAAAA,IAAQ,6BA/HQuB,EAAanW,EAAA,CADjCC,EAAAA,IACoBkW,G,yuBCEN,IAAMuB,EAAN,cAAoBlY,EAAAA,UAG/B0B,WAAAA,CAAYC,GACRC,MAAMD,GAHE2B,OAAAC,eAAA,kB,iDAAqB,IASjCD,OAAAC,eAAA,sB,gDAAgBO,IAAWL,EAAA,gCAAC,OAAAtC,KAAKuC,aAAa,MAO9CJ,OAAAC,eAAA,uB,gDAAiBO,IAAWL,EAAA,iCACxB6C,EAAAA,EAAAA,KAAY,KACRnF,KAAKyV,WAAazV,KAAKyV,SAAS,GAExC,MAGAtT,OAAAC,eAAA,a,gDAAcpD,GAAcsD,EAAA,iCACxB6C,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEQ,IAAIoI,SAAWnP,EACjBuG,EAAAA,EAAEgJ,OAAO,GAEjB,MAzBIvO,KAAKwO,KAAOxO,KAAKwO,KAAKpG,KAAKpI,MAC3BA,KAAKiW,eAAiBjW,KAAKiW,eAAe7N,KAAKpI,OAC/CqI,EAAAA,EAAAA,IAAerI,KACnB,CAIAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,cACpE,CAkBU,eAAI8N,GACV,OAAO/Q,EAAAA,EAAEQ,IAAI8I,QAAUjN,OAAOwI,WAAa,GAC/C,CAEAtL,MAAAA,GACI,KAAKyG,EAAAA,EAAEqJ,OAAUrJ,EAAAA,EAAEC,GAAGsK,WAAcvK,EAAAA,EAAEkB,MAASlB,EAAAA,EAAEoB,IAAOpB,EAAAA,EAAEoB,GAAGqQ,gBACzD,OAEJ,IAAKzR,EAAAA,EAAEkB,KAAKiK,QACR,OAEJ,GAAyB,QAArBnL,EAAAA,EAAEkB,KAAKH,UACP,OAEJ,GAAyB,QAArBf,EAAAA,EAAEkB,KAAKH,UACP,OAGJ,MAAMgQ,EACFtW,KAAKsW,cAAgBpU,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACxEqO,EAAqBA,CAACjY,EAAauG,EAAAA,EAAEQ,IAAIoI,WACpC,IAAPnP,GAAYkD,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAWiV,cAAe,IAAM,QAExE,OACIrY,EAAAA,cAAA,OACIM,UAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,WAC7EnH,MAAO,CAACmV,QAAS,IAEjB/X,EAAAA,cAAA,WACIA,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,cACHC,MAAM,qBAENJ,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAKM,UAAU,cACe,IAAzBoG,EAAAA,EAAEkB,KAAKsN,eAAuBxO,EAAAA,EAAEQ,IAAIiO,UAAY,QAAU,QAAS,IAAG,YAC7D,IACgB,IAAzBzO,EAAAA,EAAEkB,KAAKsN,eAAuBxO,EAAAA,EAAEQ,IAAIiO,UAC/B,aACA,QAAO,KAGjBnV,EAAAA,cAAA,KAAG4C,MAAO,CAACsT,aAAc,IAAE,iBACR,IACW,IAAzBxP,EAAAA,EAAEkB,KAAKsN,eAAuBxO,EAAAA,EAAEQ,IAAIiO,UAC/B,aACA,QAAS,IAAG,mEAGpB9R,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAWiV,cAAe,IAChD3R,EAAAA,EAAEkB,KAAK2H,cAAgB,GACnBvP,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAKM,UAAU,cAAY,sBAC3BN,EAAAA,cAAA,kGAMVqD,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAWiV,cAAe,IAChD3R,EAAAA,EAAEkB,KAAK0Q,cAAgB,GACnBtY,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAKM,UAAU,cAAY,8BAC3BN,EAAAA,cAAA,qFAMX0G,EAAAA,EAAEkB,KAAK2Q,cAAgB,GACpBvY,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAKM,UAAU,cAAY,wCAG3BN,EAAAA,cAAA,oIAMP0G,EAAAA,EAAEkB,MACClB,EAAAA,EAAEkB,KAAKiK,SACc,QAArBnL,EAAAA,EAAEkB,KAAKH,WACc,QAArBf,EAAAA,EAAEkB,KAAKH,WACPf,EAAAA,EAAEkB,KAAK2H,cAAgB,GACnBvP,EAAAA,cAAA,OAAK4C,MAAO,CAAC4V,UAAW,IACpBxY,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,oEAEZ3N,EAAAA,cAAA,OACI6N,IAAK,iEACLD,IAAI,aACJhL,MAAO,CAAC4F,MAAO,cAKhC9B,EAAAA,EAAEkB,KAAK2H,eAAiB7I,EAAAA,EAAEkB,KAAK2H,cAAgB,IAC9CvP,EAAAA,cAAA,OAAK4C,MAAO,CAAC4V,UAAW,IACpBxY,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,mEAEZ3N,EAAAA,cAAA,OACI6N,IAAK,gEACLD,IAAI,aACJhL,MAAO,CAAC4F,MAAO,cAOvCxI,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,mBACHC,MAAM,0BAENJ,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAKM,UAAU,KAAG,wCAClBN,EAAAA,cAAA,mTAURA,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACI4C,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACxD,aACA,SACNyB,SAAU,aAGdxL,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,IAAM,sBAAnE,YAAkG,iBAC7F0N,EAAc,WAAa,GAAE,iBAC9B,eAAc,iBACdA,QAAsB5T,EAAS,gBAC/B4T,EAAc,mBAAgB5T,GAE7C7D,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,IAAnF,qBAEX/J,EAAAA,cAAA,uBACAA,EAAAA,cAAA,YAC8B,IAAzB0G,EAAAA,EAAEkB,KAAKsN,eAAuBxO,EAAAA,EAAEQ,IAAIiO,UAC/B,cACA,GACLiD,KAAwB1R,EAAAA,EAAEC,GAAGsO,eAKxC5R,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACnD/J,EAAAA,cAAA,OACIM,UAAU,8BAA6B,iBACvBa,KAAKsW,YAAc,WAAa,GAAE,iBACnC,eAAc,iBACdtW,KAAKsW,kBAAsB5T,EAAS,gBACpC1C,KAAKsW,YAAc,mBAAgB5T,GAElD7D,EAAAA,cAAA,OAAKM,UAAU,kBACXN,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACIM,UAAU,+BACVsC,MAAO,CAACmL,aAAc,YAAU,SAIpC/N,EAAAA,cAAA,OAAKM,UAAU,cACV8X,KAAwB1R,EAAAA,EAAEC,GAAGsO,gBAOtDjV,EAAAA,cAAA,OACIG,GAAG,cACHyC,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACxD,aACA,UAEVzJ,UAAWmX,EAAc,WAAa,IAEtCzX,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,IAAnF,aACX9G,KAAK,UACLL,MAAO,CAACoV,WAAY,GAAE,aACX,sBAEVtR,EAAAA,EAAE+R,MACE7J,QACGyB,IACM3J,EAAAA,EAAEkB,KAAKkB,OAAkB,IAATuH,EAAElQ,IACP,IAATkQ,EAAElQ,IACQ,IAATkQ,EAAElQ,IAAYuG,EAAAA,EAAEkB,KAAK2H,cAAgB,GAC5B,IAATc,EAAElQ,IAAYuG,EAAAA,EAAEkB,KAAK0Q,cAAgB,GAC5B,IAATjI,EAAElQ,IAAYuG,EAAAA,EAAEkB,KAAK2Q,cAAgB,MACxClV,EAAAA,GAAYyG,YACV1G,EAAAA,EAAWiV,cACX,IAEChV,EAAAA,GAAYyG,YACT1G,EAAAA,EAAWiV,cACX,IAES,IAAThI,EAAElQ,IACO,IAATkQ,EAAElQ,MAEjBiQ,KAAIC,GAEIhN,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GA0BtD1G,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAGjD/J,EAAAA,cAAA,OACI2D,IAAK0M,EAAElQ,GACPC,MAAOgY,EAAmB/H,EAAElQ,KAAOkQ,EAAEjQ,MAAK,aAC9B,UAAUgY,EAAmB/H,EAAElQ,KAAOkQ,EAAEjQ,cACpDE,UAAW,cAAcoG,EAAAA,EAAEQ,IAAIoI,WAAae,EAAElQ,GAAK,UAAY,sBAC/DwC,QAASA,IAAMxB,KAAKwO,KAAKU,EAAElQ,IAC3B8C,KAAK,SACLP,SAAU,GAEV1C,EAAAA,cAAA,OAAKM,UAAU,0BACXN,EAAAA,cAAA,YACKoY,EAAmB/H,EAAElQ,KAAOkQ,EAAEjQ,MAAO,KAE1CJ,EAAAA,cAAA,QAAMM,UAAU,SAAS+P,EAAEzJ,OAC1BF,EAAAA,EAAE6J,kBACC7J,EAAAA,EAAEyE,UACO,IAATkF,EAAElQ,IACEH,EAAAA,cAAA,OAAKM,UAAU,sBACXN,EAAAA,cAAA,KAAGM,UAAU,iCAtBlC,EAtBCN,EAAAA,cAAA,OACI2D,IAAK0M,EAAElQ,GACPC,MAAOgY,EAAmB/H,EAAElQ,KAAOkQ,EAAEjQ,MAAK,aAC9B,UAAUgY,EAAmB/H,EAAElQ,KAAOkQ,EAAEjQ,cACpDE,UAAW,eAAcoG,EAAAA,EAAEQ,IAAIoI,WAAae,EAAElQ,GAAK,UAAY,IAC/DwC,QAASA,IAAMxB,KAAKwO,KAAKU,EAAElQ,IAC3B8C,KAAK,SACLP,SAAU,GAEV1C,EAAAA,cAAA,OAAKM,UAAU,SACV8X,EAAmB/H,EAAElQ,KAAOkQ,EAAEjQ,MAAO,IACrCiQ,EAAEzJ,MACFF,EAAAA,EAAE6J,kBACC7J,EAAAA,EAAEyE,UACO,IAATkF,EAAElQ,IACEH,EAAAA,cAAA,OAAKM,UAAU,sBACXN,EAAAA,cAAA,KAAGM,UAAU,+BAqC/C+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACnD/J,EAAAA,cAAA,YAC+B,IAAzB0G,EAAAA,EAAEkB,KAAKsN,eAAuBxO,EAAAA,EAAEQ,IAAIiO,YAClCnV,EAAAA,cAAA,OACIM,UAAU,OACV2C,KAAK,SAAQ,aACF,uCACXN,QAASA,IAAMX,EAAAA,GAAW,oBAC1BU,SAAU,EAAC,gBACG,SAAQ,gBACR,oBAAkB,uCAEK,IACrC1C,EAAAA,cAAA,QAAM4C,MAAO,CAACkL,YAAa,IACvB9N,EAAAA,cAAA,KAAGM,UAAU,yBAIzBN,EAAAA,cAAA,WACIA,EAAAA,cAAA,QACIM,UAAU,OACVsC,MAAO,CAACwT,SAAU,IAClBzT,QAASA,IAAMX,EAAAA,GAAW,eAAc,aAC7B,uCACXiB,KAAK,SACLP,SAAU,EAAC,gBACG,SAAQ,gBACR,eAAa,cAGvB,IAAG,+CAStCW,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAA,MAAI4C,MAAO,CAACoL,WAAY,MAIxC,GAhWYxN,EAAA,CAAXyD,EAAAA,IAAU,gCAgBXzD,EAAA,CADC0D,EAAAA,IAAM,qCAQP1D,EAAA,CADC0D,EAAAA,IAAM,2BASG1D,EAAA,CAAT4U,EAAAA,IAAQ,gCAhCQ8C,EAAK1X,EAAA,CADzBC,EAAAA,IACoByX,G,wuBCAN,IAAMQ,EAAN,cAAuB1Y,EAAAA,UAClC0B,WAAAA,CAAYC,GACRC,MAAMD,GAIV2B,OAAAC,eAAA,sB,gDAAgBO,IAAWL,EAAA,gCAAC,OAAAtC,KAAKuC,aAAa,MAO9CJ,OAAAC,eAAA,a,gDAAcjB,GAA0CmB,EAAA,iCACpD6C,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEQ,IAAIyR,UAAYrW,EAAE/B,OAAOuD,KAAK,GAExC,MAdI3C,KAAKwO,KAAOxO,KAAKwO,KAAKpG,KAAKpI,KAC/B,CAIAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,cACpE,CASA1J,MAAAA,GACI,OAAKyG,EAAAA,EAAEQ,IAAI8I,QAAWtJ,EAAAA,EAAEC,GAAGsK,WAAcvK,EAAAA,EAAEC,GAAGiS,eAkHnC5Y,EAAAA,cAAA,OAAKM,UAAU,SAhHlBN,EAAAA,cAAA,OACIM,UAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,YAE7E/J,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,kBACHC,MAAO,qCAAqCsG,EAAAA,EAAEC,GAAG4P,SAASjK,uBAE1DtM,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAKM,UAAU,cAAY,uCAC3BN,EAAAA,cAAA,8XAQAA,EAAAA,cAAA,OAAKM,UAAU,cAAY,kBAC3BN,EAAAA,cAAA,8DAEK2T,SAAS8C,qBAAoB,qFACiB,IAC9C9C,SAAS6C,qBAAoB,QAIxCnT,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACnD/J,EAAAA,cAAA,OAAKM,UAAU,uBACXN,EAAAA,cAAA,QACIM,UAAU,aACVsC,MAAO,CAACiW,SAAU,MAAI,oBAI1B7Y,EAAAA,cAAA,SACIkD,KAAK,OACL5C,UAAU,4BACVsC,MAAO,CAACC,SAAU,IAAKgW,SAAU,IACjCxK,SAAUlN,KAAKwO,KACflB,UAAW,EACXqK,IAAK,IACLC,KAAM,KAAI,aACC,0BAEf/Y,EAAAA,cAAA,OACIM,UAAU,OACVsC,MAAO,CAACiW,SAAU,MAElB7Y,EAAAA,cAAA,KACIM,UAAU,qBACVsC,MAAO,CAACoW,MAAO,QACf/V,KAAK,SACLN,QAASA,IAAMX,EAAAA,GAAW,mBAAkB,aACjC,8DAA6D,gBAC1D,SAAQ,gBACR,oBAElBhC,EAAAA,cAAA,QACIM,UAAU,OACVsC,MAAO,CAACkL,YAAa,EAAGkL,MAAO,SAAO,oBAQrD3V,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAA,OACIM,UAAU,sBACVsC,MAAO,CACHqW,cAAe,SACfnL,YAAa,GACbkK,WAAY,GACZkB,WAAY,UAGhBlZ,EAAAA,cAAA,OAAK4C,MAAO,CAACsN,QAAS,OAAQgJ,WAAY,SAAUC,IAAK,IACrDnZ,EAAAA,cAAA,QACIM,UAAU,aACVsC,MAAO,CAACuN,WAAY,MAAI,mCAI5BnQ,EAAAA,cAAA,KACIM,UAAU,qBACV2C,KAAK,SACLN,QAASA,IAAMX,EAAAA,GAAW,mBAAkB,aACjC,8DAA6D,gBAC1D,SAAQ,gBACR,qBAGtBhC,EAAAA,cAAA,SACIkD,KAAK,OACLkL,YAAY,iCACZ9N,UAAU,4BACV+N,SAAUlN,KAAKwO,KACflB,UAAW,EACXqK,IAAK,IACLC,KAAM,KAAI,aACC,wBACXnW,MAAO,CAACmV,QAAS,GAAIqB,OAAQ,sBAIxC/V,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAA,MAAI4C,MAAO,CAACoL,WAAY,MAO5C,GA3HAxN,EAAA,CADC0D,EAAAA,IAAM,2BAZUwU,EAAQlY,EAAA,CAD5BC,EAAAA,IACoBiY,G,mvBCsBN,IAAMW,EAAN,cAA8BrZ,EAAAA,UAUzC0B,WAAAA,CAAYC,GACRC,MAAMD,GAVE2B,OAAAC,eAAA,a,yDACAD,OAAAC,eAAA,gB,yDACAD,OAAAC,eAAA,mB,yDACAD,OAAAC,eAAA,e,yDACAD,OAAAC,eAAA,e,yDACAD,OAAAC,eAAA,a,yDACAD,OAAAC,eAAA,sB,yDACAD,OAAAC,eAAA,e,gDAA4CvD,EAAAA,cA8IxDsD,OAAAC,eAAA,c,gDAActC,GAAQwC,EAAA,gCAClBxC,EAAMuU,iBACN9O,EAAAA,EAAEC,GAAGuC,gBAAiB,EACtBxC,EAAAA,EAAEC,GAAGwC,mBAAqB,GAC1BzC,EAAAA,EAAEQ,IAAIoS,mBAAqB,GAC3B5S,EAAAA,EAAEQ,IAAIqS,gBAAkB,GACxB7S,EAAAA,EAAEC,GAAG6S,iBAAkB,EACvBrY,KAAKsY,WAAa,EAClB/S,EAAAA,EAAEC,GAAG6S,iBAAkB,EACvB9S,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEC,GAAG8I,gBAAiB,GAEtBnJ,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEC,GAAGuC,gBAAiB,EACtBxC,EAAAA,EAAEC,GAAGwC,mBAAqB,GAC1BzC,EAAAA,EAAEQ,IAAIoS,mBAAqB,GAC3B5S,EAAAA,EAAEQ,IAAIqS,gBAAkB,GACxB7S,EAAAA,EAAEC,GAAG6S,iBAAkB,EACvBrY,KAAKsY,WAAa,EAClB/S,EAAAA,EAAEC,GAAG6S,iBAAkB,EACvB9S,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEgJ,QACFvO,KAAKuC,aAAa,IAGtBgD,EAAAA,EAAEgJ,QACFvO,KAAKuC,aACT,MAtKIvC,KAAKuY,SAAU,EACfvY,KAAKsY,WAAa,EAClBtY,KAAKwO,KAAOxO,KAAKwO,KAAKpG,KAAKpI,MAC3BA,KAAKwY,WAAaxY,KAAKwY,WAAWpQ,KAAKpI,MACvCA,KAAKyY,WAAazY,KAAKyY,WAAWrQ,KAAKpI,MACvCA,KAAK0Y,mBAAqB1Y,KAAK0Y,mBAAmBtQ,KAAKpI,OACvDqI,EAAAA,EAAAA,IAAerI,MAEf2D,SAASC,iBAAiB,gBAAiB9D,IACvC,IACQA,GAA0B,qBAAjBA,EAAM6Y,SACfxT,EAAAA,EAAAA,KAAY,KACR,MAAMyT,EACFjV,SAASgO,cAAc,cACvBiH,IACAA,EAAUjW,MAAQ,GACtB,GAGZ,CAAE,MAAOkW,GACLnU,QAAQC,MAAMkU,EAClB,IAER,CAEU,aAAIC,GACV,OAAO9Y,KAAKuY,OAChB,CAGM/J,IAAAA,CAAK1O,G,yCACPA,EAAMuU,iBACNrU,KAAKsY,WAAa,EAClB/S,EAAAA,EAAEC,GAAGuC,gBAAiB,EACtBxC,EAAAA,EAAEC,GAAG6S,iBAAkB,EACvB9S,EAAAA,EAAEC,GAAGwC,mBAAqB,GAC1BzC,EAAAA,EAAEC,GAAGuT,iBAAmB,kBACxBxT,EAAAA,EAAEC,GAAGwT,gBAAkB,+DAEvB,MACMC,EAAW,IAAIC,SAASpZ,EAAMqZ,eACpCF,EAASG,OAAO,OAAQpZ,KAAKqZ,MAC7BJ,EAASG,OAAO,WAAYpZ,KAAKqZ,KAAKrM,MACtCiM,EAASG,OAAO,YAAa7T,EAAAA,EAAEQ,IAAIc,SAASyS,YAC5CL,EAASG,OAAO,aAAc7T,EAAAA,EAAEQ,IAAIe,UAAUwS,YAC9CL,EAASG,OAAO,MAAOG,OAEvB,MAAMC,EAAiC7V,SAASgO,cAC5C,4CAEE8H,EAAS,CACXC,QAAS,CACLC,yBAA0BH,aAAK,EAALA,EAAO7W,QAIzC0B,EAAAA,EACKC,KAlBO,iBAkBG2U,EAAUQ,GACpBlV,MAAKC,IACF,IAAIoV,EAAmBpV,EAASM,KAChCJ,QAAQ6B,IAAIqT,IAEZzU,EAAAA,EAAAA,KAAY,KACJyU,EAAGC,KAAKzZ,SAAS,UAA+B,KAAnBwZ,EAAGC,KAAK1S,QACrC5B,EAAAA,EAAEC,GAAGuC,gBAAiB,EACtBxC,EAAAA,EAAEC,GAAGwC,mBACD,uEACJhI,KAAKsY,WAAa,EAClB5T,QAAQ6B,IAAI,YAAahB,EAAAA,EAAEC,GAAGwC,sBAE9BzC,EAAAA,EAAEuU,aAAeF,EAAGxF,EACpB7O,EAAAA,EAAEwU,aAAeH,EAAGzF,EAEhBnU,KAAKsY,WAAa,IAClB5T,QAAQ6B,IAAI,WACZhB,EAAAA,EAAEC,GAAGuC,gBAAiB,EACtBxC,EAAAA,EAAEC,GAAGwC,mBAAqB,GAC1BzC,EAAAA,EAAEQ,IAAIoS,mBAAqByB,EAAGC,KAC9BtU,EAAAA,EAAEQ,IAAIqS,gBAAkB,yCAAyCwB,EAAGC,WACpEtU,EAAAA,EAAEC,GAAG8I,gBAAiB,IAG9BtO,KAAKuC,cACLgD,EAAAA,EAAEC,GAAG6S,iBAAkB,CAAK,GAC9B,IAELtT,OAAMC,IACHN,QAAQC,MAAMK,GACdO,EAAAA,EAAEC,GAAG6S,iBAAkB,CAAK,IAE/B2B,SAAQ,KACLzU,EAAAA,EAAEC,GAAG6S,iBAAkB,EACvB9S,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEgJ,QACFvO,KAAKuC,aAAa,GAE9B,G,CAGAmW,kBAAAA,CAAmBuB,GACf,GAAIja,KAAKka,OAAO9Q,SAAW6Q,EAAK5S,OAAS4S,EAAK3S,OAAQ,CAClD,MAAM,aAAC6S,EAAY,cAAEC,EAAa,MAAE/S,EAAK,OAAEC,GAAUtH,KAAKka,OAAO9Q,QAC3DiR,EAAS1W,SAAS2W,cAAc,UAChCC,EAASJ,EAAe9S,EACxBmT,EAASJ,EAAgB9S,EAC/B+S,EAAOhT,MAAQ4S,EAAK5S,MACpBgT,EAAO/S,OAAS2S,EAAK3S,OACrB,MAAMmT,EAAMJ,EAAOK,WAAW,MAE9B,IAAKD,EACD,OAGJA,EAAIE,UACA3a,KAAKka,OAAO9Q,QACZ6Q,EAAKvM,EAAI6M,EACTN,EAAKW,EAAIJ,EACTP,EAAK5S,MAAQkT,EACbN,EAAK3S,OAASkT,EACd,EACA,EACAP,EAAK5S,MACL4S,EAAK3S,QAGT+S,EAAOQ,QAAOC,IACLA,IAGL9a,KAAKqZ,KAAO,IAAI0B,KAAK,CAACD,GAAO9a,KAAKqZ,KAAKrM,KAAM,CAACjL,KAAM/B,KAAKqZ,KAAKtX,OAAM,IAExE/B,KAAKgb,cAAgBf,CACzB,CACJ,CAoCAxB,UAAAA,CAAWtX,GACP,GAAIA,EAAE/B,OAAO6b,OAAS9Z,EAAE/B,OAAO6b,MAAM9T,OAAQ,CACzCnH,KAAKqZ,KAAOlY,EAAE/B,OAAO6b,MAAM,GAC3Bjb,KAAKkb,OAAS,GACdlb,KAAKuY,SAAU,EACf1X,EAAAA,GAAW,qBACXsE,EAAAA,EAAAA,KAAY,KACRnF,KAAKuY,SAAU,EACfvY,KAAKuC,aAAa,IAEtBvC,KAAKia,UAAOvX,EACZ,MAAMyY,EAAS,IAAIC,WACnBD,EAAOvX,iBAAiB,QAAQ,KAC5BuB,EAAAA,EAAAA,KAAY,K,MACRnF,KAAKkb,QAAsB,QAAbpR,EAAAqR,EAAO7V,cAAM,IAAAwE,OAAA,EAAAA,EAAEwP,aAAc,EAAE,MAGrD6B,EAAOE,cAAcrb,KAAKqZ,KAC9B,CACJ,CAGAb,UAAAA,CAAWrX,GAEP,GADAnB,KAAKsb,OAAS/V,EAAAA,EAAEQ,IAAIc,SAAWtB,EAAAA,EAAEQ,IAAIe,UACjC9G,KAAKsb,OAAQ,CACb,MAAM,MAACjU,EAAK,OAAEC,GAAUnG,EAAEgY,cAC1BnZ,KAAKia,KAzOQsB,EAAClU,EAAeC,EAAgBgU,KAC9C9C,EAAAA,EAAAA,KACHgD,EAAAA,EAAAA,IACI,CACIC,KAAM,IACNpU,MAAO,KAEXiU,EACAjU,EACAC,GAEJD,EACAC,GA6NgBiU,CAAiBlU,EAAOC,EAAQtH,KAAKsb,OACrD,CACJ,CAEAxc,MAAAA,GACI,OAAKyG,EAAAA,EAAEQ,IAAI8I,QAAWtJ,EAAAA,EAAEC,GAAGsK,WAAcvK,EAAAA,EAAEC,GAAGiS,eAgLnC5Y,EAAAA,cAAA,OAAKM,UAAU,SA9KlBN,EAAAA,cAAA,OAAKM,UAAU,YACXN,EAAAA,cAAA,OAAK4C,MAAO,CAACmV,QAAS,qBAClB/X,EAAAA,cAAA,UAAK0G,EAAAA,EAAEkB,KAAKwB,QAAO,WACnBpJ,EAAAA,cAAA,OAAK4C,MAAO,CAACoV,WAAY,SACnBtR,EAAAA,EAAEC,GAAGuC,gBAAkBlJ,EAAAA,cAAA,SACrBG,GAAG,YACH+C,KAAK,OACL2Z,OAAO,UACPxO,SAAUlN,KAAKyY,aAEhBlT,EAAAA,EAAEC,GAAGuC,gBACJlJ,EAAAA,cAAA,UACIkD,KAAK,SACL5C,UAAU,eACVsC,MAAO,CAACwT,SAAU,OAAQ2B,QAAS,YACnCpV,QAASxB,KAAK2b,MACdpa,SAAU,GAAC,WAMvB1C,EAAAA,cAAA,WACIA,EAAAA,cAACE,EAAAA,EAAW,CACR2C,SAAU,QACV1C,GAAG,mBACHC,MAAO,cAEPJ,EAAAA,cAAA,WACIA,EAAAA,cAAA,2DACAA,EAAAA,cAAA,OAAK4C,MAAO,CAACma,UAAW,aACjB5b,KAAKkb,QACJrc,EAAAA,cAACgd,EAAAA,GAAS,CACN3O,SAAUA,CAAC+M,EAAM6B,IACZ9b,KAAKia,KAAO6B,EAEjBC,WAAY9B,GAAQja,KAAK0Y,mBAAmBuB,GAC5CA,KAAMja,KAAKia,KACXqB,OAAQtb,KAAKsb,OACbU,UAAW,KAEXnd,EAAAA,cAAA,OACIod,OAAQjc,KAAKwY,WACb7O,IAAK3J,KAAKka,OACVxN,IAAK1M,KAAKkb,OACVzO,IAAI,gBAIhB5N,EAAAA,cAAA,QACIG,GAAG,WACHkd,SAAUlc,KAAKwO,QAEZxO,KAAKgb,eAAiBhb,KAAK8Y,WAC1Bja,EAAAA,cAAA,UACIkD,KAAK,SACL5C,UAAU,eACVsC,MAAO,CACHwT,SAAU,OACV2B,QAAS,WACTS,UAAW,QAEf8E,SAAU5W,EAAAA,EAAEC,GAAG6S,gBAAe,eACjB,QACb9W,SAAU,GAAC,gBAWrCgE,EAAAA,EAAEC,GAAGuC,gBAA8C,KAA5BxC,EAAAA,EAAEC,GAAGwC,oBAC1BnJ,EAAAA,cAAA,OAAK4C,MAAO,CAACoV,WAAY,QACrBhY,EAAAA,cAAA,OAAKM,UAAU,sBACXN,EAAAA,cAAA,SACIA,EAAAA,cAAA,mBAAW0G,EAAAA,EAAEkB,KAAKwB,QAAO,WAE7BpJ,EAAAA,cAAA,SAAI0G,EAAAA,EAAEC,GAAGwC,sBAKA,IAApBhI,KAAKsY,YACFzZ,EAAAA,cAAA,OAAK4C,MAAO,CAACoV,WAAY,QACrBhY,EAAAA,cAAA,OAAKM,UAAU,sBACXN,EAAAA,cAAA,SACIA,EAAAA,cAAA,oCAEJA,EAAAA,cAAA,oCAC6B0G,EAAAA,EAAE6W,MAAK,IAAG7W,EAAAA,EAAE8W,MAAK,gPAIe,IACxD9W,EAAAA,EAAE+W,UAAS,IAAG/W,EAAAA,EAAEgX,UAAS,mLAGWhX,EAAAA,EAAEuU,aAAY,IAClDvU,EAAAA,EAAEwU,aAAY,OAMV,IAApB/Z,KAAKsY,YACFzZ,EAAAA,cAAA,OAAK4C,MAAO,CAACoV,WAAY,QACrBhY,EAAAA,cAAA,OAAKM,UAAU,oBACXN,EAAAA,cAAA,SACIA,EAAAA,cAAA,8BAEJA,EAAAA,cAAA,gMAIW0G,EAAAA,EAAE+W,UAAS,IAAG/W,EAAAA,EAAEgX,UAAS,mLAGKhX,EAAAA,EAAEuU,aAAY,IAClDvU,EAAAA,EAAEwU,aAAY,QAMnClb,EAAAA,cAAA,WACIA,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,wBACHC,MAAO,yCAEPJ,EAAAA,cAAA,WACIA,EAAAA,cAAA,SACIA,EAAAA,cAAA,qCAEJA,EAAAA,cAAA,oCAC6B0G,EAAAA,EAAE6W,MAAK,IAAG7W,EAAAA,EAAE8W,MAAK,iPAIJ9W,EAAAA,EAAE+W,UAAS,IAAG/W,EAAAA,EAAEgX,UAAW,IAAG,0IAKvEhX,EAAAA,EAAEoB,GAAG6V,UAAY,GACd3d,EAAAA,cAAA,8BACuBgC,EAAAA,GAAc0E,EAAAA,EAAEoB,GAAG6V,WAAU,6CAMhE3d,EAAAA,cAAA,QACIM,UAAU,OACVqC,QAASA,IAAMX,EAAAA,GAAW,yBAC1BiB,KAAK,SAAQ,aACF,+DACXL,MAAO,CAACwT,SAAU,YAClB1T,SAAU,EAAC,gBACG,SAAQ,gBACR,yBAAuB,wCAGrC1C,EAAAA,cAAA,QAAM4C,MAAO,CAACkL,YAAa,IACvB9N,EAAAA,cAAA,KAAGM,UAAU,0BASzC,GAtYYE,EAAA,CAAXyD,EAAAA,IAAU,2BACCzD,EAAA,CAAXyD,EAAAA,IAAU,8BACCzD,EAAA,CAAXyD,EAAAA,IAAU,iCACCzD,EAAA,CAAXyD,EAAAA,IAAU,6BACCzD,EAAA,CAAXyD,EAAAA,IAAU,6BACCzD,EAAA,CAAXyD,EAAAA,IAAU,2BACCzD,EAAA,CAAXyD,EAAAA,IAAU,oCACCzD,EAAA,CAAXyD,EAAAA,IAAU,6BA6BDzD,EAAA,CAAT4U,EAAAA,IAAQ,8BAKH5U,EAAA,CADL0D,EAAAA,IAAM,yBAuEP1D,EAAA,CADC0D,EAAAA,IAAM,uCAuCP1D,EAAA,CADC0D,EAAAA,IAAM,4BAiCP1D,EAAA,CADC0D,EAAAA,IAAM,+BAuBP1D,EAAA,CADC0D,EAAAA,IAAM,+BA3MUmV,EAAe7Y,EAAA,CADnCC,EAAAA,IACoB4Y,G,qtBCvBN,IAAMuE,EAAN,cAAuB5d,EAAAA,UAOlC0B,WAAAA,CAAYC,GACRC,MAAMD,GAPE2B,OAAAC,eAAA,iB,iDAAoB,IACpBD,OAAAC,eAAA,sB,gDAAwB,KACxBD,OAAAC,eAAA,kB,iDAAqB,IACrBD,OAAAC,eAAA,yB,gDAA2B,IAC3BD,OAAAC,eAAA,e,iDAAkB,IAgB9BD,OAAAC,eAAA,sB,gDAAgBO,IAAWL,EAAA,gCACvBtC,KAAKuC,cACLvC,KAAK0c,iBAAmB1c,KAAK2c,oBACjC,MAgBAxa,OAAAC,eAAA,qB,gDAAeO,IAAWL,EAAA,iCACtB6C,EAAAA,EAAAA,KAAY,KACRnF,KAAK4c,cAAgBhY,KAAKC,MAAMD,KAAKiY,UAAUtX,EAAAA,EAAEkB,KAAKqW,SAASC,oBAC/D/c,KAAKgd,UAAW,CAAI,GAE5B,MAGA7a,OAAAC,eAAA,a,gDAAOO,IAAWL,EAAA,iCACd6C,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEQ,IAAI0N,YAAclO,EAAAA,EAAEkB,KAAKwW,WAC3B1X,EAAAA,EAAEQ,IAAImX,mBAAqBld,KAAK4c,cAChCrX,EAAAA,EAAEQ,IAAIoX,mBAAqB,OAC3B5X,EAAAA,EAAEQ,IAAIqX,iBAAkB,EACxB7X,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEC,GAAG6I,UAAW,EAEhB,MAAMa,EAAI3J,EAAAA,EAAEkB,KAAK4W,UAAU5P,QAAOyB,GAAKA,EAAElQ,KAAOuG,EAAAA,EAAEkB,KAAKwW,aAAY,GACnE1X,EAAAA,EAAEQ,IAAI0N,YAAcvE,EAAElQ,GACtBuG,EAAAA,EAAEQ,IAAImX,mBAAqBhO,EAAElC,KAC7BzH,EAAAA,EAAEQ,IAAIqX,gBAAkBlO,EAAEoO,MAC1B/X,EAAAA,EAAEQ,IAAIoX,mBAAqBjO,EAAEqO,UAAUpS,cACvC5F,EAAAA,EAAEC,GAAGgY,cAAgBtO,EAAElC,KAAK7B,cAC5B5F,EAAAA,EAAEC,GAAGkO,eAAiBxE,EAAEjQ,MACxBsG,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEC,GAAG8I,gBAAiB,EAEtB/I,EAAAA,EAAEgJ,QAEE3M,OAAOwI,WAAa,MACVzG,SAASG,eAAe,iBAChC2Z,gBACN,GAER,MAGAtb,OAAAC,eAAA,a,gDAAcsb,GAAepb,EAAA,iCAEzB6C,EAAAA,EAAAA,KAAY,KACR,MAAM+J,EAAI3J,EAAAA,EAAEkB,KAAK4W,UAAU5P,QAAOyB,GAAKA,EAAElQ,KAAO0e,IAAK,GACjDxO,EAAElQ,KAAOuG,EAAAA,EAAEkB,KAAKwW,YAIpB1X,EAAAA,EAAEQ,IAAI0N,YAAcvE,EAAElQ,GACtBuG,EAAAA,EAAEQ,IAAImX,mBAAqBhO,EAAElC,KAC7BzH,EAAAA,EAAEQ,IAAIqX,gBAAkBlO,EAAEoO,MAC1B/X,EAAAA,EAAEQ,IAAIoX,mBAAqBjO,EAAEqO,UAAUpS,cACvC5F,EAAAA,EAAEC,GAAGgY,cAAgBtO,EAAElC,KAAK7B,cAC5B5F,EAAAA,EAAEC,GAAGkO,eAAiBxE,EAAEjQ,MACxBsG,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEgJ,QAEE3M,OAAOwI,WAAa,MACVzG,SAASG,eAAe,eAChC2Z,kBAfFzd,KAAK2d,MAgBT,GAER,MAGAxb,OAAAC,eAAA,uB,gDAAiBO,IAAWL,EAAA,iCACxB6C,EAAAA,EAAAA,KAAY,KACRnF,KAAKyV,WAAazV,KAAKyV,UACvBzV,KAAK0c,iBAAmB1c,KAAKyV,UAAYzV,KAAK2c,qBAAuB,GAAI,GAEjF,MAGAxa,OAAAC,eAAA,uB,gDAAwBjB,GAA2CmB,EAAA,iCAC/D6C,EAAAA,EAAAA,KAAY,KACRnF,KAAK4d,OAASvO,SAASlO,EAAE/B,OAAOuD,MAAM,GAE9C,MAGAR,OAAAC,eAAA,mB,gDAAoBjB,GAAUmB,EAAA,iCAC1B6C,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEQ,IAAI0N,aAAe,EACrBlO,EAAAA,EAAEC,GAAGkO,eAAiB,GACtBnO,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEgJ,OAAO,GAEjB,MArHIvO,KAAK6d,aAAe7d,KAAK6d,aAAazV,KAAKpI,MAC3CA,KAAK2d,KAAO3d,KAAK2d,KAAKvV,KAAKpI,MAC3BA,KAAKwO,KAAOxO,KAAKwO,KAAKpG,KAAKpI,MAC3BA,KAAKiW,eAAiBjW,KAAKiW,eAAe7N,KAAKpI,MAC/CA,KAAK8d,eAAiB9d,KAAK8d,eAAe1V,KAAKpI,MAC/CA,KAAK+d,WAAa/d,KAAK+d,WAAW3V,KAAKpI,MACnCuF,EAAAA,EAAEQ,IAAI8I,SACN7O,KAAK4d,QAAU,IAEnBvV,EAAAA,EAAAA,IAAerI,KACnB,CAOAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,cACpE,CAGAmU,kBAAAA,GACI,OAAIza,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAC9C,EAEA,CAEf,CA2FU,eAAI0N,GACV,OAAO/Q,EAAAA,EAAEQ,IAAI8I,QAAUjN,OAAOwI,WAAa,GAC/C,CAEAtL,MAAAA,GACI,IAAKyG,EAAAA,EAAEC,GAAGsK,YAAcvK,EAAAA,EAAEkB,OAASlB,EAAAA,EAAEkB,KAAK4W,WAAa9X,EAAAA,EAAEkB,KAAK4W,UAAUlW,QAAU,EAC9E,OAECnH,KAAKgd,UACNhd,KAAK6d,eAGT,MAAMvH,EACFtW,KAAKsW,cAAgBpU,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAE9E,OACI/J,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,YAAlE,iBACXnH,MAAO,CAACmV,QAAS,IAEjB/X,EAAAA,cAAA,OAAKM,WAAWa,KAAKsW,YAAc,KAC/BzX,EAAAA,cAAA,OACI4C,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACxD,aACA,WAGV/J,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,IAAM,sBAAnE,YAAkG,iBAC7F0N,EAAc,WAAa,GAAE,iBAC9B,kBAAiB,iBACjBA,QAAsB5T,EAAS,gBAC/B4T,EAAc,sBAAmB5T,GAEhD7D,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,IAAnF,qBAEX/J,EAAAA,cAAA,0BACAA,EAAAA,cAAA,YAAO0G,EAAAA,EAAEC,GAAGkO,mBAIlBxR,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACnD/J,EAAAA,cAAA,OACIM,UAAU,8BAA6B,iBACvBa,KAAKsW,YAAc,WAAa,GAAE,iBACnC,kBAAiB,iBACjBtW,KAAKsW,kBAAsB5T,EAAS,gBACpC1C,KAAKsW,YAAc,sBAAmB5T,GAErD7D,EAAAA,cAAA,OAAKM,UAAU,kBACXN,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACIM,UAAU,+BACVsC,MAAO,CAACmL,aAAc,YAAU,YAIpC/N,EAAAA,cAAA,OAAKM,UAAU,cAAcoG,EAAAA,EAAEC,GAAGkO,iBAEtC7U,EAAAA,cAAA,WACKmB,KAAKsW,aACFtW,KAAKyV,WACLlQ,EAAAA,EAAEkB,KAAK4W,UACF5P,QAAOyB,GAAKA,EAAElQ,KAAOuG,EAAAA,EAAEQ,IAAI0N,cAC3BxE,KAAI,CAACC,EAA0BjI,IAC5BpI,EAAAA,cAAA,OACI2D,IAAKyE,EACLyF,IAAK,0DAA0DwC,EAAElC,KAAK7B,uBACtEsB,IAAKyC,EAAEjQ,MACPwC,MAAO,CACHuc,gBAAiB,IAAIzY,EAAAA,EAAEC,GAAGyY,aAC1B3W,OAAQ,GACRD,MAAO,gBAU/CxI,EAAAA,cAAA,OACIG,GAAG,iBACHG,UAAWmX,EAAc,WAAa,GACtC7U,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACxD,aACA,WAGY,QAArBrD,EAAAA,EAAEkB,KAAKH,WACiB,QAArBf,EAAAA,EAAEkB,KAAKH,WACc,QAArBf,EAAAA,EAAEkB,KAAKH,WACc,QAArBf,EAAAA,EAAEkB,KAAKH,WACHzH,EAAAA,cAAA,WACIA,EAAAA,cAAA,UACIM,UAAU,cACV+N,SAAUlN,KAAK8d,gBAEdvY,EAAAA,EAAEkB,KAAK4W,UAAU5P,QAAOyB,IAAMA,EAAEoO,QAAOnW,OAAS,GAC7CtI,EAAAA,cAAA,UAAQ8D,OAAQ,GAAC,YAEpB4C,EAAAA,EAAEkB,KAAK4W,UAAU5P,QAAOyB,GAAKA,EAAEoO,QAAOnW,OAAS,GAC5CtI,EAAAA,cAAA,UAAQ8D,OAAQ,GAAC,OAEpB4C,EAAAA,EAAEkB,KAAK4W,UAAU5P,QAAOyB,GAAkB,KAAbA,EAAE0O,SAAezW,OAC3C,GAAKtI,EAAAA,cAAA,UAAQ8D,MAAO,IAAE,YACzB4C,EAAAA,EAAEkB,KAAK4W,UAAU5P,QAAOyB,GAAkB,KAAbA,EAAE0O,SAAezW,OAC3C,GAAKtI,EAAAA,cAAA,UAAQ8D,MAAO,IAAE,UACzB4C,EAAAA,EAAEkB,KAAK4W,UAAU5P,QAAOyB,GAAkB,KAAbA,EAAE0O,SAAezW,OAC3C,GAAKtI,EAAAA,cAAA,UAAQ8D,MAAO,IAAE,WACzB4C,EAAAA,EAAEkB,KAAK4W,UAAU5P,QAAOyB,GAAkB,KAAbA,EAAE0O,SAAezW,OAC3C,GAAKtI,EAAAA,cAAA,UAAQ8D,MAAO,IAAE,YACzB4C,EAAAA,EAAEkB,KAAK4W,UAAU5P,QAAOyB,GAAkB,KAAbA,EAAE0O,SAAezW,OAC3C,GAAKtI,EAAAA,cAAA,UAAQ8D,MAAO,IAAE,cACzB4C,EAAAA,EAAEkB,KAAK4W,UAAU5P,QAAOyB,GAAkB,KAAbA,EAAE0O,SAAezW,OAC3C,GAAKtI,EAAAA,cAAA,UAAQ8D,MAAO,IAAE,UACzB4C,EAAAA,EAAEkB,KAAK4W,UAAU5P,QAAOyB,GAAkB,KAAbA,EAAE0O,SAAezW,OAC3C,GAAKtI,EAAAA,cAAA,UAAQ8D,MAAO,IAAE,WACzB4C,EAAAA,EAAEkB,KAAK4W,UAAU5P,QAAOyB,GAAkB,KAAbA,EAAE0O,SAAezW,OAC3C,GAAKtI,EAAAA,cAAA,UAAQ8D,MAAO,IAAE,aACzB4C,EAAAA,EAAEkB,KAAK4W,UAAU5P,QAAOyB,GAAkB,KAAbA,EAAE0O,SAAezW,OAC3C,GAAKtI,EAAAA,cAAA,UAAQ8D,MAAO,IAAE,iBAI1C9D,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,IAAnF,WACX9G,KAAK,WAEJyD,EAAAA,EAAEkB,KAAK4W,UACH5P,QACGyB,GACK3J,EAAAA,EAAEC,GAAG0Y,QACDhP,EAAEjQ,MAAMkM,cAAc/K,SAAS,cACnCmF,EAAAA,EAAEC,GAAG0Y,QAEbzQ,QACGyB,IACKA,EAAE0O,SAAW5d,KAAK4d,SAA2B,IAAjB5d,KAAK4d,UAChCrY,EAAAA,EAAEQ,IAAIgQ,kBAAoC,SAAhB7G,EAAEqO,WACzBhY,EAAAA,EAAEQ,IAAIiQ,oBACa,WAAhB9G,EAAEqO,WACLhY,EAAAA,EAAEQ,IAAI+P,mBAAqC,UAAhB5G,EAAEqO,aAEzCY,MAAM,EAAGne,KAAK0c,kBACdzN,KAAI,CAACC,EAA0BjI,IAC5BpI,EAAAA,cAAA,wBACoB+C,OAAOwI,WAAa,KAAO,UAAY,GAAE,oBACvC,MAAK,eACV,OAAM,kBACH,cAAa,kBACZ,uDAAuD7E,EAAAA,EAAEC,GAAGyY,6CAA6C1Y,EAAAA,EAAEC,GAAGyY,+FAA+F/O,EAAElC,KAAK7B,+CACrOlM,MAAOiQ,EAAEjQ,MACT6C,KAAK,SACL9C,GAAI,OAAOkQ,EAAElQ,KACbwD,IAAK0M,EAAElQ,GAAE,UACAkQ,EAAElQ,GAAE,aACD,UAAUkQ,EAAEjQ,iBACxBE,UAAW,GAAG+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,gBAAgBrD,EAAAA,EAAEQ,IAAI0N,cAAgBvE,EAAElQ,GAAK,UAAY,KAAMgB,KAAKyV,UAA6B,GAAjB,iBAC9KjU,QAASA,IAAMxB,KAAKwO,KAAKU,EAAElQ,IAAG,WACpB,0DAA0DkQ,EAAElC,KAAK7B,wBAC3E5J,SAAU,GAEV1C,EAAAA,cAAA,iBACaqQ,EAAElQ,GACXG,UAAU,MACVsC,MAAO,CACHuc,gBAAiB,IAAIzY,EAAAA,EAAEC,GAAGyY,aAC1B5G,UAAWnV,EAAAA,GAAYyG,YACnB1G,EAAAA,EAAW2G,iBACX,GAEE,EACA,KAGV/J,EAAAA,cAAA,iBACaqQ,EAAElQ,GACX0I,QAAQ,OACRgF,IAAK,0DAA0DwC,EAAElC,KAAK7B,uBACtE9D,MAAM,KACNoF,IAAKyC,EAAEjQ,SAGfJ,EAAAA,cAAA,OACIM,UAAU,QAAO,UACR+P,EAAElQ,IAEVkQ,EAAEjQ,WAMtBsG,EAAAA,EAAEkB,KAAK4W,UAAU5P,QACdyB,IACKA,EAAE0O,SAAW5d,KAAK4d,SAA2B,IAAjB5d,KAAK4d,UAChCrY,EAAAA,EAAEQ,IAAIgQ,kBAAoC,SAAhB7G,EAAEqO,WACzBhY,EAAAA,EAAEQ,IAAIiQ,oBAAsC,WAAhB9G,EAAEqO,WAC9BhY,EAAAA,EAAEQ,IAAI+P,mBAAqC,UAAhB5G,EAAEqO,aACxCpW,OAAS,GACPtI,EAAAA,cAAA,OACIM,UAAU,cACVsC,MAAO,CAACmV,QAAS,eACjBpV,QAASxB,KAAKiW,eAAc,aAChB,cAAc1Q,EAAAA,EAAEkB,KAAK4W,UAAU5P,QAAOyB,GAAKA,EAAE0O,SAAW5d,KAAK4d,SAAQzW,kBACjFrF,KAAK,WAEHI,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACnD/J,EAAAA,cAAAA,EAAAA,SAAA,KACKmB,KAAKyV,WACF5W,EAAAA,cAAA,OACIM,UAAU,mCACV2C,KAAK,SACLP,SAAU,EAAC,aACA,sBAAoB,SAExB,IACNgE,EAAAA,EAAEkB,KAAK4W,UAAU5P,QACdyB,IACKA,EAAE0O,SAAW5d,KAAK4d,SACE,IAAjB5d,KAAK4d,UACPrY,EAAAA,EAAEQ,IAAIgQ,kBACY,SAAhB7G,EAAEqO,WACDhY,EAAAA,EAAEQ,IAAIiQ,oBACa,WAAhB9G,EAAEqO,WACLhY,EAAAA,EAAEQ,IAAI+P,mBACa,UAAhB5G,EAAEqO,aAChBpW,OAAS,EAAG,IAAG,kBAIvBnH,KAAKyV,WACH5W,EAAAA,cAAA,OACIM,UAAU,mCACV2C,KAAK,SACLP,SAAU,EAAC,aACA,sBAAoB,yBAO9CW,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAAA,EAAAA,SAAA,KACKmB,KAAKyV,WACF5W,EAAAA,cAAA,QAAM0C,SAAU,EAAGO,KAAK,SACpBL,MAAO,CACHoW,MAAO,UACPuG,eAAgB,cACnB,WAEQ,IACR7Y,EAAAA,EAAEkB,KAAK4W,UAAU5P,QACdyB,IACKA,EAAE0O,SAAW5d,KAAK4d,SACE,IAAjB5d,KAAK4d,UACPrY,EAAAA,EAAEQ,IAAIgQ,kBACY,SAAhB7G,EAAEqO,WACDhY,EAAAA,EAAEQ,IAAIiQ,oBACa,WAAhB9G,EAAEqO,WACLhY,EAAAA,EAAEQ,IAAI+P,mBACa,UAAhB5G,EAAEqO,aAChBpW,OAAS,EAAG,IAAG,cAIvBnH,KAAKyV,WACH5W,EAAAA,cAAA,QAAM0C,SAAU,EAAGO,KAAK,SACpBL,MAAO,CACHoW,MAAO,UACPuG,eAAgB,cACnB,yBAUtB7Y,EAAAA,EAAEQ,IAAI8I,QAAUtJ,EAAAA,EAAEQ,IAAI0N,YAAc,IACjClO,EAAAA,EAAEQ,IAAI8I,QAAUtJ,EAAAA,EAAEkB,KAAKwW,WAAa,GAAK1X,EAAAA,EAAEQ,IAAI0N,YAAc,IAC/D5U,EAAAA,cAAA,OACIM,UAAU,wBACVsC,MAAO,CAACsT,aAAc,SAEtBlW,EAAAA,cAAA,MAAI4C,MAAO,CAAC4c,OAAQ,cACpBxf,EAAAA,cAAA,UACIkD,KAAK,SACLD,KAAK,SAAQ,aACF,+BACX3C,UAAU,oBACVqC,QAASxB,KAAK+d,WACdxc,SAAU,GAAC,sBAQ9BW,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAA,MAAI4C,MAAO,CAACoL,WAAY,MAIxC,GAxbYxN,EAAA,CAAXyD,EAAAA,IAAU,+BACCzD,EAAA,CAAXyD,EAAAA,IAAU,oCACCzD,EAAA,CAAXyD,EAAAA,IAAU,gCACCzD,EAAA,CAAXyD,EAAAA,IAAU,uCACCzD,EAAA,CAAXyD,EAAAA,IAAU,6BA0BXzD,EAAA,CADC0D,EAAAA,IAAM,uCAUP1D,EAAA,CADC0D,EAAAA,IAAM,mCASP1D,EAAA,CADC0D,EAAAA,IAAM,2BA8BP1D,EAAA,CADC0D,EAAAA,IAAM,2BA2BP1D,EAAA,CADC0D,EAAAA,IAAM,qCASP1D,EAAA,CADC0D,EAAAA,IAAM,qCAQP1D,EAAA,CADC0D,EAAAA,IAAM,iCAWG1D,EAAA,CAAT4U,EAAAA,IAAQ,gCAhIQwI,EAAQpd,EAAA,CAD5BC,EAAAA,IACoBmd,G,qtBCCN,IAAM6B,EAAN,cAAmBzf,EAAAA,UAU9B0B,WAAAA,CAAYC,GACRC,MAAMD,GAVE2B,OAAAC,eAAA,kB,iDAAqB,IACrBD,OAAAC,eAAA,mB,iDAAsB,IACtBD,OAAAC,eAAA,qB,iDAAwB,IACxBD,OAAAC,eAAA,qB,iDAAwB,IACxBD,OAAAC,eAAA,qB,iDAAwB,IACxBD,OAAAC,eAAA,qB,iDAAwB,IACxBD,OAAAC,eAAA,uB,gDAAyB,KACzBD,OAAAC,eAAA,0B,gDAA4B,KAaxCD,OAAAC,eAAA,sB,gDAAgBO,IAAWL,EAAA,gCAAC,OAAAtC,KAAKuC,aAAa,MAO9CJ,OAAAC,eAAA,uB,gDAAiBO,IAAWL,EAAA,iCACxB6C,EAAAA,EAAAA,KAAY,KACRnF,KAAKyV,WAAazV,KAAKyV,SAAS,GAExC,MAGAtT,OAAAC,eAAA,kB,gDAAYO,IAAWL,EAAA,iCACnB6C,EAAAA,EAAAA,KAAY,KACRnF,KAAKue,eAAiB3Z,KAAKC,MAAMD,KAAKiY,UAAUtX,EAAAA,EAAEkB,KAAKqW,SAAS0B,gBAChExe,KAAKye,kBAAoBze,KAAKue,eAC9Bve,KAAK0e,aACDnZ,EAAAA,EAAEkB,MACFlB,EAAAA,EAAEkB,KAAK6I,OACP/J,EAAAA,EAAEkB,KAAK6I,MAAM7B,QAAOyB,IAAMA,EAAEyP,QAAwC,IAA9BzP,EAAE0P,0BAA+BzX,OAAS,EACpFnH,KAAK6e,aACDtZ,EAAAA,EAAEkB,MACFlB,EAAAA,EAAEkB,KAAK6I,OACP/J,EAAAA,EAAEkB,KAAK6I,MAAM7B,QAAOyB,IAAMA,EAAEyP,QAAwC,IAA9BzP,EAAE0P,0BAA+BzX,OAAS,EACpFnH,KAAK8e,aACDvZ,EAAAA,EAAEkB,MACFlB,EAAAA,EAAEkB,KAAK6I,OACP/J,EAAAA,EAAEkB,KAAK6I,MAAM7B,QAAOyB,IAAMA,EAAEyP,QAAwC,IAA9BzP,EAAE0P,0BAA+BzX,OAAS,EACpFnH,KAAK+e,aACDxZ,EAAAA,EAAEkB,MACFlB,EAAAA,EAAEkB,KAAK6I,OACP/J,EAAAA,EAAEkB,KAAK6I,MAAM7B,QAAOyB,IAAMA,EAAEyP,QAAwC,IAA9BzP,EAAE0P,0BAA+BzX,OAAS,EACpFnH,KAAKgf,YAAa,CAAI,GAE9B,MAGA7c,OAAAC,eAAA,a,gDAAOO,IAAWL,EAAA,iCACd6C,EAAAA,EAAAA,KAAY,KAERI,EAAAA,EAAEQ,IAAI4N,QAAUpO,EAAAA,EAAEkB,KAAKwY,OAEvB1Z,EAAAA,EAAEQ,IAAI6N,eAAiB5T,KAAKue,eAC5BhZ,EAAAA,EAAEQ,IAAImZ,eAAiB,OACvB3Z,EAAAA,EAAEQ,IAAIoZ,aAAc,EACpB5Z,EAAAA,EAAEQ,IAAI8N,MAAQ,EACdtO,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEC,GAAG6I,UAAW,EAChBrO,KAAKye,kBAAoBze,KAAKue,eAC9BhZ,EAAAA,EAAEgJ,OAAO,GAEjB,MAGApM,OAAAC,eAAA,mB,gDAAaO,CACTic,EACAzd,IACAmB,EAAA,iCACA6C,EAAAA,EAAAA,KAAY,KACR,MAAM+J,EAAI3J,EAAAA,EAAEkB,KAAK6I,MAAM7B,QACnByB,IACKA,EAAEyP,QACHzP,EAAE0P,0BAA4BA,GAC9B1P,EAAElQ,KAAOqQ,SAASlO,EAAE/B,OAAOuD,MAAO,MACxC,GAEEuM,IACA3J,EAAAA,EAAEQ,IAAI6N,eAAiB1E,EAAElC,KACzBzH,EAAAA,EAAEQ,IAAIqZ,UAAYlQ,EAAElC,KACpBzH,EAAAA,EAAEQ,IAAIoZ,aAAc,EACpB5Z,EAAAA,EAAEQ,IAAI4N,QAAUzE,EAAElQ,GAClBuG,EAAAA,EAAEQ,IAAI8N,MAAQ,EACd7T,KAAKye,kBAAoBvP,EAAEjQ,MAC3ByF,QAAQ6B,IAAI2I,EAAElQ,KAElBuG,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEC,GAAG6I,UAAW,EAEhB,MAAMgR,EAAK1b,SAASG,eAAe,cAC7Bwb,EAAK3b,SAASG,eAAe,cAC7Byb,EAAK5b,SAASG,eAAe,cAC7B0b,EAAK7b,SAASG,eAAe,cAE/Bub,GAAMnQ,GAAmC,IAA9BA,EAAE0P,0BACbS,EAAGI,qBAAqB,UAAU,GAAGvK,UAAW,GAEhDoK,GAAMpQ,GAAmC,IAA9BA,EAAE0P,0BACbU,EAAGG,qBAAqB,UAAU,GAAGvK,UAAW,GAEhDqK,GAAMrQ,GAAmC,IAA9BA,EAAE0P,0BACbW,EAAGE,qBAAqB,UAAU,GAAGvK,UAAW,GAEhDsK,GAAMtQ,GAAmC,IAA9BA,EAAE0P,0BACbY,EAAGC,qBAAqB,UAAU,GAAGvK,UAAW,GAG/C3P,EAAAA,EAAEQ,IAAImZ,gBAA2C,KAAzB3Z,EAAAA,EAAEQ,IAAImZ,iBAC3B3Z,EAAAA,EAAEQ,IAAIgQ,iBACNxQ,EAAAA,EAAEQ,IAAImZ,eAAiB,OAChB3Z,EAAAA,EAAEQ,IAAIiQ,mBACbzQ,EAAAA,EAAEQ,IAAImZ,eAAiB,SAChB3Z,EAAAA,EAAEQ,IAAI+P,oBACbvQ,EAAAA,EAAEQ,IAAImZ,eAAiB,UAI/B3Z,EAAAA,EAAEgJ,QAEE3M,OAAOwI,WAAa,MACVzG,SAASG,eAAe,eAChC2Z,gBACN,GAER,MAGAtb,OAAAC,eAAA,uB,gDAAwBsd,GAAepd,EAAA,iCACnC6C,EAAAA,EAAAA,KAAY,KACR,MAAM+J,EAAI3J,EAAAA,EAAEkB,KAAK6I,MAAM7B,QAAOyB,GAAKA,EAAElQ,KAAO0gB,IAAK,GAC7CxQ,IACA3J,EAAAA,EAAEQ,IAAI6N,eAAiB1E,EAAElC,KACzBzH,EAAAA,EAAEQ,IAAIoZ,aAAc,EACpB5Z,EAAAA,EAAEQ,IAAI4N,QAAUzE,EAAElQ,GAClBuG,EAAAA,EAAEQ,IAAIqZ,UAAYlQ,EAAElC,KACpBzH,EAAAA,EAAEQ,IAAI8N,MAAQ,EACd7T,KAAKye,kBAAoBvP,EAAEjQ,OAE/BsG,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEgJ,QAEE3M,OAAOwI,WAAa,MACVzG,SAASG,eAAe,eAChC2Z,gBACN,GAER,MAcAtb,OAAAC,eAAA,wB,gDAAyBjB,GAA2CmB,EAAA,iCAChE6C,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEQ,IAAImZ,eAAiB/d,EAAE/B,OAAOuD,MAAM2W,WAAWqG,OAAOxU,cACxD5F,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEgJ,OAAO,GAEjB,MAGApM,OAAAC,eAAA,oB,gDAAqBjB,GAAUmB,EAAA,iCAC3B6C,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEQ,IAAI4N,SAAW,EACjB,MAAM0L,EAAK1b,SAASG,eAAe,cAC7Bwb,EAAK3b,SAASG,eAAe,cAC7Byb,EAAK5b,SAASG,eAAe,cAC7B0b,EAAK7b,SAASG,eAAe,cAE/Bub,IACAA,EAAGI,qBAAqB,UAAU,GAAGvK,UAAW,GAEhDoK,IACAA,EAAGG,qBAAqB,UAAU,GAAGvK,UAAW,GAEhDqK,IACAA,EAAGE,qBAAqB,UAAU,GAAGvK,UAAW,GAEhDsK,IACAA,EAAGC,qBAAqB,UAAU,GAAGvK,UAAW,GAEpD3P,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEgJ,OAAO,GAEjB,MAnMIvO,KAAKiW,eAAiBjW,KAAKiW,eAAe7N,KAAKpI,MAC/CA,KAAK4f,UAAY5f,KAAK4f,UAAUxX,KAAKpI,MACrCA,KAAK2d,KAAO3d,KAAK2d,KAAKvV,KAAKpI,MAC3BA,KAAK6f,WAAa7f,KAAK6f,WAAWzX,KAAKpI,MACvCA,KAAK8f,gBAAkB9f,KAAK8f,gBAAgB1X,KAAKpI,MACjDA,KAAK+f,YAAc/f,KAAK+f,YAAY3X,KAAKpI,OACzCqI,EAAAA,EAAAA,IAAerI,KACnB,CAIAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,cACpE,CAwIU,eAAI8N,GACV,OAAO/Q,EAAAA,EAAEQ,IAAI8I,QAAUjN,OAAOwI,WAAa,GAC/C,CAEU,mBAAI4V,GACV,IAAI/Y,EAAI1B,EAAAA,EAAEQ,IAAIgQ,iBAAmB,EAAI,EAGrC,OAFA9O,GAAK1B,EAAAA,EAAEQ,IAAI+P,kBAAoB,EAAI,EACnC7O,GAAK1B,EAAAA,EAAEQ,IAAIiQ,mBAAqB,EAAI,EAC7B/O,CACX,CAuCMgZ,kBAAAA,CAAmBjhB,G,yCACV,OAAPA,QACMgB,KAAK2d,aAEL3d,KAAKkgB,gBAAgBlhB,EAEnC,G,CAEAF,MAAAA,GACI,IAAKyG,EAAAA,EAAEC,GAAGsK,YAAcvK,EAAAA,EAAEkB,OAASlB,EAAAA,EAAEkB,KAAK6I,MACtC,OAECtP,KAAKgf,YACNhf,KAAK4f,YAGT,MAAMtJ,EACFtW,KAAKsW,cAAgBpU,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAE9E,OACI/J,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,YAAlE,aACXnH,MAAO,CAACmV,QAAS,IAEjB/X,EAAAA,cAAA,OAAKM,WAAWa,KAAKsW,YAAc,KAC/BzX,EAAAA,cAAA,OACI4C,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACxD,aACA,SACNyB,SAAU,aAGdxL,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,IAAM,sBAAnE,YAAkG,iBAC7F0N,EAAc,WAAa,GAAE,iBAC9B,cAAa,iBACbA,QAAsB5T,EAAS,gBAC/B4T,EAAc,kBAAe5T,GAE5C7D,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,IAAnF,qBAEX/J,EAAAA,cAAA,+BACC0G,EAAAA,EAAEkB,KAAKkB,OACJ9I,EAAAA,cAAA,YAAO0G,EAAAA,EAAEQ,IAAI4N,QAAU,EAAIpO,EAAAA,EAAEQ,IAAI6N,eAAiB,KAEpDrO,EAAAA,EAAEkB,KAAKkB,OACL9I,EAAAA,cAAA,YACK0G,EAAAA,EAAEQ,IAAI4N,UAAYpO,EAAAA,EAAEkB,KAAKwY,OACpB,WACA1Z,EAAAA,EAAEQ,IAAI4N,QAAU,EACd3T,KAAKye,kBACL,OAMtBvc,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACnD/J,EAAAA,cAAA,OACIM,UAAU,8BAA6B,iBACvBa,KAAKsW,YAAc,WAAa,GAAE,iBACnC,cAAa,iBACbtW,KAAKsW,kBAAsB5T,EAAS,gBACpC1C,KAAKsW,YAAc,kBAAe5T,GAEjD7D,EAAAA,cAAA,OAAKM,UAAU,kBACXN,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACIM,UAAU,+BACVsC,MAAO,CAACmL,aAAc,YAAU,iBAIpC/N,EAAAA,cAAA,OAAKM,UAAU,cACVoG,EAAAA,EAAEQ,IAAI4N,QAAU,EAAI,gBAAkB,KAG/C9U,EAAAA,cAAA,WACKmB,KAAKsW,aACFtW,KAAKyV,WACLlQ,EAAAA,EAAEQ,IAAI4N,QAAU,GACZ9U,EAAAA,cAAA,OACI6N,IAAKnH,EAAAA,EAAEQ,IAAIoa,IAAIC,SACfjhB,UAAU,OACVsN,IAAI,0BACJhL,MAAO,CACHuc,gBAAiB,IAAIzY,EAAAA,EAAEC,GAAGyY,aAC1B5W,MAAO,IACPgQ,UAAW,SAU/CxY,EAAAA,cAAA,OACIG,GAAG,aACHG,UAAWmX,EAAc,WAAa,GACtCxU,KAAK,UACLL,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACxD,aACA,WAGT5I,KAAKggB,gBAAkB,GACpBza,EAAAA,EAAEkB,KAAKwY,SAAW1Z,EAAAA,EAAEQ,IAAI4N,WACtBpO,EAAAA,EAAEkB,KAAK6I,OAAS/J,EAAAA,EAAEkB,KAAK6I,MAAMnI,OAAS,GAAK5B,EAAAA,EAAEQ,IAAI8I,SAC9B,QAArBtJ,EAAAA,EAAEkB,KAAKH,WACc,QAArBf,EAAAA,EAAEkB,KAAKH,WACc,QAArBf,EAAAA,EAAEkB,KAAKH,WACc,QAArBf,EAAAA,EAAEkB,KAAKH,WACHzH,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAKM,UAAU,kCACXN,EAAAA,cAAA,UACIG,GAAG,aACHG,UAAU,cACV+N,SAAUlN,KAAK8f,iBAEdva,EAAAA,EAAEQ,IAAI+P,mBACHjX,EAAAA,cAAA,UAAQ8D,MAAM,SAAO,SAExB4C,EAAAA,EAAEQ,IAAIgQ,kBACHlX,EAAAA,cAAA,UAAQ8D,MAAM,QAAM,QAEvB4C,EAAAA,EAAEQ,IAAIiQ,oBACHnX,EAAAA,cAAA,UAAQ8D,MAAM,UAAQ,WAG9B9D,EAAAA,cAAA,SAAOuO,QAAQ,cAAY,yBAK1CpN,KAAKggB,gBAAkB,GACpBza,EAAAA,EAAEkB,KAAKwY,SAAW1Z,EAAAA,EAAEQ,IAAI4N,SACxBpO,EAAAA,EAAEkB,KAAK6I,MAAMnI,OAAS,GACD,QAArB5B,EAAAA,EAAEkB,KAAKH,WACc,QAArBf,EAAAA,EAAEkB,KAAKH,WACc,QAArBf,EAAAA,EAAEkB,KAAKH,WACc,QAArBf,EAAAA,EAAEkB,KAAKH,WAAuBzH,EAAAA,cAAA,MAAI4C,MAAO,CAAC4c,OAAQ,cAEtDxf,EAAAA,cAAA,OACIG,GAAG,cACHyC,MAAO,CACHuW,IAAK9V,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACpD,GACA,IAGTrD,EAAAA,EAAEkB,KAAKwY,OAAS,GAAK1Z,EAAAA,EAAEkB,KAAK6I,MAAMnI,OAAS,GACxCtI,EAAAA,cAAA,OACIM,UAAW,GAAG+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,gBAAgBrD,EAAAA,EAAEkB,KAAKwY,SAAW1Z,EAAAA,EAAEQ,IAAI4N,QAAU,UAAY,KAC5JlS,MAAO,CACH4c,OAAQ,UACRgC,aAAc,WACd/Y,OAAQ,GACRgZ,WAAY,OACZzJ,WAAY,EACZ/H,cAAe,EACfzH,MAAO,QAEX7F,QAASxB,KAAK2d,KAAI,aACP,iCAEY,IAAtBnL,SAASD,SAAiB,WAAa,uBAIvB,IAAxBhN,EAAAA,EAAEkB,KAAK6I,MAAMnI,QACV5B,EAAAA,EAAEkB,KAAK6I,MACF7B,QAAOyB,IAAMA,EAAEyP,SAAWzP,EAAEoO,QAC5BrO,KAAI,CAACC,EAAGjI,IACLpI,EAAAA,cAAA,OACI2D,IAAKyE,EACL9H,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,IAAnF,cACX9G,KAAK,SACLL,MAAO,CACH4c,OAAQ,UACRgC,aAAc,WACd/Y,OAAQ,GACRgZ,WAAY,OACZzJ,WAAY,EACZ/H,cAAe,EACfzH,MAAO,QAEX7F,QAASL,GAAKnB,KAAKkgB,eAAehR,EAAElQ,IAAG,aAC3B,UAAUkQ,EAAEjQ,sBACxBsC,SAAU,GAET2N,EAAEjQ,MAAMshB,QAAQhb,EAAAA,EAAEoB,GAAG6Z,SAAU,IAAIb,WAIlDpa,EAAAA,EAAEkB,KAAKkB,OAASpC,EAAAA,EAAEkB,KAAK6I,MAAMnI,OAAS,GACpCtI,EAAAA,cAAA,OACIM,UAAU,iCACVsC,MAAO,CAAC4F,MAAO,MAEfxI,EAAAA,cAAA,UACIG,GAAG,mBACHG,UAAU,cACVsC,MAAO,CAACoV,WAAY,GAAI/H,cAAe,GAAIxH,OAAQ,OAAQD,MAAO,QAClE6F,SAAU/L,GAAKnB,KAAKigB,mBAAmB9e,EAAE/B,OAAOuD,QAEhD9D,EAAAA,cAAA,UACI2D,KAAM,EACNG,OAAQ,GAEe,IAAtB6P,SAASD,SAAiB,WAAa,uBAE3ChN,EAAAA,EAAEkB,KAAK6I,MACH7B,QAAOyB,IAAMA,EAAEyP,SAAWzP,EAAEoO,QAC5BrO,KAAI,CAACC,EAAGjI,IACLpI,EAAAA,cAAA,UACI2D,IAAKyE,EACLtE,MAAOuM,EAAElQ,IAERkQ,EAAEjQ,MAAMshB,QAAQhb,EAAAA,EAAEoB,GAAG6Z,SAAU,IAAIb,YAO3D3f,KAAK0e,cACF7f,EAAAA,cAAA,OAAKM,UAAU,kCACXN,EAAAA,cAAA,UACIG,GAAG,aACHG,UAAU,cACV+N,SAAU/L,GAAKnB,KAAK6f,WAAW,EAAG1e,IAElCtC,EAAAA,cAAA,UACI2D,KAAM,EACNG,OAAQ,GAAC,gBAIZ4C,EAAAA,EAAEkB,MACClB,EAAAA,EAAEkB,KAAK6I,OACP/J,EAAAA,EAAEkB,KAAK6I,MACF7B,QACGyB,IACKA,EAAEyP,QAC2B,IAA9BzP,EAAE0P,0BAET3P,KAAI,CAACC,EAAGjI,IACLpI,EAAAA,cAAA,UACI2D,IAAKyE,EACLtE,MAAOuM,EAAElQ,IAERkQ,EAAEjQ,UAIvBJ,EAAAA,cAAA,SAAOuO,QAAQ,cAAY,kBAIlCpN,KAAK6e,cACFhgB,EAAAA,cAAA,OAAKM,UAAU,kCACXN,EAAAA,cAAA,UACIG,GAAG,aACHG,UAAU,cACV+N,SAAU/L,GAAKnB,KAAK6f,WAAW,EAAG1e,IAElCtC,EAAAA,cAAA,UACI2D,KAAM,EACNG,OAAQ,GAAC,iBAIZ4C,EAAAA,EAAEkB,MACClB,EAAAA,EAAEkB,KAAK6I,OACP/J,EAAAA,EAAEkB,KAAK6I,MACF7B,QACGyB,IACKA,EAAEyP,QAC2B,IAA9BzP,EAAE0P,0BAET3P,KAAI,CAACC,EAAGjI,IACLpI,EAAAA,cAAA,UACI2D,IAAKyE,EACLtE,MAAOuM,EAAElQ,IAERkQ,EAAEjQ,UAIvBJ,EAAAA,cAAA,SAAOuO,QAAQ,cAAY,mBAIlCpN,KAAK8e,cACFjgB,EAAAA,cAAA,OAAKM,UAAU,kCACXN,EAAAA,cAAA,UACIG,GAAG,aACHG,UAAU,cACV+N,SAAU/L,GAAKnB,KAAK6f,WAAW,EAAG1e,IAElCtC,EAAAA,cAAA,UACI2D,KAAM,EACNG,OAAQ,GAAC,eAIZ4C,EAAAA,EAAEkB,MACClB,EAAAA,EAAEkB,KAAK6I,OACP/J,EAAAA,EAAEkB,KAAK6I,MACF7B,QACGyB,IACKA,EAAEyP,QAC2B,IAA9BzP,EAAE0P,0BAET3P,KAAI,CAACC,EAAGjI,IACLpI,EAAAA,cAAA,UACI2D,IAAKyE,EACLtE,MAAOuM,EAAElQ,IAERkQ,EAAEjQ,UAIvBJ,EAAAA,cAAA,SAAOuO,QAAQ,cAAY,iBAIlCpN,KAAK+e,cACFlgB,EAAAA,cAAA,OAAKM,UAAU,kCACXN,EAAAA,cAAA,UACIG,GAAG,aACHG,UAAU,cACV+N,SAAU/L,GAAKnB,KAAK6f,WAAW,EAAG1e,IAElCtC,EAAAA,cAAA,UACI2D,KAAM,EACNG,OAAQ,GAAC,eAIZ4C,EAAAA,EAAEkB,MACClB,EAAAA,EAAEkB,KAAK6I,OACP/J,EAAAA,EAAEkB,KAAK6I,MACF7B,QACGyB,IACKA,EAAEyP,QAC2B,IAA9BzP,EAAE0P,0BAET6B,UACAxR,KAAI,CAACC,EAAGjI,IACLpI,EAAAA,cAAA,UACI2D,IAAKyE,EACLtE,MAAOuM,EAAElQ,IAERkQ,EAAEjQ,UAIvBJ,EAAAA,cAAA,SAAOuO,QAAQ,cAAY,iBAIlC7H,EAAAA,EAAEQ,IAAIoZ,aAAe5Z,EAAAA,EAAEQ,IAAI4N,QAAU,GAClC9U,EAAAA,cAAA,WACIA,EAAAA,cAAA,MAAI4C,MAAO,CAAC4c,OAAQ,cACpBxf,EAAAA,cAAA,OAAK4C,MAAO,CAACuc,gBAAiB,IAAIzY,EAAAA,EAAEQ,IAAI2a,eACnCnb,EAAAA,EAAEQ,IAAIoZ,aACHtgB,EAAAA,cAAA,OACIM,UAAU,OACVuN,IAAK,8DAA8DnH,EAAAA,EAAEQ,IAAI6N,eAAe2M,QAAQ,KAAM,QAAQhb,EAAAA,EAAEQ,IAAImZ,qBAAqB/T,cACzIsB,IAAI,8BAOtBlH,EAAAA,EAAEQ,IAAIoZ,aAAe5Z,EAAAA,EAAEQ,IAAI4N,QAAU,GACnC9U,EAAAA,cAAA,WACIA,EAAAA,cAAA,MAAI4C,MAAO,CAAC4c,OAAQ,cACpBxf,EAAAA,cAAA,OAAK4C,MAAO,CAACuc,gBAAiB,IAAIzY,EAAAA,EAAEQ,IAAI2a,gBAClCnb,EAAAA,EAAEQ,IAAIoZ,aACJtgB,EAAAA,cAAA,OACIM,UAAU,OACVuN,IAAK,kEAAkEnH,EAAAA,EAAEQ,IAAI6N,eAAe2M,QAAQ,KAAM,oBAAoBpV,cAC9HsB,IAAI,8BAOrBlH,EAAAA,EAAEQ,IAAI8I,QAAUtJ,EAAAA,EAAEQ,IAAI4N,QAAU,IAC7BpO,EAAAA,EAAEQ,IAAI8I,QAAUtJ,EAAAA,EAAEQ,IAAI4N,QAAU,GAAKpO,EAAAA,EAAEkB,KAAKwY,OAAS,IACvDpgB,EAAAA,cAAA,OACIM,UAAU,wBACVsC,MAAO,CAACsT,aAAc,SAEtBlW,EAAAA,cAAA,MAAI4C,MAAO,CAAC4c,OAAQ,cACpBxf,EAAAA,cAAA,UACIkD,KAAK,SACLD,KAAK,SACLP,SAAU,EAAC,aACA,oCACXpC,UAAU,oBACVqC,QAASxB,KAAK+f,aAAW,4BAShD7d,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAA,MAAI4C,MAAO,CAACoL,WAAY,MAIxC,GAxnBYxN,EAAA,CAAXyD,EAAAA,IAAU,gCACCzD,EAAA,CAAXyD,EAAAA,IAAU,iCACCzD,EAAA,CAAXyD,EAAAA,IAAU,mCACCzD,EAAA,CAAXyD,EAAAA,IAAU,mCACCzD,EAAA,CAAXyD,EAAAA,IAAU,mCACCzD,EAAA,CAAXyD,EAAAA,IAAU,mCACCzD,EAAA,CAAXyD,EAAAA,IAAU,qCACCzD,EAAA,CAAXyD,EAAAA,IAAU,wCAoBXzD,EAAA,CADC0D,EAAAA,IAAM,qCAQP1D,EAAA,CADC0D,EAAAA,IAAM,gCA0BP1D,EAAA,CADC0D,EAAAA,IAAM,2BAkBP1D,EAAA,CADC0D,EAAAA,IAAM,iCA+DP1D,EAAA,CADC0D,EAAAA,IAAM,qCAuBG1D,EAAA,CAAT4U,EAAAA,IAAQ,gCAIC5U,EAAA,CAAT4U,EAAAA,IAAQ,oCAQT5U,EAAA,CADC0D,EAAAA,IAAM,sCAWP1D,EAAA,CADC0D,EAAAA,IAAM,kCAtLUub,EAAIjf,EAAA,CADxBC,EAAAA,IACoBgf,G,mvBCEN,IAAMqC,EAAN,cAAkB9hB,EAAAA,UAc7B0B,WAAAA,CAAYC,GACRC,MAAMD,GAdV2B,OAAAC,eAAA,iB,gDAAmB,IACnBD,OAAAC,eAAA,oB,gDAAsB,KACVD,OAAAC,eAAA,kB,iDAAqB,IACrBD,OAAAC,eAAA,yB,gDAA2BpC,KAAK4gB,WAEhCze,OAAAC,eAAA,uB,iDAA0B,IAC1BD,OAAAC,eAAA,8B,gDAAgCpC,KAAK4gB,WAErCze,OAAAC,eAAA,uB,iDAA0B,IAC1BD,OAAAC,eAAA,8B,gDAAgCpC,KAAK6gB,cAErC1e,OAAAC,eAAA,e,iDAAkB,IAa9BD,OAAAC,eAAA,sB,gDAAgBO,IAAWL,EAAA,gCACvBtC,KAAKuC,cACLvC,KAAK4gB,SAAW5gB,KAAK8gB,aACrB9gB,KAAK0c,iBAAmB1c,KAAK4gB,SAC7B5gB,KAAK+gB,sBAAwB/gB,KAAK4gB,SAAW,EAC7C5gB,KAAKghB,sBAAwBhhB,KAAK4gB,QACtC,MAsBAze,OAAAC,eAAA,uB,gDAAiBO,IAAWL,EAAA,iCACxB6C,EAAAA,EAAAA,KAAY,KACRnF,KAAKyV,WAAazV,KAAKyV,UACvBzV,KAAK0c,iBAAmB1c,KAAKyV,UAAYzV,KAAK8gB,aAAe,GAAI,GAEzE,MAGA3e,OAAAC,eAAA,4B,gDAAsBO,IAAWL,EAAA,iCAC7B6C,EAAAA,EAAAA,KAAY,KACRnF,KAAKihB,gBAAkBjhB,KAAKihB,eAC5BjhB,KAAK+gB,sBAAwB/gB,KAAKihB,eAAiBjhB,KAAK8gB,aAAe,EAAI,GAAI,GAEvF,MAGA3e,OAAAC,eAAA,4B,gDAAsBO,IAAWL,EAAA,iCAC7B6C,EAAAA,EAAAA,KAAY,KACRnF,KAAKkhB,gBAAkBlhB,KAAKkhB,eAC5BlhB,KAAKghB,sBAAwBhhB,KAAKkhB,eAAiBlhB,KAAK8gB,aAAe,GAAI,GAEnF,MAGA3e,OAAAC,eAAA,a,gDAAcpD,GAAcsD,EAAA,iCACxB6C,EAAAA,EAAAA,KAAY,KAER,GADAtE,EAAAA,KACK0E,EAAAA,EAAEQ,IAAI8I,OAsBJ,CACHtJ,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB,MAAM6S,EAAK5b,EAAAA,EAAEkB,KAAK2a,SAAS3T,QAAOC,GAAKA,EAAE1O,KAAOA,IAAI,GAC9CqiB,EAAK9b,EAAAA,EAAEkB,KAAK6a,SAAS7T,QAAOC,GAAKA,EAAE1O,KAAOA,IAAI,GAChDmiB,GACA5b,EAAAA,EAAEQ,IAAIwb,QAAUJ,EAAGniB,GACnBuG,EAAAA,EAAEQ,IAAI2a,WAAaS,EAAGK,UACtBjc,EAAAA,EAAEQ,IAAIgQ,iBAAmBoL,EAAGpL,iBAC5BxQ,EAAAA,EAAEQ,IAAIiQ,mBAAqBmL,EAAGnL,mBAC9BzQ,EAAAA,EAAEQ,IAAI+P,kBAAoBqL,EAAGrL,kBAIzBqL,IACA5b,EAAAA,EAAEC,GAAG0Y,MAAQiD,EAAGnU,KAAK7B,cAAc/K,SAAS,WAEzCihB,IACP9b,EAAAA,EAAEQ,IAAIwN,QAAU8N,EAAGriB,GACnBuG,EAAAA,EAAEQ,IAAI0b,WAAaJ,EAAGG,YAGd,IAARxiB,IACAuG,EAAAA,EAAEQ,IAAIwN,SAAW,EACjBhO,EAAAA,EAAEQ,IAAI0b,WAAa,GACnBlc,EAAAA,EAAEC,GAAGkc,UAAY,kBACjBnc,EAAAA,EAAEC,GAAGmc,WAAa,GAClBpc,EAAAA,EAAEC,GAAGgO,WAAa,mBAGtBjO,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEgJ,OACN,KArDmB,CACfhJ,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEQ,IAAI6b,YAAc5iB,EACpB,MAAMkQ,EAAI3J,EAAAA,EAAEkB,KAAKob,KAAKpU,QAAOC,GAAKA,EAAE1O,KAAOA,IAAI,GAC/CuG,EAAAA,EAAEQ,IAAIwb,QAAUrS,EAAEqS,QAClBhc,EAAAA,EAAEQ,IAAIwN,QAAUrE,EAAEqE,QAClBhO,EAAAA,EAAEQ,IAAI2a,WAAaxR,EAAE4S,WACrBvc,EAAAA,EAAEQ,IAAI0b,WAAavS,EAAE6S,WACrBxc,EAAAA,EAAEQ,IAAIgQ,iBAAmB7G,EAAE6G,iBAC3BxQ,EAAAA,EAAEQ,IAAIiQ,mBAAqB9G,EAAE8G,mBAC7BzQ,EAAAA,EAAEQ,IAAI+P,kBAAoB5G,EAAE4G,kBAC5BvQ,EAAAA,EAAEC,GAAG6I,UAAW,EAEZa,IACA3J,EAAAA,EAAEC,GAAG0Y,MAAQhP,EAAE8S,UAAU7W,cAAc/K,SAAS,UAGjB,IAA/BmF,EAAAA,EAAEkB,KAAKwM,qBAA6B/D,EAAE+S,YACtC1c,EAAAA,EAAEC,GAAG0c,oBAAsBhT,EAAE+S,UAAU9W,eAG3C5F,EAAAA,EAAEgJ,OACN,CAiCI3M,OAAOwI,WAAa,MACVzG,SAASG,eAAe,eAChC2Z,gBACN,GAER,MAGAtb,OAAAC,eAAA,kB,gDAAmBpD,GAAcsD,EAAA,iCAC7B6C,EAAAA,EAAAA,KAAY,KACR,MAAMkc,EAAK9b,EAAAA,EAAEkB,KAAK6a,SAAS7T,QAAOC,GAAKA,EAAE1O,KAAOA,IAAI,GAChDqiB,IACA9b,EAAAA,EAAEQ,IAAIoc,QAAUnjB,EAChBuG,EAAAA,EAAEQ,IAAIqc,WAAaf,EAAGG,UACtBjc,EAAAA,EAAEC,GAAG6c,WAAahB,EAAGpiB,MACrBsG,EAAAA,EAAEC,GAAG6I,UAAW,EAChB9I,EAAAA,EAAEgJ,QAEE3M,OAAOwI,WAAa,OACVzG,SAASG,eAAe,eAChC2Z,gBAEV,GAER,MAGAtb,OAAAC,eAAA,uB,gDAAwBjB,GAA2CmB,EAAA,iCAC/D6C,EAAAA,EAAAA,KAAY,KACRnF,KAAK4d,OAASvO,SAASlO,EAAE/B,OAAOuD,MAAM,GAE9C,MAtJI3C,KAAKiW,eAAiBjW,KAAKiW,eAAe7N,KAAKpI,MAC/CA,KAAKsiB,oBAAsBtiB,KAAKsiB,oBAAoBla,KAAKpI,MACzDA,KAAKuiB,oBAAsBviB,KAAKuiB,oBAAoBna,KAAKpI,MACzDA,KAAKwO,KAAOxO,KAAKwO,KAAKpG,KAAKpI,MAC3BA,KAAK8d,eAAiB9d,KAAK8d,eAAe1V,KAAKpI,MAC/CA,KAAKwiB,UAAYxiB,KAAKwiB,UAAUpa,KAAKpI,OACrCqI,EAAAA,EAAAA,IAAerI,KACnB,CAUAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,eACvC,GAAG2V,MAAMsE,KAC9B9e,SAAS+e,iBAAiB,+BAEOzT,KAAI,SAAU0T,GAC/C,OAAO,IAAIC,UAAUC,QAAQF,EACjC,GACJ,CAGA7B,UAAAA,GACI,OAAI5e,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAC9C,EAEA,CAEf,CAsHU,eAAI0N,GACV,OAAO/Q,EAAAA,EAAEQ,IAAI8I,QAAUjN,OAAOwI,WAAa,GAC/C,CAEAtL,MAAAA,GACI,IAAKyG,EAAAA,EAAEqJ,QAAUrJ,EAAAA,EAAEC,GAAGsK,UAClB,OAGJ,MAAMwG,EACFtW,KAAKsW,cAAgBpU,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAE9E,OAAKrD,EAAAA,EAAEQ,IAAI8I,QAAUtJ,EAAAA,EAAEkB,KAAKob,KACpBtc,EAAAA,EAAEkB,KAAKob,KAAK1a,OAAS,EAEjBtI,EAAAA,cAAA,OACIM,UAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,WAC7EnH,MAAO,CAACmV,QAAS,IAEjB/X,EAAAA,cAAA,WACIA,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACI4C,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YACjB1G,EAAAA,EAAW2G,iBACX,GAEE,aACA,SACNyB,SAAU,aAGdxL,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,IAAM,sBAAnE,YAAkG,iBAC7F0N,EAAc,WAAa,GAAE,iBAC9B,cAAa,iBACbA,QAAsB5T,EAAS,gBAC/B4T,EAAc,kBAAe5T,GAE5C7D,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,IAAnF,qBAEX/J,EAAAA,cAAA,yBACAA,EAAAA,cAAA,YAAO0G,EAAAA,EAAEC,GAAGsd,iBACZjkB,EAAAA,cAACkkB,EAAAA,EAAQ,CACL/jB,GAAG,gBACHyJ,MAAM,2BAKhBvG,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACnD/J,EAAAA,cAAA,OACIM,UAAU,8BAA6B,iBACvBa,KAAKsW,YAAc,WAAa,GAAE,iBACnC,cAAa,iBACbtW,KAAKsW,kBAAsB5T,EAAS,gBAE/C1C,KAAKsW,YAAc,kBAAe5T,GAGtC7D,EAAAA,cAAA,OAAKM,UAAU,kBACXN,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACIM,UAAU,+BACVsC,MAAO,CAACmL,aAAc,YAAU,UAGhC/N,EAAAA,cAACkkB,EAAAA,EAAQ,CACL/jB,GAAG,gBACHyJ,MAAM,yBAGd5J,EAAAA,cAAA,OAAKM,UAAU,cACVoG,EAAAA,EAAEC,GAAGsd,kBAGdjkB,EAAAA,cAAA,WACKmB,KAAKsW,aACFtW,KAAKyV,WACLlQ,EAAAA,EAAEkB,KAAKob,KACFpU,QAAOyB,GAAKA,EAAElQ,KAAOuG,EAAAA,EAAEQ,IAAI6b,cAC3B3S,KACG,CACIC,EACAjI,IAEApI,EAAAA,cAAA,OACI2D,IAAKyE,EACLyF,IAAK,2DAA2DwC,EAAEqS,UAAUrS,EAAEqE,SAAWrE,EAAEqE,QAAU,EAAI,IAAIrE,EAAEqE,QAAQ+F,aAAe,SACtI7M,IAAKyC,EAAEjQ,cAS/CJ,EAAAA,cAAA,OACIG,GAAG,aACHG,UAAWmX,EAAc,WAAa,GACtC7U,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YACjB1G,EAAAA,EAAW2G,iBACX,GAEE,aACA,WAGV/J,EAAAA,cAAA,OACIM,UAAU,WACV2C,KAAK,UAAS,aACH,iBACXL,MAAO,CACHuW,IAAK9V,EAAAA,GAAYyG,YACb1G,EAAAA,EAAW2G,iBACX,GAEE,GACA,KAITrD,EAAAA,EAAEkB,KAAKob,KACH1D,MAAM,EAAG,KACTA,MAAM,EAAGne,KAAK0c,kBACdzN,KAAI,CAACC,EAAqBjI,IACvBpI,EAAAA,cAAA,wBAEQ+C,OAAOwI,WAAa,KAAO,UAAY,GAAE,oBAE3B,MAAK,eACV,OAAM,kBACH,cAAa,kBACZ,0HAA0H8E,EAAEqS,UAAUrS,EAAEqE,SAAWrE,EAAEqE,QAAU,EAAI,IAAIrE,EAAEqE,QAAQ+F,aAAe,0BACjNra,MAAOiQ,EAAEjQ,MACTD,GAAI,OAAOkQ,EAAElQ,KACb8C,KAAK,SACLU,IAAK0M,EAAElQ,GAAE,aACG,UAAUkQ,EAAEjQ,YACxBE,UAAW,GAAG+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,KAAK1G,EAAAA,GAAY8gB,eAAe/gB,EAAAA,EAAWghB,2BAA2B1d,EAAAA,EAAEQ,IAAI6b,cAAgB1S,EAAElQ,GAAK,UAAY,KAAMgB,KAAKyV,UAA6B,GAAjB,iBACpOjU,QAASA,IAAMxB,KAAKwO,KAAKU,EAAElQ,IAC3BuC,SAAU,GAEV1C,EAAAA,cAAA,OACIM,UAAW,GAAG+C,EAAAA,GAAY8gB,eAAe/gB,EAAAA,EAAWghB,8BAEpDpkB,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,2DAA2D0C,EAAEqS,UAAUrS,EAAEqE,SAAWrE,EAAEqE,QAAU,EAAI,IAAIrE,EAAEqE,QAAQ+F,aAAe,YAE7Iza,EAAAA,cAAA,OACI6I,QAAQ,OACRvI,UAAW+C,EAAAA,GAAY8gB,eACnB/gB,EAAAA,EAAWghB,cAEf5b,MAAM,KACNC,OAAO,KACPoF,IAAK,2DAA2DwC,EAAEqS,UAAUrS,EAAEqE,SAAWrE,EAAEqE,QAAU,EAAI,IAAIrE,EAAEqE,QAAQ+F,aAAe,SACtI7M,IAAKyC,EAAEjQ,WAIjBiD,EAAAA,GAAYyG,YACV1G,EAAAA,EAAWghB,aACX,IACCpkB,EAAAA,cAAA,OAAKM,UAAU,SAAS+P,EAAEjQ,OAChB,KAAdiQ,EAAEqE,SAAgC,KAAdrE,EAAEqE,SACnB1U,EAAAA,cAAA,OACIM,UAAW,GAAG+C,EAAAA,GAAY8gB,eAAe/gB,EAAAA,EAAWghB,uBACpDxhB,MAAO,CACHuc,gBAAiB,IAAI9O,EAAE6S,gBAIlCxc,EAAAA,EAAE6J,kBACC7J,EAAAA,EAAEyE,UACFzE,EAAAA,EAAEkB,KAAKyc,aAAehU,EAAElQ,IACpBH,EAAAA,cAAA,OAAKM,UAAU,sBACXN,EAAAA,cAAA,KAAGM,UAAU,8BAMxCoG,EAAAA,EAAEkB,KAAKob,KAAK1a,OAASnH,KAAK4gB,UACvB/hB,EAAAA,cAAA,OACIM,UAAU,cACVsC,MAAO,CAACmV,QAAS,cAAciB,MAAM,WACrCrW,QAASxB,KAAKiW,eAAc,aAChB,cAAc1Q,EAAAA,EAAEkB,KAAKob,KAAK1a,cACtCrF,KAAK,SACLP,SAAU,IAERW,EAAAA,GAAYyG,YACV1G,EAAAA,EAAW2G,iBACX,IAEA/J,EAAAA,cAAAA,EAAAA,SAAA,KACKmB,KAAKyV,WACF5W,EAAAA,cAAA,OACIM,UAAU,mCACV2C,KAAK,SACLP,SAAU,EACVE,MAAO,CAACoW,MAAM,YAAU,cAEZtS,EAAAA,EAAEkB,KAAKob,KAAK1a,OAAM,UAGpCnH,KAAKyV,WACH5W,EAAAA,cAAA,OACIM,UAAU,mCACV2C,KAAK,SACLP,SAAU,EACVE,MAAO,CAACoW,MAAM,YAAU,qBAQvC3V,EAAAA,GAAYyG,YACT1G,EAAAA,EAAW2G,iBACX,IAEA/J,EAAAA,cAAAA,EAAAA,SAAA,KACKmB,KAAKyV,WACF5W,EAAAA,cAAA,QACIiD,KAAK,SACLP,SAAU,EACVE,MAAO,CACHoW,MAAO,UACPuG,eAAgB,cACnB,YAES7Y,EAAAA,EAAEkB,KAAKob,KAAK1a,OAAM,UAGlCnH,KAAKyV,WACH5W,EAAAA,cAAA,QACIiD,KAAK,SACLP,SAAU,EACVE,MAAO,CACHoW,MAAO,UACPuG,eAAgB,cACnB,uBAYpClc,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAA,MAAI4C,MAAO,CAACoL,WAAY,MAG5BhO,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,gBACHC,MAAM,uBAENJ,EAAAA,cAAA,kkBAeZ,EAIAA,EAAAA,cAAA,WACK0G,EAAAA,EAAEkB,KAAK2a,UACJviB,EAAAA,cAAA,OACIM,UAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,WAC7EnH,MAAO,CAACmV,QAAS,IAEjB/X,EAAAA,cAAA,WACIA,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACI4C,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YACjB1G,EAAAA,EAAW2G,iBACX,GAEE,aACA,SACNyB,SAAU,aAGdxL,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,IAAM,sBAAnE,YAAkG,iBAC7F0N,EAAc,WAAa,GAAE,iBAC9B,cAAa,iBACbA,QAAsB5T,EAAS,gBAC/B4T,EAAc,kBAAe5T,GAE5C7D,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,IAAnF,qBAEX/J,EAAAA,cAAA,yBACAA,EAAAA,cAAA,YAAO0G,EAAAA,EAAEC,GAAG8N,eAIlBpR,EAAAA,GAAYyG,YACV1G,EAAAA,EAAW2G,iBACX,IAEA/J,EAAAA,cAAA,OACIM,UAAU,8BAA6B,iBACvBa,KAAKsW,YAAc,WAAa,GAAE,iBACnC,cAAa,iBACbtW,KAAKsW,kBAAsB5T,EAAS,gBAE/C1C,KAAKsW,YAAc,kBAAe5T,GAGtC7D,EAAAA,cAAA,OAAKM,UAAU,kBACXN,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACIM,UAAU,+BACVsC,MAAO,CAACmL,aAAc,YAAU,WAIpC/N,EAAAA,cAAA,OAAKM,UAAU,cACVoG,EAAAA,EAAEC,GAAG8N,aAGdzU,EAAAA,cAAA,WACKmB,KAAKsW,aACFtW,KAAKyV,WACLlQ,EAAAA,EAAEkB,KAAK2a,SACF3T,QAAOyB,GAAKA,EAAElQ,KAAOuG,EAAAA,EAAEQ,IAAIwb,UAC3BtS,KACG,CACIC,EACAjI,IAEApI,EAAAA,cAAA,OACI2D,IAAKyE,EACLyF,IAAK,2DAA2DwC,EAAElQ,SAClEyN,IAAKyC,EAAEjQ,cAU/CJ,EAAAA,cAAA,OACIG,GAAG,aACHG,UAAWmX,EAAc,WAAa,GACtC7U,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YACjB1G,EAAAA,EAAW2G,iBACX,GAEE,aACA,WAGV/J,EAAAA,cAAA,WACIA,EAAAA,cAAA,UACIM,UAAU,cACV+N,SAAUlN,KAAK8d,eACfrc,MAAO,CACHsT,aAAc7S,EAAAA,GAAYyG,YACtB1G,EAAAA,EAAW2G,iBACX,GAEE,GACA,KAGTrD,EAAAA,EAAEkB,KAAK2a,SAASja,OAAS,GACtBtI,EAAAA,cAAA,UAAQ8D,OAAQ,GAAC,OAEpB4C,EAAAA,EAAEkB,KAAK2a,SAAS3T,QAAOyB,GAAkB,KAAbA,EAAE0O,SAC1BzW,OAAS,GACVtI,EAAAA,cAAA,UAAQ8D,MAAO,IAAE,YAEpB4C,EAAAA,EAAEkB,KAAK2a,SAAS3T,QAAOyB,GAAkB,KAAbA,EAAE0O,SAC1BzW,OAAS,GACVtI,EAAAA,cAAA,UAAQ8D,MAAO,IAAE,SAEpB4C,EAAAA,EAAEkB,KAAK2a,SAAS3T,QAAOyB,GAAkB,KAAbA,EAAE0O,SAC1BzW,OAAS,GACVtI,EAAAA,cAAA,UAAQ8D,MAAO,IAAE,WAI7B9D,EAAAA,cAAA,OACIM,UAAU,eACV2C,KAAK,UAAS,aACH,iBACXL,MAAO,CACHuW,IAAK9V,EAAAA,GAAYyG,YACb1G,EAAAA,EAAW2G,iBACX,GAEE,GACA,KAGTrD,EAAAA,EAAEkB,KAAK2a,SACHjD,MAAM,EAAG,KACT1Q,QACGyB,GACIA,EAAE0O,SAAW5d,KAAK4d,SACD,IAAjB5d,KAAK4d,SAEZO,MAAM,EAAGne,KAAK0c,kBACdzN,KAAI,CAACC,EAAyBjI,IAC3BpI,EAAAA,cAAA,wBAEQ+C,OAAOwI,WAAa,KACd,UACA,GAAE,oBAEM,MAAK,eACV,OAAM,kBACH,cAAa,kBACZ,iGAAiG8E,EAAElQ,0BACpHC,MAAOiQ,EAAEjQ,MACTD,GAAI,QAAQkQ,EAAElQ,KACd8C,KAAK,SACLU,IAAK0M,EAAElQ,GAAE,aACG,UAAUkQ,EAAEjQ,YAAW,WACzB,4DAA4DiQ,EAAElQ,SACxEG,UAAW,GAAG+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,gBAAgBrD,EAAAA,EAAEQ,IAAIwb,UAAYrS,EAAElQ,GAAK,UAAY,KAAMgB,KAAKyV,UAA6B,GAAjB,iBAAqB,UACtLvG,EAAElQ,GACXwC,QAASA,IAAMxB,KAAKwO,KAAKU,EAAElQ,KAE3BH,EAAAA,cAAA,OACI6N,IAAK,2DAA2DwC,EAAElQ,SAAQ,UACjEkQ,EAAElQ,GACXyN,IAAKyC,EAAEjQ,MACPyI,QAAQ,OACRvI,UAAU,uBAAsB,WACtB,4DAA4D+P,EAAElQ,WAE5EH,EAAAA,cAAA,OACIM,UAAU,QAAO,UACR+P,EAAElQ,GAAE,WACH,4DAA4DkQ,EAAElQ,UAEvEkQ,EAAEjQ,OAENsG,EAAAA,EAAEQ,IAAIwb,UAAYrS,EAAElQ,IACjBH,EAAAA,cAAA,OACIM,UAAU,gBACVsC,MAAO,CACHuc,gBACIzY,EAAAA,EAAEQ,IAAIwN,QAAU,EACV,IAAIhO,EAAAA,EAAEQ,IAAI0b,aACV,cAOrClc,EAAAA,EAAEkB,KAAK2a,SAASja,OAASnH,KAAK4gB,UAC3B/hB,EAAAA,cAAA,OACIM,UAAU,cACVsC,MAAO,CAACmV,QAAS,eACjBpV,QAASxB,KAAKiW,eAAc,aAChB,cAAc1Q,EAAAA,EAAEkB,KAAK2a,SAAS3T,QAAOyB,GAAKA,EAAE0O,SAAW5d,KAAK4d,SAA2B,IAAjB5d,KAAK4d,SAAezW,cACtGrF,KAAK,WAEHI,EAAAA,GAAYyG,YACV1G,EAAAA,EAAW2G,iBACX,IAEA/J,EAAAA,cAAAA,EAAAA,SAAA,KACKmB,KAAKyV,WACF5W,EAAAA,cAAA,OACIM,UAAU,mCACV2C,KAAK,SAAQ,aACD,cAAcyD,EAAAA,EAAEkB,KAAK2a,SAAS3T,QAAOyB,GAAKA,EAAE0O,SAAW5d,KAAK4d,SAA2B,IAAjB5d,KAAK4d,SAAezW,eAAa,aAExG,IAEP5B,EAAAA,EAAEkB,KAAK2a,SAAS3T,QACZyB,GACIA,EAAE0O,SACE5d,KAAK4d,SACQ,IAAjB5d,KAAK4d,SACXzW,OACJ,IAAG,SAIXnH,KAAKyV,WACH5W,EAAAA,cAAA,OACIM,UAAU,mCACV2C,KAAK,SAAQ,aACF,kBAAgB,qBAQ1CI,EAAAA,GAAYyG,YACT1G,EAAAA,EAAW2G,iBACX,IAEA/J,EAAAA,cAAAA,EAAAA,SAAA,KACKmB,KAAKyV,WACF5W,EAAAA,cAAA,QACI4C,MAAO,CACHoW,MAAO,UACPuG,eAAgB,cACnB,WAEQ,IAEL7Y,EAAAA,EAAEkB,KAAK2a,SAAS3T,QACZyB,GACIA,EAAE0O,SACE5d,KAAK4d,SACQ,IAAjB5d,KAAK4d,SACXzW,OACJ,IAAG,SAIXnH,KAAKyV,WACH5W,EAAAA,cAAA,QACI4C,MAAO,CACHoW,MAAO,UACPuG,eAAgB,cACnB,uBAYpClc,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAA,MAAI4C,MAAO,CAACoL,WAAY,OAInCtH,EAAAA,EAAEkB,KAAK6a,UACJziB,EAAAA,cAAA,OACIM,UAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,WAC7EnH,MAAO,CAAC4V,UAAW,SAAUT,QAAS,IAEtC/X,EAAAA,cAAA,WACIA,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACI4C,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YACjB1G,EAAAA,EAAW2G,iBACX,GAEE,aACA,SACNyB,SAAU,aAGdxL,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,IAAM,sBAAnE,YAAkG,iBAC7F0N,EAAc,WAAa,GAAE,iBAC9B,cAAa,iBACbA,QAAsB5T,EAAS,gBAC/B4T,EAAc,kBAAe5T,GAE5C7D,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,IAAnF,qBAEX/J,EAAAA,cAAA,8BACAA,EAAAA,cAAA,YAAO0G,EAAAA,EAAEC,GAAGgO,eAIlBtR,EAAAA,GAAYyG,YACV1G,EAAAA,EAAW2G,iBACX,IAEA/J,EAAAA,cAAA,OACIM,UAAU,8BAA6B,iBACvBa,KAAKsW,YAAc,WAAa,GAAE,iBACnC,cAAa,iBACbtW,KAAKsW,kBAAsB5T,EAAS,gBAE/C1C,KAAKsW,YAAc,kBAAe5T,GAGtC7D,EAAAA,cAAA,OAAKM,UAAU,kBACXN,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACIM,UAAU,+BACVsC,MAAO,CAACmL,aAAc,YAAU,gBAIpC/N,EAAAA,cAAA,OAAKM,UAAU,cACVoG,EAAAA,EAAEC,GAAGgO,aAGd3U,EAAAA,cAAA,WACKmB,KAAKsW,aACFtW,KAAKyV,WACLlQ,EAAAA,EAAEkB,KAAK6a,SACF7T,QAAOyB,GAAKA,EAAElQ,KAAOuG,EAAAA,EAAEQ,IAAIwN,UAC3BtE,KACG,CACIC,EACAjI,IAEApI,EAAAA,cAAA,OACI2D,IAAKyE,EACLyF,IAAK,2DAA2DwC,EAAElC,oBAClEP,IAAKyC,EAAEjQ,cAU/CJ,EAAAA,cAAA,OACIG,GAAG,aACHG,UAAWmX,EAAc,WAAa,GACtC7U,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YACjB1G,EAAAA,EAAW2G,iBACX,GAEE,aACA,WAGV/J,EAAAA,cAAA,OACIM,UAAU,eACV2C,KAAK,UAAS,aACH,iBACXL,MAAO,CACHuW,IAAK9V,EAAAA,GAAYyG,YACb1G,EAAAA,EAAW2G,iBACX,GAEE,GACA,KAGV/J,EAAAA,cAAA,OACII,MAAO,kBACPD,GAAI,UACJ8C,KAAK,SAAQ,WACH,EACVU,KAAM,EAAC,aACK,sBACZrD,UAAW,GAAG+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,iBAAmC,IAAnBrD,EAAAA,EAAEQ,IAAIwN,QAAiB,UAAY,KAAMvT,KAAKihB,eAAkC,GAAjB,iBAC7Kzf,QAASA,IAAMxB,KAAKwO,MAAM,IAE1B3P,EAAAA,cAAA,kBACc,EACV6N,IAAK,2EACLD,IAAK,kBACLtN,UAAU,uBACVuI,QAAQ,OAAM,WACJ,6EAEd7I,EAAAA,cAAA,OACIM,UAAU,QAAO,WACP,EAAC,WACD,4EAA0E,oBAIpE,IAAnBoG,EAAAA,EAAEQ,IAAIwN,SACH1U,EAAAA,cAAA,OACIM,UAAU,gBACVsC,MAAO,CACHuc,gBACIzY,EAAAA,EAAEQ,IAAIwb,QAAU,EACV,IAAIhc,EAAAA,EAAEQ,IAAI2a,aACV,WAMzBnb,EAAAA,EAAEkB,KAAK6a,SACHnD,MAAM,EAAG,KACTA,MAAM,EAAGne,KAAK+gB,uBACd9R,KAAI,CAACC,EAAyBjI,IAC3BpI,EAAAA,cAAA,wBAEQ+C,OAAOwI,WAAa,KACd,UACA,GAAE,oBAEM,MAAK,eACV,OAAM,kBACH,cAAa,kBACZ,gGAAgG8E,EAAElC,sCACnH/N,MAAOiQ,EAAEjQ,MACTD,GAAI,QAAQkQ,EAAElQ,KACd8C,KAAK,SAAQ,UACJoN,EAAElQ,GACXwD,IAAK0M,EAAElQ,GAAE,aACG,UAAUkQ,EAAEjQ,YACxBE,UAAW,GAAG+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,gBAAgBrD,EAAAA,EAAEQ,IAAIwN,UAAYrE,EAAElQ,GAAK,UAAY,KAAMgB,KAAKihB,eAAkC,GAAjB,iBAC/Kzf,QAASA,IAAMxB,KAAKwO,KAAKU,EAAElQ,KAE3BH,EAAAA,cAAA,iBACaqQ,EAAElQ,GACX0N,IAAK,2DAA2DwC,EAAElC,oBAClEtF,QAAQ,OACR+E,IAAKyC,EAAEjQ,MACPE,UAAU,uBAAsB,WACtB,2DAA2D+P,EAAElC,uBAE3EnO,EAAAA,cAAA,OACIM,UAAU,QAAO,UACR+P,EAAElQ,GAAE,WACH,2DAA2DkQ,EAAElC,sBAEtEkC,EAAEjQ,OAENsG,EAAAA,EAAEQ,IAAIwN,UAAYrE,EAAElQ,IACjBH,EAAAA,cAAA,OACIM,UAAU,gBACVsC,MAAO,CACHuc,gBACIzY,EAAAA,EAAEQ,IAAIwb,QAAU,EACV,IAAIhc,EAAAA,EAAEQ,IAAI2a,aACV,cAOrCnb,EAAAA,EAAEkB,KAAK6a,SAASna,OAASnH,KAAK4gB,UAC3B/hB,EAAAA,cAAA,OACIM,UAAU,cACVsC,MAAO,CAACmV,QAAS,eACjBpV,QAASxB,KAAKsiB,oBAAmB,aACrB,cAAc/c,EAAAA,EAAEkB,KAAK6a,SAASna,uBAC1CrF,KAAK,WAEHI,EAAAA,GAAYyG,YACV1G,EAAAA,EAAW2G,iBACX,IAEA/J,EAAAA,cAAAA,EAAAA,SAAA,KACKmB,KAAKihB,gBACFpiB,EAAAA,cAAA,OACIM,UAAU,mCACV2C,KAAK,SAAQ,aACD,cAAcyD,EAAAA,EAAEkB,KAAK6a,SAASna,wBAAsB,cAEpD5B,EAAAA,EAAEkB,KAAK6a,SAASna,OAAQ,IAAG,kBAI7CnH,KAAKihB,gBACHpiB,EAAAA,cAAA,OACIM,UAAU,mCACV2C,KAAK,SAAQ,aACF,2BAAyB,8BAQnDI,EAAAA,GAAYyG,YACT1G,EAAAA,EAAW2G,iBACX,IAEA/J,EAAAA,cAAAA,EAAAA,SAAA,KACKmB,KAAKihB,gBACFpiB,EAAAA,cAAA,QACI4C,MAAO,CACHoW,MAAO,UACPuG,eAAgB,cACnB,YAES7Y,EAAAA,EAAEkB,KAAK6a,SAASna,OAAQ,IAAG,kBAI3CnH,KAAKihB,gBACHpiB,EAAAA,cAAA,QACI4C,MAAO,CACHoW,MAAO,UACPuG,eAAgB,cACnB,gCAYpClc,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAA,MAAI4C,MAAO,CAACoL,WAAY,OAIP,IAA5BtH,EAAAA,EAAEkB,KAAKwE,kBACJpM,EAAAA,cAAA,OACIM,UAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,WAC7EnH,MAAO,CAAC4V,UAAW,SAAUT,QAAS,IAEtC/X,EAAAA,cAAA,WACIA,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACI4C,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YACjB1G,EAAAA,EAAW2G,iBACX,GAEE,aACA,SACNyB,SAAU,aAGdxL,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,IAAM,sBAAnE,YAAkG,iBAC7F0N,EAAc,WAAa,GAAE,iBAC9B,cAAa,iBACbA,QAAsB5T,EAAS,gBAC/B4T,EAAc,kBAAe5T,GAE5C7D,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,IAAnF,qBAEX/J,EAAAA,cAAA,4BACAA,EAAAA,cAAA,YAAO0G,EAAAA,EAAEC,GAAG6c,eAIlBngB,EAAAA,GAAYyG,YACV1G,EAAAA,EAAW2G,iBACX,IAEA/J,EAAAA,cAAA,OACIM,UAAU,8BAA6B,iBACvBa,KAAKsW,YAAc,WAAa,GAAE,iBACnC,cAAa,iBACbtW,KAAKsW,kBAAsB5T,EAAS,gBAE/C1C,KAAKsW,YAAc,kBAAe5T,GAGtC7D,EAAAA,cAAA,OAAKM,UAAU,kBACXN,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACIM,UAAU,+BACVsC,MAAO,CAACmL,aAAc,YAAU,cAIpC/N,EAAAA,cAAA,OAAKM,UAAU,cACVoG,EAAAA,EAAEC,GAAG6c,aAGdxjB,EAAAA,cAAA,eAMhBA,EAAAA,cAAA,OACIG,GAAG,aACHG,UAAWmX,EAAc,WAAa,GACtC7U,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YACjB1G,EAAAA,EAAW2G,iBACX,GAEE,aACA,WAGV/J,EAAAA,cAAA,OACIM,UAAU,eACV2C,KAAK,UAAS,aACH,iBACXL,MAAO,CACHuW,IAAK9V,EAAAA,GAAYyG,YACb1G,EAAAA,EAAW2G,iBACX,GAEE,GACA,KAGTrD,EAAAA,EAAEkB,KAAK6a,SACHnD,MAAM,EAAG,KACTA,MAAM,EAAGne,KAAKghB,uBACd/R,KAAI,CAACC,EAAyBjI,IAC3BpI,EAAAA,cAAA,OACIiD,KAAK,SACLU,IAAK0M,EAAElQ,GACPC,MAAOiQ,EAAEjQ,MAAK,aACF,UAAUiQ,EAAEjQ,YACxBE,UAAW,GAAG+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,0BAA0BrD,EAAAA,EAAEQ,IAAIoc,UAAYjT,EAAElQ,GAAK,UAAY,KAAMgB,KAAKkhB,eAAkC,GAAjB,iBACzL1f,QAASA,IAAMxB,KAAKwiB,UAAUtT,EAAElQ,KAEhCH,EAAAA,cAAA,OACIM,UAAU,OACVsC,MAAO,CACHuc,gBAAiB,IAAI9O,EAAEsS,eAG/B3iB,EAAAA,cAAA,OACIM,UAAU,QAAO,UACR+P,EAAElQ,GAAE,WACH,2DAA2DkQ,EAAElC,KAAK7B,+BAE3E+D,EAAEjQ,OAENsG,EAAAA,EAAEQ,IAAIoc,UAAYjT,EAAElQ,IACjBH,EAAAA,cAAA,OACIM,UAAU,gBACVsC,MAAO,CACHuc,gBACIzY,EAAAA,EAAEQ,IAAIwb,QAAU,EACV,IAAIhc,EAAAA,EAAEQ,IAAI2a,aACV,cAOrCnb,EAAAA,EAAEkB,KAAK6a,SAASna,OAASnH,KAAK4gB,UAC3B/hB,EAAAA,cAAA,OACIM,UAAU,cACVsC,MAAO,CAACmV,QAAS,eACjBpV,QAASxB,KAAKuiB,oBAAmB,aACrB,cAAchd,EAAAA,EAAEkB,KAAK6a,SAASna,qBAC1CrF,KAAK,WAEHI,EAAAA,GAAYyG,YACV1G,EAAAA,EAAW2G,iBACX,IAEA/J,EAAAA,cAAAA,EAAAA,SAAA,KACKmB,KAAKkhB,gBACFriB,EAAAA,cAAA,OACIM,UAAU,mCACV2C,KAAK,SAAQ,aACD,cAAcyD,EAAAA,EAAEkB,KAAK6a,SAASna,sBAAoB,cAElD5B,EAAAA,EAAEkB,KAAK6a,SAASna,OAAQ,IAAG,gBAI7CnH,KAAKkhB,gBACHriB,EAAAA,cAAA,OACIM,UAAU,mCACV2C,KAAK,SAAQ,aACF,yBAAuB,4BAQjDI,EAAAA,GAAYyG,YACT1G,EAAAA,EAAW2G,iBACX,IAEA/J,EAAAA,cAAAA,EAAAA,SAAA,KACKmB,KAAKkhB,gBACFriB,EAAAA,cAAA,QACI4C,MAAO,CACHoW,MAAO,UACPuG,eAAgB,cACnB,YAES7Y,EAAAA,EAAEkB,KAAK6a,SAASna,OAAQ,IAAG,gBAI3CnH,KAAKkhB,gBACHriB,EAAAA,cAAA,QACI4C,MAAO,CACHoW,MAAO,UACPuG,eAAgB,cACnB,8BAYpClc,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAA,MAAI4C,MAAO,CAACoL,WAAY,OAOpD,GA1rCYxN,EAAA,CAAXyD,EAAAA,IAAU,gCACCzD,EAAA,CAAXyD,EAAAA,IAAU,uCAECzD,EAAA,CAAXyD,EAAAA,IAAU,qCACCzD,EAAA,CAAXyD,EAAAA,IAAU,4CAECzD,EAAA,CAAXyD,EAAAA,IAAU,qCACCzD,EAAA,CAAXyD,EAAAA,IAAU,4CAECzD,EAAA,CAAXyD,EAAAA,IAAU,6BAgCXzD,EAAA,CADC0D,EAAAA,IAAM,+BAUP1D,EAAA,CADC0D,EAAAA,IAAM,qCASP1D,EAAA,CADC0D,EAAAA,IAAM,0CASP1D,EAAA,CADC0D,EAAAA,IAAM,0CASP1D,EAAA,CADC0D,EAAAA,IAAM,2BAmEP1D,EAAA,CADC0D,EAAAA,IAAM,gCAoBP1D,EAAA,CADC0D,EAAAA,IAAM,qCAOG1D,EAAA,CAAT4U,EAAAA,IAAQ,gCAxKQ0M,EAAGthB,EAAA,CADvBC,EAAAA,IACoBqhB,G,qFCTrB,IAAM/N,EAAN,cAA6B/T,EAAAA,UACzBC,MAAAA,GACI,OACID,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,QACIM,UAAU,OACVqC,QAASA,IAAMX,EAAAA,GAAW,oBAAmB,aAClC,yDACXiB,KAAK,SACLP,SAAU,EAAC,gBACG,SAAQ,gBACR,oBAAkB,mCAKpC1C,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,mBACHC,MAAM,mCAENJ,EAAAA,cAAA,WACIA,EAAAA,cAAA,gBACQA,EAAAA,cAAA,4CAA+C,icASvDA,EAAAA,cAAA,2dAUAA,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACI2N,OAAO,uEACPzK,KAAK,eAETlD,EAAAA,cAAA,OACIM,UAAU,OACVuN,IAAI,sEACJD,IAAI,6BAIZ5N,EAAAA,cAAA,OAAK4C,MAAO,CAAC4V,UAAW,SACpBxY,EAAAA,cAAA,KACIK,KAAK,6BACLC,UAAU,iBACVC,OAAO,SAAQ,aACJ,6CAA2C,sCASlF,GAnEEwT,E,mUAAcvT,CAAA,CADnBC,EAAAA,IACKsT,GAsEN,K,gFCtEA,IAAME,EAAN,cAA4BjU,EAAAA,UACxBC,MAAAA,GACI,OACID,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,QACIM,UAAU,OACVqC,QAASA,IAAMX,EAAAA,GAAW,mBAAkB,aACjC,0CACXiB,KAAK,SACLP,SAAU,EAAC,gBACG,SAAQ,gBACR,mBAAiB,oBAKnC1C,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,kBACHC,MAAM,gCAENJ,EAAAA,cAAA,WACIA,EAAAA,cAAA,gBACQA,EAAAA,cAAA,0BAAyB,ucAQjCA,EAAAA,cAAA,mWAQAA,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACI2N,OAAO,sEACPzK,KAAK,eAETlD,EAAAA,cAAA,OACIM,UAAU,OACVuN,IAAI,qEACJD,IAAI,oBACJpF,MAAM,SAIdxI,EAAAA,cAAA,OAAK4C,MAAO,CAAC4V,UAAW,SACpBxY,EAAAA,cAAA,KACIK,KAAK,kDACLC,UAAU,iBACVC,OAAO,SAAQ,aACJ,qCAAmC,uBAS1E,GAjEE0T,E,mUAAazT,CAAA,CADlBC,EAAAA,IACKwT,GAoEN,K,2wBCxDe,IAAMqQ,EAAN,cAAuBtkB,EAAAA,UAMlC0B,WAAAA,CAAYC,GACRC,MAAMD,GANE2B,OAAAC,eAAA,kB,iDAAqB,IACrBD,OAAAC,eAAA,yB,gDAA2B,IAC3BD,OAAAC,eAAA,iB,gDAAqB,KACrBD,OAAAC,eAAA,wB,gDAA0B,OAUtCD,OAAAC,eAAA,sB,gDAAgBO,IAAWL,EAAA,gCACvBtC,KAAKuC,cACLvC,KAAK0c,iBAAmB1c,KAAK2c,oBACjC,MA8BAxa,OAAAC,eAAA,uB,gDAAiBO,IAAWL,EAAA,iCACxB6C,EAAAA,EAAAA,KAAY,KACRnF,KAAKyV,WAAazV,KAAKyV,UACvBzV,KAAK0c,iBAAmB1c,KAAKyV,UAAYzV,KAAK2c,qBAAuB,IACrE3b,YAAW,WACkB,GAAGmd,MAAMsE,KAC9B9e,SAAS+e,iBAAiB,+BAEOzT,KAAI,SAAU0T,GAC/C,OAAO,IAAIC,UAAUC,QAAQF,EACjC,GACJ,GAAG,IAAI,GAEf,MAGAxgB,OAAAC,eAAA,a,gDAAcpD,GAAcsD,EAAA,iCACxB6C,EAAAA,EAAAA,KAAY,KACRtE,EAAAA,KACA0E,EAAAA,EAAEC,GAAG8I,gBAAiB,EACtB/I,EAAAA,EAAEQ,IAAIqd,YAAcpkB,EACpB,MAAM0O,EAAInI,EAAAA,EAAEkB,KAAK4c,UAAU5V,QAAO6V,GAAMA,EAAGtkB,KAAOA,IAAI,GAClD0O,IACAnI,EAAAA,EAAEQ,IAAIoL,kBAAoBzD,EAAE6V,UAEhChe,EAAAA,EAAEgJ,QAEE3M,OAAOwI,WAAa,MACVzG,SAASG,eAAe,eAChC2Z,kBAGDlY,EAAAA,EAAEkB,KAAKkB,OAASpC,EAAAA,EAAEyE,UAAYhL,IAAOuG,EAAAA,EAAEkB,KAAK+c,aAC7C7d,EAAAA,EAAAA,IAAU,CACN8d,GAAI,gBACJC,GAAIne,EAAAA,EAAEkB,KAAK+c,WAAWlK,WACtBqK,GAAI3kB,EAAGsa,YAEf,GAER,MAGAnX,OAAAC,eAAA,oB,gDAAoBjB,GAAImB,EAAA,gCACpBtC,KAAK4jB,gBAAkBziB,EAAE/B,OAAOuD,MACH,OAAzB3C,KAAK4jB,gBACL5jB,KAAK0c,iBAAmB1c,KAAKyV,UAAY,EAAI,KAE7CzV,KAAK0c,iBAAmB,IACpB1c,KAAKyV,WACLzV,KAAKiW,iBAGjB,MA5FIjW,KAAKiW,eAAiBjW,KAAKiW,eAAe7N,KAAKpI,MAC/CA,KAAKwO,KAAOxO,KAAKwO,KAAKpG,KAAKpI,MAC3BA,KAAK6jB,YAAc7jB,KAAK6jB,YAAYzb,KAAKpI,OACzCqI,EAAAA,EAAAA,IAAerI,KACnB,CAOAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,eACvC,GAAG2V,MAAMsE,KAC9B9e,SAAS+e,iBAAiB,+BAEOzT,KAAI,SAAU0T,GAE/C,OADAC,UAAUC,QAAQiB,QAAQC,UAAU,KAAK1jB,KAAK,SACvC,IAAIuiB,UAAUC,QAAQF,EACjC,IAGA,MAAMqB,EAAOze,EAAAA,EAAEkB,KAAK4c,UACf5V,QAAOC,GAAKA,EAAEuW,UAA2B,KAAfvW,EAAEuW,WAC5BhV,KAAIvB,GAAKA,EAAEuW,WAChBjkB,KAAKkkB,SAAW,IAAI,IAAIC,IAAIH,IAAOI,MAEvC,CAGAzH,kBAAAA,GACI,OAAIza,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAC9C,EAEA,CAEf,CAyDU,eAAI0N,GACV,OAAO/Q,EAAAA,EAAEQ,IAAI8I,QAAUjN,OAAOwI,WAAa,GAC/C,CAEAtL,MAAAA,GACI,IAAKyG,EAAAA,EAAEqJ,QAAUrJ,EAAAA,EAAEC,GAAGsK,YAAcvK,EAAAA,EAAEkB,KAAK4c,UACvC,OAGJ,MAAM/M,EACFtW,KAAKsW,cAAgBpU,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAE9E,OACI/J,EAAAA,cAAA,OACIM,UAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,WAC7EnH,MAAO,CAAC4I,SAAU,WAAYuM,QAAS,IAEvC/X,EAAAA,cAAA,WACIA,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACI4C,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACxD,aACA,SACNyB,SAAU,aAGdxL,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,IAAM,sBAAnE,YAAkG,iBAC7F0N,EAAc,WAAa,GAAE,iBAC9B,kBAAiB,iBACjBA,QAAsB5T,EAAS,gBAC/B4T,EAAc,sBAAmB5T,GAEhD7D,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,IAAnF,oBACXnH,MAAO,CACHqN,cACIvJ,EAAAA,EAAEkB,KAAKkB,OACPzF,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAC/C,EACA,EACViO,WAAY3U,EAAAA,GAAYyG,YACpB1G,EAAAA,EAAW2G,iBACX,GAEE,EACA,KAGV/J,EAAAA,cAAA,gCACAA,EAAAA,cAAA,YAAO0G,EAAAA,EAAEC,GAAG6N,gBACZxU,EAAAA,cAACkkB,EAAAA,EAAQ,CACL/jB,GAAG,iBACHyJ,MAAM,4BAKhBvG,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACnD/J,EAAAA,cAAA,OACIM,UAAU,8BAA6B,iBACvBa,KAAKsW,YAAc,WAAa,GAAE,iBACnC,kBAAiB,iBACjBtW,KAAKsW,kBAAsB5T,EAAS,gBACpC1C,KAAKsW,YAAc,sBAAmB5T,GAErD7D,EAAAA,cAAA,OAAKM,UAAU,kBACXN,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACIM,UAAU,+BACVsC,MAAO,CAACmL,aAAc,YAAU,iBAGhC/N,EAAAA,cAACkkB,EAAAA,EAAQ,CACL/jB,GAAG,iBACHyJ,MAAM,0BAGd5J,EAAAA,cAAA,OAAKM,UAAU,cAAcoG,EAAAA,EAAEC,GAAG6N,iBAEtCxU,EAAAA,cAAA,WACKmB,KAAKsW,aACFtW,KAAKyV,WACLlQ,EAAAA,EAAEkB,KAAK4c,UACF5V,QAAOyB,GAAKA,EAAElQ,KAAOuG,EAAAA,EAAEQ,IAAIqd,cAC3BnU,KAAI,CAACC,EAA0BjI,IAC5BpI,EAAAA,cAAA,OACI2D,IAAKyE,EACLyF,IAAK,uDAAuDwC,EAAElC,KAAK7B,6BACnEsB,IAAKyC,EAAEjQ,cAS3CJ,EAAAA,cAAA,OACIG,GAAG,iBACHG,UAAWmX,EAAc,WAAa,GACtC7U,MAAO,CACHmV,QAAS1U,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACxD,aACA,WAGTrD,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAKkB,OACd9I,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACIM,UAAU,mBACVsC,MAAO,CAAC4F,MAAO,SAEfxI,EAAAA,cAAA,SAAOuO,QAAQ,mBAAiB,iBAChCvO,EAAAA,cAAA,UACIG,GAAG,kBACHG,UAAU,cACV+N,SAAUlN,KAAK6jB,YACfpiB,MAAO,CAAC4F,MAAO,IAAKwF,WAAY,IAEhChO,EAAAA,cAAA,UAAQ8D,MAAM,MAAI,YACjB3C,KAAKkkB,SAASjV,KAAIvB,GACf7O,EAAAA,cAAA,UAAQ8D,MAAO+K,GAAIA,OAI/B7O,EAAAA,cAAA,MAAI4C,MAAO,CAAC4c,OAAQ,eAI5Bxf,EAAAA,cAAA,OACIM,UAAU,gBACV2C,KAAK,UAAS,aACH,0BAGVyD,EAAAA,EAAEkB,KAAK4c,UACH5V,QACGC,GAC6B,OAAzB1N,KAAK4jB,iBACLlW,EAAEuW,WAAajkB,KAAK4jB,kBAE3BzF,MAAM,EAAG,KACTA,MAAM,EAAGne,KAAK0c,kBACdzN,KAAI,CAACC,EAA0BjI,IAC5BpI,EAAAA,cAAA,wBAEQ+C,OAAOwI,WAAa,KAAO,UAAY,GAAE,oBAE3B,MAAK,eACV,OAAM,kBACH,cAAa,kBACZ,2GAA2G8E,EAAElC,KAAK7B,yCAC/H+D,EAAEmV,WACIC,EAAAA,qBACIzlB,EAAAA,cAAC0lB,EAAAA,EAAY,CACTld,MAAO,GACPiD,IAAK,MACLC,KAAM,UAGd,WAEVvL,GAAI,YAAYkQ,EAAElQ,KAClBwD,IAAK0M,EAAElQ,GACPC,MAAOiQ,EAAEjQ,MAAK,aACF,UAAUiQ,EAAEjQ,iBACxBE,UAAW,GAAG+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,gBAAgBrD,EAAAA,EAAEQ,IAAIqd,cAAgBlU,EAAElQ,GAAK,UAAY,KAAMgB,KAAKyV,UAA6B,GAAjB,iBAC9KjU,QAASA,IAAMxB,KAAKwO,KAAKU,EAAElQ,IAAG,WACpB,uDAAuDkQ,EAAElC,KAAK7B,8BACxErJ,KAAK,SACLP,SAAU,GAEV1C,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ3L,EAAAA,GACJ,uDAAuDqO,EAAElC,KAAK7B,gCAGtEtM,EAAAA,cAAA,OACIM,WAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,oBAAsB,IAAnF,eAAmG,WACpG,uDAAuDsG,EAAElC,KAAK7B,8BACxEzD,QAAQ,OACRgF,IAAK,uDAAuDwC,EAAElC,KAAK7B,6BACnEsB,IAAKyC,EAAEjQ,MACPqI,OAAQ,GACRD,MAAO,MAIE3E,MAAhBwM,EAAEmV,YAA2BnV,EAAEmV,YAC5BxlB,EAAAA,cAAC0lB,EAAAA,EAAY,CACTld,MAAO,GACPiD,IAAK,OACLC,KAAM,SAIbhF,EAAAA,EAAE6J,kBACC7J,EAAAA,EAAEyE,UACFzE,EAAAA,EAAEkB,KAAK+c,aAAetU,EAAElQ,IACpBH,EAAAA,cAAA,OAAKM,UAAU,sBACXN,EAAAA,cAAA,KAAGM,UAAU,8BAMxCoG,EAAAA,EAAEkB,KAAK4c,UAAUlc,QAAU,GACxBtI,EAAAA,cAAA,OACIM,UAAU,cACVsC,MAAO,CAACmV,QAAS,cAAciB,MAAM,WACrCrW,QAASxB,KAAKiW,eAAc,aAChB,cAAc1Q,EAAAA,EAAEkB,KAAK4c,UAAUlc,mBAC3CrF,KAAK,SACLP,SAAU,GAETW,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAAA,EAAAA,SAAA,KACKmB,KAAKyV,WACF5W,EAAAA,cAAA,QACIiD,KAAK,SACLP,SAAU,EACVE,MAAO,CACHoW,MAAO,UACPuG,eAAgB,cACnB,YAES7Y,EAAAA,EAAEkB,KAAK4c,UAAUlc,OAAM,eAGvCnH,KAAKyV,WACH5W,EAAAA,cAAA,QACIiD,KAAK,SACLP,SAAU,EACVE,MAAO,CACHoW,MAAO,UACPuG,eAAgB,cACnB,yBAQflc,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACnD/J,EAAAA,cAAAA,EAAAA,SAAA,KACKmB,KAAKyV,WACF5W,EAAAA,cAAA,OACIM,UAAU,mCACV2C,KAAK,SACLP,SAAU,EACVE,MAAO,CAACoW,MAAM,YAAU,cAEZtS,EAAAA,EAAEkB,KAAK4c,UAAUlc,OAAM,eAGzCnH,KAAKyV,WACH5W,EAAAA,cAAA,OACIM,UAAU,mCACV2C,KAAK,SACLP,SAAU,EACVE,MAAO,CAACoW,MAAM,YAAU,8BAY3D3V,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAA,MAAI4C,MAAO,CAACoL,WAAY,MAG5BhO,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,iBACHC,MAAM,wBAENJ,EAAAA,cAAA,ynBAchB,GA/YYQ,EAAA,CAAXyD,EAAAA,IAAU,gCACCzD,EAAA,CAAXyD,EAAAA,IAAU,uCACCzD,EAAA,CAAXyD,EAAAA,IAAU,+BACCzD,EAAA,CAAXyD,EAAAA,IAAU,sCAkCXzD,EAAA,CADC0D,EAAAA,IAAM,uCAUP1D,EAAA,CADC0D,EAAAA,IAAM,qCAiBP1D,EAAA,CADC0D,EAAAA,IAAM,2BA4BP1D,EAAA,CADC0D,EAAAA,IAAM,kCAYG1D,EAAA,CAAT4U,EAAAA,IAAQ,gCArGQkP,EAAQ9jB,EAAA,CAD5BC,EAAAA,IACoB6jB,G,iECRN,IAAMoB,EAAN,cAA2B1lB,EAAAA,UACtC0B,WAAAA,CAAYC,GACRC,MAAMD,EACV,CAEA1B,MAAAA,GACI,OACID,EAAAA,cAAA,OACI6I,QAAQ,OACRgF,IAAI,oEACJD,IAAI,WACJpF,MAAOrH,KAAKQ,MAAM6G,MAClB5F,MAAO,CAAC4I,SAAU,WAAYC,IAAKtK,KAAKQ,MAAM8J,IAAKC,KAAMvK,KAAKQ,MAAM+J,OAGhF,GAfiBga,E,mUAAYllB,CAAA,CADhCC,EAAAA,IACoBilB,G,0ECHrB,IAAMC,EAAN,cAAwB3lB,EAAAA,UACpB0B,WAAAA,CAAYC,GACRC,MAAMD,EACV,CAEA1B,MAAAA,GACI,OACID,EAAAA,cAAA,OAAKiD,KAAK,UACNjD,EAAAA,cAAA,OAAKM,UAAU,8BACXN,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACIM,UAAU,aACVsC,MAAO,CAACwT,SAAU,KAEjBwP,EAAAA,EAAMjf,GAAGuT,kBAEdla,EAAAA,cAAA,OAAK4C,MAAO,CAACwT,SAAU,GAAI4B,WAAY,KACnChY,EAAAA,cAAA,KAAGM,UAAU,2CAEjBN,EAAAA,cAAA,OACI4C,MAAO,CAACoV,WAAY,GAAI5B,SAAU,IAClC9V,UAAU,aAAY,aACX,eAAa,eAI5BN,EAAAA,cAAA,OAAK4C,MAAO,CAACoV,WAAY,IAAK4N,EAAAA,EAAMjf,GAAGwT,mBAG/Cna,EAAAA,cAAA,OAAKM,UAAU,qBAG3B,GAhCEqlB,E,mUAASnlB,CAAA,CADdC,EAAAA,IACKklB,GAkCN,K,ouBC3BA,IAAME,EAAN,cAA4B7lB,EAAAA,UAGxB0B,WAAAA,CAAYC,GACRC,MAAMD,GAHE2B,OAAAC,eAAA,2B,yDAOZD,OAAAC,eAAA,sB,gDAAgBO,IAAWL,EAAA,gCAAC,OAAAtC,KAAKuC,aAAa,MAO9CJ,OAAAC,eAAA,kB,gDAAmBjB,GAAUmB,EAAA,iCACzB6C,EAAAA,EAAAA,KAAY,KACR,MAAMwf,EAAIhhB,SAASG,eAAe,gBACvBH,SAASG,eAAe,sBAChC8gB,QACH5jB,YAAW,WACP2jB,EAAElH,gBACN,GAAG,IAAI,GAEf,MAnBIzd,KAAK6kB,UAAY7kB,KAAK6kB,UAAUzc,KAAKpI,KACzC,CAIAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,cACpE,CAcA1J,MAAAA,GACI,IAAKyG,EAAAA,EAAEoB,GAAI,OAEX,IACKpB,EAAAA,EAAEkB,KAAKkB,OACRzF,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACrD1G,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACvD,CACE,MAEMkc,GAFS,IAAItT,WACAC,gBAAgBlM,EAAAA,EAAEoB,GAAG+K,yBAA0B,aAC5CgR,iBAAiB,MAEnCoC,EAAU,GAAGC,cACb/kB,KAAKglB,mBAAqBF,EAAU,GAAGC,YAE/C,CAEA,MAAME,EACFpmB,EAAAA,cAAA,OAAKG,GAAG,eACJH,EAAAA,cAAA,WACK0G,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEoB,IACT9H,EAAAA,cAAA,MACIM,UACIoG,EAAAA,EAAEC,GAAG0f,cAAc/d,OAAS,IACtB,QACA5B,EAAAA,EAAEC,GAAG0f,cAAc/d,OAAS,GAC1B,QACA,IAGX5B,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAKkB,MAAQ,GAAK,GAAGpC,EAAAA,EAAEoB,GAAG6Z,YACtCjb,EAAAA,EAAEC,GAAG0f,eAGdrmB,EAAAA,cAAA,OAAKG,GAAG,oBACF6B,EAAAA,GAAwB0E,EAAAA,EAAEC,GAAG2N,MAC3BtU,EAAAA,cAAA,QAAMM,UAAU,OAAK,QAAOoG,EAAAA,EAAEC,GAAG2N,MAEnC5N,EAAAA,EAAEQ,IAAI8I,QAAUhQ,EAAAA,cAAA,QAAMM,UAAU,WAAS,WAAUoG,EAAAA,EAAEC,GAAG0N,SAEzD3N,EAAAA,EAAEC,GAAG2f,eAAiB5f,EAAAA,EAAEC,GAAG4f,aAAe,GACvCvmB,EAAAA,cAAA,OACIG,GAAG,oBACHwC,QAASxB,KAAK6kB,WAEdhmB,EAAAA,cAAA,KACIK,KAAK,WAAU,aACJ,WAEXL,EAAAA,cAAA,OAAKM,UAAU,oBACXN,EAAAA,cAAA,QACIM,UAAW,eAAcoG,EAAAA,EAAEC,GAAG6f,aAAe,EAAI,gBAAkB,IACnEvjB,KAAK,iBAETjD,EAAAA,cAAA,QACIM,UAAW,eAAcoG,EAAAA,EAAEC,GAAG6f,aAAe,EAAI,gBAAkB,IACnEvjB,KAAK,iBAETjD,EAAAA,cAAA,QACIM,UAAW,eAAcoG,EAAAA,EAAEC,GAAG6f,aAAe,EAAI,gBAAkB,IACnEvjB,KAAK,iBAETjD,EAAAA,cAAA,QACIM,UAAW,eAAcoG,EAAAA,EAAEC,GAAG6f,aAAe,EAAI,gBAAkB,IACnEvjB,KAAK,iBAETjD,EAAAA,cAAA,QACIM,UAAW,eAAcoG,EAAAA,EAAEC,GAAG6f,aAAe,EAAI,gBAAkB,IACnEvjB,KAAK,iBAETjD,EAAAA,cAAA,QAAMM,UAAU,oBAAkB,IAC5BoG,EAAAA,EAAEC,GAAG4f,aAAY,UAQ/CvmB,EAAAA,cAAA,OAAKM,UAAU,WACVoG,EAAAA,EAAEC,GAAG8f,cACFzmB,EAAAA,cAAA,WAMIA,EAAAA,cAAA,QAAMM,UAAW,aAAc0B,EAAAA,GAAc0E,EAAAA,EAAEC,GAAGC,WAMhE8f,EACF1mB,EAAAA,cAAA,OACIG,GAAG,cACHG,UAAU,oBAEToG,EAAAA,EAAEC,GAAG2f,eAAiB5f,EAAAA,EAAEC,GAAG4f,aAAe,GACvCvmB,EAAAA,cAAA,OACIG,GAAG,oBACHwC,QAASxB,KAAK6kB,WAEdhmB,EAAAA,cAAA,OAAKM,UAAU,oBACXN,EAAAA,cAAA,QACIM,UAAW,eAAcoG,EAAAA,EAAEC,GAAG6f,aAAe,EAAI,gBAAkB,IACnEvjB,KAAK,iBAETjD,EAAAA,cAAA,QACIM,UAAW,eAAcoG,EAAAA,EAAEC,GAAG6f,aAAe,EAAI,gBAAkB,IACnEvjB,KAAK,iBAETjD,EAAAA,cAAA,QACIM,UAAW,eAAcoG,EAAAA,EAAEC,GAAG6f,aAAe,EAAI,gBAAkB,IACnEvjB,KAAK,iBAETjD,EAAAA,cAAA,QACIM,UAAW,eAAcoG,EAAAA,EAAEC,GAAG6f,aAAe,EAAI,gBAAkB,IACnEvjB,KAAK,iBAETjD,EAAAA,cAAA,QACIM,UAAW,eAAcoG,EAAAA,EAAEC,GAAG6f,aAAe,EAAI,gBAAkB,IACnEvjB,KAAK,iBAETjD,EAAAA,cAAA,QAAMM,UAAU,oBACXoG,EAAAA,EAAEC,GAAG6f,aAAaG,QAAQ,GAAE,YAAW,IACxC3mB,EAAAA,cAAA,KACIK,KAAK,WAAU,aACJ,WAEVqG,EAAAA,EAAEC,GAAG4f,aAAY,eAOtCvmB,EAAAA,cAAA,WACK0G,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEoB,IACT9H,EAAAA,cAAA,MAAIM,UAAU,SACToG,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAKkB,MAAQ,GAAK,GAAGpC,EAAAA,EAAEoB,GAAG6Z,YACtCjb,EAAAA,EAAEC,GAAG0f,eAGdrmB,EAAAA,cAAA,OAAKG,GAAG,oBACF6B,EAAAA,GAAwB0E,EAAAA,EAAEC,GAAG2N,MAC3BtU,EAAAA,cAAA,QAAMM,UAAU,OAAK,QAAOoG,EAAAA,EAAEC,GAAG2N,OAK5C5N,EAAAA,EAAEC,GAAG8f,cACFzmB,EAAAA,cAAA,OAAKM,UAAU,UACXN,EAAAA,cAAA,QAAMM,UAAU,aAAa0B,EAAAA,GAAc0E,EAAAA,EAAEC,GAAGC,SAcvDvD,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAA,MACI4C,MAAO,CACHsN,QAAS,OACT+I,cAAe,SACfE,IAAK,EACLqG,OAAQ,aAGXre,KAAKglB,oBAAsBnmB,EAAAA,cAAA,UAAKmB,KAAKglB,oBAErCzf,EAAAA,EAAEkB,OACElB,EAAAA,EAAEkB,KAAKkB,OACRpC,EAAAA,EAAEkB,KAAK6L,YACS,IAAf/M,EAAAA,EAAEgN,WAAmBC,SAASC,wBAC9BlN,EAAAA,EAAEkB,KAAKiM,eACJ7T,EAAAA,cAAA,UACK0G,EAAAA,EAAEoB,GAAGgM,WAAU,IAAE9T,EAAAA,cAAC+T,EAAAA,EAAc,OAI5CrN,EAAAA,EAAEkB,OACElB,EAAAA,EAAEkB,KAAKkB,OACRpC,EAAAA,EAAEkB,KAAK6L,YACS,IAAf/M,EAAAA,EAAEgN,UAAkBC,SAASC,wBAC7BlN,EAAAA,EAAEkB,KAAKiM,eACJ7T,EAAAA,cAAA,UAAK0G,EAAAA,EAAEoB,GAAGgM,WAAU,wCAO5C,OACIzQ,EAAAA,GAAYujB,OAAOxjB,EAAAA,EAAW2G,mBAC9B1G,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAE9C2c,EAEAN,CAEf,GAzOY5lB,EAAA,CAAXyD,EAAAA,IAAU,yCAcXzD,EAAA,CADC0D,EAAAA,IAAM,gCAdL2hB,EAAarlB,EAAA,CADlBC,EAAAA,IACKolB,GA6ON,K,sZC/Oe,IAAMva,EAAN,cAA0BtL,EAAAA,UACrC0B,WAAAA,CAAYC,GACRC,MAAMD,GAKV2B,OAAAC,eAAA,a,gDAAOO,KAAWL,O,EAAA,K,OAAA,E,EAAA,YACdojB,EAAAA,IACJ,E,YAFkB,K,iRAJd1lB,KAAKwO,KAAOxO,KAAKwO,KAAKpG,KAAKpI,KAC/B,CAQAlB,MAAAA,GACI,OAAoC,IAAjC6mB,aAAaC,gBACJ/mB,EAAAA,cAAA,YAMJA,EAAAA,cAAA,OAAKM,UAAU,cAAc2C,KAAK,SAAQ,aAAa,qBAAqB6jB,aAAa1gB,kBAAkB0gB,aAAaE,YAAarkB,QAASxB,KAAKwO,KAAMjN,SAAU,GAC/J1C,EAAAA,cAAA,WACIA,EAAAA,cAAA,QAAMM,UAAU,aAAasC,MAAO,CAACmV,QAAQ,aAAW,UACxD/X,EAAAA,cAAA,YAAO8mB,aAAaE,WACpBhnB,EAAAA,cAAA,yBAAgBA,EAAAA,cAAA,SAAI8mB,aAAa1gB,cAIrD,GArBA5F,EAAA,CADC0D,EAAAA,IAAM,2BANUoH,EAAW9K,EAAA,CAD/BC,EAAAA,IACoB6K,G,qtBCFN,IAAM2b,EAAN,cAA2BjnB,EAAAA,UACtC0B,WAAAA,CAAYC,GACRC,MAAMD,GAKV2B,OAAAC,eAAA,sB,gDAAgBO,IAAWL,EAAA,gCACvBtC,KAAKuC,aACT,MAOAJ,OAAAC,eAAA,a,gDAAcjB,GAA0CmB,EAAA,iCACpD6C,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEQ,IAAIggB,IAAM1W,SAASlO,EAAE/B,OAAOuD,MAAO,GAAG,GAEhD,MAjBI3C,KAAKwO,KAAOxO,KAAKwO,KAAKpG,KAAKpI,OAC3BqI,EAAAA,EAAAA,IAAerI,KACnB,CAMAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,cACpE,CASA1J,MAAAA,GACI,GAAKyG,EAAAA,EAAEqJ,OAAUrJ,EAAAA,EAAEC,GAAGsK,UAItB,OACIjR,EAAAA,cAAA,OACIM,UAAc+C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,WAC7EnH,MAAO,CACHkL,YAAazK,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAAK,GAAK,KAGhF/J,EAAAA,cAAA,WACIA,EAAAA,cAAA,WACIA,EAAAA,cAAA,QACIM,UAAU,aACVsC,MAAO,CACHmL,aAAc,UACdoC,WAAY9M,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GAC3D,IACA,GACNkG,cAAe5M,EAAAA,GAAYyG,YACvB1G,EAAAA,EAAW2G,iBACX,GAEE,GACA,GACNmG,QAAS7M,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACxD,QACA,KACT,YAIL/J,EAAAA,cAAA,OAAKM,UAAU,cACXN,EAAAA,cAAA,SACIkD,KAAK,SACL5C,UAAU,4BACVsC,MAAO,CACH4F,MAAO,IACPuP,QAAS1U,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACxD,GACA,GACNqP,OAAQ/V,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,GACvD,kBACA,IAEVsE,SAAUlN,KAAKwO,KACflB,UAAW,EACXqK,IAAK,IACLC,IAAK,EAAC,aACK,sBAK1B1V,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAAM/J,EAAAA,cAAA,WAGxE,GAjEAQ,EAAA,CADC0D,EAAAA,IAAM,2BAfU+iB,EAAYzmB,EAAA,CADhCC,EAAAA,IACoBwmB,G,iZCAN,IAAME,EAAN,cAA0BnnB,EAAAA,UAGrC0B,WAAAA,CAAYC,GACRC,MAAMD,GAHE2B,OAAAC,eAAA,mB,yDAIRpC,KAAKimB,iBACL5d,EAAAA,EAAAA,IAAerI,KACnB,CAGAimB,aAAAA,GACI,MAAM,IAACvZ,GAAO1M,KAAKQ,MAAM0lB,QACnBC,EAAQzZ,EAAIyZ,MAAM,KAClBC,EAAaD,EAAMA,EAAMhf,OAAS,GAClCkf,EAAgBD,EAAW7F,QAAQ,YAAa,aAEtDvgB,KAAKsmB,WAAa5Z,EAAI6T,QAAQ6F,EAAYC,EAC9C,CAEAvnB,MAAAA,GACI,MAAM,GAACE,EAAE,IAAE0N,EAAG,KAAE6Z,EAAI,MAAE9gB,GAASzF,KAAKQ,MAAM0lB,QACpCzd,EAAQ,aAEd,OACI5J,EAAAA,cAAA,OACIM,UAAU,qBACVsC,MAAO,CAAC4F,MAAO,MAEfxI,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQE,EAAI6T,QAAQ,OAAQ,WAEhC1hB,EAAAA,cAAA,OACI6N,IAAKA,EACLD,IAAK,oBAAoBzN,IACzB0I,QAAQ,OACRL,MAAO,IACPC,OAAQ,OAGhBzI,EAAAA,cAAA,OAAKM,UAAU,gDACVyC,OAAOwI,WAAa,KACjBvL,EAAAA,cAAA,wBACmB,UAAS,oBACN,MAAK,eACV,OAAM,kBACH,cAAa,kBACZ,uCAAuCmB,KAAKsmB,uBAC7D7kB,MAAO,CAACoW,MAAO,SAEdpP,GAGL5J,EAAAA,cAAA,KAAGK,KAAMqnB,GAAO9d,GAEpB5J,EAAAA,cAAA,kBAAU4G,IAI1B,GA3DYpG,EAAA,CAAXyD,EAAAA,IAAU,iCASXzD,EAAA,CADC0D,EAAAA,IAAM,kCATUijB,EAAW3mB,EAAA,CAD/BC,EAAAA,IACoB0mB,G,oICUrB,MAAMvgB,EAAQ,OACR8gB,EAAO,mFACP7Z,EACF,wGACE8Z,EAAoC,CACtC,CAACxnB,GAAI,EAAG0N,MAAKjH,QAAO8gB,QACpB,CAACvnB,GAAI,EAAG0N,MAAKjH,QAAO8gB,QACpB,CAACvnB,GAAI,EAAG0N,MAAKjH,QAAO8gB,QACpB,CAACvnB,GAAI,EAAG0N,MAAKjH,QAAO8gB,QACpB,CAACvnB,GAAI,EAAG0N,MAAKjH,QAAO8gB,QACpB,CAACvnB,GAAI,EAAG0N,MAAKjH,QAAO8gB,QACpB,CAACvnB,GAAI,EAAG0N,MAAKjH,QAAO8gB,QACpB,CAACvnB,GAAI,EAAG0N,MAAKjH,QAAO8gB,QACpB,CAACvnB,GAAI,EAAG0N,MAAKjH,QAAO8gB,QACpB,CAACvnB,GAAI,GAAI0N,MAAKjH,QAAO8gB,SAIV,IAAME,EAAN,cAA8B5nB,EAAAA,UACzC0B,WAAAA,CAAYC,GACRC,MAAMD,IACN6H,EAAAA,EAAAA,IAAerI,KACnB,CAEAlB,MAAAA,GACI,GAAKyG,EAAAA,EAAEqJ,MAIP,OACI/P,EAAAA,cAAA,OAAKG,GAAG,oBACJH,EAAAA,cAAA,OACIM,UAAU,4BACVH,GAAG,yBACH8C,KAAK,SAAQ,iBACE,WAAU,iBACV,yBAAwB,gBACzB,wBACdP,SAAU,EAAC,iBACI,GAAK,oBAIxB1C,EAAAA,cAAA,OACIG,GAAG,wBACHG,UAAU,0BAEVN,EAAAA,cAAC6nB,EAAAA,GAAM,CACH1nB,GAAG,0BACH2nB,YAAY,EACZC,MAAM,EACNC,SAAU,CAACC,SAAS,GACpBC,YAAY,EACZC,aAAc,GACdC,sBAAsB,EACtBC,YAAa,CACT,KAAM,CACFC,cAAe,GAEnB,IAAK,CACDA,cAAe,GAEnB,IAAK,CACDA,cAAe,GAEnB,IAAK,CACDA,cAAe,GAEnB,EAAG,CACCA,cAAe,IAGvBC,QAAS,CAACC,EAAAA,GAAUC,EAAAA,IACpBnoB,UAAU,0BAAyB,uBACd,YAEpBqnB,EAAgBvX,KAAI,CAACsY,EAAGtgB,IACrBpI,EAAAA,cAAC2oB,EAAAA,GAAW,CAAChlB,IAAKyE,GACdpI,EAAAA,cAACmnB,EAAAA,EAAW,CAACE,QAASqB,SAOlD,GAnEiBd,E,mUAAepnB,CAAA,CADnCC,EAAAA,IACoBmnB,E,sZC3BrB,IAAM1D,EAAN,cAAuBlkB,EAAAA,UAEnB+lB,KAAAA,CAAMzjB,GACFA,EAAEkT,iBACFlT,EAAEsmB,kBACF5mB,EAAAA,GAAWb,KAAKQ,MAAMxB,GAC1B,CAEAF,MAAAA,GACI,OACID,EAAAA,cAAA,KACIM,UAAU,qBACVsC,MAAO,CAACoW,MAAO,OAAQhL,WAAY,GAAE,gBACtB7M,KAAKQ,MAAMxB,GAC1BwC,QAASL,GAAKnB,KAAK4kB,MAAMzjB,GACzBW,KAAK,SAAQ,aACD,oBAAoB9B,KAAKQ,MAAMiI,yBAAwB,gBACrD,UAG1B,GAlBApJ,EAAA,CADC0D,EAAAA,IAAM,0BADLggB,EAAQ1jB,EAAA,CADbC,EAAAA,IACKyjB,GAuBN,K,4dCfe,IAAM2E,EAAN,cAA+B7oB,EAAAA,UAG1C0B,WAAAA,CAAYC,GACRC,MAAMD,GAHE2B,OAAAC,eAAA,mB,iDAAsB,IAgBlCD,OAAAC,eAAA,mB,gDAAoB6E,IAAa3E,O,EAAA,K,OAAA,E,EAAA,aAC7B6C,EAAAA,EAAAA,KAAY,KACRnF,KAAK2nB,WAAa1gB,EAClB1B,EAAAA,EAAEC,GAAGoiB,kBAAmB,CAAI,GAEpC,E,YALiC,K,iRAZ7B5nB,KAAK6nB,WAAa7nB,KAAK6nB,WAAWzf,KAAKpI,OACvCqI,EAAAA,EAAAA,IAAerI,MACf2D,SAASC,iBAAiB,gBAAgB,SAAUzC,GAC/B,2BAAbA,EAAEwX,SACFxT,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEC,GAAGoiB,kBAAmB,CAAK,GAGzC,GACJ,CAUA9oB,MAAAA,GACI,GAAKyG,EAAAA,EAAEqJ,OAAUrJ,EAAAA,EAAEkB,MAASlB,EAAAA,EAAEkB,KAAKqhB,eAAeviB,EAAAA,EAAEkB,KAAKqhB,YAAY3gB,OAAS,GAG9E,OACItI,EAAAA,cAAA,WACIA,EAAAA,cAAC6nB,EAAAA,GAAM,CACH1nB,GAAG,mBACH+oB,gBAAgB,EAChBpB,YAAY,EACZqB,MAAM,EACNpB,MAAM,EACNC,SAAU,CAACC,SAAS,GACpBmB,WAAW,EACXlB,YAAY,EACZC,aAAc,GACdkB,YAAY,EACZ5gB,OAAQ,IACR2f,sBAAsB,EACtBE,cAAe,EACfD,YAAa,CACT,IAAK,CACDC,cAAe,EACfgB,eAAgB,GAEpB,IAAK,CACDhB,cAAe,EACfgB,eAAgB,GAEpB,IAAK,CACDhB,cAAe,EACfgB,eAAgB,EAChBJ,gBAAgB,GAGpB,IAAK,CACDZ,cAAe,EACfgB,eAAgB,EAChBJ,gBAAgB,GAEpB,EAAG,CACCZ,cAAe,EACfgB,eAAgB,EAChBJ,gBAAgB,IAGxBX,QAAS,CAACC,EAAAA,GAAUC,EAAAA,GAAYc,EAAAA,GAAMC,EAAAA,IACtClpB,UAAU,mBAAkB,uBACP,YAEpBoG,EAAAA,EAAEkB,KAAKqhB,YAAY7Y,KAAI,CAACC,EAAGjI,IACxBpI,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhlB,IAAKyE,EACL1F,SAAU,GAEV1C,EAAAA,cAAA,WACIA,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,iDAAiD0C,EAAElQ,kBAE/DH,EAAAA,cAAA,OACI6N,IAAK,iDAAiDwC,EAAElQ,eACxD0I,QAAQ,OACR+E,IAAK,mBAAmBxF,IACxBI,MAAO,IACPC,OAAQ,IACR9F,QAASA,IAAMxB,KAAK6nB,WAAW5gB,WAOtD1B,EAAAA,EAAEC,GAAGoiB,kBACF/oB,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,yBACHC,MAAM,eACN0B,MAAM,EACNe,SAAU,MACVX,MAAOA,IAAOwE,EAAAA,EAAEC,GAAGoiB,kBAAmB,GAEtC/oB,EAAAA,cAAC6nB,EAAAA,GAAM,CACH1nB,GAAG,wBAEHmoB,cAAe,EACfmB,aAActoB,KAAK2nB,WACnBI,gBAAgB,EAChBpB,YAAY,EACZqB,MAAM,EACNpB,MAAM,EACNC,SAAU,CACNC,SAAS,GAEbmB,WAAW,EACXlB,YAAY,EACZmB,YAAY,EACZd,QAAS,CAACC,EAAAA,GAAUgB,EAAAA,GAAWf,EAAAA,GAAYc,EAAAA,IAAK,uBAC3B,YAEpB7iB,EAAAA,EAAEkB,KAAKqhB,YAAY7Y,KAAI,CAACC,EAAGjI,IACxBpI,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhlB,IAAKyE,EACLshB,aAActhB,GAEdpI,EAAAA,cAAA,WAASM,UAAU,yBACfN,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,iDAAiD0C,EAAElQ,mBAE/DH,EAAAA,cAAA,OACI6N,IAAK,iDAAiDwC,EAAElQ,gBACxD0I,QAAQ,OACR+E,IAAK,mBAAmBxF,IACxBI,MAAO,KACPC,OAAQ,KACR7F,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,qBAW9D,GAxJYxC,EAAA,CAAXyD,EAAAA,IAAU,iCAgBXzD,EAAA,CADC0D,EAAAA,IAAM,iCAhBU2kB,EAAgBroB,EAAA,CADpCC,EAAAA,IACoBooB,G,0zBCEN,IAAMc,EAAN,cAAuB3pB,EAAAA,UAIlC0B,WAAAA,CAAYC,GACRC,MAAMD,GAJE2B,OAAAC,eAAA,gB,gDAAkB,KAClBD,OAAAC,eAAA,mB,gDAAqB,IAoBjCD,OAAAC,eAAA,sB,gDAAgBO,IAAWL,EAAA,gCAAC,OAAAtC,KAAKuC,aAAa,MAmF9CJ,OAAAC,eAAA,mB,gDAAoBqmB,GAAenmB,EAAA,iCAC/B6C,EAAAA,EAAAA,KAAY,KACRtE,EAAAA,IAAgB,GAExB,MAGAsB,OAAAC,eAAA,uB,gDAAwBqmB,GAAenmB,EAAA,iCACnC6C,EAAAA,EAAAA,KAAY,KAIR,IAAKtE,EAAAA,GAAwBb,KAAK0oB,SAAU,CACxC,IAAIC,EAAMhlB,SAASG,eAAe9D,KAAK0oB,SAEnCE,EAAQvZ,SAASsZ,aAAG,EAAHA,EAAKE,WAAW,2BAA2BlmB,MAAO,IAEvE8lB,EAAOK,YAAYF,GAEnB5nB,YAAW,WACPynB,EAAOK,YAAYF,EACvB,GAAG,KACH5nB,YAAW,WACPynB,EAAOK,YAAYF,EACvB,GAAG,KACP,CACA5oB,KAAK0oB,QAAU,GACf7nB,EAAAA,IAAgB,GAIxB,MAGAsB,OAAAC,eAAA,mB,gDAAoBjB,GAAUmB,EAAA,iCAC1B6C,EAAAA,EAAAA,KAAY,KACRnF,KAAK0oB,QAAUvnB,EACfoE,EAAAA,EAAEQ,IAAIgjB,SAAWve,EAAAA,EAAE1L,OAAOyG,EAAAA,EAAEkB,KAAKqW,SAAUjc,EAAAA,GAAgBunB,MAC3D7iB,EAAAA,EAAEC,GAAGwjB,iBAAkB,CAAI,GAEnC,MA3IIhpB,KAAKipB,WAAajpB,KAAKipB,WAAW7gB,KAAKpI,MACvCA,KAAKkpB,eAAiBlpB,KAAKkpB,eAAe9gB,KAAKpI,MAC/CA,KAAK6nB,WAAa7nB,KAAK6nB,WAAWzf,KAAKpI,OACvCqI,EAAAA,EAAAA,IAAerI,MAEfA,KAAKmpB,mBAELxlB,SAASC,iBAAiB,gBAAgB,SAAUzC,GAC/B,yBAAbA,EAAEwX,SACFxT,EAAAA,EAAAA,KAAY,KACRI,EAAAA,EAAEC,GAAGwjB,iBAAkB,CAAK,GAGxC,GACJ,CAIAtoB,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,cACpE,CAEU,eAAI4gB,GACV,SAAK7jB,EAAAA,EAAEqJ,QAAUrJ,EAAAA,EAAEkB,MAKflB,EAAAA,EAAEkB,KAAK+c,WAAa,GACpBje,EAAAA,EAAEkB,KAAK4iB,QAAU,GACjB9jB,EAAAA,EAAEkB,KAAK6iB,aACP/jB,EAAAA,EAAEkB,KAAK8iB,aACPhkB,EAAAA,EAAEkB,KAAK+iB,aACPjkB,EAAAA,EAAEkB,KAAKgjB,aACPlkB,EAAAA,EAAEkB,KAAKijB,aACPnkB,EAAAA,EAAEkB,KAAKkjB,aACPpkB,EAAAA,EAAEkB,KAAKmjB,aACPrkB,EAAAA,EAAEkB,KAAKojB,aACPtkB,EAAAA,EAAEkB,KAAKqjB,aACPvkB,EAAAA,EAAEkB,KAAKsjB,aAKf,CAEU,WAAIC,GACV,IAAKzkB,EAAAA,EAAEqJ,MACH,OAAO,EAGX,IAAIqb,EAAa,EAuBjB,OAtBmC,IAA/B1kB,EAAAA,EAAEkB,KAAKwM,qBACPgX,IAEA1kB,EAAAA,EAAEQ,IAAIqd,YAAc,GAAK7d,EAAAA,EAAEC,GAAG0kB,mBAC9BD,IAEC1kB,EAAAA,EAAEkB,KAAKijB,aAAgB7oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK0jB,MACvDF,IAEC1kB,EAAAA,EAAEkB,KAAKkjB,aAAgB9oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK2jB,MACvDH,IAEA1kB,EAAAA,EAAEQ,IAAIwb,QAAU,GAChB0I,IAEA1kB,EAAAA,EAAEQ,IAAI0N,YAAc,GACpBwW,IAEA1kB,EAAAA,EAAEkB,KAAK4jB,gBAAkB9kB,EAAAA,EAAEkB,KAAK4jB,eAAeljB,OAAS,IACxD8iB,GAAc1kB,EAAAA,EAAEkB,KAAK4jB,eAAeljB,UAGpC8iB,EAAa,GAIb1kB,EAAAA,EAAEkB,KAAKwM,oBAAsB,EAIrC,CAEQkW,gBAAAA,CAAiBxmB,EAAgB,GACjCf,OAAOwI,WAAa,IACpBpK,KAAKiqB,WAAa,EACXroB,OAAOwI,WAAa,IAC3BpK,KAAKiqB,WAAa,EAAItnB,EACff,OAAOwI,WAAa,IAC3BpK,KAAKiqB,WAAa,EAAItnB,EACff,OAAOwI,WAAa,IAC3BpK,KAAKiqB,WAAa,EAAItnB,EAEtB3C,KAAKiqB,WAAa,EAAItnB,CAE9B,CA6CU,gBAAI2N,GACV,SAAK/K,EAAAA,EAAEqJ,QAKH,CAAC,MAAO,MAAO,MAAO,OAAOxO,SAASmF,EAAAA,EAAEkB,KAAKH,aAC7C,CAAC,UAAUlG,SAASmF,EAAAA,EAAEkB,KAAK8J,QAKnC,CAEU,kBAAIO,GACV,QAAKvL,EAAAA,EAAEqJ,SAGFrJ,EAAAA,EAAEC,GAAGuL,oBAINxL,EAAAA,EAAEkB,KAAKuK,gBAAkB,GACzBzL,EAAAA,EAAEkB,KAAKiK,UACNnL,EAAAA,EAAEkB,KAAKwK,uBAAuB9F,cAAc/K,SAAS,UACrDJ,KAAKsQ,aAKd,CAEAxR,MAAAA,GACI,GAAKyG,EAAAA,EAAEqJ,OAGF5O,KAAKopB,YASV,OALIlnB,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,KACrDrD,EAAAA,EAAE+kB,yBAA2B,GAC7BtqB,KAAKmpB,iBAAiB,IAItBtqB,EAAAA,cAAA,WACIA,EAAAA,cAAC6nB,EAAAA,GAAM,CACH1nB,GAAG,iBACHurB,OAAQvqB,KAAKipB,WACb9B,cAAennB,KAAKiqB,WACpBO,sBAAuBxqB,KAAKgqB,QAC5BjC,gBAAiB/nB,KAAKgqB,QACtBS,0BAA2BzqB,KAAKgqB,QAChCrD,WAAY3mB,KAAKgqB,QACjBhC,MAAM,EACNnB,SAAU,CACNC,QAAS9mB,KAAKgqB,SAElB/B,WAAW,EACXlB,WAAY/mB,KAAKgqB,QACjB1iB,OAAQ,GACRsf,KAAM5mB,KAAKgqB,QACX9B,YAAY,EACZd,QAAS,CAACC,EAAAA,GAAUgB,EAAAA,GAAWf,EAAAA,GAAYc,EAAAA,IAAK,uBAC3B,YAEW,IAA/B7iB,EAAAA,EAAEkB,KAAKwM,qBACJpU,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,cAAa,aACvC,4BACXtmB,SAAU,GAEV1C,EAAAA,cAAA,OAAK4C,MAAO,CAACmV,QAAS,MAAOqB,OAAQ,sBAC/B1S,EAAAA,EAAEQ,IAAI8I,QACJhQ,EAAAA,cAAA,OACI4N,IAAI,gBACJpF,MAAM,KACNC,OAAO,KACPoF,IACInH,EAAAA,EAAEkB,KAAKwM,oBAAsB,EACvB,kCAAkC1N,EAAAA,EAAEkB,KAAKH,oCAAoCf,EAAAA,EAAEQ,IAAIqd,4BAA4B7d,EAAAA,EAAEQ,IAAIwb,0BAA0Bhc,EAAAA,EAAEQ,IAAIwN,QAAU,EAAIhO,EAAAA,EAAEQ,IAAIwN,QAAU,gBAAgBhO,EAAAA,EAAEQ,IAAI0N,YAAc,EAAIlO,EAAAA,EAAEQ,IAAI0N,YAAc,YAAYlO,EAAAA,EAAEQ,IAAI4N,QAAU,EAAIpO,EAAAA,EAAEQ,IAAI4N,QAAU,IAC/R,GAAGpO,EAAAA,EAAEkB,KAAKikB,cAEpBvrB,UAAU,UACVqC,QAASxB,KAAK6nB,aAGrBtiB,EAAAA,EAAEQ,IAAI8I,QACHhQ,EAAAA,cAAA,OACI4N,IAAI,gBACJpF,MAAM,KACNC,OAAO,KACPoF,IACInH,EAAAA,EAAEkB,KAAKwM,oBAAsB,EACvB,4CAA4C1N,EAAAA,EAAEkB,KAAKH,aAAaf,EAAAA,EAAEQ,IAAIqd,eAAe7d,EAAAA,EAAEQ,IAAIwb,WAAWhc,EAAAA,EAAEQ,IAAIwN,QAAU,EAAIhO,EAAAA,EAAEQ,IAAIwN,QAAU,KAAKhO,EAAAA,EAAEQ,IAAI0N,YAAc,EAAIlO,EAAAA,EAAEQ,IAAI0N,YAAc,KAAKlO,EAAAA,EAAEkB,KAAKkkB,cAAcplB,EAAAA,EAAEkB,KAAKmkB,uDAC5N,GAAGrlB,EAAAA,EAAEkB,KAAKikB,cAEpBvrB,UAAU,UACVqC,QAASxB,KAAK6nB,eAOjCtiB,EAAAA,EAAEQ,IAAIqd,YAAc,GAAK7d,EAAAA,EAAEC,GAAG0kB,mBAC3BrrB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,uBAAsB,aAChD,gCACXtmB,SAAU,GAEV1C,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ3L,EAAAA,GACJ,uDAAuD0E,EAAAA,EAAEC,GAAGqlB,2BAGpEhsB,EAAAA,cAAA,OACI4N,IAAI,iBACJC,IAAK,uDAAuDnH,EAAAA,EAAEC,GAAGqlB,wBACjEvjB,OAAQ,GACRD,MAAM,SAMrB9B,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAKqkB,gBACdjsB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,0BAAyB,aACnD,6CACX7oB,GAAG,GACHuC,SAAU,GAEV1C,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,yEAEZ3N,EAAAA,cAAA,OACI6N,IAAK,sEACLpF,OAAQ,GACRD,MAAM,KACNoF,IAAK,6BAA6BlH,EAAAA,EAAEoB,GAAGokB,qDAMrDxlB,EAAAA,EAAEkB,KAAKijB,cAAgB7oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK0jB,MACpDtrB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,kBAAiB,aAC1C,4CACZtmB,SAAU,GAEV1C,EAAAA,cAAA,OAAK4C,MAAO,CAACwW,OAAQ,qBACjBpZ,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,6BAA6BjH,EAAAA,EAAEkB,KAAK0jB,gBAEhDtrB,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK0jB,aACzC7iB,OAAQ/B,EAAAA,EAAE+kB,yBACV7d,IAAK,6BAMvBlH,EAAAA,EAAEkB,KAAKkjB,cAAgB9oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK2jB,MACpDvrB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,kBAAiB,aAC1C,4CACZtmB,SAAU,GAEV1C,EAAAA,cAAA,OAAK4C,MAAO,CAACwW,OAAQ,qBACjBpZ,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,6BAA6BjH,EAAAA,EAAEkB,KAAK2jB,gBAEhDvrB,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK2jB,aACzC9iB,OAAQ/B,EAAAA,EAAE+kB,yBACV7d,IAAK,6BAMvBlH,EAAAA,EAAEkB,KAAK6iB,cAAgBzoB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAKukB,MACpDnsB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,kBAAiB,aAC1C,4CACZtmB,SAAU,GAEV1C,EAAAA,cAAA,OAAK4C,MAAO,CAACwW,OAAQ,qBACjBpZ,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,6BAA6BjH,EAAAA,EAAEkB,KAAKukB,gBAEhDnsB,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAKukB,aACzC1jB,OAAQ/B,EAAAA,EAAE+kB,yBACV7d,IAAK,6BAMvBlH,EAAAA,EAAEkB,KAAK8iB,cAAgB1oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAKwkB,MACpDpsB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,kBAAiB,aAC1C,4CACZtmB,SAAU,GAEV1C,EAAAA,cAAA,OAAK4C,MAAO,CAACwW,OAAQ,qBACjBpZ,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,6BAA6BjH,EAAAA,EAAEkB,KAAKwkB,gBAEhDpsB,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAKwkB,aACzC3jB,OAAQ/B,EAAAA,EAAE+kB,yBACV7d,IAAK,6BAMvBlH,EAAAA,EAAEkB,KAAK+iB,cAAgB3oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAKykB,MACpDrsB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,kBAAiB,aAC1C,4CACZtmB,SAAU,GAEV1C,EAAAA,cAAA,OAAK4C,MAAO,CAACwW,OAAQ,qBACjBpZ,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,6BAA6BjH,EAAAA,EAAEkB,KAAKykB,gBAEhDrsB,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAKykB,aACzC5jB,OAAQ/B,EAAAA,EAAE+kB,yBACV7d,IAAK,6BAMvBlH,EAAAA,EAAEkB,KAAKgjB,cAAgB5oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK0kB,MACpDtsB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,kBAAiB,aAC1C,4CACZtmB,SAAU,GAEV1C,EAAAA,cAAA,OAAK4C,MAAO,CAACwW,OAAQ,qBACjBpZ,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,6BAA6BjH,EAAAA,EAAEkB,KAAK0kB,gBAEhDtsB,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK0kB,aACzC7jB,OAAQ/B,EAAAA,EAAE+kB,yBACV7d,IAAK,6BAMvBlH,EAAAA,EAAEkB,KAAKmjB,cAAgB/oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK2kB,MACpDvsB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,kBAAiB,aAC1C,4CACZtmB,SAAU,GAEV1C,EAAAA,cAAA,OAAK4C,MAAO,CAACwW,OAAQ,qBACjBpZ,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,6BAA6BjH,EAAAA,EAAEkB,KAAK2kB,gBAEhDvsB,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK2kB,aACzC9jB,OAAQ/B,EAAAA,EAAE+kB,yBACV7d,IAAK,6BAMvBlH,EAAAA,EAAEkB,KAAKojB,cAAgBhpB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK4kB,MACpDxsB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,kBAAiB,aAC1C,4CACZtmB,SAAU,GAEV1C,EAAAA,cAAA,OAAK4C,MAAO,CAACwW,OAAQ,qBACjBpZ,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,6BAA6BjH,EAAAA,EAAEkB,KAAK4kB,gBAEhDxsB,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK4kB,aACzC/jB,OAAQ/B,EAAAA,EAAE+kB,yBACV7d,IAAK,6BAMvBlH,EAAAA,EAAEkB,KAAKqjB,cAAgBjpB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK6kB,MACpDzsB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,kBAAiB,aAC1C,4CACZtmB,SAAU,GAEV1C,EAAAA,cAAA,OAAK4C,MAAO,CAACwW,OAAQ,qBACjBpZ,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,6BAA6BjH,EAAAA,EAAEkB,KAAK6kB,gBAEhDzsB,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK6kB,aACzChkB,OAAQ/B,EAAAA,EAAE+kB,yBACV7d,IAAK,6BAMvBlH,EAAAA,EAAEkB,KAAKsjB,eAAiBlpB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK8kB,OACrD1sB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,mBAAkB,aAC3C,6CACZtmB,SAAU,GAEV1C,EAAAA,cAAA,OAAK4C,MAAO,CAACwW,OAAQ,qBACjBpZ,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,6BAA6BjH,EAAAA,EAAEkB,KAAK8kB,iBAEhD1sB,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK8kB,cACzCjkB,OAAQ/B,EAAAA,EAAE+kB,yBACV7d,IAAK,6BAOxBlH,EAAAA,EAAEQ,IAAIwb,QAAU,GACb1iB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,uBAAsB,aAChD,4BACXtmB,SAAU,GAEV1C,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,2DAA2DjH,EAAAA,EAAEQ,IAAIwb,UAAUhc,EAAAA,EAAEQ,IAAIwN,QAAU,EAAI,IAAIhO,EAAAA,EAAEQ,IAAIwN,QAAQ+F,aAAe,YAE5Iza,EAAAA,cAAA,OACI6N,IAAK,2DAA2DnH,EAAAA,EAAEQ,IAAIwb,UAAUhc,EAAAA,EAAEQ,IAAIwN,QAAU,EAAI,IAAIhO,EAAAA,EAAEQ,IAAIwN,QAAQ+F,aAAe,SACrIhS,OAAO,KACPD,MAAM,KACNoF,IAAKlH,EAAAA,EAAEC,GAAGsd,gBACVthB,QAASxB,KAAK6nB,WACdpmB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,iBAOrC0D,EAAAA,EAAEQ,IAAI0N,YAAc,GACjB5U,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhmB,QAAUL,GAAWnB,KAAK6nB,WAAW,kBAAiB,aAC3C,gCACXtmB,SAAU,GAEV1C,EAAAA,cAAA,OACIM,UAAU,MACVsC,MAAO,CACH+pB,gBAAiB,iEAAiEjmB,EAAAA,EAAEC,GAAGimB,wBAG3F5sB,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,0DAA0DjH,EAAAA,EAAEC,GAAGgY,cAAcrS,0BAEzFtM,EAAAA,cAAA,OACI6N,IAAK,0DAA0DnH,EAAAA,EAAEC,GAAGgY,cAAcrS,uBAClF7D,OAAQ,GACRD,MAAO,GACPoF,IAAKlH,EAAAA,EAAEC,GAAGkO,eACVlS,QAASxB,KAAK6nB,gBAOjCtiB,EAAAA,EAAEkB,KAAK4jB,eAAepb,KAAIC,GACvBrQ,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhlB,IAAK0M,EAAElQ,GACPwC,QAAUL,GAAWnB,KAAK6nB,WAAW,mBAAmB3Y,EAAElQ,MAAK,aACpD,4CACXuC,SAAU,GAEV1C,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,iDAAiD0C,EAAElQ,kBAE/DH,EAAAA,cAAA,OACI4N,IAAI,qBACJC,IAAK,iDAAiDwC,EAAElQ,eACxDsI,OAAQ,GACRD,MAAM,KACN7F,QAASxB,KAAK6nB,iBAME,IAA/BtiB,EAAAA,EAAEkB,KAAKwM,qBACJ1N,EAAAA,EAAEkB,KAAKilB,kBACoB,IAA3BnmB,EAAAA,EAAEkB,KAAKilB,kBACH7sB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhlB,IAAK,GACLhB,QAAUL,GAAWnB,KAAK6nB,WAAW,sBAAqB,aAC/C,gCACXtmB,SAAU,GAEV1C,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ3L,EAAAA,GACJ,6DAA6D0E,EAAAA,EAAEkB,KAAKilB,iBAAiBvgB,mBAG7FtM,EAAAA,cAAA,OACI6N,IAAK,6DAA6DnH,EAAAA,EAAEkB,KAAKilB,iBAAiBvgB,gBAC1F7D,OAAQ,GACRD,MAAM,KACNoF,IAAI,WACJjL,QAASxB,KAAK6nB,WACdpmB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,iBAOzC7B,KAAK8Q,gBACFjS,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhlB,IAAK,GACLhB,QAAUL,GAAWnB,KAAK6nB,WAAW,uBAAsB,aAChD,0CACXtmB,SAAU,GAEV1C,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,sEAEZ3N,EAAAA,cAAA,OACI6N,IAAK,mEACLpF,OAAQ,GACRD,MAAM,KACNoF,IAAI,qBACJjL,QAASxB,KAAK6nB,gBAM5B3lB,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAWiV,cAAe,IAChD3R,EAAAA,EAAEkB,MACFlB,EAAAA,EAAEkB,KAAKiK,SACc,QAArBnL,EAAAA,EAAEkB,KAAKH,WACc,QAArBf,EAAAA,EAAEkB,KAAKH,YACNf,EAAAA,EAAEkB,KAAKklB,sBACJ9sB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhlB,IAAK,GACLhB,QAAUL,GAAWnB,KAAK6nB,WAAW,2BAA0B,aACpD,qCACXtmB,SAAU,GAEV1C,EAAAA,cAAA,eACK0G,EAAAA,EAAEkB,KAAK2H,cAAgB,GACpBvP,EAAAA,cAAA,UACIkD,KAAK,aAAY,cACL,uEAGnBwD,EAAAA,EAAEkB,KAAK2H,cAAgB,GACpBvP,EAAAA,cAAA,OACI6N,IAAK,oEACLD,IAAI,gBACJjL,QAASxB,KAAK6nB,WACdpmB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,iBAK3B0D,EAAAA,EAAEkB,KAAK2H,eAAiB7I,EAAAA,EAAEkB,KAAK2H,cAAgB,IAC9CvP,EAAAA,cAAA,UACIkD,KAAK,aAAY,cACL,wEAGjBwD,EAAAA,EAAEkB,KAAK2H,eAAiB7I,EAAAA,EAAEkB,KAAK2H,cAAgB,IAC9CvP,EAAAA,cAAA,OACI6N,IAAK,mEACLD,IAAI,gBACJjL,QAASxB,KAAK6nB,WACdpmB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,kBAQjD0D,EAAAA,EAAEC,GAAGwjB,iBACFnqB,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,uBACHC,MAAM,eACN0B,MAAM,EACNe,SAAU,MACVX,MAAOA,IAAOwE,EAAAA,EAAEC,GAAGwjB,iBAAkB,GAErCnqB,EAAAA,cAAC6nB,EAAAA,GAAM,CACH1nB,GAAG,sBACHurB,OAAQvqB,KAAKkpB,eACb/B,cAAe,EACfY,gBAAgB,EAChBpB,YAAY,EACZqB,MAAM,EACNnB,SAAU,CAACC,SAAS,GACpBF,MAAM,EACNqB,WAAW,EACXlB,YAAY,EACZmB,YAAY,EACZd,QAAS,CAACC,EAAAA,GAAUgB,EAAAA,GAAWf,EAAAA,GAAYc,EAAAA,IAAK,uBAC3B,WACrBwD,oBAAoB,GAEY,IAA/BrmB,EAAAA,EAAEkB,KAAKwM,qBACJpU,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAG,cACZH,EAAAA,cAACgtB,EAAAA,EAAa,CACV7D,MAAM,EACN7H,IAAK5a,EAAAA,EAAEQ,IAAIgjB,YAKtBxjB,EAAAA,EAAEQ,IAAIqd,YAAc,GACjBvkB,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAG,uBACZH,EAAAA,cAAA,WAASM,UAAU,yBACfN,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,uDAAuDjH,EAAAA,EAAEC,GAAGsmB,mBAAmB3gB,cAAcoV,QAAQ,OAAQ,aAEzH1hB,EAAAA,cAAA,OACI6N,IAAK,uDAAuDnH,EAAAA,EAAEC,GAAGsmB,mBAAmB3gB,gBACpFsB,IAAKlH,EAAAA,EAAEC,GAAG6N,eACV7R,QAASxB,KAAK6nB,WACdpmB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,iBAOrC0D,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAKqkB,gBACdjsB,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAG,0BACZH,EAAAA,cAAA,WAASM,UAAU,yBACfN,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,4EAEZ3N,EAAAA,cAAA,OACI6N,IAAK,yEACLD,IAAK,6BAA6BlH,EAAAA,EAAEoB,GAAGokB,gDACvCvpB,QAASxB,KAAK6nB,WACdpmB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,kBAOpC0D,EAAAA,EAAEkB,KAAKijB,cAAgB7oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK0jB,MACpDtrB,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAI,kBACbH,EAAAA,cAAA,OAAKM,UAAU,gBAAc,wEAI7BN,EAAAA,cAAA,OAAKM,UAAU,yBACXN,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK0jB,eACzC1oB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,aAEtB4K,IAAK,iCAKnBlH,EAAAA,EAAEkB,KAAKkjB,cAAgB9oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK2jB,MACpDvrB,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAI,kBACbH,EAAAA,cAAA,OAAKM,UAAU,gBAAc,wEAI7BN,EAAAA,cAAA,OAAKM,UAAU,yBACXN,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK2jB,eACzC3oB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,aAEtB4K,IAAK,iCAKnBlH,EAAAA,EAAEkB,KAAK6iB,cAAgBzoB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAKukB,MACpDnsB,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAI,kBACbH,EAAAA,cAAA,OAAKM,UAAU,yBACXN,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAKukB,eACzCvpB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,aAEtB4K,IAAK,iCAKnBlH,EAAAA,EAAEkB,KAAK8iB,cAAgB1oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAKwkB,MACpDpsB,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAI,kBACbH,EAAAA,cAAA,OAAKM,UAAU,yBACXN,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAKwkB,eACzCxpB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,aAEtB4K,IAAK,iCAKnBlH,EAAAA,EAAEkB,KAAK+iB,cAAgB3oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAKykB,MACpDrsB,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAI,kBACbH,EAAAA,cAAA,OAAKM,UAAU,yBACXN,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAKykB,eACzCzpB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,aAEtB4K,IAAK,iCAKnBlH,EAAAA,EAAEkB,KAAKgjB,cAAgB5oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK0kB,MACpDtsB,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAI,kBACbH,EAAAA,cAAA,OAAKM,UAAU,yBACXN,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK0kB,eACzC1pB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,aAEtB4K,IAAK,iCAKnBlH,EAAAA,EAAEkB,KAAKmjB,cAAgB/oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK2kB,MACpDvsB,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAI,kBACbH,EAAAA,cAAA,OAAKM,UAAU,yBACXN,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK2kB,eACzC3pB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,aAEtB4K,IAAK,iCAKnBlH,EAAAA,EAAEkB,KAAKojB,cAAgBhpB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK4kB,MACpDxsB,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAI,kBACbH,EAAAA,cAAA,OAAKM,UAAU,yBACXN,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK4kB,eACzC5pB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,aAEtB4K,IAAK,iCAKnBlH,EAAAA,EAAEkB,KAAKqjB,cAAgBjpB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK6kB,MACpDzsB,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAI,kBACbH,EAAAA,cAAA,OAAKM,UAAU,yBACXN,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK6kB,eACzC7pB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,aAEtB4K,IAAK,iCAKnBlH,EAAAA,EAAEkB,KAAKsjB,eAAiBlpB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK8kB,OACrD1sB,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAI,mBACbH,EAAAA,cAAA,OAAKM,UAAU,yBACXN,EAAAA,cAAA,OACI6N,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK8kB,gBACzC9pB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,aAEtB4K,IAAK,iCAMpBlH,EAAAA,EAAEQ,IAAIwb,QAAU,GACb1iB,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAG,uBACZH,EAAAA,cAAA,WAASM,UAAU,yBACfN,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,6DAA6DjH,EAAAA,EAAEQ,IAAIwb,UAAUhc,EAAAA,EAAEQ,IAAIwN,QAAU,EAAI,IAAIhO,EAAAA,EAAEQ,IAAIwN,QAAQ+F,aAAe,YAE9Iza,EAAAA,cAAA,OACI6N,IAAK,6DAA6DnH,EAAAA,EAAEQ,IAAIwb,UAAUhc,EAAAA,EAAEQ,IAAIwN,QAAU,EAAI,IAAIhO,EAAAA,EAAEQ,IAAIwN,QAAQ+F,aAAe,SACvI7M,IAAKlH,EAAAA,EAAEC,GAAGsd,gBACVthB,QAASxB,KAAK6nB,WACdpmB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,iBAOrC0D,EAAAA,EAAEQ,IAAI0N,YAAc,GACjB5U,EAAAA,cAAC2oB,EAAAA,GAAW,CAACxoB,GAAG,kBACZH,EAAAA,cAAA,OACI4C,MAAO,CACHuc,gBAAiB,IAAIzY,EAAAA,EAAEC,GAAGyY,aAC1B8N,iBAAkB,WAGtBltB,EAAAA,cAAA,WAASM,UAAU,yBACfN,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,0DAA0DjH,EAAAA,EAAEC,GAAGgY,cAAcrS,gCAEzFtM,EAAAA,cAAA,OACI6N,IAAK,0DAA0DnH,EAAAA,EAAEC,GAAGgY,cAAcrS,6BAClF1J,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,aAEtB4K,IAAK,gCACLjL,QAASxB,KAAK6nB,gBAOjCtiB,EAAAA,EAAEkB,KAAK4jB,eAAepb,KAAIC,GACvBrQ,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhlB,IAAK0M,EAAElQ,GACPA,GAAI,mBAAmBkQ,EAAElQ,MAEzBH,EAAAA,cAAA,WAASM,UAAU,yBACfN,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,iDAAiD0C,EAAElQ,mBAE/DH,EAAAA,cAAA,OACI6N,IAAK,iDAAiDwC,EAAElQ,gBACxDyN,IAAI,gBACJhL,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,aAEtBL,QAASxB,KAAK6nB,iBAME,IAA/BtiB,EAAAA,EAAEkB,KAAKwM,qBACJ1N,EAAAA,EAAEkB,KAAKilB,kBACoB,IAA3BnmB,EAAAA,EAAEkB,KAAKilB,kBACH7sB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhlB,IAAK,GACLxD,GAAG,sBAEHH,EAAAA,cAAA,OAAKM,UAAU,yBACXN,EAAAA,cAAA,OACI6N,IAAK,4DAA4DnH,EAAAA,EAAEkB,KAAKulB,iBAAiB7gB,gBACzFsB,IAAI,WACJjL,QAASxB,KAAK6nB,WACdpmB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,YAClB6V,SAAU,WAOjC1X,KAAK8Q,gBACFjS,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhlB,IAAK,GACLxD,GAAG,uBAEHH,EAAAA,cAAA,OAAKM,UAAU,gBAAc,gFAI7BN,EAAAA,cAAA,WAASM,UAAU,yBACfN,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,wEAEZ3N,EAAAA,cAAA,OACI6N,IAAK,qEACLD,IAAI,qBACJjL,QAASxB,KAAK6nB,WACdpmB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,kBAOpCK,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAWiV,cAAe,IAChD3R,EAAAA,EAAEkB,MACFlB,EAAAA,EAAEkB,KAAKiK,SACc,QAArBnL,EAAAA,EAAEkB,KAAKH,WACc,QAArBf,EAAAA,EAAEkB,KAAKH,YACNf,EAAAA,EAAEkB,KAAKklB,sBACJ9sB,EAAAA,cAAC2oB,EAAAA,GAAW,CACRhlB,IAAK,GACLxD,GAAG,2BAEFuG,EAAAA,EAAEkB,KAAK2H,cAAgB,GACpBvP,EAAAA,cAAA,WAASM,UAAU,yBACfN,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,oEAEZ3N,EAAAA,cAAA,OACI6N,IAAK,iEACLD,IAAI,gBACJjL,QAASxB,KAAK6nB,WACdpmB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,kBAK/B0D,EAAAA,EAAEkB,KAAK2H,eAAiB7I,EAAAA,EAAEkB,KAAK2H,cAAgB,IAC9CvP,EAAAA,cAAA,WAASM,UAAU,yBACfN,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ,mEAEZ3N,EAAAA,cAAA,OACI6N,IAAK,gEACLD,IAAI,gBACJjL,QAASxB,KAAK6nB,WACdpmB,MAAO,CACHC,SAA8B,GAApBE,OAAOwI,WACjBzI,UAAgC,GAArBC,OAAOC,mBAYtE,GA5jCYxC,EAAA,CAAXyD,EAAAA,IAAU,8BACCzD,EAAA,CAAXyD,EAAAA,IAAU,iCA0BDzD,EAAA,CAAT4U,EAAAA,IAAQ,gCAwBC5U,EAAA,CAAT4U,EAAAA,IAAQ,4BAsCD5U,EAAA,CAAP0D,EAAAA,IAAM,qCAeP1D,EAAA,CADC0D,EAAAA,IAAM,iCAQP1D,EAAA,CADC0D,EAAAA,IAAM,qCA4BP1D,EAAA,CADC0D,EAAAA,IAAM,iCASG1D,EAAA,CAAT4U,EAAAA,IAAQ,iCAcC5U,EAAA,CAAT4U,EAAAA,IAAQ,mCAjKQuU,EAAQnpB,EAAA,CAD5BC,EAAAA,IACoBkpB,G,qaCNN,IAAMyD,EAAN,cAAoBptB,EAAAA,UAI/B0B,WAAAA,CAAYC,GACRC,MAAMD,GAJE2B,OAAAC,eAAA,a,iDAAgB,IAChBD,OAAAC,eAAA,sB,iDAAyB,IAOrCD,OAAAC,eAAA,sB,gDAAgBO,KAAWL,O,EAAA,K,OAAA,E,EAAA,YAAC,OAAAtC,KAAKuC,aAAa,E,YAAnB,K,kRAHvB8F,EAAAA,EAAAA,IAAerI,KACnB,CAIAU,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,eAChE,W,MACQrH,EAAIwC,SAAS2W,cAAc,UAC9BnZ,EAAEY,KAAO,kBACLZ,EAAE+qB,OAAQ,EACV/qB,EAAEuL,IAAM,0EACb,IAAIyf,EAAIxoB,SAAS8b,qBAAqB,UAAU,GACpC,QAAZ3V,EAAAqiB,EAAEC,kBAAU,IAAAtiB,GAAAA,EAAEuiB,aAAalrB,EAAGgrB,EACjC,CAPD,EAQJ,CAEA7a,kBAAAA,GACStR,KAAK4K,OACN5K,KAAK4K,MAAO,EACZD,SAASC,OAEjB,CAEA9L,MAAAA,GACI,GAAKyG,EAAAA,EAAEqJ,MAIP,OAAKrJ,EAAAA,EAAEQ,IAAI8I,YAsCP,EApCIhQ,EAAAA,cAAA,OAAKG,GAAG,gBACJH,EAAAA,cAAA,OACIG,GAAG,qBACHG,UAAU,4BACV2C,KAAK,SACLP,SAAU,EAAC,iBACI,WAAU,iBACV,cAAa,iBACb,EAAK,gBACN,aACdyQ,UAAW7Q,GAAKnB,KAAKQ,MAAMyR,iBAAiB9Q,EAAG,uBAAqB,oBAIxEtC,EAAAA,cAAA,OACIG,GAAG,aACHG,UAAW,iBAEXN,EAAAA,cAAA,OACIM,UAAU,0BACVH,GAAG,WAAU,kBACIuG,EAAAA,EAAEkB,KAAKH,UAAS,YACtBf,EAAAA,EAAEC,GAAG0f,cAAa,gBACf,IAAG,aACL3f,EAAAA,EAAEC,GAAGC,MAAK,WACZF,EAAAA,EAAEoB,GAAG2lB,IAAG,iBAEd/mB,EAAAA,EAAEkB,KAAKwM,oBAAsB,EACvB,kCAAkC1N,EAAAA,EAAEkB,KAAKH,wBACzC,GAAGf,EAAAA,EAAEkB,KAAKikB,iBAS5C,GA1EYrrB,EAAA,CAAXyD,EAAAA,IAAU,2BACCzD,EAAA,CAAXyD,EAAAA,IAAU,oCAFMmpB,EAAK5sB,EAAA,CADzBC,EAAAA,IACoB2sB,G,+FCVrB,IAAIM,EAAgC,GACpCA,EAAKlsB,KAAK,CAACrB,GAAI,EAAGqI,MAAO,IAAKC,OAAQ,KACtCilB,EAAKlsB,KAAK,CAACrB,GAAI,EAAGqI,MAAO,GAAMC,OAAQ,KACvCilB,EAAKlsB,KAAK,CAACrB,GAAI,EAAGqI,MAAO,GAAMC,OAAQ,KACvCilB,EAAKlsB,KAAK,CAACrB,GAAI,EAAGqI,MAAO,GAAMC,OAAQ,KACvCilB,EAAKlsB,KAAK,CAACrB,GAAI,EAAGqI,MAAO,GAAMC,OAAQ,KACvCilB,EAAKlsB,KAAK,CAACrB,GAAI,EAAGqI,MAAO,GAAMC,OAAQ,KACvCilB,EAAKlsB,KAAK,CAACrB,GAAI,EAAGqI,MAAO,GAAMC,OAAQ,KAChC,MAAMJ,EAA4CqlB,EASzD,IAAIC,EAAiC,GACrCA,EAAMnsB,KAAK,CAACosB,mBAAoB,EAAGC,MAAO,EAAKC,OAAQ,GAAMC,OAAO,EAAOC,eAAe,IAC1FL,EAAMnsB,KAAK,CAACosB,mBAAoB,EAAGC,MAAO,IAAKC,OAAQ,KAAMC,OAAO,EAAOC,eAAe,IAC1FL,EAAMnsB,KAAK,CAACosB,mBAAoB,EAAGC,MAAO,GAAMC,OAAQ,GAAMC,OAAO,EAAOC,eAAe,IAC3FL,EAAMnsB,KAAK,CAACosB,mBAAoB,EAAGC,MAAO,GAAMC,OAAQ,GAAMC,OAAO,EAAOC,eAAe,IAC3FL,EAAMnsB,KAAK,CAACosB,mBAAoB,EAAGC,MAAO,GAAMC,OAAQ,GAAMC,OAAO,EAAOC,eAAe,IAC3FL,EAAMnsB,KAAK,CAACosB,mBAAoB,EAAGC,MAAO,GAAMC,OAAQ,GAAMC,OAAO,EAAOC,eAAe,IAC3FL,EAAMnsB,KAAK,CAACosB,mBAAoB,EAAGC,MAAO,GAAMC,OAAQ,GAAMC,OAAO,EAAOC,eAAe,IAC3FL,EAAMnsB,KAAK,CAACosB,mBAAoB,GAAIC,MAAO,GAAMC,OAAQ,GAAMC,OAAO,EAAOC,eAAe,IAC5FL,EAAMnsB,KAAK,CAACosB,mBAAoB,GAAIC,MAAO,GAAMC,OAAQ,GAAMC,OAAO,EAAOC,eAAe,IAC5FL,EAAMnsB,KAAK,CAACosB,mBAAoB,GAAIC,MAAO,IAAOC,OAAQ,IAAOC,OAAO,EAAMC,eAAe,IAC7FL,EAAMnsB,KAAK,CAACosB,mBAAoB,GAAIC,MAAO,EAAKC,OAAQ,IAAKC,OAAO,EAAOC,eAAe,IAC1FL,EAAMnsB,KAAK,CAACosB,mBAAoB,GAAIC,MAAO,EAAKC,OAAQ,EAAKC,OAAO,EAAOC,eAAe,IACnF,MAAMC,EAAgDN,C,8rBCS7D,IAAMxoB,EAAN,cAA+BnF,EAAAA,UAG3B0B,WAAAA,CAAYC,GACRC,MAAMD,GAHE2B,OAAAC,eAAA,iB,iDAAoB,IAI5BmD,EAAAA,EAAEyE,UAAW,EACbhK,KAAK+sB,UAAY/sB,KAAK+sB,UAAU3kB,KAAKpI,MACrCA,KAAKgJ,WAAaC,UAAUC,OAC5Bb,EAAAA,EAAAA,IAAerI,MACf4B,OAAOorB,cAAgBhtB,IAC3B,CAGA+sB,SAAAA,CAAUE,EAAcC,IACpB/nB,EAAAA,EAAAA,KAAY,KACRvD,OAAOa,GAAGwqB,GAAQC,EACbhrB,EAAAA,GAAYO,KACbP,EAAAA,GAAYO,GAAK,CAAC,GAEtBP,EAAAA,GAAYO,GAAGwqB,GAAQC,EACvB5kB,EAAAA,EAAqBzI,SAASyI,EAAAA,EAAkBC,GAAI,MACpDvI,KAAKuC,aAAa,GAE1B,CAEA7B,iBAAAA,GACkBgC,MAAV6C,EAAAA,EAAEkB,MACFlB,EAAAA,EAAEqF,MAEV,CAEAqH,gBAAAA,CAAiB9Q,EAAwCnC,GACrD,GAAc,UAAVmC,EAAEqB,IAAiB,CACnB,MAAM2qB,EAASxpB,SAASG,eAAe9E,GAEnCmuB,GACAA,EAAOvI,OAEf,CACJ,CAEA9lB,MAAAA,GACI,GAAKyG,EAAAA,EAAEoB,GAEP,OACI9H,EAAAA,cAAA,WACK0G,EAAAA,EAAEC,GAAG6S,iBAAmBxZ,EAAAA,cAACuuB,EAAAA,EAAiB,OACzClrB,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IACnD/J,EAAAA,cAAA,WACIA,EAAAA,cAAC6lB,EAAAA,EAAa,OAGtB7lB,EAAAA,cAAA,OAAKG,GAAG,gBACJH,EAAAA,cAAA,OACIG,GAAG,SACHG,UAAW,GAAG+C,EAAAA,GAAY8gB,eAAe/gB,EAAAA,EAAW2G,qBAEpD/J,EAAAA,cAACgtB,EAAAA,EAAa,CACV7D,MAAM,EACN7H,IAAK5a,EAAAA,EAAEQ,IAAIoa,OAGb5a,EAAAA,EAAEC,GAAG0C,oBACHrJ,EAAAA,cAAA,OAAKG,GAAG,eACJH,EAAAA,cAAC2pB,EAAAA,EAAQ,OAGhBjjB,EAAAA,EAAEC,GAAG6nB,wBACD9nB,EAAAA,EAAEC,GAAG0C,qBACL3C,EAAAA,EAAEQ,IAAI8I,QACPjN,OAAOwI,WAAa,MACpB7E,EAAAA,EAAEkB,MACFlB,EAAAA,EAAEkB,KAAKqhB,aACPviB,EAAAA,EAAEkB,KAAKqhB,YAAY3gB,QAAU,GACzBtI,EAAAA,cAAA,OAAKM,UAAU,oBACXN,EAAAA,cAAA,MAAI4C,MAAO,CAACsT,aAAc,YAC1BlW,EAAAA,cAAA,OACI4C,MAAO,CACHwT,SAAU,WACVjG,WAAY,IACZse,cAAe,cAClB,mBAILzuB,EAAAA,cAAA,6DACAA,EAAAA,cAAC6oB,EAAAA,EAAgB,SAI/BniB,EAAAA,EAAEC,GAAG0C,oBACHrJ,EAAAA,cAAA,OAAKG,GAAG,QACHkD,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAW2G,iBAAkB,IAClD/J,EAAAA,cAAA,WACIA,EAAAA,cAAC6lB,EAAAA,EAAa,OAGrBnf,EAAAA,EAAEC,GAAG+nB,OACF1uB,EAAAA,cAAA,OAAKM,UAAU,2BACXN,EAAAA,cAAA,OAAKM,UAAU,KAAG,uBACjBoG,EAAAA,EAAEC,GAAGgoB,QAGb5rB,OAAOwI,WAAa,MAAQ7E,EAAAA,EAAEC,GAAG8f,cAC9BzmB,EAAAA,cAAA,OACI4C,MAAO,CACHsN,QAAS,OACTiG,eAAgB,gBAChB+C,WAAY,SACZV,UAAW,OACXhN,SAAU,aAGdxL,EAAAA,cAAA,OAAK4C,MAAO,CAAC4I,SAAU,WAAYC,IAAK,EAAGmjB,MAAO,IAC7CztB,KAAKgJ,UAAYzD,EAAAA,EAAEyE,UAChBnL,EAAAA,cAAA,KACIM,UAAU,sBACVqC,QAASgJ,EAAAA,EAAEtB,MACXpH,KAAK,SAAQ,aACF,WAIvBjD,EAAAA,cAAA,WACIA,EAAAA,cAAA,QAAMM,UAAW,oBACZ0B,EAAAA,GAAc0E,EAAAA,EAAEC,GAAGC,UAKpC5G,EAAAA,cAACqV,EAAAA,EAAO,MACP3O,EAAAA,EAAEkB,MACClB,EAAAA,EAAEC,GAAGkoB,YAAYze,KAAI,CAACC,EAAGjI,IACrBpI,EAAAA,cAAC0O,EAAAA,EAAQ,CACL/K,IAAKyE,EACLyH,WAAYQ,MAIvB3J,EAAAA,EAAEkB,OACElB,EAAAA,EAAEkB,KAAKsJ,sBACJxK,EAAAA,EAAEkB,KAAKwJ,sBACP1K,EAAAA,EAAEkB,KAAK0J,uBAAyBtR,EAAAA,cAAC0Q,EAAAA,EAAqB,MAG7DhK,EAAAA,EAAEkB,MACClB,EAAAA,EAAEoB,IACmB,IAArBpB,EAAAA,EAAEoB,GAAGoM,cACJxN,EAAAA,EAAEkB,KAAKknB,cAAgBpoB,EAAAA,EAAEkB,KAAKqB,eAAiBjJ,EAAAA,cAACqZ,EAAAA,EAAe,MACnE3S,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAK4c,WAAa9d,EAAAA,EAAEkB,KAAK4c,UAAUlc,OAAS,GACrDtI,EAAAA,cAACskB,EAAAA,EAAQ,MAEbtkB,EAAAA,cAAC8hB,EAAAA,EAAG,MACHpb,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAK4W,WAAa9X,EAAAA,EAAEkB,KAAK4W,UAAUlW,OAAS,GACrDtI,EAAAA,cAAC4d,EAAAA,EAAQ,MAEZlX,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAKkQ,sBAAwB,GAAK9X,EAAAA,cAAC2W,EAAAA,EAAa,MAC5DjQ,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAK6I,OAAS/J,EAAAA,EAAEkB,KAAK6I,MAAMnI,OAAS,GAAKtI,EAAAA,cAACyf,EAAAA,EAAI,MAC1D/Y,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEoB,IAA2B,IAArBpB,EAAAA,EAAEoB,GAAGoM,aAAqBlU,EAAAA,cAACkY,EAAAA,EAAK,MAElDxR,EAAAA,EAAEkB,MACClB,EAAAA,EAAEoB,IACFpB,EAAAA,EAAEoB,GAAGinB,qBACLroB,EAAAA,EAAEoB,GAAGinB,oBAAoBzmB,OAAS,GAC9BtI,EAAAA,cAAA,OAAKM,UAAU,YACXN,EAAAA,cAAA,OACIqT,wBAAyB,CACrBC,OAAQ5M,EAAAA,EAAEoB,GAAGinB,wBAMhCroB,EAAAA,EAAEC,GAAGiS,gBAAkB5Y,EAAAA,cAAC0Y,EAAAA,EAAQ,MAChChS,EAAAA,EAAEQ,IAAI8nB,WAAatoB,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEoB,IAA2B,IAArBpB,EAAAA,EAAEoB,GAAGoM,aACvClU,EAAAA,cAACinB,EAAAA,EAAY,MAGhBvgB,EAAAA,EAAEC,GAAG0E,UAAYrL,EAAAA,cAACgK,EAAAA,EAAG,MAErBtD,EAAAA,EAAEyE,UACC2b,aAAamI,UACbnI,aAAaoI,OACbpI,aAAaoI,MAAM5mB,OAAS,KAExB5B,EAAAA,EAAEkB,MACFlB,EAAAA,EAAEoB,IACFpB,EAAAA,EAAEoB,GAAGinB,qBACLroB,EAAAA,EAAEoB,GAAGinB,oBAAoBzmB,OAAS,IAElCtI,EAAAA,cAAA,WACIA,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,mBACHC,MAAM,oBAENJ,EAAAA,cAAA,WACIA,EAAAA,cAAA,UACIA,EAAAA,cAAA,UACIA,EAAAA,cAAA,OACIM,UAAU,KACV+S,wBAAyB,CACrBC,OAAQwT,aAAaoI,WAKrClvB,EAAAA,cAAA,WACyB,KAAxB8mB,aAAaqI,QACVnvB,EAAAA,cAAA,OACIqT,wBAAyB,CACrBC,OAAQwT,aAAaqI,UAIR,KAAxBrI,aAAaqI,QAAiBnvB,EAAAA,cAAA,WAE/BA,EAAAA,cAAA,OACIqT,wBAAyB,CACrBC,OAAQwT,aAAasI,YAKrCpvB,EAAAA,cAAA,OAAKM,UAAU,mCACXN,EAAAA,cAAA,OACI4C,MAAO,CAACsN,QAAS,UACjBmD,wBAAyB,CACrBC,OAAQwT,aAAaoI,SAG7BlvB,EAAAA,cAAA,QACIM,UAAU,6BACVqC,QAASA,IAAMX,EAAAA,GAAW,oBAAmB,aACjC,+CACZY,MAAO,CAACkL,YAAa,EAAGkL,MAAO,eAMlDqW,aACG3oB,EAAAA,EAAEyE,UACFzE,EAAAA,EAAEoB,IACmB,IAArBpB,EAAAA,EAAEoB,GAAGoM,aACLxN,EAAAA,EAAE6J,kBACEvQ,EAAAA,cAAA,OAAKM,UAAU,uBACXN,EAAAA,cAAA,OAAKM,UAAU,aACXN,EAAAA,cAAA,KAAGM,UAAU,yBACbN,EAAAA,cAAA,sCAKd0G,EAAAA,EAAEQ,IAAI8I,QAAUjN,OAAOwI,YAAc,MACnCvL,EAAAA,cAAA,OACIM,UAAU,mBACVsC,MAAO,CAAC4V,UAAW,YAEnBxY,EAAAA,cAAA,OACI4C,MAAO,CACHwT,SAAU,WACVjG,WAAY,IACZse,cAAe,cAClB,mBAILzuB,EAAAA,cAAA,6DACAA,EAAAA,cAAC6oB,EAAAA,EAAgB,CAACyG,WAAW,KAIpC5oB,EAAAA,EAAEoB,IACsB,IAArBpB,EAAAA,EAAEoB,GAAGoM,aACLxN,EAAAA,EAAEyE,YACAzE,EAAAA,EAAEoB,GAAGinB,qBACHroB,EAAAA,EAAEoB,GAAGinB,oBAAoBzmB,OAAS,IAClCtI,EAAAA,cAAA,OAAKM,UAAU,eACXN,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,eACHC,MAAM,qBAENJ,EAAAA,cAAA,OAAKM,UAAU,aACXN,EAAAA,cAAA,mFAEoC0G,EAAAA,EAAEoB,GAAGynB,UAAS,+GAGhC7oB,EAAAA,EAAEoB,GAAGynB,UAAS,2DAG/B7oB,EAAAA,EAAEoB,GAAG0nB,OAAS9oB,EAAAA,EAAEoB,GAAG0nB,MAAMlnB,OAAS,GAC/BtI,EAAAA,cAAA,SACIA,EAAAA,cAAA,yCAGP0G,EAAAA,EAAEoB,GAAG0nB,OAAS9oB,EAAAA,EAAEoB,GAAG0nB,MAAMlnB,OAAS,GAC/BtI,EAAAA,cAAA,mBAAW0G,EAAAA,EAAEoB,GAAG0nB,OAEnB9oB,EAAAA,EAAEoB,GAAG2nB,KAAO/oB,EAAAA,EAAEoB,GAAG2nB,IAAInnB,OAAS,GAC3BtI,EAAAA,cAAA,iBAAS0G,EAAAA,EAAEoB,GAAG2nB,KAEjB/oB,EAAAA,EAAEoB,GAAG4nB,UAAYhpB,EAAAA,EAAEoB,GAAG4nB,SAASpnB,OAAS,GACrCtI,EAAAA,cAAA,SACIA,EAAAA,cAAA,+BAGP0G,EAAAA,EAAEoB,GAAG4nB,UAAYhpB,EAAAA,EAAEoB,GAAG4nB,SAASpnB,OAAS,GACrCtI,EAAAA,cAAA,SAAI0G,EAAAA,EAAEoB,GAAG4nB,UAEZhpB,EAAAA,EAAEoB,GAAG6nB,UAAYjpB,EAAAA,EAAEoB,GAAG6nB,SAASrnB,OAAS,GACrCtI,EAAAA,cAAA,SAAI0G,EAAAA,EAAEoB,GAAG6nB,UAEZjpB,EAAAA,EAAEoB,GAAG8nB,WAAalpB,EAAAA,EAAEoB,GAAG8nB,UAAUtnB,OAAS,GACvCtI,EAAAA,cAAA,SACIA,EAAAA,cAAA,6CACsC,IAClCA,EAAAA,cAAA,KAAGK,KAAMqG,EAAAA,EAAEoB,GAAG8nB,WACTlpB,EAAAA,EAAEoB,GAAGynB,eAO9BvvB,EAAAA,cAAA,OACIM,UAAW,uBACXqC,QAASA,IAAMX,EAAAA,GAAW,gBAAe,aAC9B,cACXiB,KAAK,SACLP,SAAU,GAAC,wBAQlCgE,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAKkB,OAASpC,EAAAA,EAAEC,GAAG0C,oBAC5BrJ,EAAAA,cAAA,OAAKG,GAAG,QACJH,EAAAA,cAAC4L,EAAAA,EAAU,SAIrBlF,EAAAA,EAAEC,GAAG0C,oBACHrJ,EAAAA,cAAA,OACI4C,MAAO,CAAC4V,UAAW,QACnBrY,GAAG,iBAEHH,EAAAA,cAACwR,EAAAA,EAAQ,CAAC4B,iBAAkBjS,KAAKiS,mBAChC1M,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAKiK,SACd7R,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACIG,GAAG,iCACHG,UAAU,4BAA2B,iBACtB,WAAU,iBACV,wBAAuB,iBACvB,EAAK,gBACN,uBACd2C,KAAK,SACLkQ,UAAW7Q,IACO,UAAVA,EAAEqB,MACFkC,QAAQ6B,IAAI,QAEZ5C,SACKG,eAAe,kCACf8gB,QACT,EAEJrjB,SAAU,GAAC,kCAIf1C,EAAAA,cAAA,OACIG,GAAG,uBACHG,UAAU,gBAAc,iKAIsB,IAC7CoG,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAK6L,YAAc/M,EAAAA,EAAEkB,KAAKiM,eACnC7T,EAAAA,cAAA,mEACyD,IACrDA,EAAAA,cAAC+T,EAAAA,EAAc,MAAG,mGAQtC/T,EAAAA,cAAA,WACIA,EAAAA,cAAA,OACIG,GAAG,0BACHG,UAAU,4BAA2B,iBACtB,WAAU,iBACV,sBAAqB,iBACrB,EAAK,gBACN,qBACd2C,KAAK,SACLP,SAAU,EACVyQ,UAAW7Q,GAAKnB,KAAKiS,iBAAiB9Q,EAAG,4BAElB,IAAtBqR,SAASD,SACJ,wBACA,iBAEV1T,EAAAA,cAAA,OACIG,GAAG,qBACHG,UAAU,gBAETqT,SAASkc,kBACV7vB,EAAAA,cAAA,OACIM,UAAU,yBACVqC,QAASA,IAAMX,EAAAA,GAAW,wBAAsB,0CAO3D,EAEA0E,EAAAA,EAAEC,GAAG2f,eAAiBtmB,EAAAA,cAACotB,EAAAA,EAAK,CAACha,iBAAkBjS,KAAKiS,mBAIpD1M,EAAAA,EAAEkB,OAASlB,EAAAA,EAAEkB,KAAKkB,OACf9I,EAAAA,cAAA,OACIM,UAAU,MACVH,GAAG,YAEHH,EAAAA,cAAA,OAAKM,UAAU,oBACVoG,EAAAA,EAAEoB,IAAoB,KAAdpB,EAAAA,EAAEoB,GAAGgoB,MAAqC,KAAtBppB,EAAAA,EAAEoB,GAAGioB,cAC9B/vB,EAAAA,cAAA,OACIqT,wBAAyB,CACrBC,OAAQ,OAAO5M,EAAAA,EAAEoB,GAAGgoB,YAAYppB,EAAAA,EAAEoB,GAAGioB,kBAIhDrpB,EAAAA,EAAEoB,IAAoB,KAAdpB,EAAAA,EAAEoB,GAAGkoB,MAAqC,KAAtBtpB,EAAAA,EAAEoB,GAAGmoB,cAC9BjwB,EAAAA,cAAA,OACIqT,wBAAyB,CACrBC,OAAQ,OAAO5M,EAAAA,EAAEoB,GAAGkoB,YAAYtpB,EAAAA,EAAEoB,GAAGmoB,kBAIhDvpB,EAAAA,EAAEoB,IAAoB,KAAdpB,EAAAA,EAAEoB,GAAGooB,MAAqC,KAAtBxpB,EAAAA,EAAEoB,GAAGqoB,cAC9BnwB,EAAAA,cAAA,OACIqT,wBAAyB,CACrBC,OAAQ,OAAO5M,EAAAA,EAAEoB,GAAGooB,YAAYxpB,EAAAA,EAAEoB,GAAGqoB,kBAIhDzpB,EAAAA,EAAEoB,IAAoB,KAAdpB,EAAAA,EAAEoB,GAAGsoB,MAAqC,KAAtB1pB,EAAAA,EAAEoB,GAAGuoB,cAC9BrwB,EAAAA,cAAA,OACIqT,wBAAyB,CACrBC,OAAQ,OAAO5M,EAAAA,EAAEoB,GAAGsoB,YAAY1pB,EAAAA,EAAEoB,GAAGuoB,qBAUrErwB,EAAAA,cAACE,EAAAA,EAAW,CACRC,GAAG,0BACHC,MAAM,yBAENJ,EAAAA,cAAA,OAAKM,UAAU,aACXN,EAAAA,cAAA,gFACAA,EAAAA,cAAA,OAAKM,UAAU,QACXN,EAAAA,cAAA,QAAM4C,MAAO,CAACmL,aAAc,IACxB/N,EAAAA,cAAA,KAAGM,UAAU,0BACV,6HAMnBN,EAAAA,cAACD,EAAAA,EAAiB,MAG9B,GApeYS,EAAA,CAAXyD,EAAAA,IAAU,+BAYXzD,EAAA,CADC0D,EAAAA,IAAM,8BAZLiB,EAAgB3E,EAAA,CADrBC,EAAAA,IACK0E,GAueN,K,wEC3gBcwG,E,wCAAd,SAAcA,GACV,IAAY2kB,EAUAC,GAVZ,SAAYD,GACRA,EAAAA,EAAA,eACAA,EAAAA,EAAA,iCACAA,EAAAA,EAAA,qCACAA,EAAAA,EAAA,iCACAA,EAAAA,EAAA,qCACAA,EAAAA,EAAA,iCACAA,EAAAA,EAAA,mCACAA,EAAAA,EAAA,kCACH,CATD,CAAYA,EAAA3kB,EAAA2kB,0BAAA3kB,EAAA2kB,wBAAuB,KAUnC,SAAYC,GACRA,EAAAA,EAAA,eACAA,EAAAA,EAAA,qCACAA,EAAAA,EAAA,qCACAA,EAAAA,EAAA,mBACAA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,6BACAA,EAAAA,EAAA,iCACAA,EAAAA,EAAA,+BACAA,EAAAA,EAAA,iBACAA,EAAAA,EAAA,mBACAA,EAAAA,EAAA,8BACAA,EAAAA,EAAA,sBACAA,EAAAA,EAAA,qBACH,CAdD,CAAYA,EAAA5kB,EAAA4kB,sBAAA5kB,EAAA4kB,oBAAmB,KAgBlB5kB,EAAA6kB,qBAAoD,CAC7D,CACIC,cAAe,EACfC,UAAW,MACXC,YAAa,EACbC,UAAW,EACXC,SAAU,EACVC,WAAY,KACZC,aAAc,KACdC,gBAAiB,KACjBC,eAAgB,KAChBC,sBAAuB,KACvBC,iBAAkB,KAClBC,aAAc,MACdC,iBAAkB,MAClBC,gBAAiB,IACjBC,UAAW,MACXC,aAAc,KACdC,YAAa,OAEjB,CACIhB,cAAe,EACfC,UAAW,MACXC,YAAa,EACbC,UAAW,EACXC,SAAU,EACVC,WAAY,MACZC,aAAc,IACdC,gBAAiB,KACjBC,eAAgB,MAChBC,sBAAuB,KACvBC,iBAAkB,KAClBC,aAAc,MACdC,iBAAkB,MAClBC,gBAAiB,IACjBC,UAAW,MACXC,aAAc,KACdC,YAAa,OAEjB,CACIhB,cAAe,EACfC,UAAW,MACXC,YAAa,EACbC,UAAW,EACXC,SAAU,EACVC,WAAY,MACZC,aAAc,IACdC,gBAAiB,KACjBC,eAAgB,MAChBC,sBAAuB,KACvBC,iBAAkB,KAClBC,aAAc,MACdC,iBAAkB,MAClBC,gBAAiB,MACjBC,UAAW,MACXC,aAAc,KACdC,YAAa,OAEjB,CACIhB,cAAe,EACfC,UAAW,MACXC,YAAa,EACbC,UAAW,EACXC,SAAU,GACVC,WAAY,MACZC,aAAc,KACdC,gBAAiB,KACjBC,eAAgB,MAChBC,sBAAuB,KACvBC,iBAAkB,KAClBC,aAAc,MACdC,iBAAkB,MAClBC,gBAAiB,MACjBC,UAAW,MACXC,aAAc,MACdC,YAAa,OAEjB,CACIhB,cAAe,EACfC,UAAW,OACXC,YAAa,EACbC,UAAW,IACXC,SAAU,GACVC,WAAY,MACZC,aAAc,IACdC,gBAAiB,KACjBC,eAAgB,OAChBC,sBAAuB,KACvBC,iBAAkB,KAClBC,aAAc,OACdC,iBAAkB,OAClBC,gBAAiB,MACjBC,UAAW,IACXC,aAAc,MACdC,YAAa,OAEjB,CACIhB,cAAe,EACfC,UAAW,OACXC,YAAa,EACbC,UAAW,GACXC,SAAU,GACVC,WAAY,MACZC,aAAc,IACdC,gBAAiB,KACjBC,eAAgB,OAChBC,sBAAuB,KACvBC,iBAAkB,KAClBC,aAAc,OACdC,iBAAkB,OAClBC,gBAAiB,MACjBC,UAAW,IACXC,aAAc,MACdC,YAAa,OAEjB,CACIhB,cAAe,EACfC,UAAW,OACXC,YAAa,EACbC,UAAW,GACXC,SAAU,GACVC,WAAY,MACZC,aAAc,IACdC,gBAAiB,KACjBC,eAAgB,OAChBC,sBAAuB,EACvBC,iBAAkB,IAClBC,aAAc,MACdC,iBAAkB,MAClBC,gBAAiB,OACjBC,UAAW,MACXC,aAAc,KACdC,YAAa,OAEjB,CACIhB,cAAe,EACfC,UAAW,OACXC,YAAa,EACbC,UAAW,GACXC,SAAU,GACVC,WAAY,MACZC,aAAc,IACdC,gBAAiB,KACjBC,eAAgB,OAChBC,sBAAuB,EACvBC,iBAAkB,IAClBC,aAAc,MACdC,iBAAkB,MAClBC,gBAAiB,KACjBC,UAAW,IACXC,aAAc,KACdC,YAAa,OAEjB,CACIhB,cAAe,EACfC,UAAW,OACXC,YAAa,EACbC,UAAW,GACXC,SAAU,GACVC,WAAY,MACZC,aAAc,IACdC,gBAAiB,KACjBC,eAAgB,OAChBC,sBAAuB,EACvBC,iBAAkB,IAClBC,aAAc,MACdC,iBAAkB,MAClBC,gBAAiB,EACjBC,UAAW,IACXC,aAAc,KACdC,YAAa,OAEjB,CACIhB,cAAe,GACfC,UAAW,OACXC,YAAa,EACbC,UAAW,GACXC,SAAU,GACVC,WAAY,MACZC,aAAc,IACdC,gBAAiB,KACjBC,eAAgB,OAChBC,sBAAuB,EACvBC,iBAAkB,IAClBC,aAAc,MACdC,iBAAkB,MAClBC,gBAAiB,KACjBC,UAAW,IACXC,aAAc,KACdC,YAAa,OAEjB,CACIhB,cAAe,GACfC,UAAW,OACXC,YAAa,EACbC,UAAW,GACXC,SAAU,GACVC,WAAY,MACZC,aAAc,IACdC,gBAAiB,KACjBC,eAAgB,OAChBC,sBAAuB,EACvBC,iBAAkB,IAClBC,aAAc,MACdC,iBAAkB,MAClBC,gBAAiB,KACjBC,UAAW,IACXC,aAAc,KACdC,YAAa,OAEjB,CACIhB,cAAe,GACfC,UAAW,OACXC,YAAa,EACbC,UAAW,GACXC,SAAU,GACVC,WAAY,MACZC,aAAc,IACdC,gBAAiB,KACjBC,eAAgB,OAChBC,sBAAuB,EACvBC,iBAAkB,IAClBC,aAAc,MACdC,iBAAkB,MAClBC,gBAAiB,KACjBC,UAAW,IACXC,aAAc,KACdC,YAAa,QAIR9lB,EAAA+lB,0BAAb,MAAAhwB,WAAAA,GACW4B,OAAAC,eAAA,sB,gDAAwB,IACxBD,OAAAC,eAAA,kB,yDACAD,OAAAC,eAAA,oB,gDAAsB,IACtBD,OAAAC,eAAA,kB,gDAAoB,IACpBD,OAAAC,eAAA,iB,gDAAmB,IACnBD,OAAAC,eAAA,mB,yDACAD,OAAAC,eAAA,qB,yDACAD,OAAAC,eAAA,wB,yDACAD,OAAAC,eAAA,uB,yDACAD,OAAAC,eAAA,8B,yDACAD,OAAAC,eAAA,yB,yDACAD,OAAAC,eAAA,qB,yDACAD,OAAAC,eAAA,yB,gDAA2B,IAC3BD,OAAAC,eAAA,wB,gDAA0B,IAC1BD,OAAAC,eAAA,kB,gDAAoB,IACpBD,OAAAC,eAAA,qB,gDAAuB,IACvBD,OAAAC,eAAA,oB,gDAAsB,GACjC,GAEA,MAAaouB,GACKruB,OAAAC,eAAAouB,EAAA,gB,gDAAuB,WACvBruB,OAAAC,eAAAouB,EAAA,mB,gDAA0B,OAC1BruB,OAAAC,eAAAouB,EAAA,mB,gDAA0B,KAC1BruB,OAAAC,eAAAouB,EAAA,oB,gDAA2B,MAC3BruB,OAAAC,eAAAouB,EAAA,sB,gDAA6B,MAC7BruB,OAAAC,eAAAouB,EAAA,2B,gDAAkC,QAClCruB,OAAAC,eAAAouB,EAAA,mB,gDAA0B,OAC1BruB,OAAAC,eAAAouB,EAAA,uB,gDAA8B,QAC9BruB,OAAAC,eAAAouB,EAAA,2B,gDAAkC,QAClCruB,OAAAC,eAAAouB,EAAA,kB,gDAAyB,IACzBruB,OAAAC,eAAAouB,EAAA,mB,gDAA0B,IAC1BruB,OAAAC,eAAAouB,EAAA,iB,gDAAwB,OACxBruB,OAAAC,eAAAouB,EAAA,uB,gDAA8B,KAC9BruB,OAAAC,eAAAouB,EAAA,wB,gDAA+B,QAC/BruB,OAAAC,eAAAouB,EAAA,wB,gDAA+B,MAC/BruB,OAAAC,eAAAouB,EAAA,yB,gDAAgC,MAChCruB,OAAAC,eAAAouB,EAAA,mB,gDAA0B,MAC1BruB,OAAAC,eAAAouB,EAAA,2B,gDAAkC,QAClCruB,OAAAC,eAAAouB,EAAA,qB,gDAA4B,MAC5BruB,OAAAC,eAAAouB,EAAA,sB,gDAA6B,IApBlChmB,EAAAgmB,WAAUA,EAuBVhmB,EAAAimB,0BAAb,MAAAlwB,WAAAA,GACW4B,OAAAC,eAAA,Y,yDACAD,OAAAC,eAAA,qB,iDAAwB,IACxBD,OAAAC,eAAA,4B,iDAA+B,IAC/BD,OAAAC,eAAA,wB,gDAA0B,IAC1BD,OAAAC,eAAA,yB,gDAA2B,MAC3BD,OAAAC,eAAA,qB,iDAAwB,IACxBD,OAAAC,eAAA,gC,iDAAmC,IACnCD,OAAAC,eAAA,gB,gDAAkB,IAClBD,OAAAC,eAAA,c,yDACAD,OAAAC,eAAA,2B,gDAA6B,IAC7BD,OAAAC,eAAA,4B,gDAA8B,IAC9BD,OAAAC,eAAA,mB,gDAAqB,WACrBD,OAAAC,eAAA,0B,yDACAD,OAAAC,eAAA,6B,yDACAD,OAAAC,eAAA,qB,gDAAuB,IACvBD,OAAAC,eAAA,yB,gDAA2B,IAC3BD,OAAAC,eAAA,wB,gDAA0B,IAC1BD,OAAAC,eAAA,0B,yDACAD,OAAAC,eAAA,iC,gDAAmC,IACnCD,OAAAC,eAAA,kC,gDAAoC,IACpCD,OAAAC,eAAA,oB,gDAAsB,IACtBD,OAAAC,eAAA,sB,yDACAD,OAAAC,eAAA,uB,yDACAD,OAAAC,eAAA,wB,gDAA0B,IAC1BD,OAAAC,eAAA,uB,gDAAyB,IACzBD,OAAAC,eAAA,mB,gDAAqB,IACrBD,OAAAC,eAAA,yB,gDAA2B,IAC3BD,OAAAC,eAAA,wB,gDAA0B,IAC1BD,OAAAC,eAAA,yB,gDAA2B,IAC3BD,OAAAC,eAAA,wB,gDAA0B,IAC1BD,OAAAC,eAAA,a,yDACAD,OAAAC,eAAA,a,yDACAD,OAAAC,eAAA,a,yDACAD,OAAAC,eAAA,0B,yDACAD,OAAAC,eAAA,yB,iDAA4B,IAC5BD,OAAAC,eAAA,e,yDACAD,OAAAC,eAAA,8B,iDAAiC,IACjCD,OAAAC,eAAA,yB,gDAA2B,IAC3BD,OAAAC,eAAA,qB,yDACAD,OAAAC,eAAA,yB,gDAA2B,QAC3BD,OAAAC,eAAA,wB,yDACAD,OAAAC,eAAA,uB,yDACAD,OAAAC,eAAA,qB,gDAAuB,IACvBD,OAAAC,eAAA,sB,gDAAwB,IACxBD,OAAAC,eAAA,0B,yDACAD,OAAAC,eAAA,uB,gDAAyB,IACzBD,OAAAC,eAAA,yB,yDACAD,OAAAC,eAAA,yB,gDAA2B,QAC3BD,OAAAC,eAAA,oB,yDACAD,OAAAC,eAAA,mB,gDAAqB,IACrBD,OAAAC,eAAA,c,iDAAiB,IACjBD,OAAAC,eAAA,8B,iDAAiC,IACjCD,OAAAC,eAAA,W,yDACAD,OAAAC,eAAA,W,yDACAD,OAAAC,eAAA,W,yDACAD,OAAAC,eAAA,W,wDACX,GAEaoI,EAAAkmB,cAAgB,CACzB3qB,EACAupB,EACAqB,KAEA,MACMC,EADe,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACZxwB,SAAS2F,EAAI0K,eAC/C,IAAIogB,GAAuB,EAInBA,EAFJD,EACsB,IAAlBtB,EACsB,EACG,KAAlBA,EACe,GACG,IAAlBA,GAAyC,KAAlBA,EACR,EACfA,GAAiB,GAAKA,GAAiB,EACxB,EAEA,EAGtBA,EAAgB,GAAuB,KAAlBA,EACC,EACG,KAAlBA,EACe,GACfA,GAAiB,GAAKA,GAAiB,EACxB,EAEA,EAI9B,MAAMwB,EAAuBC,YAAY3wB,SAAS2F,EAAI0K,eAGlDqgB,IAC4B,KAAxBD,EACAA,EAAsB,EACS,IAAxBA,EACPA,EAAsB,EACS,IAAxBA,IACPA,EAAsB,IAM9B,IAAIprB,EAAgB,EAepB,OATIA,EALCF,EAAAA,EAAEyE,SAKKzE,EAAAA,EAAEyrB,aAAavjB,QACnBC,GAAKA,EAAEijB,UAAYA,GAAWjjB,EAAE+e,qBAAuBoE,IACzD,GAAGI,MANG1rB,EAAAA,EAAEyrB,aAAavjB,QACnBC,GAAKA,EAAEijB,UAAYA,GAAWjjB,EAAE+e,qBAAuBoE,IACzD,GAAGK,gBAOLJ,GAA2B,IAAZH,IACflrB,GAAS,IAGNA,CAAK,EAGH+E,EAAAtB,MAAQ,KAA0B5G,O,EAAA,K,OAAA,E,EAAA,YAC3C,MAAM6uB,EAAwB,CAC1BC,GAAI7rB,EAAAA,EAAEQ,IAAIqd,YACVjC,GAAI5b,EAAAA,EAAEQ,IAAIwb,QACVF,GAAI9b,EAAAA,EAAEQ,IAAIwN,QACVtM,EAAG1B,EAAAA,EAAEQ,IAAI0N,YACT4d,EAAG9rB,EAAAA,EAAEQ,IAAIoI,SACTmjB,EAAG/rB,EAAAA,EAAEQ,IAAI4N,QACTxS,EAAGoE,EAAAA,EAAEQ,IAAI8N,MACT0d,GAAIhsB,EAAAA,EAAEQ,IAAI4P,IACV6b,GAAIjsB,EAAAA,EAAEQ,IAAI6P,IACV6b,GAAIlsB,EAAAA,EAAEQ,IAAI8P,IACVzR,EAAGmB,EAAAA,EAAEQ,IAAIwG,cACTmlB,GAAInsB,EAAAA,EAAEQ,IAAIc,SACV8qB,GAAIpsB,EAAAA,EAAEQ,IAAI8F,UACV+lB,GAAIrsB,EAAAA,EAAEQ,IAAIe,UACV+qB,GAAItsB,EAAAA,EAAEQ,IAAI+F,WACVgmB,GAAIvsB,EAAAA,EAAEQ,IAAImZ,gBAGR6S,EAAY,CACd9yB,MAAO,GAAGsG,EAAAA,EAAEoB,GAAG6Z,YAAYjb,EAAAA,EAAEC,GAAG0f,gBAChC8M,KAAM,oBAAoBzsB,EAAAA,EAAEoB,GAAG6Z,YAAYjb,EAAAA,EAAEC,GAAG0f,sCAChD+M,IAAK,GAAGrwB,OAAO6B,SAASvE,UAAUgzB,KAAKttB,KAAKiY,WAAUsV,EAAAA,EAAAA,IAAKhB,QAG/D,IACIvvB,OAAOqC,UAAU5D,KAAK,CAClBP,MAAO,QACPsyB,aAAc,CACVlf,QAAS3N,EAAAA,EAAEkB,KAAK8J,OAChB8hB,OAAQ,eACRC,aAAc,YAG1B,CAAE,MAAOttB,GACLN,QAAQC,MAAMK,EAClB,CAKA,UACUiE,UAAUC,MAAM6oB,EAC1B,CAAE,MAAO/sB,GACLN,QAAQC,MAAMK,EAClB,CACJ,E,YA/C+C,K,6QA+C9C,EAEYwF,EAAA+nB,gBAA0B,8CAC1B/nB,EAAAgoB,yBAA2B,CACpCC,EACAC,EACAC,EACAC,EACA7sB,KAEAA,EAAIoa,IAAI0S,qBAAuBroB,EAAAsoB,UAAUL,EAAa1sB,EAAIgtB,gBAAgB5nB,cAC1EpF,EAAIoa,IAAI6S,WAAa,GAAGP,EAAYnZ,eACpCvT,EAAIoa,IAAI8S,YAAc,GAAGP,EAAapZ,eACtCvT,EAAIoa,IAAI+S,oBAAsB,GAAGT,EAAYnZ,gBAAgBoZ,EAAapZ,eAC1EvT,EAAIoa,IAAIgT,SAAW,GAAGP,EAAgBtZ,eACtCvT,EAAIoa,IAAIiT,UAAY,GAAGR,EAAgBtZ,eACvCvT,EAAIoa,IAAIkT,WAAa,IAAIZ,EAAgC,EAAlBG,GAAqBtZ,cAAc,EAEjE9O,EAAAsoB,UAAY,CAACQ,EAAWjtB,KACjC,IAAIqH,EAAI,WAQR,OAPI4lB,GAAK,GAAKA,GAAK,IACf5lB,EAAI,MACG4lB,GAAK,KAAOA,GAAK,IACxB5lB,EAAI,MACG4lB,GAAK,KAAOA,GAAK,OACxB5lB,EAAI,OAED,GAAGlD,EAAA+nB,gCAAgClsB,KAAKqH,QAAQvC,aAAa,EAG3DX,EAAA+oB,uBAAyB,CAClCX,EACAY,EACAC,EACA1tB,KAEAA,EAAIoa,IAAIuT,cACJ,GAAGlpB,EAAA+nB,8BAA8BxsB,EAAI4tB,0CAA0CxoB,cACnFpF,EAAIoa,IAAIyT,eAAiB,IAAIhB,EAAgBtZ,eAC7CvT,EAAIoa,IAAI0T,cAAgB,IAAIjB,EAAgBtZ,eAC5CvT,EAAIoa,IAAI2T,gBAAkB,GAAGlB,EAAgBtZ,eAC7CvT,EAAIoa,IAAI4T,eACJ,GAAGvpB,EAAA+nB,8BAA8BxsB,EAAI4tB,2CAA2CxoB,cACpFpF,EAAIoa,IAAI6T,gBAAkB,GAAGR,EAAYla,eACzCvT,EAAIoa,IAAI8T,eAAiB,IAAIrB,EAAgBtZ,eAC7CvT,EAAIoa,IAAI+T,iBAAmB,GAAGtB,EAAgBtZ,eAC9CvT,EAAIoa,IAAIgU,iBACJ,GAAG3pB,EAAA+nB,8BAA8BxsB,EAAI4tB,6CAA6CxoB,cACtFpF,EAAIoa,IAAIiU,kBAAoB,IAAIxB,EAAgBtZ,eAChDvT,EAAIoa,IAAIkU,iBAAmB,GAAGZ,EAAana,eAC3CvT,EAAIoa,IAAImU,mBAAqB,GAAG1B,EAAgBtZ,eAChDvT,EAAIoa,IAAIoU,kBACJ,GAAG/pB,EAAA+nB,8BAA8BxsB,EAAI4tB,8CAA8CxoB,cACvFpF,EAAIoa,IAAIqU,mBAAqB,GAAGhB,EAAYla,eAC5CvT,EAAIoa,IAAIsU,kBAAoB,GAAGhB,EAAana,eAC5CvT,EAAIoa,IAAIuU,oBAAsB,GAAG9B,EAAgBtZ,eACjDvT,EAAIoa,IAAIwU,WACJ,GAAGnqB,EAAA+nB,8BAA8BxsB,EAAI4tB,qCAAqCxoB,cAC9EpF,EAAIoa,IAAIyU,YAAc,IAAIhC,EAAgBtZ,eAC1CvT,EAAIoa,IAAI0U,WAAa,MACrB9uB,EAAIoa,IAAI2U,aAAe,GAAGlC,EAAgBtZ,eAC1CvT,EAAIoa,IAAI4U,cAAgB,GAAGtB,EAAana,eACxCvT,EAAIoa,IAAI6U,YACJ,GAAGxqB,EAAA+nB,8BAA8BxsB,EAAI4tB,sCAAsCxoB,cAC/EpF,EAAIoa,IAAI8U,aAAe,GAAGzB,EAAYla,eACtCvT,EAAIoa,IAAI+U,YAAc,MACtBnvB,EAAIoa,IAAIgV,cAAgB,GAAGvC,EAAgBtZ,eAC3CvT,EAAIoa,IAAIiV,eAAiB,GAAG3B,EAAana,eACzCvT,EAAIoa,IAAIkV,UACJ,GAAG7qB,EAAA+nB,8BAA8BxsB,EAAI4tB,oCAAoCxoB,cAC7EpF,EAAIoa,IAAImV,WAAa,MACrBvvB,EAAIoa,IAAIoV,UAAY,IAAI3C,EAAgBtZ,eACxCvT,EAAIoa,IAAIqV,YAAc,GAAGhC,EAAYla,eACrCvT,EAAIoa,IAAIsV,aAAe,GAAG7C,EAAgBtZ,eAC1CvT,EAAIoa,IAAIuV,aACJ,GAAGlrB,EAAA+nB,8BAA8BxsB,EAAI4tB,uCAAuCxoB,cAChFpF,EAAIoa,IAAIwV,cAAgB,MACxB5vB,EAAIoa,IAAIyV,aAAe,GAAGnC,EAAana,eACvCvT,EAAIoa,IAAI0V,eAAiB,GAAGrC,EAAYla,eACxCvT,EAAIoa,IAAI2V,gBAAkB,GAAGlD,EAAgBtZ,cAAc,EAGlD9O,EAAAurB,SAAW,CACpBzC,EACA0C,EACAC,EACAC,EACAjrB,EACAkrB,KAEA,GAAIA,GAAYA,EAAShvB,OAAS,GAAK5B,EAAAA,EAAEC,GAAGuC,eACxC,OAAOouB,EAGX,GAAyB,KAArBlrB,EAAyB,CACzB,IAAIyC,EAAI4lB,GAAK0C,EAAc,WAAa,mBAMxC,OALI1C,GAAK,GAAKA,GAAK,GACf5lB,EAAI,MACG4lB,GAAK,IAAMA,GAAK,MACvB5lB,EAAI,OAED,GAAGlD,EAAA+nB,sCAAsC2D,IAAuB5C,GAAK0C,EAAc,MAAQ,QAAQtoB,QAAQvC,aACtH,CAAO,CACH,IAAIuC,EAAI,WAOR,OANI4lB,GAAK,GAAKA,GAAK,GACf5lB,EAAI,MACG4lB,GAAK,IAAMA,GAAK,MACvB5lB,EAAI,OAERA,EAAI,MACG,GAAGlD,EAAA+nB,8BAA8B0D,IAAU3C,GAAK0C,EAAc,MAAQ,QAAQtoB,QAAQvC,aACjG,GAESX,EAAA4rB,QAAU,CAAC9C,EAAW+C,EAAoBC,KACnD,IAAI5oB,EAAI,WAMR,OALI4lB,GAAK,GAAKA,GAAK,GACf5lB,EAAI,MACG4lB,GAAK,IAAMA,GAAK,MACvB5lB,EAAI,OAED,GAAGlD,EAAA+nB,oCAAoC+D,IAAShD,GAAK+C,EAAa,MAAQ,QAAQ3oB,QAAQvC,aAAa,EAGrGX,EAAA+rB,UAAY,CACrBjD,EACAkD,EACAvrB,KAEA,IAAIyC,EAAI,WAMR,OALI4lB,GAAK,GAAKA,GAAK,GACf5lB,EAAI,MACG4lB,GAAK,IAAMA,GAAK,MACvB5lB,EAAI,OAED,GAAGlD,EAAA+nB,kBAAsC,GAApBtnB,EAAwB,SAAW,sBAAsBurB,KAAY9oB,QAAQvC,aAAa,EAG7GX,EAAAisB,YAAeP,GACjB,GAAG1rB,EAAA+nB,kCAAkC2D,iBAAoC/qB,cAGvEX,EAAAksB,WAAa,CAACpD,EAAWjtB,KAClC,IAAIqH,EAAI,MAMR,OALI4lB,GAAK,GAAKA,GAAK,GACf5lB,EAAI,KACG4lB,GAAK,IAAMA,GAAK,KACvB5lB,EAAI,OAED,GAAGlD,EAAA+nB,iCAAiClsB,KAAKqH,QAAQvC,aAAa,EAG5DX,EAAAmsB,yBAA4B5wB,IACrCA,EAAIoa,IAAIyW,gCAAkC,QAC1C7wB,EAAIoa,IAAI0W,qBAAuB,MAC/B9wB,EAAIoa,IAAI2W,oBAAsB,MAC9B/wB,EAAIoa,IAAI4W,sBAAwB,GAChChxB,EAAIoa,IAAI6W,uBAAyB,EAAE,EAG1BxsB,EAAAysB,oBAAuBlxB,IAChCA,EAAIoa,IAAI+W,0BAA4B,OACpCnxB,EAAIoa,IAAIgX,eAAiB,MACzBpxB,EAAIoa,IAAIiX,cAAgB,MACxBrxB,EAAIoa,IAAIkX,gBAAkB,GAC1BtxB,EAAIoa,IAAImX,iBAAmB,GAC3BvxB,EAAIoa,IAAIoX,gCAAkC,OAC1CxxB,EAAIoa,IAAIqX,qBAAuB,MAC/BzxB,EAAIoa,IAAIsX,oBAAsB,MAC9B1xB,EAAIoa,IAAIuX,sBAAwB,GAChC3xB,EAAIoa,IAAIwX,uBAAyB,EAAE,EAE1BntB,EAAAotB,mBAAqB,CAC9BC,EACAC,EACAC,EACA/B,EACAjwB,KAEAA,EAAIoa,IAAI+W,0BAA4B,IAAInxB,EAAIiyB,oBAC5CjyB,EAAIoa,IAAIgX,eAAiB,GAAGU,EAAave,eACzCvT,EAAIoa,IAAIiX,cAAgB,GAAGS,EAAave,eACxCvT,EAAIoa,IAAIkX,gBAAkB,IAAIU,EAA2B,EAAdD,EAAiC,EAAfD,GAAkBve,eAC/EvT,EAAIoa,IAAImX,iBAAmB,IAAItB,EAA4B,EAAd8B,EAAiC,EAAfD,GAAkBve,eACjFvT,EAAIoa,IAAIoX,gCAAkC,QAC1CxxB,EAAIoa,IAAIqX,qBAAuB,GAAGM,EAAYxe,eAC9CvT,EAAIoa,IAAIsX,oBAAsB,GAAGK,EAAYxe,eAC7CvT,EAAIoa,IAAIuX,sBAAwB,IAAIK,EAA4B,EAAfF,GAAkBve,eACnEvT,EAAIoa,IAAIwX,uBAAyB,IAAI3B,EAA6B,EAAf6B,GAAkBve,cAAc,EAG1E9O,EAAAytB,qBAAuB,CAChCC,EACAC,EACAC,EACAL,EACA/B,EACAjwB,KAEAA,EAAIoa,IAAIkY,iBAAmB,IAAIH,EAAaE,GAAmB9e,eAC/DvT,EAAIoa,IAAImY,gBAAkB,IAAIH,EAAYC,GAAmB9e,eAC7DvT,EAAIoa,IAAIoY,kBAAoB,IAAIR,EAAiC,EAApBK,GAAuB9e,eACpEvT,EAAIoa,IAAIqY,mBAAqB,IAAIxC,EAAkC,EAApBoC,GAAuB9e,eACtEvT,EAAIoa,IAAIsY,cACJ,GAAGjuB,EAAA+nB,gCAAgCxsB,EAAI2yB,8CAA8CvtB,cACzFpF,EAAIoa,IAAIwY,eAAiB,MACzB5yB,EAAIoa,IAAIyY,cAAgB,MACxB7yB,EAAIoa,IAAI0Y,gBAAkB,GAAGT,EAAkB9e,eAC/CvT,EAAIoa,IAAI2Y,eACJ,GAAGtuB,EAAA+nB,gCAAgCxsB,EAAI2yB,+CAA+CvtB,cAC1FpF,EAAIoa,IAAI4Y,gBAAkB,IAAIhB,EAAaK,GAAmB9e,eAC9DvT,EAAIoa,IAAI6Y,eAAiB,MACzBjzB,EAAIoa,IAAI8Y,iBAAmB,GAAGb,EAAkB9e,eAChDvT,EAAIoa,IAAI+Y,iBACJ,GAAG1uB,EAAA+nB,gCAAgCxsB,EAAI2yB,iDAAiDvtB,cAC5FpF,EAAIoa,IAAIgZ,kBAAoB,MAC5BpzB,EAAIoa,IAAIiZ,iBAAmB,IAAIpD,EAAcoC,GAAmB9e,eAChEvT,EAAIoa,IAAIkZ,mBAAqB,GAAGjB,EAAkB9e,eAClDvT,EAAIoa,IAAImZ,kBACJ,GAAG9uB,EAAA+nB,gCAAgCxsB,EAAI2yB,kDAAkDvtB,cAC7FpF,EAAIoa,IAAIoZ,mBAAqB,IAAIxB,EAAaK,GAAmB9e,eACjEvT,EAAIoa,IAAIqZ,kBAAoB,IAAIxD,EAAcoC,GAAmB9e,eACjEvT,EAAIoa,IAAIsZ,oBAAsB,GAAGrB,EAAkB9e,eACnDvT,EAAIoa,IAAIuZ,WACJ,GAAGlvB,EAAA+nB,gCAAgCxsB,EAAI2yB,yCAAyCvtB,cACpFpF,EAAIoa,IAAIwZ,YAAc,MACtB5zB,EAAIoa,IAAIyZ,WAAa,GAAGxB,EAAkB9e,eAC1CvT,EAAIoa,IAAI0Z,aAAe,GAAGzB,EAAkB9e,eAC5CvT,EAAIoa,IAAI2Z,cAAgB,GAAG9D,EAAY1c,eACvCvT,EAAIoa,IAAI4Z,YACJ,GAAGvvB,EAAA+nB,gCAAgCxsB,EAAI2yB,0CAA0CvtB,cACrFpF,EAAIoa,IAAI6Z,aAAe,IAAIjC,EAAaK,GAAmB9e,eAC3DvT,EAAIoa,IAAI8Z,YAAc,GAAG7B,EAAkB9e,eAC3CvT,EAAIoa,IAAI+Z,cAAgB,GAAG9B,EAAkB9e,eAC7CvT,EAAIoa,IAAIga,eAAiB,GAAGnE,EAAY1c,eACxCvT,EAAIoa,IAAIia,UACJ,GAAG5vB,EAAA+nB,gCAAgCxsB,EAAI2yB,wCAAwCvtB,cACnFpF,EAAIoa,IAAIka,WAAa,GAAGjC,EAAkB9e,eAC1CvT,EAAIoa,IAAIma,UAAY,MACpBv0B,EAAIoa,IAAIoa,YAAc,GAAGxC,EAAWze,eACpCvT,EAAIoa,IAAIqa,aAAe,GAAGpC,EAAkB9e,eAC5CvT,EAAIoa,IAAIsa,aACJ,GAAGjwB,EAAA+nB,gCAAgCxsB,EAAI2yB,2CAA2CvtB,cACtFpF,EAAIoa,IAAIua,cAAgB,GAAGtC,EAAkB9e,eAC7CvT,EAAIoa,IAAIwa,aAAe,IAAI3E,EAAcoC,GAAmB9e,eAC5DvT,EAAIoa,IAAIya,eAAiB,GAAG7C,EAAWze,eACvCvT,EAAIoa,IAAI0a,gBAAkB,GAAGzC,EAAkB9e,cAAc,EAGpD9O,EAAAswB,uBAAyB,CAClCC,EACA3C,EACA5E,EACAwH,EACA7C,EACAN,EACAoD,EACAnD,EACA/xB,KAEAA,EAAIoa,IAAI+a,sBAAuB,EAC/Bn1B,EAAIoa,IAAIgb,iBAAmBp1B,EAAIq1B,gBAAkB,EACjD,IAAI7wB,GAAgB,EAgBpB,OAfIxE,EAAIq1B,gBAAkB,IACtBr1B,EAAIoa,IAAIkb,aAAe7wB,EAAA8wB,cAAcN,EAAoBj1B,EAAIgX,mBAC7DxS,EAEQgxB,KAAKC,MACahI,EAAe,EAAkBwH,EAAsB,GAIjFj1B,EAAIoa,IAAIsb,cAAgB,GAAGlxB,MAC3BxE,EAAIoa,IAAIub,aAAe,GAAkBH,KAAKC,OAAqBrD,EAA2BN,EAA8BoD,GAA4BnD,EAA6BD,GAA+BkD,GAA8B3C,EAAmCP,IAAkB,EAAkBmD,EAAsB,GAAK1hB,eACpVvT,EAAIoa,IAAIwb,eAAiB,GAAGX,EAAmB1hB,eAC/CvT,EAAIoa,IAAIyb,gBAAkB,GAAGZ,EAAmB1hB,eAChDvT,EAAIoa,IAAI0b,aAAe,IAEpBtxB,CAAI,EAEFC,EAAAsxB,qBAAuB,CAChCf,EACA3C,EACA5E,EACAwH,EACA7C,EACAN,EACAoD,EACAnD,EACArI,EACA1pB,KAEAA,EAAIoa,IAAIgb,kBAAmB,EAC3Bp1B,EAAIoa,IAAI+a,qBAAuBn1B,EAAIq1B,gBAAkB,EACrD,IAAI7wB,GAAgB,EAgBpB,OAfIxE,EAAIq1B,gBAAkB,IACtBr1B,EAAIoa,IAAIkb,aAAe7wB,EAAA8wB,cAAcN,EAAoBj1B,EAAIgX,mBAC7DxS,EAEQgxB,KAAKC,MACahI,EAAe,EAAkBwH,EAAsB,GAIjFj1B,EAAIoa,IAAIsb,cAAgB,GAAkBF,KAAKC,MAAoBhI,EAAe,EAAkBwH,EAAsB,GAAK1hB,eAC/HvT,EAAIoa,IAAI0b,aAAe,GAAkBN,KAAKC,OAAqBrD,EAA2BN,EAA8BoD,GAA4BnD,EAA6BD,GAA+BkD,GAA8B3C,EAAmCP,IAAkB,EAAkBmD,EAAsB,GAAK1hB,eACpVvT,EAAIoa,IAAIub,aAAe,GACvB31B,EAAIoa,IAAIwb,eAAiB,GAAGX,EAAmB1hB,eAC/CvT,EAAIoa,IAAIyb,gBAAkB,GAAGZ,EAAmB1hB,gBAE7C/O,CAAI,EAEFC,EAAAuxB,0BAA6Bh2B,IAEtC,GADAA,EAAIoa,IAAI6b,oBAAsBj2B,EAAIq1B,gBAAkB,EAChDr1B,EAAIq1B,gBAAkB,EAAG,CACzB,IAAIa,EAAc,GAClBl2B,EAAIoa,IAAI+b,gBACJ,GAAG1xB,EAAA+nB,uCAAuCxsB,EAAIgX,wBAAwB5R,cAC1EpF,EAAIoa,IAAIgc,kBAAoB,IAAmBp2B,EAAIq2B,mBAAqBH,EAAM,OAC9El2B,EAAIoa,IAAIkc,gBAAkB,IAAmBt2B,EAAIq2B,mBAAqBH,EAAM,OAC5El2B,EAAIoa,IAAImc,kBAAuBv2B,EAAIq2B,mBAAqBH,EAA5B,KAC5Bl2B,EAAIoa,IAAIoc,mBAAwBx2B,EAAIq2B,mBAAqBH,EAA5B,IACjC,GAGSzxB,EAAAgyB,sBAAwB,CAAClJ,EAAWmJ,KAC7C,IAAI/uB,EAAI,WAIR,OAHI4lB,GAAK,GAAKA,EAAI,MACd5lB,EAAI,WAED,GAAGlD,EAAA+nB,8BAA8B7kB,KAAK+uB,QAAmBtxB,aAAa,EAGpEX,EAAA8wB,cAAgB,CAAChI,EAAWmJ,KACrC,IAAI/uB,EAAI,WAUR,OATI4lB,GAAK,GAAKA,EAAI,GACd5lB,EAAI,KACG4lB,GAAK,IAAMA,EAAI,GACtB5lB,EAAI,KACG4lB,GAAK,IAAMA,EAAI,IACtB5lB,EAAI,MACG4lB,GAAK,KAAOA,EAAI,MACvB5lB,EAAI,OAED,GAAGlD,EAAA+nB,8BAA8BkK,KAAgB/uB,QAAQvC,aAAa,EAGpEX,EAAAkyB,mBAAqB,CAC9B3B,EACA3C,EACAP,EACAoD,EACAnD,EACAI,EACAH,EACA/B,EACA2G,EACAC,EACA72B,KAEAA,EAAIoa,IAAI0c,aAAe92B,EAAI+2B,YAAc,EACzC,IAAIC,GAAoB,EAiBxB,OAhBIh3B,EAAI+2B,YAAc,IAClB/2B,EAAIoa,IAAIC,SAAW5V,EAAAwyB,UAAUL,EAAgB52B,GAC7Cg3B,EAEQxB,KAAKC,MACatD,EACIH,EAAc,EACd4E,EAAkB,GAIhD52B,EAAIoa,IAAI8c,UAAY,GAAGF,MACvBh3B,EAAIoa,IAAI+c,SAAW,GAAkBhF,EAAalC,EAAc6B,EAAeoD,GAAanD,EAAcD,GAAgBkD,EAAc3C,EAAoBmD,KAAKC,OAAqBtD,EAA4BL,EAA8BoD,GAA4BnD,EAA6BD,GAA+BkD,EAA6B3C,GAAsB,EAAkBwE,EAAmB,OACha72B,EAAIoa,IAAIgd,WAAa,GAAGR,EAAerjB,eACvCvT,EAAIoa,IAAIid,YAAc,GAAGR,EAAgBtjB,gBAEtCyjB,CAAQ,EAGNvyB,EAAAwyB,UAAY,CAAC1J,EAAWvtB,KACjC,GAAIA,EAAI4B,OAASpC,EAAAA,EAAEQ,IAAIoZ,YACnB,MAAO,GAAG3U,EAAA+nB,kCAAkCxsB,EAAIyY,cAAc+B,QAAQ,KAAM,QAAQxa,EAAImZ,qBAAqB/T,cAEjH,IAAIuC,EAAI,WAMR,OALI4lB,GAAK,GAAKA,EAAI,GACd5lB,EAAI,MACG4lB,GAAK,IAAMA,EAAI,MACtB5lB,EAAI,OAED,GAAGlD,EAAA+nB,sCAAsCxsB,EAAIyY,iBAAiB9Q,QAAQvC,aAAa,EAGjFX,EAAA6yB,oBAAsB,CAC/BC,EACAC,EACAC,EACAC,EACA5F,EACArE,EACAztB,KAEAA,EAAIoa,IAAIud,yBAA2B,QACnC33B,EAAIoa,IAAIwd,cAAgB,GAAGL,EAAKhkB,eAChCvT,EAAIoa,IAAIyd,aAAe,GAAGL,EAAIjkB,eAC9BvT,EAAIoa,IAAI0d,eAAiB,IAAIL,EAA2B,EAAf3F,GAAkBve,eAC3DvT,EAAIoa,IAAI2d,gBAAkB,IAAIL,EAA4B,EAAf5F,GAAkBve,eAC7DvT,EAAIoa,IAAI4d,wBACJ,QAAQvzB,EAAAsoB,UAAUU,EAAaztB,EAAIgtB,oBAAoB5nB,cAC3DpF,EAAIoa,IAAI6d,aAAe,GAAGnG,MAC1B9xB,EAAIoa,IAAI8d,YAAc,GAAGpG,MACzB9xB,EAAIoa,IAAI+d,cAAgB,IAAIV,EAA2B,EAAf3F,GAAkBve,eAC1DvT,EAAIoa,IAAIge,eAAiB,IAAIV,EAA4B,EAAf5F,GAAkBve,eAC5DvT,EAAIoa,IAAIie,mBACJ,QAAQ5zB,EAAA+nB,gCAAgCxsB,EAAIs4B,iDAAiDlzB,cACjGpF,EAAIoa,IAAIme,kBAAoB,QACA,OAAxBv4B,EAAIw4B,gBACJx4B,EAAIoa,IAAIqe,SAAW,QACY,KAAxBz4B,EAAIw4B,gBACXx4B,EAAIoa,IAAIqe,SAAW,SAEnBz4B,EAAIoa,IAAIqe,SAAW,OAEvBz4B,EAAIoa,IAAIse,QAAU,GAAG5G,EAAave,eAClCvT,EAAIoa,IAAIue,OAAS,GAAG7G,EAAave,eACjCvT,EAAIoa,IAAIwe,SAAW,GAAGnB,EAAUlkB,eAChCvT,EAAIoa,IAAIye,UAAY,GAAGnB,EAAWnkB,eAClC,IAAIulB,EAAsBr0B,EAAAs0B,eAAe/4B,GACrCg5B,EAAmCxD,KAAKC,MAAoBiC,EAAc,GAC1EuB,EAEIzD,KAAKC,OACciC,EACGoB,EAA6BE,GAC3C,GAIhBh5B,EAAIoa,IAAI8e,aAAe,GAAGD,EAAU1lB,eACpCvT,EAAIoa,IAAI+e,cAAgB,MACxBn5B,EAAIoa,IAAIgf,oBAAsB,GAAGJ,EAAWzlB,eAC5CvT,EAAIoa,IAAIif,kBAAoB,IAAIL,EAAa,GAAGzlB,eAChDvT,EAAIoa,IAAIkf,eAAiB,GAAG7B,EAAUlkB,eACtCvT,EAAIoa,IAAImf,gBAAkB,GAAG7B,EAAWnkB,eACpCvT,EAAIoa,IAAI0c,eACR92B,EAAIoa,IAAIof,YAAa,EACzB,EAGS/0B,EAAAg1B,YAAc,CAAClM,EAAWmM,KACnC,IAAI/xB,EAAI,WAIR,OAHI4lB,GAAK,GAAKA,EAAI,MACd5lB,EAAI,MAED,wDAAwD+xB,KAAc/xB,QAAQvC,aAAa,EAGzFX,EAAAs0B,eAAkB/4B,IAC3B,IAAI25B,EAAQ,EAUZ,OATI35B,EAAI45B,OAASC,EAAAA,GAAwB75B,EAAI45B,OAAS55B,EAAI45B,KAAKx4B,OAAS,IACpEu4B,GAAS,GAET35B,EAAI85B,OAASD,EAAAA,GAAwB75B,EAAI85B,OAAS95B,EAAI85B,KAAK14B,OAAS,IACpEu4B,GAAS,GAET35B,EAAI+5B,OAASF,EAAAA,GAAwB75B,EAAI+5B,OAAS/5B,EAAI+5B,KAAK34B,OAAS,IACpEu4B,GAAS,GAENA,CAAK,EAGHl1B,EAAAu1B,sBAAyBC,IAClC,GAAIJ,EAAAA,GAAwBI,GACxB,OAAO,EAEX,IAAIC,EAAID,EAAI7hB,OAAO,GACnB,OAAI8hB,GAAK,KAAOA,GAAK,GAIrB,EAGSz1B,EAAA01B,uBAAyB,CAClCxT,EACAC,EACAlc,KAEA,GAAIic,EAAQC,EAAQ,CAChB,IAAIwT,EAAOxT,EACXA,EAASD,EACTA,EAAQyT,CACZ,CAEA,IAAInhC,EAAa,GACjB,IAAIohC,EAAMtT,EAAAA,EAAqBrf,QAAO4yB,GAAKA,EAAE3T,OAASA,GAAS2T,EAAE1T,QAAUA,IAK3E,GAAmB,IAAfyT,EAAIj5B,OACJ,OAAOi5B,EAAI,GAAG3T,mBACX,GAAI2T,EAAIj5B,OAAS,EAAG,CACvB,IAAIuG,EAAI0yB,EAAI,GACZ,IAAK,IAAIn5B,EAAI,EAAGA,EAAIm5B,EAAIj5B,OAAQF,IAAK,CACjC,IAAIo5B,EAAID,EAAIn5B,GAERo5B,EAAE3T,OAASA,GACX2T,EAAE1T,QAAUA,GACZ0T,EAAE3T,MAAQhf,EAAEgf,OACZ2T,EAAE1T,QAAUjf,EAAEif,SAEdjf,EAAI2yB,EAEZ,CACArhC,EAAK0O,EAAE+e,kBACX,MACIztB,EAAK,GAGT,OAAOA,CAAE,EAGAwL,EAAA81B,eAAkBv6B,IAC3B,IAEIw6B,EAAkBx6B,EAAIy6B,eACtBC,EAAmB16B,EAAI26B,gBAE3B,GAAIH,EALqB,GAKS,CAC9B,IAAII,EANiB,GAMYJ,EACjCA,EAPqB,GAQrBE,GAAsCE,CAC1C,CACA,GAAIF,EATsB,GASU,CAChC,IAAIE,EAVkB,GAUYF,EAClCA,EAXsB,GAYtBF,GAAoCI,CACxC,CAGA,IAAIC,EAAoBL,EACpBM,EAAqBJ,EACrBI,EAAaD,IAEbC,EAAaN,EACbK,EAFoBH,GAKxB,IAAIL,EAAM51B,EAAA6kB,qBAAqB5hB,QAC3B4yB,GAAKA,EAAE3Q,UAAYkR,GAAaP,EAAE5Q,WAAaoR,IAGnD,GAAW,MAAPT,GAAeA,EAAIj5B,OAAS,EAC5B,OAAOqD,EAAA6kB,qBAAqB7kB,EAAA6kB,qBAAqBloB,OAAS,GACvD,GAAmB,IAAfi5B,EAAIj5B,OACX,OAAOi5B,EAAI,GAEX,IAAI1yB,EAAI0yB,EAAI,GACZ,IAAK,IAAIn5B,EAAI,EAAGA,EAAIm5B,EAAIj5B,OAAQF,IAAK,CACjC,IAAIo5B,EAAID,EAAIn5B,GAERo5B,EAAE3Q,UAAYkR,GACdP,EAAE5Q,WAAaoR,GACfR,EAAE3Q,SAAWhiB,EAAEgiB,UACf2Q,EAAE5Q,WAAa/hB,EAAE+hB,YAEjB/hB,EAAI2yB,EAEZ,CACA,OAAO3yB,CACX,EAGSlD,EAAAs2B,gBAAmB/6B,IAC5B,IAEIg7B,EAAmBh7B,EAAIi7B,gBACvBC,EAAoBl7B,EAAIm7B,iBAE5B,GAAIH,EALqB,GAKU,CAC/B,IAAIJ,EANiB,GAMYI,EACjCA,EAPqB,GAQrBE,GAAwCN,CAC5C,CACA,GAAIM,EATsB,GASW,CACjC,IAAIN,EAVkB,GAUYM,EAClCA,EAXsB,GAYtBF,GAAsCJ,CAC1C,CAGA,IAAIC,EAAoBG,EACpBF,EAAqBI,EACrBJ,EAAaD,IAEbC,EAAaE,EACbH,EAFoBK,GAKxB,IAAIb,EAAM51B,EAAA6kB,qBAAqB5hB,QAC3B4yB,GAAKA,EAAE3Q,UAAYkR,GAAaP,EAAE5Q,WAAaoR,IAGnD,GAAW,MAAPT,GAAeA,EAAIj5B,OAAS,EAC5B,OAAOqD,EAAA6kB,qBAAqB7kB,EAAA6kB,qBAAqBloB,OAAS,GACvD,GAAmB,IAAfi5B,EAAIj5B,OACX,OAAOi5B,EAAI,GAEX,IAAI1yB,EAAI0yB,EAAI,GACZ,IAAK,IAAIn5B,EAAI,EAAGA,EAAIm5B,EAAIj5B,OAAQF,IAAK,CACjC,IAAIo5B,EAAID,EAAIn5B,GAERo5B,EAAE3Q,UAAYkR,GACdP,EAAE5Q,WAAaoR,GACfR,EAAE3Q,SAAWhiB,EAAEgiB,UACf2Q,EAAE5Q,WAAa/hB,EAAE+hB,YAEjB/hB,EAAI2yB,EAEZ,CACA,OAAO3yB,CACX,EAGSlD,EAAA22B,gBAAkB,CAAC7N,EAAWvtB,IACnCA,EAAI4B,OAAS5B,EAAIq7B,iBAAmB,IAC7B9N,EAEPA,EAAI,IACAvtB,EAAIy6B,gBAAkB,GAAKz6B,EAAIy6B,gBAAkB,OACtC,GAAJlN,EACAvtB,EAAIy6B,gBAAkB,IAAMz6B,EAAIy6B,gBAAkB,QACrDZ,EAAAA,GAAwB75B,EAAIwK,UAAY/F,EAAAu1B,sBAAsBh6B,EAAIwK,QACvD,IAAJ+iB,EAEI,GAAJA,EAEJvtB,EAAIy6B,gBAAkB,IAAMz6B,EAAIy6B,gBAAkB,GAC9C,GAAJlN,EACAvtB,EAAIy6B,gBAAkB,SAAWz6B,EAAIy6B,gBAAkB,GAC1DZ,EAAAA,GAAwB75B,EAAIwK,UAAY/F,EAAAu1B,sBAAsBh6B,EAAIwK,QACvD,GAAJ+iB,EAEAA,EAGA,GAAJA,EAGRA,EAGE9oB,EAAA1L,OAAS,CAClBiH,EACAs7B,EAA+BzB,EAAAA,GAAgB0B,UAE/Cv7B,EAAIw7B,qBAAsB,EACtB3/B,OAAOwI,WAAa,KACpBrE,EAAIq7B,gBAAkB5Q,EAAWgR,qBAC1B5/B,OAAOwI,WAAa,IAC3BrE,EAAIq7B,gBAAkB,IACfx/B,OAAOwI,WAAa,IAC3BrE,EAAIq7B,gBAAsC,GAApBx/B,OAAOwI,WACtBxI,OAAOwI,WAAa,IAC3BrE,EAAIq7B,gBAAsC,IAApBx/B,OAAOwI,WAE7BrE,EAAIq7B,gBAAsC,IAApBx/B,OAAOwI,WAEjCrE,EAAI07B,iBAAmBjR,EAAWkR,sBAE9BL,IAAgBzB,EAAAA,GAAgBxX,OAChCriB,EAAIq7B,gBAAsC,GAApBx/B,OAAOwI,WAC7BrE,EAAI07B,iBAAwC,GAArB7/B,OAAOC,aAGlCkE,EAAIoa,IAAI+a,sBAAuB,EAC/Bn1B,EAAIy6B,eAAiBj7B,EAAAA,EAAEQ,IAAIc,SAC3Bd,EAAI26B,gBAAkBn7B,EAAAA,EAAEQ,IAAIe,UAC5Bf,EAAIi7B,gBAAkBz7B,EAAAA,EAAEQ,IAAI8F,UAC5B9F,EAAIm7B,iBAAmB37B,EAAAA,EAAEQ,IAAI+F,WAC7B/F,EAAIkG,aAAe1G,EAAAA,EAAEQ,IAAIc,SAAWtB,EAAAA,EAAEQ,IAAIe,UAE1C,MAAM66B,EAAWp8B,EAAAA,EAAEkB,KAAK4c,UAAU5V,QAAOyB,GAAKA,EAAElQ,KAAOuG,EAAAA,EAAEQ,IAAIqd,cAAa,GAO1E,GANIue,IACA57B,EAAIyd,WAAame,EAAS3iC,GAC1B+G,EAAI4tB,aAAegO,EAAS30B,KAC5BjH,EAAI67B,iBAAmBD,EAASpe,UAG/Bxd,EAAI4B,MAaF,CACH,MAAMk6B,EAAOt8B,EAAAA,EAAEkB,KAAK2a,SAAS3T,QAAOyB,GAAKA,EAAElQ,KAAOuG,EAAAA,EAAEQ,IAAIwb,UAAS,GAC3DugB,EAAOv8B,EAAAA,EAAEkB,KAAK6a,SAAS7T,QAAOyB,GAAKA,EAAElQ,KAAOuG,EAAAA,EAAEQ,IAAIwN,UAAS,GAC7DsuB,GACA97B,EAAIg8B,aAAeF,EAAK7iC,GACxB+G,EAAIgtB,eAAiB8O,EAAK70B,KAC1BjH,EAAIi8B,gBAAkBH,EAAKrgB,YAE3Bzb,EAAIg8B,cAAgB,EACpBh8B,EAAIgtB,eAAiB,GACrBhtB,EAAIi8B,gBAAkB,IAEtBF,GACA/7B,EAAIk8B,sBAAoC,KAAZH,EAAK9iC,IAAyB,KAAZ8iC,EAAK9iC,GACnD+G,EAAIm8B,eAAiBJ,EAAK9iC,GAC1B+G,EAAI2yB,iBAAmBoJ,EAAK90B,KAC5BjH,EAAIiyB,kBAAoB8J,EAAKtgB,YAE7Bzb,EAAIm8B,gBAAkB,EACtBn8B,EAAI2yB,iBAAmB,GACvB3yB,EAAIiyB,kBAAoB,GAEhC,KAnCgB,CACZ,MAAMmK,EAAM58B,EAAAA,EAAEkB,KAAKob,KAAKpU,QAAOyB,GAAKA,EAAElQ,KAAOuG,EAAAA,EAAEQ,IAAI6b,cAAa,GAC5DugB,IACAp8B,EAAIk8B,sBAAwC,KAAhBE,EAAI5uB,SAAkC,KAAhB4uB,EAAI5uB,QACtDxN,EAAIg8B,aAAeI,EAAI5gB,QACvBxb,EAAIgtB,eAAiBoP,EAAIngB,UACzBjc,EAAIi8B,gBAAkBG,EAAIrgB,WAC1B/b,EAAIm8B,eAAiBC,EAAI5uB,QACrBxN,EAAIm8B,eAAiB,IACrBn8B,EAAI2yB,iBAAmByJ,EAAIC,UAC3Br8B,EAAIiyB,kBAAoBmK,EAAIpgB,YAGxC,CAkEA,OA1CKxc,EAAAA,EAAEQ,IAAI8N,OAAStO,EAAAA,EAAEQ,IAAI8N,OAAS,GAAsC,IAAjCtO,EAAAA,EAAEkB,KAAKkQ,sBAC3C5Q,EAAIs8B,kBAAmB,GAEvBt8B,EAAIs8B,kBAAmB,EACvBt8B,EAAIw4B,gBAAkBh5B,EAAAA,EAAEQ,IAAI8N,MACR,KAAhBtO,EAAAA,EAAEQ,IAAI8N,MACN9N,EAAIs4B,kBAAoB,UACD,KAAhB94B,EAAAA,EAAEQ,IAAI8N,MACb9N,EAAIs4B,kBAAoB,YAExBt4B,EAAIs4B,kBAAoB,WAE5Bt4B,EAAI45B,KAAOp6B,EAAAA,EAAEQ,IAAI4P,IACjB5P,EAAI85B,KAAOt6B,EAAAA,EAAEQ,IAAI6P,IACjB7P,EAAI+5B,KAAOv6B,EAAAA,EAAEQ,IAAI8P,KAGrB9P,EAAI+2B,YAAcv3B,EAAAA,EAAEQ,IAAI4N,QACxB5N,EAAIyY,cAAgBjZ,EAAAA,EAAEQ,IAAI6N,eAC1B7N,EAAImZ,eAAiB3Z,EAAAA,EAAEQ,IAAImZ,eAC3BnZ,EAAIq1B,gBAAkB71B,EAAAA,EAAEQ,IAAI0N,YAC5B1N,EAAIgX,kBAAoBxX,EAAAA,EAAEQ,IAAImX,mBAG1B3X,EAAAA,EAAEkB,KAAKknB,cACPpoB,EAAAA,EAAEC,GAAGuC,gBACLxC,EAAAA,EAAEQ,IAAIoS,oBACN5S,EAAAA,EAAEQ,IAAIoS,mBAAmBhR,OAAS,GAClC5B,EAAAA,EAAEQ,IAAIqS,iBACN7S,EAAAA,EAAEQ,IAAIqS,gBAAgBjR,OAAS,IAE/BpB,EAAIu8B,GAAK/8B,EAAAA,EAAEQ,IAAIqS,iBAGnBrS,EAAIw8B,aACwB,KAAvBx8B,EAAIq7B,iBAAkD,KAAxBr7B,EAAI07B,kBACZ,KAAvB17B,EAAIq7B,gBACRr7B,EAAIy8B,yBAA0B,EAE9Bz8B,EAAI08B,aAAel9B,EAAAA,EAAEkB,KAAKmkB,cAC1B7kB,EAAImwB,qBAAuB3wB,EAAAA,EAAEkB,KAAKi8B,gBAEC,IAA/Bn9B,EAAAA,EAAEkB,KAAKwM,qBACPzI,EAAAm4B,iBAAiB58B,EAAKs7B,GACtBt7B,EAAIoa,IAAIyiB,oBAAsB78B,EAAIq2B,mBAClCr2B,EAAIoa,IAAI0iB,qBAAuB98B,EAAI+8B,oBACnC3gC,OAAA4gC,OAAA,GAAWh9B,EAAIoa,MACR5a,EAAAA,EAAEkB,KAAKwM,oBAAsB,GACpClN,EAAIoa,IAAIyiB,oBAAsB78B,EAAIq2B,mBAClCr2B,EAAIoa,IAAI0iB,qBAAuB98B,EAAI+8B,oBACnC3gC,OAAA4gC,OAAA,GAAWh9B,EAAIoa,OAIf5a,EAAAA,EAAEkB,KAAKwE,mBAAqBmkB,EAAoB4T,iBAChDz9B,EAAAA,EAAEkB,KAAKwE,mBAAqBmkB,EAAoB6T,aAChD19B,EAAAA,EAAEkB,KAAKwE,mBAAqBmkB,EAAoB8T,QAChD39B,EAAAA,EAAEkB,KAAKwE,mBAAqBmkB,EAAoB+T,SAChD59B,EAAAA,EAAEkB,KAAKwE,mBAAqBmkB,EAAoBgU,MAEhDC,EAAqBt9B,GACdR,EAAAA,EAAEkB,KAAKwE,mBAAqBmkB,EAAoBkU,OACvDC,EAAkBx9B,GAElBR,EAAAA,EAAEkB,KAAKwE,mBAAqBmkB,EAAoBoU,iBAChDj+B,EAAAA,EAAEkB,KAAKwE,mBAAqBmkB,EAAoBqU,aAEhDC,EAAgB39B,GACTR,EAAAA,EAAEkB,KAAKwE,mBAAqBmkB,EAAoBuU,QACvDC,EAAc79B,GAEdR,EAAAA,EAAEkB,KAAKwE,mBAAqBmkB,EAAoByU,aAChDt+B,EAAAA,EAAEkB,KAAKwE,mBAAqBmkB,EAAoB0U,cAEhDC,EAAgBh+B,GACTR,EAAAA,EAAEkB,KAAKwE,mBAAqBmkB,EAAoB4U,SACvDC,EAAcl+B,GAGlBA,EAAIoa,IAAIyiB,oBAAsB78B,EAAIq2B,mBAClCr2B,EAAIoa,IAAI0iB,qBAAuB98B,EAAI+8B,oBAEnC3gC,OAAA4gC,OAAA,GAAWh9B,EAAIoa,KAAG,EAGT3V,EAAAm4B,iBAAmB,CAC5B58B,EACAs7B,KAEA,IAAIzO,EAC6B,IAA7BrtB,EAAAA,EAAEkB,KAAKy9B,kBAA0B,GAAkC,IAA7B3+B,EAAAA,EAAEkB,KAAKy9B,kBAA0B,GAAK,GAqEhF,OAtDItR,EAJArtB,EAAAA,EAAEkB,KAAKm7B,kBAAoB,OACN,KAArBr8B,EAAAA,EAAEkB,KAAK+c,aACNje,EAAAA,EAAEkB,KAAKyH,sBAEU,GACX3I,EAAAA,EAAEkB,KAAKm7B,iBAAmB,EACf,GAEA,GAEtB77B,EAAIoa,IAAIgkB,eAAiBvR,EACzB7sB,EAAIoa,IAAIikB,cAAgBxR,EAAkB,EAE1C7sB,EAAIoa,IAAIuT,cACJ,GAAGlpB,EAAA+nB,8BAA8BxsB,EAAI4tB,0CAA0CxoB,cACnFpF,EAAIoa,IAAIyT,eAAiB,IACzB7tB,EAAIoa,IAAI0T,cAAgB,IACxB9tB,EAAIoa,IAAI2T,gBAAkB,GAAGlB,EAAgBtZ,eAC7CvT,EAAIoa,IAAI4T,eACJ,GAAGvpB,EAAA+nB,8BAA8BxsB,EAAI4tB,2CAA2CxoB,cACpFpF,EAAIoa,IAAI6T,gBAAkB,GAC1BjuB,EAAIoa,IAAI8T,eAAiB,IACzBluB,EAAIoa,IAAI+T,iBAAmB,GAAGtB,EAAgBtZ,eAC9CvT,EAAIoa,IAAIgU,iBACJ,GAAG3pB,EAAA+nB,8BAA8BxsB,EAAI4tB,6CAA6CxoB,cACtFpF,EAAIoa,IAAIiU,kBAAoB,IAC5BruB,EAAIoa,IAAIkU,iBAAmB,UAC3BtuB,EAAIoa,IAAImU,mBAAqB,GAAG1B,EAAgBtZ,eAChDvT,EAAIoa,IAAIoU,kBACJ,GAAG/pB,EAAA+nB,8BAA8BxsB,EAAI4tB,8CAA8CxoB,cACvFpF,EAAIoa,IAAIqU,mBAAqB,UAC7BzuB,EAAIoa,IAAIsU,kBAAoB,UAC5B1uB,EAAIoa,IAAIuU,oBAAsB,GAAG9B,EAAgBtZ,eACjDvT,EAAIoa,IAAIwU,WACJ,GAAGnqB,EAAA+nB,8BAA8BxsB,EAAI4tB,qCAAqCxoB,cAC9EpF,EAAIoa,IAAIyU,YAAc,IACtB7uB,EAAIoa,IAAI0U,WAAa,IACrB9uB,EAAIoa,IAAI2U,aAAe,GAAGlC,EAAgBtZ,eAC1CvT,EAAIoa,IAAI4U,cAAgB,OACxBhvB,EAAIoa,IAAI6U,YACJ,GAAGxqB,EAAA+nB,8BAA8BxsB,EAAI4tB,sCAAsCxoB,cAC/EpF,EAAIoa,IAAI8U,aAAe,UACvBlvB,EAAIoa,IAAI+U,YAAc,IACtBnvB,EAAIoa,IAAIgV,cAAgB,GAAGvC,EAAgBtZ,eAC3CvT,EAAIoa,IAAIiV,eAAiB,OACzBrvB,EAAIoa,IAAIkV,UACJ,GAAG7qB,EAAA+nB,8BAA8BxsB,EAAI4tB,oCAAoCxoB,cAC7EpF,EAAIoa,IAAImV,WAAa,MACrBvvB,EAAIoa,IAAIoV,UAAY,IAEpBxvB,EAAIoa,IAAIsV,aAAe,GAAG7C,EAAgBtZ,eAC1CvT,EAAIoa,IAAIuV,aACJ,GAAGlrB,EAAA+nB,8BAA8BxsB,EAAI4tB,uCAAuCxoB,cAChFpF,EAAIoa,IAAIwV,cAAgB,MACxB5vB,EAAIoa,IAAIyV,aAAe,UAEvB7vB,EAAIoa,IAAI2V,gBAAkB,GAAGlD,EAAgBtZ,gBAEtC,CAAI,EAGf,MAAM+pB,EAAwBt9B,IAC1B,IAAIs+B,EAA0B,EAC1BC,EAA2B,EAC3BC,EAAc/5B,EAAE81B,eAAev6B,GAInC,GAAIA,EAAIy6B,eAHiB,GAGY,CACjC,IAAIG,EAJiB,GAIY56B,EAAIy6B,eACrCz6B,EAAIy6B,eALiB,GAMrBz6B,EAAI26B,gBAAkB36B,EAAI26B,gBAAkBC,CAChD,CACA,GAAI56B,EAAI26B,gBAPkB,GAOa,CACnC,IAAIC,EARkB,GAQY56B,EAAI26B,gBACtC36B,EAAI26B,gBATkB,GAUtB36B,EAAIy6B,eAAiBz6B,EAAIy6B,eAAiBG,CAC9C,CACA0D,EAAkBt+B,EAAIy6B,eACtB8D,EAAmBv+B,EAAI26B,gBAEvB,IAAI8D,EAAsBz+B,EAAIk8B,sBAAwB,EAAI,EACtDhH,GAAqBl1B,EAAIk8B,uBAAyBl8B,EAAIm8B,eAAiB,EAAI,EAAI,EAS/EuC,EAA0B,IAC1BC,EAAgCH,EAAYtU,aAAgBwU,EAC5DE,EAAiCJ,EAAYtU,aAAgBwU,EAC7D1+B,EAAIkF,kBAAkCT,EAAE4kB,oBAAoBgU,QAC5DsB,EAAwBH,EAAYhV,UAAakV,EACjDE,EAAyBJ,EAAYhV,UAAakV,GAQtD,IAAIG,EACA7+B,EAAI8+B,yBAA2B,EACzB9+B,EAAI8+B,yBACJr6B,EAAEgmB,WAAWsU,wBAGnB/+B,EAAIkF,kBAAkCT,EAAE4kB,oBAAoB8T,QAC5Dn9B,EAAIkF,kBAAkCT,EAAE4kB,oBAAoB+T,QAExDp9B,EAAI8+B,yBAA2B,MACxBR,EAAkB,IAAMC,EAAmB,GAClDM,EAAgBrJ,KAAK3jB,IAAIpN,EAAEgmB,WAAWsU,wBAAyBJ,EAAU,KAElEL,EAAkB,IAAMC,EAAmB,MAClDM,EAAgBrJ,KAAK3jB,IAAIpN,EAAEgmB,WAAWsU,wBAAyBJ,EAAU,MAI7EE,EACIP,EAAkB,IAAMC,EAAmB,GACrC/I,KAAK3jB,IAAIpN,EAAEgmB,WAAWsU,wBAAyBJ,EAAU,IACzDE,EAGdA,EACIL,EAAYjV,eAAiB,GAAKvpB,EAAI8+B,yBAA2B,EAAI,EAAID,EAG7E,IAAIG,EACAxJ,KAAK3jB,IAAIpN,EAAEgmB,WAAWwU,oBAAqBX,EAAkB,GAC7Dt+B,EAAIk/B,0BACRF,EAAev6B,EAAE22B,gBAAgB4D,EAAch/B,GAC/C,IAAIm/B,EAAwB16B,EAAEgmB,WAAW2U,sBAAwBJ,EAAe,MAE5EK,EAAkB56B,EAAEgmB,WAAW6U,eAC/BC,EAAmB96B,EAAEgmB,WAAW+U,gBAChCjB,GAAoB,IACpBc,EAAU,EACVE,EAAW,IAGf,IAAIE,EACW,EAAXb,EACAN,GACCt+B,EAAIy8B,wBAAiD,EAAvBz8B,EAAI0/B,iBAA8C,EAAvB1/B,EAAI67B,kBAC9D8D,EAA4BnK,KAAKC,OAAOz1B,EAAIq7B,gBAAkB,GAAKoE,GAEnEG,GAAgB,EAChB9N,GAAwB,EACxBE,GAAsB,EACtB/B,GAAuB,EAEvBwH,GAAqB,EACrBC,GAAsB,EAEtBzC,GAA8B,EAC9B2B,GAA0B,EAC1BC,GAA2B,EAC3BhK,GAA2B,EAC3BD,GAA8B,EAC9BmF,GAAuB,EACvBI,GAAsB,EACtBC,GAAqB,EACrBpyB,EAAIq7B,iBAAmB,KAAOtJ,EAAc,IAC5CA,EAAc,GAElB,IAAI8N,GAA4B,EAC5BC,GAAqC,EACrCC,GAAmC,EACnCC,GAAuC,EACvCC,GAAwC,EACxCxS,GAAuB,EACvByS,GAA6B,EAC7BC,EAAqC,EACrCzS,GAAwB,EACxB2E,GAA6B,EAEjC,MAAQuN,GACJ9N,EAAe0D,KAAK5jB,IAAI,EAAiB4jB,KAAK4K,MAAuB,EAAjBpgC,EAAIqgC,WAAiBV,IACzE3N,EACUwD,KAAK4K,OAAO9B,EAAgCE,EAAY5U,YAAe+V,GAEjF1P,EACUuF,KAAK4K,OAAO7B,EAAiCC,EAAY5U,YAAe+V,GAGlFlI,EAA2B4H,EAAUM,EACrCjI,EAA4B6H,EAAWI,EAEvC1K,EAAmCO,KAAK4K,MAAMvB,EAAgBc,GAC9D/I,EAA+BpB,KAAK4K,MAAMpB,EAAeW,GACzD9I,EAAgCrB,KAAK4K,MAAMjB,EAAgBQ,GAC3D9S,EAAgC2I,KAAK4K,MAAMpgC,EAAI67B,iBAAmB8D,GAClE/S,EAAmC4I,KAAK4K,MAAMpgC,EAAI0/B,iBAAmBC,GACrE3/B,EAAIsgC,QAAU1T,EAAqBC,EACnCkF,EACIyD,KAAK5jB,IACD,EACc4jB,KAAKC,OAAOz1B,EAAIugC,iBAAmBvgC,EAAIqgC,YAAcV,IAvH7C,EAyH9BxN,EACkBqD,KAAK4K,MAAMxB,EAAWe,GA1HV,EA2HJzK,EACtBuJ,GAA8B,EAAf3M,EAAmBC,GACtCK,EACkBoD,KAAK4K,MAAMzB,EAAUgB,GA9HT,EA+HJzK,EACtBuJ,GAA8B,EAAf3M,EAAmBC,GAClC/xB,EAAIq7B,iBAAmB,KAAOtJ,EAAc,IAC5CA,EAAc,GAElB8N,EAAgC,EAAb1N,EAAiBH,EAAkC,EAArBpF,EACjDkT,EAAyC,EAAb3N,EAAiBH,EAA+B,EAAlBnF,EAE1DkT,EAA0BvK,KAAK5jB,IAGnB4jB,KAAK4K,OAAqB5B,EAAYhV,UAAakV,GAAmBiB,GA1IpD,EA+IlBnK,KAAK4K,OACc5B,EAAYtU,aAAgBwU,GAAmBiB,GAhJhD,GAqJN,EAAf7N,EAAmBC,IAE5BiO,EAC8B,EAA1BD,EAA8B/N,EAAkC,EAArBpF,EAC/CqT,EAC8B,EAA1BF,EAA8B9P,EAAmC,EAArBrD,EAChDa,EAAcoS,EAAwC,EAArBjT,EACjCsT,EAAgC,EAAZ9N,EAAgBnC,EAAmC,EAArBrD,EAClDuT,EAAyC,EAAZ/N,EAAgBnC,EAAgC,EAAlBpD,EAC3Da,EAAewS,EAAyC,EAArBtT,EACnCyF,EAAmC,EAAfP,EAAmBC,EAEnC9B,EAAc+B,GAAchyB,EAAIw8B,aAC5ByD,EAA+BjgC,EAAIq7B,iBACnCsE,GAAO,EACPC,GAAO,GAEPA,GAAO,GAIN5/B,EAAIw8B,aAAewD,EAA8BF,GAC9C9/B,EAAIq7B,kBACPr7B,EAAIw8B,aAAe0D,EAAoBC,GACpCngC,EAAI07B,kBAERiE,GAAO,EACPC,GAAO,GAEPA,GAAO,EAMnB5/B,EAAIq2B,mBAAqBwJ,EACzB7/B,EAAI+8B,oBAAsBmD,EAE1Bz7B,EAAEgoB,yBACEgB,EACAC,EACAd,EACAC,EACA7sB,GAEJyE,EAAE+oB,uBAAuBX,EAAiBY,EAAaC,EAAc1tB,GAErEA,EAAIoa,IAAIomB,eAAiB/B,EAAc,EACnCvJ,EAAY,GAEZl1B,EAAIoa,IAAIyW,gCAAkC,QAC1C7wB,EAAIoa,IAAI0W,qBAAuB,IAAIqB,EAAaJ,EAA6B,EAAfD,GAAkBve,eAChFvT,EAAIoa,IAAI2W,oBAAsB,IAAIqB,EAAYL,EAA6B,EAAfD,GAAkBve,eAC9EvT,EAAIoa,IAAI4W,sBAAwB,GAAGgB,EAAa,GAAoB,EAAfF,EAAmBC,OACxE/xB,EAAIoa,IAAI6W,uBAAyB,GAAGhB,EAAc,GAAoB,EAAf6B,EAAmBC,OAE1EttB,EAAEotB,mBAAmBC,EAAcC,EAAaC,EAAY/B,EAAajwB,GACzEA,EAAIoa,IAAIqmB,SAAWh8B,EAAEurB,SACjBgC,EACA/B,EACAjwB,EAAI0gC,kBACJ1gC,EAAImwB,qBACJnwB,EAAIkF,iBACJlF,EAAIu8B,IAERv8B,EAAIoa,IAAIumB,UAAY,GAAG7O,EAAave,eACpCvT,EAAIoa,IAAIwmB,SAAW,GAAG9O,EAAave,eACnCvT,EAAIoa,IAAIymB,WAAa,GAAG7O,EAAWze,eACnCvT,EAAIoa,IAAI0mB,YAAc,GAAG7Q,EAAY1c,gBAC9BkrB,EAAc,GAErBz+B,EAAIoa,IAAIyW,gCAAkC,QAC1C7wB,EAAIoa,IAAI0W,qBAAuB,MAC/B9wB,EAAIoa,IAAI2W,oBAAsB,MAC9B/wB,EAAIoa,IAAI4W,sBAAwB,GAChChxB,EAAIoa,IAAI6W,uBAAyB,GACjCxsB,EAAEysB,oBAAoBlxB,GACtByE,EAAEytB,qBACEC,EACAC,EACAC,EACAL,EACA/B,EACAjwB,GAEJA,EAAIoa,IAAIqmB,SAAWh8B,EAAEurB,SACjBgC,EACA/B,EACAjwB,EAAI0gC,kBACJ1gC,EAAImwB,qBACJnwB,EAAIkF,iBACJlF,EAAIu8B,IAERv8B,EAAIoa,IAAIumB,UAAY,GAAGxO,EAAW5e,eAClCvT,EAAIoa,IAAIwmB,SAAW,GAAGxO,EAAU7e,eAChCvT,EAAIoa,IAAIymB,WAAa,GAAG7O,EAAWze,eACnCvT,EAAIoa,IAAI0mB,YAAc,GAAG7Q,EAAY1c,iBAErCvT,EAAIoa,IAAIyW,gCAAkC,QAC1C7wB,EAAIoa,IAAI0W,qBAAuB,IAAIqB,EAAaL,GAAcve,eAC9DvT,EAAIoa,IAAI2W,oBAAsB,IAAIqB,EAAYN,GAAcve,eAC5DvT,EAAIoa,IAAI4W,sBAAwB,IAAIgB,EAA4B,EAAfF,GAAkBve,eACnEvT,EAAIoa,IAAI6W,uBAAyB,IAAIhB,EAA6B,EAAf6B,GAAkBve,eACrE9O,EAAEysB,oBAAoBlxB,GACtBA,EAAIoa,IAAIqmB,SAAWh8B,EAAEurB,SACjBgC,EACA/B,EACAjwB,EAAI0gC,kBACJ1gC,EAAImwB,qBACJnwB,EAAIkF,iBACJlF,EAAIu8B,IAERv8B,EAAIoa,IAAIumB,UAAY,GAAG7O,EAAave,eACpCvT,EAAIoa,IAAIwmB,SAAW,GAAG9O,EAAave,eACnCvT,EAAIoa,IAAIymB,WAAa,GAAG7O,EAAWze,eACnCvT,EAAIoa,IAAI0mB,YAAc,GAAG7Q,EAAY1c,gBAGzC,IAAIwtB,EAAkBt8B,EAAEswB,uBACpB0J,EACApM,EACA5E,EACAwH,EACA7C,EACAN,EACAoD,EACAnD,EACA/xB,GAGAg3B,GAAoB,EA2BxB,GA1BIyH,EAAc,GACdz+B,EAAIoa,IAAI0c,aAAe92B,EAAI+2B,YAAc,EAClB,GAAnB/2B,EAAI+2B,cACJ/2B,EAAIoa,IAAIC,SAAW5V,EAAEwyB,UAAUL,EAAgB52B,GAC/CA,EAAIoa,IAAI8c,UAAY,GAAiB1B,KAAKC,MAAoBtD,EAA4BH,EAAc,EAAkB4E,EAAkB,OAC5I52B,EAAIoa,IAAI+c,SAAW,GAAkBhF,EAAalC,EAAcwO,EAAcpM,EAAoBmD,KAAKC,OAAqBtD,EAA4BsM,EAA6BpM,GAAsB,EAAkBwE,EAAmB,OAChP72B,EAAIoa,IAAIgd,WAAa,GAAGR,EAAerjB,eACvCvT,EAAIoa,IAAIid,YAAc,GAAGR,EAAgBtjB,iBAG7CyjB,EAAWvyB,EAAEkyB,mBACT8H,EACApM,EACAP,EACAoD,EACAnD,EACAI,EACAH,EACA/B,EACA2G,EACAC,EACA72B,GAIRA,EAAIoa,IAAIof,WAAax5B,EAAIs8B,iBACrBt8B,EAAIs8B,iBAAkB,CACtB,IAAI0E,EAEK7O,EACGlC,EACA6B,EACAoD,GAAanD,EAAcD,GAC3B2M,EAAcpM,EAIdmD,KAAKC,OACctD,EACGL,EACAoD,GACKnD,EAA6BD,GAClC2M,EAA6BpM,GAC3C,EACcqF,EAAc,GAI7B,EAAf5F,EACAmP,EAGQzL,KAAKC,MACatD,EACIH,EAAc,EACdyF,EAAa,GAI5B,EAAf3F,EACJrtB,EAAE6yB,oBACE2J,EACAD,EACAvJ,EACAC,EACA5F,EACArE,EACAztB,EAER,CACA,GAAIA,EAAIkF,kBAAkCT,EAAE4kB,oBAAoBgU,MAAQ,CACpEr9B,EAAIoa,IAAIgb,kBAAmB,EAC3Bp1B,EAAIoa,IAAI8mB,eAAgB,EACxB,IAAIC,EAAqB,KACrBC,EAAsB,IACtBC,EAAqC7L,KAAKC,MAAM0L,EAAaxB,GAC7D2B,EAAsC9L,KAAKC,MAAM2L,EAAczB,GACnE3/B,EAAIoa,IAAImnB,iCAAmC,QAC3CvhC,EAAIoa,IAAIonB,sBAAwB,GAExBhM,KAAKC,MACatD,EACIH,EAAc,EACdqP,EAAgB,GAG3C9tB,eACHvT,EAAIoa,IAAIqnB,qBAAuB,IAGnBjM,KAAKC,OACctD,EACGL,EACdoD,GAA2BnD,EAAeD,IAC1C,EACAwP,EAAgB,GAG5BxP,GACNve,eACFvT,EAAIoa,IAAIsnB,uBAAyB,IAAIL,EAA8B,EAAfvP,GAAkBve,eACtEvT,EAAIoa,IAAIunB,wBAA0B,IAAIL,EAA+B,EAAfxP,GAAkBve,eACxEvT,EAAIoa,IAAIwnB,8BAAgC,GAAGP,EAAa9tB,kBAAkB+tB,EAAc/tB,eACxFvT,EAAIoa,IAAIynB,UAAYp9B,EAAEksB,WAAW0Q,EAAcrhC,EAAImwB,sBACnDnwB,EAAIoa,IAAI0nB,WAAa,GAAGhQ,EAAave,eACrCvT,EAAIoa,IAAI2nB,UAAY,GAAGjQ,EAAave,eACpCvT,EAAIoa,IAAI4nB,YAAc,GAAGX,EAAa9tB,eACtCvT,EAAIoa,IAAI6nB,aAAe,GAAGX,EAAc/tB,eACxCvT,EAAIoa,IAAI8nB,mBAAqB,GAAGb,EAAa9tB,kBAAkB+tB,EAAc/tB,cACjF,CACA,GACIvT,EAAIkF,kBAAkCT,EAAE4kB,oBAAoB8T,QAC5Dn9B,EAAIkF,kBAAkCT,EAAE4kB,oBAAoB+T,QAC9D,CACEp9B,EAAIoa,IAAI+nB,gBAAiB,EACzB,IAAI39B,EACMgxB,KAAKC,OAAqBtD,EAAaJ,EAA6B,EAAfD,GAAqB,GAEhFsQ,EACM5M,KAAKC,MAAM,gBAAiChI,GAElD2U,EAAe,GAAK,IACpBA,GAAgB,GAEpBA,GAAgB,EAChB,IAAIC,EAAyDD,EAAgB,EAAM,EAC/EpiC,EAAIq7B,iBAAmB,OACvBgH,EAAiDD,EAAgB,EAAM,GAEvEC,EAAoB,GAAK,IACrBriC,EAAIq7B,iBAAmB,KAA8B,KAAvBr7B,EAAIq7B,gBAClCgH,GAAqB,EAErBA,GAAqB,GAG7BriC,EAAIoa,IAAIkoB,eAAiB,IAAItiC,EAAIiyB,oBACjC,IAAIsQ,EAAoB/9B,GAAQ49B,EAAeC,GAAqB,EAChEG,EAAoBh+B,EAAgB49B,EAAe,EACnDK,EACAD,GAAsBJ,EAAeC,GAAqB,EAC1DK,EAAsBhV,EAAelpB,EAAOA,EAAO49B,EACnDO,EAAsBD,GAAeN,EAAeC,GAsDxD,GApDAriC,EAAIoa,IAAIwoB,eAAiB,GAAGR,MAC5BpiC,EAAIoa,IAAIyoB,gBAAkB,GAAGT,MAC7BpiC,EAAIoa,IAAI0oB,oBAAsB,GAAGT,MACjCriC,EAAIoa,IAAI2oB,qBAAuB,GAAGV,MAElCriC,EAAIoa,IAAI4oB,cAAgB,GAAGR,MAC3BxiC,EAAIoa,IAAI6oB,gBAAkB,GAAGT,MAC7BxiC,EAAIoa,IAAI8oB,aAAe,GAAGV,MAC1BxiC,EAAIoa,IAAI+oB,cAAgB,GAAGX,MAC3BxiC,EAAIoa,IAAIgpB,gBAAkB,GAAGV,MAC7B1iC,EAAIoa,IAAIipB,iBAAmB,GAAGX,MAE9B1iC,EAAIoa,IAAIkpB,mBAAqB,GAAGb,MAChCziC,EAAIoa,IAAImpB,qBAAuB,GAAGd,MAClCziC,EAAIoa,IAAIopB,kBAAoB,GAAGf,MAC/BziC,EAAIoa,IAAIqpB,mBAAqB,GAAGhB,MAChCziC,EAAIoa,IAAIspB,qBAAuB,GAAGf,MAClC3iC,EAAIoa,IAAIupB,sBAAwB,GAAGhB,MAC/B3iC,EAAIkF,kBAAkCT,EAAE4kB,oBAAoB8T,SAC5D4D,EAAUt8B,EAAEsxB,qBACR0I,EACApM,EACA5E,EACAwH,EACA7C,EACAN,EACAoD,EACAnD,EACA9B,EACAjwB,IAGRA,EAAIoa,IAAIwpB,mBAAqB7C,EAAU,EACvC/gC,EAAIoa,IAAIypB,eACJ7jC,EAAIkF,kBAAkCT,EAAE4kB,oBAAoB8T,OAChEn9B,EAAIoa,IAAI0pB,oBACJ9jC,EAAIkF,kBAAkCT,EAAE4kB,oBAAoB+T,SAC5DpG,EAAW,EAEfh3B,EAAIoa,IAAI2pB,cAAgB,GAAGv/B,MAC3BxE,EAAIoa,IAAI4pB,eAAiB,GAAGx/B,MAC5BxE,EAAIoa,IAAI6pB,aAAkBz/B,EAAO49B,EAAe,EAAzB,KACvBpiC,EAAIoa,IAAI8pB,aAAkB1/B,EAAO49B,EAAe,EAAzB,KACvBpiC,EAAIoa,IAAI+pB,kBAAuB5B,EAAYH,EAAe,EAA9B,KAC5BpiC,EAAIoa,IAAIgqB,kBAAuB7B,EAAYH,EAAe,EAA9B,KAC5BpiC,EAAIoa,IAAIiqB,gBAAkB,GAAGjC,MAC7BpiC,EAAIoa,IAAIkqB,gBAAkB,GAAGlC,MAC7BpiC,EAAIoa,IAAImqB,qBAAuB,GAAGlC,MAClCriC,EAAIoa,IAAIoqB,qBAAuB,GAAGnC,MAClCriC,EAAIoa,IAAIqqB,mBAAqB,GAAGhC,MAChCziC,EAAIoa,IAAIsqB,oBAAsB,GAAGjC,MAE7BziC,EAAIkF,kBAAkCT,EAAE4kB,oBAAoB8T,OAAS,CACrE,IAAIr1B,EAAa9H,EAAIoa,IAAIwpB,mBACnB7C,EAAU9L,EACVxH,EAAcjpB,EAAOA,EAC3BxE,EAAIoa,IAAIuqB,eAAiB,GAAG78B,MAC5B9H,EAAIoa,IAAIwqB,eAAiB,GAAG98B,MAC5B9H,EAAIoa,IAAIyqB,oBAAsB,GAAG/8B,MACjC9H,EAAIoa,IAAI0qB,oBAAsB,GAAGh9B,KACrC,MAAO,GAAI9H,EAAIkF,kBAAkCT,EAAE4kB,oBAAoB+T,QAAU,CAC7E,IAAIt1B,EAAa9H,EAAIoa,IAAI0pB,oBACnB9M,EAAwCxyB,EAAQ,KAChDipB,EAAcjpB,EAAOA,EAC3BxE,EAAIoa,IAAIuqB,eAAiB,GAAG78B,MAC5B9H,EAAIoa,IAAIwqB,eAAiB,GAAG98B,MAC5B9H,EAAIoa,IAAIyqB,oBAAsB,GAAG/8B,MACjC9H,EAAIoa,IAAI0qB,oBAAsB,GAAGh9B,KACrC,CAeA,GAbA9H,EAAIoa,IAAI2qB,cAAgB,GAAGvgC,MAC3BxE,EAAIoa,IAAI4qB,eAAiB,GAAGxgC,MAC5BxE,EAAIoa,IAAI6qB,aAAkBzgC,EAAO49B,EAAe,EAAzB,KACvBpiC,EAAIoa,IAAI8qB,aAAkB1gC,EAAO49B,EAAe,EAAzB,KACvBpiC,EAAIoa,IAAI+qB,kBAAuB5C,EAAYH,EAAe,EAA9B,KAC5BpiC,EAAIoa,IAAIgrB,kBAAuB7C,EAAYH,EAAe,EAA9B,KAC5BpiC,EAAIoa,IAAIirB,gBAAkB,GAAGjD,MAC7BpiC,EAAIoa,IAAIkrB,gBAAkB,GAAGlD,MAC7BpiC,EAAIoa,IAAImrB,qBAAuB,GAAGlD,MAClCriC,EAAIoa,IAAIorB,qBAAuB,GAAGnD,MAClCriC,EAAIoa,IAAIqrB,mBAAqB,GAAGhD,MAChCziC,EAAIoa,IAAIsrB,oBAAsB,GAAGjD,MAE7BziC,EAAIkF,kBAAkCT,EAAE4kB,oBAAoB8T,OAAS,CACrE,IAAIr1B,EAAa2lB,EAAcjpB,EAAOA,EACtCxE,EAAIoa,IAAIurB,eAAiB,GAAG79B,MAC5B9H,EAAIoa,IAAIwrB,eAAiB,GAAG99B,MAC5B9H,EAAIoa,IAAIyrB,oBAAsB,GAAG/9B,MACjC9H,EAAIoa,IAAI0rB,oBAAsB,GAAGh+B,MACjC9H,EAAIoa,IAAI0c,cAAe,CAC3B,MAAO,GAAI92B,EAAIkF,kBAAkCT,EAAE4kB,oBAAoB+T,QAAU,CAC7E,IAAIt1B,EAAa9H,EAAIoa,IAAIwpB,mBACnB7C,EAAU9L,EACVxH,EAAcjpB,EAAOA,EAC3B,GAAIxE,EAAIoa,IAAIwpB,oBAAsB5jC,EAAI8+B,0BAA4B,IAAK,CACnE,IAAIiH,EAAiB,EACjB/lC,EAAIoa,IAAIwpB,oBAAsB5jC,EAAI8+B,0BAA4B,EAC9DiH,EAAS,KACF/lC,EAAIoa,IAAIwpB,oBAAsB5jC,EAAI8+B,0BAA4B,IACrEiH,EAAS,KACF/lC,EAAIoa,IAAIwpB,oBAAsB5jC,EAAI8+B,0BAA4B,EACrEiH,EAAS,KAET/lC,EAAIoa,IAAIwpB,oBACR5jC,EAAI8+B,0BAA4B,MAEhCiH,EAAS,KACF/lC,EAAIoa,IAAIwpB,oBAAsD,KAAhC5jC,EAAI8+B,yBACzCiH,EAAS,MACF/lC,EAAIoa,IAAIwpB,oBAAsB5jC,EAAI8+B,0BAA4B,IACrEiH,EAAS,MACF/lC,EAAIoa,IAAIwpB,oBAAsB5jC,EAAI8+B,0BAA4B,IACrEiH,EAAS,KACF/lC,EAAIoa,IAAIwpB,oBAAsB5jC,EAAI8+B,0BAA4B,IACrEiH,EAAS,MACF/lC,EAAIoa,IAAIwpB,oBAAsB5jC,EAAI8+B,0BAA4B,IACrEiH,EAAS,IACF/lC,EAAIoa,IAAIwpB,oBAAsB5jC,EAAI8+B,0BAA4B,EACrEiH,EAAS,MACF/lC,EAAIoa,IAAIwpB,oBAAsB5jC,EAAI8+B,0BAA4B,MACrEiH,EAAS,OAET/lC,EAAIy6B,gBAAkB,IAAOz6B,EAAI26B,iBAAmB,IAAMoL,EAAS,KACnEA,GAAkB,MAEtB,IAAIC,EAAgBl+B,EAChB9H,EAAIoa,IAAIwpB,oBAAsB5jC,EAAI8+B,0BAA4B,MAC9Dh3B,GAG2Bi5B,EAAyB9L,GACxC8Q,GAIhB/lC,EAAIimC,MAAQ,GAAGjmC,EAAI8+B,sCAAsCiH,cAAmBC,cAAkBl+B,WAAY9H,EAAIy6B,uBAAuBz6B,EAAI26B,iBAC7I,CACA36B,EAAIoa,IAAIurB,eAAiB,GAAG79B,MAC5B9H,EAAIoa,IAAIwrB,eAAiB,GAAG99B,MAC5B9H,EAAIoa,IAAIyrB,oBAAsB,GAAG/9B,MACjC9H,EAAIoa,IAAI0rB,oBAAsB,GAAGh+B,KACrC,CACJ,GAGE01B,EAAqBx9B,IACvB,IAAIs+B,EAA0B,EAC1BC,EAA2B,EAC3BC,EAAc/5B,EAAE81B,eAAev6B,GAInC,GAAIA,EAAIy6B,eAHiB,GAGY,CACjC,IAAIG,EAJiB,GAIY56B,EAAIy6B,eACrCz6B,EAAIy6B,eALiB,GAMrBz6B,EAAI26B,gBAAkB36B,EAAI26B,gBAAkBC,CAChD,CACA,GAAI56B,EAAI26B,gBAPkB,GAOa,CACnC,IAAIC,EARkB,GAQY56B,EAAI26B,gBACtC36B,EAAI26B,gBATkB,GAUtB36B,EAAIy6B,eAAiBz6B,EAAIy6B,eAAiBG,CAC9C,CACA0D,EAAkBt+B,EAAIy6B,eACtB8D,EAAmBv+B,EAAI26B,gBAEG36B,EAAIk8B,sBAA9B,IAEIhH,GAAqBl1B,EAAIk8B,uBAAyBl8B,EAAIm8B,eAAiB,EAAI,EAAI,EAS/EwC,EAAgCH,EAAYrU,iBADlB,IAE1ByU,EAAiCJ,EAAYpU,gBAFnB,IAI1ByU,EACA7+B,EAAI8+B,yBAA2B,EACzB9+B,EAAI8+B,yBACJrU,EAAWsU,wBACrBF,EACIP,EAAkB,IAAMC,EAAmB,GACpCM,EAAgBrJ,KAAK3jB,IAAI4Y,EAAWsU,wBAAyBJ,EAAU,IACxEE,EACVA,EACIL,EAAYjV,eAAiB,GAAKvpB,EAAI8+B,yBAA2B,EAAI,EAAID,EAE7E,IAAIG,EACAxJ,KAAK3jB,IAAI4Y,EAAWwU,oBAAqBX,EAAkB,GAC3Dt+B,EAAIk/B,0BACRF,EAAev6B,EAAA22B,gBAAgB4D,EAAch/B,GAC7C,IAAIm/B,EAAwB1U,EAAW2U,sBAAwBJ,EAAe,MAE1EK,EAAkB5U,EAAW6U,eAC7BC,EAAmB9U,EAAW+U,gBAC9BjB,GAAoB,IACpBc,EAAU,EACVE,EAAW,IAGf,IAAIE,EACW,EAAXb,EACAN,GACCt+B,EAAIy8B,wBAAiD,EAAvBz8B,EAAI0/B,iBAA8C,EAAvB1/B,EAAI67B,kBAC9D2C,EAAYnU,UACZmU,EAAYjU,YACZoV,EAA4BnK,KAAKC,OAAOz1B,EAAIq7B,gBAAkB,GAAKoE,GAEnEG,GAAgB,EAChB9N,GAAwB,EACxBE,GAAsB,EACtB/B,GAAuB,EAEvBwH,GAAqB,EACrBC,GAAsB,EAEtBzC,GAA8B,EAC9B2B,GAA0B,EAC1BC,GAA2B,EAC3BhK,GAA2B,EAC3BD,GAA8B,EAClC5sB,EAAIsgC,QAAU1T,EAAqBC,EACnC,IAAIsF,GAAsB,EACtBC,GAAqB,EACrBL,GAAuB,EACvB/xB,EAAIq7B,iBAAmB,KAAOtJ,EAAc,IAC5CA,EAAc,GAElB,IAAImU,GAAuB,EACvBC,GAAyB,EACzBC,GAA0B,EAC1BvG,GAA4B,EAC5BC,GAAqC,EACrCrS,GAAuB,EACvByS,GAA6B,EAC7BC,GAAsC,EACtCzS,GAAwB,EAE5B,MAAQkS,GACJ9N,EAAe0D,KAAK5jB,IAAI,EAAiB4jB,KAAK4K,MAAuB,EAAjBpgC,EAAIqgC,WAAiBV,IACzE3N,EACUwD,KAAK4K,OAAO9B,EAAgCE,EAAY5U,YAAe+V,GAEjF1P,EACUuF,KAAK4K,OAAO7B,EAAiCC,EAAY5U,YAAe+V,GAGlFlI,EAA2B4H,EAAUM,EACrCjI,EAA4B6H,EAAWI,EAEvC1K,EAAmCO,KAAK4K,MAAMvB,EAAgBc,GAC9D/I,EAA+BpB,KAAK4K,MAAMpB,EAAeW,GACzD9I,EAAgCrB,KAAK4K,MAAMjB,EAAgBQ,GAC3D9S,EAAgC2I,KAAK4K,MAAMpgC,EAAI67B,iBAAmB8D,GAClE/S,EAAmC4I,KAAK4K,MAAMpgC,EAAI0/B,iBAAmBC,GACrE3/B,EAAIsgC,QAAU1T,EAAqBC,EACnCsF,EACkBqD,KAAK4K,MAAMxB,EAAWe,GA5FV,EA4FwCzK,EACtE9C,EAA0BoD,KAAK4K,MAAMzB,EAAUgB,GA7FjB,EA6F+CzK,EAC7EnD,EACIyD,KAAK5jB,IACD,EACc4jB,KAAKC,OAAOz1B,EAAIugC,iBAAmBvgC,EAAIqgC,YAAcV,IAjG7C,EAmG1B3/B,EAAIq7B,iBAAmB,KAAOtJ,EAAc,IAC5CA,EAAc,GAElBmU,EACkB1Q,KAAK4K,MAAM5B,EAAYnU,UAAYsV,GAvGvB,EAwGJzK,EAAY,EACtCiR,EACkB3Q,KAAK4K,MAAM5B,EAAYjU,YAAcoV,GA1GzB,EA2GJzK,EAC1BkR,EACkB5Q,KAAK4K,MAAM5B,EAAYlU,aAAeqV,GA7G1B,EA8GJzK,EAC1B2K,EACiB,EAAb1N,EAAiBH,EAAkC,EAArBpF,EAAyBsZ,EAAcC,EACzErG,EACiB,EAAb3N,EAAiBH,EAA+B,EAAlBnF,EAAsBqZ,EAAcC,EACtE1Y,EAAcoS,EAAwC,EAArBjT,EACjCsT,EAAgC,EAAZ9N,EAAgBnC,EAAmC,EAArBrD,EAClDuT,EAAyC,EAAZ/N,EAAgBnC,EAAgC,EAAlBpD,EAC3Da,EAAewS,EAAyC,EAArBtT,EAG/BkT,EAA4B9/B,EAAIq7B,iBAChC8E,EAA6BngC,EAAI07B,iBAEjCiE,GAAO,EAEPC,GAAO,EAkGf,GA7FA5/B,EAAIq2B,mBAAqBwJ,EACzB7/B,EAAI+8B,oBAAsBmD,EAE1Bz7B,EAAEgoB,yBACEgB,EACAC,EACAd,EACAC,EACA7sB,GAEJyE,EAAE+oB,uBAAuBX,EAAiBY,EAAaC,EAAc1tB,GACrEA,EAAIoa,IAAIisB,gBAAiB,EAErBnR,EAAY,GACZl1B,EAAIoa,IAAIyW,gCAAkC,QAC1C7wB,EAAIoa,IAAI0W,qBAAuB,IAAIqB,EAAaJ,EAA6B,EAAfD,GAAkBve,eAChFvT,EAAIoa,IAAI2W,oBAAsB,IAAIqB,EAAYL,EAA6B,EAAfD,GAAkBve,eAC9EvT,EAAIoa,IAAI4W,sBAAwB,GAAGgB,EAAa,GAAoB,EAAfF,EAAmBC,OACxE/xB,EAAIoa,IAAI6W,uBAAyB,GAAGhB,EAAc,GAAoB,EAAf6B,EAAmBC,OAC1EttB,EAAEotB,mBAAmBC,EAAcC,EAAaC,EAAY/B,EAAajwB,GACzEA,EAAIoa,IAAIksB,kCAAoC,QAC5CtmC,EAAIoa,IAAImsB,uBAAyB,IAAIpU,EAAaH,EAAakU,EAAcnU,EAA6B,EAAfD,GAAkBve,eAC7GvT,EAAIoa,IAAIosB,sBAAwB,GAAkBhR,KAAKC,OAAqB/H,EAA8B0Y,EAA+C,EAAfrU,EAAiD,EAAhBD,GAAqB,GAAKve,eACrMvT,EAAIoa,IAAIqsB,wBAA0B,IAAIN,EAA8B,EAAdpU,EAAiC,EAAfD,GAAkBve,eAC1FvT,EAAIoa,IAAIssB,yBAA2B,IAAIN,EAA+B,EAAdrU,EAAiC,EAAfD,GAAkBve,eAC5FvT,EAAIoa,IAAIusB,4BAA8B,IAAI3mC,EAAIiyB,oBAC9CjyB,EAAIoa,IAAIwsB,iBAAmB,GAAG9U,EAAave,eAC3CvT,EAAIoa,IAAIysB,gBAAkB,GAAG/U,EAAave,eAC1CvT,EAAIoa,IAAI0sB,kBAAoB,IAAIX,EAAgB,GAAKrU,EAAeC,IAAcxe,eAClFvT,EAAIoa,IAAI2sB,mBAAqB,IAAIX,EAAiB,GAAKtU,EAAeC,IAAcxe,eACpFvT,EAAIoa,IAAI4sB,kCAAoC,QAC5ChnC,EAAIoa,IAAI6sB,uBAAyB,GAAGlV,EAAYxe,eAChDvT,EAAIoa,IAAI8sB,sBAAwB,GAAGnV,EAAYxe,eAC/CvT,EAAIoa,IAAI+sB,wBAA0B,IAAIhB,EAAgB,EAAIrU,GAAcve,eACxEvT,EAAIoa,IAAIgtB,yBAA2B,IAAIhB,EAAiB,EAAItU,GAAcve,iBAE1EvT,EAAIoa,IAAIyW,gCAAkC,QAC1C7wB,EAAIoa,IAAI0W,qBAAuB,IAAIqB,EAAaL,GAAcve,eAC9DvT,EAAIoa,IAAI2W,oBAAsB,IAAIqB,EAAYN,GAAcve,eAC5DvT,EAAIoa,IAAI4W,sBAAwB,IAAIgB,EAA4B,EAAfF,GAAkBve,eACnEvT,EAAIoa,IAAI6W,uBAAyB,IAAIhB,EAA6B,EAAf6B,GAAkBve,eACrEvT,EAAIoa,IAAIksB,kCAAoC,QAC5CtmC,EAAIoa,IAAImsB,uBAAyB,IAAIpU,EAAaH,EAAakU,EAAcpU,GAAcve,eAC3FvT,EAAIoa,IAAIosB,sBAAwB,GAAkBhR,KAAKC,OAAqB/H,EAA8B0Y,GAAmB,GAAK7yB,eAClIvT,EAAIoa,IAAIqsB,wBAA0B,IAAIN,EAA+B,EAAfrU,GAAkBve,eACxEvT,EAAIoa,IAAIssB,yBAA2B,IAAIN,EAAgC,EAAftU,GAAkBve,eAC1E9O,EAAEysB,oBAAoBlxB,GACtBA,EAAIoa,IAAIusB,4BAA8B,OACtC3mC,EAAIoa,IAAIwsB,iBAAmB,MAC3B5mC,EAAIoa,IAAIysB,gBAAkB,MAC1B7mC,EAAIoa,IAAI0sB,kBAAoB,GAC5B9mC,EAAIoa,IAAI2sB,mBAAqB,GAC7B/mC,EAAIoa,IAAI4sB,kCAAoC,OAC5ChnC,EAAIoa,IAAI6sB,uBAAyB,MACjCjnC,EAAIoa,IAAI8sB,sBAAwB,MAChClnC,EAAIoa,IAAI+sB,wBAA0B,GAClCnnC,EAAIoa,IAAIgtB,yBAA2B,IAEvCpnC,EAAIoa,IAAIqmB,SAAWh8B,EAAEurB,SACjBgC,EACA/B,EACAjwB,EAAI0gC,kBACJ1gC,EAAImwB,qBACJnwB,EAAIkF,iBACJlF,EAAIu8B,IAERv8B,EAAIoa,IAAIumB,UAAY,GAAG7O,EAAave,eACpCvT,EAAIoa,IAAIwmB,SAAW,GAAG9O,EAAave,eACnCvT,EAAIoa,IAAIymB,WAAa,GAAG7O,EAAWze,eACnCvT,EAAIoa,IAAI0mB,YAAc,GAAG7Q,EAAY1c,eACrCvT,EAAIoa,IAAIitB,WAAa5iC,EAAEg1B,YAAY0M,EAAenmC,EAAImwB,sBACtDnwB,EAAIoa,IAAIktB,YAAc,GAAGxV,EAAave,eACtCvT,EAAIoa,IAAImtB,WAAa,GAAGzV,EAAave,eACrCvT,EAAIoa,IAAIotB,aAAe,GAAGrB,EAAc5yB,eACxCvT,EAAIoa,IAAIqtB,cAAgB,GAAGrB,EAAe7yB,eAC1CvT,EAAIoa,IAAIgb,iBAAmBp1B,EAAIq1B,gBAAkB,EAC7Cr1B,EAAIq1B,gBAAkB,IACtBr1B,EAAIoa,IAAIkb,aAAe7wB,EAAE8wB,cAAcN,EAAoBj1B,EAAIgX,mBAC/DhX,EAAIoa,IAAIsb,cAAgB,GAAiBF,KAAKC,MAAoBtD,EAA4BH,EAAc,EAAkBiD,EAAsB,OACpJj1B,EAAIoa,IAAIub,aAAe,GAAiBH,KAAKC,OAAqBrD,EAA2BN,EAA8BoD,GAA4BnD,EAA6BD,IAAkB,EAAkBmD,EAAsB,OAC9Oj1B,EAAIoa,IAAIwb,eAAiB,GAAGX,EAAmB1hB,eAC/CvT,EAAIoa,IAAIyb,gBAAkB,GAAGZ,EAAmB1hB,gBAEpDvT,EAAIoa,IAAI0c,aAAe92B,EAAI+2B,YAAc,EACrC/2B,EAAI+2B,YAAc,IAClB/2B,EAAIoa,IAAIC,SAAW5V,EAAEwyB,UAAUL,EAAgB52B,GAC/CA,EAAIoa,IAAI8c,UAAY,GAAiB1B,KAAKC,MAAoBtD,EAA4BH,EAAc,EAAkB4E,EAAkB,OAC5I52B,EAAIoa,IAAI+c,SAAW,GAAkB/E,EAAYnC,EAAc6B,EAAeoD,GAAanD,EAAcD,GAAgB0D,KAAKC,OAAqBrD,EAA2BN,EAA8BoD,GAA4BnD,EAA6BD,IAAkB,EAAkB+E,EAAmB,OAC5T72B,EAAIoa,IAAIgd,WAAa,GAAGR,EAAerjB,eACvCvT,EAAIoa,IAAIid,YAAc,GAAGR,EAAgBtjB,gBAG7CvT,EAAIoa,IAAIof,WAAax5B,EAAIs8B,iBACrBt8B,EAAIs8B,iBAAkB,CACtB,IAAI0E,EAGS5O,EACGnC,EACA6B,EACAoD,GAAanD,EAAcD,GAC3B0D,KAAKC,OACcrD,EACGN,EACAoD,GACKnD,EACGD,IACtB,EACc4F,EAAc,GAIjC,EAAf5F,EACAmP,EAGQzL,KAAKC,MACatD,EACIH,EAAc,EACdyF,EAAa,GAI5B,EAAf3F,EACJrtB,EAAE6yB,oBACE2J,EACAD,EACAvJ,EACAC,EACA5F,EACArE,EACAztB,EAER,GAGE29B,EAAmB39B,IACrB,IACIk1B,GAAqBl1B,EAAIk8B,uBAAyBl8B,EAAIm8B,eAAiB,EAAI,EAAI,EAE/EmC,EAA0B,EAC1BC,EAA2B,EAC3BmJ,EAA2B,EAC3BC,EAA4B,EAC5BC,EAAenjC,EAAE81B,eAAev6B,GAOpC,GAHAs+B,EAAkBt+B,EAAIy6B,eACtB8D,EAAmBv+B,EAAI26B,gBAEnB36B,EAAIy6B,eANiB,GAMY,CACjC,IAAIG,EAPiB,GAOY56B,EAAIy6B,eACrC6D,EARqB,GASrBC,EAAmBv+B,EAAI26B,gBAAkBC,CAC7C,CACA,GAAI56B,EAAI26B,gBAVkB,GAUa,CACnC,IAAIC,EAXkB,GAWY56B,EAAI26B,gBACtC4D,EAZsB,GAatBD,EAAkBt+B,EAAIy6B,eAAiBG,CAC3C,CAEA,IAAIiN,EAA0B,EAC1BC,EAA2B,EAE/B9nC,EAAIi7B,gBAAkBj7B,EAAIy6B,eAC1Bz6B,EAAIm7B,iBAAmBn7B,EAAI26B,gBAK3BkN,EAAkB7nC,EAAIi7B,iBAAmB,EAAIj7B,EAAIy6B,eAAiBz6B,EAAIi7B,gBACtE6M,EAAmB9nC,EAAIm7B,kBAAoB,EAAIn7B,EAAI26B,gBAAkB36B,EAAIm7B,iBACrEmD,EAAkBt+B,EAAIy6B,iBACtBoN,EAAmBvJ,EAAkBt+B,EAAIy6B,eAAkBoN,EAC3DC,EAAoBvJ,EAAmBv+B,EAAI26B,gBAAmBmN,GAElE,IAAIC,EAAetjC,EAAEs2B,gBAAgB/6B,GACrC0nC,EAAmBpJ,EACnBqJ,EAAoBpJ,EAGhBmJ,EAAmBG,EAAkB,OAErCvJ,EAAmBoJ,EAAmB1nC,EAAIi7B,gBAAmBqD,EAC7DC,EAAoBoJ,EAAoB3nC,EAAIm7B,iBAAoBoD,GAGpE,IAAIyJ,GAAoB,EACpBC,GAAiB,EACjBC,GAAqBloC,EAAIkG,aAC7B,GAA0B,IAAtBlG,EAAI0K,eAA6C,IAAtB1K,EAAI0K,cAC/B,GAAI1K,EAAImoC,iBAAmB,IAAK,CAC5BH,GAAoB,EACpB,IAAII,EAAkB,IAAMpoC,EAAImoC,iBAChCnoC,EAAIkG,cAAe,EACnByhC,EAAoBpJ,EACpBmJ,EAAmBnJ,EAAmB6J,EAEtC,IAAIzc,EAAK2S,EACLzS,EAAK0S,EAITD,EAHSoJ,EAITnJ,EAHSoJ,EAITD,EAAmB/b,EACnBgc,EAAoB9b,CACxB,KAAO,CACHmc,GAAoB,EACpB,IAAIK,EAAe,EACdroC,EAAIkG,eACLlG,EAAIkG,cAAe,EACnBwhC,EAAmBC,EACnBA,EAAoBD,EACpBO,GAAiB,GAgBD,IAXhBI,EAFAroC,EAAImoC,iBAAmB,GAER,EACRnoC,EAAImoC,iBAAmB,IAA8B,KAAxBnoC,EAAImoC,iBAE7BnoC,EAAImoC,iBACJ,IAII,IAGMF,GACrBN,EAAoBrJ,GAAmBt+B,EAAImoC,iBAAmB,KAC9DT,EAAmBpJ,GACK,IAAjB+J,IAEPV,GAAwCU,EAEhD,CAGJ,IAAI7J,EACAoJ,EAAare,eAAiBwe,EAAaxe,cAAgBqe,EAAeG,EAS1EpJ,EAAgCH,EAAYtU,aADlB,IAE1B0U,EAAiCJ,EAAYtU,aAFnB,IAI1B2U,EACA7+B,EAAI8+B,yBAA2B,EACzB9+B,EAAI8+B,yBACJrU,EAAWsU,wBACrBF,EACIP,EAAkB,IAAMC,EAAmB,GACpCM,EAAgBrJ,KAAK3jB,IAAI4Y,EAAWsU,wBAAyBJ,EAAU,IACxEE,EACVA,EACIL,EAAYjV,eAAiB,GAAKvpB,EAAI8+B,0BAA4B,EAAI,EAAID,EAE9E,IAAIG,EACAxJ,KAAK3jB,IAAI4Y,EAAWwU,oBAAqBX,EAAkB,GAC3Dt+B,EAAIk/B,0BACJ8I,IACAhJ,EACIxJ,KAAK3jB,IAAI4Y,EAAWwU,oBAAqByI,EAAmB,GAC5D1nC,EAAIk/B,2BAEZF,EAAev6B,EAAE22B,gBAAgB4D,EAAch/B,GAC/C,IAAIm/B,EAAwB1U,EAAW2U,sBAAwBJ,EAAe,MAG1EK,EAAkB5U,EAAW6U,eAC7BC,EAAmB9U,EAAW+U,gBAC9BjB,GAAoB,IACpBc,EAAU,EACVE,EAAW,IAGf,IAAIE,EACW,EAAXb,EACApJ,KAAK5jB,IAAI0sB,EAAiBoJ,IACzB1nC,EAAIy8B,wBAAiD,EAAvBz8B,EAAI0/B,iBAA8C,EAAvB1/B,EAAI67B,kBAC9D8D,EAA4BnK,KAAKC,OAAOz1B,EAAIq7B,gBAAkB,GAAKoE,GACnEG,GAAgB,EAChB0I,EAAoB,EACpBxW,GAAwB,EACxBE,GAAsB,EACtB/B,GAAuB,EACvBsY,GAAuB,EACvBC,GAAwB,EACxBC,GAAiC,EACjChR,GAAqB,EACrBC,GAAsB,EACtBzC,GAA8B,EAC9B2B,GAA0B,EAC1BC,GAA2B,EAC3BhK,GAA2B,EAC3BD,GAA8B,EAC9BuF,GAAsB,EACtBC,GAAqB,EACrBL,GAAuB,EACvB8N,EAA2B,EAC3BC,EAAoC,EACpCI,EAA4B,EAC5BC,EAAqC,EACrC1S,GAAuB,EACvBC,GAAwB,EAC5B,MAAQkS,GACJ0I,GAAa,EACbxW,EAAe0D,KAAK5jB,IAAI,EAAiB4jB,KAAK4K,MAAuB,EAAjBpgC,EAAIqgC,WAAiBV,IACzE3N,EACUwD,KAAK4K,OAAO9B,EAAgCE,EAAY5U,YAAe+V,GAEjF1P,EACUuF,KAAK4K,OAAO7B,EAAiCC,EAAY5U,YAAe+V,GAElF4I,EACU/S,KAAK4K,OAAOsH,EAAiClJ,EAAY5U,YAAe+V,GAElF6I,EACUhT,KAAK4K,OAAOuH,EAAkCnJ,EAAY5U,YAAe+V,GAEnF8I,EACkBjT,KAAK4K,MAhMO,KAgMqBT,GA9LrB,EA+LJzK,EAAY,EAEtCuC,EAA2B4H,EAAUM,EACrCjI,EAA4B6H,EAAWI,EAEvC1K,EAAmCO,KAAK4K,MAAMvB,EAAgBc,GAC9D/I,EAA+BpB,KAAK4K,MAAMpB,EAAeW,GACzD9I,EAAgCrB,KAAK4K,MAAMjB,EAAgBQ,GAC3D9S,EAAgC2I,KAAK4K,MAAMpgC,EAAI67B,iBAAmB8D,GAClE/S,EAAmC4I,KAAK4K,MAAMpgC,EAAI0/B,iBAAmBC,GACrE3/B,EAAIsgC,QAAU1T,EAAqBC,EACnCsF,EACkBqD,KAAK4K,MAAMxB,EAAWe,GA3MV,EA2MwCzK,EACtE9C,EAA0BoD,KAAK4K,MAAMzB,EAAUgB,GA5MjB,EA4M+CzK,EAC7EnD,EACIyD,KAAK5jB,IACD,EACc4jB,KAAKC,OAAOz1B,EAAIugC,iBAAmBvgC,EAAIqgC,YAAcV,IAhN7C,EAkN1B3/B,EAAIq7B,iBAAmB,KAAOtJ,EAAc,IAC5CA,EAAc,GAElB8N,EAAmB,EACnBC,EAA4B,EAC5BI,EAAoB,EACpBC,EAA6B,EACzBngC,EAAIkG,cACJ25B,EACiB,EAAb1N,EAAiBqD,KAAK5jB,IAAIogB,EAAYuW,GAAoC,EAArB3b,EACzDkT,EACiB,EAAb3N,EAAiBqD,KAAK5jB,IAAIogB,EAAYuW,GAAiC,EAAlB1b,EACzDqT,EACgB,EAAZ9N,EACAnC,EACAuY,EACAC,EACqB,EAArB7b,EACJuT,EACgB,EAAZ/N,EACAnC,EACAuY,EACAC,EACkB,EAAlB5b,IAEJgT,EACiB,EAAb1N,EACAH,EACAuW,EACAE,EACqB,EAArB7b,EACJkT,EACiB,EAAb3N,EACAH,EACAuW,EACAE,EACkB,EAAlB5b,EACJqT,EACgB,EAAZ9N,EAAgBoD,KAAK5jB,IAAIqe,EAAauY,GAAqC,EAArB5b,EAC1DuT,EACgB,EAAZ/N,EAAgBoD,KAAK5jB,IAAIqe,EAAauY,GAAkC,EAAlB3b,GAG9DY,EAAcoS,EAAwC,EAArBjT,EACjCc,EAAewS,EAAyC,EAArBtT,EAE/BqD,EAAc+B,GAAchyB,EAAIw8B,aAE5B0D,EAAoBlgC,EAAIq7B,iBACxBwE,EAAmB7/B,EAAIq7B,gBAEvBsE,GAAO,EAEPC,GAAO,GAIN5/B,EAAIw8B,aAAeqD,EAAmBC,GACnC9/B,EAAIq7B,kBACPr7B,EAAIw8B,aAAe0D,EAAoBC,GACpCngC,EAAI07B,iBAERiE,GAAO,EAEPC,GAAO,EAGX0I,EAAY,MACZ1I,GAAO,GAmOf,GA/NA5/B,EAAIq2B,mBAAqBwJ,EACzB7/B,EAAI+8B,oBAAsBmD,EAE1Bz7B,EAAEgoB,yBACEgB,EACAC,EACAd,EACAC,EACA7sB,GAEJyE,EAAE+oB,uBAAuBX,EAAiBY,EAAaC,EAAc1tB,GACjEk1B,EAAY,EACRl1B,EAAIkG,cAEJlG,EAAIoa,IAAIyW,gCAAkC,QAC1C7wB,EAAIoa,IAAI0W,qBAAuB,IAAIqB,IAAe1E,EAAc,EAAI0E,GAAc,EAAIH,EAAa,GAAKD,EAA6B,EAAfD,GAAkBve,eACxIvT,EAAIoa,IAAI2W,oBAAsB,IAAIqB,EAAYL,EAA6B,EAAfD,GAAkBve,eAC9EvT,EAAIoa,IAAI4W,sBAAwB,GAAGgB,EAAa,GAAoB,EAAfF,EAAmBC,OACxE/xB,EAAIoa,IAAI6W,uBAAyB,GAAGhB,EAAc,GAAoB,EAAf6B,EAAmBC,OAC1E/xB,EAAIoa,IAAIsuB,gCAAkC,QAC1C1oC,EAAIoa,IAAIuuB,qBAAuB,IAAIxW,IAAe1E,EAAc,EAAI0E,GAAc,EAAIoW,EAAc,GAAKxW,EAA6B,EAAfD,GAAkBve,eACzIvT,EAAIoa,IAAIwuB,oBAAsB,IAAIxW,EAAYnC,EAAcwY,EAAwB1W,EAA6B,EAAfD,GAAkBve,eACpHvT,EAAIoa,IAAIyuB,sBAAwB,GAAGN,EAAc,GAAoB,EAAfzW,EAAmBC,OACzE/xB,EAAIoa,IAAI0uB,uBAAyB,GAAGN,EAAe,GAAoB,EAAf1W,EAAmBC,OAC3EttB,EAAEotB,mBAAmBC,EAAcC,EAAaC,EAAY/B,EAAajwB,GACzEA,EAAIoa,IAAI2uB,0BAA4B,IAAI/oC,EAAIiyB,oBAC5CjyB,EAAIoa,IAAI4uB,eAAiB,GAAGlX,EAAave,eACzCvT,EAAIoa,IAAI6uB,cAAgB,GAAGnX,EAAave,eACxCvT,EAAIoa,IAAI8uB,gBAAkB,IAAIX,EAA4B,EAAdxW,EAAiC,EAAfD,GAAkBve,eAChFvT,EAAIoa,IAAI+uB,iBAAmB,IAAIX,EAA6B,EAAdzW,EAAiC,EAAfD,GAAkBve,eAClFvT,EAAIoa,IAAIgvB,gCAAkC,QAC1CppC,EAAIoa,IAAIivB,qBAAuB,GAAGtX,EAAYxe,eAC9CvT,EAAIoa,IAAIkvB,oBAAsB,GAAGvX,EAAYxe,eAC7CvT,EAAIoa,IAAImvB,sBAAwB,IAAIhB,EAA6B,EAAfzW,GAAkBve,eACpEvT,EAAIoa,IAAIovB,uBAAyB,IAAIhB,EAA8B,EAAf1W,GAAkBve,iBAEtEvT,EAAIoa,IAAIyW,gCAAkC,QAC1C7wB,EAAIoa,IAAI0W,qBAAuB,IAAIqB,EAAaJ,EAA6B,EAAfD,GAAkBve,eAChFvT,EAAIoa,IAAI2W,oBAAsB,IAC1BqB,IACE1E,EAAe,EAAI0E,GAAa,EAAInC,EAAc,GACpD8B,EACe,EAAfD,GACFve,eACFvT,EAAIoa,IAAI4W,sBAAwB,IAAIgB,EAAa,GAAoB,EAAfF,EAAmBC,IAAcxe,eACvFvT,EAAIoa,IAAI6W,uBAAyB,IAAIhB,EAAc,GAAoB,EAAf6B,EAAmBC,IAAcxe,eACzFvT,EAAIoa,IAAIsuB,gCAAkC,QAC1C1oC,EAAIoa,IAAIuuB,qBAAuB,IAC3BxW,EACAH,EACAyW,EACA1W,EACe,EAAfD,GACFve,eACFvT,EAAIoa,IAAIwuB,oBAAsB,IAC1BxW,IACE1E,EAAe,EAAI0E,GAAa,EAAIoW,EAAe,GACrDzW,EACe,EAAfD,GACFve,eACFvT,EAAIoa,IAAIyuB,sBAAwB,IAAIN,EAAc,GAAoB,EAAfzW,EAAmBC,IAAcxe,eACxFvT,EAAIoa,IAAI0uB,uBAAyB,IAAIN,EAAe,GAAoB,EAAf1W,EAAmBC,IAAcxe,eAC1F9O,EAAEotB,mBAAmBC,EAAcC,EAAaC,EAAY/B,EAAajwB,GACzEA,EAAIoa,IAAI2uB,0BAA4B,IAAI/oC,EAAIiyB,oBAC5CjyB,EAAIoa,IAAI4uB,eAAiB,GAAGlX,EAAave,eACzCvT,EAAIoa,IAAI6uB,cAAgB,GAAGnX,EAAave,eACxCvT,EAAIoa,IAAI8uB,gBAAkB,IAAIX,EAA4B,EAAdxW,EAAiC,EAAfD,GAAkBve,eAChFvT,EAAIoa,IAAI+uB,iBAAmB,IAAIX,EAA6B,EAAdzW,EAAiC,EAAfD,GAAkBve,eAClFvT,EAAIoa,IAAIgvB,gCAAkC,QAC1CppC,EAAIoa,IAAIivB,qBAAuB,GAAGtX,EAAYxe,eAC9CvT,EAAIoa,IAAIkvB,oBAAsB,GAAGvX,EAAYxe,eAC7CvT,EAAIoa,IAAImvB,sBAAwB,IAAIhB,EAA6B,EAAfzW,GAAkBve,eACpEvT,EAAIoa,IAAIovB,uBAAyB,IAAIhB,EAA8B,EAAf1W,GAAkBve,iBAGtEvT,EAAIkG,cACJlG,EAAIoa,IAAIyW,gCAAkC,QAC1C7wB,EAAIoa,IAAI0W,qBACJqB,IACE1E,EAAc,EAAI0E,GAAc,EAAIH,EAAa,GACnDF,EAH2B,KAK/B9xB,EAAIoa,IAAI2W,oBAAyBqB,EAAYN,EAAf,KAC9B9xB,EAAIoa,IAAI4W,sBAAwB,GAAGgB,EAA4B,EAAfF,MAChD9xB,EAAIoa,IAAI6W,uBAAyB,GAAGhB,EAA6B,EAAf6B,MAClD9xB,EAAIoa,IAAIsuB,gCAAkC,QAC1C1oC,EAAIoa,IAAIuuB,qBACJxW,IACE1E,EAAc,EAAI0E,GAAc,EAAIoW,EAAc,GACpDzW,EAH2B,KAK/B9xB,EAAIoa,IAAIwuB,oBAAyBxW,EAAYnC,EAAcwY,EAAwB3W,EAArD,KAC9B9xB,EAAIoa,IAAIyuB,sBAAwB,GAAGN,EAA6B,EAAfzW,MACjD9xB,EAAIoa,IAAI0uB,uBAAyB,GAAGN,EAA8B,EAAf1W,QAEnD9xB,EAAIoa,IAAIyW,gCAAkC,QAC1C7wB,EAAIoa,IAAI0W,qBAA0BqB,EAAaL,EAAhB,KAC/B9xB,EAAIoa,IAAI2W,oBACJqB,IACE1E,EAAe,EAAI0E,GAAa,EAAInC,EAAc,GACpD6B,EAH0B,KAK9B9xB,EAAIoa,IAAI4W,sBAAwB,GAAGgB,EAA4B,EAAfF,MAChD9xB,EAAIoa,IAAI6W,uBAAyB,GAAGhB,EAA6B,EAAf6B,MAClD9xB,EAAIoa,IAAIsuB,gCAAkC,QAC1C1oC,EAAIoa,IAAIuuB,qBAA0BxW,EAAaH,EAAayW,EAAwB3W,EAArD,KAC/B9xB,EAAIoa,IAAIwuB,oBACJxW,IACE1E,EAAe,EAAI0E,GAAa,EAAIoW,EAAe,GACrD1W,EAH0B,KAK9B9xB,EAAIoa,IAAIyuB,sBAAwB,GAAGN,EAA6B,EAAfzW,MACjD9xB,EAAIoa,IAAI0uB,uBAAyB,GAAGN,EAA8B,EAAf1W,OAEvDrtB,EAAEysB,oBAAoBlxB,GACtBA,EAAIoa,IAAI2uB,0BAA4B,OACpC/oC,EAAIoa,IAAI4uB,eAAiB,MACzBhpC,EAAIoa,IAAI6uB,cAAgB,MACxBjpC,EAAIoa,IAAI8uB,gBAAkB,GAC1BlpC,EAAIoa,IAAI+uB,iBAAmB,GAC3BnpC,EAAIoa,IAAIgvB,gCAAkC,OAC1CppC,EAAIoa,IAAIivB,qBAAuB,MAC/BrpC,EAAIoa,IAAIkvB,oBAAsB,MAC9BtpC,EAAIoa,IAAImvB,sBAAwB,GAChCvpC,EAAIoa,IAAIovB,uBAAyB,IAGhCxB,GA8BDhoC,EAAIoa,IAAIqmB,SACJzgC,EAAIkF,kBAAkCmkB,EAAoBqU,aACpDj5B,EAAEisB,YAAY1wB,EAAImwB,sBAClB1rB,EAAEurB,SACEuY,EACAC,EACAxoC,EAAI0gC,kBACJ1gC,EAAImwB,qBACJnwB,EAAIkF,iBACJlF,EAAIu8B,IAElBv8B,EAAIoa,IAAIumB,UAAY,GAAG7O,EAAave,eACpCvT,EAAIoa,IAAIwmB,SAAW,GAAG9O,EAAave,eACnCvT,EAAIoa,IAAIymB,WAAa,GAAG7O,EAAWze,eACnCvT,EAAIoa,IAAI0mB,YAAc,GAAG7Q,EAAY1c,eACrCvT,EAAIoa,IAAIqvB,cAAe,EACvBzpC,EAAIoa,IAAIsvB,SAAWjlC,EAAEurB,SACjBkY,EAAoB,IAAM,IAC1BA,EAAoB,IAAO,IAC3BloC,EAAI0gC,kBACJ1gC,EAAImwB,qBACJnwB,EAAIkF,iBACJlF,EAAI2pC,IAER3pC,EAAIoa,IAAIwvB,UAAY,GAAG9X,EAAave,eACpCvT,EAAIoa,IAAIyvB,SAAW,GAAG/X,EAAave,eACnCvT,EAAIoa,IAAI0vB,WAAa,GAAGvB,EAAYh1B,eACpCvT,EAAIoa,IAAI2vB,YAAc,GAAGvB,EAAaj1B,iBAxDtCvT,EAAIoa,IAAIqmB,SAAWh8B,EAAEurB,SACjBgC,EACA/B,EACAjwB,EAAI0gC,kBACJ1gC,EAAImwB,qBACJnwB,EAAIkF,iBACJlF,EAAIu8B,IAERv8B,EAAIoa,IAAIumB,UAAY,GAAG7O,EAAave,eACpCvT,EAAIoa,IAAIwmB,SAAW,GAAG9O,EAAave,eACnCvT,EAAIoa,IAAIymB,WAAa,GAAG7O,EAAWze,eACnCvT,EAAIoa,IAAI0mB,YAAc,GAAG7Q,EAAY1c,eACrCvT,EAAIoa,IAAIqvB,cAAe,EACvBzpC,EAAIoa,IAAIsvB,SACJ1pC,EAAIkF,kBAAkCmkB,EAAoBqU,aACpDj5B,EAAEisB,YAAY1wB,EAAImwB,sBAClB1rB,EAAEurB,SACEuY,EACAC,EACAxoC,EAAI0gC,kBACJ1gC,EAAImwB,qBACJnwB,EAAIkF,iBACJlF,EAAI2pC,IAElB3pC,EAAIoa,IAAIwvB,UAAY,GAAG9X,EAAave,eACpCvT,EAAIoa,IAAIyvB,SAAW,GAAG/X,EAAave,eACnCvT,EAAIoa,IAAI0vB,WAAa,GAAGvB,EAAYh1B,eACpCvT,EAAIoa,IAAI2vB,YAAc,GAAGvB,EAAaj1B,gBAiC1C9O,EAAEswB,uBACE,EACA,EACAtH,EACAwH,EACA7C,EACAN,EACAoD,EACAnD,EACA/xB,GAEAgoC,IACAhoC,EAAIoa,IAAIsb,cAAmBvD,EAAaH,EAAayW,EAAwB3W,GAAgByW,EAA6B,EAAfzW,EAAmBmD,GAAsB,EAA5H,MAI5Bj1B,EAAIoa,IAAI0c,aAAe92B,EAAI+2B,YAAc,EACrC/2B,EAAI+2B,YAAc,IAClB/2B,EAAIoa,IAAIC,SAAW5V,EAAEwyB,UAAUL,EAAgB52B,GAC/CA,EAAIoa,IAAI8c,UAAY,GAAiB1B,KAAKC,MAAqBhI,EAAc,EAAqBmJ,EAAiB,OAC/GoR,IACAhoC,EAAIoa,IAAI8c,UAAe/E,EAAaH,EAAayW,EAAwB3W,GAAgByW,EAA6B,EAAfzW,EAAmB8E,GAAkB,EAAxH,MAGxB52B,EAAIoa,IAAIgd,WAAa,GAAGR,EAAerjB,eACvCvT,EAAIoa,IAAIid,YAAc,GAAGR,EAAgBtjB,eACrCvT,EAAIkG,aACJlG,EAAIoa,IAAI+c,SAAW,GAAkB/E,EAAYnC,EAAcwY,EAAwBD,EAA6B1W,EAAgBoD,GAA2BnD,EAA6BD,GAAiB0D,KAAKC,OAA6BrD,EAA2BN,EAA8BoD,GAAsBnD,EAA4BD,IAAkB,EAAkB+E,EAAmB,OAEjZ72B,EAAIoa,IAAI+c,SAAW,GAAkB/E,EAAYoD,KAAK5jB,IAAIqe,EAAauY,GAAgB1W,EAAeoD,GAAanD,EAAcD,GAAgB0D,KAAKC,OAA6BrD,EAA2BN,EAA8BoD,GAA4BnD,EAAcD,IAAkB,EAAkB+E,EAAmB,QAKrV72B,EAAIoa,IAAIof,WAAax5B,EAAIs8B,iBACrBt8B,EAAIs8B,iBAAkB,CAGd9G,KAAK4K,OACA5K,KAAK5jB,IAAI5R,EAAIy6B,eAAgBz6B,EAAIi7B,iBAChBuD,EAAY5U,YAC1B+V,GALhB,IASIqB,GAAmB,EACnBC,EACMzL,KAAKC,MAAqBhI,EAAc,EAAoBgK,EAAa,GAG/EuJ,EADAhhC,EAAIkG,aAGKksB,EACGnC,EACcwY,EACdD,EACA1W,EACAoD,GAA2BnD,EAA6BD,IACvDM,EACiBN,EACdoD,GAA2BnD,EAAeD,GAC1C4F,EAC8B,EAAhB5F,GACd,EAMPM,EACGoD,KAAK5jB,IAAIqe,EAAauY,GACtB1W,EACAoD,GAA2BnD,EAAeD,IACzCM,EACiBN,EACdoD,GAAanD,EAA4BD,GACzC4F,EACe,EAAf5F,GACA,EAIpBrtB,EAAE6yB,oBACE2J,EACAD,EACAvJ,EACAC,EACA5F,EACArE,EACAztB,EAER,CACIA,EAAIkF,kBAAkCmkB,EAAoBqU,eACtDxI,EAAY,EACRl1B,EAAIkG,cACJlG,EAAIoa,IAAI2W,oBAAsB,IAAIqB,EAAYoW,EAAeC,EAAwB1W,EAA6B,EAAfD,GAAkBve,eACrHvT,EAAIoa,IAAIwuB,oBAAsB,IAAIxW,EAAYL,EAA6B,EAAfD,GAAkBve,iBAE9EvT,EAAIoa,IAAI2W,oBAAsB,IAC1BqB,IACE1E,EAAe,EAAI0E,GAAa,EAAInC,EAAc,GACpD8B,EACe,EAAfD,GACFve,eACFvT,EAAIoa,IAAIwuB,oBAAsB,IAC1BxW,IACE1E,EAAe,EAAI0E,GAAa,EAAIoW,EAAe,GACrDzW,EACe,EAAfD,GACFve,gBAGFvT,EAAIkG,cACJlG,EAAIoa,IAAI2W,oBAAyBqB,EAAYoW,EAAeC,EAAwB3W,EAAtD,KAC9B9xB,EAAIoa,IAAIwuB,oBAAyBxW,EAAYN,EAAf,OAE9B9xB,EAAIoa,IAAI2W,oBACJqB,IACE1E,EAAe,EAAI0E,GAAa,EAAInC,EAAc,GACpD6B,EAH0B,KAK9B9xB,EAAIoa,IAAIwuB,oBACJxW,IACE1E,EAAe,EAAI0E,GAAa,EAAIoW,EAAe,GACrD1W,EAH0B,MAO1C,EAGEoM,EAAiBl+B,IACnB,IAAIs+B,EAA0B,EAC1BC,EAA2B,EAC3BC,EAAc/5B,EAAE81B,eAAev6B,GAInC,GAAIA,EAAIy6B,eAHiB,GAGY,CACjC,IAAIG,EAJiB,GAIY56B,EAAIy6B,eACrCz6B,EAAIy6B,eALiB,GAMrBz6B,EAAI26B,gBAAkB36B,EAAI26B,gBAAkBC,CAChD,CACA,GAAI56B,EAAI26B,gBAPkB,GAOa,CACnC,IAAIC,EARkB,GAQY56B,EAAI26B,gBACtC36B,EAAI26B,gBATkB,GAUtB36B,EAAIy6B,eAAiBz6B,EAAIy6B,eAAiBG,CAC9C,CACA0D,EAAkBt+B,EAAIy6B,eACtB8D,EAAmBv+B,EAAI26B,gBAEvB,IAAIzF,GAAqBl1B,EAAIk8B,uBAAyBl8B,EAAIm8B,eAAiB,EAAI,EAAI,EAE/E6N,EAAkDhqC,EAAI67B,iBAAoB,GAS1E8C,EAAkB9E,EAAAA,GAAwB75B,EAAIgtB,gBAAkB,EAAI,MAEnE6M,EAAAA,GAAwB75B,EAAIgtB,iBAC7BhtB,EAAIy6B,gBAAkB,IACtBz6B,EAAI26B,iBAAmB,KAEvBgE,EAAU,MAGT9E,EAAAA,GAAwB75B,EAAIgtB,iBAC7BhtB,EAAIy6B,gBAAkB,IACtBz6B,EAAI26B,iBAAmB,KAEvBgE,EAAU,OAEd,IAAIC,EAAmBD,EAEnBE,EACA7+B,EAAI8+B,yBAA2B,EACX9+B,EAAI8+B,yBACJrU,EAAWsU,wBAE/BM,EAAkB5U,EAAW6U,eAC7BC,EAAmB9U,EAAW+U,gBAC9BjB,GAAoB,IACpBc,EAAU,EACVE,EAAW,IAGf,IAAIE,EAC0B,EAAXb,EAA6BN,GAC3Ct+B,EAAIy8B,wBAAiD,EAAvBz8B,EAAI0/B,iBAA8C,EAAvB1/B,EAAI67B,kBAC9D8D,EAA4BnK,KAAKC,OAAOz1B,EAAIq7B,gBAAkB,GAAKoE,GACnEG,GAAgB,EAChB0I,EAAoB,EACpBxW,GAAwB,EACxBE,GAAsB,EACtB/B,GAAuB,EACvBwH,GAAqB,EACrBC,GAAsB,EACtBuS,GAAuC,EACvCC,GAA4C,EAC5CjV,GAA8B,EAC9BpI,GAA2B,EAC3BD,GAA8B,EAC9BuF,GAAsB,EACtBC,GAAqB,EACrBL,GAAuB,EACvB8N,GAA4B,EAC5BC,GAAqC,EACrCC,GAAmC,EACnCC,GAAuC,EACvCC,GAAwC,EACxCxS,GAAuB,EACvByS,GAA6B,EAC7BC,GAAsC,EACtCzS,GAAwB,EACxB2E,GAA6B,EACjC,MAAQuN,GACJ0I,GAAa,EACbxW,EAAe0D,KAAK5jB,IAAI,EAAiB4jB,KAAK4K,MAAuB,EAAjBpgC,EAAIqgC,WAAiBV,IACzE3N,EACUwD,KAAK4K,OAAO9B,EAAgCE,EAAY5U,YAAe+V,GAEjF1P,EACUuF,KAAK4K,OAAO7B,EAAiCC,EAAY5U,YAAe+V,GAGlFlI,EAA2B4H,EAAUM,EACrCjI,EAA4B6H,EAAWI,EAEvCsK,EACUzU,KAAK4K,MAAM4J,EAA4BrK,GAEjDuK,EACU1U,KAAK4K,OAnF0B,KAmFaT,GAEtD1K,EAAmCO,KAAK4K,MAAMvB,EAAgBc,GAC9D1K,EAAqBO,KAAK3jB,IAAIo4B,EAA6BhV,GAC3DpI,EAAgC2I,KAAK4K,MAAMpgC,EAAI67B,iBAAmB8D,GAClE/S,EAAmC4I,KAAK4K,MAAMpgC,EAAI0/B,iBAAmBC,GACrE3/B,EAAIsgC,QAAU1T,EAAqBC,EACnCsF,EACkBqD,KAAK4K,MAAMxB,EAAWe,GA7FV,EA6FwCzK,EACtE9C,EAA0BoD,KAAK4K,MAAMzB,EAAUgB,GA9FjB,EA8F+CzK,EAC7EnD,EACIyD,KAAK5jB,IACD,EACc4jB,KAAKC,OAAOz1B,EAAIugC,iBAAmBvgC,EAAIqgC,YAAcV,IAlG7C,EAoG1B3/B,EAAIq7B,iBAAmB,KAAOtJ,EAAc,IAC5CA,EAAc,GAElB8N,EAAgC,EAAb1N,EAAiBH,EAAkC,EAArBpF,EACjDkT,EAAyC,EAAb3N,EAAiBH,EAA+B,EAAlBnF,EAE1DkT,EAA0BvK,KAAK5jB,IAGnB4jB,KAAK4K,OAAqB5B,EAAYhV,UApGxB,KAoGwDmW,GA7GpD,EAkHlBnK,KAAK4K,OACc5B,EAAYtU,aA1GjB,KA0GoDyV,GAnHhD,GAwHN,EAAf7N,EAAmBC,IAE5BiO,EAC8B,EAA1BD,EAA8B/N,EAAkC,EAArBpF,EAC/CqT,EAC8B,EAA1BF,EAA8B9P,EAAmC,EAArBrD,EAChDa,EAAcoS,EAAwC,EAArBjT,EACjCsT,EAAgC,EAAZ9N,EAAgBnC,EAAmC,EAArBrD,EAClDuT,EAAyC,EAAZ/N,EAAgBnC,EAAgC,EAAlBpD,EAC3Da,EAAewS,EAAyC,EAArBtT,EACnCyF,EAAmC,EAAfP,EAAmBC,EAEnC9B,EAAc+B,GAAchyB,EAAIw8B,aAC5ByD,EAA+BjgC,EAAIq7B,gBACnCsE,GAAO,EAEPC,GAAO,GAIN5/B,EAAIw8B,aAAewD,EAA8BF,GAC9C9/B,EAAIq7B,kBACPr7B,EAAIw8B,aAAe0D,EAAoBC,GACpCngC,EAAI07B,iBAERiE,GAAO,EAEPC,GAAO,EAGX0I,EAAY,MACZ1I,GAAO,GAIf5/B,EAAIq2B,mBAAqBwJ,EACzB7/B,EAAI+8B,oBAAsBmD,EAE1Bz7B,EAAEgoB,yBACEgB,EACAC,EACAd,EACAC,EACA7sB,GAEJyE,EAAE+oB,uBAAuBX,EAAiBY,EAAaC,EAAc1tB,GAEhE65B,EAAAA,GAAwB75B,EAAIgtB,iBAoB7BhtB,EAAIoa,IAAIyW,gCAAkC,QAC1C7wB,EAAIoa,IAAI0W,qBAAuB,IAAIqB,EAAaL,GAAcve,eAC9DvT,EAAIoa,IAAI2W,oBAAsB,IAAIqB,EAAYN,GAAcve,eAC5DvT,EAAIoa,IAAI4W,sBAAwB,IAAIgB,EAA4B,EAAfF,GAAkBve,eACnEvT,EAAIoa,IAAI6W,uBAAyB,IAAIhB,EAA6B,EAAf6B,GAAkBve,eACrE9O,EAAEmsB,yBAAyB5wB,GAC3ByE,EAAEysB,oBAAoBlxB,GAEtBA,EAAIoa,IAAIqmB,SAAWh8B,EAAEurB,SACjBgC,EACA/B,EACAjwB,EAAI0gC,kBACJ1gC,EAAImwB,qBACJnwB,EAAIkF,iBACJlF,EAAIu8B,IAERv8B,EAAIoa,IAAIumB,UAAY,MACpB3gC,EAAIoa,IAAIwmB,SAAW,MACnB5gC,EAAIoa,IAAIymB,WAAa,GAAG7O,EAAWze,eACnCvT,EAAIoa,IAAI0mB,YAAc,GAAG7Q,EAAY1c,iBAtCrCvT,EAAIoa,IAAIyW,gCAAkC,QAC1C7wB,EAAIoa,IAAI0W,qBAAuB,IAAIqB,EAAaL,GAAcve,eAC9DvT,EAAIoa,IAAI2W,oBAAsB,IAAIqB,EAAYN,GAAcve,eAC5DvT,EAAIoa,IAAI4W,sBAAwB,IAAIgB,EAA4B,EAAfF,GAAkBve,eACnEvT,EAAIoa,IAAI6W,uBAAyB,IAAIhB,EAA6B,EAAf6B,GAAkBve,eACrE9O,EAAEysB,oBAAoBlxB,GACtBA,EAAIoa,IAAIqmB,SAAWh8B,EAAEurB,SACjBgC,EACA/B,EACAjwB,EAAI0gC,kBACJ1gC,EAAImwB,qBACJnwB,EAAIkF,iBACJlF,EAAIu8B,IAERv8B,EAAIoa,IAAIumB,UAAY,GAAG7O,EAAave,eACpCvT,EAAIoa,IAAIwmB,SAAW,GAAG9O,EAAave,eACnCvT,EAAIoa,IAAIymB,WAAa,GAAG7O,EAAWze,eACnCvT,EAAIoa,IAAI0mB,YAAc,GAAG7Q,EAAY1c,gBAwBzCvT,EAAIoa,IAAIgb,iBAAmBp1B,EAAIq1B,gBAAkB,EAC7Cr1B,EAAIq1B,gBAAkB,IACtBr1B,EAAIoa,IAAIkb,aAAe7wB,EAAEgyB,sBACrBxB,EACAj1B,EAAIgX,mBAERhX,EAAIoa,IAAIsb,cAAgB,GAEhBF,KAAKC,MACchI,EAAc,EAAqBwH,EAAqB,GAGhF1hB,eACHvT,EAAIoa,IAAIub,aAAe,KAClB,EAGWH,KAAKC,OACc5I,EAAkBiF,GAAiB,EAC9CmD,EAAqB,GAIzCA,EACAiV,GACF32B,eACFvT,EAAIoa,IAAIwb,eAAiB,GAAGX,EAAmB1hB,eAC/CvT,EAAIoa,IAAIyb,gBAAkB,GAAGZ,EAAmB1hB,eACpD,EAGEsqB,EAAiB79B,IACnB,IAAIs+B,EAA0B,EAC1BC,EAA2B,EAC3BC,EAAc/5B,EAAE81B,eAAev6B,GAInC,GAAIA,EAAIy6B,eAHiB,GAGY,CACjC,IAAIG,EAJiB,GAIY56B,EAAIy6B,eACrCz6B,EAAIy6B,eALiB,GAMrBz6B,EAAI26B,gBAAkB36B,EAAI26B,gBAAkBC,CAChD,CACA,GAAI56B,EAAI26B,gBAPkB,GAOa,CACnC,IAAIC,EARkB,GAQY56B,EAAI26B,gBACtC36B,EAAI26B,gBATkB,GAUtB36B,EAAIy6B,eAAiBz6B,EAAIy6B,eAAiBG,CAC9C,CACA0D,EAAkBt+B,EAAIy6B,eACtB8D,EAAmBv+B,EAAI26B,gBAEvB,IAAIzF,GAAqBl1B,EAAIk8B,uBAAyBl8B,EAAIm8B,eAAiB,EAAI,EAAI,EAQ/EuC,EAA0B,IAC1BC,EAAgCH,EAAYtU,aAAgBwU,EAC5DE,EAAiCJ,EAAYtU,aAAgBwU,EAE7DG,EACA7+B,EAAI8+B,yBAA2B,EACzB9+B,EAAI8+B,yBACJrU,EAAWsU,wBACrBF,EACIL,EAAYjV,eAAiB,GAAKvpB,EAAI8+B,yBAA2B,EAAI,EAAID,EAE7E,IAAIG,EACAxJ,KAAK3jB,IAAI4Y,EAAWwU,oBAAqBX,EAAkB,GAC3Dt+B,EAAIk/B,0BACRF,EAAev6B,EAAE22B,gBAAgB4D,EAAch/B,GAC/C,IAAIm/B,EAAwB1U,EAAW2U,sBAAwBJ,EAAe,MAE1EK,EAAkB5U,EAAW6U,eAC7BC,EAAmB9U,EAAW+U,gBAC9BjB,GAAoB,IACpBc,EAAU,EACVE,EAAW,IAGf,IAAIE,EACW,EAAXb,EACAN,GACCt+B,EAAIy8B,wBAAiD,EAAvBz8B,EAAI0/B,iBAA8C,EAAvB1/B,EAAI67B,kBAC9D8D,EAA4BnK,KAAKC,MAAMz1B,EAAIq7B,gBAAkBoE,GAC7DG,GAAgB,EAChB0I,EAAoB,EACpBxW,GAAwB,EACxBE,GAAsB,EACtB/B,GAAuB,EACvBwH,GAAqB,EACrBC,GAAsB,EACtBzC,GAA8B,EAC9B2B,GAA0B,EAC1BC,GAA2B,EAC3BhK,GAA2B,EAC3BD,GAA8B,EAC9BmF,GAAuB,EACvBI,GAAsB,EACtBC,GAAqB,EACrByN,GAA4B,EAC5BC,GAAqC,EACrCrS,GAAuB,EACvByS,GAA6B,EAC7BC,GAAsC,EACtCzS,GAAwB,EACxBqS,GAAmC,EACnCC,GAAuC,EACvCC,GAAwC,EAC5C,MAAQL,GACJ9N,EAAe0D,KAAK5jB,IAAI,EAAiB4jB,KAAKC,MAAuB,EAAjBz1B,EAAIqgC,WAAiBV,IACzE3N,EACUwD,KAAK4K,OAAO9B,EAAgCE,EAAY5U,YAAe+V,GAEjF1P,EACUuF,KAAK4K,OAAO7B,EAAiCC,EAAY5U,YAAe+V,GAGlFlI,EAA2B4H,EAAUM,EACrCjI,EAA4B6H,EAAWI,EAEvC1K,EAAmCO,KAAK4K,MAAMvB,EAAgBc,GAC9D/I,EAA+BpB,KAAK4K,MAAMpB,EAAeW,GACzD9I,EAAgCrB,KAAK4K,MAAMjB,EAAgBQ,GAC3D9S,EAAgC2I,KAAK4K,MAAMpgC,EAAI67B,iBAAmB8D,GAClE/S,EAAmC4I,KAAK4K,MAAMpgC,EAAI0/B,iBAAmBC,GACrE3/B,EAAIsgC,QAAU1T,EAAqBC,EACnCkF,EACIyD,KAAK5jB,IACD,EACc4jB,KAAKC,OAAOz1B,EAAIugC,iBAAmBvgC,EAAIqgC,YAAcV,IAjF7C,EAmF9BxN,EACkBqD,KAAK4K,MAAMxB,EAAWe,GApFV,EAoFwCzK,EACtE9C,EAA0BoD,KAAK4K,MAAMzB,EAAUgB,GArFjB,EAqF+CzK,EACzEl1B,EAAIq7B,iBAAmB,KAAOtJ,EAAc,IAC5CA,EAAc,GAElB8N,EAAgC,EAAb1N,EAAiBH,EAAkC,EAArBpF,EACjDkT,EAAyC,EAAb3N,EAAiBH,EAA+B,EAAlBnF,EAC1DY,EAAcoS,EAAwC,EAArBjT,EACjCsT,EAAgC,EAAZ9N,EAAgBnC,EAAmC,EAArBrD,EAClDuT,EAAyC,EAAZ/N,EAAgBnC,EAAgC,EAAlBpD,EAC3Da,EAAewS,EAAyC,EAArBtT,EAGnCmT,EAA0BvK,KAAK5jB,IAGnB4jB,KAAK4K,OAAqB5B,EAAYhV,UAAakV,GAAmBiB,GApGpD,EAyGlBnK,KAAK4K,OACc5B,EAAYtU,aAAgBwU,GAAmBiB,GA1GhD,GA+GN,EAAf7N,EAAmBC,IAE5BiO,EAC8B,EAA1BD,EAA8B/N,EAAkC,EAArBpF,EAC/CqT,EAC8B,EAA1BF,EAA8B9P,EAAmC,EAArBrD,EAC5CqD,EAAc+B,GAAchyB,EAAIw8B,aAC5ByD,EAA+BjgC,EAAIq7B,gBACnCsE,GAAO,EAEPC,GAAO,GAIN5/B,EAAIw8B,aAAewD,EAA8BF,GAC9C9/B,EAAIq7B,kBACPr7B,EAAIw8B,aAAe0D,EAAoBC,GACpCngC,EAAI07B,iBAERiE,GAAO,EAEPC,GAAO,EAGf0I,GAAa,EACTA,EAAY,MACZ1I,GAAO,GAsFf,GAlFA5/B,EAAIq2B,mBAAqBwJ,EACzB7/B,EAAI+8B,oBAAsBmD,EAE1Bz7B,EAAEgoB,yBACEgB,EACAC,EACAd,EACAC,EACA7sB,GAEJyE,EAAE+oB,uBAAuBX,EAAiBY,EAAaC,EAAc1tB,GACrEA,EAAIoa,IAAI+vB,iBAAkB,EACtBjV,EAAY,GACZl1B,EAAIoa,IAAIgwB,mCAAqC,QAC7CpqC,EAAIoa,IAAIiwB,wBAA0B,IAAIlY,EAAaJ,EAA6B,EAAfD,GAAkBve,eACnFvT,EAAIoa,IAAIkwB,uBAAyB,IAAIlY,EAAYL,EAA6B,EAAfD,GAAkBve,eACjFvT,EAAIoa,IAAImwB,yBAA2B,IAAIvY,EAAa,GAAoB,EAAfF,EAAmBC,IAAcxe,eAC1FvT,EAAIoa,IAAIowB,0BAA4B,IAAIva,EAAc,GAAoB,EAAf6B,EAAmBC,IAAcxe,eAC5FvT,EAAIoa,IAAIqwB,6BAA+B,IAAIzqC,EAAIiyB,oBAC/CjyB,EAAIoa,IAAIswB,kBAAoB,GAAG5Y,EAAave,eAC5CvT,EAAIoa,IAAIuwB,iBAAmB,GAAG7Y,EAAave,eAC3CvT,EAAIoa,IAAIwwB,mBAAqB,IAAI5Y,EAA2B,EAAdD,EAAiC,EAAfD,GAAkBve,eAClFvT,EAAIoa,IAAIywB,oBAAsB,IAAI5a,EAA4B,EAAd8B,EAAiC,EAAfD,GAAkBve,eACpFvT,EAAIoa,IAAI0wB,mCAAqC,QAC7C9qC,EAAIoa,IAAI2wB,wBAA0B,GAAGhZ,EAAYxe,eACjDvT,EAAIoa,IAAI4wB,uBAAyB,GAAGjZ,EAAYxe,eAChDvT,EAAIoa,IAAI6wB,yBAA2B,IAAIjZ,EAA4B,EAAfF,GAAkBve,eACtEvT,EAAIoa,IAAI8wB,0BAA4B,IAAIjb,EAA6B,EAAf6B,GAAkBve,iBAExEvT,EAAIoa,IAAIgwB,mCAAqC,QAC7CpqC,EAAIoa,IAAIiwB,wBAA0B,IAAIlY,EAAaL,GAAcve,eACjEvT,EAAIoa,IAAIkwB,uBAAyB,IAAIlY,EAAYN,GAAcve,eAC/DvT,EAAIoa,IAAImwB,yBAA2B,IAAIvY,EAA4B,EAAfF,GAAkBve,eACtEvT,EAAIoa,IAAIowB,0BAA4B,IAAIva,EAA6B,EAAf6B,GAAkBve,eACxEvT,EAAIoa,IAAIqwB,6BAA+B,OACvCzqC,EAAIoa,IAAIswB,kBAAoB,MAC5B1qC,EAAIoa,IAAIuwB,iBAAmB,MAC3B3qC,EAAIoa,IAAIwwB,mBAAqB,GAC7B5qC,EAAIoa,IAAIywB,oBAAsB,GAC9B7qC,EAAIoa,IAAI0wB,mCAAqC,OAC7C9qC,EAAIoa,IAAI2wB,wBAA0B,MAClC/qC,EAAIoa,IAAI4wB,uBAAyB,MACjChrC,EAAIoa,IAAI6wB,yBAA2B,GACnCjrC,EAAIoa,IAAI8wB,0BAA4B,IAGxClrC,EAAIoa,IAAI+wB,2BAA6B,IAAItR,EAAAA,GAAwBr6B,EAAAA,EAAEQ,IAAIqc,YAAc,SAAW7c,EAAAA,EAAEQ,IAAIqc,aACtGrc,EAAIoa,IAAIgxB,gBAAkB,GAAGtZ,EAAave,eAC1CvT,EAAIoa,IAAIixB,eAAiB,GAAGvZ,EAAave,eACzCvT,EAAIoa,IAAIkxB,iBAAmB,GAAGtZ,EAAWze,eACzCvT,EAAIoa,IAAImxB,kBAAoB,GAAGtb,EAAY1c,eAC3CvT,EAAIoa,IAAIoxB,YAAc/mC,EAAE4rB,QAAQ2B,EAAY/B,EAAajwB,EAAImwB,sBAC7DnwB,EAAIoa,IAAIqxB,aAAe,MACvBzrC,EAAIoa,IAAIsxB,YAAc,MACtB1rC,EAAIoa,IAAIuxB,cAAgB,GAAG3Z,EAAWze,eACtCvT,EAAIoa,IAAIwxB,eAAiB,GAAG3b,EAAY1c,eAExC9O,EAAEswB,uBACE,EACA,EACAtH,EACAwH,EACA7C,EACAN,EACAoD,EACAnD,EACA/xB,GAEJyE,EAAEkyB,mBACE,EACA,EACA7E,EACAoD,EACAnD,EACAI,EACAH,EACA/B,EACA2G,EACAC,EACA72B,GAEJA,EAAIoa,IAAIof,WAAax5B,EAAIs8B,iBACrBt8B,EAAIs8B,iBAAkB,CACtBt8B,EAAIoa,IAAIof,YAAa,EACrB,IAAIwH,EAEK7O,EACGlC,EACA6B,EACAoD,GAAanD,EAAcD,GAI3B0D,KAAKC,OACctD,EACGL,EACAoD,GACKnD,EAA6BD,IAChD,EACc4F,EAAc,GAI7B,EAAf5F,EACAmP,EAGQzL,KAAKC,MACatD,EACIH,EAAc,EACdyF,EAAa,GAI5B,EAAf3F,EACJrtB,EAAE6yB,oBACE2J,EACAD,EACAvJ,EACAC,EACA5F,EACArE,EACAztB,EAER,GAGEg+B,EAAmBh+B,IACrB,IAAIs+B,EAA0B,EAC1BC,EAA2B,EAC3BC,EAAc/5B,EAAE81B,eAAev6B,GAInC,GAAIA,EAAIy6B,eAHiB,GAGY,CACjC,IAAIG,EAJiB,GAIY56B,EAAIy6B,eACrCz6B,EAAIy6B,eALiB,GAMrBz6B,EAAI26B,gBAAkB36B,EAAI26B,gBAAkBC,CAChD,CACA,GAAI56B,EAAI26B,gBAPkB,GAOa,CACnC,IAAIC,EARkB,GAQY56B,EAAI26B,gBACtC36B,EAAI26B,gBATkB,GAUtB36B,EAAIy6B,eAAiBz6B,EAAIy6B,eAAiBG,CAC9C,CACA0D,EAAkBt+B,EAAIy6B,eACtB8D,EAAmBv+B,EAAI26B,gBACvB,IAAIzF,GAAqBl1B,EAAIk8B,uBAAyBl8B,EAAIm8B,eAAiB,EAAI,EAAI,EAQ/EuC,EAA0B,IAC1BC,EAAgCH,EAAYrU,iBAAoBuU,EAChEE,EAAiCJ,EAAYpU,gBAAmBsU,EAEhEG,EACA7+B,EAAI8+B,yBAA2B,EACzB9+B,EAAI8+B,yBACJrU,EAAWsU,wBACrBF,EACIL,EAAYjV,eAAiB,GAAKvpB,EAAI8+B,yBAA2B,EAAI,EAAID,EAE7E,IAAIG,EACAxJ,KAAK3jB,IAAI4Y,EAAWwU,oBAAqBX,EAAkB,GAC3Dt+B,EAAIk/B,0BACRF,EAAev6B,EAAE22B,gBAAgB4D,EAAch/B,GAC/C,IAAIm/B,EAAwB1U,EAAW2U,sBAAwBJ,EAAe,MAK1EK,EAAkB5U,EAAW6U,eAC7BC,EAAmB9U,EAAW+U,gBAC9BjB,GAAoB,IACpBc,EAAU,EACVE,EAAW,IAGf,IAAIE,EACW,EAAXb,EACAN,GACCt+B,EAAIy8B,wBAAiD,EAAvBz8B,EAAI0/B,iBAA8C,EAAvB1/B,EAAI67B,kBAd5C,EACE,IAgBpB8D,EAA4BnK,KAAKC,MAAMz1B,EAAIq7B,gBAAkBoE,GAC7DG,GAAgB,EAChB0I,GAAqB,EACrBxW,GAAwB,EACxBE,GAAsB,EACtB/B,GAAuB,EACvBwH,GAAqB,EACrBC,GAAsB,EACtBzC,GAA8B,EAC9B2B,GAA0B,EAC1BC,GAA2B,EAC3BhK,GAA2B,EAC3BD,GAA8B,EAC9BmF,GAAuB,EACvBI,GAAsB,EACtBC,GAAqB,EACrByZ,GAAqB,EACrBC,GAAuB,EACvBC,GAAwB,EACxBlM,GAA4B,EAC5BC,GAAqC,EACrCrS,GAAuB,EACvByS,GAA6B,EAC7BC,GAAsC,EACtCzS,GAAwB,EACxBqS,GAAmC,EACnCC,GAAuC,EACvCC,GAAwC,EAC5C,MAAQL,GACJ9N,EAAe0D,KAAK5jB,IAAI,EAAiB4jB,KAAK4K,MAAuB,EAAjBpgC,EAAIqgC,WAAiBV,IACzE3N,EACUwD,KAAK4K,OAAO9B,EAAgCE,EAAY5U,YAAe+V,GAEjF1P,EACUuF,KAAK4K,OAAO7B,EAAiCC,EAAY5U,YAAe+V,GAGlFlI,EAA2B4H,EAAUM,EACrCjI,EAA4B6H,EAAWI,EAEvC1K,EAAmCO,KAAK4K,MAAMvB,EAAgBc,GAC9D/I,EAA+BpB,KAAK4K,MAAMpB,EAAeW,GACzD9I,EAAgCrB,KAAK4K,MAAMjB,EAAgBQ,GAC3D9S,EAAgC2I,KAAK4K,MAAMpgC,EAAI67B,iBAAmB8D,GAClE/S,EAAmC4I,KAAK4K,MAAMpgC,EAAI0/B,iBAAmBC,GACrE3/B,EAAIsgC,QAAU1T,EAAqBC,EACnCkF,EACIyD,KAAK5jB,IACD,EACc4jB,KAAKC,OAAOz1B,EAAIugC,iBAAmBvgC,EAAIqgC,YAAcV,IAzF7C,EA2F9BxN,EACkBqD,KAAK4K,MAAMxB,EAAWe,GA5FV,EA4FwCzK,EACtE9C,EAA0BoD,KAAK4K,MAAMzB,EAAUgB,GA7FjB,EA6F+CzK,EACzEl1B,EAAIq7B,iBAAmB,KAAOtJ,EAAc,IAC5CA,EAAc,GAElB8Z,EACkBrW,KAAK4K,MA3EL,EA2EqBT,GAlGT,EAkGuCzK,EAAY,EACjF4W,EAA4BtW,KAAK4K,MA3Eb,IA2E+BT,GACnDoM,EAA6BvW,KAAK4K,MA3Eb,IA2EgCT,GACrDE,EACiB,EAAb1N,EAAiBH,EAAkC,EAArBpF,EAAyBif,EAAYC,EACvEhM,EACiB,EAAb3N,EAAiBH,EAA+B,EAAlBnF,EAAsBgf,EAAYC,EACpEre,EAAcoS,EAAwC,EAArBjT,EACjCsT,EAAgC,EAAZ9N,EAAgBnC,EAAmC,EAArBrD,EAClDuT,EAAyC,EAAZ/N,EAAgBnC,EAAgC,EAAlBpD,EAC3Da,EAAewS,EAAyC,EAArBtT,EAGnCmT,EAA0BvK,KAAK5jB,IAGnB4jB,KAAK4K,OAAqB5B,EAAYhV,UAAakV,GAAmBiB,GAlHpD,EAuHlBnK,KAAK4K,OACc5B,EAAYtU,aAAgBwU,GAAmBiB,GAxHhD,GA6HN,EAAf7N,EAAmBC,IAE5BiO,EAC8B,EAA1BD,EAA8B/N,EAAkC,EAArBpF,EAC/CqT,EAC8B,EAA1BF,EAA8B9P,EAAmC,EAArBrD,EAC5CqD,EAAc+B,GAAchyB,EAAIw8B,aAC5ByD,EAA+BjgC,EAAIq7B,gBACnCsE,GAAO,EAEPC,GAAO,GAIN5/B,EAAIw8B,aAAewD,EAA8BF,GAC9C9/B,EAAIq7B,kBACPr7B,EAAIw8B,aAAe0D,EAAoBC,GACpCngC,EAAI07B,iBAERiE,GAAO,EAEPC,GAAO,EAGf0I,GAAa,EACTA,EAAY,MACZ1I,GAAO,GA6Hf,GAzHA5/B,EAAIq2B,mBAAqBwJ,EACzB7/B,EAAI+8B,oBAAsBmD,EAE1Bz7B,EAAEgoB,yBACEgB,EACAC,EACAd,EACAC,EACA7sB,GAEJyE,EAAE+oB,uBAAuBX,EAAiBY,EAAaC,EAAc1tB,GACrEA,EAAIoa,IAAI4xB,cAAe,EACnB9W,EAAY,GACZl1B,EAAIoa,IAAIyW,gCAAkC,QAC1C7wB,EAAIoa,IAAI0W,qBAAuB,IAAIqB,EAAa2Z,EAAcD,EAAY9Z,EAA6B,EAAfD,GAAkBve,eAC1GvT,EAAIoa,IAAI2W,oBAAsB,IAAIqB,EAAYL,EAA6B,EAAfD,GAAkBve,eAC9EvT,EAAIoa,IAAI4W,sBAAwB,GAAGgB,EAAa,GAAoB,EAAfF,EAAmBC,OACxE/xB,EAAIoa,IAAI6W,uBAAyB,GAAGhB,EAAc,GAAoB,EAAf6B,EAAmBC,OAC1EttB,EAAEotB,mBAAmBC,EAAcC,EAAaC,EAAY/B,EAAajwB,GACzEA,EAAIoa,IAAI6xB,gCAAkC,QAC1CjsC,EAAIoa,IAAI8xB,qBAAuB,IAAI/Z,EAAaJ,EAA6B,EAAfD,GAAkBve,eAChFvT,EAAIoa,IAAI+xB,oBAAsB,GAEtB3W,KAAKC,OACc/H,EACGqe,EACe,EAAfha,GACd,GAGbxe,eACHvT,EAAIoa,IAAIgyB,sBAAwB,IAAIN,EAA4B,EAAd/Z,EAAiC,EAAfD,GAAkBve,eACtFvT,EAAIoa,IAAIiyB,uBAAyB,GAAGN,EAA6B,EAAdha,EAAiC,EAAfD,MACrE9xB,EAAIoa,IAAIkyB,6BAA+B,IACnCR,EACc,EAAd/Z,EACe,EAAfD,GACFve,mBAAmBw4B,EAA6B,EAAdha,EAAiC,EAAfD,GAAkBve,eACxEvT,EAAIoa,IAAImyB,0BAA4B,IAAIvsC,EAAIiyB,oBAC5CjyB,EAAIoa,IAAIoyB,eAAiB,GAAG1a,EAAave,eACzCvT,EAAIoa,IAAIqyB,cAAgB,GAAG3a,EAAave,eACxCvT,EAAIoa,IAAIsyB,gBAAkB,IAAIZ,EAAc,GAAKha,EAAeC,IAAcxe,eAC9EvT,EAAIoa,IAAIuyB,iBAAmB,IAAIZ,EAAe,GAAKja,EAAeC,IAAcxe,eAChFvT,EAAIoa,IAAIwyB,uBAAyB,IAC7Bd,EACA,GAAKha,EAAeC,IACtBxe,mBAAmBw4B,EAAe,GAAKja,EAAeC,IAAcxe,eACtEvT,EAAIoa,IAAIyyB,gCAAkC,UAC1C7sC,EAAIoa,IAAI0yB,qBAAuB,GAAG/a,EAAYxe,eAC9CvT,EAAIoa,IAAI2yB,oBAAsB,GAAGhb,EAAYxe,eAC7CvT,EAAIoa,IAAI4yB,sBAAwB,IAAIlB,EAAc,EAAIha,GAAcve,eACpEvT,EAAIoa,IAAI6yB,uBAAyB,IAAIlB,EAAe,EAAIja,GAAcve,eACtEvT,EAAIoa,IAAI8yB,6BAA+B,IACnCpB,EACA,EAAIha,GACNve,mBAAmBw4B,EAAe,EAAIja,GAAcve,iBAEtDvT,EAAIoa,IAAIyW,gCAAkC,UAC1C7wB,EAAIoa,IAAI0W,qBAAuB,IAAIqB,EAAa2Z,EAAcD,EAAY/Z,GAAcve,eACxFvT,EAAIoa,IAAI2W,oBAAsB,IAAIqB,EAAYN,GAAcve,eAC5DvT,EAAIoa,IAAI4W,sBAAwB,IAAIgB,EAA4B,EAAfF,GAAkBve,eACnEvT,EAAIoa,IAAI6W,uBAAyB,IAAIhB,EAA6B,EAAf6B,GAAkBve,eACrEvT,EAAIoa,IAAI6xB,gCAAkC,UAC1CjsC,EAAIoa,IAAI8xB,qBAAuB,IAAI/Z,EAAaL,GAAcve,eAC9DvT,EAAIoa,IAAI+xB,oBAAsB,GACpB3W,KAAKC,OAAqB/H,EAAgBqe,GAAgB,GACjEx4B,eACHvT,EAAIoa,IAAIgyB,sBAAwB,IAAIN,EAA6B,EAAfha,GAAkBve,eACpEvT,EAAIoa,IAAIiyB,uBAAyB,GAAGN,EAA8B,EAAfja,MACnD9xB,EAAIoa,IAAIkyB,6BAA+B,GAAGR,EAAYv4B,kBAAkBw4B,EAAax4B,eACrF9O,EAAEysB,oBAAoBlxB,GACtBA,EAAIoa,IAAImyB,0BAA4B,OACpCvsC,EAAIoa,IAAIoyB,eAAiB,MACzBxsC,EAAIoa,IAAIqyB,cAAgB,MACxBzsC,EAAIoa,IAAIsyB,gBAAkB,GAC1B1sC,EAAIoa,IAAIuyB,iBAAmB,GAC3B3sC,EAAIoa,IAAIwyB,uBAAyB,MACjC5sC,EAAIoa,IAAIyyB,gCAAkC,OAC1C7sC,EAAIoa,IAAI0yB,qBAAuB,MAC/B9sC,EAAIoa,IAAI2yB,oBAAsB,MAC9B/sC,EAAIoa,IAAI4yB,sBAAwB,GAChChtC,EAAIoa,IAAI6yB,uBAAyB,GACjCjtC,EAAIoa,IAAI8yB,6BAA+B,OAE3CltC,EAAIoa,IAAIqmB,SAAWh8B,EAAEurB,SACjBgC,EACA/B,EACAjwB,EAAI0gC,kBACJ1gC,EAAImwB,qBACJnwB,EAAIkF,iBACJlF,EAAIu8B,IAERv8B,EAAIoa,IAAIumB,UAAY,GAAG7O,EAAave,eACpCvT,EAAIoa,IAAIwmB,SAAW,GAAG9O,EAAave,eACnCvT,EAAIoa,IAAIymB,WAAa,GAAG7O,EAAWze,eACnCvT,EAAIoa,IAAI0mB,YAAc,GAAG7Q,EAAY1c,eACrCvT,EAAIoa,IAAI+yB,SAAW1oC,EAAE+rB,UAAUsb,EAAa9rC,EAAImwB,qBAAsBnwB,EAAIkF,kBAC1ElF,EAAIoa,IAAIgzB,UAAY,GAAGtb,EAAave,eACpCvT,EAAIoa,IAAIizB,SAAW,GAAGvb,EAAave,eACnCvT,EAAIoa,IAAIkzB,WAAa,GAAGxB,EAAYv4B,eACpCvT,EAAIoa,IAAImzB,YAAc,GAAGxB,EAAax4B,eACtCvT,EAAIoa,IAAIozB,kBAAoB,GAAG1B,EAAYv4B,kBAAkBw4B,EAAax4B,eAC1EvT,EAAIoa,IAAIqzB,qBAAuB,UAC/BztC,EAAIoa,IAAIgb,iBAAmBp1B,EAAIq1B,gBAAkB,EAC7Cr1B,EAAIq1B,gBAAkB,IACtBr1B,EAAIoa,IAAIkb,aAAe7wB,EAAE8wB,cAAcN,EAAoBj1B,EAAIgX,mBAC/DhX,EAAIoa,IAAIsb,cAAgB,GAAGoW,EAAcD,EAA0BrW,KAAKC,MAAoBtD,EAA4BH,EAAc,EAAkBiD,EAAsB,OAC9Kj1B,EAAIoa,IAAIub,aAAe,GAAiBH,KAAKC,OAAqBrD,EAA2BN,EAA8BoD,GAA4BnD,EAA6BD,IAAkB,EAAkBmD,EAAsB,OAC9Oj1B,EAAIoa,IAAIwb,eAAiB,GAAGX,EAAmB1hB,eAC/CvT,EAAIoa,IAAIyb,gBAAkB,GAAGZ,EAAmB1hB,gBAEpDvT,EAAIoa,IAAI0c,aAAe92B,EAAI+2B,YAAc,EACrC/2B,EAAI+2B,YAAc,IAClB/2B,EAAIoa,IAAIC,SAAW5V,EAAEwyB,UAAUL,EAAgB52B,GAC/CA,EAAIoa,IAAI8c,UAAY,GAAG4U,EAAcD,EAA0BrW,KAAKC,MAAoBtD,EAA4BH,EAAc,EAAkB4E,EAAkB,OACtK52B,EAAIoa,IAAI+c,SAAW,GAAkB/E,EAAYnC,EAAc6B,EAAeoD,GAAanD,EAAcD,GAAgB0D,KAAKC,OAAqBrD,EAA2BN,EAA8BoD,GAA4BnD,EAA6BD,IAAkB,EAAkB+E,EAAmB,OAC5T72B,EAAIoa,IAAIgd,WAAa,GAAGR,EAAerjB,eACvCvT,EAAIoa,IAAIid,YAAc,GAAGR,EAAgBtjB,gBAG7CvT,EAAIoa,IAAIof,WAAax5B,EAAIs8B,iBACrBt8B,EAAIs8B,iBAAkB,CACtB,IAAI0E,EAGS5O,EACGnC,EACA6B,EACAoD,GAAanD,EAAcD,GAC3B0D,KAAKC,OACcrD,EACGN,EACAoD,GACKnD,EACGD,IACtB,EACc4F,EAAc,GAIjC,EAAf5F,EACAmP,EACA6K,EACAD,EAGQrW,KAAKC,MACatD,EACIH,EAAc,EACdyF,EAAa,GAI5B,EAAf3F,EACJrtB,EAAE6yB,oBACE2J,EACAD,EACAvJ,EACAC,EACA5F,EACArE,EACAztB,EAER,EAEP,CAzpHD,CAAcyE,IAAAA,EAAC,I,0tBCOA,IAAMqhB,EAAN,cAA4BhtB,EAAAA,UAMvC0B,WAAAA,CAAYC,GACRC,MAAMD,GANE2B,OAAAC,eAAA,sB,yDACAD,OAAAC,eAAA,6B,iDAAwD0G,EAAAA,EAAAA,eACxD3G,OAAAC,eAAA,2B,iDAAsD0G,EAAAA,EAAAA,eACtD3G,OAAAC,eAAA,+B,iDAA0D0G,EAAAA,EAAAA,eAqGtE3G,OAAAC,eAAA,a,gDAAcjB,GAAUmB,EAAA,gCAKpB,MAGJH,OAAAC,eAAA,sB,gDAAgBO,IAAWL,EAAA,gCAAC,OAAAtC,KAAKuC,aAAa,MAzG1CvC,KAAKwO,KAAOxO,KAAKwO,KAAKpG,KAAKpI,MAC3BA,KAAKyzC,YAAczzC,KAAKyzC,YAAYrrC,KAAKpI,MACzCA,KAAK0zC,aAAe1zC,KAAK0zC,aAAatrC,KAAKpI,MAC3CA,KAAK2zC,aAAe3zC,KAAK2zC,aAAavrC,KAAKpI,OAC3CqI,EAAAA,EAAAA,IAAerI,KACnB,CAGAyzC,WAAAA,CAAYtyC,GACR,MAAMyyC,EAAgB5zC,KAAK6zC,uBAAuBzqC,QAC5C0qC,EAAkB9zC,KAAK+zC,qBAAqB3qC,QAElD,IAAK0qC,IAAoBF,EAAe,OAExC5zC,KAAKg0C,0BAEL,MAAMC,EAAYH,EAAgBI,wBAC5BC,EAAc9kC,SAASukC,EAAcnyC,MAAM4F,MAAO,IAClD+sC,EAAe/kC,SAASukC,EAAcnyC,MAAM6F,OAAQ,IAE1D,IAAI+sC,EAASlzC,EAAEmzC,QAAUL,EAAU1pC,KAC/BgqC,EAASpzC,EAAEqzC,QAAUP,EAAU3pC,IAEnC+pC,GAAUF,EAAc,EACxBI,GAAUH,EAAe,EAErBC,EAASF,EAAcF,EAAU5sC,QAAOgtC,EAASJ,EAAU5sC,MAAQ8sC,GAEnEI,EAASH,EAAeH,EAAU3sC,SAAQitC,EAASN,EAAU3sC,OAAS8sC,GAEtEC,EAAS,IAAGA,EAAS,GAErBE,EAAS,IAAGA,EAAS,GAEzBX,EAAcnyC,MAAM6I,IAAM,GAAGiqC,MAC7BX,EAAcnyC,MAAM8I,KAAO,GAAG8pC,MAI9Br0C,KAAKy0C,SAAS,kBAAmB,GAFnB,EAEsBJ,OAFtB,EAE0CE,OACxDv0C,KAAKy0C,SAAS,YAAa,YAC3Bz0C,KAAKy0C,SAAS,QAJA,EAIYN,EAAH,MAA4B,GACnDn0C,KAAKy0C,SAAS,SALA,EAKaL,EAAH,MAA6B,GACrDp0C,KAAKy0C,SAAS,SAAU,kBAAkB,GAC1Cz0C,KAAKy0C,SAAS,YAAa,kCAAkC,EACjE,CAGAT,uBAAAA,GACI,MAAM5qC,EAAUpJ,KAAK6zC,uBAAuBzqC,QAE5C,IAAKA,EAAS,OAEd,IAAI+qC,EACAC,EAEJ,MAAM,oBAACxR,EAAmB,qBAAEC,GAAwB7iC,KAAKQ,MAAM2f,IACzDwgB,EAAQiC,EAAsBC,EAEhCD,EAAsBC,GACtBsR,EAAc,IACdC,EAAeD,EAAcxT,IAE7ByT,EAAe,IACfD,EAAcC,EAAezT,GAGjCv3B,EAAQ3H,MAAM4F,MAAQ,GAAG8sC,MACzB/qC,EAAQ3H,MAAM6F,OAAS,GAAG8sC,KAC9B,CAGAT,YAAAA,GACI3zC,KAAK00C,eAAgB,CACzB,CAGAhB,YAAAA,GACQ9xC,OAAOwI,WAAa,OACpBpK,KAAK00C,eAAgB,EAE7B,CAGAD,QAAAA,CAASE,EAAchyC,EAAeiyC,GAAuB,GACzD,MAAMxrC,EAAUpJ,KAAK60C,mBAAmBzrC,QAEnCA,IAEDwrC,GAAexrC,EAAQ0rC,cACvB1rC,EAAQ0rC,cAAcrzC,MAAMkzC,GAAQhyC,EAEpCyG,EAAQ3H,MAAMkzC,GAAQhyC,EAE9B,CAaAjC,iBAAAA,GACI4H,EAAAA,EAAqBnI,UAAUmI,EAAAA,EAAkBC,GAAI,KAAMvI,KAAKwI,eAChE,IAAIusC,EAAapxC,SAASG,eAAe,gBACrCixC,GACAA,EAAWC,QAEnB,CAEAl2C,MAAAA,G,QACI,IAAKyG,EAAAA,EAAEqJ,QAAU5O,KAAKQ,MAAM2f,IACxB,OAGJ,IAAI80B,EACAC,EAEJ,MAAMC,GAAc5vC,EAAAA,EAAEkB,KAAKkjB,cAAgB9oB,EAAAA,GAAwB0E,EAAAA,EAAEkB,KAAK2jB,KAE1E,GAAI+qB,EAAY,CACZ,MAAMC,EACF7vC,EAAAA,EAAEkB,KAAK+c,aAAeje,EAAAA,EAAEQ,IAAIqd,aAC5B7d,EAAAA,EAAEkB,KAAK4iB,UAAY9jB,EAAAA,EAAEQ,IAAIwb,SACzBhc,EAAAA,EAAEkB,KAAK4uC,UAAY9vC,EAAAA,EAAEQ,IAAIwN,SACzBhO,EAAAA,EAAEkB,KAAKwW,aAAe1X,EAAAA,EAAEQ,IAAI0N,aAC5BlO,EAAAA,EAAEkB,KAAKkQ,wBAA0BpR,EAAAA,EAAEQ,IAAI8N,OACvCtO,EAAAA,EAAEkB,KAAKwY,SAAW1Z,EAAAA,EAAEQ,IAAI4N,QAE5BshC,EACIG,GACAD,GACAjzC,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAWqzC,YAAa,GACpDJ,EACIr2C,EAAAA,cAAA,OACIG,GAAG,aACHG,UAAU,WACVuN,IAAK,6BAA6BnH,EAAAA,EAAEkB,KAAK2jB,eACzC3d,IAAK,oBAAoBlH,EAAAA,EAAEkB,KAAK0I,OAChC1N,MAAO,CAAC4F,MAAO,OAAQC,OAAQ,OAAQiuC,UAAW,YAG9D,CAEA,MAAMC,EAAgBA,IACdjwC,EAAAA,EAAEkB,KAAKwM,oBAAsB,EAEzBpU,EAAAA,cAAA,OAAKG,GAAG,wBACJH,EAAAA,cAAA,OAAKG,GAAG,+BACFi2C,GACEp2C,EAAAA,cAAA,OACIG,GAAG,aACHG,UAAU,WACVuN,IAAK,mDAAmDnH,EAAAA,EAAEkB,KAAKgvC,WAAWtqC,gBAC1EsB,IAAK,oBAAoBlH,EAAAA,EAAEkB,KAAK0I,SAIvC8lC,GAAgBC,EAEhB3vC,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAKqkB,gBACdjsB,EAAAA,cAAA,OAAKM,UAAU,6BACXN,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAO,sEAEX3N,EAAAA,cAAA,OACIwI,MAAM,MACNC,OAAO,MACPoF,IAAI,mEACJD,IAAI,wBACJ/E,QAAQ,aAUL,IAA/BnC,EAAAA,EAAEkB,KAAKwM,oBAEHpU,EAAAA,cAAA,OACIG,GAAG,sBACHyC,MAAO,CAACmV,QAAS,GAAG5W,KAAKQ,MAAM2f,IAAIikB,uBAEjC6Q,GACEp2C,EAAAA,cAAA,OAAKG,GAAG,6BACJH,EAAAA,cAAA,OACIG,GAAG,YACHG,UAAU,WACVuN,IACInH,EAAAA,EAAEC,GAAG0c,oBAAoB9hB,SAAS,YAC5B,yDAAyDmF,EAAAA,EAAEC,GAAG0c,sBAC9D,iEAAiE3c,EAAAA,EAAEC,GAAG0c,sBAEhFzV,IAAK,oBAAoBlH,EAAAA,EAAEkB,KAAK0I,SAEpCtQ,EAAAA,cAAA,OACIG,GAAG,YACHG,UAAU,kBACVsN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIuT,cACpBjyB,MAAO,CACH8I,KAAM,IAAIvK,KAAKQ,MAAM2f,IAAIikB,kBACzB95B,IAAK,IAAItK,KAAKQ,MAAM2f,IAAIikB,kBACxB/8B,MAAOrH,KAAKQ,MAAM2f,IAAI2T,mBAG9Bj1B,EAAAA,cAAA,OACIG,GAAG,aACHG,UAAU,kBACVsN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAI4T,eACpBtyB,MAAO,CACHgsB,MAAO,IAAIztB,KAAKQ,MAAM2f,IAAIikB,kBAC1B95B,IAAK,IAAItK,KAAKQ,MAAM2f,IAAIikB,kBACxB/8B,MAAOrH,KAAKQ,MAAM2f,IAAI+T,oBAG9Br1B,EAAAA,cAAA,OACIG,GAAG,gBACHG,UAAU,kBACVsN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIoU,kBACpB9yB,MAAO,CACHgsB,MAAO,IAAIztB,KAAKQ,MAAM2f,IAAIikB,kBAC1BsR,OAAQ,IAAI11C,KAAKQ,MAAM2f,IAAIikB,kBAC3B/8B,MAAOrH,KAAKQ,MAAM2f,IAAIuU,uBAG9B71B,EAAAA,cAAA,OACIG,GAAG,eACHG,UAAU,kBACVsN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIgU,iBACpB1yB,MAAO,CACH8I,KAAM,IAAIvK,KAAKQ,MAAM2f,IAAIikB,kBACzBsR,OAAQ,IAAI11C,KAAKQ,MAAM2f,IAAIikB,kBAC3B/8B,MAAOrH,KAAKQ,MAAM2f,IAAImU,sBAG9Bz1B,EAAAA,cAAA,OACIG,GAAG,SACHG,UAAU,kBACVsN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIwU,WACpBlzB,MAAO,CACH8I,KAAM,IAAIvK,KAAKQ,MAAM2f,IAAIikB,kBACzB/8B,MAAOrH,KAAKQ,MAAM2f,IAAI2U,aACtBxtB,OAAQtH,KAAKQ,MAAM2f,IAAI4U,iBAG/Bl2B,EAAAA,cAAA,OACIG,GAAG,QACHG,UAAU,uBACVsN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIkV,UACpB5zB,MAAO,CACH6I,IAAK,IAAItK,KAAKQ,MAAM2f,IAAIikB,kBACxB75B,KAAM,EACNlD,MAAOrH,KAAKQ,MAAM2f,IAAIqV,YACtBluB,OAAQtH,KAAKQ,MAAM2f,IAAIsV,gBAG/B52B,EAAAA,cAAA,OACIG,GAAG,UACHG,UAAU,kBACVsN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAI6U,YACpBvzB,MAAO,CACHgsB,MAAO,IAAIztB,KAAKQ,MAAM2f,IAAIikB,kBAC1B/8B,MAAOrH,KAAKQ,MAAM2f,IAAIgV,cACtB7tB,OAAQtH,KAAKQ,MAAM2f,IAAIiV,kBAG/Bv2B,EAAAA,cAAA,OACIG,GAAG,WACHG,UAAU,uBACVsN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIuV,aACpBj0B,MAAO,CACHi0C,OAAQ,IAAI11C,KAAKQ,MAAM2f,IAAIikB,kBAC3B75B,KAAM,EACNlD,MAAOrH,KAAKQ,MAAM2f,IAAI0V,eACtBvuB,OAAQtH,KAAKQ,MAAM2f,IAAI2V,mBAG9BvwB,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAKqkB,gBACdjsB,EAAAA,cAAA,OAAKM,UAAU,6BACXN,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAO,sEAEX3N,EAAAA,cAAA,OACIwI,MAAM,MACNC,OAAO,MACPoF,IAAI,mEACJD,IAAI,wBACJ/E,QAAQ,YAQ/ButC,GAAgBC,GAKrBr2C,EAAAA,cAAA,OAAKG,GAAG,eACJH,EAAAA,cAAA,OACIG,GAAG,eACHyC,MAAO,CACH4F,MAAO,GAAGrH,KAAKQ,MAAM2f,IAAIyiB,wBACzBt7B,OAAQ,GAAGtH,KAAKQ,MAAM2f,IAAI0iB,4BAIlChkC,EAAAA,cAAA,OACIG,GAAG,gBACHyC,MAAO,CACH6F,OAAQ,GAAGtH,KAAKQ,MAAM2f,IAAI0iB,yBAC1Bx7B,MAAO,GAAGrH,KAAKQ,MAAM2f,IAAIyiB,yBAE7BphC,QAASxB,KAAKwO,OAEZymC,GACEp2C,EAAAA,cAAA,OACIG,GAAG,kBACHyC,MAAO,CACH+pB,gBAAiB,QAAQxrB,KAAKQ,MAAM2f,IAAI0S,yBACxCxrB,MAAOrH,KAAKQ,MAAM2f,IAAI6S,WACtB1rB,OAAQtH,KAAKQ,MAAM2f,IAAI8S,YACvB0iB,eAAgB31C,KAAKQ,MAAM2f,IAAI+S,oBAC/B5oB,IAAKtK,KAAKQ,MAAM2f,IAAIgT,WAIxBt0B,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ3L,EAAAA,GAAUb,KAAKQ,MAAM2f,IAAIuT,iBAErC70B,EAAAA,cAAA,OACIG,GAAG,YACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIuT,cACpBjyB,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIyT,eACrBtpB,IAAKtK,KAAKQ,MAAM2f,IAAI0T,cACpBxsB,MAAOrH,KAAKQ,MAAM2f,IAAI2T,oBAKlCj1B,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ3L,EAAAA,GAAUb,KAAKQ,MAAM2f,IAAI4T,kBAErCl1B,EAAAA,cAAA,OACIG,GAAG,aACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAI4T,eACpBtyB,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAI6T,gBACrB1pB,IAAKtK,KAAKQ,MAAM2f,IAAI8T,eACpB5sB,MAAOrH,KAAKQ,MAAM2f,IAAI+T,qBAKlCr1B,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ3L,EAAAA,GAAUb,KAAKQ,MAAM2f,IAAIoU,qBAErC11B,EAAAA,cAAA,OACIG,GAAG,gBACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIoU,kBACpB9yB,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIqU,mBACrBlqB,IAAKtK,KAAKQ,MAAM2f,IAAIsU,kBACpBptB,MAAOrH,KAAKQ,MAAM2f,IAAIuU,wBAKlC71B,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ3L,EAAAA,GAAUb,KAAKQ,MAAM2f,IAAIgU,oBAErCt1B,EAAAA,cAAA,OACIG,GAAG,eACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIgU,iBACpB1yB,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIiU,kBACrB9pB,IAAKtK,KAAKQ,MAAM2f,IAAIkU,iBACpBhtB,MAAOrH,KAAKQ,MAAM2f,IAAImU,uBAKlCz1B,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ3L,EAAAA,GAAUb,KAAKQ,MAAM2f,IAAIwU,cAErC91B,EAAAA,cAAA,OACIG,GAAG,SACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIwU,WACpBlzB,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIyU,YACrBtqB,IAAKtK,KAAKQ,MAAM2f,IAAI0U,WACpBxtB,MAAOrH,KAAKQ,MAAM2f,IAAI2U,aACtBxtB,OAAQtH,KAAKQ,MAAM2f,IAAI4U,kBAKnCl2B,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ3L,EAAAA,GAAUb,KAAKQ,MAAM2f,IAAIkV,aAErCx2B,EAAAA,cAAA,OACIG,GAAG,QACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIkV,UACpB5zB,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAImV,WACrBhrB,IAAKtK,KAAKQ,MAAM2f,IAAIoV,UACpBluB,MAAOrH,KAAKQ,MAAM2f,IAAIqV,YACtBluB,OAAQtH,KAAKQ,MAAM2f,IAAIsV,iBAKnC52B,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ3L,EAAAA,GAAUb,KAAKQ,MAAM2f,IAAI6U,eAErCn2B,EAAAA,cAAA,OACIG,GAAG,UACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAI6U,YACpBvzB,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAI8U,aACrB3qB,IAAKtK,KAAKQ,MAAM2f,IAAI+U,YACpB7tB,MAAOrH,KAAKQ,MAAM2f,IAAIgV,cACtB7tB,OAAQtH,KAAKQ,MAAM2f,IAAIiV,mBAKnCv2B,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ3L,EAAAA,GAAUb,KAAKQ,MAAM2f,IAAIuV,gBAErC72B,EAAAA,cAAA,OACIG,GAAG,WACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIuV,aACpBj0B,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIwV,cACrBrrB,IAAKtK,KAAKQ,MAAM2f,IAAIyV,aACpBvuB,MAAOrH,KAAKQ,MAAM2f,IAAI0V,eACtBvuB,OAAQtH,KAAKQ,MAAM2f,IAAI2V,oBAKlC91B,KAAKQ,MAAM2f,IAAIy1B,cACZ/2C,EAAAA,cAAA,OACIG,GAAG,kBACHyC,MAAO,CACHuc,gBACIhe,KAAKQ,MAAM2f,IAAIyW,gCACnBrsB,KAAMvK,KAAKQ,MAAM2f,IAAI0W,qBACrBvsB,IAAKtK,KAAKQ,MAAM2f,IAAI2W,oBACpBzvB,MAAOrH,KAAKQ,MAAM2f,IAAI4W,sBACtBzvB,OAAQtH,KAAKQ,MAAM2f,IAAI6W,yBAG3Bn4B,EAAAA,cAAA,OACIG,GAAG,YACHyC,MAAO,CACHuc,gBACIhe,KAAKQ,MAAM2f,IAAI+W,0BACnB3sB,KAAMvK,KAAKQ,MAAM2f,IAAIgX,eACrB7sB,IAAKtK,KAAKQ,MAAM2f,IAAIiX,cACpB/vB,MAAOrH,KAAKQ,MAAM2f,IAAIkX,gBACtB/vB,OAAQtH,KAAKQ,MAAM2f,IAAImX,mBAG3Bz4B,EAAAA,cAAA,OACIG,GAAG,kBACHyC,MAAO,CACHuc,gBACIhe,KAAKQ,MAAM2f,IACNoX,gCACThtB,KAAMvK,KAAKQ,MAAM2f,IAAIqX,qBACrBltB,IAAKtK,KAAKQ,MAAM2f,IAAIsX,oBACpBpwB,MAAOrH,KAAKQ,MAAM2f,IAAIuX,sBACtBpwB,OAAQtH,KAAKQ,MAAM2f,IACdwX,yBAGT94B,EAAAA,cAAA,gBACM0G,EAAAA,EAAEC,GAAGuC,gBACHlJ,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ3L,EAAAA,GACJb,KAAKQ,MAAMwnB,KACLhoB,KAAKQ,MAAM2f,IAAIqmB,SAASjmB,QACpB,OACA,aAEJvgB,KAAKQ,MAAM2f,IAAIqmB,YAIjC3nC,EAAAA,cAAA,OACIG,GAAG,OACHyC,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIumB,UACrBp8B,IAAKtK,KAAKQ,MAAM2f,IAAIwmB,SACpBt/B,MAAOrH,KAAKQ,MAAM2f,IAAIymB,WACtBt/B,OAAQtH,KAAKQ,MAAM2f,IAAI0mB,aAE3Bn6B,IACI1M,KAAKQ,MAAMwnB,KACLhoB,KAAKQ,MAAM2f,IAAIqmB,SAASjmB,QACpB,OACA,aAEJvgB,KAAKQ,MAAM2f,IAAIqmB,SAEzB/5B,IAAI,SAQ3BzM,KAAKQ,MAAM2f,IAAIqvB,cACZ3wC,EAAAA,cAAA,OACIG,GAAG,kBACHyC,MAAO,CACHuc,gBACIhe,KAAKQ,MAAM2f,IAAIsuB,gCACnBlkC,KAAMvK,KAAKQ,MAAM2f,IAAIuuB,qBACrBpkC,IAAKtK,KAAKQ,MAAM2f,IAAIwuB,oBACpBtnC,MAAOrH,KAAKQ,MAAM2f,IAAIyuB,sBACtBtnC,OAAQtH,KAAKQ,MAAM2f,IAAI0uB,yBAG3BhwC,EAAAA,cAAA,OACIG,GAAG,YACHyC,MAAO,CACHuc,gBACIhe,KAAKQ,MAAM2f,IAAI2uB,0BACnBvkC,KAAMvK,KAAKQ,MAAM2f,IAAI4uB,eACrBzkC,IAAKtK,KAAKQ,MAAM2f,IAAI6uB,cACpB3nC,MAAOrH,KAAKQ,MAAM2f,IAAI8uB,gBACtB3nC,OAAQtH,KAAKQ,MAAM2f,IAAI+uB,mBAG3BrwC,EAAAA,cAAA,OACIG,GAAG,kBACHyC,MAAO,CACHuc,gBACIhe,KAAKQ,MAAM2f,IACNgvB,gCACT5kC,KAAMvK,KAAKQ,MAAM2f,IAAIivB,qBACrB9kC,IAAKtK,KAAKQ,MAAM2f,IAAIkvB,oBACpBhoC,MAAOrH,KAAKQ,MAAM2f,IAAImvB,sBACtBhoC,OAAQtH,KAAKQ,MAAM2f,IACdovB,yBAGT1wC,EAAAA,cAAA,OACIG,GAAG,OACH0I,QAAQ,OACRjG,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIwvB,UACrBrlC,IAAKtK,KAAKQ,MAAM2f,IAAIyvB,SACpBvoC,MAAOrH,KAAKQ,MAAM2f,IAAI0vB,WACtBvoC,OAAQtH,KAAKQ,MAAM2f,IAAI2vB,aAE3BpjC,IACI1M,KAAKQ,MAAMwnB,KACLhoB,KAAKQ,MAAM2f,IAAIsvB,SAASlvB,QACpB,OACA,aAEJvgB,KAAKQ,MAAM2f,IAAIsvB,SAEzBhjC,IAAI,QAOvBzM,KAAKQ,MAAM2f,IAAIisB,gBACZvtC,EAAAA,cAAA,OACIG,GAAG,oBACHyC,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAImsB,uBACrBhiC,IAAKtK,KAAKQ,MAAM2f,IAAIosB,sBACpBllC,MAAOrH,KAAKQ,MAAM2f,IAAIqsB,wBACtBllC,OAAQtH,KAAKQ,MAAM2f,IAAIssB,yBACvBzuB,gBACIhe,KAAKQ,MAAM2f,IACNksB,oCAGbxtC,EAAAA,cAAA,OACIG,GAAG,cACHyC,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIwsB,iBACrBriC,IAAKtK,KAAKQ,MAAM2f,IAAIysB,gBACpBvlC,MAAOrH,KAAKQ,MAAM2f,IAAI0sB,kBACtBvlC,OAAQtH,KAAKQ,MAAM2f,IAAI2sB,mBACvB9uB,gBACIhe,KAAKQ,MAAM2f,IAAIusB,8BAGvB7tC,EAAAA,cAAA,OACIG,GAAG,oBACHyC,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAI6sB,uBACrB1iC,IAAKtK,KAAKQ,MAAM2f,IAAI8sB,sBACpB5lC,MAAOrH,KAAKQ,MAAM2f,IACb+sB,wBACL5lC,OAAQtH,KAAKQ,MAAM2f,IACdgtB,yBACLnvB,gBACIhe,KAAKQ,MAAM2f,IACN4sB,oCAGbluC,EAAAA,cAAA,OACIG,GAAG,SACHyC,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIktB,YACrB/iC,IAAKtK,KAAKQ,MAAM2f,IAAImtB,WACpBjmC,MAAOrH,KAAKQ,MAAM2f,IAAIotB,aACtBjmC,OAAQtH,KAAKQ,MAAM2f,IAAIqtB,eAE3B9gC,IAAK1M,KAAKQ,MAAM2f,IAAIitB,WACpB3gC,IAAI,KAER5N,EAAAA,cAAA,OACI4C,MAAO,CACHo0C,UAAW,uBACXtrC,KAAMvK,KAAKQ,MAAM2f,IAAIktB,YACrB/iC,IAAKtK,KAAKQ,MAAM2f,IAAImtB,WACpBjmC,MAAOrH,KAAKQ,MAAM2f,IAAIotB,aACtBjmC,OAAQtH,KAAKQ,MAAM2f,IAAIqtB,oBAQ9CxtC,KAAKQ,MAAM2f,IAAIomB,gBACZ1nC,EAAAA,cAAA,OACIG,GAAG,cACHyC,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIkY,iBACrB/tB,IAAKtK,KAAKQ,MAAM2f,IAAImY,gBACpBjxB,MAAOrH,KAAKQ,MAAM2f,IAAIoY,kBACtBjxB,OAAQtH,KAAKQ,MAAM2f,IAAIqY,qBAG3B35B,EAAAA,cAAA,OACIG,GAAG,YACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIsY,cACpBh3B,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIwY,eACrBruB,IAAKtK,KAAKQ,MAAM2f,IAAIyY,cACpBvxB,MAAOrH,KAAKQ,MAAM2f,IAAI0Y,mBAG9Bh6B,EAAAA,cAAA,OACIG,GAAG,aACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAI2Y,eACpBr3B,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAI4Y,gBACrBzuB,IAAKtK,KAAKQ,MAAM2f,IAAI6Y,eACpB3xB,MAAOrH,KAAKQ,MAAM2f,IAAI8Y,oBAG9Bp6B,EAAAA,cAAA,OACIG,GAAG,gBACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAImZ,kBACpB73B,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIoZ,mBACrBjvB,IAAKtK,KAAKQ,MAAM2f,IAAIqZ,kBACpBnyB,MAAOrH,KAAKQ,MAAM2f,IAAIsZ,uBAG9B56B,EAAAA,cAAA,OACIG,GAAG,eACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAI+Y,iBACpBz3B,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIgZ,kBACrB7uB,IAAKtK,KAAKQ,MAAM2f,IAAIiZ,iBACpB/xB,MAAOrH,KAAKQ,MAAM2f,IAAIkZ,sBAG9Bx6B,EAAAA,cAAA,OACIG,GAAG,SACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIuZ,WACpBj4B,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIwZ,YACrBrvB,IAAKtK,KAAKQ,MAAM2f,IAAIyZ,WACpBvyB,MAAOrH,KAAKQ,MAAM2f,IAAI0Z,aACtBvyB,OAAQtH,KAAKQ,MAAM2f,IAAI2Z,iBAG/Bj7B,EAAAA,cAAA,OACIG,GAAG,QACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIia,UACpB34B,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIka,WACrB/vB,IAAKtK,KAAKQ,MAAM2f,IAAIma,UACpBjzB,MAAOrH,KAAKQ,MAAM2f,IAAIoa,YACtBjzB,OAAQtH,KAAKQ,MAAM2f,IAAIqa,gBAG/B37B,EAAAA,cAAA,OACIG,GAAG,UACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAI4Z,YACpBt4B,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAI6Z,aACrB1vB,IAAKtK,KAAKQ,MAAM2f,IAAI8Z,YACpB5yB,MAAOrH,KAAKQ,MAAM2f,IAAI+Z,cACtB5yB,OAAQtH,KAAKQ,MAAM2f,IAAIga,kBAG/Bt7B,EAAAA,cAAA,OACIG,GAAG,WACHyN,IAAI,GACJC,IAAK1M,KAAKQ,MAAM2f,IAAIsa,aACpBh5B,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIua,cACrBpwB,IAAKtK,KAAKQ,MAAM2f,IAAIwa,aACpBtzB,MAAOrH,KAAKQ,MAAM2f,IAAIya,eACtBtzB,OAAQtH,KAAKQ,MAAM2f,IAAI0a,oBAMtC76B,KAAKQ,MAAM2f,IAAIgb,kBACZt8B,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ3L,EAAAA,GAAUb,KAAKQ,MAAM2f,IAAIkb,gBAErCx8B,EAAAA,cAAA,OACIG,GAAG,WACHyC,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIsb,cACrBnxB,IAAKtK,KAAKQ,MAAM2f,IAAIub,aACpBr0B,MAAOrH,KAAKQ,MAAM2f,IAAIwb,eACtBr0B,OAAQtH,KAAKQ,MAAM2f,IAAIyb,iBAE3BlvB,IAAK1M,KAAKQ,MAAM2f,IAAIkb,aACpB5uB,IAAI,MAKfzM,KAAKQ,MAAM2f,IAAI+a,sBACZr8B,EAAAA,cAAA,OACIG,GAAG,eACHyC,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIsb,cACrBia,OAAQ11C,KAAKQ,MAAM2f,IAAI0b,aACvBx0B,MAAOrH,KAAKQ,MAAM2f,IAAIwb,eACtBr0B,OAAQtH,KAAKQ,MAAM2f,IAAIyb,iBAE3BlvB,IAAK1M,KAAKQ,MAAM2f,IAAIkb,aACpB5uB,IAAI,KAIXzM,KAAKQ,MAAM2f,IAAI0c,cACZh+B,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAQ3L,EAAAA,GAAUb,KAAKQ,MAAM2f,IAAIC,YAErCvhB,EAAAA,cAAA,OACIG,GAAG,OACHyC,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAI8c,UACrB3yB,IAAKtK,KAAKQ,MAAM2f,IAAI+c,SACpB71B,MAAOrH,KAAKQ,MAAM2f,IAAIgd,WACtB71B,OAAQtH,KAAKQ,MAAM2f,IAAIid,aAE3B1wB,IAAK1M,KAAKQ,MAAM2f,IAAIC,SACpB3T,IAAI,MAKfzM,KAAKQ,MAAM2f,IAAIof,YACZ1gC,EAAAA,cAAA,OACIG,GAAG,WACHyC,MAAO,CACHuc,gBACIhe,KAAKQ,MAAM2f,IAAIud,yBACnBnzB,KAAMvK,KAAKQ,MAAM2f,IAAIwd,cACrBrzB,IAAKtK,KAAKQ,MAAM2f,IAAIyd,aACpBv2B,MAAOrH,KAAKQ,MAAM2f,IAAI0d,eACtBv2B,OAAQtH,KAAKQ,MAAM2f,IAAI2d,kBAG3Bj/B,EAAAA,cAAA,OACIG,GAAG,UACHyC,MAAO,CACH+pB,gBACIxrB,KAAKQ,MAAM2f,IAAI4d,wBACnBxzB,KAAMvK,KAAKQ,MAAM2f,IAAI6d,aACrB1zB,IAAKtK,KAAKQ,MAAM2f,IAAI8d,YACpB52B,MAAOrH,KAAKQ,MAAM2f,IAAI+d,cACtB52B,OAAQtH,KAAKQ,MAAM2f,IAAIge,iBAG3Bt/B,EAAAA,cAAA,OACIG,GAAG,KACHyC,MAAO,CACH+pB,gBACIxrB,KAAKQ,MAAM2f,IAAIie,mBACnBuX,eACI31C,KAAKQ,MAAM2f,IAAIme,kBACnBzmB,MAAO7X,KAAKQ,MAAM2f,IAAIqe,SACtBj0B,KAAMvK,KAAKQ,MAAM2f,IAAIse,QACrBn0B,IAAKtK,KAAKQ,MAAM2f,IAAIue,OACpBr3B,MAAOrH,KAAKQ,MAAM2f,IAAIwe,SACtBr3B,OAAQtH,KAAKQ,MAAM2f,IAAIye,UACvBhjB,UAAW,WAGf/c,EAAAA,cAAA,OACIG,GAAG,WACHyC,MAAO,CACH6e,WACItgB,KAAKQ,MAAM2f,IAAIgf,oBACnBlqB,SACIjV,KAAKQ,MAAM2f,IAAIif,kBACnB/3B,MAAOrH,KAAKQ,MAAM2f,IAAIkf,eACtB/3B,OAAQtH,KAAKQ,MAAM2f,IAAImf,gBACvBwW,WAAY,SACZC,cAAe,SACfC,SAAU,SACVjnC,QAAS,OACTiG,eAAgB,SAChB+C,WAAY,SACZD,cAAe,SACfm+B,SAAU,SAGdp3C,EAAAA,cAAA,OAAKG,GAAG,YAAYuG,EAAAA,EAAEQ,IAAI4P,KAC1B9W,EAAAA,cAAA,OAAKG,GAAG,YAAYuG,EAAAA,EAAEQ,IAAI6P,KAC1B/W,EAAAA,cAAA,OAAKG,GAAG,YAAYuG,EAAAA,EAAEQ,IAAI8P,SAO7C7V,KAAKQ,MAAM2f,IAAI+vB,iBACZrxC,EAAAA,cAAA,OACIG,GAAG,qBACHyC,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIiwB,wBACrB9lC,IAAKtK,KAAKQ,MAAM2f,IAAIkwB,uBACpBhpC,MAAOrH,KAAKQ,MAAM2f,IAAImwB,yBACtBhpC,OAAQtH,KAAKQ,MAAM2f,IAAIowB,0BACvBvyB,gBACIhe,KAAKQ,MAAM2f,IACNgwB,qCAGbtxC,EAAAA,cAAA,OACIG,GAAG,eACHyC,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIswB,kBACrBnmC,IAAKtK,KAAKQ,MAAM2f,IAAIuwB,iBACpBrpC,MAAOrH,KAAKQ,MAAM2f,IAAIwwB,mBACtBrpC,OAAQtH,KAAKQ,MAAM2f,IAAIywB,oBACvB5yB,gBACIhe,KAAKQ,MAAM2f,IAAIqwB,+BAGvB3xC,EAAAA,cAAA,OACIG,GAAG,qBACHyC,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IACZ2wB,wBACLxmC,IAAKtK,KAAKQ,MAAM2f,IAAI4wB,uBACpB1pC,MAAOrH,KAAKQ,MAAM2f,IACb6wB,yBACL1pC,OAAQtH,KAAKQ,MAAM2f,IACd8wB,0BACLjzB,gBACIhe,KAAKQ,MAAM2f,IACN0wB,qCAGbhyC,EAAAA,cAAA,OACIG,GAAG,aACHyC,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIgxB,gBACrB7mC,IAAKtK,KAAKQ,MAAM2f,IAAIixB,eACpB/pC,MAAOrH,KAAKQ,MAAM2f,IAAIkxB,iBACtB/pC,OAAQtH,KAAKQ,MAAM2f,IACdmxB,kBACLtzB,gBACIhe,KAAKQ,MAAM2f,IACN+wB,6BAGbryC,EAAAA,cAAA,OACIG,GAAG,UACHyC,MAAO,CACH8I,KAAMvK,KAAKQ,MAAM2f,IAAIqxB,aACrBlnC,IAAKtK,KAAKQ,MAAM2f,IAAIsxB,YACpBpqC,MAAOrH,KAAKQ,MAAM2f,IAAIuxB,cACtBpqC,OAAQtH,KAAKQ,MAAM2f,IACdwxB,gBAETjlC,IAAK1M,KAAKQ,MAAM2f,IAAIoxB,YACpB9kC,IAAI,SAQ3BzM,KAAKQ,MAAM2f,IAAI4xB,cACZlzC,EAAAA,cAAA,OACIG,GAAG,kBACHyC,MAAO,CACH4e,aACIrgB,KAAKQ,MAAM2f,IAAIkyB,6BACnB9nC,KAAMvK,KAAKQ,MAAM2f,IAAI8xB,qBACrB3nC,IAAKtK,KAAKQ,MAAM2f,IAAI+xB,oBACpB7qC,MAAOrH,KAAKQ,MAAM2f,IAAIgyB,sBACtB7qC,OAAQtH,KAAKQ,MAAM2f,IAAIiyB,uBACvBp0B,gBACIhe,KAAKQ,MAAM2f,IAAI6xB,kCAGvBnzC,EAAAA,cAAA,OACIG,GAAG,YACHyC,MAAO,CACH4e,aACIrgB,KAAKQ,MAAM2f,IAAIwyB,uBACnBpoC,KAAMvK,KAAKQ,MAAM2f,IAAIoyB,eACrBjoC,IAAKtK,KAAKQ,MAAM2f,IAAIqyB,cACpBnrC,MAAOrH,KAAKQ,MAAM2f,IAAIsyB,gBACtBnrC,OAAQtH,KAAKQ,MAAM2f,IAAIuyB,iBACvB10B,gBACIhe,KAAKQ,MAAM2f,IAAImyB,4BAGvBzzC,EAAAA,cAAA,OACIG,GAAG,kBACHyC,MAAO,CACH4e,aACIrgB,KAAKQ,MAAM2f,IACN8yB,6BACT1oC,KAAMvK,KAAKQ,MAAM2f,IAAI0yB,qBACrBvoC,IAAKtK,KAAKQ,MAAM2f,IAAI2yB,oBACpBzrC,MAAOrH,KAAKQ,MAAM2f,IAAI4yB,sBACtBzrC,OAAQtH,KAAKQ,MAAM2f,IACd6yB,uBACLh1B,gBACIhe,KAAKQ,MAAM2f,IACNyyB,kCAGb/zC,EAAAA,cAAA,OACIG,GAAG,OACHyC,MAAO,CACH4e,aACIrgB,KAAKQ,MAAM2f,IAAIozB,kBACnBhpC,KAAMvK,KAAKQ,MAAM2f,IAAIgzB,UACrB7oC,IAAKtK,KAAKQ,MAAM2f,IAAIizB,SACpB/rC,MAAOrH,KAAKQ,MAAM2f,IAAIkzB,WACtB/rC,OAAQtH,KAAKQ,MAAM2f,IAAImzB,aAE3B5mC,IAAK1M,KAAKQ,MAAM2f,IAAI+yB,SACpBzmC,IAAI,QAQvBzM,KAAKQ,MAAM2f,IAAI+nB,gBACZrpC,EAAAA,cAAA,OACIG,GAAG,aACHyC,MAAO,CACHuc,gBAAiB,OACjBzT,KAAMvK,KAAKQ,MAAM2f,IAAI4oB,cACrBz+B,IAAKtK,KAAKQ,MAAM2f,IAAI8oB,aACpB5hC,MAAOrH,KAAKQ,MAAM2f,IAAIwoB,eACtBrhC,OAAQtH,KAAKQ,MAAM2f,IAAIgpB,mBAIlCnpC,KAAKQ,MAAM2f,IAAI+nB,gBACZrpC,EAAAA,cAAA,OACIG,GAAG,aACHyC,MAAO,CACHuc,gBAAiB,OACjByP,MAAOztB,KAAKQ,MAAM2f,IAAI6oB,gBACtB1+B,IAAKtK,KAAKQ,MAAM2f,IAAI+oB,cACpB7hC,MAAOrH,KAAKQ,MAAM2f,IAAIyoB,gBACtBthC,OAAQtH,KAAKQ,MAAM2f,IAAIipB,oBAIlCppC,KAAKQ,MAAM2f,IAAI+nB,gBACZrpC,EAAAA,cAAA,OACIG,GAAG,eACHyC,MAAO,CACHuc,gBAAiB,OACjBzT,KAAMvK,KAAKQ,MAAM2f,IAAI2qB,cACrBxgC,IAAKtK,KAAKQ,MAAM2f,IAAI6qB,aACpB3jC,MAAOrH,KAAKQ,MAAM2f,IAAIurB,eACtBpkC,OAAQtH,KAAKQ,MAAM2f,IAAIirB,mBAIlCprC,KAAKQ,MAAM2f,IAAI+nB,gBACZrpC,EAAAA,cAAA,OACIG,GAAG,eACHyC,MAAO,CACHuc,gBAAiB,OACjByP,MAAOztB,KAAKQ,MAAM2f,IAAI4qB,eACtBzgC,IAAKtK,KAAKQ,MAAM2f,IAAI8qB,aACpB5jC,MAAOrH,KAAKQ,MAAM2f,IAAIwrB,eACtBrkC,OAAQtH,KAAKQ,MAAM2f,IAAIkrB,mBAIlCrrC,KAAKQ,MAAM2f,IAAI+nB,gBACZrpC,EAAAA,cAAA,OACIG,GAAG,eACHyC,MAAO,CACHuc,gBAAiB,OACjBzT,KAAMvK,KAAKQ,MAAM2f,IAAI2pB,cACrB4L,OAAQ11C,KAAKQ,MAAM2f,IAAI6pB,aACvB3iC,MAAOrH,KAAKQ,MAAM2f,IAAIuqB,eACtBpjC,OAAQtH,KAAKQ,MAAM2f,IAAIiqB,mBAIlCpqC,KAAKQ,MAAM2f,IAAI+nB,gBACZrpC,EAAAA,cAAA,OACIG,GAAG,eACHyC,MAAO,CACHuc,gBAAiB,OACjByP,MAAOztB,KAAKQ,MAAM2f,IAAI4pB,eACtB2L,OAAQ11C,KAAKQ,MAAM2f,IAAI8pB,aACvB5iC,MAAOrH,KAAKQ,MAAM2f,IAAIwqB,eACtBrjC,OAAQtH,KAAKQ,MAAM2f,IAAIkqB,mBAKlCrqC,KAAKQ,MAAM2f,IAAI+nB,gBACZrpC,EAAAA,cAAA,OACIG,GAAG,kBACHyC,MAAO,CACHuc,gBAAiBhe,KAAKQ,MAAM2f,IAAIkoB,eAChC99B,KAAMvK,KAAKQ,MAAM2f,IAAIkpB,mBACrB/+B,IAAKtK,KAAKQ,MAAM2f,IAAIopB,kBACpBliC,MAAOrH,KAAKQ,MAAM2f,IAAI0oB,oBACtBvhC,OAAQtH,KAAKQ,MAAM2f,IAAIspB,wBAIlCzpC,KAAKQ,MAAM2f,IAAI+nB,gBACZrpC,EAAAA,cAAA,OACIG,GAAG,kBACHyC,MAAO,CACHuc,gBAAiBhe,KAAKQ,MAAM2f,IAAIkoB,eAChC5a,MAAOztB,KAAKQ,MAAM2f,IAAImpB,qBACtBh/B,IAAKtK,KAAKQ,MAAM2f,IAAIqpB,mBACpBniC,MAAOrH,KAAKQ,MAAM2f,IAAI2oB,qBACtBxhC,OAAQtH,KAAKQ,MAAM2f,IAAIupB,yBAIlC1pC,KAAKQ,MAAM2f,IAAI+nB,gBACZrpC,EAAAA,cAAA,OACIG,GAAG,oBACHyC,MAAO,CACHuc,gBAAiBhe,KAAKQ,MAAM2f,IAAIkoB,eAChC99B,KAAMvK,KAAKQ,MAAM2f,IAAIqrB,mBACrBlhC,IAAKtK,KAAKQ,MAAM2f,IAAI+qB,kBACpB7jC,MAAOrH,KAAKQ,MAAM2f,IAAIyrB,oBACtBtkC,OAAQtH,KAAKQ,MAAM2f,IAAImrB,wBAIlCtrC,KAAKQ,MAAM2f,IAAI+nB,gBACZrpC,EAAAA,cAAA,OACIG,GAAG,oBACHyC,MAAO,CACHuc,gBAAiBhe,KAAKQ,MAAM2f,IAAIkoB,eAChC5a,MAAOztB,KAAKQ,MAAM2f,IAAIsrB,oBACtBnhC,IAAKtK,KAAKQ,MAAM2f,IAAIgrB,kBACpB9jC,MAAOrH,KAAKQ,MAAM2f,IAAI0rB,oBACtBvkC,OAAQtH,KAAKQ,MAAM2f,IAAIorB,wBAIlCvrC,KAAKQ,MAAM2f,IAAI+nB,gBACZrpC,EAAAA,cAAA,OACIG,GAAG,oBACHyC,MAAO,CACHuc,gBAAiBhe,KAAKQ,MAAM2f,IAAIkoB,eAChC99B,KAAMvK,KAAKQ,MAAM2f,IAAIqqB,mBACrBkL,OAAQ11C,KAAKQ,MAAM2f,IAAI+pB,kBACvB7iC,MAAOrH,KAAKQ,MAAM2f,IAAIyqB,oBACtBtjC,OAAQtH,KAAKQ,MAAM2f,IAAImqB,wBAIlCtqC,KAAKQ,MAAM2f,IAAI+nB,gBACZrpC,EAAAA,cAAA,OACIG,GAAG,oBACHyC,MAAO,CACHuc,gBAAiBhe,KAAKQ,MAAM2f,IAAIkoB,eAChC5a,MAAOztB,KAAKQ,MAAM2f,IAAIsqB,oBACtBiL,OAAQ11C,KAAKQ,MAAM2f,IAAIgqB,kBACvB9iC,MAAOrH,KAAKQ,MAAM2f,IAAI0qB,oBACtBvjC,OAAQtH,KAAKQ,MAAM2f,IAAIoqB,wBAMlCvqC,KAAKQ,MAAM2f,IAAI8mB,eACZpoC,EAAAA,cAAA,OACIG,GAAG,mBACHyC,MAAO,CACH4e,aACIrgB,KAAKQ,MAAM2f,IAAIwnB,8BACnBp9B,KAAMvK,KAAKQ,MAAM2f,IAAIonB,sBACrBj9B,IAAKtK,KAAKQ,MAAM2f,IAAIqnB,qBACpBngC,MAAOrH,KAAKQ,MAAM2f,IAAIsnB,uBACtBngC,OAAQtH,KAAKQ,MAAM2f,IAAIunB,wBACvB1pB,gBACIhe,KAAKQ,MAAM2f,IAAImnB,mCAGvBzoC,EAAAA,cAAA,OACIG,GAAG,QACHyC,MAAO,CACH4e,aAAcrgB,KAAKQ,MAAM2f,IAAI8nB,mBAC7B19B,KAAMvK,KAAKQ,MAAM2f,IAAI0nB,WACrBv9B,IAAKtK,KAAKQ,MAAM2f,IAAI2nB,UACpBzgC,MAAOrH,KAAKQ,MAAM2f,IAAI4nB,YACtBzgC,OAAQtH,KAAKQ,MAAM2f,IAAI6nB,cAE3Bt7B,IAAK1M,KAAKQ,MAAM2f,IAAIynB,UACpBn7B,IAAI,MAKflH,EAAAA,EAAEkB,MAAQlB,EAAAA,EAAEkB,KAAKqkB,gBACdjsB,EAAAA,cAAA,OAAKM,UAAU,6BACXN,EAAAA,cAAA,eACIA,EAAAA,cAAA,UACIkD,KAAK,aACLyK,OAAO,sEAEX3N,EAAAA,cAAA,OACIwI,MAAM,MACNC,OAAO,MACPoF,IAAI,mEACJD,IAAI,wBACJ/E,QAAQ,YAQ/ButC,GAAgBC,IAO/BgB,EAAWt0C,OAAOwI,WAAa,KAC/B+rC,EACFn2C,KAAK00C,eACLxyC,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAWm0C,UAAW,KAC7Cp2C,KAAKQ,MAAMwnB,OACXkuB,EACCG,EACFx3C,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,OACI40C,YAAazzC,KAAKyzC,YAClBC,aAAc1zC,KAAK0zC,aACnBC,aAAc3zC,KAAK2zC,aACnBhqC,IAAK3J,KAAK+zC,sBAETyB,IACAW,GACGt3C,EAAAA,cAAA,OACI4C,MAAO,CACH4I,SAAU,WACVC,IAAK,EACLC,KAAM,EACN+rC,QAAS,GACTt4B,gBAAiB,QAErBrU,IAAK3J,KAAK6zC,0BAIrBsC,GACGt3C,EAAAA,cAAA,OACI4C,MAAO,CACH4I,SAAU,WACVC,IAAK,EACLC,KAAM,OACNgsC,OAAQ,IACRP,SAAU,SACVQ,WAAY,UAGhB33C,EAAAA,cAAA,OACIM,UAAU,oBACVwK,IAAK3J,KAAK60C,oBAETW,OAOfiB,EACFv0C,EAAAA,GAAYyG,YAAY1G,EAAAA,EAAWm0C,UAAW,IAC9Cp2C,KAAK00C,eACLnvC,EAAAA,EAAEC,GAAGgY,cACHk5B,EACF73C,EAAAA,cAAA,OACI4C,MAAO,CACHsN,QAAS,OACTgJ,WAAY,SACZ/C,eAAgB,SAChBgJ,gBAAiB,IAAIzY,EAAAA,EAAEC,GAAGyY,aAC1B5W,MAAO,GAAoC,QAAjCyC,EAAA9J,KAAK+zC,qBAAqB3qC,eAAO,IAAAU,OAAA,EAAAA,EAAEoqC,wBAAwB7sC,UACrEC,OAAQ,GAAoC,QAAjCqvC,EAAA32C,KAAK+zC,qBAAqB3qC,eAAO,IAAAutC,OAAA,EAAAA,EAAEzC,wBAAwB5sC,YAE1EqsC,aAAc3zC,KAAK2zC,cAEnB90C,EAAAA,cAAA,OACI6N,IAAK,0DAA0DnH,EAAAA,EAAEC,GAAGgY,cAAcrS,6BAClFsB,IAAI,WACJ/E,QAAQ,OACRjG,MAAO,CACHC,SAAU,OACVC,UAAW,WAM3B,OACI9C,EAAAA,cAAA,OACI4C,MAAO,CACHsN,QAAS,OACT6nC,UAAW,SACXvsC,SAAU,aAGbosC,EAAkBC,EAAWL,EAG1C,GAtzCYh3C,EAAA,CAAXyD,EAAAA,IAAU,oCACCzD,EAAA,CAAXyD,EAAAA,IAAU,2CACCzD,EAAA,CAAXyD,EAAAA,IAAU,yCACCzD,EAAA,CAAXyD,EAAAA,IAAU,6CAYXzD,EAAA,CADC0D,EAAAA,IAAM,gCAyCP1D,EAAA,CADC0D,EAAAA,IAAM,4CAyBP1D,EAAA,CADC0D,EAAAA,IAAM,iCAMP1D,EAAA,CADC0D,EAAAA,IAAM,iCAQP1D,EAAA,CADC0D,EAAAA,IAAM,6BAcP1D,EAAA,CADC0D,EAAAA,IAAM,2BAxGU8oB,EAAaxsB,EAAA,CADjCC,EAAAA,IACoBusB,G,qaCYf,MAAOgrB,EAyBTt2C,WAAAA,GAxBY4B,OAAAC,eAAA,W,yDACAD,OAAAC,eAAA,Y,yDACAD,OAAAC,eAAA,a,yDACAD,OAAAC,eAAA,W,yDACAD,OAAAC,eAAA,iB,yDACAD,OAAAC,eAAA,c,iDAAiB,IACjBD,OAAAC,eAAA,iB,yDACAD,OAAAC,eAAA,qB,yDACAD,OAAAC,eAAA,iB,iDAAoB,IACpBD,OAAAC,eAAA,c,iDAAiB,IACjBD,OAAAC,eAAA,yB,iDAA4B,IAC5BD,OAAAC,eAAA,2B,iDAA8B,IAC9BD,OAAAC,eAAA,0B,gDAA4B,IAC5BD,OAAAC,eAAA,qB,yDACAD,OAAAC,eAAA,c,yDACAD,OAAAC,eAAA,c,yDACAD,OAAAC,eAAA,c,yDACAD,OAAAC,eAAA,kB,yDACAD,OAAAC,eAAA,kB,yDACAD,OAAAC,eAAA,qB,yDACAD,OAAAC,eAAA,qB,yDACAD,OAAAC,eAAA,iC,gDAAmC,KACnCD,OAAAC,eAAA,iB,gDAAmB,IA8E/BD,OAAAC,eAAA,a,gDAAOO,KACH3C,KAAKuS,SAAWC,SAASD,SACzBvS,KAAKoP,iBAAmB8e,YACxBluB,KAAKgK,UAAY8sC,aACjB92C,KAAKyG,KAAO7B,KAAKC,MAAMD,KAAKiY,UAAUk6B,oBACtC/2C,KAAKgxB,aAAepsB,KAAKC,MAAMD,KAAKiY,UAAUm6B,yBAC9Ch3C,KAAK2G,GAAK3G,KAAKyG,KAAKwwC,UAAUC,WAEF,QAAxBl3C,KAAKyG,KAAKH,YACV4nB,aAAc,EACdluB,KAAKoP,kBAAmB,GAGxBpP,KAAKyG,KAAK4c,WACVrjB,KAAKyG,KAAK4c,UAAYrjB,KAAKyG,KAAK4c,UAAU5V,QAAOC,GAAKA,EAAEypC,SAAWD,YACnEl3C,KAAKyG,KAAK4c,UAAUpU,KAAI,CAACC,EAAGjI,IAAOiI,EAAEjI,EAAIA,KAEzC1B,EAAEkB,KAAK4c,UAAY,GAEnBrjB,KAAKyG,KAAKob,MACV7hB,KAAKyG,KAAKob,KAAO7hB,KAAKyG,KAAKob,KAAKpU,QAAOC,GAAKA,EAAEypC,SAAWD,YACzDl3C,KAAKyG,KAAKob,KAAK5S,KAAI,CAACC,EAAGjI,IAAOiI,EAAEjI,EAAIA,KAEpC1B,EAAEkB,KAAKob,KAAO,GAEd7hB,KAAKyG,KAAK2a,UACVphB,KAAKyG,KAAK2a,SAAWphB,KAAKyG,KAAK2a,SAAS3T,QAAOC,GAAKA,EAAEypC,SAAWD,YACjEl3C,KAAKyG,KAAK2a,SAAS3T,QAAOC,GAAKA,EAAEypC,SAAWD,YAAWjoC,KAAI,CAACC,EAAGjI,IAAOiI,EAAEjI,EAAIA,KAE5E1B,EAAEkB,KAAK2a,SAAW,GAElBphB,KAAKyG,KAAK6a,UACVthB,KAAKyG,KAAK6a,SAAWthB,KAAKyG,KAAK6a,SAAS7T,QAAOC,GAAKA,EAAEypC,SAAWD,YACjEl3C,KAAKyG,KAAK6a,SAAS7T,QAAOC,GAAKA,EAAEypC,SAAWD,YAAWjoC,KAAI,CAACC,EAAGjI,IAAOiI,EAAEjI,EAAIA,KAE5E1B,EAAEkB,KAAK6a,SAAW,GAElBthB,KAAKyG,KAAK4W,WACVrd,KAAKyG,KAAK4W,UAAYrd,KAAKyG,KAAK4W,UAAU5P,QAAOC,GAAKA,EAAEypC,SAAWD,YACnEl3C,KAAKyG,KAAK4W,UAAU5P,QAAOC,GAAKA,EAAEypC,SAAWD,YAAWjoC,KAAI,CAACC,EAAGjI,IAAOiI,EAAEjI,EAAIA,KAE7E1B,EAAEkB,KAAK4W,UAAY,GAEnBrd,KAAKyG,KAAK6I,OACVtP,KAAKyG,KAAK6I,MAAQtP,KAAKyG,KAAK6I,MAAM7B,QAAOC,GAAKA,EAAEypC,SAAWD,YAC3Dl3C,KAAKyG,KAAK6I,MAAML,KAAI,CAACC,EAAGjI,IAAOiI,EAAEjI,EAAIA,KAErC1B,EAAEkB,KAAK6I,MAAQ,GAInBtP,KAAKwF,GAAG0N,QAAUlT,KAAKyG,KAAK8J,OAC5BvQ,KAAKwF,GAAGC,MAAQzF,KAAKgK,SAAWhK,KAAK2G,GAAG4O,aAAevV,KAAK2G,GAAGuqB,gBAC/DlxB,KAAKyG,KAAK2wC,YACVp3C,KAAKyG,KAAK4wC,YACVr3C,KAAKwF,GAAG8xC,KAAOt3C,KAAK2G,GAAG4wC,aACvBv3C,KAAKwF,GAAG0f,cAAgBllB,KAAKyG,KAAK0I,KAClCnP,KAAKwF,GAAG4P,SAAWpV,KAAKyG,KAAKwB,QAC7BjI,KAAKwF,GAAG+B,OAASvH,KAAKyG,KAAKuK,eAC3B,MAAMxD,EAAM,IAAI,IAAI2W,IAAInkB,KAAKyG,KAAKsD,WAAWkF,KAAIC,GAAKA,EAAER,eACxD,IAAK,IAAIzH,EAAI,EAAGA,EAAIuG,EAAIrG,OAAQF,IACxB1B,EAAEkB,KAAKsD,WAAW0D,QAAOC,GAAKA,EAAEgB,aAAelB,EAAIvG,KAAIE,OAAS,GAChEnH,KAAKwF,GAAGkoB,YAAYrtB,KAAKmN,EAAIvG,IA4ErC,GAzE4B,IAAxBjH,KAAK2G,GAAGoM,aAAqB/S,KAAKgK,WAClChK,KAAKwF,GAAGiS,gBAAiB,GAED,IAAxBzX,KAAK2G,GAAGoM,aAAqB/S,KAAKgK,WAClChK,KAAKwF,GAAGsK,WAAY,GAEI,QAAxB9P,KAAKyG,KAAKH,YACVtG,KAAKyG,KAAKqkB,gBAAiB,GAI3B9qB,KAAKyG,KAAKkO,kBACV3U,KAAK+F,IAAIiO,WAAY,GAEzBhU,KAAK+F,IAAI8I,OAAS7O,KAAKyG,KAAKkB,MAC5B3H,KAAKyG,KAAKqW,SAASnV,MAAQ3H,KAAKyG,KAAKkB,MACrC3H,KAAK+F,IAAIyxC,iBAAkB,EAC3Bx3C,KAAK+F,IAAI0xC,kBAAmB,EAC5Bz3C,KAAK+F,IAAI2xC,gBAAkB13C,KAAKyG,KAAKH,UACrCtG,KAAK+F,IAAI4xC,aAAe33C,KAAKyG,KAAK8J,OAClCvQ,KAAK+F,IAAIc,SAAW7G,KAAKyG,KAAKI,SAC9B7G,KAAK+F,IAAIe,UAAY9G,KAAKyG,KAAKK,UAC/B9G,KAAK+F,IAAI8F,UAAY7L,KAAKyG,KAAKoF,UAC/B7L,KAAK+F,IAAI+F,WAAa9L,KAAKyG,KAAKqF,WAChC9L,KAAK+F,IAAIqd,YAAcpjB,KAAKyG,KAAK+c,WACjCxjB,KAAK+F,IAAIoL,kBAAoBnR,KAAKyG,KAAKm7B,iBACvC5hC,KAAKwF,GAAG0kB,kBAAoBlqB,KAAKyG,KAAKmxC,gBACtC53C,KAAKwF,GAAGsmB,mBAAqB9rB,KAAKyG,KAAKoxC,kBACvC73C,KAAKwF,GAAGqlB,sBAAwB7qB,KAAKyG,KAAKqxC,uBAC1C93C,KAAK+F,IAAI6b,YAAc5hB,KAAKyG,KAAKyc,WACjCljB,KAAK+F,IAAIwb,QAAUvhB,KAAKyG,KAAK4iB,QAC7BrpB,KAAK+F,IAAIwN,QAAUvT,KAAKyG,KAAK4uC,QAC7Br1C,KAAK+F,IAAI0N,YAAczT,KAAKyG,KAAKwW,WACjCjd,KAAK+F,IAAImX,mBAAqBld,KAAKyG,KAAKg2B,aACxCz8B,KAAKwF,GAAGgY,cAAgBxd,KAAKyG,KAAKg2B,aAAez8B,KAAKyG,KAAKg2B,aAAatxB,cAAgB,GACxFnL,KAAK+F,IAAIoI,SAAW,EACpBnO,KAAK+F,IAAI0N,YAAczT,KAAKyG,KAAKwW,WACjCjd,KAAK+F,IAAI8N,MAAQ,EACjB7T,KAAK+F,IAAI2P,WAAa,GACtB1V,KAAK+F,IAAI8nB,UAAYipB,aACrB92C,KAAK+F,IAAIggB,IAAM,EACf/lB,KAAKwF,GAAG4f,aAAeplB,KAAKyG,KAAK2wC,YACjCp3C,KAAKwF,GAAG6f,aAAerlB,KAAKyG,KAAK4wC,YAC5Br3C,KAAK+F,IAAI8I,OAGVtJ,EAAEC,GAAG0kB,mBAAoB,EAFzBlqB,KAAK+F,IAAImN,QAAUlT,KAAKyG,KAAKqW,SAASvM,OAI1CvQ,KAAK+F,IAAI4H,gBAAkB3N,KAAKyG,KAAKqW,SAASi7B,sBACN,IAApC/3C,KAAKyG,KAAKkQ,wBACV3W,KAAK+F,IAAI8N,MAAQ,IAEmB,IAApC7T,KAAKyG,KAAKkQ,wBACV3W,KAAK+F,IAAI8N,MAAQ,GACjB7T,KAAK+F,IAAI2P,WAAa,IAEc,IAApC1V,KAAKyG,KAAKkQ,wBACV3W,KAAK+F,IAAI2P,WAAa,IAEc,IAApC1V,KAAKyG,KAAKkQ,wBACV3W,KAAK+F,IAAI8N,MAAQ,MAEmB,IAApC7T,KAAKyG,KAAKkQ,wBACV3W,KAAK+F,IAAI8N,MAAQ,KACjB7T,KAAK+F,IAAI2P,WAAa,MAE1B1V,KAAK+F,IAAI4N,QAAU3T,KAAKyG,KAAKwY,OAC7Bjf,KAAK+F,IAAI6N,eAAiB5T,KAAKyG,KAAKqW,SAAS0B,cAC7Cxe,KAAK+F,IAAImZ,eAAiB,OAC1Blf,KAAK+F,IAAIoZ,YAAcnf,KAAKyG,KAAKH,UAAY,EAC7CtG,KAAK+F,IAAIwG,cAAgBvM,KAAKyG,KAAKwH,aAGA,IAA/BjO,KAAKyG,KAAKwE,iBAAwB,CAClCjL,KAAK+F,IAAIoc,QAAUniB,KAAKyG,KAAKuxC,QAC7B,MAAMC,EAAO1yC,EAAEkB,KAAK6a,SAAS7T,QAAOC,GAAKA,EAAE1O,KAAOgB,KAAK+F,IAAIoc,UAAS,GAChE81B,IACAj4C,KAAK+F,IAAIqc,WAAa61B,EAAKz2B,UAC3BxhB,KAAKwF,GAAG6c,WAAa41B,EAAKh5C,MAElC,CAEA,GAAIe,KAAK+F,IAAI8I,OAAQ,CACjB7O,KAAKwF,GAAG8I,gBAAiB,EACzB,IAAI4pC,EAAKl4C,KAAKyG,KAAK4c,UAAU5V,QAAOC,GAAKA,EAAEiR,SACvCu5B,EAAG/wC,OAAS,IACZnH,KAAK+F,IAAIqd,YAAc80B,EAAG,GAAGl5C,IAEjC,IAAIm5C,EAAKn4C,KAAKyG,KAAK4W,UAAU5P,QAAOC,GAAKA,EAAEiR,SACvCw5B,EAAGhxC,OAAS,IACZnH,KAAK+F,IAAI0N,YAAc0kC,EAAG,GAAGn5C,IAEjC,IAAIo5C,EAAKp4C,KAAKyG,KAAK6I,MAAM7B,QAAOC,GAAKA,EAAEiR,SACnCy5B,EAAGjxC,OAAS,IACZnH,KAAK+F,IAAI4N,QAAUykC,EAAG,GAAGp5C,IAE7B,IAAIq5C,EAAMr4C,KAAKyG,KAAK2a,SAAS3T,QAAOC,GAAKA,EAAEiR,SACvC05B,EAAIlxC,OAAS,IACbnH,KAAK+F,IAAIwb,QAAU82B,EAAI,GAAGr5C,GAC1BgB,KAAK+F,IAAI2a,WAAa23B,EAAI,GAAG72B,UAC7BxhB,KAAK+F,IAAIgQ,iBAAmBsiC,EAAI,GAAGtiC,iBACnC/V,KAAK+F,IAAIiQ,mBAAqBqiC,EAAI,GAAGriC,mBACrChW,KAAK+F,IAAI+P,kBAAoBuiC,EAAI,GAAGviC,kBACpC9V,KAAKwF,GAAG0Y,MAAQ3Y,EAAEC,GAAG0Y,MAAQm6B,EAAI,GAAGrrC,KAAK7B,cAAc/K,SAAS,UAEpE,IAAIk4C,EAAMt4C,KAAKyG,KAAK6a,SAAS7T,QAAOC,GAAKA,EAAEiR,SACvC25B,EAAInxC,OAAS,IACbnH,KAAK+F,IAAIwN,QAAU+kC,EAAI,GAAGt5C,GAC1BgB,KAAK+F,IAAI0b,WAAa62B,EAAI,GAAG92B,WAEjCjc,EAAEC,GAAG0f,cAAgB,UAAUllB,KAAKyG,KAAK2M,2BAEpB,SAAjB7N,EAAEoB,GAAGD,UACLnB,EAAEC,GAAG0f,cAAgB,UAAUllB,KAAK2G,GAAGokB,gBAAgB/qB,KAAKyG,KAAK2M,4BAGrE7N,EAAEC,GAAG0kB,mBAAoB,EACzB3kB,EAAEQ,IAAIupB,cAAgB,EACa,KAA/BtvB,KAAKyG,KAAKwE,mBACVjL,KAAKu4C,kBAAoB,EAEjC,MAAO,GAAIv4C,KAAKyG,KAAKob,KAAM,CACvB,MAAM22B,EAAKx4C,KAAKyG,KAAKob,KAAKpU,QAAOC,GAAKA,EAAE1O,KAAOgB,KAAKyG,KAAKyc,aAAY,GACjEs1B,IACAx4C,KAAKy4C,6BACLz4C,KAAK+F,IAAI2a,WAAa83B,EAAG12B,WACzB9hB,KAAK+F,IAAIgQ,iBAAmByiC,EAAGziC,iBAC/B/V,KAAK+F,IAAIiQ,mBAAqBwiC,EAAGxiC,mBACjChW,KAAK+F,IAAI+P,kBAAoB0iC,EAAG1iC,kBAChC9V,KAAKwF,GAAG0Y,MAAQ3Y,EAAEC,GAAG0Y,MAAQs6B,EAAGx2B,UAAU7W,cAAc/K,SAAS,SAEzE,CA+BA,GA7BsC,IAAlCJ,KAAKyG,KAAKwM,sBACVjT,KAAKwF,GAAG0c,oBAAsBliB,KAAKyG,KAAKiyC,oBAKf,IAAxB14C,KAAK2G,GAAGoM,aAAqB/S,KAAKgK,WAClChK,KAAKwF,GAAG0f,cAAc/Z,cAAc/K,SAAS,YAC9CJ,KAAK+F,IAAI8I,UAET7O,KAAKwF,GAAGiS,gBAAiB,GAEzBzX,KAAKyG,KAAKkyC,4BACV34C,KAAKwF,GAAGiS,gBAAiB,GAG7BzX,KAAKwF,GAAG6nB,sBAAwBrtB,KAAK2G,GAAG0mB,sBACxCrtB,KAAKwF,GAAG2f,cAAgBnlB,KAAK2G,GAAGwe,cAChCnlB,KAAKwF,GAAGuL,eAAiB/Q,KAAK2G,GAAGoK,eAE7ByB,SAASomC,oBACT54C,KAAKwF,GAAG6nB,uBAAwB,GAGhC7a,SAASqmC,iBACT74C,KAAKwF,GAAG2f,eAAgB,GAIxBtkB,EAAAA,GAAwB,KACxB,IACI,IAAIw/B,EAAuBz7B,KAAKC,MAAMi0C,KAAKj4C,EAAAA,GAAwB,OAanE,GAXAwO,SAASgxB,EAAEjP,GAAG9X,WAAY,IAC1BjK,SAASgxB,EAAElf,GAAG7H,WAAY,IAC1BjK,SAASgxB,EAAEhf,GAAG/H,WAAY,IAC1BjK,SAASgxB,EAAEp5B,EAAEqS,WAAY,IACzBjK,SAASgxB,EAAEhP,EAAE/X,WAAY,IACzBjK,SAASgxB,EAAE/O,EAAEhY,WAAY,IAEzB/T,EAAEQ,IAAIqd,YAAcid,EAAEjP,GACtB7rB,EAAEQ,IAAIwb,QAAU8e,EAAElf,GAClB5b,EAAEQ,IAAIwN,QAAU8sB,EAAEhf,GAEdgf,EAAEp5B,EAAI,EAAG,CACT,MAAMiI,EAAI3J,EAAEkB,KAAK4W,UAAU5P,QAAOyB,GAAKA,EAAElQ,KAAOqhC,EAAEp5B,IAAG,GACjDiI,IACA3J,EAAEQ,IAAI0N,YAAcvE,EAAElQ,GACtBuG,EAAEQ,IAAImX,mBAAqBhO,EAAElC,KAC7BzH,EAAEQ,IAAIqX,gBAAkBlO,EAAEoO,MAC1B/X,EAAEQ,IAAIoX,mBAAqBjO,EAAEqO,UAAUpS,cACvC5F,EAAEC,GAAGgY,cAAgBtO,EAAElC,KAAK7B,cAC5B5F,EAAEC,GAAGkO,eAAiBxE,EAAEjQ,MAEhC,CAEA,GAAIohC,EAAE/O,EAAI,EAAG,CACT,MAAMpiB,EAAI3J,EAAEkB,KAAK6I,MAAM7B,QAAOyB,GAAKA,EAAElQ,KAAOqhC,EAAE/O,IAAG,GAC7CpiB,IACA3J,EAAEQ,IAAI6N,eAAiB1E,EAAElC,KACzBzH,EAAEQ,IAAIoZ,aAAc,EACpB5Z,EAAEQ,IAAI4N,QAAUzE,EAAElQ,GAClBuG,EAAEQ,IAAIqZ,UAAYlQ,EAAElC,KACpBzH,EAAEQ,IAAImZ,eAAiBmhB,EAAEvO,GACzBvsB,EAAEQ,IAAI8N,MAAQ,EAEtB,CAEAtO,EAAEQ,IAAIoI,SAAWkyB,EAAEhP,EACnB9rB,EAAEQ,IAAI4N,QAAU0sB,EAAE/O,EAClB/rB,EAAEQ,IAAI8N,MAAQwsB,EAAEl/B,EAChBoE,EAAEQ,IAAI4P,IAAM0qB,EAAE9O,GACdhsB,EAAEQ,IAAI6P,IAAMyqB,EAAE7O,GACdjsB,EAAEQ,IAAI8P,IAAMwqB,EAAE5O,GACdlsB,EAAEQ,IAAIwG,cAAgB8zB,EAAEj8B,EACxBmB,EAAEQ,IAAIc,SAAWw5B,EAAE3O,GACnBnsB,EAAEQ,IAAI8F,UAAYw0B,EAAE1O,GACpBpsB,EAAEQ,IAAIe,UAAYu5B,EAAEzO,GACpBrsB,EAAEQ,IAAI+F,WAAau0B,EAAExO,EAGzB,CAAE,MAAO7sB,GACLN,QAAQC,MAAMK,EAClB,CASJ,GANAhF,KAAKwF,GAAG6I,UAAW,EACnBrO,KAAKwF,GAAG8I,gBAAiB,EACzBtO,KAAKuO,QACLvO,KAAK4O,OAAQ,EAGT5O,KAAKgK,WAAahK,KAAKyG,KAAKkB,MAAO,CACnC,MAAMoxC,EAAsB,CACxB,CACI7lC,QAAS3N,EAAEkB,KAAKkB,MAAQ,OAAOpC,EAAEkB,KAAKH,YAAcf,EAAEQ,IAAImN,QAC1D8lC,UAAWzzC,EAAEkB,KAAK0I,KAClB8pC,OAAQ,GACRC,SAAU,MACVC,SAAU,EACVvwB,MAAO,EACPwwB,WAAY,uBACZC,cAAe9zC,EAAEkB,KAAKwK,uBACtBqoC,YAAa,8BACb7zC,MAAOzF,KAAKwF,GAAGC,MACf8zC,SAAU,EACVC,WAAYj0C,EAAEkB,KAAKH,UACnBmzC,eAAgBl0C,EAAEkB,KAAKkB,MAAQ,GAAG3H,KAAK2G,GAAG6Z,WAAaxgB,KAAK2G,GAAGynB,UAC/DsrB,aAAc15C,KAAK2G,GAAGD,QAAQ4S,WAC9BqgC,aAAc35C,KAAKyG,KAAK8J,SAI5BqpC,yBACAA,wBAAwBb,EAEhC,CAGAn3C,OAAOgC,iBACH,SACA/C,EAAAA,IAAc,IAAMb,KAAKuO,OAAM,IAAO,MAG1C,IACI,IAAIsrC,EAAa,CACbC,YAAav0C,EAAEkB,KAAK0I,KACpB7I,UAAWf,EAAEkB,KAAKH,UAClByzC,IAAKx0C,EAAEkB,KAAK8J,OACZ+b,IAAK,+BAA+B/mB,EAAEoB,GAAG2lB,MACzC0tB,MAAO,uBACP/oB,MAAO1rB,EAAEoB,GAAG4O,aACZ0kC,SACmC,IAA/B10C,EAAEkB,KAAKwM,oBACD,2DAA2D1N,EAAEkB,KAAK8J,OAAOpF,iBAAiB5F,EAAEkB,KAAKH,0BACjG,mDAAmDf,EAAEkB,KAAKgvC,WAAWtqC,iBAG/E+uC,EAAe,CACfJ,YAAav0C,EAAEkB,KAAK0I,KACpB7I,UAAWf,EAAEkB,KAAKH,UAClByzC,IAAKx0C,EAAEkB,KAAK8J,OACZ+b,IAAK,+BAA+B/mB,EAAEoB,GAAG2lB,MACzC0tB,MAAO,uBACP/oB,MAAO1rB,EAAEoB,GAAG4O,cAGXhQ,EAAEkB,KAAKkB,OAAwC,IAA/BpC,EAAEkB,KAAKwM,oBAEjB1N,EAAEkB,KAAKkB,MACdwyC,QAAQ95C,KAAK,CAAC,QAAS,iBAAkB65C,IAClC30C,EAAEkB,KAAKgvC,YAAclwC,EAAEkB,KAAKgvC,WAAWtuC,OAAS,EACvDgzC,QAAQ95C,KAAK,CAAC,QAAS,iBAAkBw5C,IAEzCM,QAAQ95C,KAAK,CAAC,QAAS,iBAAkB65C,IANzCC,QAAQ95C,KAAK,CAAC,QAAS,iBAAkBw5C,GAQjD,CAAE,MAAOO,GACL11C,QAAQC,MAAMy1C,EAClB,KAIJj4C,OAAAC,eAAA,yB,gDAAoBpD,GACXgB,KAAK+F,IAAIiQ,oBAA6B,KAAPhX,GAMxBgB,KAAK+F,IAAIgQ,mBAA4B,KAAP/W,GAAaA,EAAK,GACpDgB,KAAK+F,IAAIiQ,mBACF,GAEA,GAEHhW,KAAK+F,IAAI+P,mBAA4B,OAAP9W,EAOnCA,EANCgB,KAAK+F,IAAIgQ,iBACF,GAEA,GAfP/V,KAAK+F,IAAIgQ,iBACF,GAEA,KAmBnB5T,OAAAC,eAAA,wB,gDAAkBO,KACd,GAAK3C,KAAKoP,mBAAoBpP,KAAKyG,KAAKkB,OAAU3H,KAAKgK,SAAvD,CAKA,IAAIqwC,GAAmB,EAEnB90C,EAAEkB,KAAKiK,SAAWnL,EAAEQ,IAAIoI,SAAW,IACnCksC,GAAmB,GAEnB90C,EAAEkB,KAAKiK,SAAWnL,EAAEQ,IAAIqd,cAAgB7d,EAAEkB,KAAK+c,aAC/C62B,GAAmB,GAEnB90C,EAAEkB,KAAKiK,SAAWnL,EAAEQ,IAAIwb,UAAYhc,EAAEkB,KAAK4iB,UAC3CgxB,GAAmB,GAEnB90C,EAAEkB,KAAKiK,SAAWnL,EAAEQ,IAAIwN,UAAYhO,EAAEkB,KAAK4uC,UAC3CgF,GAAmB,GAEnB90C,EAAEkB,KAAKiK,SAAWnL,EAAEQ,IAAI0N,cAAgBlO,EAAEkB,KAAKwW,aAC/Co9B,GAAmB,GAEnB90C,EAAEkB,KAAKiK,SAAWnL,EAAEQ,IAAI4N,UAAYpO,EAAEkB,KAAKwY,SAC3Co7B,GAAmB,GAGnBnsB,aAAemsB,IAAqBr6C,KAAKs6C,qBAEzCt6C,KAAKs6C,oBAAqB,EAC1Bz5C,EAAAA,GAAW,4BAEfqtB,aAAemsB,CA5Bf,MAFInsB,aAAc,CA8Ba,IAInC/rB,OAAAC,eAAA,c,gDAASm4C,IAYL,GAVAv6C,KAAKw6C,kBACAx6C,KAAK+F,IAAI8I,OAGV7O,KAAKy6C,YAFLz6C,KAAK06C,gBAQL16C,KAAKyG,KAAKkB,MAAO,CAgCjB,GA/BA3H,KAAKy4C,6BACDz4C,KAAK+F,IAAI8N,MAAQ,IACjB7T,KAAK+F,IAAI8N,MAAQ7T,KAAK26C,iBAAiB36C,KAAK+F,IAAI8N,QAEpD7T,KAAK+F,IAAI2P,WAAa1V,KAAK26C,iBAAiB36C,KAAK+F,IAAI2P,YAEjD1V,KAAK+F,IAAI4N,QAAU,IACd3T,KAAK+F,IAAIgQ,kBAA6C,SAAzBxQ,EAAEQ,IAAImZ,eAO5Blf,KAAK+F,IAAIiQ,oBAA+C,WAAzBzQ,EAAEQ,IAAImZ,eAOrClf,KAAK+F,IAAI+P,mBAA8C,UAAzBvQ,EAAEQ,IAAImZ,iBACxClf,KAAK+F,IAAIgQ,mBACTxQ,EAAEQ,IAAImZ,eAAiB,QAEvBlf,KAAK+F,IAAIiQ,qBACTzQ,EAAEQ,IAAImZ,eAAiB,YAXvBlf,KAAK+F,IAAI+P,oBACTvQ,EAAEQ,IAAImZ,eAAiB,SAEvBlf,KAAK+F,IAAIgQ,mBACTxQ,EAAEQ,IAAImZ,eAAiB,UAXvBlf,KAAK+F,IAAIiQ,qBACTzQ,EAAEQ,IAAImZ,eAAiB,UAEvBlf,KAAK+F,IAAI+P,oBACTvQ,EAAEQ,IAAImZ,eAAiB,WAmB/Blf,KAAK+F,IAAI0N,YAAc,EAAG,CAC1B,IAAImnC,EAAWr1C,EAAEQ,IAAIoX,mBACjB09B,EAAe,GA6CnB,GA3CK76C,KAAK+F,IAAIgQ,kBAAiD,SAA7BxQ,EAAEQ,IAAIoX,mBAa5Bnd,KAAK+F,IAAIiQ,oBAAmD,WAA7BzQ,EAAEQ,IAAIoX,mBAarCnd,KAAK+F,IAAI+P,mBAAkD,UAA7BvQ,EAAEQ,IAAIoX,qBAExCnd,KAAK+F,IAAIgQ,mBACTxQ,EAAEQ,IAAIoX,mBAAqB,OACN,KAAjB09B,IACAA,EAAe,OACfn2C,QAAQ6B,IAAI,eAGhBvG,KAAK+F,IAAIiQ,qBACTzQ,EAAEQ,IAAIoX,mBAAqB,SACN,KAAjB09B,IACAA,EAAe,aAxBnB76C,KAAK+F,IAAI+P,oBACTvQ,EAAEQ,IAAIoX,mBAAqB,QACN,KAAjB09B,IACAA,EAAe,UAGnB76C,KAAK+F,IAAIgQ,mBACTxQ,EAAEQ,IAAIoX,mBAAqB,OACN,KAAjB09B,IACAA,EAAe,WAtBnB76C,KAAK+F,IAAIiQ,qBACTzQ,EAAEQ,IAAIoX,mBAAqB,SACN,KAAjB09B,IACAA,EAAe,WAGnB76C,KAAK+F,IAAI+P,oBACTvQ,EAAEQ,IAAIoX,mBAAqB,QACN,KAAjB09B,IACAA,EAAe,WAiCN,KAAjBA,EAAqB,CACrB,IAAIC,EAAU96C,KAAK+F,IAAImX,mBAClB/R,cACAoV,QAAQq6B,EAAUC,GACnBE,EAAU/6C,KAAKyG,KAAK4W,UAAU5P,QAAOC,GAAKA,EAAEV,KAAK7B,gBAAkB2vC,IAEnEC,GAAWA,EAAQ5zC,OAAS,GAC5BnH,KAAK+F,IAAI0N,YAAcsnC,EAAQ,GAAG/7C,GAClCgB,KAAK+F,IAAImX,mBAAqB69B,EAAQ,GAAG/tC,KACzChN,KAAK+F,IAAIqX,gBAAkB29B,EAAQ,GAAGz9B,MACtCtd,KAAKwF,GAAGgY,cAAgBu9B,EAAQ,GAAG/tC,KAAK7B,cACxCnL,KAAKwF,GAAGkO,eAAiBqnC,EAAQ,GAAG97C,MACpCe,KAAKwF,GAAG6I,UAAW,IAEnBrO,KAAK+F,IAAI0N,aAAe,EACxBzT,KAAKwF,GAAGkO,eAAiB,GACzB1T,KAAKwF,GAAG6I,UAAW,EAE3B,CACJ,CAGIrO,KAAK+F,IAAI0N,YAAc,GACvBlO,EAAEC,GAAG0Y,OACL3Y,EAAEQ,IAAImX,mBAAmB/R,cAAc/K,SAAS,cAEhDJ,KAAK+F,IAAI0N,aAAe,EACxBzT,KAAKwF,GAAGkO,eAAiB,GACzB1T,KAAKwF,GAAG6I,UAAW,EAE3B,EAEIrO,KAAKwF,GAAG6I,UAAYksC,KACpBv6C,KAAK+F,IAAIoa,IAAM3V,EAAAA,EAAE1L,OAAOkB,KAAKyG,KAAKqW,SAAUjc,EAAAA,GAAgBygC,QAC5DthC,KAAKg7C,eACLh7C,KAAKi7C,SAELj7C,KAAKwF,GAAG8I,iBACRtO,KAAKwF,GAAG8I,gBAAiB,GACzBjJ,EAAAA,EAAAA,OAEArF,KAAKwF,GAAG01C,mBACRt0C,EAAAA,EAAAA,KAGJ5G,KAAKwF,GAAG0E,UAAW,EACnBlK,KAAKwF,GAAG+nB,OAAQ,EAChBvtB,KAAKwF,GAAGgoB,OAAS,GACW,IAAxBxtB,KAAK2G,GAAGoM,aAAqB/S,KAAKgK,UAClChK,KAAKwF,GAAG0E,UAAW,EACnBlK,KAAKwF,GAAG8f,cAAe,GAChBtlB,KAAKgK,UAAYhK,KAAKyG,MAAQzG,KAAKyG,KAAK00C,WAC/Cn7C,KAAKwF,GAAG0E,UAAW,EACnBlK,KAAKwF,GAAG+nB,OAAQ,EAChBvtB,KAAKwF,GAAGgoB,OAASjoB,EAAEkB,KAAK20C,kBAEvBp7C,KAAKgK,UAAYhK,KAAKyG,KAAK40C,gBACN,KAAtBr7C,KAAKyG,KAAK60C,SACVt7C,KAAKyG,KAAK80C,iBAAmBv7C,KAAK+F,IAAIqd,aAEtCpjB,KAAKwF,GAAG0E,UAAW,EACnBlK,KAAKwF,GAAG+nB,OAAQ,EAChBvtB,KAAKwF,GAAGgoB,OAASjoB,EAAEkB,KAAK60C,SAChBt7C,KAAKgK,UAA0C,KAA9BhK,KAAKyG,KAAK+0C,kBACnCx7C,KAAKwF,GAAG0E,UAAW,EACnBlK,KAAKwF,GAAG+nB,OAAQ,EAChBvtB,KAAKwF,GAAGgoB,OAASxtB,KAAKyG,KAAK+0C,iBAG3Bx7C,KAAKyG,MAAQzG,KAAKyG,KAAKI,SAAW,IAClC7G,KAAKoc,MAA6B,IAArBpc,KAAKyG,KAAKI,SACvB7G,KAAKqc,MAA8B,IAAtBrc,KAAKyG,KAAKK,UACvB9G,KAAKsc,UAAiC,IAArBtc,KAAKyG,KAAKI,SAC3B7G,KAAKuc,UAAkC,IAAtBvc,KAAKyG,KAAKK,UAC/B,IAIJ3E,OAAAC,eAAA,sB,gDAAgBO,KACZ3C,KAAKwF,GAAG2N,IAAMnT,KAAKwF,GAAG0N,UAAYlT,KAAK+F,IAAI4xC,aAAe33C,KAAK2G,GAAGozC,IAAM,GACxE/5C,KAAKwF,GAAG0N,QAAU,GAAGlT,KAAK+F,IAAIyxC,gBAAkB,IAAM,KAAKx3C,KAAK+F,IAAI0xC,iBAAmB,IAAM,KAAKz3C,KAAK+F,IAAI4xC,eAC3G33C,KAAK+F,IAAIupB,cAAgB9kB,EAAAA,EAAE01B,uBACvBlgC,KAAK+F,IAAIc,SACT7G,KAAK+F,IAAIe,UACT9G,KAAKyG,KAAKgK,cACb,IA4BLtO,OAAAC,eAAA,kB,gDAAYO,KACR3C,KAAK+F,IAAIupB,cAAgB9kB,EAAAA,EAAE01B,uBACvBlgC,KAAK+F,IAAIc,SACT7G,KAAK+F,IAAIe,UACT9G,KAAKyG,KAAKgK,cACb,IAILtO,OAAAC,eAAA,qB,gDAAeO,KACX,IAAK,IAAIsE,EAAI,EAAGA,EAAIjH,KAAKsX,MAAMnQ,OAAQF,IACnCjH,KAAKsX,MAAMrQ,GAAGxB,MAAQ5E,EAAAA,GAEd2J,EAAAA,EAAEkmB,cAAc1wB,KAAKyG,KAAKqW,SAAUvX,EAAEQ,IAAIupB,cAAetvB,KAAKsX,MAAMrQ,GAAGjI,KAE1EuhB,QAAQ,MAAO,GACxB,IAIJpe,OAAAC,eAAA,mC,gDAA6BO,KACzB,IAAK3C,KAAKyG,KAAKkB,MACX,OAEJ,MAAMw6B,EAAM58B,EAAEkB,KAAK2a,SAAS3T,QAAOC,GAAKA,EAAE1O,KAAOuG,EAAEQ,IAAIwb,UAAS,GAC1DrS,EAAI3J,EAAEkB,KAAK4c,UAAU5V,QAAOC,GAAKA,EAAE1O,KAAOuG,EAAEQ,IAAIqd,cAAa,GAE/D+e,GAAOjzB,IACPlP,KAAK+F,IAAIgQ,iBAAmBosB,EAAIpsB,kBAAoC,YAAhB7G,EAAEusC,UACtDz7C,KAAK+F,IAAIiQ,mBAAqBmsB,EAAInsB,oBAAsC,cAAhB9G,EAAEusC,UAC1Dz7C,KAAK+F,IAAI+P,kBAAoBqsB,EAAIrsB,mBAAqC,aAAhB5G,EAAEusC,UAC5D,IAIJt5C,OAAAC,eAAA,c,gDAAQO,KACJ,MAAMg/B,EAAWp8B,EAAEkB,KAAK4c,UAAU5V,QAAOyB,GAAKA,EAAElQ,KAAOuG,EAAEQ,IAAIqd,cAAa,GAEpEs4B,EAASn2C,EAAE+R,MAAM7J,QAAOyB,GAAKA,EAAElQ,KAAOgB,KAAK+F,IAAIoI,WAAU,GAc/D,GAZIwzB,IACA3hC,KAAKwF,GAAGiR,cAAgBkrB,EAAS30B,KAAK7B,cACtCnL,KAAKwF,GAAG6N,eAAiBsuB,EAAS1iC,MAElCe,KAAKwF,GAAG0kB,kBAAoByX,EAASga,SACrC37C,KAAKwF,GAAGsmB,mBAAqB6V,EAASia,SACtC57C,KAAKwF,GAAGqlB,sBAAwB8W,EAASka,gBAEzC77C,KAAK+F,IAAI8I,SACT7O,KAAKwF,GAAG0kB,mBAAoB,GAG3BlqB,KAAK+F,IAAI8I,OAaP,CACH,MAAMsS,EAAK5b,EAAEkB,KAAK2a,SAAS3T,QAAOyB,GAAKA,EAAElQ,KAAOuG,EAAEQ,IAAIwb,UAAS,GACzDF,EAAK9b,EAAEkB,KAAK6a,SAAS7T,QAAOyB,GAAKA,EAAElQ,KAAOuG,EAAEQ,IAAIwN,UAAS,GAC3D4N,IACAnhB,KAAKwF,GAAGimB,UAAYtK,EAAGnU,KAAK7B,cAC5BnL,KAAKwF,GAAG8N,WAAa6N,EAAGliB,MACxBe,KAAKwF,GAAGyY,WAAakD,EAAGK,WAExBH,IACArhB,KAAKwF,GAAGkc,UAAYL,EAAGrU,KAAK7B,cAC5BnL,KAAKwF,GAAGgO,WAAa6N,EAAGpiB,MACxBe,KAAKwF,GAAGmc,WAAaN,EAAGG,UAEhC,KA1BsB,CAClB,MAAM2gB,EAAM58B,EAAEkB,KAAKob,KAAKpU,QAAOyB,GAAKA,EAAElQ,KAAOuG,EAAEQ,IAAI6b,cAAa,GAC5DugB,IACAniC,KAAKwF,GAAGimB,UAAY0W,EAAIngB,UAAU7W,cAClCnL,KAAKwF,GAAGkc,UAAYygB,EAAIC,UAAUj3B,cAElCnL,KAAKwF,GAAGsd,gBAAkBqf,EAAIljC,MAC9Be,KAAKwF,GAAG8N,WAAa6uB,EAAI2Z,WACzB97C,KAAKwF,GAAGgO,WAAa2uB,EAAI4Z,WAEzB/7C,KAAKwF,GAAGyY,WAAakkB,EAAIrgB,WACzB9hB,KAAKwF,GAAGmc,WAAawgB,EAAIpgB,WAEjC,CAeI25B,IACA17C,KAAKwF,GAAGsO,WAAa4nC,EAAOz8C,MAChC,IAGJkD,OAAAC,eAAA,sB,gDAAgBO,KACD,IAGfR,OAAAC,eAAA,sB,gDAAgBO,KACZ3B,YAAW,WAAa,GAAG,KAAK,IArxBhChB,KAAKwF,GAAK,CACN0f,cAAe,GACfhS,QAAS,GACTC,IAAK,GACLmkC,KAAM,EACN7xC,MAAO,EACP2f,aAAc,EACdC,aAAc,EACdjQ,SAAU,GACV7N,QAAS,EACTmmB,YAAa,GAEbjW,gBAAgB,EAChBvN,UAAU,EACV4F,WAAW,EACXwV,cAAc,EAEd7O,cAAe,GACfyT,mBAAmB,EACnB4B,mBAAoB,GACpBjB,sBAAuB,GAEvBY,UAAW,GACX/J,UAAW,GACX5N,WAAY,GACZ0J,cAAe,GAEfsF,gBAAiB,GACjBzP,eAAgB,GAChBC,WAAY,GACZE,WAAY,GACZwoC,YAAa,GACbtoC,eAAgB,GAChB2O,WAAY,GAEZpE,WAAY,GACZ0D,WAAY,GACZO,oBAAqB,GAErBhE,OAAO,EAEP7P,UAAU,EACVC,gBAAgB,EAChB4sC,kBAAkB,EAElBlyB,iBAAiB,EACjBpB,kBAAkB,EAClB1f,oBAAoB,EACpBwC,yBAAyB,EAEzB8iB,OAAQ,GACRD,OAAO,EAEPxlB,gBAAgB,EAChBC,mBAAoB,GACpBqQ,iBAAiB,EACjBU,iBAAkB,GAClBC,gBAAiB,GACjBqU,uBAAuB,EACvBlI,eAAe,EACfpU,gBAAgB,GAGpB/Q,KAAKsX,MAAQ,CACT,CAACtY,GAAI,EAAGC,MAAO,WAAYwG,MAAO,MAClC,CAACzG,GAAI,EAAGC,MAAO,qBAAsBwG,MAAO,MAC5C,CAACzG,GAAI,EAAGC,MAAO,kBAAmBwG,MAAO,MACzC,CAACzG,GAAI,EAAGC,MAAO,0BAA2BwG,MAAO,OAGrDzF,KAAK+F,IAAM,CAAC,GACZsC,EAAAA,EAAAA,IAAerI,KACnB,EAjGYX,EAAA,CAAXyD,EAAAA,IAAU,yBACCzD,EAAA,CAAXyD,EAAAA,IAAU,0BACCzD,EAAA,CAAXyD,EAAAA,IAAU,2BACCzD,EAAA,CAAXyD,EAAAA,IAAU,yBACCzD,EAAA,CAAXyD,EAAAA,IAAU,+BACCzD,EAAA,CAAXyD,EAAAA,IAAU,4BACCzD,EAAA,CAAXyD,EAAAA,IAAU,+BACCzD,EAAA,CAAXyD,EAAAA,IAAU,mCACCzD,EAAA,CAAXyD,EAAAA,IAAU,+BACCzD,EAAA,CAAXyD,EAAAA,IAAU,4BACCzD,EAAA,CAAXyD,EAAAA,IAAU,uCACCzD,EAAA,CAAXyD,EAAAA,IAAU,yCACCzD,EAAA,CAAXyD,EAAAA,IAAU,wCACCzD,EAAA,CAAXyD,EAAAA,IAAU,mCACCzD,EAAA,CAAXyD,EAAAA,IAAU,4BACCzD,EAAA,CAAXyD,EAAAA,IAAU,4BACCzD,EAAA,CAAXyD,EAAAA,IAAU,4BACCzD,EAAA,CAAXyD,EAAAA,IAAU,gCACCzD,EAAA,CAAXyD,EAAAA,IAAU,gCACCzD,EAAA,CAAXyD,EAAAA,IAAU,mCACCzD,EAAA,CAAXyD,EAAAA,IAAU,mCACCzD,EAAA,CAAXyD,EAAAA,IAAU,+CACCzD,EAAA,CAAXyD,EAAAA,IAAU,+BA8EXzD,EAAA,CADC0D,EAAAA,IAAM,2BAyWP1D,EAAA,CADC0D,EAAAA,IAAM,uCAyBP1D,EAAA,CADC0D,EAAAA,IAAM,sCAqCP1D,EAAA,CADC0D,EAAAA,IAAM,4BA0KP1D,EAAA,CADC0D,EAAAA,IAAM,oCAoCP1D,EAAA,CADC0D,EAAAA,IAAM,gCAUP1D,EAAA,CADC0D,EAAAA,IAAM,mCAYP1D,EAAA,CADC0D,EAAAA,IAAM,iDAgBP1D,EAAA,CADC0D,EAAAA,IAAM,4BA4DX,MAAMwC,EAAI,IAAIsxC,EACd,K,qWC10BO,MAAMoF,EAAsBjc,IAC9BA,GAAe,OAARA,GAAuC,OAAvBA,EAAIkc,MAAM,SACzBhD,EAAYiD,GACfz5C,MAANy5C,EAAkB,QAAU,IAAKA,EAAG32B,QAAQ,GAAGjF,QAAQ,oBAAqB,SACnE67B,EAAwBD,GAC3Bz5C,MAANy5C,EACM,QACA,KAAMA,EAAK,EAAI,EAAIA,GAAI32B,QAAQ,GAAGjF,QAAQ,oBAAqB,SAElE,IAAK87B,EAKAC,GALZ,SAAYD,GACRA,EAAA,0DACAA,EAAA,sDACH,CAHD,CAAYA,IAAAA,EAAkB,KAK9B,SAAYC,GACRA,EAAAA,EAAA,mBACAA,EAAAA,EAAA,eACAA,EAAAA,EAAA,mBACAA,EAAAA,EAAA,gBACH,CALD,CAAYA,IAAAA,EAAU,KActBC,OAAOC,UAAUnwC,SAAW,SAAwBinB,EAAWmpB,GAAmB,GAC9E,OAAOz8C,KAAK08C,OAAO,EAAGppB,EAAI,IAAMmpB,GAAWz8C,KAAKmH,OAASmsB,EAAI,WAAa,GAC9E,EAEO,MAgBMqpB,EAAeA,IACjBnqC,SAAS6C,qBAAqBkL,QAAQ,MAAO,IAG3Cq8B,EAASA,CAACj6C,EAAek6C,KAClC,IAAIC,EAAavhB,KAAKwhB,IAAI,GAAIF,GAAa,GAC3C,OAAOthB,KAAK4K,MAAMxjC,EAAQm6C,GAAcA,CAAU,EAQtDl7C,OAAOo7C,SAAW,CAAC74C,EAAc84C,IAAqBD,EAAS74C,EAAM84C,GAE9D,MAAMD,EAAWA,CAAC74C,EAAc84C,KACnC,IAII,GAHsBv6C,MAAlBw6C,gBACAC,aAAaD,qBAEG,IAAT/4C,EACP,YAEkB,IAAX84C,EACPr7C,OAAOjB,KAAKwD,EAAM,WAElBR,SAASF,SAAWU,CAE5B,CAAE,MAAOa,GACOtC,MAARyB,IACAR,SAASF,SAAWU,EAE5B,GAGSi5C,EAAQ19B,IACjBzV,UAAUyV,EAAI,EAGL29B,EAAWA,CAACC,EAAWC,KAChC,IAAIC,EACJ,OAAO,SAAU19C,GACT09C,GAAOL,aAAaK,GACxBA,EAAQx8C,WAAWs8C,EAAMC,EAAOz9C,EACpC,CAAC,EAGQ29C,EAAqBA,CAACzwC,EAAcilB,EAAMrwB,OAAO6B,SAASvE,QACnE8N,EAAOA,EAAKuT,QAAQ,UAAW,QAC/B,IACIm9B,EADQ,IAAIC,OAAO,OAAO3wC,sBACV4wC,KAAK3rB,GACzB,OAAKyrB,EACAA,EAAQ,GACNG,mBAAmBH,EAAQ,GAAGn9B,QAAQ,MAAO,MAD5B,GADH,IAEoC,EAGhDu9B,EAAYA,KACrB,MAAMC,EAA2B,GAAG5/B,MAAMsE,KACtC9e,SAASq6C,uBAAuB,uBAE9BC,EAA2B,GAAG9/B,MAAMsE,KACtC9e,SAASq6C,uBAAuB,uBAEpCD,EAAU9uC,KAAIvB,GAAMA,EAAEwwC,UAAY,aAClCD,EAAUhvC,KAAIvB,GAAMA,EAAEwwC,UAAY,QAAQ,EAgDjCC,EAA2BA,KACpC,MAAMC,EAASz6C,SAASq6C,uBACpB,iBAEJ,IAAK,IAAI/2C,EAAI,EAAGA,EAAIm3C,EAAOj3C,OAAQF,IAC/Bm3C,EAAOn3C,GAAG+tC,QACd,EAGSqJ,EAAQ94C,GACVA,EAAE4F,cAAcoV,QAAQ,OAAQ,SAASA,QAAQ,OAAQ,SAASA,QAAQ,KAAM,M,uBC9KrF,IACM+9B,EAEAC,EAFAD,OAAmB57C,EAEnB67C,EAAY,EAAQ,KAAR,CAAuFC,EAAOx/C,GAAI,CAAC,UAAW,IAG5Hw/C,EAAOC,IAAI35C,MACX05C,EAAOC,IAAI35C,KAAKnC,OAChB67C,EAAOC,IAAI35C,KAAKnC,QAAU27C,EAE1BE,EAAOC,IAAIC,aAEXF,EAAOC,IAAI/iC,SAEb8iC,EAAOC,IAAIE,SAAQ,SAAS75C,GAC1BA,EAAKnC,MAAQ27C,EACbC,GACF,G,GClBJK,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBp8C,IAAjBq8C,EAA4B,CAC/B,QAA2Br8C,IAAvBq8C,EAAap6C,MAAqB,MAAMo6C,EAAap6C,MACzD,OAAOo6C,EAAaC,OACrB,CAEA,IAAIR,EAASI,EAAyBE,GAAY,CACjD9/C,GAAI8/C,EAEJE,QAAS,CAAC,GAIX,IACC,IAAIC,EAAc,CAAEjgD,GAAI8/C,EAAUN,OAAQA,EAAQU,QAASC,EAAoBL,GAAWM,QAASP,GACnGA,EAAoB53C,EAAEhH,SAAQ,SAASo/C,GAAWA,EAAQJ,EAAc,IACxET,EAASS,EAAYT,OACrBS,EAAYC,QAAQz8B,KAAK+7B,EAAOQ,QAASR,EAAQA,EAAOQ,QAASC,EAAYG,QAC9E,CAAE,MAAMj+C,GAEP,MADAq9C,EAAO75C,MAAQxD,EACTA,CACP,CAGA,OAAOq9C,EAAOQ,OACf,CAGAH,EAAoB3vC,EAAIiwC,EAGxBN,EAAoB5e,EAAI2e,EAGxBC,EAAoB53C,EAAI,G5CxCpBxI,EAAW,GACfogD,EAAoBS,EAAI,SAASh6C,EAAQi6C,EAAUC,EAAIC,GACtD,IAAGF,EAAH,CAMA,IAAIG,EAAeC,IACnB,IAAS14C,EAAI,EAAGA,EAAIxI,EAAS0I,OAAQF,IAAK,CACrCs4C,EAAW9gD,EAASwI,GAAG,GACvBu4C,EAAK/gD,EAASwI,GAAG,GACjBw4C,EAAWhhD,EAASwI,GAAG,GAE3B,IAJA,IAGI24C,GAAY,EACPC,EAAI,EAAGA,EAAIN,EAASp4C,OAAQ04C,MACpB,EAAXJ,GAAsBC,GAAgBD,IAAat9C,OAAO29C,KAAKjB,EAAoBS,GAAGS,OAAM,SAASv9C,GAAO,OAAOq8C,EAAoBS,EAAE98C,GAAK+8C,EAASM,GAAK,IAChKN,EAASS,OAAOH,IAAK,IAErBD,GAAY,EACTH,EAAWC,IAAcA,EAAeD,IAG7C,GAAGG,EAAW,CACbnhD,EAASuhD,OAAO/4C,IAAK,GACrB,IAAIuD,EAAIg1C,SACE98C,IAAN8H,IAAiBlF,EAASkF,EAC/B,CACD,CACA,OAAOlF,CArBP,CAJCm6C,EAAWA,GAAY,EACvB,IAAI,IAAIx4C,EAAIxI,EAAS0I,OAAQF,EAAI,GAAKxI,EAASwI,EAAI,GAAG,GAAKw4C,EAAUx4C,IAAKxI,EAASwI,GAAKxI,EAASwI,EAAI,GACrGxI,EAASwI,GAAK,CAACs4C,EAAUC,EAAIC,EAwB/B,E6C5BAZ,EAAoBvrB,EAAI,SAASkrB,GAChC,IAAIyB,EAASzB,GAAUA,EAAO0B,WAC7B,WAAa,OAAO1B,EAAgB,OAAG,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADAK,EAAoBl6B,EAAEs7B,EAAQ,CAAEE,EAAGF,IAC5BA,CACR,ECNApB,EAAoBl6B,EAAI,SAASq6B,EAASoB,GACzC,IAAI,IAAI59C,KAAO49C,EACXvB,EAAoBz6C,EAAEg8C,EAAY59C,KAASq8C,EAAoBz6C,EAAE46C,EAASx8C,IAC5EL,OAAOC,eAAe48C,EAASx8C,EAAK,CAAE69C,YAAY,EAAMC,IAAKF,EAAW59C,IAG3E,ECNAq8C,EAAoB0B,GAAK,SAASC,GAEjC,OAAYA,EAAU,IAAM3B,EAAoB1qC,IAAM,gBACvD,ECHA0qC,EAAoB4B,SAAW,SAASD,GAGxC,ECJA3B,EAAoB6B,KAAO,WAAa,MAAO,WAAa7B,EAAoB1qC,IAAM,kBAAoB,ECA1G0qC,EAAoB1qC,EAAI,WAAa,MAAO,sBAAwB,ECApE0qC,EAAoBxtB,EAAI,WACvB,GAA0B,iBAAfsvB,WAAyB,OAAOA,WAC3C,IACC,OAAO3gD,MAAQ,IAAI4gD,SAAS,cAAb,EAChB,CAAE,MAAOz/C,GACR,GAAsB,iBAAXS,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBi9C,EAAoBz6C,EAAI,SAASy8C,EAAKC,GAAQ,OAAO3+C,OAAOq6C,UAAUuE,eAAet+B,KAAKo+B,EAAKC,EAAO,EnDAlGpiD,EAAa,CAAC,EACdC,EAAoB,iBAExBkgD,EAAoBvtB,EAAI,SAASW,EAAK0T,EAAMnjC,EAAKg+C,GAChD,GAAG9hD,EAAWuzB,GAAQvzB,EAAWuzB,GAAK5xB,KAAKslC,OAA3C,CACA,IAAIqb,EAAQC,EACZ,QAAWv+C,IAARF,EAEF,IADA,IAAI0+C,EAAUv9C,SAAS8b,qBAAqB,UACpCxY,EAAI,EAAGA,EAAIi6C,EAAQ/5C,OAAQF,IAAK,CACvC,IAAI1B,EAAI27C,EAAQj6C,GAChB,GAAG1B,EAAE47C,aAAa,QAAUlvB,GAAO1sB,EAAE47C,aAAa,iBAAmBxiD,EAAoB6D,EAAK,CAAEw+C,EAASz7C,EAAG,KAAO,CACpH,CAEGy7C,IACHC,GAAa,GACbD,EAASr9C,SAAS2W,cAAc,WAEzB8mC,QAAU,QACjBJ,EAAOK,QAAU,IACbxC,EAAoByC,IACvBN,EAAOO,aAAa,QAAS1C,EAAoByC,IAElDN,EAAOO,aAAa,eAAgB5iD,EAAoB6D,GAExDw+C,EAAOt0C,IAAMulB,GAEdvzB,EAAWuzB,GAAO,CAAC0T,GACnB,IAAI6b,EAAmB,SAASC,EAAM3hD,GAErCkhD,EAAOU,QAAUV,EAAOW,OAAS,KACjCxE,aAAakE,GACb,IAAIO,EAAUljD,EAAWuzB,GAIzB,UAHOvzB,EAAWuzB,GAClB+uB,EAAO50B,YAAc40B,EAAO50B,WAAWva,YAAYmvC,GACnDY,GAAWA,EAAQ3hD,SAAQ,SAASu/C,GAAM,OAAOA,EAAG1/C,EAAQ,IACzD2hD,EAAM,OAAOA,EAAK3hD,EACtB,EACIuhD,EAAUrgD,WAAWwgD,EAAiBp5C,KAAK,UAAM1F,EAAW,CAAEX,KAAM,UAAW3C,OAAQ4hD,IAAW,MACtGA,EAAOU,QAAUF,EAAiBp5C,KAAK,KAAM44C,EAAOU,SACpDV,EAAOW,OAASH,EAAiBp5C,KAAK,KAAM44C,EAAOW,QACnDV,GAAct9C,SAASk+C,KAAKC,YAAYd,EApCkB,CAqC3D,EoDxCAnC,EAAoBr0C,EAAI,SAASw0C,GACX,oBAAX+C,QAA0BA,OAAOC,aAC1C7/C,OAAOC,eAAe48C,EAAS+C,OAAOC,YAAa,CAAEr/C,MAAO,WAE7DR,OAAOC,eAAe48C,EAAS,aAAc,CAAEr8C,OAAO,GACvD,ECNAk8C,EAAoBgB,EAAI,I,WCAxB,IAIIoC,EAYAC,EACAC,EAjBAC,EAAoB,CAAC,EACrBC,EAAmBxD,EAAoB5e,EAIvCqiB,EAAiB,GAGjBC,EAA2B,GAC3BC,EAAgB,OAGhBC,EAAmB,EACnBC,EAA0B,GAmL9B,SAASC,EAAUC,GAClBJ,EAAgBI,EAGhB,IAFA,IAAIlF,EAAU,GAELz2C,EAAI,EAAGA,EAAIs7C,EAAyBp7C,OAAQF,IACpDy2C,EAAQz2C,GAAKs7C,EAAyBt7C,GAAGwb,KAAK,KAAMmgC,GAErD,OAAOC,QAAQC,IAAIpF,GAASn5C,MAAK,WAAa,GAC/C,CAEA,SAASw+C,IACmB,KAArBN,GACLE,EAAU,SAASp+C,MAAK,WACvB,GAAyB,IAArBk+C,EAAwB,CAC3B,IAAIO,EAAON,EACXA,EAA0B,GAC1B,IAAK,IAAIz7C,EAAI,EAAGA,EAAI+7C,EAAK77C,OAAQF,IAChC+7C,EAAK/7C,IAEP,CACD,GAEF,CAyBA,SAASg8C,EAASC,GACjB,GAAsB,SAAlBV,EACH,MAAM,IAAIW,MAAM,0CAEjB,OAAOR,EAAU,SACfp+C,KAAKs6C,EAAoBuE,MACzB7+C,MAAK,SAAU8+C,GACf,OAAKA,EAQEV,EAAU,WAAWp+C,MAAK,WAChC,IAAI++C,EAAiB,GAGrB,OAFApB,EAA6B,GAEtBW,QAAQC,IACd3gD,OAAO29C,KAAKjB,EAAoB0E,MAAMC,QAAO,SAC5CC,EACAjhD,GAUA,OARAq8C,EAAoB0E,KAAK/gD,GACxB6gD,EAAOpjB,EACPojB,EAAO74C,EACP64C,EAAOn0C,EACPu0C,EACAvB,EACAoB,GAEMG,CACR,GAAG,KACFl/C,MAAK,WACN,OA5C4Bi7C,EA4CG,WAC9B,OAAI0D,EACIQ,EAAcR,GAEfP,EAAU,SAASp+C,MAAK,WAC9B,OAAO++C,CACR,GACD,EAlDqB,IAArBb,EAA+BjD,IAC5B,IAAIqD,SAAQ,SAAUc,GAC5BjB,EAAwBriD,MAAK,WAC5BsjD,EAAQnE,IACT,GACD,IAND,IAAiCA,CAoD7B,GACD,IApCQmD,EAAUiB,IAA4B,QAAU,QAAQr/C,MAC9D,WACC,OAAO,IACR,GAkCH,GACF,CAEA,SAASs/C,EAASC,GACjB,MAAsB,UAAlBtB,EACIK,QAAQc,UAAUp/C,MAAK,WAC7B,MAAM,IAAI4+C,MACT,mDACCX,EACA,IAEH,IAEMkB,EAAcI,EACtB,CAEA,SAASJ,EAAcI,GACtBA,EAAUA,GAAW,CAAC,EAEtBF,IAEA,IAAIlG,EAAUwE,EAA2BjzC,KAAI,SAAUowC,GACtD,OAAOA,EAAQyE,EAChB,IACA5B,OAA6Bx/C,EAE7B,IAAIqhD,EAASrG,EACXzuC,KAAI,SAAUzE,GACd,OAAOA,EAAE7F,KACV,IACC8I,OAAOu2C,SAET,GAAID,EAAO58C,OAAS,EACnB,OAAOw7C,EAAU,SAASp+C,MAAK,WAC9B,MAAMw/C,EAAO,EACd,IAID,IAAIE,EAAiBtB,EAAU,WAE/BjF,EAAQz9C,SAAQ,SAAUqF,GACrBA,EAAOq5C,SAASr5C,EAAOq5C,SAC5B,IAGA,IAEIh6C,EAFAu/C,EAAevB,EAAU,SAGzBwB,EAAc,SAAUn/C,GACtBL,IAAOA,EAAQK,EACrB,EAEIo/C,EAAkB,GAYtB,OAXA1G,EAAQz9C,SAAQ,SAAUqF,GACzB,GAAIA,EAAO++C,MAAO,CACjB,IAAIj9B,EAAU9hB,EAAO++C,MAAMF,GAC3B,GAAI/8B,EACH,IAAK,IAAIngB,EAAI,EAAGA,EAAImgB,EAAQjgB,OAAQF,IACnCm9C,EAAgB/jD,KAAK+mB,EAAQngB,GAGhC,CACD,IAEO47C,QAAQC,IAAI,CAACmB,EAAgBC,IAAe3/C,MAAK,WAEvD,OAAII,EACIg+C,EAAU,QAAQp+C,MAAK,WAC7B,MAAMI,CACP,IAGGw9C,EACIuB,EAAcI,GAASv/C,MAAK,SAAUy+C,GAI5C,OAHAoB,EAAgBnkD,SAAQ,SAAU6+C,GAC7BkE,EAAKsB,QAAQxF,GAAY,GAAGkE,EAAK3iD,KAAKy+C,EAC3C,IACOkE,CACR,IAGML,EAAU,QAAQp+C,MAAK,WAC7B,OAAO6/C,CACR,GACD,GACD,CAEA,SAASR,IACR,GAAIzB,EAWH,OAVKD,IAA4BA,EAA6B,IAC9D//C,OAAO29C,KAAKjB,EAAoB0F,MAAMtkD,SAAQ,SAAUuC,GACvD2/C,EAAyBliD,SAAQ,SAAU6+C,GAC1CD,EAAoB0F,KAAK/hD,GACxBs8C,EACAoD,EAEF,GACD,IACAC,OAA2Bz/C,GACpB,CAET,CA/WAm8C,EAAoB2F,KAAOpC,EAE3BvD,EAAoB53C,EAAE5G,MAAK,SAAUyjD,GACpC,IA+D8BhF,EAAU2F,EACpCC,EACAjG,EAjEAD,EAASsF,EAAQtF,OACjBY,EAWL,SAAuBA,EAASN,GAC/B,IAAI2F,EAAKpC,EAAiBvD,GAC1B,IAAK2F,EAAI,OAAOrF,EAChB,IAAII,EAAK,SAAUmF,GAClB,GAAIF,EAAGhG,IAAImG,OAAQ,CAClB,GAAIvC,EAAiBsC,GAAU,CAC9B,IAAIE,EAAUxC,EAAiBsC,GAASE,SACL,IAA/BA,EAAQP,QAAQxF,IACnB+F,EAAQxkD,KAAKy+C,EAEf,MACCwD,EAAiB,CAACxD,GAClBmD,EAAqB0C,GAEgB,IAAlCF,EAAGziD,SAASsiD,QAAQK,IACvBF,EAAGziD,SAAS3B,KAAKskD,EAEnB,MACCjgD,QAAQogD,KACP,4BACCH,EACA,0BACA7F,GAEFwD,EAAiB,GAElB,OAAOlD,EAAQuF,EAChB,EACII,EAA2B,SAAU/3C,GACxC,MAAO,CACNg4C,cAAc,EACd3E,YAAY,EACZC,IAAK,WACJ,OAAOlB,EAAQpyC,EAChB,EACAi4C,IAAK,SAAUtiD,GACdy8C,EAAQpyC,GAAQrK,CACjB,EAEF,EACA,IAAK,IAAIqK,KAAQoyC,EACZj9C,OAAOq6C,UAAUuE,eAAet+B,KAAK28B,EAASpyC,IAAkB,MAATA,GAC1D7K,OAAOC,eAAeo9C,EAAIxyC,EAAM+3C,EAAyB/3C,IAM3D,OAHAwyC,EAAGr+C,EAAI,SAAUq/C,EAAS0E,GACzB,OAwIF,SAA8BC,GAC7B,OAAQ3C,GACP,IAAK,QACJG,EAAU,WAEX,IAAK,UAGJ,OAFAF,IACA0C,EAAQ5gD,KAAKw+C,EAASA,GACfoC,EACR,QACC,OAAOA,EAEV,CApJSC,CAAqBhG,EAAQj+C,EAAEq/C,EAAS0E,GAChD,EACO1F,CACR,CA5De6F,CAAcvB,EAAQ1E,QAAS0E,EAAQ9kD,IACrDw/C,EAAOC,KA6DuBK,EA7DKgF,EAAQ9kD,GA6DHylD,EA7DOjG,EA+D3CC,EAAM,CAET6G,sBAAuB,CAAC,EACxBC,uBAAwB,CAAC,EACzBC,sBAAuB,CAAC,EACxBC,eAAe,EACfC,eAAe,EACfC,kBAAkB,EAClBC,iBAAkB,GAClBlB,MAVGA,EAAQzC,IAAuBnD,EAWlC+G,aAAc,WACbvD,EAAiBmC,EAAGI,QAAQ1mC,QAC5B8jC,EAAqByC,OAAQhiD,EAAYo8C,EACzCD,EAAoBC,EACrB,EAGA8F,QAAQ,EACRlpC,OAAQ,SAAUoqC,EAAK5lD,EAAU6lD,GAChC,QAAYrjD,IAARojD,EAAmBrH,EAAIgH,eAAgB,OACtC,GAAmB,mBAARK,EAAoBrH,EAAIgH,cAAgBK,OACnD,GAAmB,iBAARA,GAA4B,OAARA,EACnC,IAAK,IAAI7+C,EAAI,EAAGA,EAAI6+C,EAAI3+C,OAAQF,IAC/Bw3C,EAAI6G,sBAAsBQ,EAAI7+C,IAAM/G,GAAY,WAAa,EAC7Du+C,EAAI8G,uBAAuBO,EAAI7+C,IAAM8+C,OAGtCtH,EAAI6G,sBAAsBQ,GAAO5lD,GAAY,WAAa,EAC1Du+C,EAAI8G,uBAAuBO,GAAOC,CAEpC,EACAC,QAAS,SAAUF,GAClB,QAAYpjD,IAARojD,EAAmBrH,EAAIiH,eAAgB,OACtC,GAAmB,iBAARI,GAA4B,OAARA,EACnC,IAAK,IAAI7+C,EAAI,EAAGA,EAAI6+C,EAAI3+C,OAAQF,IAC/Bw3C,EAAI+G,sBAAsBM,EAAI7+C,KAAM,OACjCw3C,EAAI+G,sBAAsBM,IAAO,CACvC,EACAnH,QAAS,SAAUz+C,GAClBu+C,EAAImH,iBAAiBvlD,KAAKH,EAC3B,EACA+lD,kBAAmB,SAAU/lD,GAC5Bu+C,EAAImH,iBAAiBvlD,KAAKH,EAC3B,EACAgmD,qBAAsB,SAAUhmD,GAC/B,IAAIimD,EAAM1H,EAAImH,iBAAiBtB,QAAQpkD,GACnCimD,GAAO,GAAG1H,EAAImH,iBAAiB5F,OAAOmG,EAAK,EAChD,EACAzH,WAAY,WAEX,OADA1+C,KAAK2lD,kBAAmB,EAChBnD,GACP,IAAK,OACJN,EAA6B,GAC7B//C,OAAO29C,KAAKjB,EAAoB0F,MAAMtkD,SAAQ,SAAUuC,GACvDq8C,EAAoB0F,KAAK/hD,GACxBs8C,EACAoD,EAEF,IACAS,EAAU,SACV,MACD,IAAK,QACJxgD,OAAO29C,KAAKjB,EAAoB0F,MAAMtkD,SAAQ,SAAUuC,GACvDq8C,EAAoB0F,KAAK/hD,GACxBs8C,EACAoD,EAEF,IACA,MACD,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,SACHC,EAA2BA,GAA4B,IAAI9hD,KAC3Dy+C,GAOJ,EAGAsH,MAAOnD,EACPoB,MAAOR,EACPp/C,OAAQ,SAAU6sB,GACjB,IAAKA,EAAG,OAAOkxB,EACfD,EAAyBliD,KAAKixB,EAC/B,EACA+0B,iBAAkB,SAAU/0B,GAC3BixB,EAAyBliD,KAAKixB,EAC/B,EACAg1B,oBAAqB,SAAUh1B,GAC9B,IAAI60B,EAAM5D,EAAyB+B,QAAQhzB,GACvC60B,GAAO,GAAG5D,EAAyBvC,OAAOmG,EAAK,EACpD,EAGArhD,KAAMs9C,EAAkBtD,IAEzBmD,OAAqBv/C,EACd+7C,GApKPD,EAAOqG,QAAUvC,EACjB9D,EAAOx8C,SAAW,GAClBsgD,EAAiB,GACjBwB,EAAQ1E,QAAUA,CACnB,IAEAP,EAAoB0E,KAAO,CAAC,EAC5B1E,EAAoB0F,KAAO,CAAC,C,eChC5B,IAAIgC,EACA1H,EAAoBxtB,EAAEm1B,gBAAeD,EAAY1H,EAAoBxtB,EAAE5tB,SAAW,IACtF,IAAIE,EAAWk7C,EAAoBxtB,EAAE1tB,SACrC,IAAK4iD,GAAa5iD,IACbA,EAAS8iD,eAAkE,WAAjD9iD,EAAS8iD,cAAcC,QAAQC,gBAC5DJ,EAAY5iD,EAAS8iD,cAAc/5C,MAC/B65C,GAAW,CACf,IAAIrF,EAAUv9C,EAAS8b,qBAAqB,UAC5C,GAAGyhC,EAAQ/5C,OAEV,IADA,IAAIF,EAAIi6C,EAAQ/5C,OAAS,EAClBF,GAAK,KAAOs/C,IAAc,aAAaK,KAAKL,KAAaA,EAAYrF,EAAQj6C,KAAKyF,GAE3F,CAID,IAAK65C,EAAW,MAAM,IAAIpD,MAAM,yDAChCoD,EAAYA,EAAUhmC,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KACpFs+B,EAAoBt3B,EAAIg/B,C,eClBxB,GAAwB,oBAAb5iD,SAAX,CACA,IA4DIkjD,EAAU,GACVC,EAAU,GACVC,EAAe,SAASjD,GAC3B,MAAO,CAAEnF,QAAS,WACjB,IAAI,IAAI13C,EAAI,EAAGA,EAAI4/C,EAAQ1/C,OAAQF,IAAK,CACvC,IAAI+/C,EAASH,EAAQ5/C,GAClB+/C,EAAO56B,YAAY46B,EAAO56B,WAAWva,YAAYm1C,EACrD,CACAH,EAAQ1/C,OAAS,CAClB,EAAGk9C,MAAO,WACT,IAAI,IAAIp9C,EAAI,EAAGA,EAAI6/C,EAAQ3/C,OAAQF,IAAK6/C,EAAQ7/C,GAAGggD,IAAM,aACzDH,EAAQ3/C,OAAS,CAClB,EACD,EACA03C,EAAoB0E,KAAK2D,QAAU,SAAS3H,EAAU4H,EAAeC,EAAgB3D,EAAU4D,EAAeC,GAC7GD,EAAchnD,KAAK0mD,GACnBxH,EAASt/C,SAAQ,SAASugD,GACzB,IAAIthD,EAAO2/C,EAAoB4B,SAASD,GACpC+G,EAAW1I,EAAoBt3B,EAAIroB,EACnC8nD,EA3Ce,SAAS9nD,EAAMqoD,GAEnC,IADA,IAAIC,EAAmB7jD,SAAS8b,qBAAqB,QAC7CxY,EAAI,EAAGA,EAAIugD,EAAiBrgD,OAAQF,IAAK,CAChD,IACIwgD,GADAC,EAAMF,EAAiBvgD,IACRk6C,aAAa,cAAgBuG,EAAIvG,aAAa,QACjE,GAAe,eAAZuG,EAAIT,MAAyBQ,IAAavoD,GAAQuoD,IAAaF,GAAW,OAAOG,CACrF,CACA,IAAIC,EAAoBhkD,SAAS8b,qBAAqB,SACtD,IAAQxY,EAAI,EAAGA,EAAI0gD,EAAkBxgD,OAAQF,IAAK,CACjD,IAAIygD,EAEJ,IADID,GADAC,EAAMC,EAAkB1gD,IACTk6C,aAAa,gBAChBjiD,GAAQuoD,IAAaF,EAAU,OAAOG,CACvD,CACD,CA8BeE,CAAe1oD,EAAMqoD,GAC9BP,GACJvD,EAASpjD,KAAK,IAAIwiD,SAAQ,SAASc,EAASkE,GAC3C,IAAIH,EAlFgB,SAASlH,EAAS+G,EAAUP,EAAQrD,EAASkE,GACnE,IAAIC,EAAUnkD,SAAS2W,cAAc,QAiCrC,OA/BAwtC,EAAQb,IAAM,aACda,EAAQ/lD,KAAO,WACX88C,EAAoByC,KACvBwG,EAAQC,MAAQlJ,EAAoByC,IAmBrCwG,EAAQpG,QAAUoG,EAAQnG,OAjBL,SAAS7hD,GAG7B,GADAgoD,EAAQpG,QAAUoG,EAAQnG,OAAS,KAChB,SAAf7hD,EAAMiC,KACT4hD,QACM,CACN,IAAIqE,EAAYloD,GAASA,EAAMiC,KAC3BkmD,EAAWnoD,GAASA,EAAMV,QAAUU,EAAMV,OAAOF,MAAQqoD,EACzDviD,EAAM,IAAIm+C,MAAM,qBAAuB3C,EAAU,cAAgBwH,EAAY,KAAOC,EAAW,KACnGjjD,EAAIgI,KAAO,iBACXhI,EAAIkjD,KAAO,wBACXljD,EAAIjD,KAAOimD,EACXhjD,EAAI2/C,QAAUsD,EACVH,EAAQ17B,YAAY07B,EAAQ17B,WAAWva,YAAYi2C,GACvDD,EAAO7iD,EACR,CACD,EAEA8iD,EAAQ5oD,KAAOqoD,EAGXP,EACHA,EAAO56B,WAAWC,aAAay7B,EAASd,EAAOmB,aAE/CxkD,SAASk+C,KAAKC,YAAYgG,GAEpBA,CACR,CA+CaM,CAAiB5H,EAAS+G,EAAUP,GAAQ,WACrDU,EAAIW,GAAK,QACTX,EAAIT,IAAM,UACVtD,GACD,GAAGkE,GACHhB,EAAQxmD,KAAK2mD,GACbF,EAAQzmD,KAAKqnD,EACd,IACD,GACD,CA5F2C,C,eCK3C,IAUIY,EAwCAC,EACAC,EACAC,EACAC,EArDAC,EAAkB9J,EAAoB+J,WAAa/J,EAAoB+J,YAAc,CACxF,IAAK,GAUFC,EAAwB,CAAC,EAC7B,SAASC,EAAgBtI,EAAS8G,GAEjC,OADAgB,EAA4BhB,EACrB,IAAIzE,SAAQ,SAASc,EAASkE,GACpCgB,EAAsBrI,GAAWmD,EAEjC,IAAI1xB,EAAM4sB,EAAoBt3B,EAAIs3B,EAAoB0B,GAAGC,GAErD77C,EAAQ,IAAIw+C,MAahBtE,EAAoBvtB,EAAEW,GAZH,SAASnyB,GAC3B,GAAG+oD,EAAsBrI,GAAU,CAClCqI,EAAsBrI,QAAW99C,EACjC,IAAIslD,EAAYloD,IAAyB,SAAfA,EAAMiC,KAAkB,UAAYjC,EAAMiC,MAChEgnD,EAAUjpD,GAASA,EAAMV,QAAUU,EAAMV,OAAOsN,IACpD/H,EAAMqkD,QAAU,4BAA8BxI,EAAU,cAAgBwH,EAAY,KAAOe,EAAU,IACrGpkD,EAAMqI,KAAO,iBACbrI,EAAM5C,KAAOimD,EACbrjD,EAAMggD,QAAUoE,EAChBlB,EAAOljD,EACR,CACD,GAED,GACD,CAoBA,SAASoiD,EAAajD,GAGrB,SAASmF,EAAyBC,GAUjC,IATA,IAAI9E,EAAkB,CAAC8E,GACnBC,EAAuB,CAAC,EAExBC,EAAQhF,EAAgBn1C,KAAI,SAAUjQ,GACzC,MAAO,CACNqqD,MAAO,CAACrqD,GACRA,GAAIA,EAEN,IACOoqD,EAAMjiD,OAAS,GAAG,CACxB,IAAImiD,EAAYF,EAAMG,MAClBzK,EAAWwK,EAAUtqD,GACrBqqD,EAAQC,EAAUD,MAClB7K,EAASK,EAAoB5e,EAAE6e,GACnC,GACEN,KACAA,EAAOC,IAAIgH,eAAkBjH,EAAOC,IAAIkH,kBAF1C,CAKA,GAAInH,EAAOC,IAAIiH,cACd,MAAO,CACN3jD,KAAM,gBACNsnD,MAAOA,EACPvK,SAAUA,GAGZ,GAAIN,EAAOC,IAAIiG,MACd,MAAO,CACN3iD,KAAM,aACNsnD,MAAOA,EACPvK,SAAUA,GAGZ,IAAK,IAAI73C,EAAI,EAAGA,EAAIu3C,EAAOqG,QAAQ19C,OAAQF,IAAK,CAC/C,IAAIuiD,EAAWhL,EAAOqG,QAAQ59C,GAC1BwiD,EAAS5K,EAAoB5e,EAAEupB,GACnC,GAAKC,EAAL,CACA,GAAIA,EAAOhL,IAAI+G,sBAAsB1G,GACpC,MAAO,CACN/8C,KAAM,WACNsnD,MAAOA,EAAMK,OAAO,CAACF,IACrB1K,SAAUA,EACV0K,SAAUA,IAG+B,IAAvCpF,EAAgBE,QAAQkF,KACxBC,EAAOhL,IAAI6G,sBAAsBxG,IAC/BqK,EAAqBK,KACzBL,EAAqBK,GAAY,IAClCG,EAAYR,EAAqBK,GAAW,CAAC1K,aAGvCqK,EAAqBK,GAC5BpF,EAAgB/jD,KAAKmpD,GACrBJ,EAAM/oD,KAAK,CACVgpD,MAAOA,EAAMK,OAAO,CAACF,IACrBxqD,GAAIwqD,KApBgB,CAsBtB,CAxCS,CAyCV,CAEA,MAAO,CACNznD,KAAM,WACN+8C,SAAUoK,EACV9E,gBAAiBA,EACjB+E,qBAAsBA,EAExB,CAEA,SAASQ,EAAYxJ,EAAGyJ,GACvB,IAAK,IAAI3iD,EAAI,EAAGA,EAAI2iD,EAAEziD,OAAQF,IAAK,CAClC,IAAI4iD,EAAOD,EAAE3iD,IACY,IAArBk5C,EAAEmE,QAAQuF,IAAc1J,EAAE9/C,KAAKwpD,EACpC,CACD,CA7EIhL,EAAoBxe,UAAUwe,EAAoBxe,EAAEypB,SACxDvB,OAAsB7lD,EAgFtB,IAAIymD,EAAuB,CAAC,EACxB/E,EAAkB,GAClB2F,EAAgB,CAAC,EAEjBC,EAAwB,SAA+BxL,GAC1D95C,QAAQogD,KACP,4BAA8BtG,EAAOx/C,GAAK,uBAE5C,EAEA,IAAK,IAAI8/C,KAAY0J,EACpB,GAAI3J,EAAoBz6C,EAAEokD,EAAe1J,GAAW,CACnD,IAAImL,EAAmBzB,EAAc1J,GAEjCx5C,EAAS2kD,EACVhB,EAAyBnK,GACzB,CACA/8C,KAAM,WACN+8C,SAAUA,GAGToL,GAAa,EACbC,GAAU,EACVC,GAAY,EACZC,EAAY,GAIhB,OAHI/kD,EAAO+jD,QACVgB,EAAY,yBAA2B/kD,EAAO+jD,MAAMiB,KAAK,SAElDhlD,EAAOvD,MACd,IAAK,gBACA+hD,EAAQyG,YAAYzG,EAAQyG,WAAWjlD,GACtCw+C,EAAQ0G,iBACZN,EAAa,IAAI/G,MAChB,oCACC79C,EAAOw5C,SACPuL,IAEH,MACD,IAAK,WACAvG,EAAQyG,YAAYzG,EAAQyG,WAAWjlD,GACtCw+C,EAAQ0G,iBACZN,EAAa,IAAI/G,MAChB,2CACC79C,EAAOw5C,SACP,OACAx5C,EAAOkkD,SACPa,IAEH,MACD,IAAK,aACAvG,EAAQ2G,cAAc3G,EAAQ2G,aAAanlD,GAC1Cw+C,EAAQ4G,mBACZR,EAAa,IAAI/G,MAChB,mBAAqBrE,EAAW,mBAAqBuL,IAEvD,MACD,IAAK,WACAvG,EAAQ6G,YAAY7G,EAAQ6G,WAAWrlD,GAC3C6kD,GAAU,EACV,MACD,IAAK,WACArG,EAAQ8G,YAAY9G,EAAQ8G,WAAWtlD,GAC3C8kD,GAAY,EACZ,MACD,QACC,MAAM,IAAIjH,MAAM,oBAAsB79C,EAAOvD,MAE/C,GAAImoD,EACH,MAAO,CACNvlD,MAAOulD,GAGT,GAAIC,EAGH,IAAKrL,KAFLiL,EAAcjL,GAAYmL,EAC1BN,EAAYvF,EAAiB9+C,EAAO8+C,iBACnB9+C,EAAO6jD,qBACnBtK,EAAoBz6C,EAAEkB,EAAO6jD,qBAAsBrK,KACjDqK,EAAqBrK,KACzBqK,EAAqBrK,GAAY,IAClC6K,EACCR,EAAqBrK,GACrBx5C,EAAO6jD,qBAAqBrK,KAK5BsL,IACHT,EAAYvF,EAAiB,CAAC9+C,EAAOw5C,WACrCiL,EAAcjL,GAAYkL,EAE5B,CAEDxB,OAAgB9lD,EAIhB,IADA,IAoBImoD,EApBAC,EAA8B,GACzBjL,EAAI,EAAGA,EAAIuE,EAAgBj9C,OAAQ04C,IAAK,CAChD,IAAIkL,EAAmB3G,EAAgBvE,GACnCrB,EAASK,EAAoB5e,EAAE8qB,GAElCvM,IACCA,EAAOC,IAAIgH,eAAiBjH,EAAOC,IAAIiG,QAExCqF,EAAcgB,KAAsBf,IAEnCxL,EAAOC,IAAIkH,kBAEZmF,EAA4BzqD,KAAK,CAChCm+C,OAAQuM,EACR3L,QAASZ,EAAOC,IAAIoH,aACpBE,aAAcvH,EAAOC,IAAIgH,eAG5B,CAIA,MAAO,CACN9G,QAAS,WAMR,IAAIwH,EALJsC,EAA2BxoD,SAAQ,SAAUugD,UACrCmI,EAAgBnI,EACxB,IACAiI,OAA6B/lD,EAI7B,IADA,IAoCIsoD,EApCA5B,EAAQhF,EAAgBjmC,QACrBirC,EAAMjiD,OAAS,GAAG,CACxB,IAAI23C,EAAWsK,EAAMG,MACjB/K,EAASK,EAAoB5e,EAAE6e,GACnC,GAAKN,EAAL,CAEA,IAAI15C,EAAO,CAAC,EAGRmmD,EAAkBzM,EAAOC,IAAImH,iBACjC,IAAK/F,EAAI,EAAGA,EAAIoL,EAAgB9jD,OAAQ04C,IACvCoL,EAAgBpL,GAAGp9B,KAAK,KAAM3d,GAc/B,IAZA+5C,EAAoB2F,KAAK1F,GAAYh6C,EAGrC05C,EAAOC,IAAImG,QAAS,SAGb/F,EAAoB5e,EAAE6e,UAGtBqK,EAAqBrK,GAGvBe,EAAI,EAAGA,EAAIrB,EAAOx8C,SAASmF,OAAQ04C,IAAK,CAC5C,IAAIqL,EAAQrM,EAAoB5e,EAAEue,EAAOx8C,SAAS69C,IAC7CqL,IACL/E,EAAM+E,EAAMrG,QAAQP,QAAQxF,KACjB,GACVoM,EAAMrG,QAAQ7E,OAAOmG,EAAK,EAE5B,CA5BqB,CA6BtB,CAIA,IAAK,IAAI4E,KAAoB5B,EAC5B,GAAItK,EAAoBz6C,EAAE+kD,EAAsB4B,KAC/CvM,EAASK,EAAoB5e,EAAE8qB,IAI9B,IAFAF,EACC1B,EAAqB4B,GACjBlL,EAAI,EAAGA,EAAIgL,EAA2B1jD,OAAQ04C,IAClDmL,EAAaH,EAA2BhL,IACxCsG,EAAM3H,EAAOx8C,SAASsiD,QAAQ0G,KACnB,GAAGxM,EAAOx8C,SAASg+C,OAAOmG,EAAK,EAK/C,EACA9B,MAAO,SAAUF,GAEhB,IAAK,IAAI+E,KAAkBa,EACtBlL,EAAoBz6C,EAAE2lD,EAAeb,KACxCrK,EAAoB3vC,EAAEg6C,GAAkBa,EAAcb,IAKxD,IAAK,IAAIjiD,EAAI,EAAGA,EAAIyhD,EAAqBvhD,OAAQF,IAChDyhD,EAAqBzhD,GAAG43C,GAIzB,IAAK,IAAIkM,KAAoB5B,EAC5B,GAAItK,EAAoBz6C,EAAE+kD,EAAsB4B,GAAmB,CAClE,IAAIvM,EAASK,EAAoB5e,EAAE8qB,GACnC,GAAIvM,EAAQ,CACXqM,EACC1B,EAAqB4B,GAItB,IAHA,IAAII,EAAY,GACZC,EAAgB,GAChBC,EAA2B,GACtBxL,EAAI,EAAGA,EAAIgL,EAA2B1jD,OAAQ04C,IAAK,CAC3D,IAAImL,EAAaH,EAA2BhL,GACxCyL,EACH9M,EAAOC,IAAI6G,sBAAsB0F,GAC9BjF,EACHvH,EAAOC,IAAI8G,uBAAuByF,GACnC,GAAIM,EAAgB,CACnB,IAA2C,IAAvCH,EAAU7G,QAAQgH,GAAwB,SAC9CH,EAAU9qD,KAAKirD,GACfF,EAAc/qD,KAAK0lD,GACnBsF,EAAyBhrD,KAAK2qD,EAC/B,CACD,CACA,IAAK,IAAIO,EAAI,EAAGA,EAAIJ,EAAUhkD,OAAQokD,IACrC,IACCJ,EAAUI,GAAG9oC,KAAK,KAAMooC,EACzB,CAAE,MAAO7lD,GACR,GAAgC,mBAArBomD,EAAcG,GACxB,IACCH,EAAcG,GAAGvmD,EAAK,CACrB85C,SAAUiM,EACVS,aAAcH,EAAyBE,IAEzC,CAAE,MAAOE,GACJ3H,EAAQ4H,WACX5H,EAAQ4H,UAAU,CACjB3pD,KAAM,+BACN+8C,SAAUiM,EACVS,aAAcH,EAAyBE,GACvC5mD,MAAO8mD,EACPE,cAAe3mD,IAGZ8+C,EAAQ8H,gBACZzH,EAAYsH,GACZtH,EAAYn/C,GAEd,MAEI8+C,EAAQ4H,WACX5H,EAAQ4H,UAAU,CACjB3pD,KAAM,iBACN+8C,SAAUiM,EACVS,aAAcH,EAAyBE,GACvC5mD,MAAOK,IAGJ8+C,EAAQ8H,eACZzH,EAAYn/C,EAGf,CAEF,CACD,CAID,IAAK,IAAIZ,EAAI,EAAGA,EAAI0mD,EAA4B3jD,OAAQ/C,IAAK,CAC5D,IAAIylD,EAAOiB,EAA4B1mD,GACnC06C,EAAW+K,EAAKrL,OACpB,IACCqL,EAAKzK,QAAQN,EACd,CAAE,MAAO95C,GACR,GAAiC,mBAAtB6kD,EAAK9D,aACf,IACC8D,EAAK9D,aAAa/gD,EAAK,CACtB85C,SAAUA,EACVN,OAAQK,EAAoB5e,EAAE6e,IAEhC,CAAE,MAAO+M,GACJ/H,EAAQ4H,WACX5H,EAAQ4H,UAAU,CACjB3pD,KAAM,oCACN+8C,SAAUA,EACVn6C,MAAOknD,EACPF,cAAe3mD,IAGZ8+C,EAAQ8H,gBACZzH,EAAY0H,GACZ1H,EAAYn/C,GAEd,MAEI8+C,EAAQ4H,WACX5H,EAAQ4H,UAAU,CACjB3pD,KAAM,sBACN+8C,SAAUA,EACVn6C,MAAOK,IAGJ8+C,EAAQ8H,eACZzH,EAAYn/C,EAGf,CACD,CAEA,OAAOo/C,CACR,EAEF,CAlZA0H,KAAoC,8BAAI,SAAStL,EAASuL,EAAaC,GACtE,IAAI,IAAIlN,KAAYiN,EAChBlN,EAAoBz6C,EAAE2nD,EAAajN,KACrC0J,EAAc1J,GAAYiN,EAAYjN,GACnCwJ,GAA2BA,EAA0BjoD,KAAKy+C,IAG5DkN,GAAStD,EAAqBroD,KAAK2rD,GACnCnD,EAAsBrI,KACxBqI,EAAsBrI,KACtBqI,EAAsBrI,QAAW99C,EAEnC,EAuYAm8C,EAAoB0F,KAAK0H,MAAQ,SAAUnN,EAAUuI,GAC/CmB,IACJA,EAAgB,CAAC,EACjBE,EAAuB,GACvBD,EAA6B,GAC7BpB,EAAchnD,KAAK0mD,IAEflI,EAAoBz6C,EAAEokD,EAAe1J,KACzC0J,EAAc1J,GAAYD,EAAoB3vC,EAAE4vC,GAElD,EACAD,EAAoB0E,KAAK0I,MAAQ,SAChC1M,EACA4H,EACAC,EACA3D,EACA4D,EACAC,GAEAD,EAAchnD,KAAK0mD,GACnBwB,EAAsB,CAAC,EACvBE,EAA6BtB,EAC7BqB,EAAgBpB,EAAe5D,QAAO,SAAU3C,EAAKr+C,GAEpD,OADAq+C,EAAIr+C,IAAO,EACJq+C,CACR,GAAG,CAAC,GACJ6H,EAAuB,GACvBnJ,EAASt/C,SAAQ,SAAUugD,GAEzB3B,EAAoBz6C,EAAEukD,EAAiBnI,SACV99C,IAA7BimD,EAAgBnI,IAEhBiD,EAASpjD,KAAKyoD,EAAgBtI,EAAS8G,IACvCiB,EAAoB/H,IAAW,GAE/B+H,EAAoB/H,IAAW,CAEjC,IACI3B,EAAoBxe,IACvBwe,EAAoBxe,EAAEypB,SAAW,SAAUtJ,EAASiD,GAElD8E,GACA1J,EAAoBz6C,EAAEmkD,EAAqB/H,KAC1C+H,EAAoB/H,KAErBiD,EAASpjD,KAAKyoD,EAAgBtI,IAC9B+H,EAAoB/H,IAAW,EAEjC,EAEF,EAEA3B,EAAoBuE,KAAO,WAC1B,GAAqB,oBAAV8I,MAAuB,MAAM,IAAI/I,MAAM,sCAClD,OAAO+I,MAAMrN,EAAoBt3B,EAAIs3B,EAAoB6B,QAAQn8C,MAAK,SAASC,GAC9E,GAAuB,MAApBA,EAASC,OAAZ,CACA,IAAID,EAAS2nD,GAAI,MAAM,IAAIhJ,MAAM,mCAAqC3+C,EAAS4nD,YAC/E,OAAO5nD,EAAS6nD,MAFkB,CAGnC,GACD,EAEAxN,EAAoBS,EAAEO,EAAI,SAASW,GAAW,OAAoC,IAA7BmI,EAAgBnI,EAAgB,EAGrF,IAAI8L,EAAuB,SAASC,EAA4BznD,GAC/D,IAKIg6C,EAAU0B,EALVjB,EAAWz6C,EAAK,GAChBinD,EAAcjnD,EAAK,GACnBknD,EAAUlnD,EAAK,GAGImC,EAAI,EAC3B,GAAGs4C,EAASiN,MAAK,SAASxtD,GAAM,OAA+B,IAAxB2pD,EAAgB3pD,EAAW,IAAI,CACrE,IAAI8/C,KAAYiN,EACZlN,EAAoBz6C,EAAE2nD,EAAajN,KACrCD,EAAoB3vC,EAAE4vC,GAAYiN,EAAYjN,IAGhD,GAAGkN,EAAS,IAAI1mD,EAAS0mD,EAAQnN,EAClC,CAEA,IADG0N,GAA4BA,EAA2BznD,GACrDmC,EAAIs4C,EAASp4C,OAAQF,IACzBu5C,EAAUjB,EAASt4C,GAChB43C,EAAoBz6C,EAAEukD,EAAiBnI,IAAYmI,EAAgBnI,IACrEmI,EAAgBnI,GAAS,KAE1BmI,EAAgBnI,GAAW,EAE5B,OAAO3B,EAAoBS,EAAEh6C,EAC9B,EAEImnD,EAAqBX,KAAgC,0BAAIA,KAAgC,2BAAK,GAClGW,EAAmBxsD,QAAQqsD,EAAqBlkD,KAAK,KAAM,IAC3DqkD,EAAmBpsD,KAAOisD,EAAqBlkD,KAAK,KAAMqkD,EAAmBpsD,KAAK+H,KAAKqkD,G,ICxhBvF5N,EAAoByC,QAAK5+C,ECGzB,IAAIgqD,EAAsB7N,EAAoBS,OAAE58C,EAAW,CAAC,MAAM,WAAa,OAAOm8C,EAAoB,KAAO,IACjH6N,EAAsB7N,EAAoBS,EAAEoN,E","sources":["webpack://reacttest2018/webpack/runtime/chunk loaded","webpack://reacttest2018/webpack/runtime/load script","webpack://reacttest2018/./src/checkout/components/modals/return-policy.modal.tsx","webpack://reacttest2018/./src/global/emitter.tsx","webpack://reacttest2018/./src/global/modal-simple.tsx","webpack://reacttest2018/./src/global/store/ab-test.store.ts","webpack://reacttest2018/./src/prod-index.tsx","webpack://reacttest2018/./src/product/api.ts","webpack://reacttest2018/./src/product/calc.ts","webpack://reacttest2018/./src/product/components/atc/atc-button.tsx","webpack://reacttest2018/./src/product/components/atc/atc.tsx","webpack://reacttest2018/./src/product/components/caf-doc-size.tsx","webpack://reacttest2018/./src/product/components/category.tsx","webpack://reacttest2018/./src/product/components/customfields.tsx","webpack://reacttest2018/./src/product/components/desc-main.tsx","webpack://reacttest2018/./src/product/components/doc-size.tsx","webpack://reacttest2018/./src/product/components/engraved-plate.tsx","webpack://reacttest2018/./src/product/components/glass.tsx","webpack://reacttest2018/./src/product/components/grad-year.tsx","webpack://reacttest2018/./src/product/components/image-upload-copy.tsx","webpack://reacttest2018/./src/product/components/insignia.tsx","webpack://reacttest2018/./src/product/components/lino.tsx","webpack://reacttest2018/./src/product/components/mat.tsx","webpack://reacttest2018/./src/product/components/modals/level-lock.modal.tsx","webpack://reacttest2018/./src/product/components/modals/smart-box.modal.tsx","webpack://reacttest2018/./src/product/components/moulding/moulding.tsx","webpack://reacttest2018/./src/product/components/moulding/recycled-icon.tsx","webpack://reacttest2018/./src/product/components/prod-processing.tsx","webpack://reacttest2018/./src/product/components/product-header.tsx","webpack://reacttest2018/./src/product/components/promo-redeem.tsx","webpack://reacttest2018/./src/product/components/qty.tsx","webpack://reacttest2018/./src/product/components/related-products/product-item.tsx","webpack://reacttest2018/./src/product/components/related-products/related-products.tsx","webpack://reacttest2018/./src/product/components/shared/info-icon.tsx","webpack://reacttest2018/./src/product/components/slider/slider-real-images.tsx","webpack://reacttest2018/./src/product/components/slider/slider-th.tsx","webpack://reacttest2018/./src/product/components/yotpo.tsx","webpack://reacttest2018/./src/product/data.ts","webpack://reacttest2018/./src/product/product.tsx","webpack://reacttest2018/./src/product/rendering/core.ts","webpack://reacttest2018/./src/product/rendering/render.tsx","webpack://reacttest2018/./src/product/s.ts","webpack://reacttest2018/./src/util.ts","webpack://reacttest2018/./src/product/product.scss","webpack://reacttest2018/webpack/bootstrap","webpack://reacttest2018/webpack/runtime/compat get default export","webpack://reacttest2018/webpack/runtime/define property getters","webpack://reacttest2018/webpack/runtime/get javascript update chunk filename","webpack://reacttest2018/webpack/runtime/get mini-css chunk filename","webpack://reacttest2018/webpack/runtime/get update manifest filename","webpack://reacttest2018/webpack/runtime/getFullHash","webpack://reacttest2018/webpack/runtime/global","webpack://reacttest2018/webpack/runtime/hasOwnProperty shorthand","webpack://reacttest2018/webpack/runtime/make namespace object","webpack://reacttest2018/webpack/runtime/runtimeId","webpack://reacttest2018/webpack/runtime/hot module replacement","webpack://reacttest2018/webpack/runtime/publicPath","webpack://reacttest2018/webpack/runtime/css loading","webpack://reacttest2018/webpack/runtime/jsonp chunk loading","webpack://reacttest2018/webpack/runtime/nonce","webpack://reacttest2018/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"reacttest2018:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport ModalSimple from '../../../global/modal-simple';\r\n\r\n@observer\r\nclass ReturnPolicyModal extends React.Component {\r\n render() {\r\n return (\r\n \r\n
\r\n

\r\n Church Hill Classics offers a hassle-free return policy with no restocking\r\n fees to ensure customer satisfaction. Purchases made directly from their\r\n website are refundable within 120 days, with options to replace the product\r\n or issue a refund, excluding shipping and handling fees. Returns require a\r\n Return Merchandise Authorization (RMA) number, provided by their Customer\r\n Service team, and must be in original, undamaged packaging. For damaged\r\n frames, replacements are fast-tracked and shipped within five business days,\r\n with all shipments fully insured. Personalized engraved plates and\r\n special-order items are typically non-returnable unless there’s an error or\r\n defect.\r\n

\r\n

\r\n For purchases made through bookstores or affiliates, customers must follow\r\n the store's specific return policies. eGift cards are non-refundable and any\r\n returns for items purchased with them will be credited back to the card.\r\n Church Hill Classics emphasizes customer support and encourages anyone with\r\n questions to contact their Customer Service team for assistance.\r\n

\r\n\r\n
\r\n \r\n Read full return policy\r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ReturnPolicyModal;\r\n","export enum EventType {\r\n AB = 'AB',\r\n}\r\n\r\n/**\r\n * Event emitter to subscribe, dispatch, and unsubscribe to events.\r\n */\r\nexport const eventEmitter: {\r\n readonly events: Record void)[]>;\r\n dispatch(eventType: EventType, uniqueSuffix: string | number): void;\r\n subscribe(eventType: EventType, uniqueSuffix: string | number, callback: () => void): void;\r\n unsubscribe(eventType: EventType, uniqueSuffix: string | number): void;\r\n getEventKey(eventType: EventType, uniqueSuffix: string | number): string;\r\n} = {\r\n //This is event object to store events.\r\n events: {},\r\n //Internal function to get event name from type and suffix\r\n getEventKey(eventType: EventType, uniqueSuffix: string | number) {\r\n return `${eventType} ${uniqueSuffix}`;\r\n },\r\n //This will dispatch the event and call the callback for every event.\r\n dispatch(event, uniqueSuffix) {\r\n const eventName = this.getEventKey(event, uniqueSuffix);\r\n if (!this.events[eventName]) return;\r\n this.events[eventName].forEach((callback: () => void) => callback());\r\n },\r\n //This will subscribe the event with a specific callback\r\n subscribe(event, uniqueSuffix, callback) {\r\n const eventName = this.getEventKey(event, uniqueSuffix);\r\n if (!this.events[eventName]) this.events[eventName] = [];\r\n if (!this.events[eventName].includes(callback)) this.events[eventName].push(callback);\r\n },\r\n //This will unsubscribe the event to avoid unnecessary event calls\r\n unsubscribe(event, uniqueSuffix) {\r\n const eventName = this.getEventKey(event, uniqueSuffix);\r\n if (!this.events[eventName]) return;\r\n delete this.events[eventName];\r\n },\r\n};\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport * as util from '../util';\r\n\r\ndeclare const modalCloseById: (id: string) => void;\r\n\r\ninterface IModalSimpleElementProps {\r\n id: string;\r\n title: string;\r\n open?: boolean;\r\n maxWidth?: string;\r\n children: JSX.Element;\r\n abTestClass?: string;\r\n close?: () => void;\r\n}\r\n\r\n@observer\r\nexport default class ModalSimple extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n componentDidMount(): void {\r\n if (this.props.open) {\r\n this.show();\r\n }\r\n }\r\n\r\n show() {\r\n util.modal(this.props.id);\r\n }\r\n\r\n hide() {\r\n if (this.props.close) {\r\n this.props.close();\r\n setTimeout(() => modalCloseById(this.props.id), 500);\r\n } else {\r\n modalCloseById(this.props.id);\r\n }\r\n }\r\n\r\n onOutsideClick(e: React.MouseEvent) {\r\n if (!e.target) {\r\n return;\r\n }\r\n\r\n if ((e.target as HTMLElement).classList.contains('modal')) {\r\n this.hide();\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n this.onOutsideClick(e)}\r\n >\r\n \r\n
\r\n \r\n {this.props.title}\r\n this.hide()}\r\n >\r\n
\r\n
{this.props.children}
\r\n
\r\n this.hide()}\r\n >\r\n Close\r\n \r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import {action, observable} from 'mobx';\r\n\r\ndeclare const window: any;\r\n\r\nexport enum ABTestKeys {\r\n ab_green_product = 'ab_green_product',\r\n product_glass = 'product_glass',\r\n ab_checkout_1 = 'ab_checkout_1',\r\n product_mats = 'product_mats',\r\n product_gray_box = 'product_gray_box',\r\n prod_zoom = 'prod_zoom',\r\n ab_green_store = 'ab_green_store',\r\n ab_store_filters = 'ab_store_filters',\r\n ab_prod_th6 = 'ab_prod_th6',\r\n ab_oddit_header = 'ab_oddit_header',\r\n prod_buynow = 'prod_buynow',\r\n}\r\n\r\nexport class AbTestStore {\r\n @observable ab: any;\r\n\r\n constructor() {\r\n this.ab = {};\r\n }\r\n\r\n abForceUpdate = async (_component: React.Component) => _component.forceUpdate();\r\n\r\n @action\r\n HasKey = (key: string): boolean => {\r\n if (!window.ab) {\r\n return false;\r\n } else if (window.ab[key] === undefined) {\r\n return false;\r\n } else if (!this.ab) {\r\n return false;\r\n } else if (this.ab[key] === undefined) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n @action\r\n ABIsVariant = (key: string, variation: number): boolean => {\r\n if (!window.ab) {\r\n return false;\r\n } else if (window.ab[key] === undefined) {\r\n return false;\r\n } else if (!this.ab) {\r\n return false;\r\n } else if (this.ab[key] === undefined) {\r\n return false;\r\n }\r\n\r\n return window.ab[key] === variation && this.ab && this.ab[key] === variation;\r\n };\r\n\r\n @action\r\n ABGetValue = (key: string): number => {\r\n if (!window.ab) {\r\n return 0;\r\n } else if (window.ab[key] === undefined) {\r\n return 0;\r\n } else if (!this.ab) {\r\n return 0;\r\n } else if (this.ab[key] === undefined) {\r\n return 0;\r\n }\r\n\r\n return this.ab[key];\r\n };\r\n\r\n @action\r\n ABGetClassName = (key: string): string => {\r\n if (this.ABGetValue(key) === 0) {\r\n return '';\r\n }\r\n\r\n return `ab-${this.ABGetValue(key)} `;\r\n };\r\n}\r\n\r\nexport default new AbTestStore();\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport {createRoot} from 'react-dom/client';\r\n// import ErrorBoundary from './app-error';\r\nimport ProductComponent from './product/product';\r\nimport * as Sentry from '@sentry/react';\r\n\r\nSentry.init({\r\n dsn: 'https://b2db459d7dc0ea78a26c57e6e1ee5647@o367868.ingest.us.sentry.io/4508019535380480',\r\n integrations: [Sentry.browserTracingIntegration(), Sentry.replayIntegration()],\r\n tracesSampleRate: 0.05,\r\n tracePropagationTargets: [\r\n 'localhost',\r\n 'https://df4.microgsd.net',\r\n 'https://www.diplomaframe.com',\r\n 'https://www.customframes.com',\r\n 'https://df.chctest.com',\r\n ],\r\n replaysSessionSampleRate: 0.1,\r\n replaysOnErrorSampleRate: 1.0,\r\n ignoreErrors: [\r\n 'Non-Error exception captured',\r\n 'Non-Error promise rejection captured',\r\n 'InitializationError',\r\n ],\r\n environment: window.location.hostname.includes('diplomaframe') ? 'production' : 'development',\r\n});\r\n\r\nconst myErrorHandler = (error: Error, componentStack: string) => {\r\n console.log('ERROR', error.message);\r\n};\r\n\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n const container: HTMLElement = document.getElementById('prod-v8') as HTMLElement;\r\n if (container) {\r\n const root = createRoot(container);\r\n root.render();\r\n }\r\n});\r\n","import axios from 'axios';\r\nimport s from './s';\r\nimport {observable, autorun, action, makeObservable, runInAction} from 'mobx';\r\nimport {ProductState} from './i';\r\nimport {openLink} from '../util';\r\nwindow.dataLayer = window.dataLayer || [];\r\n\r\nconst req = (_url: string, o: any): Promise => {\r\n // console.log('req', o);\r\n // console.log(JSON.stringify(o).length, o);\r\n const x = 1;\r\n return axios\r\n .post(_url, o)\r\n .then(response => {\r\n // console.log('resp', response.data);\r\n if (response.status === 500) {\r\n console.error(JSON.parse(response.data));\r\n }\r\n return response.data as any;\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n return err;\r\n });\r\n};\r\n\r\nexport const redeemCode = async (): Promise => {\r\n var result: ProductAPIResult = await req('/api/redeem', getProductPackage());\r\n runInAction(() => {\r\n window.location.href = window.location.href;\r\n window.location.reload();\r\n });\r\n};\r\n\r\nexport const pricing = async (): Promise => {\r\n var result: ProductAPIResult = await req('/api/pricing', getProductPackage());\r\n runInAction(() => {\r\n s.ui.price = result.result_decimal;\r\n });\r\n};\r\n\r\nexport const statevent = async (s: IStatEvent): Promise => {\r\n // axios.post('/api/info/event', s);\r\n};\r\n\r\nexport const add_to_cart = async (buyNow = false): Promise => {\r\n var result: ProductAPIResult = await req('/api/atc', getProductPackage());\r\n\r\n runInAction(() => {\r\n s.pcs.atc_error = '';\r\n // console.log(result);\r\n if (result.success === 1) {\r\n window.location.href = buyNow ? `${result.redirect_url}?buyNow=1` : result.redirect_url;\r\n } else if (result.success === 0) {\r\n s.pcs.atc_error = result.error;\r\n }\r\n });\r\n};\r\n\r\nexport const prod_cat = async (LinkToProductID: number): Promise => {\r\n const v = getProductPackage();\r\n v.ProductID = LinkToProductID;\r\n var result: ProductAPIResult = await req('/api/prod_cat', v);\r\n console.log(result);\r\n return result.msg;\r\n};\r\n\r\nconst getProductPackage = (): ProductUpdateFromClient => {\r\n return {\r\n ProductID: s.prod.ProductID,\r\n StoreID: s.si.StoreID,\r\n pcs: s.pcs,\r\n };\r\n};\r\n\r\ninterface ProductUpdateFromClient {\r\n ProductID: number;\r\n StoreID: number;\r\n pcs: ProductState;\r\n}\r\n\r\ninterface ProductAPIResult {\r\n success: number;\r\n error: string;\r\n msg: string;\r\n result_decimal: number;\r\n result_int: number;\r\n item_id: string;\r\n sku: string;\r\n redirect_url: string;\r\n}\r\n\r\ninterface IStatEvent {\r\n d1: string;\r\n d2: string;\r\n d3: string;\r\n}\r\n","import {ShippingSizeData} from './data';\r\nimport {ProductState, ViewProduct} from './i';\r\nimport s from './s';\r\n\r\nexport function updateShippingBoxID() {\r\n let id = -1;\r\n if (s.pcs.docWidth > s.pcs.docHeight) {\r\n const _t = s.pcs.docHeight;\r\n s.pcs.docHeight = s.pcs.docWidth;\r\n s.pcs.docWidth = _t;\r\n }\r\n\r\n try {\r\n let hit = false;\r\n for (let i = 0; i <= ShippingSizeData.length; i++) {\r\n let ssd = ShippingSizeData[i];\r\n if (s.pcs.docWidth <= ssd.width && s.pcs.docHeight <= ssd.height) {\r\n id = ssd.id;\r\n hit = true;\r\n break;\r\n }\r\n }\r\n if (hit === false) {\r\n id = 7;\r\n }\r\n } catch (e) {\r\n // err(e);\r\n id = 1;\r\n }\r\n\r\n let box_id: number = 3;\r\n if (s.prod.isShippingOversize) {\r\n switch (id) {\r\n case 1:\r\n box_id = 3;\r\n case 2:\r\n case 3:\r\n box_id = 4;\r\n case 4:\r\n case 5:\r\n box_id = 5;\r\n case 6:\r\n box_id = 6;\r\n default:\r\n box_id = 6;\r\n }\r\n } else {\r\n switch (id) {\r\n case 1:\r\n box_id = 1;\r\n case 2:\r\n case 3:\r\n box_id = 2;\r\n case 4:\r\n case 5:\r\n box_id = 3;\r\n case 6:\r\n box_id = 4;\r\n default:\r\n box_id = 5;\r\n }\r\n }\r\n s.ui.box_id = box_id;\r\n}\r\n","import {observer} from 'mobx-react';\r\nimport React, {useEffect, useRef} from 'react';\r\nimport {action, makeAutoObservable, makeObservable, observable, runInAction} from 'mobx';\r\nimport s from '../../s';\r\nimport {add_to_cart} from '../../api';\r\nimport * as emitter from '../../../global/emitter';\r\nimport AbTestStore, {ABTestKeys} from '../../../global/store/ab-test.store';\r\n\r\ntype Props = {\r\n label: string;\r\n buyNow?: boolean;\r\n additionalClass?: string;\r\n};\r\n\r\n@observer\r\nexport default class ATCButton extends React.Component {\r\n @observable loading: boolean = false;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.atc = this.atc.bind(this);\r\n makeObservable(this);\r\n }\r\n\r\n abForceUpdate = async () => this.forceUpdate();\r\n\r\n componentDidMount(): void {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n }\r\n\r\n @action\r\n atc = async (buyNow = false) => {\r\n runInAction(() => {\r\n this.loading = true;\r\n });\r\n\r\n if (s.prod.IsCAF && !(s.pcs.caf_input_sizes || s.pcs.caf_valid_sizes)) {\r\n s.ui.show_caf_doc_sizes = true;\r\n } else if (s.prod.allowUpload2 && !s.ui.image_uploaded) {\r\n s.ui.image_uploaded_msg = `Please upload a ${s.prod.DocType} image before adding to cart`;\r\n } else {\r\n runInAction(() => {\r\n add_to_cart(buyNow);\r\n this.loading = false;\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n const {buyNow, label, additionalClass} = this.props;\r\n\r\n return (\r\n this.atc(buyNow)}\r\n tabIndex={0}\r\n >\r\n {label}\r\n {this.loading && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n","import React, {createRef} from 'react';\r\nimport {action, makeObservable, observable} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../../s';\r\nimport {r} from '../../rendering/core';\r\nimport ATCButton from './atc-button';\r\nimport AbTestStore, {ABTestKeys} from '../../../global/store/ab-test.store';\r\nimport * as emitter from '../../../global/emitter';\r\nimport PromoRedeem from '../promo-redeem';\r\n\r\ndeclare const modalOpen: (id: string) => void;\r\n\r\ninterface IATCProps {\r\n lite?: boolean;\r\n}\r\n\r\n@observer\r\nexport default class ATC extends React.Component {\r\n @observable canShare: boolean = false;\r\n @observable isMainATCVisible: boolean = true;\r\n @observable mainATCRef = createRef();\r\n\r\n constructor(props: IATCProps) {\r\n super(props);\r\n this.canShare = !!navigator.share;\r\n makeObservable(this);\r\n }\r\n\r\n abForceUpdate = async () => {\r\n this.forceUpdate();\r\n setTimeout(() => this.checkIfVisible());\r\n };\r\n\r\n componentDidMount() {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n }\r\n\r\n @action\r\n checkIfVisible() {\r\n if (this.mainATCRef.current) {\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n this.isMainATCVisible = entry.isIntersecting;\r\n },\r\n {threshold: 0.5},\r\n );\r\n observer.observe(this.mainATCRef.current);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n \r\n )}\r\n\r\n {(AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) ||\r\n AbTestStore.ABIsVariant(ABTestKeys.prod_buynow, 1)) &&\r\n !s.prod.categories?.length && (\r\n \r\n )}\r\n
\r\n\r\n {!this.props.lite && s.isRetail && (\r\n
\r\n modalOpen('modal-return-policy')}\r\n >\r\n Easy, 120-day return policy\r\n \r\n
\r\n )}\r\n\r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) &&\r\n !this.isMainATCVisible && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && s.ui.show_atc && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n {s.ui.show_atc && s.pcs.atc_error && s.pcs.atc_error !== '' && (\r\n
\r\n Error\r\n
{s.pcs.atc_error}
\r\n
\r\n )}\r\n\r\n \r\n
\r\n\r\n {window.innerWidth > 1200 && (\r\n
\r\n {this.canShare && s.isRetail && (\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n","import React, {Component} from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport * as util from '../../util';\r\nimport s from '../s';\r\nimport ModalSimple from '../../global/modal-simple';\r\nimport {add_to_cart} from '../api';\r\n\r\ndeclare const collapse: {\r\n init: () => void;\r\n};\r\n\r\n@observer\r\nexport default class CAFDocSize extends React.Component {\r\n @observable doc1_w: number;\r\n @observable doc1_h: number;\r\n @observable doc2_w: number;\r\n @observable doc2_h: number;\r\n @observable print1_w: number;\r\n @observable print1_h: number;\r\n @observable print2_w: number;\r\n @observable print2_h: number;\r\n\r\n @observable isHorizontal: string;\r\n @observable notes: string;\r\n\r\n @observable error1: string = '';\r\n @observable error2: string = '';\r\n @observable error3: string = '';\r\n @observable error4: string = '';\r\n\r\n constructor(props) {\r\n super(props);\r\n this.atc = this.atc.bind(this);\r\n this.stop_caf = this.stop_caf.bind(this);\r\n makeObservable(this);\r\n }\r\n\r\n componentDidMount(): void {\r\n if (s.pcs.is_horizontal) {\r\n this.isHorizontal = '1';\r\n } else {\r\n this.isHorizontal = '0';\r\n }\r\n }\r\n\r\n @action\r\n stop_caf = async () => {\r\n runInAction(() => {\r\n s.ui.show_caf_doc_sizes = false;\r\n s.ui.show_caf_doc_sizes_both = false;\r\n setTimeout(function () {\r\n collapse.init();\r\n }, 150);\r\n });\r\n };\r\n\r\n @action\r\n atc = async () => {\r\n runInAction(() => {\r\n this.error1 = '';\r\n this.error2 = '';\r\n this.error3 = '';\r\n this.error4 = '';\r\n if (s.prod.DYF_FrameStyleID === 2 && s.ui.show_caf_doc_sizes_both) {\r\n if (!this.doc2_w) {\r\n this.error3 = `Invalid bottom ${s.prod.DocType.toLowerCase()} width`;\r\n return;\r\n }\r\n if (!this.doc2_h) {\r\n this.error3 = `Invalid bottom ${s.prod.DocType.toLowerCase()} height`;\r\n return;\r\n }\r\n if (this.print2_w && this.print2_w < 1) {\r\n this.error2 = `Bottom printed width is too low. Must be greater than 1.`;\r\n }\r\n if (this.print2_h && this.print2_h < 1) {\r\n this.error2 = `Bottom printed height is too low. Must be greater than 1.`;\r\n }\r\n if (this.print2_w && this.print2_w > 30) {\r\n this.error4 = `Bottom printed width is too high. Must be less than 30 inches.`;\r\n }\r\n if (this.print2_h && this.print2_h > 24) {\r\n this.error4 = `Bottom printed height is too high. less than 24 inches.`;\r\n }\r\n if (this.print2_w && this.print2_w > this.doc2_w) {\r\n this.error2 = `Bottom printed width is too high. Must be less than bottom ${s.prod.DocType.toLowerCase()} width.`;\r\n }\r\n if (this.print2_h && this.print2_h > this.doc2_h) {\r\n this.error2 = `Bottom printed height is too high. Must be less than bottom ${s.prod.DocType.toLowerCase()} height.`;\r\n }\r\n\r\n if (this.doc2_w < 1) {\r\n this.error3 = `Bottom ${s.prod.DocType} width is too low. Must be greater than 1.`;\r\n }\r\n if (this.doc2_h < 1) {\r\n this.error3 = `Bottom ${s.prod.DocType} height is too low. Must be greater than 1.`;\r\n }\r\n if (this.doc2_w > 30) {\r\n this.error3 = `Bottom ${s.prod.DocType} width is too high. Must be less than 30 inches.`;\r\n }\r\n if (this.doc2_h > 24) {\r\n this.error3 = `Bottom ${s.prod.DocType} height is too high. Must be less than 24 inches.`;\r\n }\r\n }\r\n\r\n if (!this.doc1_w) {\r\n this.error1 = `Invalid ${s.prod.DocType.toLowerCase()} width`;\r\n return;\r\n }\r\n if (!this.doc1_h) {\r\n this.error1 = `Invalid ${s.prod.DocType.toLowerCase()} height`;\r\n return;\r\n }\r\n if (this.doc1_w < 1) {\r\n this.error1 = `${s.prod.DocType} width is too low. Must be greater than 1.`;\r\n }\r\n if (this.doc1_h < 1) {\r\n this.error1 = `${s.prod.DocType} height is too low. Must be greater than 1.`;\r\n }\r\n if (this.doc1_w > 30) {\r\n this.error1 = `${s.prod.DocType} width is too high. Must be less than 30 inches.`;\r\n }\r\n if (this.doc1_h > 24) {\r\n this.error1 = `${s.prod.DocType} height is too high. Must be less than 24 inches.`;\r\n }\r\n\r\n if (this.print1_w && this.print1_w < 1) {\r\n this.error2 = `Printed width is too low. Must be greater than 1.`;\r\n }\r\n if (this.print1_h && this.print1_h < 1) {\r\n this.error2 = `Printed height is too low. Must be greater than 1.`;\r\n }\r\n if (this.print1_w && this.print1_w > 30) {\r\n this.error2 = `Printed width is too high. Must be less than 30 inches.`;\r\n }\r\n if (this.print1_h && this.print1_h > 24) {\r\n this.error2 = `Printed height is too high. Must be less than 24 inches.`;\r\n }\r\n\r\n if (this.print1_w && this.print1_w > this.doc1_w) {\r\n this.error2 = `Printed width is too high. Must be less than ${s.prod.DocType.toLowerCase()} width.`;\r\n }\r\n if (this.print1_h && this.print1_h > this.doc1_h) {\r\n this.error2 = `Printed height is too high. Must be less than ${s.prod.DocType.toLowerCase()} height.`;\r\n }\r\n\r\n if (\r\n this.error1 !== '' ||\r\n this.error2 !== '' ||\r\n this.error3 !== '' ||\r\n this.error4 !== ''\r\n ) {\r\n return;\r\n }\r\n\r\n s.pcs.docWidth = this.doc1_w;\r\n s.pcs.docHeight = this.doc1_h;\r\n s.pcs.printWidth = this.print1_w;\r\n s.pcs.printHeight = this.print1_h;\r\n\r\n if (s.prod.DYF_FrameStyleID === 2 && s.ui.show_caf_doc_sizes_both) {\r\n s.pcs.docWidth2 = this.doc2_w;\r\n s.pcs.docHeight2 = this.doc2_h;\r\n s.pcs.printWidth2 = this.print2_w;\r\n s.pcs.printHeight2 = this.print2_h;\r\n } else if (s.prod.DYF_FrameStyleID === 2) {\r\n s.pcs.docWidth2 = this.doc1_w;\r\n s.pcs.docHeight2 = this.doc1_h;\r\n s.pcs.printWidth2 = this.print1_w;\r\n s.pcs.printHeight2 = this.print1_h;\r\n }\r\n\r\n this.isHorizontal = s.pcs.docWidth >= s.pcs.docHeight ? '1' : '0';\r\n\r\n s.pcs.caf_note_IsHorizontal = this.isHorizontal === '1' ? true : false;\r\n if (this.notes && this.notes.length > 2) {\r\n s.pcs.caf_note = this.notes.truncate(400, true);\r\n }\r\n\r\n // atc\r\n runInAction(() => {\r\n add_to_cart();\r\n });\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
Add To Cart
\r\n\r\n
\r\n \r\n
\r\n

Use the table below to convert from fractions to decimal:

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n

How to measure your Document

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n

\r\n We require the actual paper size measurements to confirm price and\r\n accurately size your frame. Please convert fractions to decimals.{' '}\r\n util.modal('modal-caf-atc-1')}\r\n aria-label=\"View a photo of an inches to decimals sizing chart\"\r\n />\r\n

\r\n

\r\n util.modal('modal-caf-atc-2')}\r\n aria-label=\"How to measure your Document\"\r\n >\r\n How to measure your {s.prod.DocType}\r\n \r\n \r\n \r\n \r\n

\r\n
\r\n\r\n
\r\n {s.prod.DYF_FrameStyleID === 2 && !s.ui.show_caf_doc_sizes_both && (\r\n
Top & Bottom {s.prod.DocType}s
\r\n )}\r\n {s.prod.DYF_FrameStyleID === 2 && s.ui.show_caf_doc_sizes_both && (\r\n
Top {s.prod.DocType}
\r\n )}\r\n
\r\n \r\n 1. Actual {s.prod.DocType} Size*:{' '}\r\n
\r\n \r\n \r\n \r\n runInAction(() => {\r\n this.doc1_w = parseFloat(e.target.value);\r\n })\r\n }\r\n aria-label=\"Top Document Width in Inches\"\r\n />\r\n \r\n
\r\n x\r\n \r\n \r\n runInAction(() => {\r\n this.doc1_h = parseFloat(e.target.value);\r\n })\r\n }\r\n aria-label=\"Top Document Height in Inches\"\r\n />\r\n \r\n
\r\n inches\r\n
\r\n \r\n e.g. 10.5\" W x 8\" H\r\n
\r\n {this.error1 && this.error1 !== '' && (\r\n
{this.error1}
\r\n )}\r\n \r\n
\r\n \r\n 2. Printed Area Size (optional):{' '}\r\n
\r\n \r\n \r\n \r\n runInAction(() => {\r\n this.print1_w = parseFloat(e.target.value);\r\n })\r\n }\r\n aria-label=\"Top Document Width in Inches\"\r\n />\r\n \r\n \r\n x\r\n \r\n \r\n runInAction(() => {\r\n this.print1_h = parseFloat(e.target.value);\r\n })\r\n }\r\n aria-label=\"Top Document Height in Inches\"\r\n />\r\n \r\n \r\n inches\r\n \r\n \r\n e.g. 10.5\" W x 8\" H\r\n \r\n {this.error2 && this.error2 !== '' && (\r\n
{this.error2}
\r\n )}\r\n \r\n\r\n {s.prod.DYF_FrameStyleID === 2 && !s.ui.show_caf_doc_sizes_both && (\r\n
\r\n

\r\n Does your bottom {s.prod.DocType.toLowerCase()} have\r\n different dimensions?\r\n

\r\n
\r\n \r\n runInAction(() => {\r\n s.ui.show_caf_doc_sizes_both = true;\r\n })\r\n }\r\n className=\"btn btn-outline-dark btn-sm\"\r\n >\r\n Yes\r\n \r\n
\r\n
\r\n )}\r\n\r\n {s.prod.DYF_FrameStyleID === 2 && s.ui.show_caf_doc_sizes_both && (\r\n
Bottom {s.prod.DocType}
\r\n )}\r\n {/* {s.prod.DYF_FrameStyleID === 2 && s.ui.show_caf_doc_sizes_both &&

Bottom {s.prod.DocType} information may be left blank if both {s.prod.DocType}s have identical dimensions.

} */}\r\n {s.prod.DYF_FrameStyleID === 2 && s.ui.show_caf_doc_sizes_both && (\r\n
\r\n \r\n 1. Actual {s.prod.DocType} Size*:{' '}\r\n
\r\n \r\n \r\n \r\n runInAction(() => {\r\n this.doc2_w = parseFloat(e.target.value);\r\n })\r\n }\r\n pattern=\"\\d*\"\r\n maxLength={7}\r\n aria-label=\"Top Document Width in Inches\"\r\n />\r\n \r\n \r\n x\r\n \r\n \r\n runInAction(() => {\r\n this.doc2_h = parseFloat(e.target.value);\r\n })\r\n }\r\n pattern=\"\\d*\"\r\n maxLength={7}\r\n aria-label=\"Top Document Height in Inches\"\r\n />\r\n \r\n \r\n inches\r\n \r\n {this.error3 && this.error3 !== '' && (\r\n
{this.error3}
\r\n )}\r\n \r\n )}\r\n {s.prod.DYF_FrameStyleID === 2 && s.ui.show_caf_doc_sizes_both && (\r\n
\r\n \r\n 2. Printed Area Size (optional):{' '}\r\n
\r\n \r\n \r\n \r\n runInAction(() => {\r\n this.print2_w = parseFloat(e.target.value);\r\n })\r\n }\r\n pattern=\"\\d*\"\r\n maxLength={7}\r\n aria-label=\"Top Document Width in Inches\"\r\n />\r\n \r\n \r\n x\r\n \r\n \r\n runInAction(() => {\r\n this.print2_h = parseFloat(e.target.value);\r\n })\r\n }\r\n pattern=\"\\d*\"\r\n maxLength={7}\r\n aria-label=\"Top Document Height in Inches\"\r\n />\r\n \r\n \r\n inches\r\n \r\n {this.error4 && this.error4 !== '' && (\r\n
{this.error4}
\r\n )}\r\n \r\n )}\r\n\r\n
\r\n\r\n
\r\n \r\n {s.prod.DocType} Orientation & Notes:{' '}\r\n
\r\n \r\n runInAction(() => {\r\n this.isHorizontal = e.target.value;\r\n })\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n runInAction(() => {\r\n this.notes = e.target.value;\r\n })\r\n }\r\n className=\"form-control\"\r\n placeholder=\"Notes\"\r\n aria-label=\"Notes for your order\"\r\n />\r\n \r\n
\r\n \r\n
\r\n
\r\n {s.pcs && s.pcs.atc_error && s.pcs.atc_error !== '' && (\r\n
{s.pcs.atc_error}
\r\n )}\r\n \r\n \r\n Back to Design\r\n \r\n \r\n Add To Cart\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction, toJS} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport ModalSimple from '../../global/modal-simple';\r\nimport {ProductCategoryObject} from '../i';\r\nimport {prod_cat} from '../api';\r\nimport * as emitter from '../../global/emitter';\r\nimport AbTestStore, {ABTestKeys} from '../../global/store/ab-test.store';\r\n\r\ninterface ICategoryProps {\r\n CategoryID: number;\r\n}\r\n\r\n@observer\r\nexport default class Category extends React.Component {\r\n @observable category_name: string;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.save = this.save.bind(this);\r\n makeObservable(this);\r\n }\r\n\r\n abForceUpdate = async () => this.forceUpdate();\r\n\r\n componentDidMount(): void {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n runInAction(() => {\r\n this.category_name = s.prod.categories.filter(\r\n x => x.CategoryID === this.props.CategoryID,\r\n )[0].CategoryName;\r\n });\r\n }\r\n\r\n @action\r\n save = async (id: number) => {\r\n runInAction(async () => {\r\n const cat = s.prod.categories.filter(x => x.id === id)[0];\r\n if (!cat) {\r\n return;\r\n }\r\n\r\n if (cat.LinkToProductID < 1) {\r\n s.pcs.category_map_id = cat.id;\r\n s.pcs.category_selected_no_new_product = cat.id > 0;\r\n const _w: number = cat.Doc_Width;\r\n const _h: number = cat.Doc_Height;\r\n\r\n if (_w <= _h) {\r\n s.pcs.docWidth = _w;\r\n s.pcs.docHeight = _h;\r\n s.pcs.is_horizontal = false;\r\n } else if (_w > _h) {\r\n s.pcs.docWidth = _w;\r\n s.pcs.docHeight = _h;\r\n s.pcs.is_horizontal = true;\r\n }\r\n s.prod.IsHorizontal = s.pcs.is_horizontal;\r\n s.prod.OrientationHorizontal = s.pcs.is_horizontal;\r\n s.pcs.docWidth2 = s.pcs.docWidth;\r\n s.pcs.docHeight2 = s.pcs.docHeight;\r\n if (s.prod.docWidth2 <= 0) {\r\n s.pcs.docWidth2 = -1;\r\n s.pcs.docHeight2 = -1;\r\n }\r\n\r\n if (s.pcs.glass_id === 2) {\r\n s.pcs.glass_id = 4;\r\n s.prod.AllowGlassID2 = 0;\r\n }\r\n\r\n s.ui.doRender = true;\r\n s.ui.update_pricing = true;\r\n s.pulse();\r\n } else {\r\n const result = (await prod_cat(cat.LinkToProductID)) as string;\r\n util.openLink(result);\r\n }\r\n });\r\n };\r\n\r\n render() {\r\n if (!s.ready || !this.category_name || s.pcs.is_caf) {\r\n return;\r\n }\r\n // console.log(s.prod.categories);\r\n return (\r\n \r\n
\r\n
\r\n \r\n {this.category_name}\r\n \r\n\r\n {s.prod.categories.length < 6 && (\r\n \r\n {s.prod.categories\r\n .filter(x => x.CategoryID === this.props.CategoryID)\r\n .map((m, i) => (\r\n this.save(m.id)}\r\n role=\"option\"\r\n tabIndex={0}\r\n >\r\n
\r\n {m.Name}\r\n {s.__fast_ship_orig &&\r\n s.isRetail &&\r\n s.pcs.category_map_id === m.id && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n ))}\r\n
\r\n )}\r\n\r\n {s.prod.categories.length > 5 && (\r\n this.save(parseInt(e.target.value, 10))}\r\n >\r\n {s.prod &&\r\n s.prod.linos &&\r\n s.prod.categories\r\n .filter(x => x.CategoryID === this.props.CategoryID)\r\n .map((m, i) => (\r\n \r\n {m.Name}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) &&
}\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction, toJS} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport ModalSimple from '../../global/modal-simple';\r\n\r\n@observer\r\nexport default class CustomFieldsComponent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.save1 = this.save1.bind(this);\r\n this.save2 = this.save2.bind(this);\r\n this.save3 = this.save3.bind(this);\r\n makeObservable(this);\r\n }\r\n\r\n @action\r\n save1 = async (e: React.ChangeEvent) => {\r\n runInAction(() => {\r\n s.pcs.custom_text_1 = e.target.value.truncate(200, false);\r\n });\r\n };\r\n\r\n @action\r\n save2 = async (e: React.ChangeEvent) => {\r\n runInAction(() => {\r\n s.pcs.custom_text_2 = e.target.value.truncate(200, false);\r\n });\r\n };\r\n\r\n @action\r\n save3 = async (e: React.ChangeEvent) => {\r\n runInAction(() => {\r\n s.pcs.custom_text_3 = e.target.value.truncate(200, false);\r\n });\r\n };\r\n\r\n render() {\r\n if (!s.ready || !s.ui.show_cust || s.prod.IsCAF) {\r\n return;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {s.prod.CustomField1_Enabled && (\r\n
\r\n
{s.prod.CustomField1_Title}
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n {s.prod.CustomField2_Enabled && (\r\n
\r\n
{s.prod.CustomField2_Title}
\r\n \r\n
\r\n )}\r\n {s.prod.CustomField3_Enabled && (\r\n
\r\n
{s.prod.CustomField3_Title}
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction, toJS} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport ModalSimple from '../../global/modal-simple';\r\nimport AbTestStore, {ABTestKeys} from '../../global/store/ab-test.store';\r\nimport * as emitter from '../../global/emitter';\r\nimport LevelLockModal from './modals/level-lock.modal';\r\nimport SmartBoxModal from './modals/smart-box.modal';\r\n\r\ndeclare var __portal: IPortalSettings;\r\n\r\ndeclare const collapse: {\r\n init: () => void;\r\n};\r\n\r\ntype Props = {\r\n toggleExpandable: (e: React.KeyboardEvent, id: string) => void;\r\n};\r\n\r\n@observer\r\nexport default class DescMain extends React.Component {\r\n @observable description: string;\r\n @observable init: boolean = false;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n makeObservable(this);\r\n }\r\n\r\n abForceUpdate = async () => this.forceUpdate();\r\n\r\n componentDidMount() {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n }\r\n\r\n @computed get hide_dynamic(): boolean {\r\n if (!s.ready) {\r\n return false;\r\n }\r\n if (\r\n [70214, 70215, 70244, 84054].includes(s.prod.ProductID) ||\r\n ['391332'].includes(s.prod.ItemID)\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n @computed get show_doc_size(): boolean {\r\n if (!s.ready) {\r\n return false;\r\n }\r\n if (\r\n s.pcs.docWidth >= 0 &&\r\n s.pcs.docHeight >= 0 &&\r\n !s.prod.Name.includes('collage') &&\r\n s.prod.ProductTypeID != 25 &&\r\n s.prod.IsFrame\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n @computed get show_frame_size() {\r\n if (!s.ready) {\r\n return false;\r\n }\r\n if (s.prod.JF_Width > 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n @computed get show_custom_frame() {\r\n if (!s.ready) {\r\n return false;\r\n }\r\n if (s.prod.IsFrame && s.prod.ProductTypeID !== 67) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n @computed get show_smart_box() {\r\n if (!s.ready) {\r\n return false;\r\n }\r\n if (!s.ui.allow_smartbox) {\r\n return false;\r\n }\r\n if (\r\n s.prod.Shipping_BoxID <= 3 &&\r\n s.prod.IsFrame &&\r\n !s.prod.ProductTypeDisplayName.toLowerCase().includes('Photo') &&\r\n !this.hide_dynamic\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n @computed get jf_width() {\r\n if (!s.ready || !this.show_frame_size) {\r\n return false;\r\n }\r\n return util.roundF(\r\n s.prod.JF_Width - s.prod.docWidth + s.pcs.docWidth + s.pcs.moulding_extWidth * 2,\r\n 1,\r\n );\r\n }\r\n\r\n @computed get jf_height() {\r\n if (!s.ready || !this.show_frame_size) {\r\n return false;\r\n }\r\n return util.roundF(\r\n s.prod.JF_Height - s.prod.docHeight + s.pcs.docHeight + s.pcs.moulding_extWidth * 2,\r\n 1,\r\n );\r\n }\r\n\r\n componentDidUpdate() {\r\n if (!this.init) {\r\n this.init = true;\r\n collapse.init();\r\n // (document.getElementById('prod-main-desc') as HTMLElement).click();\r\n }\r\n }\r\n\r\n render() {\r\n if (!s.ready) {\r\n return;\r\n }\r\n\r\n if (\r\n s.si &&\r\n AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) &&\r\n AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1)\r\n ) {\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(s.si.default_prod_info_static, 'text/html');\r\n const ul = doc.querySelector('ul');\r\n\r\n if (ul) {\r\n const firstLi = ul.querySelector('li');\r\n\r\n if (firstLi) {\r\n ul.removeChild(firstLi);\r\n }\r\n\r\n this.description = ul.outerHTML;\r\n }\r\n }\r\n\r\n return (\r\n
\r\n this.props.toggleExpandable(e, 'prod-main-desc')}\r\n >\r\n Description\r\n
\r\n \r\n {\r\n \r\n }\r\n {!this.hide_dynamic && (\r\n
    \r\n {!s.prod.IsCAF && this.show_doc_size && (\r\n
  • {`${s.si.ph_desc_size} ${s.pcs.docWidth}\"w x ${s.pcs.docHeight}\"h`}
  • \r\n )}\r\n {!s.prod.IsCAF && this.show_frame_size && (\r\n
  • {`${s.si.ph_desc_jf_size} ${this.jf_width}\"w x ${this.jf_height}\"h`}
  • \r\n )}\r\n\r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) &&\r\n !s.prod.IsCAF &&\r\n s.prod.LevelLock &&\r\n (s.PortalID === 0 || !__portal.DisableProdDescLinks) &&\r\n !s.prod.HideLevelLock && (\r\n
  • \r\n {s.si.ph_desc_ll} \r\n
  • \r\n )}\r\n\r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) &&\r\n !s.prod.IsCAF &&\r\n s.prod.LevelLock &&\r\n (s.PortalID !== 0 || __portal.DisableProdDescLinks) &&\r\n !s.prod.HideLevelLock && (\r\n
  • {s.si.ph_desc_ll} Level-Lock Frame Hanging System!
  • \r\n )}\r\n\r\n {!s.prod.IsCAF &&\r\n this.show_smart_box &&\r\n (s.PortalID === 0 || !__portal.DisableProdDescLinks) && (\r\n
  • \r\n {s.si.ph_desc_smart} \r\n
  • \r\n )}\r\n\r\n {!s.prod.IsCAF &&\r\n this.show_smart_box &&\r\n (s.PortalID !== 0 || __portal.DisableProdDescLinks) && (\r\n
  • {s.si.ph_desc_smart} SMARTbox package
  • \r\n )}\r\n\r\n {!s.prod.IsCAF && this.show_custom_frame && s.si.StoreTypeID === 5 && (\r\n
  • This custom frame is handcrafted in the USA.
  • \r\n )}\r\n {!s.prod.IsCAF && this.show_custom_frame && s.si.StoreTypeID !== 5 && (\r\n
  • {s.si.ph_desc_custom}
  • \r\n )}\r\n {!s.prod.IsCAF &&\r\n s.prod.CustomizationMethod === 2 &&\r\n s.PortalID === 0 &&\r\n s.prod.ProductTypeID === 25 && (\r\n
  • \r\n Customize your Varsity Letter frame with{' '}\r\n \r\n Create-a-Frame\r\n \r\n
  • \r\n )}\r\n\r\n {s.prod.IsCAF && this.show_doc_size && (\r\n
  • {`${s.prod.DocType} Size: ${s.pcs.docWidth}\"w x ${s.pcs.docHeight}\"h`}
  • \r\n )}\r\n {s.prod.IsCAF && this.show_frame_size && (\r\n
  • {`Approx. Overall Frame Size: ${this.jf_width}\"w x ${this.jf_height}\"h`}
  • \r\n )}\r\n\r\n {s.prod.IsCAF &&\r\n s.prod.LevelLock &&\r\n !s.prod.HideLevelLock &&\r\n s.PortalID === 0 && (\r\n
  • \r\n Includes our easy-to-use \r\n
  • \r\n )}\r\n\r\n {s.prod.IsCAF && this.show_smart_box && s.PortalID === 0 && (\r\n
  • \r\n This frame ships in a branded \r\n
  • \r\n )}\r\n\r\n {s.prod.IsCAF && this.show_custom_frame && s.si.StoreTypeID === 5 && (\r\n
  • This custom frame is handcrafted in the USA.
  • \r\n )}\r\n {s.prod.IsCAF && this.show_custom_frame && s.si.StoreTypeID !== 5 && (\r\n
  • \r\n This custom frame is handcrafted in the USA and made-to-order.\r\n
  • \r\n )}\r\n {!s.pcs.is_caf && !util.isNullOrWhiteSpace(s.ui.item_id) && (\r\n
  • Item #: {s.ui.item_id}
  • \r\n )}\r\n {!s.pcs.is_caf && !util.isNullOrWhiteSpace(s.ui.sku) && (\r\n
  • SKU: {s.ui.sku}
  • \r\n )}\r\n {s.prod.IsCAF &&\r\n s.prod.DYF_FrameStyleID === 10 &&\r\n s.pcs.docWidth <= 7 &&
  • Includes easel back
  • }\r\n {s.prod.IsCAF &&
  • {s.prod.DYF_FrameStyleName}
  • }\r\n {s.prod.IsCAF &&
  • {s.ui.title_moulding} Moulding
  • }\r\n {s.prod.IsCAF &&
  • {s.ui.title_mat1} Top Mat
  • }\r\n {s.prod.IsCAF && s.pcs.mat2_id > 0 && (\r\n
  • {s.ui.title_mat2} Inner Accent
  • \r\n )}\r\n {s.prod.IsCAF && s.pcs.insignia_id > 0 && (\r\n
  • {s.ui.title_insignia} Insignia
  • \r\n )}\r\n {s.prod.IsCAF && s.pcs.lino_id > 0 && (\r\n
  • {s.pcs.lino_base_name} Embossed Text
  • \r\n )}\r\n {s.prod.IsCAF && s.pcs.ep_id > 0 &&
  • Engraved Plate
  • }\r\n {s.prod.IsCAF && (\r\n
  • \r\n {s.pcs.is_horizontal ? 'Horizontal' : 'Vertical'} Orientation\r\n
  • \r\n )}\r\n {s.prod.IsCAF && s.pcs.glass_id > 1 && (\r\n
  • \r\n {s.ui.name_glass}{' '}\r\n {s.prod.AllowGlassID1 === 2 || s.pcs.use_plexi\r\n ? 'Plexiglass'\r\n : 'Glass'}\r\n
  • \r\n )}\r\n
\r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction} from 'mobx';\r\nimport * as data from '../data';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport ModalSimple from '../../global/modal-simple';\r\nimport * as emitter from '../../global/emitter';\r\nimport AbTestStore, {ABTestKeys} from '../../global/store/ab-test.store';\r\n\r\ndeclare var __portal: IPortalSettings;\r\n\r\ninterface IDocSize {\r\n i: number;\r\n w: string;\r\n h: string;\r\n}\r\n\r\n@observer\r\nexport default class DocSize extends React.Component {\r\n doc_sizes: IDocSize[] = [\r\n {i: 0, h: '6.0', w: '8.0'},\r\n {i: 1, h: '7.0', w: '9.0'},\r\n {i: 2, h: '8.0', w: '10.0'},\r\n {i: 3, h: '8.5', w: '11.0'},\r\n {i: 4, h: '10.0', w: '12.0'},\r\n {i: 5, h: '11.0', w: '14.0'},\r\n {i: 6, h: '12.0', w: '16.0'},\r\n {i: 7, h: '13.0', w: '17.0'},\r\n {i: 8, h: '14.0', w: '18.0'},\r\n {i: 9, h: '16.0', w: '20.0'},\r\n {i: 10, h: '18.0', w: '22.0'},\r\n {i: 11, h: '20.0', w: '24.0'},\r\n ];\r\n\r\n doc_sizes_photo: IDocSize[] = [\r\n {i: 0, h: '5.0', w: '7.0'},\r\n {i: 1, h: '8.0', w: '10.0'},\r\n ];\r\n\r\n doc_sizes_varsity: IDocSize[] = [\r\n {i: 0, h: '8.0', w: '9.25'},\r\n {i: 1, h: '10.0', w: '12.0'},\r\n ];\r\n\r\n constructor(props) {\r\n super(props);\r\n this.changeDocSize = this.changeDocSize.bind(this);\r\n this.changeOrientation = this.changeOrientation.bind(this);\r\n this.changeDYF = this.changeDYF.bind(this);\r\n makeObservable(this);\r\n }\r\n\r\n abForceUpdate = async () => this.forceUpdate();\r\n\r\n componentDidMount(): void {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n }\r\n\r\n @action\r\n changeDocSize = async (e: React.ChangeEvent) => {\r\n e.preventDefault();\r\n runInAction(() => {\r\n let dw: IDocSize;\r\n if (s.prod.DYF_FrameStyleID === 10) {\r\n dw = this.doc_sizes_photo[parseInt(e.target.value, 10)];\r\n } else if (s.prod.DYF_FrameStyleID === 4) {\r\n dw = this.doc_sizes_varsity[parseInt(e.target.value, 10)];\r\n } else {\r\n dw = this.doc_sizes[parseInt(e.target.value, 10)];\r\n }\r\n const _w: number = parseFloat(dw.w);\r\n const _h: number = parseFloat(dw.h);\r\n\r\n // console.log('w', _w);\r\n // console.log('h', _h);\r\n // console.log('s.pcs.is_horizontal', s.pcs.is_horizontal);\r\n\r\n s.pcs.docWidth = _w;\r\n s.pcs.docHeight = _h;\r\n if (s.pcs.is_horizontal && s.pcs.docWidth < s.pcs.docHeight) {\r\n const newHeight = s.pcs.docWidth;\r\n s.pcs.docWidth = s.pcs.docHeight;\r\n s.pcs.docHeight = newHeight;\r\n // console.log('swap 1');\r\n } else if (!s.pcs.is_horizontal && s.pcs.docWidth > s.pcs.docHeight) {\r\n const newHeight = s.pcs.docWidth;\r\n s.pcs.docWidth = s.pcs.docHeight;\r\n s.pcs.docHeight = newHeight;\r\n // console.log('swap 2');\r\n }\r\n s.pcs.docWidth2 = s.pcs.docWidth;\r\n s.pcs.docHeight2 = s.pcs.docHeight;\r\n\r\n if (s.prod.DYF_FrameStyleID !== 2) {\r\n s.pcs.docWidth2 = -1;\r\n s.pcs.docHeight2 = -1;\r\n }\r\n\r\n if (s.prod.IsCAF) {\r\n if (\r\n s.prod.DYF_FrameStyleID === 2 ||\r\n s.prod.DYF_FrameStyleID === 7 ||\r\n s.prod.DYF_FrameStyleID === 8 ||\r\n s.prod.DYF_FrameStyleID === 6\r\n ) {\r\n if (s.pcs.docWidth > 9 && s.pcs.docHeight > 12) {\r\n s.pcs.use_plexi = true;\r\n } else if (s.pcs.docWidth > 12 && s.pcs.docHeight > 9) {\r\n s.pcs.use_plexi = true;\r\n } else {\r\n s.pcs.use_plexi = false;\r\n }\r\n } else if (s.prod.DYF_FrameStyleID === 3 || s.prod.DYF_FrameStyleID === 5) {\r\n if (s.pcs.docWidth > 11 && s.pcs.docHeight > 14) {\r\n s.pcs.use_plexi = true;\r\n } else if (s.pcs.docWidth > 14 && s.pcs.docHeight > 11) {\r\n s.pcs.use_plexi = true;\r\n } else {\r\n s.pcs.use_plexi = false;\r\n }\r\n } else {\r\n if (s.pcs.docWidth > 14 && s.pcs.docHeight > 18) {\r\n s.pcs.use_plexi = true;\r\n } else if (s.pcs.docWidth > 18 && s.pcs.docHeight > 14) {\r\n s.pcs.use_plexi = true;\r\n } else {\r\n s.pcs.use_plexi = false;\r\n }\r\n }\r\n }\r\n\r\n if (s.prod.ForcePlexiglass) {\r\n s.pcs.use_plexi = true;\r\n }\r\n\r\n s.ui.doRender = true;\r\n s.ui.update_pricing = true;\r\n s.pulse();\r\n });\r\n };\r\n\r\n @action\r\n changeOrientation = async (e: React.ChangeEvent) => {\r\n runInAction(() => {\r\n s.pcs.is_horizontal = !s.pcs.is_horizontal;\r\n s.prod.IsHorizontal = s.pcs.is_horizontal;\r\n s.prod.OrientationHorizontal = s.pcs.is_horizontal;\r\n if (s.pcs.is_horizontal && s.pcs.docWidth < s.pcs.docHeight) {\r\n const newHeight = s.pcs.docWidth;\r\n s.pcs.docWidth = s.pcs.docHeight;\r\n s.pcs.docHeight = newHeight;\r\n } else if (!s.pcs.is_horizontal && s.pcs.docWidth > s.pcs.docHeight) {\r\n const newHeight = s.pcs.docWidth;\r\n s.pcs.docWidth = s.pcs.docHeight;\r\n s.pcs.docHeight = newHeight;\r\n }\r\n s.pcs.docWidth2 = s.pcs.docWidth;\r\n s.pcs.docHeight2 = s.pcs.docHeight;\r\n s.ui.doRender = true;\r\n s.ui.update_pricing = true;\r\n s.pulse();\r\n });\r\n };\r\n\r\n @action\r\n changeDYF = async (e: React.ChangeEvent) => {\r\n runInAction(() => {\r\n // console.log(e.target.value);\r\n util.openLink(e.target.value);\r\n });\r\n };\r\n\r\n render() {\r\n if (!s.pcs.is_caf) {\r\n if (s.pcs.docWidth <= 0) {\r\n return;\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n

\r\n All of our frames are custom made to order so we can very easily\r\n create a frame that fits your specific Document size.\r\n

\r\n

\r\n Please call our customer service department at{' '}\r\n {__portal.CustomerServicePhone} or\r\n email{' '}\r\n \r\n {__portal.CustomerServiceEmail}\r\n {' '}\r\n and provide the Item # of the frame you would like to purchase along\r\n with any customizations and the size and orientation of your\r\n Document.\r\n

\r\n

\r\n We will provide a price and answer any questions you may have about\r\n this custom frame.\r\n

\r\n
\r\n \r\n
\r\n
\r\n \r\n {s.ui.doc_type} Size:{' '}\r\n \r\n {s.pcs.docWidth}\"w x {s.pcs.docHeight}\"h{' '}\r\n util.modal('modal-doc-size')}\r\n aria-label=\"View information about document size for this product\"\r\n aria-haspopup=\"dialog\"\r\n aria-controls=\"modal-doc-size\"\r\n />\r\n
\r\n
\r\n util.modal('modal-doc-size-diff')}\r\n role=\"button\"\r\n tabIndex={0}\r\n aria-label=\"View information about different document sizes\"\r\n aria-haspopup=\"dialog\"\r\n aria-controls=\"modal-doc-size-diff\"\r\n >\r\n Different Size?\r\n \r\n
\r\n {s.si != null && s.si.Price_Retail != null && !s.isRetail && (\r\n
Retail: {util.currency(s.si.Price_Retail)}
\r\n )}\r\n
\r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) &&
}\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n \r\n
\r\n

\r\n No worries! We'll ask for the exact size once you Add To Cart. In\r\n the meantime, we'll use the 'Up to' size to price your frame.\r\n

\r\n

\r\n All of our frames are custom made to order so we can very easily\r\n create a frame that fits your specific Document size.\r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n {s.prod.DocType} Size & Orientation{' '}\r\n util.modal('modal-doc-size-caf')}\r\n role=\"button\"\r\n aria-label=\"View information about document size for this product\"\r\n />\r\n
\r\n \r\n {s.prod.DYF_FrameStyleID !== 10 &&\r\n s.prod.DYF_FrameStyleID !== 4 &&\r\n this.doc_sizes.map((m, i) => (\r\n \r\n {s.pcs.is_horizontal\r\n ? `Up to ${m.w}\"w x ${m.h}\"h`\r\n : `Up to ${m.h}\"w x ${m.w}\"h`}\r\n \r\n ))}\r\n {s.prod.DYF_FrameStyleID === 10 &&\r\n this.doc_sizes_photo.map((m, i) => (\r\n \r\n {s.pcs.is_horizontal\r\n ? `Up to ${m.w}\"w x ${m.h}\"h`\r\n : `Up to ${m.h}\"w x ${m.w}\"h`}\r\n \r\n ))}\r\n {s.prod.DYF_FrameStyleID === 4 &&\r\n this.doc_sizes_varsity.map((m, i) => (\r\n \r\n {s.pcs.is_horizontal\r\n ? `Up to ${m.w}\"w x ${m.h}\"h`\r\n : `Up to ${m.h}\"w x ${m.w}\"h`}\r\n \r\n ))}\r\n \r\n \r\n \r\n Horizontal\r\n \r\n \r\n Vertical\r\n \r\n \r\n
\r\n {s.prod && s.prod.dyfList && (\r\n
\r\n
Frame Style
\r\n \r\n {s.prod.dyfList.map((m, i) => (\r\n \r\n {m.title}\r\n \r\n ))}\r\n \r\n
\r\n )}\r\n \r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
\r\n )}\r\n \r\n );\r\n }\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction} from 'mobx';\r\nimport * as data from '../data';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport ModalSimple from '../../global/modal-simple';\r\nimport AbTestStore, {ABTestKeys} from '../../global/store/ab-test.store';\r\nimport * as emitter from '../../global/emitter';\r\n\r\n@observer\r\nexport default class EngravedPlate extends React.Component {\r\n @observable ep1: string;\r\n @observable ep2: string;\r\n @observable ep3: string;\r\n @observable collapsed: boolean = true;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.collapseToggle = this.collapseToggle.bind(this);\r\n this.ep_color_change = this.ep_color_change.bind(this);\r\n this.ep_add = this.ep_add.bind(this);\r\n this.ep_remove = this.ep_remove.bind(this);\r\n this.ep_change_text = this.ep_change_text.bind(this);\r\n makeObservable(this);\r\n }\r\n\r\n abForceUpdate = async () => this.forceUpdate();\r\n\r\n componentDidMount(): void {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n }\r\n\r\n @action\r\n collapseToggle = async () => {\r\n runInAction(() => {\r\n this.collapsed = !this.collapsed;\r\n });\r\n };\r\n\r\n @computed get canCollapse(): boolean {\r\n return s.pcs.is_caf || window.innerWidth < 960;\r\n }\r\n\r\n @action\r\n ep_color_change = async (e: any) => {\r\n runInAction(() => {\r\n s.pcs.ep_id_view = parseInt(e.target.value, 10);\r\n if (s.pcs.ep_id > 0) {\r\n s.pcs.ep_id = s.pcs.ep_id_view;\r\n s.ui.doRender = true;\r\n s.ui.update_pricing = true;\r\n s.pulse();\r\n }\r\n });\r\n };\r\n\r\n @action\r\n ep_add = async (e: any) => {\r\n runInAction(() => {\r\n s.pcs.ep_id = s.pcs.ep_id_view;\r\n s.ui.doRender = true;\r\n s.pcs.ep1 = this.ep1;\r\n s.pcs.ep2 = this.ep2;\r\n s.pcs.ep3 = this.ep3;\r\n s.pcs.lino_base_name = '';\r\n s.pcs.lino_id = -1;\r\n s.ui.update_pricing = true;\r\n\r\n if (s.pcs.ep_id === 1099) {\r\n s.pcs.ins_black_allowed = true;\r\n s.pcs.ins_gold_allowed = true;\r\n s.pcs.ins_silver_allowed = true;\r\n } else if (s.pcs.ep_id === 39) {\r\n s.pcs.ins_black_allowed = false;\r\n s.pcs.ins_gold_allowed = false;\r\n s.pcs.ins_silver_allowed = true;\r\n } else if (s.pcs.ep_id === 37) {\r\n s.pcs.ins_black_allowed = false;\r\n s.pcs.ins_gold_allowed = true;\r\n s.pcs.ins_silver_allowed = false;\r\n }\r\n\r\n s.pulse();\r\n });\r\n };\r\n\r\n @action\r\n ep_remove = async (e: any) => {\r\n runInAction(() => {\r\n if (s.pcs.ep_id > 0) {\r\n s.pcs.ep_id = 0;\r\n s.ui.update_pricing = true;\r\n s.ui.doRender = true;\r\n s.pulse();\r\n }\r\n });\r\n };\r\n\r\n @action\r\n ep_change_text = async () => {\r\n runInAction(() => {\r\n s.pcs.ep1 = this.ep1;\r\n s.pcs.ep2 = this.ep2;\r\n s.pcs.ep3 = this.ep3;\r\n });\r\n };\r\n\r\n @computed get getColorText(): string {\r\n return s.pcs.ep_id <= 0\r\n ? ''\r\n : s.pcs.ep_id === 37\r\n ? 'Gold'\r\n : s.pcs.ep_id === 1099\r\n ? 'Black'\r\n : 'Silver';\r\n }\r\n\r\n @computed get getColorTextLower(): string {\r\n if (s.ui.name_moulding.toLowerCase().includes('silver') || !s.pcs.ins_gold_allowed) {\r\n return s.pcs.ep_id <= 0\r\n ? 'silver'\r\n : s.pcs.ep_id === 37\r\n ? 'gold'\r\n : s.pcs.ep_id === 1099\r\n ? 'black'\r\n : 'silver';\r\n } else {\r\n return s.pcs.ep_id <= 0\r\n ? 'gold'\r\n : s.pcs.ep_id === 37\r\n ? 'gold'\r\n : s.pcs.ep_id === 1099\r\n ? 'black'\r\n : 'silver';\r\n }\r\n }\r\n\r\n @computed get getImage(): string {\r\n return s.pcs.ep_id === 37\r\n ? 'https://i.diplomaframe.com/images/entities/engravedplate/ep_gold_original_engravedplate.png'\r\n : s.pcs.ep_id === 1099\r\n ? 'https://i.diplomaframe.com/images/entities/engravedplate/ep_black_original_engravedplate.png'\r\n : 'https://i.diplomaframe.com/images/entities/engravedplate/ep_silver_original_engravedplate.png';\r\n }\r\n\r\n render() {\r\n if (!s.ui.show_cust || !s.prod.EngravedPlateStatusID || s.prod.EngravedPlateStatusID < 1) {\r\n return;\r\n }\r\n\r\n const canCollapse =\r\n this.canCollapse && !AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1);\r\n\r\n return (\r\n \r\n \r\n
\r\n
    \r\n {s.prod.EngravedPlateStatusID === 0 && (\r\n
  • This product does not allow an engraved plate
  • \r\n )}\r\n {s.prod.EngravedPlateStatusID === 1 && (\r\n
  • This product requires a gold engraved plate
  • \r\n )}\r\n {s.prod.EngravedPlateStatusID === 2 && (\r\n
  • This product requires a silver engraved plate
  • \r\n )}\r\n {s.prod.EngravedPlateStatusID === 3 && (\r\n
  • This product allows a gold engraved plate
  • \r\n )}\r\n {s.prod.EngravedPlateStatusID === 4 && (\r\n
  • This product allows a silver engraved plate
  • \r\n )}\r\n {s.prod.EngravedPlateStatusID === 5 && (\r\n
  • This product allows a gold or silver engraved plate
  • \r\n )}\r\n {s.prod.EngravedPlateStatusID === 6 && (\r\n
  • This product requires a black engraved plate
  • \r\n )}\r\n {s.prod.EngravedPlateStatusID === 7 && (\r\n
  • This product allows a black engraved plate
  • \r\n )}\r\n
  • Enter up to 30 characters per line
  • \r\n
  • You may have 1, 2, or 3 lines centered on the engraved plate
  • \r\n
  • Dimensions: 3\" X 1\"
  • \r\n
  • \r\n If you do not provide text, a plate will not be included with your\r\n order\r\n
  • \r\n
\r\n
\r\n Example engraved plate:\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n Engraved Plate: \r\n {this.getColorText}\r\n
\r\n
\r\n\r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n \r\n
\r\n
\r\n \r\n Engraved Plate\r\n
\r\n
{this.getColorText}
\r\n
\r\n
\r\n {s.pcs.ep_id > 0 && (\r\n \r\n )}\r\n
\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n
\r\n
\r\n {s.prod.EngravedPlateLines > 0 && (\r\n
\r\n {\r\n this.ep1 = e.target.value;\r\n this.ep_change_text();\r\n }}\r\n />\r\n
\r\n )}\r\n {s.prod.EngravedPlateLines > 1 && (\r\n
\r\n {\r\n this.ep2 = e.target.value;\r\n this.ep_change_text();\r\n }}\r\n />\r\n
\r\n )}\r\n {s.prod.EngravedPlateLines > 2 && (\r\n
\r\n {\r\n this.ep3 = e.target.value;\r\n this.ep_change_text();\r\n }}\r\n />\r\n
\r\n )}\r\n
\r\n\r\n
\r\n {s.prod.EngravedPlateStatusID === 5 && (\r\n
\r\n \r\n
\r\n )}\r\n {s.prod.EngravedPlateStatusID !== 1 &&\r\n s.prod.EngravedPlateStatusID !== 2 &&\r\n s.prod.EngravedPlateStatusID !== 6 && (\r\n
\r\n {(!s.pcs.ep_id || s.pcs.ep_id <= 0) && (\r\n \r\n Add Engraved Plate\r\n \r\n )}\r\n {s.pcs.ep_id > 0 && (\r\n \r\n Remove Engraved Plate\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n\r\n util.modal('modal-sample-ep')}\r\n aria-label=\"View more information about engraved plates\"\r\n aria-haspopup=\"dialog\"\r\n aria-controls='modal-sample-ep'\r\n tabIndex={0}\r\n >\r\n View information about engraved plates\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction, toJS} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport ModalSimple from '../../global/modal-simple';\r\nimport * as emitter from '../../global/emitter';\r\nimport AbTestStore, {ABTestKeys} from '../../global/store/ab-test.store';\r\n\r\ndeclare var __fast_ship: boolean;\r\ndeclare const window: any;\r\n\r\n@observer\r\nexport default class Glass extends React.Component {\r\n @observable collapsed: boolean = true;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.save = this.save.bind(this);\r\n this.collapseToggle = this.collapseToggle.bind(this);\r\n makeObservable(this);\r\n }\r\n\r\n abForceUpdate = async () => this.forceUpdate();\r\n\r\n componentDidMount() {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n }\r\n\r\n @action\r\n collapseToggle = async () => {\r\n runInAction(() => {\r\n this.collapsed = !this.collapsed;\r\n });\r\n };\r\n\r\n @action\r\n save = async (id: number) => {\r\n runInAction(() => {\r\n s.ui.update_pricing = true;\r\n s.pcs.glass_id = id;\r\n s.pulse();\r\n });\r\n };\r\n\r\n @computed get canCollapse(): boolean {\r\n return s.pcs.is_caf || window.innerWidth < 960;\r\n }\r\n\r\n render() {\r\n if (!s.ready || !s.ui.show_cust || !s.prod || !s.si || !s.si.IsGlassAllowed) {\r\n return;\r\n }\r\n if (!s.prod.IsFrame) {\r\n return;\r\n }\r\n if (s.prod.ProductID === 70214) {\r\n return;\r\n }\r\n if (s.prod.ProductID === 84054) {\r\n return;\r\n }\r\n\r\n const canCollapse =\r\n this.canCollapse && !AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1);\r\n const standardGlassTitle = (id: number = s.pcs.glass_id) =>\r\n id === 1 && AbTestStore.ABIsVariant(ABTestKeys.product_glass, 1) && 'Basic';\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n {s.prod.AllowGlassID1 === 2 || s.pcs.use_plexi ? 'Plexi' : 'Clear'}{' '}\r\n (Standard{' '}\r\n {s.prod.AllowGlassID1 === 2 || s.pcs.use_plexi\r\n ? 'Plexiglass'\r\n : 'Glass'}\r\n )\r\n
\r\n

\r\n Clear standard{' '}\r\n {s.prod.AllowGlassID1 === 2 || s.pcs.use_plexi\r\n ? 'plexiglass'\r\n : 'glass'}{' '}\r\n blocks 45% of UV light. Use when UV exposure is not a concern.\r\n

\r\n {!AbTestStore.ABIsVariant(ABTestKeys.product_glass, 1) &&\r\n s.prod.AllowGlassID2 > 0 && (\r\n
\r\n
Reflection Control
\r\n

\r\n Matte finish to reduce glare and blocks 45% of UV light.\r\n Diminishes unwanted glare.\r\n

\r\n
\r\n )}\r\n {!AbTestStore.ABIsVariant(ABTestKeys.product_glass, 1) &&\r\n s.prod.AllowGlassID3 > 0 && (\r\n
\r\n
Conservation UV Protection
\r\n

\r\n Blocks up to 99% of UV light. Offers maximum protection\r\n against fading.\r\n

\r\n
\r\n )}\r\n {s.prod.AllowGlassID4 > 0 && (\r\n
\r\n
\r\n Conservation UV + Reflection Control\r\n
\r\n

\r\n Blocks up to 99% of UV light, matte finish reduces glare.\r\n Offers maximum protection against fading and unwanted glare.\r\n

\r\n
\r\n )}\r\n {s.prod &&\r\n s.prod.IsFrame &&\r\n s.prod.ProductID !== 84054 &&\r\n s.prod.ProductID !== 70214 &&\r\n s.prod.AllowGlassID2 > 0 && (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n {(!s.prod.AllowGlassID2 || s.prod.AllowGlassID2 < 1) && (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n \r\n \r\n
\r\n
Why does this frame have plexiglass?
\r\n
\r\n Due to the large size of this frame, we use professional-grade\r\n plexiglass to reduce the possibility of breakage during shipping.\r\n Our high-quality plexi features the same level of document\r\n protection as our standard clear glass, and we also offer upgraded\r\n plexi options for added protection.\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n Glass: \r\n \r\n {s.prod.AllowGlassID1 === 2 || s.pcs.use_plexi\r\n ? 'Plexiglass '\r\n : ''}\r\n {standardGlassTitle() || s.ui.name_glass}\r\n \r\n
\r\n
\r\n\r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n \r\n
\r\n
\r\n \r\n Glass\r\n
\r\n
\r\n {standardGlassTitle() || s.ui.name_glass}\r\n
\r\n
\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {s.glass\r\n .filter(\r\n m =>\r\n ((s.prod.IsCAF && m.id !== 2) ||\r\n m.id === 1 ||\r\n (m.id === 2 && s.prod.AllowGlassID2 > 0) ||\r\n (m.id === 3 && s.prod.AllowGlassID3 > 0) ||\r\n (m.id === 4 && s.prod.AllowGlassID4 > 0)) &&\r\n (!AbTestStore.ABIsVariant(\r\n ABTestKeys.product_glass,\r\n 1,\r\n ) ||\r\n (AbTestStore.ABIsVariant(\r\n ABTestKeys.product_glass,\r\n 1,\r\n ) &&\r\n m.id !== 2 &&\r\n m.id !== 3)),\r\n )\r\n .map(m => {\r\n if (\r\n !AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1)\r\n ) {\r\n return (\r\n this.save(m.id)}\r\n role=\"option\"\r\n tabIndex={0}\r\n >\r\n
\r\n {standardGlassTitle(m.id) || m.title}{' '}\r\n {m.price}\r\n {s.__fast_ship_orig &&\r\n s.isRetail &&\r\n m.id === 1 && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n );\r\n } else if (\r\n AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1)\r\n ) {\r\n return (\r\n this.save(m.id)}\r\n role=\"option\"\r\n tabIndex={0}\r\n >\r\n
\r\n \r\n {standardGlassTitle(m.id) || m.title}{' '}\r\n \r\n {m.price}\r\n {s.__fast_ship_orig &&\r\n s.isRetail &&\r\n m.id === 1 && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n );\r\n }\r\n })}\r\n\r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
\r\n {(s.prod.AllowGlassID1 === 2 || s.pcs.use_plexi) && (\r\n util.modal('modal-plexi-info')}\r\n tabIndex={0}\r\n aria-haspopup=\"dialog\"\r\n aria-controls=\"modal-plexi-info\"\r\n >\r\n Why does this frame have plexiglass?{' '}\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n util.modal('modal-glass')}\r\n aria-label=\"Open information about glass options\"\r\n role=\"button\"\r\n tabIndex={0}\r\n aria-haspopup=\"dialog\"\r\n aria-controls=\"modal-glass\"\r\n >\r\n Learn more\r\n {' '}\r\n about our document protection options.\r\n
\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
\r\n )}\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction} from 'mobx';\r\nimport * as data from '../data';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport ModalSimple from '../../global/modal-simple';\r\nimport * as emitter from '../../global/emitter';\r\nimport AbTestStore, {ABTestKeys} from '../../global/store/ab-test.store';\r\n\r\ndeclare var __portal: IPortalSettings;\r\n\r\n@observer\r\nexport default class GradYear extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.save = this.save.bind(this);\r\n }\r\n\r\n abForceUpdate = async () => this.forceUpdate();\r\n\r\n componentDidMount(): void {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n }\r\n\r\n @action\r\n save = async (e: React.ChangeEvent) => {\r\n runInAction(() => {\r\n s.pcs.grad_year = e.target.value;\r\n });\r\n };\r\n\r\n render() {\r\n if (!s.pcs.is_caf || !s.ui.show_cust || !s.ui.show_grad_year) {\r\n return (\r\n \r\n \r\n
\r\n
Why Do You Need My Graduation Year?
\r\n

\r\n Knowing your class year will ensure we custom-build your frame to\r\n the correct specifications. Over time, Institutions may change the\r\n dimensions of their certificates, so knowing the exact year you\r\n graduated will ensure you receive the correct frame size. Rest\r\n assured, the class year you provide is for reference only and will\r\n not appear anywhere on your diploma frame.\r\n

\r\n
Any questions?
\r\n

\r\n Reach out to our friendly customer service team at\r\n {__portal.CustomerServiceEmail}, through our Live Chat service, or\r\n you can reach us M-F 8:30 am - 5 pm Eastern at{' '}\r\n {__portal.CustomerServicePhone}.\r\n

\r\n
\r\n \r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
\r\n \r\n Graduation Year:\r\n \r\n \r\n \r\n util.modal('modal-grad-year')}\r\n aria-label=\"Open information about the graduation year for this product\"\r\n aria-haspopup=\"dialog\"\r\n aria-controls=\"modal-grad-year\"\r\n />\r\n \r\n (if available)\r\n \r\n
\r\n \r\n )}\r\n\r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n \r\n
\r\n \r\n Graduation Year (if available):\r\n \r\n util.modal('modal-grad-year')}\r\n aria-label=\"Open information about the graduation year for this product\"\r\n aria-haspopup=\"dialog\"\r\n aria-controls=\"modal-grad-year\"\r\n />\r\n
\r\n \r\n \r\n )}\r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
\r\n )}\r\n \r\n );\r\n } else {\r\n return
;\r\n }\r\n }\r\n}\r\n","import React from 'react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport ModalSimple from '../../global/modal-simple';\r\nimport axios from 'axios';\r\nimport ReactCrop, {centerCrop, Crop, makeAspectCrop, PixelCrop} from 'react-image-crop';\r\nimport 'react-image-crop/dist/ReactCrop.css';\r\nimport {action, computed, makeObservable, observable, runInAction} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\n\r\nconst centerAspectCrop = (width: number, height: number, aspect: number) => {\r\n return centerCrop(\r\n makeAspectCrop(\r\n {\r\n unit: '%',\r\n width: 100,\r\n },\r\n aspect,\r\n width,\r\n height,\r\n ),\r\n width,\r\n height,\r\n );\r\n};\r\n\r\ndeclare var __fiu: string;\r\n\r\ninterface IImageResult {\r\n hash: string;\r\n w: number;\r\n h: number;\r\n}\r\n\r\n@observer\r\nexport default class ImageUploadCopy extends React.Component {\r\n @observable file: File;\r\n @observable clicked: boolean;\r\n @observable reso_level: number;\r\n @observable imgSrc: string;\r\n @observable aspect: number;\r\n @observable crop: Crop | undefined;\r\n @observable completedCrop: PixelCrop;\r\n @observable imgRef: React.RefObject = React.createRef();\r\n\r\n constructor(props) {\r\n super(props);\r\n this.clicked = false;\r\n this.reso_level = 0;\r\n this.save = this.save.bind(this);\r\n this.centerCrop = this.centerCrop.bind(this);\r\n this.selectFile = this.selectFile.bind(this);\r\n this.createCroppedImage = this.createCroppedImage.bind(this);\r\n makeObservable(this);\r\n\r\n document.addEventListener('modal-closed', (event: CustomEvent) => {\r\n try {\r\n if (event && event.detail === 'modal-image-crop') {\r\n runInAction(() => {\r\n const fileInput: HTMLInputElement | null =\r\n document.querySelector('#fileInput');\r\n if (fileInput) {\r\n fileInput.value = '';\r\n }\r\n });\r\n }\r\n } catch (mcerr) {\r\n console.error(mcerr);\r\n }\r\n });\r\n }\r\n\r\n @computed get canUpload(): boolean {\r\n return this.clicked;\r\n }\r\n\r\n @action\r\n async save(event: React.FormEvent) {\r\n event.preventDefault();\r\n this.reso_level = 0;\r\n s.ui.image_uploaded = false;\r\n s.ui.image_uploading = true;\r\n s.ui.image_uploaded_msg = '';\r\n s.ui.processing_title = 'Image Uploading';\r\n s.ui.processing_text = 'Please stay on this page until your image is done uploading.';\r\n\r\n const url = '/api/img/event';\r\n const formData = new FormData(event.currentTarget);\r\n formData.append('file', this.file);\r\n formData.append('fileName', this.file.name);\r\n formData.append('doc_width', s.pcs.docWidth.toString());\r\n formData.append('doc_height', s.pcs.docHeight.toString());\r\n formData.append('fiu', __fiu);\r\n\r\n const token: HTMLInputElement | null = document.querySelector(\r\n 'input[name=\"__RequestVerificationToken\"]',\r\n );\r\n const config = {\r\n headers: {\r\n RequestVerificationToken: token?.value,\r\n },\r\n };\r\n\r\n axios\r\n .post(url, formData, config)\r\n .then(response => {\r\n var ir: IImageResult = response.data;\r\n console.log(ir);\r\n\r\n runInAction(() => {\r\n if (ir.hash.includes('error') || ir.hash.length !== 32) {\r\n s.ui.image_uploaded = false;\r\n s.ui.image_uploaded_msg =\r\n 'Error uploading image. Please try again or contact customer service.';\r\n this.reso_level = 0;\r\n console.log('img error', s.ui.image_uploaded_msg);\r\n } else {\r\n s.ppi_w_actual = ir.w;\r\n s.ppi_h_actual = ir.h;\r\n\r\n if (this.reso_level < 2) {\r\n console.log('showing');\r\n s.ui.image_uploaded = true;\r\n s.ui.image_uploaded_msg = '';\r\n s.pcs.image_upload_hash3 = ir.hash;\r\n s.pcs.override_d1_img = `https://chc-upload.s3.amazonaws.com/d/${ir.hash}.png`;\r\n s.ui.update_pricing = true;\r\n }\r\n }\r\n this.forceUpdate();\r\n s.ui.image_uploading = false;\r\n });\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n s.ui.image_uploading = false;\r\n })\r\n .finally(() => {\r\n s.ui.image_uploading = false;\r\n s.ui.doRender = true;\r\n s.ui.update_pricing = true;\r\n s.pulse();\r\n this.forceUpdate();\r\n });\r\n }\r\n\r\n @action\r\n createCroppedImage(crop: PixelCrop) {\r\n if (this.imgRef.current && crop.width && crop.height) {\r\n const {naturalWidth, naturalHeight, width, height} = this.imgRef.current;\r\n const canvas = document.createElement('canvas');\r\n const scaleX = naturalWidth / width;\r\n const scaleY = naturalHeight / height;\r\n canvas.width = crop.width;\r\n canvas.height = crop.height;\r\n const ctx = canvas.getContext('2d');\r\n\r\n if (!ctx) {\r\n return;\r\n }\r\n\r\n ctx.drawImage(\r\n this.imgRef.current,\r\n crop.x * scaleX,\r\n crop.y * scaleY,\r\n crop.width * scaleX,\r\n crop.height * scaleY,\r\n 0,\r\n 0,\r\n crop.width,\r\n crop.height,\r\n );\r\n\r\n canvas.toBlob(blob => {\r\n if (!blob) {\r\n return;\r\n }\r\n this.file = new File([blob], this.file.name, {type: this.file.type});\r\n });\r\n this.completedCrop = crop;\r\n }\r\n }\r\n\r\n\r\n @action\r\n clear = async event => {\r\n event.preventDefault();\r\n s.ui.image_uploaded = false;\r\n s.ui.image_uploaded_msg = '';\r\n s.pcs.image_upload_hash3 = '';\r\n s.pcs.override_d1_img = '';\r\n s.ui.image_uploading = false;\r\n this.reso_level = 0;\r\n s.ui.image_uploading = false;\r\n s.ui.doRender = true;\r\n s.ui.update_pricing = true;\r\n\r\n runInAction(() => {\r\n s.ui.image_uploaded = false;\r\n s.ui.image_uploaded_msg = '';\r\n s.pcs.image_upload_hash3 = '';\r\n s.pcs.override_d1_img = '';\r\n s.ui.image_uploading = false;\r\n this.reso_level = 0;\r\n s.ui.image_uploading = false;\r\n s.ui.doRender = true;\r\n s.ui.update_pricing = true;\r\n s.pulse();\r\n this.forceUpdate();\r\n });\r\n\r\n s.pulse();\r\n this.forceUpdate();\r\n };\r\n\r\n\r\n @action\r\n selectFile(e: React.ChangeEvent) {\r\n if (e.target.files && e.target.files.length) {\r\n this.file = e.target.files[0];\r\n this.imgSrc = '';\r\n this.clicked = true;\r\n util.modal('modal-image-crop');\r\n runInAction(() => {\r\n this.clicked = true;\r\n this.forceUpdate();\r\n });\r\n this.crop = undefined;\r\n const reader = new FileReader();\r\n reader.addEventListener('load', () =>\r\n runInAction(() => {\r\n this.imgSrc = reader.result?.toString() || '';\r\n }),\r\n );\r\n reader.readAsDataURL(this.file);\r\n }\r\n }\r\n\r\n @action\r\n centerCrop(e: React.SyntheticEvent) {\r\n this.aspect = s.pcs.docWidth / s.pcs.docHeight;\r\n if (this.aspect) {\r\n const {width, height} = e.currentTarget;\r\n this.crop = centerAspectCrop(width, height, this.aspect);\r\n }\r\n }\r\n\r\n render() {\r\n if (!s.pcs.is_caf || !s.ui.show_cust || !s.ui.show_grad_year) {\r\n return (\r\n
\r\n
\r\n

{s.prod.DocType} Upload

\r\n
\r\n {!s.ui.image_uploaded && }\r\n {s.ui.image_uploaded && (\r\n \r\n Remove\r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n

Please crop the image first before proceeding.

\r\n
\r\n {!!this.imgSrc && (\r\n \r\n (this.crop = percentCrop)\r\n }\r\n onComplete={crop => this.createCroppedImage(crop)}\r\n crop={this.crop}\r\n aspect={this.aspect}\r\n minHeight={100}\r\n >\r\n \r\n \r\n )}\r\n \r\n {!!this.completedCrop && this.canUpload && (\r\n \r\n Upload\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n {!s.ui.image_uploaded && s.ui.image_uploaded_msg !== '' && (\r\n
\r\n
\r\n

\r\n Upload {s.prod.DocType} Image\r\n

\r\n

{s.ui.image_uploaded_msg}

\r\n
\r\n
\r\n )}\r\n\r\n {this.reso_level === 2 && (\r\n
\r\n
\r\n

\r\n Image Resolution Error\r\n

\r\n

\r\n A minimum resolution of {s.ppi_w}x{s.ppi_h} pixels is\r\n required for this frame. This baseline ensures that your\r\n photos maintain a basic level of clarity and detail when\r\n printed. For an enhanced visual experience, we strongly\r\n recommend uploading images with a resolution of at least{' '}\r\n {s.ppi_w_max}x{s.ppi_h_max} pixels. Higher resolution images\r\n allow for finer details to be captured and displayed,\r\n resulting in a more vibrant and lifelike print. The\r\n resolution of the image uploaded is {s.ppi_w_actual}x\r\n {s.ppi_h_actual}.\r\n

\r\n
\r\n
\r\n )}\r\n\r\n {this.reso_level === 1 && (\r\n
\r\n
\r\n

\r\n Image Resolution\r\n

\r\n

\r\n Your photo has the basic level of clarity and detail when\r\n printed. However, for an enhanced visual experience, we\r\n strongly recommend uploading images with a resolution of at\r\n least {s.ppi_w_max}x{s.ppi_h_max} pixels. Higher resolution\r\n images allow for finer details to be captured and displayed,\r\n resulting in a more vibrant and lifelike print. The\r\n resolution of the image uploaded is {s.ppi_w_actual}x\r\n {s.ppi_h_actual}.\r\n

\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n

\r\n Image Resolution / Size\r\n

\r\n

\r\n A minimum resolution of {s.ppi_w}x{s.ppi_h} pixels is required\r\n for this frame. This baseline ensures that your photos maintain\r\n a basic level of clarity and detail when printed. For an\r\n enhanced visual experience, we strongly recommend uploading\r\n images with a resolution of at least {s.ppi_w_max}x{s.ppi_h_max}{' '}\r\n pixels. Higher resolution images allow for finer details to be\r\n captured and displayed, resulting in a more vibrant and lifelike\r\n print.\r\n

\r\n {s.si.UploadFee > 0 && (\r\n

\r\n A printing fee of {util.currency(s.si.UploadFee)} will be\r\n added to the item upon upload.\r\n

\r\n )}\r\n
\r\n \r\n util.modal('modal-image-crop-info')}\r\n role=\"button\"\r\n aria-label=\"View information about Image Size, Cropping and Aspect Ratio\"\r\n style={{fontSize: '0.875rem'}}\r\n tabIndex={0}\r\n aria-haspopup=\"dialog\"\r\n aria-controls='modal-image-crop-info'\r\n >\r\n Image size, cropping and aspect ratio\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n } else {\r\n return
;\r\n }\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction, toJS} from 'mobx';\r\nimport * as data from '../data';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport ModalSimple from '../../global/modal-simple';\r\nimport {InsigniaCustomization} from '../i';\r\nimport * as emitter from '../../global/emitter';\r\nimport AbTestStore, {ABTestKeys} from '../../global/store/ab-test.store';\r\n\r\n@observer\r\nexport default class Insignia extends React.Component {\r\n @observable init_ins: boolean = false;\r\n @observable orig_ins_name: string = '';\r\n @observable collapsed: boolean = true;\r\n @observable collapsed_number: number = 4;\r\n @observable fpc_id: number = -1;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.initInsignia = this.initInsignia.bind(this);\r\n this.orig = this.orig.bind(this);\r\n this.save = this.save.bind(this);\r\n this.collapseToggle = this.collapseToggle.bind(this);\r\n this.changeCategory = this.changeCategory.bind(this);\r\n this.ins_remove = this.ins_remove.bind(this);\r\n if (s.pcs.is_caf) {\r\n this.fpc_id = -2;\r\n }\r\n makeObservable(this);\r\n }\r\n\r\n abForceUpdate = async () => {\r\n this.forceUpdate();\r\n this.collapsed_number = this.getCollapsedNumber();\r\n };\r\n\r\n componentDidMount(): void {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n }\r\n\r\n @action\r\n getCollapsedNumber() {\r\n if (AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1)) {\r\n return 5;\r\n } else {\r\n return 4;\r\n }\r\n }\r\n\r\n @action\r\n initInsignia = async () => {\r\n runInAction(() => {\r\n this.orig_ins_name = JSON.parse(JSON.stringify(s.prod.orig_pcs.Base_InsigniaName));\r\n this.init_ins = true;\r\n });\r\n };\r\n\r\n @action\r\n orig = async () => {\r\n runInAction(() => {\r\n s.pcs.insignia_id = s.prod.InsigniaID;\r\n s.pcs.insignia_base_name = this.orig_ins_name;\r\n s.pcs.insignia_dyf_color = 'gold';\r\n s.pcs.insignia_is_dyf = false;\r\n s.ui.update_pricing = true;\r\n s.ui.doRender = true;\r\n\r\n const m = s.prod.insignias.filter(m => m.id === s.prod.InsigniaID)[0];\r\n s.pcs.insignia_id = m.id;\r\n s.pcs.insignia_base_name = m.name;\r\n s.pcs.insignia_is_dyf = m.isCAF;\r\n s.pcs.insignia_dyf_color = m.ins_color.toLowerCase();\r\n s.ui.name_insignia = m.name.toLowerCase();\r\n s.ui.title_insignia = m.title;\r\n s.ui.doRender = true;\r\n s.ui.update_pricing = true;\r\n\r\n s.pulse();\r\n\r\n if (window.innerWidth < 1200) {\r\n const d = document.getElementById('frame-display') as HTMLDivElement;\r\n d.scrollIntoView();\r\n }\r\n });\r\n };\r\n\r\n @action\r\n save = async (d_i: number) => {\r\n // console.log(d_i);\r\n runInAction(() => {\r\n const m = s.prod.insignias.filter(m => m.id === d_i)[0];\r\n if (m.id === s.prod.InsigniaID) {\r\n this.orig();\r\n return;\r\n }\r\n s.pcs.insignia_id = m.id;\r\n s.pcs.insignia_base_name = m.name;\r\n s.pcs.insignia_is_dyf = m.isCAF;\r\n s.pcs.insignia_dyf_color = m.ins_color.toLowerCase();\r\n s.ui.name_insignia = m.name.toLowerCase();\r\n s.ui.title_insignia = m.title;\r\n s.ui.doRender = true;\r\n s.ui.update_pricing = true;\r\n s.pulse();\r\n\r\n if (window.innerWidth < 1200) {\r\n const d = document.getElementById('prod-header') as HTMLDivElement;\r\n d.scrollIntoView();\r\n }\r\n });\r\n };\r\n\r\n @action\r\n collapseToggle = async () => {\r\n runInAction(() => {\r\n this.collapsed = !this.collapsed;\r\n this.collapsed_number = this.collapsed ? this.getCollapsedNumber() : 1000;\r\n });\r\n };\r\n\r\n @action\r\n changeCategory = async (e: React.ChangeEvent) => {\r\n runInAction(() => {\r\n this.fpc_id = parseInt(e.target.value);\r\n });\r\n };\r\n\r\n @action\r\n ins_remove = async (e: any) => {\r\n runInAction(() => {\r\n s.pcs.insignia_id = -1;\r\n s.ui.title_insignia = '';\r\n s.ui.update_pricing = true;\r\n s.ui.doRender = true;\r\n s.pulse();\r\n });\r\n };\r\n\r\n @computed get canCollapse(): boolean {\r\n return s.pcs.is_caf || window.innerWidth < 960;\r\n }\r\n\r\n render() {\r\n if (!s.ui.show_cust || !s.prod || !s.prod.insignias || s.prod.insignias.length <= 1) {\r\n return;\r\n }\r\n if (!this.init_ins) {\r\n this.initInsignia();\r\n }\r\n\r\n const canCollapse =\r\n this.canCollapse && !AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Insignia: \r\n {s.ui.title_insignia}\r\n
\r\n
\r\n\r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n \r\n
\r\n
\r\n \r\n Insignia\r\n
\r\n
{s.ui.title_insignia}
\r\n
\r\n
\r\n {this.canCollapse &&\r\n this.collapsed &&\r\n s.prod.insignias\r\n .filter(m => m.id === s.pcs.insignia_id)\r\n .map((m: InsigniaCustomization, i: number) => (\r\n \r\n ))}\r\n
\r\n
\r\n \r\n )}\r\n \r\n\r\n \r\n {s.prod.ProductID !== 75593 &&\r\n s.prod.ProductID !== 75595 &&\r\n s.prod.ProductID !== 75591 &&\r\n s.prod.ProductID !== 75589 && (\r\n
\r\n \r\n {s.prod.insignias.filter(m => !m.isCAF).length > 0 && (\r\n \r\n )}\r\n {s.prod.insignias.filter(m => m.isCAF).length > 0 && (\r\n \r\n )}\r\n {s.prod.insignias.filter(m => m.fpc_id === 21).length >\r\n 0 && }\r\n {s.prod.insignias.filter(m => m.fpc_id === 22).length >\r\n 0 && }\r\n {s.prod.insignias.filter(m => m.fpc_id === 23).length >\r\n 0 && }\r\n {s.prod.insignias.filter(m => m.fpc_id === 24).length >\r\n 0 && }\r\n {s.prod.insignias.filter(m => m.fpc_id === 25).length >\r\n 0 && }\r\n {s.prod.insignias.filter(m => m.fpc_id === 26).length >\r\n 0 && }\r\n {s.prod.insignias.filter(m => m.fpc_id === 27).length >\r\n 0 && }\r\n {s.prod.insignias.filter(m => m.fpc_id === 29).length >\r\n 0 && }\r\n {s.prod.insignias.filter(m => m.fpc_id === 40).length >\r\n 0 && }\r\n \r\n
\r\n )}\r\n \r\n {s.prod.insignias\r\n .filter(\r\n m =>\r\n (s.ui.linen &&\r\n !m.title.toLowerCase().includes('embossed')) ||\r\n !s.ui.linen,\r\n )\r\n .filter(\r\n m =>\r\n (m.fpc_id === this.fpc_id || this.fpc_id === -2) &&\r\n ((s.pcs.ins_gold_allowed && m.ins_color === 'gold') ||\r\n (s.pcs.ins_silver_allowed &&\r\n m.ins_color === 'silver') ||\r\n (s.pcs.ins_black_allowed && m.ins_color === 'black')),\r\n )\r\n .slice(0, this.collapsed_number)\r\n .map((m: InsigniaCustomization, i: number) => (\r\n 1200 ? 'popover' : ''}\r\n data-bs-placement=\"top\"\r\n data-bs-html=\"true\"\r\n data-bs-trigger=\"hover focus\"\r\n data-bs-content={`
\"\"
`}\r\n title={m.title}\r\n role=\"option\"\r\n id={`ins-${m.id}`}\r\n key={m.id}\r\n data-id={m.id}\r\n aria-label={`Select ${m.title} insignia`}\r\n className={`${AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) ? 'product-gray-box ' : ''}cust-entity${s.pcs.insignia_id === m.id ? ' active' : ''}${!this.collapsed ? ' active-bold' : ''}`}\r\n onClick={() => this.save(m.id)}\r\n data-img={`https://i.diplomaframe.com/images/entities/insignia/v2/${m.name.toLowerCase()}_220.png`}\r\n tabIndex={0}\r\n >\r\n \r\n \r\n \r\n \r\n {m.title}\r\n \r\n \r\n ))}\r\n \r\n\r\n {s.prod.insignias.filter(\r\n m =>\r\n (m.fpc_id === this.fpc_id || this.fpc_id === -2) &&\r\n ((s.pcs.ins_gold_allowed && m.ins_color === 'gold') ||\r\n (s.pcs.ins_silver_allowed && m.ins_color === 'silver') ||\r\n (s.pcs.ins_black_allowed && m.ins_color === 'black')),\r\n ).length > 4 && (\r\n m.fpc_id === this.fpc_id).length} insignia`}\r\n role=\"button\"\r\n >\r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n <>\r\n {this.collapsed && (\r\n \r\n + View{' '}\r\n {s.prod.insignias.filter(\r\n m =>\r\n (m.fpc_id === this.fpc_id ||\r\n this.fpc_id === -2) &&\r\n ((s.pcs.ins_gold_allowed &&\r\n m.ins_color === 'gold') ||\r\n (s.pcs.ins_silver_allowed &&\r\n m.ins_color === 'silver') ||\r\n (s.pcs.ins_black_allowed &&\r\n m.ins_color === 'black')),\r\n ).length - 4}{' '}\r\n more insignia\r\n \r\n )}\r\n {!this.collapsed && (\r\n \r\n - View less insignia\r\n \r\n )}\r\n \r\n )}\r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n <>\r\n {this.collapsed && (\r\n \r\n View all{' '}\r\n {s.prod.insignias.filter(\r\n m =>\r\n (m.fpc_id === this.fpc_id ||\r\n this.fpc_id === -2) &&\r\n ((s.pcs.ins_gold_allowed &&\r\n m.ins_color === 'gold') ||\r\n (s.pcs.ins_silver_allowed &&\r\n m.ins_color === 'silver') ||\r\n (s.pcs.ins_black_allowed &&\r\n m.ins_color === 'black')),\r\n ).length - 4}{' '}\r\n insignias\r\n \r\n )}\r\n {!this.collapsed && (\r\n \r\n View less insignia\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n\r\n {((s.pcs.is_caf && s.pcs.insignia_id > 0) ||\r\n (!s.pcs.is_caf && s.prod.InsigniaID < 1 && s.pcs.insignia_id > 0)) && (\r\n \r\n
\r\n \r\n Remove Insignia\r\n \r\n \r\n )}\r\n \r\n \r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
\r\n )}\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction, toJS} from 'mobx';\r\nimport * as data from '../data';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport ModalSimple from '../../global/modal-simple';\r\nimport * as emitter from '../../global/emitter';\r\nimport AbTestStore, {ABTestKeys} from '../../global/store/ab-test.store';\r\n\r\ndeclare var __portal: IPortalSettings;\r\n\r\n@observer\r\nexport default class Lino extends React.Component {\r\n @observable collapsed: boolean = true;\r\n @observable init_linos: boolean = false;\r\n @observable hasCategory1: boolean = false;\r\n @observable hasCategory2: boolean = false;\r\n @observable hasCategory3: boolean = false;\r\n @observable hasCategory4: boolean = false;\r\n @observable orig_lino_name: string = '';\r\n @observable lino_display_name: string = '';\r\n\r\n constructor(props) {\r\n super(props);\r\n this.collapseToggle = this.collapseToggle.bind(this);\r\n this.initLinos = this.initLinos.bind(this);\r\n this.orig = this.orig.bind(this);\r\n this.changeLino = this.changeLino.bind(this);\r\n this.changeLinoColor = this.changeLinoColor.bind(this);\r\n this.lino_remove = this.lino_remove.bind(this);\r\n makeObservable(this);\r\n }\r\n\r\n abForceUpdate = async () => this.forceUpdate();\r\n\r\n componentDidMount(): void {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n }\r\n\r\n @action\r\n collapseToggle = async () => {\r\n runInAction(() => {\r\n this.collapsed = !this.collapsed;\r\n });\r\n };\r\n\r\n @action\r\n initLinos = async () => {\r\n runInAction(() => {\r\n this.orig_lino_name = JSON.parse(JSON.stringify(s.prod.orig_pcs.Base_LinoName));\r\n this.lino_display_name = this.orig_lino_name;\r\n this.hasCategory1 =\r\n s.prod &&\r\n s.prod.linos &&\r\n s.prod.linos.filter(m => !m.isBase && m.dyf_custom_lino_type_id === 1).length > 0;\r\n this.hasCategory2 =\r\n s.prod &&\r\n s.prod.linos &&\r\n s.prod.linos.filter(m => !m.isBase && m.dyf_custom_lino_type_id === 2).length > 0;\r\n this.hasCategory3 =\r\n s.prod &&\r\n s.prod.linos &&\r\n s.prod.linos.filter(m => !m.isBase && m.dyf_custom_lino_type_id === 3).length > 0;\r\n this.hasCategory4 =\r\n s.prod &&\r\n s.prod.linos &&\r\n s.prod.linos.filter(m => !m.isBase && m.dyf_custom_lino_type_id === 4).length > 0;\r\n this.init_linos = true;\r\n });\r\n };\r\n\r\n @action\r\n orig = async () => {\r\n runInAction(() => {\r\n // console.log(s.prod.orig_pcs.Base_LinoName);\r\n s.pcs.lino_id = s.prod.LinoID;\r\n // console.log(this.orig_lino_name);\r\n s.pcs.lino_base_name = this.orig_lino_name;\r\n s.pcs.lino_dyf_color = 'Gold';\r\n s.pcs.lino_is_dyf = false;\r\n s.pcs.ep_id = 0;\r\n s.ui.update_pricing = true;\r\n s.ui.doRender = true;\r\n this.lino_display_name = this.orig_lino_name;\r\n s.pulse();\r\n });\r\n };\r\n\r\n @action\r\n changeLino = async (\r\n dyf_custom_lino_type_id: number,\r\n e: React.ChangeEvent,\r\n ) => {\r\n runInAction(() => {\r\n const m = s.prod.linos.filter(\r\n m =>\r\n !m.isBase &&\r\n m.dyf_custom_lino_type_id === dyf_custom_lino_type_id &&\r\n m.id === parseInt(e.target.value, 10),\r\n )[0];\r\n\r\n if (m) {\r\n s.pcs.lino_base_name = m.name;\r\n s.pcs.lino_text = m.name;\r\n s.pcs.lino_is_dyf = true;\r\n s.pcs.lino_id = m.id;\r\n s.pcs.ep_id = 0;\r\n this.lino_display_name = m.title;\r\n console.log(m.id);\r\n }\r\n s.ui.update_pricing = true;\r\n s.ui.doRender = true;\r\n\r\n const f1 = document.getElementById('lino-dyf-1');\r\n const f2 = document.getElementById('lino-dyf-2');\r\n const f3 = document.getElementById('lino-dyf-3');\r\n const f4 = document.getElementById('lino-dyf-4');\r\n\r\n if (f1 && m && m.dyf_custom_lino_type_id !== 1) {\r\n f1.getElementsByTagName('option')[0].selected = true;\r\n }\r\n if (f2 && m && m.dyf_custom_lino_type_id !== 2) {\r\n f2.getElementsByTagName('option')[0].selected = true;\r\n }\r\n if (f3 && m && m.dyf_custom_lino_type_id !== 3) {\r\n f3.getElementsByTagName('option')[0].selected = true;\r\n }\r\n if (f4 && m && m.dyf_custom_lino_type_id !== 4) {\r\n f4.getElementsByTagName('option')[0].selected = true;\r\n }\r\n\r\n if (!s.pcs.lino_dyf_color || s.pcs.lino_dyf_color === '') {\r\n if (s.pcs.ins_gold_allowed) {\r\n s.pcs.lino_dyf_color = 'gold';\r\n } else if (s.pcs.ins_silver_allowed) {\r\n s.pcs.lino_dyf_color = 'silver';\r\n } else if (s.pcs.ins_black_allowed) {\r\n s.pcs.lino_dyf_color = 'black';\r\n }\r\n }\r\n\r\n s.pulse();\r\n\r\n if (window.innerWidth < 1200) {\r\n const d = document.getElementById('prod-header') as HTMLDivElement;\r\n d.scrollIntoView();\r\n }\r\n });\r\n };\r\n\r\n @action\r\n changeLinoProd = async (_id: number) => {\r\n runInAction(() => {\r\n const m = s.prod.linos.filter(m => m.id === _id)[0];\r\n if (m) {\r\n s.pcs.lino_base_name = m.name;\r\n s.pcs.lino_is_dyf = false;\r\n s.pcs.lino_id = m.id;\r\n s.pcs.lino_text = m.name;\r\n s.pcs.ep_id = 0;\r\n this.lino_display_name = m.title;\r\n }\r\n s.ui.update_pricing = true;\r\n s.ui.doRender = true;\r\n s.pulse();\r\n\r\n if (window.innerWidth < 1200) {\r\n const d = document.getElementById('prod-header') as HTMLDivElement;\r\n d.scrollIntoView();\r\n }\r\n });\r\n };\r\n\r\n @computed get canCollapse(): boolean {\r\n return s.pcs.is_caf || window.innerWidth < 960;\r\n }\r\n\r\n @computed get getOptionsCount(): number {\r\n let i = s.pcs.ins_gold_allowed ? 1 : 0;\r\n i += s.pcs.ins_black_allowed ? 1 : 0;\r\n i += s.pcs.ins_silver_allowed ? 1 : 0;\r\n return i;\r\n }\r\n\r\n @action\r\n changeLinoColor = async (e: React.ChangeEvent) => {\r\n runInAction(() => {\r\n s.pcs.lino_dyf_color = e.target.value.toString().trim().toLowerCase();\r\n s.ui.update_pricing = true;\r\n s.ui.doRender = true;\r\n s.pulse();\r\n });\r\n };\r\n\r\n @action\r\n lino_remove = async (e: any) => {\r\n runInAction(() => {\r\n s.pcs.lino_id = -1;\r\n const f1 = document.getElementById('lino-dyf-1');\r\n const f2 = document.getElementById('lino-dyf-2');\r\n const f3 = document.getElementById('lino-dyf-3');\r\n const f4 = document.getElementById('lino-dyf-4');\r\n\r\n if (f1) {\r\n f1.getElementsByTagName('option')[0].selected = true;\r\n }\r\n if (f2) {\r\n f2.getElementsByTagName('option')[0].selected = true;\r\n }\r\n if (f3) {\r\n f3.getElementsByTagName('option')[0].selected = true;\r\n }\r\n if (f4) {\r\n f4.getElementsByTagName('option')[0].selected = true;\r\n }\r\n s.ui.update_pricing = true;\r\n s.ui.doRender = true;\r\n s.pulse();\r\n });\r\n };\r\n\r\n async handleLinoDropdown(id: string) {\r\n if (id === '-1') {\r\n await this.orig();\r\n } else {\r\n await this.changeLinoProd(+id);\r\n }\r\n }\r\n\r\n render() {\r\n if (!s.ui.show_cust || !s.prod || !s.prod.linos) {\r\n return;\r\n }\r\n if (!this.init_linos) {\r\n this.initLinos();\r\n }\r\n\r\n const canCollapse =\r\n this.canCollapse && !AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Embossed Text: \r\n {s.prod.IsCAF && (\r\n {s.pcs.lino_id > 0 ? s.pcs.lino_base_name : ''}\r\n )}\r\n {!s.prod.IsCAF && (\r\n \r\n {s.pcs.lino_id === s.prod.LinoID\r\n ? 'Original'\r\n : s.pcs.lino_id > 0\r\n ? this.lino_display_name\r\n : ''}\r\n \r\n )}\r\n
\r\n \r\n\r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n \r\n
\r\n
\r\n \r\n Embossed Text\r\n
\r\n
\r\n {s.pcs.lino_id > 0 ? 'Embossed Text' : ''}\r\n
\r\n
\r\n
\r\n {this.canCollapse &&\r\n this.collapsed &&\r\n s.pcs.lino_id > 0 && (\r\n \r\n )}\r\n
\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {this.getOptionsCount > 1 &&\r\n s.prod.LinoID !== s.pcs.lino_id &&\r\n (!s.prod.linos || s.prod.linos.length < 2 || s.pcs.is_caf) &&\r\n s.prod.ProductID !== 75593 &&\r\n s.prod.ProductID !== 75595 &&\r\n s.prod.ProductID !== 75591 &&\r\n s.prod.ProductID !== 75589 && (\r\n
\r\n
\r\n \r\n {s.pcs.ins_black_allowed && (\r\n \r\n )}\r\n {s.pcs.ins_gold_allowed && (\r\n \r\n )}\r\n {s.pcs.ins_silver_allowed && (\r\n \r\n )}\r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n {this.getOptionsCount > 1 &&\r\n s.prod.LinoID !== s.pcs.lino_id &&\r\n s.prod.linos.length < 3 &&\r\n s.prod.ProductID !== 75593 &&\r\n s.prod.ProductID !== 75595 &&\r\n s.prod.ProductID !== 75591 &&\r\n s.prod.ProductID !== 75589 &&
}\r\n\r\n \r\n {s.prod.LinoID > 0 && s.prod.linos.length < 3 && (\r\n \r\n {__portal.PortalID === 0 ? 'Original' : 'Select your program'}\r\n \r\n )}\r\n\r\n {s.prod.linos.length === 2 &&\r\n s.prod.linos\r\n .filter(m => !m.isBase && !m.isCAF)\r\n .map((m, i) => (\r\n this.changeLinoProd(m.id)}\r\n aria-label={`Select ${m.title} embossed text`}\r\n tabIndex={0}\r\n >\r\n {m.title.replace(s.si.InstName, '').trim()}\r\n \r\n ))}\r\n\r\n {!s.prod.IsCAF && s.prod.linos.length > 2 && (\r\n \r\n this.handleLinoDropdown(e.target.value)}\r\n >\r\n \r\n {__portal.PortalID === 0 ? 'Original' : 'Select your program'}\r\n \r\n {s.prod.linos\r\n .filter(m => !m.isBase && !m.isCAF)\r\n .map((m, i) => (\r\n \r\n {m.title.replace(s.si.InstName, '').trim()}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n\r\n {this.hasCategory1 && (\r\n
\r\n this.changeLino(1, e)}\r\n >\r\n \r\n School of...\r\n \r\n {s.prod &&\r\n s.prod.linos &&\r\n s.prod.linos\r\n .filter(\r\n m =>\r\n !m.isBase &&\r\n m.dyf_custom_lino_type_id === 1,\r\n )\r\n .map((m, i) => (\r\n \r\n {m.title}\r\n \r\n ))}\r\n \r\n \r\n
\r\n )}\r\n\r\n {this.hasCategory2 && (\r\n
\r\n this.changeLino(2, e)}\r\n >\r\n \r\n College of...\r\n \r\n {s.prod &&\r\n s.prod.linos &&\r\n s.prod.linos\r\n .filter(\r\n m =>\r\n !m.isBase &&\r\n m.dyf_custom_lino_type_id === 2,\r\n )\r\n .map((m, i) => (\r\n \r\n {m.title}\r\n \r\n ))}\r\n \r\n \r\n
\r\n )}\r\n\r\n {this.hasCategory3 && (\r\n
\r\n this.changeLino(3, e)}\r\n >\r\n \r\n State of...\r\n \r\n {s.prod &&\r\n s.prod.linos &&\r\n s.prod.linos\r\n .filter(\r\n m =>\r\n !m.isBase &&\r\n m.dyf_custom_lino_type_id === 3,\r\n )\r\n .map((m, i) => (\r\n \r\n {m.title}\r\n \r\n ))}\r\n \r\n \r\n
\r\n )}\r\n\r\n {this.hasCategory4 && (\r\n
\r\n this.changeLino(4, e)}\r\n >\r\n \r\n Class of...\r\n \r\n {s.prod &&\r\n s.prod.linos &&\r\n s.prod.linos\r\n .filter(\r\n m =>\r\n !m.isBase &&\r\n m.dyf_custom_lino_type_id === 4,\r\n )\r\n .reverse()\r\n .map((m, i) => (\r\n \r\n {m.title}\r\n \r\n ))}\r\n \r\n \r\n
\r\n )}\r\n\r\n {s.pcs.lino_is_dyf && s.pcs.lino_id > 0 && (\r\n
\r\n
\r\n
\r\n {s.pcs.lino_is_dyf && (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n\r\n {!s.pcs.lino_is_dyf && s.pcs.lino_id > 0 && (\r\n
\r\n
\r\n
\r\n {!s.pcs.lino_is_dyf && (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n\r\n {((s.pcs.is_caf && s.pcs.lino_id > 0) ||\r\n (!s.pcs.is_caf && s.pcs.lino_id > 0 && s.prod.LinoID < 1)) && (\r\n \r\n
\r\n \r\n Remove Embossed Text\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
\r\n )}\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport {CAFMat_Customization, MatCustomization} from '../i';\r\nimport * as emitter from '../../global/emitter';\r\nimport AbTestStore, {ABTestKeys} from '../../global/store/ab-test.store';\r\nimport ModalSimple from '../../global/modal-simple';\r\nimport InfoIcon from './shared/info-icon';\r\n\r\ndeclare const bootstrap: any;\r\ndeclare const window: any;\r\n\r\n@observer\r\nexport default class Mat extends React.Component {\r\n max_mats: number = 6;\r\n max_mats_bg: number = 12;\r\n @observable collapsed: boolean = true;\r\n @observable collapsed_number: number = this.max_mats;\r\n\r\n @observable collapsed_mat2: boolean = true;\r\n @observable collapsed_number_mat2: number = this.max_mats;\r\n\r\n @observable collapsed_mat3: boolean = true;\r\n @observable collapsed_number_mat3: number = this.max_mats_bg;\r\n\r\n @observable fpc_id: number = -2;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.collapseToggle = this.collapseToggle.bind(this);\r\n this.collapseToggle_mat2 = this.collapseToggle_mat2.bind(this);\r\n this.collapseToggle_mat3 = this.collapseToggle_mat3.bind(this);\r\n this.save = this.save.bind(this);\r\n this.changeCategory = this.changeCategory.bind(this);\r\n this.save_vlbg = this.save_vlbg.bind(this);\r\n makeObservable(this);\r\n }\r\n\r\n abForceUpdate = async () => {\r\n this.forceUpdate();\r\n this.max_mats = this.getMaxMats();\r\n this.collapsed_number = this.max_mats;\r\n this.collapsed_number_mat2 = this.max_mats - 1;\r\n this.collapsed_number_mat3 = this.max_mats;\r\n };\r\n\r\n componentDidMount(): void {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n var popoverTriggerList = [].slice.call(\r\n document.querySelectorAll('[data-bs-toggle=\"popover\"]'),\r\n );\r\n var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n return new bootstrap.Popover(popoverTriggerEl);\r\n });\r\n }\r\n\r\n @action\r\n getMaxMats() {\r\n if (AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1)) {\r\n return 5;\r\n } else {\r\n return 6;\r\n }\r\n }\r\n\r\n @action\r\n collapseToggle = async () => {\r\n runInAction(() => {\r\n this.collapsed = !this.collapsed;\r\n this.collapsed_number = this.collapsed ? this.getMaxMats() : 1000;\r\n });\r\n };\r\n\r\n @action\r\n collapseToggle_mat2 = async () => {\r\n runInAction(() => {\r\n this.collapsed_mat2 = !this.collapsed_mat2;\r\n this.collapsed_number_mat2 = this.collapsed_mat2 ? this.getMaxMats() - 1 : 1000;\r\n });\r\n };\r\n\r\n @action\r\n collapseToggle_mat3 = async () => {\r\n runInAction(() => {\r\n this.collapsed_mat3 = !this.collapsed_mat3;\r\n this.collapsed_number_mat3 = this.collapsed_mat3 ? this.getMaxMats() : 1000;\r\n });\r\n };\r\n\r\n @action\r\n save = async (id: number) => {\r\n runInAction(() => {\r\n util.prod_entity_zoom_destroy();\r\n if (!s.pcs.is_caf) {\r\n s.ui.update_pricing = true;\r\n s.pcs.matcombo_id = id;\r\n const m = s.prod.mats.filter(x => x.id === id)[0];\r\n s.pcs.mat1_id = m.mat1_id;\r\n s.pcs.mat2_id = m.mat2_id;\r\n s.pcs.mat1_color = m.pmat_color;\r\n s.pcs.mat2_color = m.smat_color;\r\n s.pcs.ins_gold_allowed = m.ins_gold_allowed;\r\n s.pcs.ins_silver_allowed = m.ins_silver_allowed;\r\n s.pcs.ins_black_allowed = m.ins_black_allowed;\r\n s.ui.doRender = true;\r\n\r\n if (m) {\r\n s.ui.linen = m.pmat_name.toLowerCase().includes('linen');\r\n }\r\n\r\n if (s.prod.CustomizationMethod === 1 && m.ImageName) {\r\n s.ui.old_style_composite = m.ImageName.toLowerCase();\r\n }\r\n\r\n s.pulse();\r\n } else {\r\n s.ui.update_pricing = true;\r\n const m1 = s.prod.caf_mat1.filter(x => x.id === id)[0];\r\n const m2 = s.prod.caf_mat2.filter(x => x.id === id)[0];\r\n if (m1) {\r\n s.pcs.mat1_id = m1.id;\r\n s.pcs.mat1_color = m1.mat_color;\r\n s.pcs.ins_gold_allowed = m1.ins_gold_allowed;\r\n s.pcs.ins_silver_allowed = m1.ins_silver_allowed;\r\n s.pcs.ins_black_allowed = m1.ins_black_allowed;\r\n\r\n // console.log(m1.name);\r\n // console.log(m1.name.toLowerCase().includes('linen'));\r\n if (m1) {\r\n s.ui.linen = m1.name.toLowerCase().includes('linen');\r\n }\r\n } else if (m2) {\r\n s.pcs.mat2_id = m2.id;\r\n s.pcs.mat2_color = m2.mat_color;\r\n }\r\n\r\n if (id === -1) {\r\n s.pcs.mat2_id = -1;\r\n s.pcs.mat2_color = '';\r\n s.ui.name_mat2 = 'No Inner Accent';\r\n s.ui.color_mat2 = '';\r\n s.ui.title_mat2 = 'No Inner Accent';\r\n }\r\n\r\n s.ui.doRender = true;\r\n s.pulse();\r\n }\r\n\r\n if (window.innerWidth < 1200) {\r\n const d = document.getElementById('prod-header') as HTMLDivElement;\r\n d.scrollIntoView();\r\n }\r\n });\r\n };\r\n\r\n @action\r\n save_vlbg = async (id: number) => {\r\n runInAction(() => {\r\n const m2 = s.prod.caf_mat2.filter(x => x.id === id)[0];\r\n if (m2) {\r\n s.pcs.vlbg_id = id;\r\n s.pcs.vlbg_color = m2.mat_color;\r\n s.ui.title_vlbg = m2.title;\r\n s.ui.doRender = true;\r\n s.pulse();\r\n\r\n if (window.innerWidth < 1200) {\r\n const d = document.getElementById('prod-header') as HTMLDivElement;\r\n d.scrollIntoView();\r\n }\r\n }\r\n });\r\n };\r\n\r\n @action\r\n changeCategory = async (e: React.ChangeEvent) => {\r\n runInAction(() => {\r\n this.fpc_id = parseInt(e.target.value);\r\n });\r\n };\r\n\r\n @computed get canCollapse(): boolean {\r\n return s.pcs.is_caf || window.innerWidth < 960;\r\n }\r\n\r\n render() {\r\n if (!s.ready || !s.ui.show_cust) {\r\n return;\r\n }\r\n\r\n const canCollapse =\r\n this.canCollapse && !AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1);\r\n\r\n if (!s.pcs.is_caf && s.prod.mats) {\r\n if (s.prod.mats.length > 1) {\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Matting: \r\n {s.ui.title_mat_combo}\r\n \r\n
\r\n
\r\n\r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n \r\n
\r\n
\r\n \r\n Matting\r\n \r\n
\r\n
\r\n {s.ui.title_mat_combo}\r\n
\r\n
\r\n
\r\n {this.canCollapse &&\r\n this.collapsed &&\r\n s.prod.mats\r\n .filter(m => m.id === s.pcs.matcombo_id)\r\n .map(\r\n (\r\n m: MatCustomization,\r\n i: number,\r\n ) => (\r\n 0 ? `_${m.mat2_id.toString()}` : ''}.png`}\r\n alt={m.title}\r\n />\r\n ),\r\n )}\r\n
\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {/* .sort((a, b) => this.collapsed ? a.id === s.pcs.moulding_id ? -1 : b.id === s.pcs.moulding_id ? 1 : 0 : 1) */}\r\n {s.prod.mats\r\n .slice(0, 1000)\r\n .slice(0, this.collapsed_number)\r\n .map((m: MatCustomization, i: number) => (\r\n 1200 ? 'popover' : ''\r\n }\r\n data-bs-placement=\"top\"\r\n data-bs-html=\"true\"\r\n data-bs-trigger=\"hover focus\"\r\n data-bs-content={`
0 ? `_${m.mat2_id.toString()}` : ''}.png\" alt=\"\" />
`}\r\n title={m.title}\r\n id={`mat-${m.id}`}\r\n role=\"option\"\r\n key={m.id}\r\n aria-label={`Select ${m.title} mat`}\r\n className={`${AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) ? 'product-gray-box ' : ''}${AbTestStore.ABGetClassName(ABTestKeys.product_mats)}cust-entity${s.pcs.matcombo_id === m.id ? ' active' : ''}${!this.collapsed ? ' active-bold' : ''}`}\r\n onClick={() => this.save(m.id)}\r\n tabIndex={0}\r\n >\r\n \r\n \r\n 0 ? `_${m.mat2_id.toString()}` : ''}.webp`}\r\n />\r\n 0 ? `_${m.mat2_id.toString()}` : ''}.png`}\r\n alt={m.title}\r\n />\r\n \r\n \r\n {!AbTestStore.ABIsVariant(\r\n ABTestKeys.product_mats,\r\n 3,\r\n ) &&
{m.title}
}\r\n {m.mat2_id !== 36 && m.mat2_id !== 38 && (\r\n \r\n )}\r\n {s.__fast_ship_orig &&\r\n s.isRetail &&\r\n s.prod.MatComboID === m.id && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n ))}\r\n \r\n {s.prod.mats.length > this.max_mats && (\r\n \r\n {!AbTestStore.ABIsVariant(\r\n ABTestKeys.ab_green_product,\r\n 1,\r\n ) && (\r\n <>\r\n {this.collapsed && (\r\n \r\n + View all {s.prod.mats.length} mats\r\n \r\n )}\r\n {!this.collapsed && (\r\n \r\n - View less mats\r\n \r\n )}\r\n \r\n )}\r\n\r\n {AbTestStore.ABIsVariant(\r\n ABTestKeys.ab_green_product,\r\n 1,\r\n ) && (\r\n <>\r\n {this.collapsed && (\r\n \r\n View all {s.prod.mats.length} mats\r\n \r\n )}\r\n {!this.collapsed && (\r\n \r\n View less mats\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
\r\n )}\r\n\r\n \r\n

\r\n Frame mats, or matting, are the decorative borders that surround\r\n your diploma or certificate within the frame, adding depth and\r\n elegance while protecting your document. Our premium mats are made\r\n from \"conservation quality\" materials that are 100% acid- and\r\n lignin-free, ensuring your achievement is preserved safely over time\r\n without yellowing or damage. Professionally bevel-cut for a clean\r\n and polished look, our mats are available in a wide range of colors\r\n and textures, allowing you to customize the style to complement your\r\n document and frame perfectly.\r\n

\r\n \r\n \r\n );\r\n } else {\r\n return;\r\n }\r\n } else {\r\n return (\r\n
\r\n {s.prod.caf_mat1 && (\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Top Mat: \r\n {s.ui.title_mat1}\r\n
\r\n
\r\n\r\n {!AbTestStore.ABIsVariant(\r\n ABTestKeys.ab_green_product,\r\n 1,\r\n ) && (\r\n \r\n
\r\n
\r\n \r\n Top Mat\r\n
\r\n
\r\n {s.ui.title_mat1}\r\n
\r\n
\r\n
\r\n {this.canCollapse &&\r\n this.collapsed &&\r\n s.prod.caf_mat1\r\n .filter(m => m.id === s.pcs.mat1_id)\r\n .map(\r\n (\r\n m: CAFMat_Customization,\r\n i: number,\r\n ) => (\r\n \r\n ),\r\n )}\r\n
\r\n
\r\n \r\n )}\r\n \r\n\r\n \r\n
\r\n \r\n {s.prod.caf_mat1.length > 0 && (\r\n \r\n )}\r\n {s.prod.caf_mat1.filter(m => m.fpc_id === 12)\r\n .length > 0 && (\r\n \r\n )}\r\n {s.prod.caf_mat1.filter(m => m.fpc_id === 13)\r\n .length > 0 && (\r\n \r\n )}\r\n {s.prod.caf_mat1.filter(m => m.fpc_id === 14)\r\n .length > 0 && (\r\n \r\n )}\r\n \r\n
\r\n \r\n {s.prod.caf_mat1\r\n .slice(0, 1000)\r\n .filter(\r\n m =>\r\n m.fpc_id === this.fpc_id ||\r\n this.fpc_id === -2,\r\n )\r\n .slice(0, this.collapsed_number)\r\n .map((m: CAFMat_Customization, i: number) => (\r\n 1200\r\n ? 'popover'\r\n : ''\r\n }\r\n data-bs-placement=\"top\"\r\n data-bs-html=\"true\"\r\n data-bs-trigger=\"hover focus\"\r\n data-bs-content={`
\"\"
`}\r\n title={m.title}\r\n id={`mat1-${m.id}`}\r\n role=\"option\"\r\n key={m.id}\r\n aria-label={`Select ${m.title} mat`}\r\n data-img={`https://i.diplomaframe.com/images/entities/matcombos/220_${m.id}.png`}\r\n className={`${AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) ? 'product-gray-box ' : ''}cust-entity${s.pcs.mat1_id === m.id ? ' active' : ''}${!this.collapsed ? ' active-bold' : ''}`}\r\n data-id={m.id}\r\n onClick={() => this.save(m.id)}\r\n >\r\n \r\n \r\n {m.title}\r\n \r\n {s.pcs.mat1_id === m.id && (\r\n 0\r\n ? `#${s.pcs.mat2_color}`\r\n : 'none',\r\n }}\r\n />\r\n )}\r\n \r\n ))}\r\n \r\n {s.prod.caf_mat1.length > this.max_mats && (\r\n m.fpc_id === this.fpc_id || this.fpc_id === -2).length} mats`}\r\n role=\"button\"\r\n >\r\n {!AbTestStore.ABIsVariant(\r\n ABTestKeys.ab_green_product,\r\n 1,\r\n ) && (\r\n <>\r\n {this.collapsed && (\r\n m.fpc_id === this.fpc_id || this.fpc_id === -2).length} mats`}\r\n >\r\n + View all{' '}\r\n {\r\n s.prod.caf_mat1.filter(\r\n m =>\r\n m.fpc_id ===\r\n this.fpc_id ||\r\n this.fpc_id === -2,\r\n ).length\r\n }{' '}\r\n mats\r\n \r\n )}\r\n {!this.collapsed && (\r\n \r\n - View less mats\r\n \r\n )}\r\n \r\n )}\r\n\r\n {AbTestStore.ABIsVariant(\r\n ABTestKeys.ab_green_product,\r\n 1,\r\n ) && (\r\n <>\r\n {this.collapsed && (\r\n \r\n View all{' '}\r\n {\r\n s.prod.caf_mat1.filter(\r\n m =>\r\n m.fpc_id ===\r\n this.fpc_id ||\r\n this.fpc_id === -2,\r\n ).length\r\n }{' '}\r\n mats\r\n \r\n )}\r\n {!this.collapsed && (\r\n \r\n View less mats\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
\r\n )}\r\n \r\n )}\r\n {s.prod.caf_mat2 && (\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Inner Accent: \r\n {s.ui.title_mat2}\r\n
\r\n
\r\n\r\n {!AbTestStore.ABIsVariant(\r\n ABTestKeys.ab_green_product,\r\n 1,\r\n ) && (\r\n \r\n
\r\n
\r\n \r\n Inner Accent\r\n
\r\n
\r\n {s.ui.title_mat2}\r\n
\r\n
\r\n
\r\n {this.canCollapse &&\r\n this.collapsed &&\r\n s.prod.caf_mat2\r\n .filter(m => m.id === s.pcs.mat2_id)\r\n .map(\r\n (\r\n m: CAFMat_Customization,\r\n i: number,\r\n ) => (\r\n \r\n ),\r\n )}\r\n
\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n this.save(-1)}\r\n >\r\n \r\n \r\n No Inner Accent\r\n \r\n {s.pcs.mat2_id === -1 && (\r\n 0\r\n ? `#${s.pcs.mat1_color}`\r\n : 'none',\r\n }}\r\n />\r\n )}\r\n \r\n\r\n {s.prod.caf_mat2\r\n .slice(0, 1000)\r\n .slice(0, this.collapsed_number_mat2)\r\n .map((m: CAFMat_Customization, i: number) => (\r\n 1200\r\n ? 'popover'\r\n : ''\r\n }\r\n data-bs-placement=\"top\"\r\n data-bs-html=\"true\"\r\n data-bs-trigger=\"hover focus\"\r\n data-bs-content={`
\"\"
`}\r\n title={m.title}\r\n id={`mat2-${m.id}`}\r\n role=\"option\"\r\n data-id={m.id}\r\n key={m.id}\r\n aria-label={`Select ${m.title} mat`}\r\n className={`${AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) ? 'product-gray-box ' : ''}cust-entity${s.pcs.mat2_id === m.id ? ' active' : ''}${!this.collapsed_mat2 ? ' active-bold' : ''}`}\r\n onClick={() => this.save(m.id)}\r\n >\r\n \r\n \r\n {m.title}\r\n \r\n {s.pcs.mat2_id === m.id && (\r\n 0\r\n ? `#${s.pcs.mat1_color}`\r\n : 'none',\r\n }}\r\n />\r\n )}\r\n \r\n ))}\r\n \r\n {s.prod.caf_mat2.length > this.max_mats && (\r\n \r\n {!AbTestStore.ABIsVariant(\r\n ABTestKeys.ab_green_product,\r\n 1,\r\n ) && (\r\n <>\r\n {this.collapsed_mat2 && (\r\n \r\n + View all {s.prod.caf_mat2.length}{' '}\r\n inner accents\r\n \r\n )}\r\n {!this.collapsed_mat2 && (\r\n \r\n - View less inner accents\r\n \r\n )}\r\n \r\n )}\r\n\r\n {AbTestStore.ABIsVariant(\r\n ABTestKeys.ab_green_product,\r\n 1,\r\n ) && (\r\n <>\r\n {this.collapsed_mat2 && (\r\n \r\n View all {s.prod.caf_mat2.length}{' '}\r\n inner accents\r\n \r\n )}\r\n {!this.collapsed_mat2 && (\r\n \r\n View less inner accents\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
\r\n )}\r\n \r\n )}\r\n {s.prod.DYF_FrameStyleID === 4 && (\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Background: \r\n {s.ui.title_vlbg}\r\n
\r\n
\r\n\r\n {!AbTestStore.ABIsVariant(\r\n ABTestKeys.ab_green_product,\r\n 1,\r\n ) && (\r\n \r\n
\r\n
\r\n \r\n Background\r\n
\r\n
\r\n {s.ui.title_vlbg}\r\n
\r\n
\r\n
\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n {s.prod.caf_mat2\r\n .slice(0, 1000)\r\n .slice(0, this.collapsed_number_mat3)\r\n .map((m: CAFMat_Customization, i: number) => (\r\n this.save_vlbg(m.id)}\r\n >\r\n \r\n \r\n {m.title}\r\n \r\n {s.pcs.vlbg_id === m.id && (\r\n 0\r\n ? `#${s.pcs.mat1_color}`\r\n : 'none',\r\n }}\r\n />\r\n )}\r\n \r\n ))}\r\n \r\n {s.prod.caf_mat2.length > this.max_mats && (\r\n \r\n {!AbTestStore.ABIsVariant(\r\n ABTestKeys.ab_green_product,\r\n 1,\r\n ) && (\r\n <>\r\n {this.collapsed_mat3 && (\r\n \r\n + View all {s.prod.caf_mat2.length}{' '}\r\n backgrounds\r\n \r\n )}\r\n {!this.collapsed_mat3 && (\r\n \r\n - View less backgrounds\r\n \r\n )}\r\n \r\n )}\r\n\r\n {AbTestStore.ABIsVariant(\r\n ABTestKeys.ab_green_product,\r\n 1,\r\n ) && (\r\n <>\r\n {this.collapsed_mat3 && (\r\n \r\n View all {s.prod.caf_mat2.length}{' '}\r\n backgrounds\r\n \r\n )}\r\n {!this.collapsed_mat3 && (\r\n \r\n View less backgrounds\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
\r\n )}\r\n \r\n )}\r\n \r\n );\r\n }\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport ModalSimple from '../../../global/modal-simple';\r\nimport * as util from '../../../util';\r\n\r\n@observer\r\nclass LevelLockModal extends React.Component {\r\n render() {\r\n return (\r\n <>\r\n util.modal('modal-level-lock')}\r\n aria-label=\"Open information about Level-Lock Frame Hanging System\"\r\n role=\"button\"\r\n tabIndex={0}\r\n aria-haspopup=\"dialog\"\r\n aria-controls=\"modal-level-lock\"\r\n >\r\n Level-Lock Frame Hanging System\r\n \r\n\r\n \r\n
\r\n

\r\n The Level-Lock® Hanging System is the ultimate\r\n solution for professionally hanging your framed documents, art, and wall\r\n decor with ease and precision. Included with every premium diploma frame\r\n or custom frame from Design Your Frame, Level-Lock® ensures your\r\n frames stay securely in place and perfectly straight. This innovative\r\n system eliminates the frustration of crooked or misaligned frames,\r\n giving you the confidence to create a polished and professional look\r\n every time.\r\n

\r\n

\r\n Whether you’re showcasing a single diploma or creating a stunning\r\n gallery wall of awards, certificates, and artwork, Level-Lock® makes\r\n it simple to align multiple frames and achieve an eye-catching\r\n arrangement. Each system comes with all the tools you need for accurate,\r\n even hanging, so you can transform your home or office into a space that\r\n celebrates your achievements and personal style. With Level-Lock®,\r\n hanging your frames is not just easier—it’s better!\r\n

\r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n Level-Lock Frame Hanging System\r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default LevelLockModal;\r\n","import React from 'react';\r\nimport {observer} from 'mobx-react';\r\nimport ModalSimple from '../../../global/modal-simple';\r\nimport * as util from '../../../util';\r\n\r\n@observer\r\nclass SmartBoxModal extends React.Component {\r\n render() {\r\n return (\r\n <>\r\n util.modal('modal-smart-box')}\r\n aria-label=\"Open information about SMARTbox package\"\r\n role=\"button\"\r\n tabIndex={0}\r\n aria-haspopup=\"dialog\"\r\n aria-controls=\"modal-smart-box\"\r\n >\r\n SMARTbox package\r\n \r\n\r\n \r\n
\r\n

\r\n The SMARTbox is a cutting-edge packaging solution\r\n designed to make receiving, managing, and transporting your diploma\r\n frame as seamless as possible. Introduced by Church Hill Classics, this\r\n innovative ship-ready box combines durability and functionality,\r\n ensuring your frame arrives in pristine condition. With a built-in carry\r\n handle, the SMARTbox offers convenience for walk-out sales and easy\r\n transportation, making it perfect for both customers and retailers.\r\n

\r\n

\r\n Available for over 95% of our diploma frame sizes and styles, the\r\n SMARTbox is more than just packaging—it’s a streamlined solution for\r\n previewing frames, inventory management, and secure shipping. Whether\r\n you're purchasing a frame for yourself or as a gift, the SMARTbox\r\n ensures a professional and hassle-free experience from start to finish.\r\n

\r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n SMARTbox package\r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default SmartBoxModal;\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../../s';\r\nimport * as util from '../../../util';\r\nimport {MouldingCustomization} from '../../i';\r\nimport {statevent} from '../../api';\r\nimport RecycledIcon from './recycled-icon';\r\nimport ReactDOMServer from 'react-dom/server';\r\nimport * as emitter from '../../../global/emitter';\r\nimport AbTestStore, {ABTestKeys} from '../../../global/store/ab-test.store';\r\nimport ModalSimple from '../../../global/modal-simple';\r\nimport InfoIcon from '../shared/info-icon';\r\n\r\ndeclare const bootstrap: any;\r\ndeclare const window: any;\r\n\r\n@observer\r\nexport default class Moulding extends React.Component {\r\n @observable collapsed: boolean = true;\r\n @observable collapsed_number: number = 6;\r\n @observable finishes: string[] = [];\r\n @observable selected_finish: string = '-1';\r\n\r\n constructor(props) {\r\n super(props);\r\n this.collapseToggle = this.collapseToggle.bind(this);\r\n this.save = this.save.bind(this);\r\n this.changeColor = this.changeColor.bind(this);\r\n makeObservable(this);\r\n }\r\n\r\n abForceUpdate = async () => {\r\n this.forceUpdate();\r\n this.collapsed_number = this.getCollapsedNumber();\r\n };\r\n\r\n componentDidMount(): void {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n var popoverTriggerList = [].slice.call(\r\n document.querySelectorAll('[data-bs-toggle=\"popover\"]'),\r\n );\r\n var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n bootstrap.Popover.Default.allowList['*'].push('style');\r\n return new bootstrap.Popover(popoverTriggerEl);\r\n });\r\n\r\n // console.log(s.prod.mouldings);\r\n const _all = s.prod.mouldings\r\n .filter(x => x.fpc_name && x.fpc_name !== '')\r\n .map(x => x.fpc_name);\r\n this.finishes = [...new Set(_all)].sort();\r\n // console.log(this.finishes);\r\n }\r\n\r\n @action\r\n getCollapsedNumber() {\r\n if (AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1)) {\r\n return 5;\r\n } else {\r\n return 6;\r\n }\r\n }\r\n\r\n @action\r\n collapseToggle = async () => {\r\n runInAction(() => {\r\n this.collapsed = !this.collapsed;\r\n this.collapsed_number = this.collapsed ? this.getCollapsedNumber() : 1000;\r\n setTimeout(function () {\r\n let popoverTriggerList = [].slice.call(\r\n document.querySelectorAll('[data-bs-toggle=\"popover\"]'),\r\n );\r\n let popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n return new bootstrap.Popover(popoverTriggerEl);\r\n });\r\n }, 350);\r\n });\r\n };\r\n\r\n @action\r\n save = async (id: number) => {\r\n runInAction(() => {\r\n util.prod_entity_zoom_destroy();\r\n s.ui.update_pricing = true;\r\n s.pcs.moulding_id = id;\r\n const x = s.prod.mouldings.filter(xx => xx.id === id)[0];\r\n if (x) {\r\n s.pcs.moulding_extWidth = x.extWidth;\r\n }\r\n s.pulse();\r\n\r\n if (window.innerWidth < 1200) {\r\n const d = document.getElementById('prod-header') as HTMLDivElement;\r\n d.scrollIntoView();\r\n }\r\n\r\n if (!s.prod.IsCAF && s.isRetail && id !== s.prod.MouldingID) {\r\n statevent({\r\n d1: 'cust_moulding',\r\n d2: s.prod.MouldingID.toString(),\r\n d3: id.toString(),\r\n });\r\n }\r\n });\r\n };\r\n\r\n @action\r\n changeColor = async e => {\r\n this.selected_finish = e.target.value as string;\r\n if (this.selected_finish === '-1') {\r\n this.collapsed_number = this.collapsed ? 6 : 1000;\r\n } else {\r\n this.collapsed_number = 1000;\r\n if (this.collapsed) {\r\n this.collapseToggle();\r\n }\r\n }\r\n };\r\n @computed get canCollapse(): boolean {\r\n return s.pcs.is_caf || window.innerWidth < 960;\r\n }\r\n\r\n render() {\r\n if (!s.ready || !s.ui.show_cust || !s.prod.mouldings) {\r\n return;\r\n }\r\n\r\n const canCollapse =\r\n this.canCollapse && !AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1);\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Frame Moulding: \r\n {s.ui.title_moulding}\r\n \r\n
\r\n
\r\n\r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n \r\n
\r\n
\r\n \r\n Frame Moulding\r\n \r\n
\r\n
{s.ui.title_moulding}
\r\n
\r\n
\r\n {this.canCollapse &&\r\n this.collapsed &&\r\n s.prod.mouldings\r\n .filter(m => m.id === s.pcs.moulding_id)\r\n .map((m: MouldingCustomization, i: number) => (\r\n \r\n ))}\r\n
\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {s.prod && s.prod.IsCAF && (\r\n
\r\n \r\n \r\n \r\n \r\n {this.finishes.map(x => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n )}\r\n\r\n \r\n {/* .sort((a, b) => this.collapsed ? a.id === s.pcs.moulding_id ? -1 : b.id === s.pcs.moulding_id ? 1 : 0 : 1) */}\r\n {s.prod.mouldings\r\n .filter(\r\n x =>\r\n this.selected_finish === '-1' ||\r\n x.fpc_name === this.selected_finish,\r\n )\r\n .slice(0, 1000)\r\n .slice(0, this.collapsed_number)\r\n .map((m: MouldingCustomization, i: number) => (\r\n 1200 ? 'popover' : ''\r\n }\r\n data-bs-placement=\"top\"\r\n data-bs-html=\"true\"\r\n data-bs-trigger=\"hover focus\"\r\n data-bs-content={`
\"\"${\r\n m.IsRecycled\r\n ? ReactDOMServer.renderToStaticMarkup(\r\n ,\r\n )\r\n : ''\r\n }
`}\r\n id={`moulding-${m.id}`}\r\n key={m.id}\r\n title={m.title}\r\n aria-label={`Select ${m.title} moulding`}\r\n className={`${AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) ? 'product-gray-box ' : ''}cust-entity${s.pcs.moulding_id === m.id ? ' active' : ''}${!this.collapsed ? ' active-bold' : ''}`}\r\n onClick={() => this.save(m.id)}\r\n data-img={`https://i.diplomaframe.com/images/entities/moulding/${m.name.toLowerCase()}_thumb_270.png`}\r\n role=\"option\"\r\n tabIndex={0}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n {m.IsRecycled != undefined && m.IsRecycled && (\r\n \r\n )}\r\n {/* \"\"`} place=\"top\" offset={0} /> */}\r\n {s.__fast_ship_orig &&\r\n s.isRetail &&\r\n s.prod.MouldingID === m.id && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n ))}\r\n \r\n {s.prod.mouldings.length >= 6 && (\r\n \r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n <>\r\n {this.collapsed && (\r\n \r\n View all {s.prod.mouldings.length} mouldings\r\n \r\n )}\r\n {!this.collapsed && (\r\n \r\n View less mouldings\r\n \r\n )}\r\n \r\n )}\r\n\r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n <>\r\n {this.collapsed && (\r\n \r\n + View all {s.prod.mouldings.length} mouldings\r\n \r\n )}\r\n {!this.collapsed && (\r\n \r\n - View less mouldings\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
\r\n )}\r\n\r\n \r\n

\r\n A wood frame is a handcrafted border made from high-quality wood\r\n mouldings,designed to beautifully protect and showcase your diploma,\r\n certificate, or special keepsake. Our frames come in a variety of classic\r\n and modern styles, with options ranging from sleek, minimal profiles to\r\n elegant, deep shadowbox designs. Each frame is available in different\r\n finishes and colors, ensuring a perfect match for your decor or personal\r\n taste. Whether you choose a timeless traditional look or a contemporary\r\n design, our wood frames offer durability, sophistication, and exceptional\r\n value, all tailored to highlight your achievement.\r\n

\r\n \r\n \r\n );\r\n }\r\n}\r\n","import {observer} from 'mobx-react';\r\nimport React from 'react';\r\n\r\ninterface RecycleIconProps {\r\n width: number;\r\n top: string;\r\n left: string;\r\n}\r\n\r\n@observer\r\nexport default class RecycledIcon extends React.Component {\r\n constructor(props: RecycleIconProps) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import React, {isValidElement} from 'react';\r\nimport {observable, action, computed} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport store from '../s';\r\nimport ModalSimple from '../../global/modal-simple';\r\n\r\n@observer\r\nclass ModalInfo extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n {store.ui.processing_title}\r\n
\r\n
\r\n \r\n
\r\n \r\n Please wait\r\n
\r\n
{store.ui.processing_text}
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default ModalInfo;\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction} from 'mobx';\r\nimport * as data from '../data';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport * as emitter from '../../global/emitter';\r\nimport AbTestStore, {ABTestKeys} from '../../global/store/ab-test.store';\r\nimport PromoRedeem from './promo-redeem';\r\nimport LevelLockModal from './modals/level-lock.modal';\r\n\r\ndeclare const __portal: IPortalSettings;\r\n\r\n@observer\r\nclass ProductHeader extends React.Component {\r\n @observable productDescription: string;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.goReviews = this.goReviews.bind(this);\r\n }\r\n\r\n abForceUpdate = async () => this.forceUpdate();\r\n\r\n componentDidMount() {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n }\r\n\r\n @action\r\n goReviews = async (e: any) => {\r\n runInAction(() => {\r\n const d = document.getElementById('prod-reviews') as HTMLDivElement;\r\n const d2 = document.getElementById('prod-reviews-click') as HTMLDivElement;\r\n d2.click();\r\n setTimeout(function () {\r\n d.scrollIntoView();\r\n }, 100);\r\n });\r\n };\r\n\r\n render() {\r\n if (!s.si) return;\r\n\r\n if (\r\n !s.prod.IsCAF &&\r\n AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) &&\r\n AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1)\r\n ) {\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(s.si.default_prod_info_static, 'text/html');\r\n const listItems = doc.querySelectorAll('li');\r\n\r\n if (listItems[0].textContent) {\r\n this.productDescription = listItems[0].textContent;\r\n }\r\n }\r\n\r\n const default_render = (\r\n
\r\n
\r\n {s.prod && s.si && (\r\n 100\r\n ? 'h1-xs'\r\n : s.ui.product_title.length > 70\r\n ? 'h1-sm'\r\n : ''\r\n }\r\n >\r\n {s.prod && s.prod.IsCAF ? '' : `${s.si.InstName} `}\r\n {s.ui.product_title}\r\n \r\n )}\r\n
\r\n {!util.isNullOrWhiteSpace(s.ui.sku) && (\r\n SKU: {s.ui.sku}\r\n )}\r\n {!s.pcs.is_caf && Item #: {s.ui.item_id}}\r\n\r\n {s.ui.allow_reviews && s.ui.review_count > 0 && (\r\n \r\n \r\n
\r\n 0 ? 'yotpo-checked' : ''}`}\r\n role=\"presentation\"\r\n >\r\n 1 ? 'yotpo-checked' : ''}`}\r\n role=\"presentation\"\r\n >\r\n 2 ? 'yotpo-checked' : ''}`}\r\n role=\"presentation\"\r\n >\r\n 3 ? 'yotpo-checked' : ''}`}\r\n role=\"presentation\"\r\n >\r\n 4 ? 'yotpo-checked' : ''}`}\r\n role=\"presentation\"\r\n >\r\n \r\n ({s.ui.review_count})\r\n \r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n {s.ui.show_pricing && (\r\n
\r\n {/* {s.ui.msrp > 0 && s.isRetail && s.si.priceMSRPDec !== s.si.Price_Retail && (\r\n \r\n {util.currency_noNegatives(s.ui.msrp)}\r\n \r\n )} */}\r\n {util.currency(s.ui.price)}\r\n
\r\n )}\r\n
\r\n \r\n );\r\n const ab_1_render = (\r\n \r\n {s.ui.allow_reviews && s.ui.review_count > 0 && (\r\n \r\n
\r\n 0 ? 'yotpo-checked' : ''}`}\r\n role=\"presentation\"\r\n >\r\n 1 ? 'yotpo-checked' : ''}`}\r\n role=\"presentation\"\r\n >\r\n 2 ? 'yotpo-checked' : ''}`}\r\n role=\"presentation\"\r\n >\r\n 3 ? 'yotpo-checked' : ''}`}\r\n role=\"presentation\"\r\n >\r\n 4 ? 'yotpo-checked' : ''}`}\r\n role=\"presentation\"\r\n >\r\n \r\n {s.ui.review_score.toFixed(1)} based on{' '}\r\n \r\n {s.ui.review_count} reviews\r\n \r\n \r\n
\r\n \r\n )}\r\n\r\n
\r\n {s.prod && s.si && (\r\n

\r\n {s.prod && s.prod.IsCAF ? '' : `${s.si.InstName} `}\r\n {s.ui.product_title}\r\n

\r\n )}\r\n
\r\n {!util.isNullOrWhiteSpace(s.ui.sku) && (\r\n SKU: {s.ui.sku}\r\n )}\r\n {/* {!s.pcs.is_caf && Item #: {s.ui.item_id}} */}\r\n
\r\n
\r\n {s.ui.show_pricing && (\r\n
\r\n {util.currency(s.ui.price)}\r\n {/*{s.ui.msrp > 0 && s.isRetail && (*/}\r\n {/*
*/}\r\n {/* */}\r\n {/* {util.currency_noNegatives(s.ui.price + s.ui.msrp)}*/}\r\n {/* */}\r\n {/* {`${s.ui.msrp.toFixed()}% OFF`}*/}\r\n {/*
*/}\r\n {/*)}*/}\r\n
\r\n )}\r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n \r\n {this.productDescription &&
  • {this.productDescription}
  • }\r\n\r\n {s.prod &&\r\n !s.prod.IsCAF &&\r\n s.prod.LevelLock &&\r\n (s.PortalID === 0 || !__portal.DisableProdDescLinks) &&\r\n !s.prod.HideLevelLock && (\r\n
  • \r\n {s.si.ph_desc_ll} \r\n
  • \r\n )}\r\n\r\n {s.prod &&\r\n !s.prod.IsCAF &&\r\n s.prod.LevelLock &&\r\n (s.PortalID !== 0 || __portal.DisableProdDescLinks) &&\r\n !s.prod.HideLevelLock && (\r\n
  • {s.si.ph_desc_ll} Level-Lock Frame Hanging System!
  • \r\n )}\r\n \r\n )}\r\n \r\n );\r\n\r\n if (\r\n AbTestStore.HasKey(ABTestKeys.ab_green_product) &&\r\n AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1)\r\n ) {\r\n return ab_1_render;\r\n } else {\r\n return default_render;\r\n }\r\n }\r\n}\r\n\r\nexport default ProductHeader;\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction} from 'mobx';\r\nimport * as data from '../data';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport ModalSimple from '../../global/modal-simple';\r\nimport * as api from '../api';\r\ndeclare var __portal: IPortalSettings;\r\ndeclare var __promo_json: IPromoObj;\r\n\r\n@observer\r\nexport default class PromoRedeem extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.save = this.save.bind(this);\r\n }\r\n\r\n @action\r\n save = async () => {\r\n api.redeemCode();\r\n };\r\n\r\n\r\n render() {\r\n if(__promo_json.redeemAvailable === false){\r\n return (
    );\r\n } else {\r\n\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n Redeem\r\n {__promo_json.redeemOff}\r\n with code {__promo_json.redeemCode}\r\n
    \r\n
    \r\n );\r\n }\r\n}","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction, toJS} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport ModalSimple from '../../global/modal-simple';\r\nimport * as emitter from '../../global/emitter';\r\nimport AbTestStore, {ABTestKeys} from '../../global/store/ab-test.store';\r\n\r\n@observer\r\nexport default class QtyComponent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.save = this.save.bind(this);\r\n makeObservable(this);\r\n }\r\n\r\n abForceUpdate = async () => {\r\n this.forceUpdate();\r\n };\r\n\r\n componentDidMount(): void {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n }\r\n\r\n @action\r\n save = async (e: React.ChangeEvent) => {\r\n runInAction(() => {\r\n s.pcs.qty = parseInt(e.target.value, 10);\r\n });\r\n };\r\n\r\n render() {\r\n if (!s.ready || !s.ui.show_cust) {\r\n return;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n Quantity\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) &&
    }\r\n
    \r\n );\r\n }\r\n}\r\n","import {observer} from 'mobx-react';\r\nimport React from 'react';\r\nimport {action, makeObservable, observable} from 'mobx';\r\nimport {RelatedProduct} from './related-products';\r\n\r\ntype Props = {\r\n product: RelatedProduct;\r\n};\r\n\r\n@observer\r\nexport default class ProductItem extends React.Component {\r\n @observable zoomImgUrl: string;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.getZoomImgUrl();\r\n makeObservable(this);\r\n }\r\n\r\n @action\r\n getZoomImgUrl() {\r\n const {src} = this.props.product;\r\n const split = src.split('/');\r\n const resolution = split[split.length - 1];\r\n const newResolution = resolution.replace(/0_\\d+_\\d+/, '0_800_800');\r\n\r\n this.zoomImgUrl = src.replace(resolution, newResolution);\r\n }\r\n\r\n render() {\r\n const {id, src, link, price} = this.props.product;\r\n const label = 'quick look';\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {window.innerWidth > 1200 ? (\r\n `}\r\n style={{color: 'gray'}}\r\n >\r\n {label}\r\n
    \r\n ) : (\r\n {label}\r\n )}\r\n ${price}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import {observer} from 'mobx-react';\r\nimport React from 'react';\r\nimport {makeObservable} from 'mobx';\r\nimport s from '../../s';\r\nimport {Swiper, SwiperSlide} from 'swiper/react';\r\nimport {Keyboard, Navigation} from 'swiper/modules';\r\nimport 'swiper/scss';\r\nimport 'swiper/scss/navigation';\r\nimport ProductItem from './product-item';\r\n\r\ntype Props = {};\r\n\r\nexport type RelatedProduct = {\r\n id: number;\r\n src: string;\r\n link: string;\r\n price: number;\r\n};\r\n\r\n// just for testing purposes, will be removed in phase 2\r\nconst price = 199.95;\r\nconst link = 'https://www.diplomaframe.com/corn/masterpiece-medallion-diploma-frame-15277.aspx';\r\nconst src =\r\n 'https://img.diplomaframe.com/i/0_200_300_1_143_375_36_0_4_1088_0___0____0__11.000_0_8.500_0_0_0_0.png';\r\nconst relatedProducts: RelatedProduct[] = [\r\n {id: 1, src, price, link},\r\n {id: 2, src, price, link},\r\n {id: 3, src, price, link},\r\n {id: 4, src, price, link},\r\n {id: 5, src, price, link},\r\n {id: 6, src, price, link},\r\n {id: 7, src, price, link},\r\n {id: 8, src, price, link},\r\n {id: 9, src, price, link},\r\n {id: 10, src, price, link},\r\n];\r\n\r\n@observer\r\nexport default class RelatedProducts extends React.Component {\r\n constructor(props: Props) {\r\n super(props);\r\n makeObservable(this);\r\n }\r\n\r\n render() {\r\n if (!s.ready) {\r\n return;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n Related Products\r\n
    \r\n \r\n \r\n {relatedProducts.map((p, i) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import {observer} from 'mobx-react';\r\nimport React from 'react';\r\nimport {action} from 'mobx';\r\nimport * as util from '../../../util';\r\n\r\ntype Props = {\r\n id: string;\r\n label: string;\r\n};\r\n\r\n@observer\r\nclass InfoIcon extends React.Component {\r\n @action\r\n click(e: React.MouseEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n util.modal(this.props.id);\r\n }\r\n\r\n render() {\r\n return (\r\n this.click(e)}\r\n role=\"button\"\r\n aria-label={`Open dialog with ${this.props.label} for this product`}\r\n aria-haspopup=\"dialog\"\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default InfoIcon;\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction, toJS} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../../s';\r\nimport * as util from '../../../util';\r\nimport ModalSimple from '../../../global/modal-simple';\r\nimport {Swiper, SwiperSlide} from 'swiper/react';\r\nimport 'swiper/scss';\r\nimport 'swiper/scss/scrollbar';\r\nimport 'swiper/scss/navigation';\r\nimport 'swiper/scss/pagination';\r\nimport 'swiper/scss/zoom';\r\nimport {Keyboard, Scrollbar, Navigation, Pagination, Zoom} from 'swiper/modules';\r\n\r\ninterface ISliderRealImagesProps {\r\n fullWidth?: boolean;\r\n}\r\n\r\n@observer\r\nexport default class SliderRealImages extends React.Component {\r\n @observable zoom_index: number = -1;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.toggleZoom = this.toggleZoom.bind(this);\r\n makeObservable(this);\r\n document.addEventListener('modal-closed', function (e: any) {\r\n if (e.detail === 'modal-prod-swiper-real') {\r\n runInAction(() => {\r\n s.ui.zoom_real_images = false;\r\n });\r\n }\r\n });\r\n }\r\n\r\n @action\r\n toggleZoom = async (i: number) => {\r\n runInAction(() => {\r\n this.zoom_index = i;\r\n s.ui.zoom_real_images = true;\r\n });\r\n };\r\n\r\n render() {\r\n if (!s.ready || !s.prod || !s.prod.real_images || s.prod.real_images.length < 3) {\r\n return;\r\n }\r\n return (\r\n
    \r\n \r\n {s.prod.real_images.map((m, i: number) => (\r\n \r\n
    \r\n \r\n \r\n this.toggleZoom(i)}\r\n />\r\n \r\n
    \r\n \r\n ))}\r\n \r\n {s.ui.zoom_real_images && (\r\n (s.ui.zoom_real_images = false)}\r\n >\r\n \r\n {s.prod.real_images.map((m, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )}\r\n
    \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction, toJS} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../../s';\r\nimport * as util from '../../../util';\r\nimport ModalSimple from '../../../global/modal-simple';\r\nimport {Swiper, SwiperSlide} from 'swiper/react';\r\nimport 'swiper/scss';\r\nimport 'swiper/scss/scrollbar';\r\nimport 'swiper/scss/navigation';\r\nimport 'swiper/scss/pagination';\r\nimport 'swiper/scss/zoom';\r\nimport {Keyboard, Scrollbar, Navigation, Pagination, Zoom} from 'swiper/modules';\r\nimport ProductRender from '../../rendering/render';\r\nimport {r} from '../../rendering/core';\r\nimport * as emitter from '../../../global/emitter';\r\nimport AbTestStore, {ABTestKeys} from '../../../global/store/ab-test.store';\r\n\r\ndeclare const window: any;\r\n\r\n@observer\r\nexport default class SliderTH extends React.Component {\r\n @observable zoom_id: string = '';\r\n @observable slideCount: number = 6;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.loadSwiper = this.loadSwiper.bind(this);\r\n this.loadSwiperZoom = this.loadSwiperZoom.bind(this);\r\n this.toggleZoom = this.toggleZoom.bind(this);\r\n makeObservable(this);\r\n\r\n this.getSlidesPerView();\r\n\r\n document.addEventListener('modal-closed', function (e: any) {\r\n if (e.detail === 'modal-prod-swiper-th') {\r\n runInAction(() => {\r\n s.ui.zoom_thumbnails = false;\r\n });\r\n }\r\n });\r\n }\r\n\r\n abForceUpdate = async () => this.forceUpdate();\r\n\r\n componentDidMount() {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n }\r\n\r\n @computed get show_slider(): boolean {\r\n if (!s.ready || !s.prod) {\r\n return false;\r\n }\r\n\r\n if (\r\n s.prod.MouldingID < 1 &&\r\n s.prod.Mat1_ID < 1 &&\r\n s.prod.th1Disabled &&\r\n s.prod.th2Disabled &&\r\n s.prod.th3Disabled &&\r\n s.prod.th4Disabled &&\r\n s.prod.th5Disabled &&\r\n s.prod.th6Disabled &&\r\n s.prod.th7Disabled &&\r\n s.prod.th8Disabled &&\r\n s.prod.th9Disabled &&\r\n s.prod.th10Disabled\r\n ) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n @computed get do_loop(): boolean {\r\n if (!s.ready) {\r\n return true;\r\n }\r\n\r\n let slideCount = 0;\r\n if (s.prod.CustomizationMethod !== 1) {\r\n slideCount++;\r\n }\r\n if (s.pcs.moulding_id > 0 && s.ui.moulding_has_zoom) {\r\n slideCount++;\r\n }\r\n if (!s.prod.th5Disabled && !util.isNullOrWhiteSpace(s.prod.th5)) {\r\n slideCount++;\r\n }\r\n if (!s.prod.th6Disabled && !util.isNullOrWhiteSpace(s.prod.th6)) {\r\n slideCount++;\r\n }\r\n if (s.pcs.mat1_id > 0) {\r\n slideCount++;\r\n }\r\n if (s.pcs.insignia_id > 0) {\r\n slideCount++;\r\n }\r\n if (s.prod.real_images_th && s.prod.real_images_th.length > 0) {\r\n slideCount += s.prod.real_images_th.length;\r\n }\r\n\r\n if (slideCount < 3) {\r\n return false;\r\n }\r\n\r\n if (s.prod.CustomizationMethod < 2) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n @action getSlidesPerView(value: number = 0) {\r\n if (window.innerWidth < 340) {\r\n this.slideCount = 3;\r\n } else if (window.innerWidth < 400) {\r\n this.slideCount = 3 + value;\r\n } else if (window.innerWidth < 510) {\r\n this.slideCount = 4 + value;\r\n } else if (window.innerWidth < 580) {\r\n this.slideCount = 5 + value;\r\n } else {\r\n this.slideCount = 6 + value;\r\n }\r\n }\r\n\r\n @action\r\n loadSwiper = async (swiper: any) => {\r\n runInAction(() => {\r\n util.ariaPulse();\r\n });\r\n };\r\n\r\n @action\r\n loadSwiperZoom = async (swiper: any) => {\r\n runInAction(() => {\r\n // console.log(swiper);\r\n // console.log(swiper.slides);\r\n // console.log('zoom id', this.zoom_id);\r\n if (!util.isNullOrWhiteSpace(this.zoom_id)) {\r\n var ele = document.getElementById(this.zoom_id);\r\n // console.log('ele', ele);\r\n var index = parseInt(ele?.attributes['data-swiper-slide-index'].value, 10);\r\n // console.log('index', index);\r\n swiper.slideToLoop(index);\r\n\r\n setTimeout(function () {\r\n swiper.slideToLoop(index);\r\n }, 250);\r\n setTimeout(function () {\r\n swiper.slideToLoop(index);\r\n }, 1250);\r\n }\r\n this.zoom_id = '';\r\n util.ariaPulse();\r\n\r\n // swiper.\r\n });\r\n };\r\n\r\n @action\r\n toggleZoom = async (e: any) => {\r\n runInAction(() => {\r\n this.zoom_id = e;\r\n s.pcs.css_zoom = r.render(s.prod.orig_pcs, util.RenderType.Zoom);\r\n s.ui.zoom_thumbnails = true;\r\n });\r\n };\r\n\r\n @computed get hide_dynamic(): boolean {\r\n if (!s.ready) {\r\n return false;\r\n }\r\n\r\n if (\r\n [70214, 70215, 70244, 84054].includes(s.prod.ProductID) ||\r\n ['391332'].includes(s.prod.ItemID)\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n @computed get show_smart_box() {\r\n if (!s.ready) {\r\n return false;\r\n }\r\n if (!s.ui.allow_smartbox) {\r\n return false;\r\n }\r\n if (\r\n s.prod.Shipping_BoxID <= 3 &&\r\n s.prod.IsFrame &&\r\n !s.prod.ProductTypeDisplayName.toLowerCase().includes('Photo') &&\r\n !this.hide_dynamic\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n render() {\r\n if (!s.ready) {\r\n return;\r\n }\r\n if (!this.show_slider) {\r\n return;\r\n }\r\n\r\n if (AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1)) {\r\n s.product_thumbnail_height = 65;\r\n this.getSlidesPerView(1);\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {s.prod.CustomizationMethod === 2 && (\r\n this.toggleZoom('slide-prod')}\r\n aria-label=\"Open larger product image\"\r\n tabIndex={0}\r\n >\r\n
    \r\n {!s.pcs.is_caf && (\r\n 1\r\n ? `https://img.diplomaframe.com/i/${s.prod.ProductID}_220_250.png?MouldingID=${s.pcs.moulding_id}&PrimaryMatID=${s.pcs.mat1_id}&SecondaryMatID=${s.pcs.mat2_id > 0 ? s.pcs.mat2_id : 0}&InsigniaID=${s.pcs.insignia_id > 0 ? s.pcs.insignia_id : 0}&LinoID=${s.pcs.lino_id > 0 ? s.pcs.lino_id : 0}`\r\n : `${s.prod.Image_Thumb}`\r\n }\r\n className=\"prod-th\"\r\n onClick={this.toggleZoom}\r\n />\r\n )}\r\n {s.pcs.is_caf && (\r\n 1\r\n ? `https://img.diplomaframe.com/i/0_220_250_${s.prod.ProductID}_${s.pcs.moulding_id}_${s.pcs.mat1_id}_${s.pcs.mat2_id > 0 ? s.pcs.mat2_id : 0}_${s.pcs.insignia_id > 0 ? s.pcs.insignia_id : 0}_${s.prod.DocumentID}_${s.prod.ExtraEntityID}_0___0____0__11.000_0_8.500_0_0_0_0.png`\r\n : `${s.prod.Image_Thumb}`\r\n }\r\n className=\"prod-th\"\r\n onClick={this.toggleZoom}\r\n />\r\n )}\r\n
    \r\n \r\n )}\r\n\r\n {s.pcs.moulding_id > 0 && s.ui.moulding_has_zoom && (\r\n this.toggleZoom('slide-prod-moulding')}\r\n aria-label=\"Open larger image of moulding\"\r\n tabIndex={0}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {s.prod && s.prod.is_tassel_cord && (\r\n this.toggleZoom('slide-prod-tassel-cord')}\r\n aria-label=\"Open larger image of tassel cord thumbnail\"\r\n id=\"\"\r\n tabIndex={0}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!s.prod.th5Disabled && !util.isNullOrWhiteSpace(s.prod.th5) && (\r\n this.toggleZoom(`slide-prod-th5`)}\r\n aria-label={`Open larger image of product thumbnail #5`}\r\n tabIndex={0}\r\n >\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n {!s.prod.th6Disabled && !util.isNullOrWhiteSpace(s.prod.th6) && (\r\n this.toggleZoom(`slide-prod-th6`)}\r\n aria-label={`Open larger image of product thumbnail #6`}\r\n tabIndex={0}\r\n >\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n {!s.prod.th1Disabled && !util.isNullOrWhiteSpace(s.prod.th1) && (\r\n this.toggleZoom(`slide-prod-th1`)}\r\n aria-label={`Open larger image of product thumbnail #1`}\r\n tabIndex={0}\r\n >\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n {!s.prod.th2Disabled && !util.isNullOrWhiteSpace(s.prod.th2) && (\r\n this.toggleZoom(`slide-prod-th2`)}\r\n aria-label={`Open larger image of product thumbnail #2`}\r\n tabIndex={0}\r\n >\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n {!s.prod.th3Disabled && !util.isNullOrWhiteSpace(s.prod.th3) && (\r\n this.toggleZoom(`slide-prod-th3`)}\r\n aria-label={`Open larger image of product thumbnail #3`}\r\n tabIndex={0}\r\n >\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n {!s.prod.th4Disabled && !util.isNullOrWhiteSpace(s.prod.th4) && (\r\n this.toggleZoom(`slide-prod-th4`)}\r\n aria-label={`Open larger image of product thumbnail #4`}\r\n tabIndex={0}\r\n >\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n {!s.prod.th7Disabled && !util.isNullOrWhiteSpace(s.prod.th7) && (\r\n this.toggleZoom(`slide-prod-th7`)}\r\n aria-label={`Open larger image of product thumbnail #7`}\r\n tabIndex={0}\r\n >\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n {!s.prod.th8Disabled && !util.isNullOrWhiteSpace(s.prod.th8) && (\r\n this.toggleZoom(`slide-prod-th8`)}\r\n aria-label={`Open larger image of product thumbnail #8`}\r\n tabIndex={0}\r\n >\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n {!s.prod.th9Disabled && !util.isNullOrWhiteSpace(s.prod.th9) && (\r\n this.toggleZoom(`slide-prod-th9`)}\r\n aria-label={`Open larger image of product thumbnail #9`}\r\n tabIndex={0}\r\n >\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n {!s.prod.th10Disabled && !util.isNullOrWhiteSpace(s.prod.th10) && (\r\n this.toggleZoom(`slide-prod-th10`)}\r\n aria-label={`Open larger image of product thumbnail #10`}\r\n tabIndex={0}\r\n >\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n\r\n {s.pcs.mat1_id > 0 && (\r\n this.toggleZoom('slide-prod-matcombo')}\r\n aria-label=\"Open larger image of mats\"\r\n tabIndex={0}\r\n >\r\n \r\n 0 ? `_${s.pcs.mat2_id.toString()}` : ''}.webp`}\r\n />\r\n 0 ? `_${s.pcs.mat2_id.toString()}` : ''}.png`}\r\n height=\"75\"\r\n width=\"75\"\r\n alt={s.ui.title_mat_combo}\r\n onClick={this.toggleZoom}\r\n style={{\r\n maxWidth: window.innerWidth * 0.8,\r\n maxHeight: window.innerHeight * 0.8,\r\n }}\r\n />\r\n \r\n \r\n )}\r\n\r\n {s.pcs.insignia_id > 0 && (\r\n this.toggleZoom('slide-prod-ins')}\r\n aria-label=\"Open larger image of insignia\"\r\n tabIndex={0}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n\r\n {s.prod.real_images_th.map(m => (\r\n this.toggleZoom(`slide-prod-real-${m.id}`)}\r\n aria-label=\"Open larger image of this real life image\"\r\n tabIndex={0}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n\r\n {s.prod.CustomizationMethod !== 2 &&\r\n s.prod.OldInsigniaThumb &&\r\n s.prod.OldInsigniaThumb != '' && (\r\n this.toggleZoom('slide-prod-old-ins')}\r\n aria-label=\"Open larger image of insignia\"\r\n tabIndex={0}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {this.show_smart_box && (\r\n this.toggleZoom('slide-prod-smartbox')}\r\n aria-label=\"Open larger image of smartbox packaging\"\r\n tabIndex={0}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!AbTestStore.ABIsVariant(ABTestKeys.product_glass, 1) &&\r\n s.prod &&\r\n s.prod.IsFrame &&\r\n s.prod.ProductID !== 84054 &&\r\n s.prod.ProductID !== 70214 &&\r\n !s.prod.disableGlassUpgrades && (\r\n this.toggleZoom('slide-prod-glassoptions')}\r\n aria-label=\"Open larger image of glass options\"\r\n tabIndex={0}\r\n >\r\n \r\n {s.prod.AllowGlassID2 > 0 && (\r\n \r\n )}\r\n {s.prod.AllowGlassID2 > 0 && (\r\n \r\n )}\r\n\r\n {(!s.prod.AllowGlassID2 || s.prod.AllowGlassID2 < 1) && (\r\n \r\n )}\r\n {(!s.prod.AllowGlassID2 || s.prod.AllowGlassID2 < 1) && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n {s.ui.zoom_thumbnails && (\r\n (s.ui.zoom_thumbnails = false)}\r\n >\r\n \r\n {s.prod.CustomizationMethod === 2 && (\r\n \r\n \r\n \r\n )}\r\n\r\n {s.pcs.moulding_id > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {s.prod && s.prod.is_tassel_cord && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!s.prod.th5Disabled && !util.isNullOrWhiteSpace(s.prod.th5) && (\r\n \r\n
    \r\n Photo represents scale dimensions only (final art/colors may\r\n differ)\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {!s.prod.th6Disabled && !util.isNullOrWhiteSpace(s.prod.th6) && (\r\n \r\n
    \r\n Photo represents scale dimensions only (final art/colors may\r\n differ)\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {!s.prod.th1Disabled && !util.isNullOrWhiteSpace(s.prod.th1) && (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {!s.prod.th2Disabled && !util.isNullOrWhiteSpace(s.prod.th2) && (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {!s.prod.th3Disabled && !util.isNullOrWhiteSpace(s.prod.th3) && (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {!s.prod.th4Disabled && !util.isNullOrWhiteSpace(s.prod.th4) && (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {!s.prod.th7Disabled && !util.isNullOrWhiteSpace(s.prod.th7) && (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {!s.prod.th8Disabled && !util.isNullOrWhiteSpace(s.prod.th8) && (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {!s.prod.th9Disabled && !util.isNullOrWhiteSpace(s.prod.th9) && (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {!s.prod.th10Disabled && !util.isNullOrWhiteSpace(s.prod.th10) && (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n\r\n {s.pcs.mat1_id > 0 && (\r\n \r\n \r\n 0 ? `_${s.pcs.mat2_id.toString()}` : ''}.webp`}\r\n />\r\n 0 ? `_${s.pcs.mat2_id.toString()}` : ''}.png`}\r\n alt={s.ui.title_mat_combo}\r\n onClick={this.toggleZoom}\r\n style={{\r\n maxWidth: window.innerWidth * 0.8,\r\n maxHeight: window.innerHeight * 0.8,\r\n }}\r\n />\r\n \r\n \r\n )}\r\n\r\n {s.pcs.insignia_id > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {s.prod.real_images_th.map(m => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n\r\n {s.prod.CustomizationMethod !== 2 &&\r\n s.prod.OldInsigniaThumb &&\r\n s.prod.OldInsigniaThumb != '' && (\r\n \r\n
    \r\n \r\n
    \r\n \r\n )}\r\n\r\n {this.show_smart_box && (\r\n \r\n
    \r\n Photo represents our protective SMARTbox packaging (actual\r\n frame may differ)\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!AbTestStore.ABIsVariant(ABTestKeys.product_glass, 1) &&\r\n s.prod &&\r\n s.prod.IsFrame &&\r\n s.prod.ProductID !== 84054 &&\r\n s.prod.ProductID !== 70214 &&\r\n !s.prod.disableGlassUpgrades && (\r\n \r\n {s.prod.AllowGlassID2 > 0 && (\r\n \r\n \r\n \r\n \r\n )}\r\n {(!s.prod.AllowGlassID2 || s.prod.AllowGlassID2 < 1) && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport {observable, makeObservable} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as emitter from '../../global/emitter';\r\n\r\ndeclare const collapse: {\r\n init: () => void;\r\n};\r\n\r\ntype Props = {\r\n toggleExpandable: (e: React.KeyboardEvent, id: string) => void;\r\n};\r\n\r\n@observer\r\nexport default class Yotpo extends React.Component {\r\n @observable init: boolean = false;\r\n @observable yotpo_success: boolean = false;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n makeObservable(this);\r\n }\r\n\r\n abForceUpdate = async () => this.forceUpdate();\r\n\r\n componentDidMount(): void {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n (function e() {\r\n var e = document.createElement('script');\r\n (e.type = 'text/javascript'),\r\n (e.defer = true),\r\n (e.src = '//staticw2.yotpo.com/H8vQ6ytRf3Uo0eAAlJJh85FR61IeET7EXRvzKasQ/widget.js');\r\n var t = document.getElementsByTagName('script')[0];\r\n t.parentNode?.insertBefore(e, t);\r\n })();\r\n }\r\n\r\n componentDidUpdate() {\r\n if (!this.init) {\r\n this.init = true;\r\n collapse.init();\r\n }\r\n }\r\n\r\n render() {\r\n if (!s.ready) {\r\n return;\r\n }\r\n\r\n if (!s.pcs.is_caf) {\r\n return (\r\n
    \r\n this.props.toggleExpandable(e, 'prod-reviews-click')}\r\n >\r\n Customer Reviews\r\n
    \r\n \r\n 1\r\n ? `https://img.diplomaframe.com/i/${s.prod.ProductID}_220_250.png`\r\n : `${s.prod.Image_Thumb}`\r\n }\r\n />\r\n \r\n \r\n );\r\n } else {\r\n return;\r\n }\r\n }\r\n}\r\n","interface ShippingSizeDataClass {\r\n id: number;\r\n width: number;\r\n height: number;\r\n}\r\nvar _ssd: ShippingSizeDataClass[] = [];\r\n_ssd.push({id: 1, width: 8.5, height: 11.0});\r\n_ssd.push({id: 2, width: 10.0, height: 12.0});\r\n_ssd.push({id: 3, width: 11.0, height: 14.0});\r\n_ssd.push({id: 4, width: 12.0, height: 16.0});\r\n_ssd.push({id: 5, width: 14.0, height: 18.0});\r\n_ssd.push({id: 6, width: 16.0, height: 20.0});\r\n_ssd.push({id: 7, width: 18.0, height: 24.0});\r\nexport const ShippingSizeData: ShippingSizeDataClass[] = _ssd;\r\n\r\ninterface DocumentSizeTierClass {\r\n DocumentSizeTierID: number;\r\n Width: number;\r\n Height: number;\r\n IsMax: boolean;\r\n UsePlexiglass: boolean;\r\n}\r\nvar _dstc: DocumentSizeTierClass[] = [];\r\n_dstc.push({DocumentSizeTierID: 1, Width: 8.0, Height: 10.0, IsMax: false, UsePlexiglass: false});\r\n_dstc.push({DocumentSizeTierID: 2, Width: 8.5, Height: 11.7, IsMax: false, UsePlexiglass: false});\r\n_dstc.push({DocumentSizeTierID: 3, Width: 10.0, Height: 12.0, IsMax: false, UsePlexiglass: false});\r\n_dstc.push({DocumentSizeTierID: 4, Width: 11.0, Height: 14.0, IsMax: false, UsePlexiglass: false});\r\n_dstc.push({DocumentSizeTierID: 5, Width: 12.0, Height: 16.0, IsMax: false, UsePlexiglass: false});\r\n_dstc.push({DocumentSizeTierID: 8, Width: 14.0, Height: 18.0, IsMax: false, UsePlexiglass: true});\r\n_dstc.push({DocumentSizeTierID: 9, Width: 16.0, Height: 20.0, IsMax: false, UsePlexiglass: true});\r\n_dstc.push({DocumentSizeTierID: 10, Width: 18.0, Height: 22.0, IsMax: false, UsePlexiglass: true});\r\n_dstc.push({DocumentSizeTierID: 11, Width: 20.0, Height: 24.0, IsMax: false, UsePlexiglass: true});\r\n_dstc.push({DocumentSizeTierID: 12, Width: 200.0, Height: 200.0, IsMax: true, UsePlexiglass: true});\r\n_dstc.push({DocumentSizeTierID: 13, Width: 8.0, Height: 9.3, IsMax: false, UsePlexiglass: false});\r\n_dstc.push({DocumentSizeTierID: 14, Width: 5.0, Height: 7.0, IsMax: false, UsePlexiglass: false});\r\nexport const DocumentSizeTierData: DocumentSizeTierClass[] = _dstc;\r\n","import React from 'react';\r\nimport {observable, action, computed, makeObservable, runInAction} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport s from './s';\r\nimport './product.scss';\r\nimport * as util from '../util';\r\nimport ProductHeader from './components/product-header';\r\nimport DocSize from './components/doc-size';\r\nimport GradYear from './components/grad-year';\r\nimport Moulding from './components/moulding/moulding';\r\nimport Mat from './components/mat';\r\nimport ProductRender from './rendering/render';\r\nimport Glass from './components/glass';\r\nimport DescMain from './components/desc-main';\r\nimport SliderTH from './components/slider/slider-th';\r\nimport SliderRealImages from './components/slider/slider-real-images';\r\nimport Yotpo from './components/yotpo';\r\nimport ATC from './components/atc/atc';\r\nimport Category from './components/category';\r\nimport EngravedPlate from './components/engraved-plate';\r\nimport Lino from './components/lino';\r\nimport Insignia from './components/insignia';\r\nimport QtyComponent from './components/qty';\r\nimport CustomFieldsComponent from './components/customfields';\r\nimport CAFDocSize from './components/caf-doc-size';\r\nimport ModalSimple from '../global/modal-simple';\r\nimport ImageUpload from './components/image-upload';\r\nimport ProductProcessing from './components/prod-processing';\r\nimport ProductShipping from './components/product-shipping';\r\nimport ImageUploadCopy from './components/image-upload-copy';\r\nimport RelatedProducts from './components/related-products/related-products';\r\nimport * as emitter from '../global/emitter';\r\nimport AbTestStore, {ABTestKeys} from '../global/store/ab-test.store';\r\nimport {r} from './rendering/core';\r\nimport LevelLockModal from './components/modals/level-lock.modal';\r\nimport ReturnPolicyModal from '../checkout/components/modals/return-policy.modal';\r\n\r\ndeclare var __promo_json: IPromoObj;\r\ndeclare var __fast_ship: boolean;\r\ndeclare var __fast_ship_text: string;\r\ndeclare var window: any;\r\ndeclare var __portal: IPortalSettings;\r\n\r\n@observer\r\nclass ProductComponent extends React.Component {\r\n @observable canShare: boolean = false;\r\n\r\n constructor(props) {\r\n super(props);\r\n s.isRetail = true;\r\n this.ab_update = this.ab_update.bind(this);\r\n this.canShare = !!navigator.share;\r\n makeObservable(this);\r\n window.react_product = this;\r\n }\r\n\r\n @action\r\n ab_update(_key: string, _value: number) {\r\n runInAction(() => {\r\n window.ab[_key] = _value;\r\n if (!AbTestStore.ab) {\r\n AbTestStore.ab = {};\r\n }\r\n AbTestStore.ab[_key] = _value;\r\n emitter.eventEmitter.dispatch(emitter.EventType.AB, 'ab');\r\n this.forceUpdate();\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n if (s.prod == undefined) {\r\n s.init();\r\n }\r\n }\r\n\r\n toggleExpandable(e: React.KeyboardEvent, id: string) {\r\n if (e.key === 'Enter') {\r\n const header = document.getElementById(id);\r\n\r\n if (header) {\r\n header.click();\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n if (!s.si) return;\r\n\r\n return (\r\n
    \r\n {s.ui.image_uploading && }\r\n {!AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n \r\n \r\n\r\n {!s.ui.show_caf_doc_sizes && (\r\n
    \r\n \r\n
    \r\n )}\r\n {s.ui.allow_customer_photos &&\r\n !s.ui.show_caf_doc_sizes &&\r\n !s.pcs.is_caf &&\r\n window.innerWidth > 1200 &&\r\n s.prod &&\r\n s.prod.real_images &&\r\n s.prod.real_images.length >= 3 && (\r\n
    \r\n
    \r\n \r\n Customer Photos\r\n
    \r\n
    Tag us and share your pics with #EarnItFrameIt
    \r\n \r\n
    \r\n )}\r\n
    \r\n {!s.ui.show_caf_doc_sizes && (\r\n
    \r\n {AbTestStore.ABIsVariant(ABTestKeys.ab_green_product, 1) && (\r\n
    \r\n \r\n
    \r\n )}\r\n {s.ui.is_bo && (\r\n
    \r\n
    Backordered Product
    \r\n {s.ui.bo_msg}\r\n
    \r\n )}\r\n {window.innerWidth < 1200 && s.ui.show_pricing && (\r\n \r\n
    \r\n {this.canShare && s.isRetail && (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n {util.currency(s.ui.price)}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n {s.prod &&\r\n s.ui.categoryIds.map((m, i) => (\r\n \r\n ))}\r\n\r\n {s.prod &&\r\n (s.prod.CustomField1_Enabled ||\r\n s.prod.CustomField2_Enabled ||\r\n s.prod.CustomField3_Enabled) && }\r\n\r\n {/* {s.prod && s.si && s.si.StoreTypeID !== 5 && (s.prod.allowUpload1 || s.prod.allowUpload2) && } */}\r\n {s.prod &&\r\n s.si &&\r\n s.si.StoreTypeID !== 5 &&\r\n (s.prod.allowUpload1 || s.prod.allowUpload2) && }\r\n {s.prod && s.prod.mouldings && s.prod.mouldings.length > 1 && (\r\n \r\n )}\r\n \r\n {s.prod && s.prod.insignias && s.prod.insignias.length > 1 && (\r\n \r\n )}\r\n {s.prod && s.prod.EngravedPlateStatusID > 0 && }\r\n {s.prod && s.prod.linos && s.prod.linos.length > 1 && }\r\n {s.prod && s.si && s.si.StoreTypeID !== 5 && }\r\n\r\n {s.prod &&\r\n s.si &&\r\n s.si.StoreProductMessage &&\r\n s.si.StoreProductMessage.length > 0 && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n {s.ui.show_grad_year && }\r\n {s.pcs.wholesale && s.prod && s.si && s.si.StoreTypeID !== 5 && (\r\n \r\n )}\r\n\r\n {s.ui.show_atc && }\r\n\r\n {s.isRetail &&\r\n __promo_json.hasPromo &&\r\n __promo_json.promo &&\r\n __promo_json.promo.length > 0 &&\r\n !(\r\n s.prod &&\r\n s.si &&\r\n s.si.StoreProductMessage &&\r\n s.si.StoreProductMessage.length > 0\r\n ) && (\r\n
    \r\n \r\n
    \r\n
      \r\n
    • \r\n
    \r\n \r\n \r\n
    \r\n {__promo_json.modal1 !== '' && (\r\n
    \r\n )}\r\n {__promo_json.modal1 !== '' &&
    }\r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n util.modal('modal-promo-code')}\r\n aria-label={`Click here for more promotional information.`}\r\n style={{paddingLeft: 4, color: '#000000'}}\r\n >\r\n \r\n \r\n )}\r\n\r\n {__fast_ship &&\r\n s.isRetail &&\r\n s.si &&\r\n s.si.StoreTypeID !== 5 &&\r\n s.__fast_ship_orig && (\r\n
    \r\n
    \r\n \r\n = SHIPS IN 2-3 DAYS\r\n
    \r\n
    \r\n )}\r\n\r\n {!s.pcs.is_caf && window.innerWidth <= 1200 && (\r\n \r\n \r\n Customer Photos\r\n \r\n
    Tag us and share your pics with #EarnItFrameIt
    \r\n \r\n \r\n )}\r\n\r\n {s.si &&\r\n s.si.StoreTypeID === 5 &&\r\n s.isRetail &&\r\n (!s.si.StoreProductMessage ||\r\n s.si.StoreProductMessage.length < 3) && (\r\n
    \r\n \r\n
    \r\n

    \r\n Church Hill Classics is pleased to have\r\n established a partnership with {s.si.StoreName}.\r\n In an effort to fully support this organization,\r\n we refer all sales directly to them. Please\r\n support your {s.si.StoreName}, by placing your\r\n order using one of the methods below.\r\n

    \r\n {s.si.Phone && s.si.Phone.length > 0 && (\r\n

    \r\n You may place your order by\r\n

    \r\n )}\r\n {s.si.Phone && s.si.Phone.length > 0 && (\r\n

    Phone: {s.si.Phone}

    \r\n )}\r\n {s.si.Fax && s.si.Fax.length > 0 && (\r\n

    Fax: {s.si.Fax}

    \r\n )}\r\n {s.si.Address1 && s.si.Address1.length > 0 && (\r\n

    \r\n Stop by the store\r\n

    \r\n )}\r\n {s.si.Address1 && s.si.Address1.length > 0 && (\r\n

    {s.si.Address1}

    \r\n )}\r\n {s.si.Address2 && s.si.Address2.length > 0 && (\r\n

    {s.si.Address2}

    \r\n )}\r\n {s.si.StoreLink && s.si.StoreLink.length > 0 && (\r\n

    \r\n \r\n For online ordering, please visit{' '}\r\n \r\n {s.si.StoreName}\r\n \r\n \r\n

    \r\n )}\r\n
    \r\n \r\n util.modal('modal-linked')}\r\n aria-label=\"Add to cart\"\r\n role=\"button\"\r\n tabIndex={0}\r\n >\r\n Available In Store\r\n
    \r\n \r\n )}\r\n \r\n )}\r\n {s.prod && s.prod.IsCAF && s.ui.show_caf_doc_sizes && (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n {!s.ui.show_caf_doc_sizes && (\r\n \r\n \r\n {s.prod && s.prod.IsFrame && (\r\n
    \r\n {\r\n if (e.key === 'Enter') {\r\n console.log('ffff');\r\n // @ts-ignore\r\n document\r\n .getElementById('framing-instructions-container')\r\n .click();\r\n }\r\n }}\r\n tabIndex={0}\r\n >\r\n FRAMING & HANGING INSTRUCTIONS\r\n
    \r\n \r\n Designed with easy-open backs, our frames include simple\r\n step-by-step instructions and archival-quality mounting\r\n materials for safely inserting your document.{' '}\r\n {s.prod && s.prod.LevelLock && !s.prod.HideLevelLock && (\r\n \r\n Each frame is also shipped with our state-of-the-art{' '}\r\n to keep your frame straight and\r\n locked into place, ensuring professional results every\r\n time.\r\n \r\n )}\r\n \r\n \r\n )}\r\n
    \r\n this.toggleExpandable(e, 'return-policy-container')}\r\n >\r\n {__portal.PortalID === 0\r\n ? '120-Day Return Policy'\r\n : 'Return Policy'}\r\n
    \r\n \r\n {__portal.ProdReturnSnippet}\r\n util.modal('modal-return-policy')}\r\n >\r\n See our easy, 120-day return policy\r\n \r\n \r\n \r\n\r\n {false && }\r\n\r\n {s.ui.allow_reviews && }\r\n\r\n {/* hidden for now */}\r\n\r\n {s.prod && !s.prod.IsCAF && (\r\n \r\n
    \r\n {s.si && s.si.H2_1 !== '' && s.si.H2_1_Content !== '' && (\r\n ${s.si.H2_1}${s.si.H2_1_Content}`,\r\n }}\r\n />\r\n )}\r\n {s.si && s.si.H2_2 !== '' && s.si.H2_2_Content !== '' && (\r\n ${s.si.H2_2}${s.si.H2_2_Content}`,\r\n }}\r\n />\r\n )}\r\n {s.si && s.si.H2_3 !== '' && s.si.H2_3_Content !== '' && (\r\n ${s.si.H2_3}${s.si.H2_3_Content}`,\r\n }}\r\n />\r\n )}\r\n {s.si && s.si.H2_4 !== '' && s.si.H2_4_Content !== '' && (\r\n ${s.si.H2_4}${s.si.H2_4_Content}`,\r\n }}\r\n />\r\n )}\r\n
    \r\n \r\n )}\r\n \r\n )}\r\n\r\n \r\n
    \r\n

    If you customize this product it may not qualify for fast shipping.

    \r\n
    \r\n \r\n \r\n \r\n Indicates the frame material that qualifies for Fast Shipping. If no\r\n icon, the product will ship with standard methods.\r\n
    \r\n
    \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nexport default ProductComponent;\r\n","import {toJS} from 'mobx';\r\nimport * as Util from '../../util';\r\nimport {DocumentSizeTierData} from '../data';\r\nimport {PCS_CSS, ProductStateShare} from '../i';\r\nimport s from '../s';\r\n\r\ndeclare var __oversized: number[];\r\n\r\nexport module r {\r\n export enum EngravedPlateStatusEnum {\r\n None = 0,\r\n Required_Gold = 1,\r\n Required_Silver = 2,\r\n Optional_Gold = 3,\r\n Optional_Silver = 4,\r\n Optional_Both = 5,\r\n Required_Black = 6,\r\n Optional_Black = 7,\r\n }\r\n export enum DYF_FrameStylesEnum {\r\n None = 0,\r\n Single_Document = 1,\r\n Double_Document = 2,\r\n Tassel = 3,\r\n Varsity = 4,\r\n Sports_Oval = 5,\r\n Portrait_Oval = 6,\r\n Campus_Scene = 7,\r\n Cameo = 8,\r\n Spirit = 9,\r\n Photo_Frame = 10,\r\n Century = 11,\r\n SpiritB = 12,\r\n }\r\n\r\n export const DocStackingSizeTiers: DocStackingSizeTiersClass[] = [\r\n {\r\n DocSizeTierID: 1,\r\n CameoRail: 2.875,\r\n DocDistance: 0.0,\r\n DocHeight: 5.0,\r\n DocWidth: 7.0,\r\n DocOverlap: 0.375,\r\n OvalRailSide: 2.25,\r\n OvalRailOvalTop: 1.75,\r\n OvalRailDocTop: 1.75,\r\n SpiritRailTopAndSides: 2.75,\r\n SpiritRailBottom: 3.25,\r\n StandardRail: 1.625,\r\n TasselRailHeight: 3.625,\r\n TasselRailWidth: 2.5,\r\n TasselGap: 1.625,\r\n TasselHeight: 9.75,\r\n TasselWidth: 1.625,\r\n },\r\n {\r\n DocSizeTierID: 2,\r\n CameoRail: 2.875,\r\n DocDistance: 0.0,\r\n DocHeight: 6.0,\r\n DocWidth: 8.0,\r\n DocOverlap: 0.1875,\r\n OvalRailSide: 2.5,\r\n OvalRailOvalTop: 2.25,\r\n OvalRailDocTop: 2.625,\r\n SpiritRailTopAndSides: 2.75,\r\n SpiritRailBottom: 3.25,\r\n StandardRail: 2.625,\r\n TasselRailHeight: 3.625,\r\n TasselRailWidth: 2.5,\r\n TasselGap: 1.625,\r\n TasselHeight: 9.75,\r\n TasselWidth: 1.625,\r\n },\r\n {\r\n DocSizeTierID: 3,\r\n CameoRail: 2.875,\r\n DocDistance: 0.0,\r\n DocHeight: 7.0,\r\n DocWidth: 9.0,\r\n DocOverlap: 0.1875,\r\n OvalRailSide: 2.5,\r\n OvalRailOvalTop: 2.25,\r\n OvalRailDocTop: 2.625,\r\n SpiritRailTopAndSides: 2.75,\r\n SpiritRailBottom: 3.25,\r\n StandardRail: 2.625,\r\n TasselRailHeight: 3.125,\r\n TasselRailWidth: 2.625,\r\n TasselGap: 1.375,\r\n TasselHeight: 9.75,\r\n TasselWidth: 1.625,\r\n },\r\n {\r\n DocSizeTierID: 4,\r\n CameoRail: 3.125,\r\n DocDistance: 0.0,\r\n DocHeight: 8.0,\r\n DocWidth: 10.0,\r\n DocOverlap: 0.1875,\r\n OvalRailSide: 2.75,\r\n OvalRailOvalTop: 3.25,\r\n OvalRailDocTop: 2.625,\r\n SpiritRailTopAndSides: 2.75,\r\n SpiritRailBottom: 3.25,\r\n StandardRail: 2.625,\r\n TasselRailHeight: 2.875,\r\n TasselRailWidth: 2.625,\r\n TasselGap: 1.375,\r\n TasselHeight: 10.25,\r\n TasselWidth: 1.625,\r\n },\r\n {\r\n DocSizeTierID: 5,\r\n CameoRail: 3.1875,\r\n DocDistance: 0.0,\r\n DocHeight: 8.5,\r\n DocWidth: 11.0,\r\n DocOverlap: 0.1875,\r\n OvalRailSide: 2.5,\r\n OvalRailOvalTop: 3.75,\r\n OvalRailDocTop: 2.9375,\r\n SpiritRailTopAndSides: 2.75,\r\n SpiritRailBottom: 3.25,\r\n StandardRail: 2.6875,\r\n TasselRailHeight: 2.6875,\r\n TasselRailWidth: 2.625,\r\n TasselGap: 1.5,\r\n TasselHeight: 10.25,\r\n TasselWidth: 1.625,\r\n },\r\n {\r\n DocSizeTierID: 6,\r\n CameoRail: 3.1875,\r\n DocDistance: 0.0,\r\n DocHeight: 10.0,\r\n DocWidth: 12.0,\r\n DocOverlap: 0.1875,\r\n OvalRailSide: 2.5,\r\n OvalRailOvalTop: 3.75,\r\n OvalRailDocTop: 2.9375,\r\n SpiritRailTopAndSides: 2.75,\r\n SpiritRailBottom: 3.25,\r\n StandardRail: 2.6875,\r\n TasselRailHeight: 2.6875,\r\n TasselRailWidth: 2.625,\r\n TasselGap: 1.5,\r\n TasselHeight: 10.25,\r\n TasselWidth: 1.625,\r\n },\r\n {\r\n DocSizeTierID: 7,\r\n CameoRail: 3.3125,\r\n DocDistance: 0.0,\r\n DocHeight: 11.0,\r\n DocWidth: 14.0,\r\n DocOverlap: 0.3125,\r\n OvalRailSide: 2.5,\r\n OvalRailOvalTop: 3.75,\r\n OvalRailDocTop: 2.9375,\r\n SpiritRailTopAndSides: 3.0,\r\n SpiritRailBottom: 3.5,\r\n StandardRail: 3.063,\r\n TasselRailHeight: 3.063,\r\n TasselRailWidth: 2.6875,\r\n TasselGap: 1.625,\r\n TasselHeight: 10.5,\r\n TasselWidth: 1.625,\r\n },\r\n {\r\n DocSizeTierID: 8,\r\n CameoRail: 3.3125,\r\n DocDistance: 0.0,\r\n DocHeight: 12.0,\r\n DocWidth: 16.0,\r\n DocOverlap: 0.3125,\r\n OvalRailSide: 2.5,\r\n OvalRailOvalTop: 3.75,\r\n OvalRailDocTop: 2.9375,\r\n SpiritRailTopAndSides: 3.0,\r\n SpiritRailBottom: 3.5,\r\n StandardRail: 3.063,\r\n TasselRailHeight: 3.063,\r\n TasselRailWidth: 2.75,\r\n TasselGap: 1.5,\r\n TasselHeight: 11.5,\r\n TasselWidth: 1.625,\r\n },\r\n {\r\n DocSizeTierID: 9,\r\n CameoRail: 3.3125,\r\n DocDistance: 0.0,\r\n DocHeight: 13.0,\r\n DocWidth: 17.0,\r\n DocOverlap: 0.3125,\r\n OvalRailSide: 2.5,\r\n OvalRailOvalTop: 3.75,\r\n OvalRailDocTop: 2.9375,\r\n SpiritRailTopAndSides: 3.0,\r\n SpiritRailBottom: 3.5,\r\n StandardRail: 3.063,\r\n TasselRailHeight: 3.063,\r\n TasselRailWidth: 3.0,\r\n TasselGap: 1.5,\r\n TasselHeight: 11.5,\r\n TasselWidth: 1.625,\r\n },\r\n {\r\n DocSizeTierID: 10,\r\n CameoRail: 3.3125,\r\n DocDistance: 0.0,\r\n DocHeight: 14.0,\r\n DocWidth: 17.0,\r\n DocOverlap: 0.3125,\r\n OvalRailSide: 2.5,\r\n OvalRailOvalTop: 3.75,\r\n OvalRailDocTop: 2.9375,\r\n SpiritRailTopAndSides: 3.0,\r\n SpiritRailBottom: 3.5,\r\n StandardRail: 3.313,\r\n TasselRailHeight: 3.313,\r\n TasselRailWidth: 3.25,\r\n TasselGap: 1.5,\r\n TasselHeight: 11.5,\r\n TasselWidth: 1.625,\r\n },\r\n {\r\n DocSizeTierID: 11,\r\n CameoRail: 3.3125,\r\n DocDistance: 0.0,\r\n DocHeight: 14.0,\r\n DocWidth: 18.0,\r\n DocOverlap: 0.3125,\r\n OvalRailSide: 2.5,\r\n OvalRailOvalTop: 3.75,\r\n OvalRailDocTop: 2.9375,\r\n SpiritRailTopAndSides: 3.0,\r\n SpiritRailBottom: 3.5,\r\n StandardRail: 3.313,\r\n TasselRailHeight: 3.313,\r\n TasselRailWidth: 3.25,\r\n TasselGap: 1.5,\r\n TasselHeight: 11.5,\r\n TasselWidth: 1.625,\r\n },\r\n {\r\n DocSizeTierID: 12,\r\n CameoRail: 3.3125,\r\n DocDistance: 0.0,\r\n DocHeight: 16.0,\r\n DocWidth: 20.0,\r\n DocOverlap: 0.3125,\r\n OvalRailSide: 2.5,\r\n OvalRailOvalTop: 3.75,\r\n OvalRailDocTop: 2.9375,\r\n SpiritRailTopAndSides: 3.0,\r\n SpiritRailBottom: 3.5,\r\n StandardRail: 3.313,\r\n TasselRailHeight: 3.313,\r\n TasselRailWidth: 3.25,\r\n TasselGap: 1.5,\r\n TasselHeight: 11.5,\r\n TasselWidth: 1.625,\r\n },\r\n ];\r\n\r\n export class DocStackingSizeTiersClass {\r\n public DocSizeTierID: number = 0;\r\n public CameoRail: number;\r\n public DocDistance: number = 0;\r\n public DocHeight: number = 0;\r\n public DocWidth: number = 0;\r\n public DocOverlap: number;\r\n public OvalRailSide: number;\r\n public OvalRailOvalTop: number;\r\n public OvalRailDocTop: number;\r\n public SpiritRailTopAndSides: number;\r\n public SpiritRailBottom: number;\r\n public StandardRail: number;\r\n public TasselRailHeight: number = 0;\r\n public TasselRailWidth: number = 0;\r\n public TasselGap: number = 0;\r\n public TasselHeight: number = 0;\r\n public TasselWidth: number = 0;\r\n }\r\n\r\n export class DefaultPCS {\r\n public static DefaultBevel: number = 0.0393701;\r\n public static DefaultDocument: number = 1541; // Cornell\r\n public static DefaultDocWidth: number = 11;\r\n public static DefaultDocHeight: number = 8.5;\r\n public static DefaultInnerAccent: number = 385; // Gold\r\n public static DefaultInnerAccentWidth: number = 0.1875;\r\n public static DefaultInsignia: number = 2638; //Cornell Gold\r\n public static DefaultInsigniaSize: string = `220`;\r\n public static DefaultInsigniaWidthMax: number = 1.625;\r\n public static DefaultEPWidth: number = 3; // ****----____ EP-code-change ____----****'\r\n public static DefaultEPHeight: number = 1; // ****----____ EP-code-change ____----****'\r\n public static DefaultLinoID: number = 1564; // Cornell Gold industrial\r\n public static DefaultLinoWidthMax: number = 13;\r\n public static DefaultLinoHeightMax: number = 1.837;\r\n public static DefaultMaxFrameWidth: number = 550;\r\n public static DefaultMaxFrameHeight: number = 50000;\r\n public static DefaultMoulding: number = 158; // Gallery\r\n public static DefaultMouldingWidthMax: number = 2.375;\r\n public static DefaultPrimarymat: number = 337; // Black\r\n public static DefaultProductType: number = 3;\r\n }\r\n\r\n export class ProductCustomizationState {\r\n public css: PCS_CSS;\r\n public isHorizontal: boolean = true;\r\n public state_FlatImageMode: boolean = false;\r\n public MaxFrameWidthPx: number = 0;\r\n public MaxFrameHeightPx: number = 50000;\r\n public UseCommonDPI: boolean = false;\r\n public UseMaxMouldingForSizing: boolean = false;\r\n public Padding: number = 0;\r\n public debug: string;\r\n public FrameDisplay_width: number = 0;\r\n public FrameDisplay_height: number = 0;\r\n public BevelWidth: number = 0.0393701;\r\n public Base_DocumentName: string;\r\n public Base_ExtraEntityName: string;\r\n public Base_ExtraID: number = 0;\r\n public Base_ExtraHeight: number = 0;\r\n public Base_InsigniaID: number = 0;\r\n public Base_InsigniaName: string;\r\n public Base_InsigniaWidthInches: number = 0;\r\n public Base_LinoAdjustmentInches: number = 0;\r\n public Base_LinoID: number = 0;\r\n public Base_LinoName: string;\r\n public lino_dyf_color: string;\r\n public Document_Height: number = 0;\r\n public Document_Width: number = 0;\r\n public DocumentID: number = 0;\r\n public Document2_Height: number = 0;\r\n public Document2_Width: number = 0;\r\n public DYF_FrameStyleID: number = 0;\r\n public EngravedPlateID: number = 0;\r\n public EP_1: string;\r\n public EP_2: string;\r\n public EP_3: string;\r\n public EngravedPlateName: string;\r\n public HasEngravedPlate: boolean = false;\r\n public ItemID: string;\r\n public MatCombo_IsWoodFillet: boolean = false;\r\n public MouldingExtWidth: number = 0;\r\n public MouldingName: string;\r\n public MouldingWidthMax: number = 2.125;\r\n public PrimaryMatColor: string;\r\n public PrimaryMatName: string;\r\n public PrimaryMatID: number = 0;\r\n public ProductTypeID: number = 0;\r\n public SecondaryMatColor: string;\r\n public SecondaryMatID: number = 0;\r\n public SecondaryMatName: string;\r\n public InnerAccentWidth: number = 0.1875;\r\n public VL_BG_Color: string;\r\n public MouldingID: number = 0;\r\n public IsCAF: boolean = false;\r\n public SelectedCategoryMapID: number = -1;\r\n public o1: string;\r\n public o2: string;\r\n public o3: string;\r\n public o4: string;\r\n }\r\n\r\n export const getGlassPrice = (\r\n pcs: ProductCustomizationState,\r\n DocSizeTierID: number,\r\n GlassID: number,\r\n ): number => {\r\n const photo_frames = [10, 50, 56, 57, 58, 59, 60];\r\n const isPhotoFrame = photo_frames.includes(pcs.ProductTypeID);\r\n let Glass_DocSizeTierID = -0;\r\n\r\n if (isPhotoFrame) {\r\n if (DocSizeTierID === 1) {\r\n Glass_DocSizeTierID = 1;\r\n } else if (DocSizeTierID === 14) {\r\n Glass_DocSizeTierID = 14;\r\n } else if (DocSizeTierID === 2 || DocSizeTierID === 13) {\r\n Glass_DocSizeTierID = 2;\r\n } else if (DocSizeTierID >= 3 && DocSizeTierID <= 5) {\r\n Glass_DocSizeTierID = 5;\r\n } else {\r\n Glass_DocSizeTierID = 8;\r\n }\r\n } else {\r\n if (DocSizeTierID < 3 || DocSizeTierID === 13) {\r\n Glass_DocSizeTierID = 2;\r\n } else if (DocSizeTierID === 14) {\r\n Glass_DocSizeTierID = 14;\r\n } else if (DocSizeTierID >= 3 && DocSizeTierID <= 5) {\r\n Glass_DocSizeTierID = 5;\r\n } else {\r\n Glass_DocSizeTierID = 8;\r\n }\r\n }\r\n\r\n const isOversized: boolean = __oversized.includes(pcs.ProductTypeID);\r\n // console.log('isOversized', isOversized);\r\n\r\n if (isOversized) {\r\n if (Glass_DocSizeTierID === 14) {\r\n Glass_DocSizeTierID = 2;\r\n } else if (Glass_DocSizeTierID === 2) {\r\n Glass_DocSizeTierID = 5;\r\n } else if (Glass_DocSizeTierID === 5) {\r\n Glass_DocSizeTierID = 8;\r\n }\r\n }\r\n\r\n // console.log('Glass_DocSizeTierID', Glass_DocSizeTierID);\r\n\r\n let price: number = 0;\r\n if (!s.isRetail) {\r\n price = s.glass_prices.filter(\r\n x => x.GlassID === GlassID && x.DocumentSizeTierID === Glass_DocSizeTierID,\r\n )[0].Price_Wholesale;\r\n } else {\r\n price = s.glass_prices.filter(\r\n x => x.GlassID === GlassID && x.DocumentSizeTierID === Glass_DocSizeTierID,\r\n )[0].Price;\r\n }\r\n\r\n if (isOversized && GlassID !== 1) {\r\n price += 10;\r\n }\r\n\r\n return price;\r\n };\r\n\r\n export const share = async (): Promise => {\r\n const ps: ProductStateShare = {\r\n m0: s.pcs.moulding_id,\r\n m1: s.pcs.mat1_id,\r\n m2: s.pcs.mat2_id,\r\n i: s.pcs.insignia_id,\r\n g: s.pcs.glass_id,\r\n l: s.pcs.lino_id,\r\n e: s.pcs.ep_id,\r\n e1: s.pcs.ep1,\r\n e2: s.pcs.ep2,\r\n e3: s.pcs.ep3,\r\n o: s.pcs.is_horizontal,\r\n w1: s.pcs.docWidth,\r\n w2: s.pcs.docWidth2,\r\n h1: s.pcs.docHeight,\r\n h2: s.pcs.docHeight2,\r\n lc: s.pcs.lino_dyf_color,\r\n };\r\n\r\n const shareData = {\r\n title: `${s.si.InstName} ${s.ui.product_title}`,\r\n text: `Shared with you: ${s.si.InstName} ${s.ui.product_title} via diaplomaframe.com`,\r\n url: `${window.location.href}?k=${btoa(JSON.stringify(toJS(ps)))}`,\r\n };\r\n\r\n try {\r\n window.dataLayer.push({\r\n event: 'share',\r\n event_params: {\r\n item_id: s.prod.ItemID,\r\n method: 'product-page',\r\n content_type: 'product',\r\n },\r\n });\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n\r\n // console.log(JSON.stringify(toJS(ps)).length);\r\n // console.log(encodeURIComponent(JSON.stringify(toJS(ps))).length);\r\n // console.log(shareData.url.length);\r\n try {\r\n await navigator.share(shareData);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n };\r\n\r\n export const FramePartDomain: string = `https://i.diplomaframe.com/images/entities/`;\r\n export const renderStandardPrimaryMat = (\r\n PMatWidthPX: number,\r\n PMatHeightPX: number,\r\n MaxMouldingWidthPx: number,\r\n MouldingWidthPx: number,\r\n pcs: ProductCustomizationState,\r\n ): void => {\r\n pcs.css.pmat_BackgroundImage = pmat_path(PMatWidthPX, pcs.PrimaryMatName).toLowerCase();\r\n pcs.css.pmat_width = `${PMatWidthPX.toString()}px`;\r\n pcs.css.pmat_height = `${PMatHeightPX.toString()}px`;\r\n pcs.css.pmat_backgroundSize = `${PMatWidthPX.toString()}px ${PMatHeightPX.toString()}px`;\r\n pcs.css.pmat_top = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.pmat_left = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.body_width = `${(PMatWidthPX + MouldingWidthPx * 2).toString()}px`;\r\n };\r\n export const pmat_path = (n: number, v: string): string => {\r\n let x = 'original';\r\n if (n >= 0 && n <= 320) {\r\n x = '160';\r\n } else if (n >= 321 && n <= 640) {\r\n x = '320';\r\n } else if (n >= 641 && n <= 1280) {\r\n x = '640';\r\n }\r\n return `${FramePartDomain}primarymat/v2/${v}_${x}.jpg`.toLowerCase();\r\n };\r\n\r\n export const renderStandardMoulding = (\r\n MouldingWidthPx: number,\r\n PMatWidthPx: number,\r\n PMatHeightPx: number,\r\n pcs: ProductCustomizationState,\r\n ): void => {\r\n pcs.css.m_topleft_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_topleftcorner.jpg`.toLowerCase();\r\n pcs.css.m_topleft_left = `-${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_topleft_top = `-${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_topleft_width = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_topright_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_toprightcorner.jpg`.toLowerCase();\r\n pcs.css.m_topright_left = `${PMatWidthPx.toString()}px`;\r\n pcs.css.m_topright_top = `-${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_topright_width = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_bottomleft_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_bottomleftcorner.jpg`.toLowerCase();\r\n pcs.css.m_bottomleft_left = `-${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_bottomleft_top = `${PMatHeightPx.toString()}px`;\r\n pcs.css.m_bottomleft_width = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_bottomright_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_bottomrightcorner.jpg`.toLowerCase();\r\n pcs.css.m_bottomright_left = `${PMatWidthPx.toString()}px`;\r\n pcs.css.m_bottomright_top = `${PMatHeightPx.toString()}px`;\r\n pcs.css.m_bottomright_width = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_left_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_leftside.jpg`.toLowerCase();\r\n pcs.css.m_left_left = `-${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_left_top = `0px`;\r\n pcs.css.m_left_width = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_left_height = `${PMatHeightPx.toString()}px`;\r\n pcs.css.m_right_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_rightside.jpg`.toLowerCase();\r\n pcs.css.m_right_left = `${PMatWidthPx.toString()}px`;\r\n pcs.css.m_right_top = `0px`;\r\n pcs.css.m_right_width = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_right_height = `${PMatHeightPx.toString()}px`;\r\n pcs.css.m_top_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_topside.jpg`.toLowerCase();\r\n pcs.css.m_top_left = `0px`;\r\n pcs.css.m_top_top = `-${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_top_width = `${PMatWidthPx.toString()}px`;\r\n pcs.css.m_top_height = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_bottom_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_bottomside.jpg`.toLowerCase();\r\n pcs.css.m_bottom_left = `0px`;\r\n pcs.css.m_bottom_top = `${PMatHeightPx.toString()}px`;\r\n pcs.css.m_bottom_width = `${PMatWidthPx.toString()}px`;\r\n pcs.css.m_bottom_height = `${MouldingWidthPx.toString()}px`;\r\n };\r\n\r\n export const doc_path = (\r\n n: number,\r\n DocHeightPx: number,\r\n docName: string | null,\r\n Base_ExtraEntityName: string | null,\r\n DYF_FrameStyleID: number,\r\n override: string | null,\r\n ): string => {\r\n if (override && override.length > 2 && s.ui.image_uploaded) {\r\n return override;\r\n }\r\n\r\n if (DYF_FrameStyleID === 10) {\r\n let x = n >= DocHeightPx ? `original` : `original_cropped`;\r\n if (n >= 0 && n <= 75) {\r\n x = '150';\r\n } else if (n >= 76 && n <= 175) {\r\n x = '350';\r\n }\r\n return `${FramePartDomain}photoframe_photo/v2/${Base_ExtraEntityName}${n >= DocHeightPx ? `_h_` : `_v_`}${x}.png`.toLowerCase();\r\n } else {\r\n let x = 'original';\r\n if (n >= 0 && n <= 75) {\r\n x = '150';\r\n } else if (n >= 76 && n <= 175) {\r\n x = '350';\r\n }\r\n x = '350';\r\n return `${FramePartDomain}document/v2/${docName}${n >= DocHeightPx ? `_h_` : `_v_`}${x}.png`.toLowerCase();\r\n }\r\n };\r\n export const vl_path = (n: number, VLHeightPx: number, VLName: string | null): string => {\r\n let x = 'original';\r\n if (n >= 0 && n <= 75) {\r\n x = '150';\r\n } else if (n >= 76 && n <= 175) {\r\n x = '350';\r\n }\r\n return `${FramePartDomain}varsity_letter/v2/${VLName}${n >= VLHeightPx ? `_h_` : `_v_`}${x}.png`.toLowerCase();\r\n };\r\n\r\n export const oval_path = (\r\n n: number,\r\n OvalName: string | null,\r\n DYF_FrameStyleID: number,\r\n ): string => {\r\n let x = 'original';\r\n if (n >= 0 && n <= 50) {\r\n x = '100';\r\n } else if (n >= 51 && n <= 100) {\r\n x = '200';\r\n }\r\n return `${FramePartDomain}${DYF_FrameStyleID == 5 ? `sports` : `portrait`}_oval/v2/${OvalName}_${x}.png`.toLowerCase();\r\n };\r\n\r\n export const campus_path = (Base_ExtraEntityName: string | null): string => {\r\n return `${FramePartDomain}campus_photo/v2/${Base_ExtraEntityName}_original.png`.toLowerCase();\r\n };\r\n\r\n export const cameo_path = (n: number, v: string | null): string => {\r\n let x = '300';\r\n if (n >= 0 && n <= 37) {\r\n x = '75';\r\n } else if (n >= 38 && n <= 75) {\r\n x = '150';\r\n }\r\n return `${FramePartDomain}cameo_photo/v2/${v}_${x}.png`.toLowerCase();\r\n };\r\n\r\n export const renderCollapsedPMatBevel = (pcs: ProductCustomizationState): void => {\r\n pcs.css.doc1_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc1_pmat_bevel_left = `0px`;\r\n pcs.css.doc1_pmat_bevel_top = `0px`;\r\n pcs.css.doc1_pmat_bevel_width = ``;\r\n pcs.css.doc1_pmat_bevel_height = ``;\r\n };\r\n\r\n export const renderCollapsedSMat = (pcs: ProductCustomizationState): void => {\r\n pcs.css.doc1_smat_backgroundColor = `none`;\r\n pcs.css.doc1_smat_left = `0px`;\r\n pcs.css.doc1_smat_top = `0px`;\r\n pcs.css.doc1_smat_width = ``;\r\n pcs.css.doc1_smat_height = ``;\r\n pcs.css.doc1_smat_bevel_backgroundColor = `none`;\r\n pcs.css.doc1_smat_bevel_left = `0px`;\r\n pcs.css.doc1_smat_bevel_top = `0px`;\r\n pcs.css.doc1_smat_bevel_width = ``;\r\n pcs.css.doc1_smat_bevel_height = ``;\r\n };\r\n export const RenderStandardSMat = (\r\n BevelWidthPx: number,\r\n SMatWidthPx: number,\r\n DocWidthPx: number,\r\n DocHeightPx: number,\r\n pcs: ProductCustomizationState,\r\n ): void => {\r\n pcs.css.doc1_smat_backgroundColor = `#${pcs.SecondaryMatColor}`;\r\n pcs.css.doc1_smat_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_smat_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_smat_width = `${(DocWidthPx + SMatWidthPx * 2 + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_smat_height = `${(DocHeightPx + SMatWidthPx * 2 + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_smat_bevel_backgroundColor = `white`;\r\n pcs.css.doc1_smat_bevel_left = `${SMatWidthPx.toString()}px`;\r\n pcs.css.doc1_smat_bevel_top = `${SMatWidthPx.toString()}px`;\r\n pcs.css.doc1_smat_bevel_width = `${(DocWidthPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_smat_bevel_height = `${(DocHeightPx + BevelWidthPx * 2).toString()}px`;\r\n };\r\n\r\n export const renderStandardFillet = (\r\n RailSidePx: number,\r\n RailTopPx: number,\r\n WoodFilletWidthPx: number,\r\n DocWidthPx: number,\r\n DocHeightPx: number,\r\n pcs: ProductCustomizationState,\r\n ): void => {\r\n pcs.css.f_container_left = `${(RailSidePx - WoodFilletWidthPx).toString()}px`;\r\n pcs.css.f_container_top = `${(RailTopPx - WoodFilletWidthPx).toString()}px`;\r\n pcs.css.f_container_width = `${(DocWidthPx - WoodFilletWidthPx * 2).toString()}px`;\r\n pcs.css.f_container_height = `${(DocHeightPx - WoodFilletWidthPx * 2).toString()}px`;\r\n pcs.css.f_topleft_src =\r\n `${FramePartDomain}woodfillet/v2/${pcs.SecondaryMatName}_original_topleftcorner.png`.toLowerCase();\r\n pcs.css.f_topleft_left = `0px`;\r\n pcs.css.f_topleft_top = `0px`;\r\n pcs.css.f_topleft_width = `${WoodFilletWidthPx.toString()}px`;\r\n pcs.css.f_topright_src =\r\n `${FramePartDomain}woodfillet/v2/${pcs.SecondaryMatName}_original_toprightcorner.png`.toLowerCase();\r\n pcs.css.f_topright_left = `${(DocWidthPx + WoodFilletWidthPx).toString()}px`;\r\n pcs.css.f_topright_top = `0px`;\r\n pcs.css.f_topright_width = `${WoodFilletWidthPx.toString()}px`;\r\n pcs.css.f_bottomleft_src =\r\n `${FramePartDomain}woodfillet/v2/${pcs.SecondaryMatName}_original_bottomleftcorner.png`.toLowerCase();\r\n pcs.css.f_bottomleft_left = `0px`;\r\n pcs.css.f_bottomleft_top = `${(DocHeightPx + WoodFilletWidthPx).toString()}px`;\r\n pcs.css.f_bottomleft_width = `${WoodFilletWidthPx.toString()}px`;\r\n pcs.css.f_bottomright_src =\r\n `${FramePartDomain}woodfillet/v2/${pcs.SecondaryMatName}_original_bottomrightcorner.png`.toLowerCase();\r\n pcs.css.f_bottomright_left = `${(DocWidthPx + WoodFilletWidthPx).toString()}px`;\r\n pcs.css.f_bottomright_top = `${(DocHeightPx + WoodFilletWidthPx).toString()}px`;\r\n pcs.css.f_bottomright_width = `${WoodFilletWidthPx.toString()}px`;\r\n pcs.css.f_left_src =\r\n `${FramePartDomain}woodfillet/v2/${pcs.SecondaryMatName}_original_leftside.png`.toLowerCase();\r\n pcs.css.f_left_left = `0px`;\r\n pcs.css.f_left_top = `${WoodFilletWidthPx.toString()}px`;\r\n pcs.css.f_left_width = `${WoodFilletWidthPx.toString()}px`;\r\n pcs.css.f_left_height = `${DocHeightPx.toString()}px`;\r\n pcs.css.f_right_src =\r\n `${FramePartDomain}woodfillet/v2/${pcs.SecondaryMatName}_original_rightside.png`.toLowerCase();\r\n pcs.css.f_right_left = `${(DocWidthPx + WoodFilletWidthPx).toString()}px`;\r\n pcs.css.f_right_top = `${WoodFilletWidthPx.toString()}px`;\r\n pcs.css.f_right_width = `${WoodFilletWidthPx.toString()}px`;\r\n pcs.css.f_right_height = `${DocHeightPx.toString()}px`;\r\n pcs.css.f_top_src =\r\n `${FramePartDomain}woodfillet/v2/${pcs.SecondaryMatName}_original_topside.png`.toLowerCase();\r\n pcs.css.f_top_left = `${WoodFilletWidthPx.toString()}px`;\r\n pcs.css.f_top_top = `0px`;\r\n pcs.css.f_top_width = `${DocWidthPx.toString()}px`;\r\n pcs.css.f_top_height = `${WoodFilletWidthPx.toString()}px`;\r\n pcs.css.f_bottom_src =\r\n `${FramePartDomain}woodfillet/v2/${pcs.SecondaryMatName}_original_bottomside.png`.toLowerCase();\r\n pcs.css.f_bottom_left = `${WoodFilletWidthPx.toString()}px`;\r\n pcs.css.f_bottom_top = `${(DocHeightPx + WoodFilletWidthPx).toString()}px`;\r\n pcs.css.f_bottom_width = `${DocWidthPx.toString()}px`;\r\n pcs.css.f_bottom_height = `${WoodFilletWidthPx.toString()}px`;\r\n };\r\n\r\n export const renderStandardInsignia = (\r\n FilletCount: number,\r\n WoodFilletWidthPx: number,\r\n PMatWidthPx: number,\r\n MaxInsigniaWidthPx: number,\r\n RailTopPx: number,\r\n BevelWidthPx: number,\r\n SMatCount: number,\r\n SMatWidthPx: number,\r\n pcs: ProductCustomizationState,\r\n ): number => {\r\n pcs.css.insignia_bot_visible = false;\r\n pcs.css.insignia_visible = pcs.Base_InsigniaID > 0;\r\n let left: number = -1;\r\n if (pcs.Base_InsigniaID > 0) {\r\n pcs.css.insignia_src = insignia_path(MaxInsigniaWidthPx, pcs.Base_InsigniaName);\r\n left = (\r\n ((\r\n Math.floor(\r\n (PMatWidthPx) / 2 - (MaxInsigniaWidthPx) / 2,\r\n )\r\n ))\r\n );\r\n pcs.css.insignia_left = `${left}px`;\r\n pcs.css.insignia_top = `${((Math.floor(((RailTopPx) - (BevelWidthPx) - (SMatCount) * ((SMatWidthPx) + (BevelWidthPx)) - (FilletCount) * ((WoodFilletWidthPx) - (BevelWidthPx))) / 2 - (MaxInsigniaWidthPx) / 2))).toString()}px`;\r\n pcs.css.insignia_width = `${MaxInsigniaWidthPx.toString()}px`;\r\n pcs.css.insignia_height = `${MaxInsigniaWidthPx.toString()}px`;\r\n pcs.css.insignia_bot = ``;\r\n }\r\n return left;\r\n };\r\n export const renderBottomInsignia = (\r\n FilletCount: number,\r\n WoodFilletWidthPx: number,\r\n PMatWidthPx: number,\r\n MaxInsigniaWidthPx: number,\r\n RailTopPx: number,\r\n BevelWidthPx: number,\r\n SMatCount: number,\r\n SMatWidthPx: number,\r\n DocHeight: number,\r\n pcs: ProductCustomizationState,\r\n ): number => {\r\n pcs.css.insignia_visible = false;\r\n pcs.css.insignia_bot_visible = pcs.Base_InsigniaID > 0;\r\n let left: number = -1;\r\n if (pcs.Base_InsigniaID > 0) {\r\n pcs.css.insignia_src = insignia_path(MaxInsigniaWidthPx, pcs.Base_InsigniaName);\r\n left = (\r\n ((\r\n Math.floor(\r\n (PMatWidthPx) / 2 - (MaxInsigniaWidthPx) / 2,\r\n )\r\n ))\r\n );\r\n pcs.css.insignia_left = `${((Math.floor((PMatWidthPx) / 2 - (MaxInsigniaWidthPx) / 2))).toString()}px`;\r\n pcs.css.insignia_bot = `${((Math.floor(((RailTopPx) - (BevelWidthPx) - (SMatCount) * ((SMatWidthPx) + (BevelWidthPx)) - (FilletCount) * ((WoodFilletWidthPx) - (BevelWidthPx))) / 2 - (MaxInsigniaWidthPx) / 2))).toString()}px`;\r\n pcs.css.insignia_top = ``;\r\n pcs.css.insignia_width = `${MaxInsigniaWidthPx.toString()}px`;\r\n pcs.css.insignia_height = `${MaxInsigniaWidthPx.toString()}px`;\r\n }\r\n return left;\r\n };\r\n export const renderBottomRightInsignia = (pcs: ProductCustomizationState): void => {\r\n pcs.css.insignia_br_visible = pcs.Base_InsigniaID > 0;\r\n if (pcs.Base_InsigniaID > 0) {\r\n let mod: number = 0.3;\r\n pcs.css.insignia_br_src =\r\n `${FramePartDomain}insignia/v2/med_full/${pcs.Base_InsigniaName}.png`.toLowerCase();\r\n pcs.css.insignia_br_right = `-${((pcs.FrameDisplay_width * mod * 0.4))}px`;\r\n pcs.css.insignia_br_bot = `-${((pcs.FrameDisplay_width * mod * 0.6))}px`;\r\n pcs.css.insignia_br_width = `${pcs.FrameDisplay_width * mod}px`;\r\n pcs.css.insignia_br_height = `${pcs.FrameDisplay_width * mod}px`;\r\n }\r\n };\r\n\r\n export const insignia_path_noBevel = (n: number, InsigniaName: string | null): string => {\r\n let x = 'med_full';\r\n if (n >= 0 && n < 220) {\r\n x = 'med_220';\r\n }\r\n return `${FramePartDomain}insignia/v2/${x}/${InsigniaName}.png`.toLowerCase();\r\n };\r\n\r\n export const insignia_path = (n: number, InsigniaName: string | null): string => {\r\n let x = 'original';\r\n if (n >= 0 && n < 25) {\r\n x = '50';\r\n } else if (n >= 26 && n < 45) {\r\n x = '90';\r\n } else if (n >= 46 && n < 110) {\r\n x = '220';\r\n } else if (n >= 111 && n < 320) {\r\n x = '640';\r\n }\r\n return `${FramePartDomain}insignia/v2/${InsigniaName}_${x}.png`.toLowerCase();\r\n };\r\n\r\n export const renderStandardLino = (\r\n FilletCount: number,\r\n WoodFilletWidthPx: number,\r\n BevelWidthPx: number,\r\n SMatCount: number,\r\n SMatWidthPx: number,\r\n RailSidePx: number,\r\n DocWidthPx: number,\r\n DocHeightPx: number,\r\n LinoWidthMaxPx: number,\r\n LinoHeightMaxPx: number,\r\n pcs: ProductCustomizationState,\r\n ): number => {\r\n pcs.css.lino_visible = pcs.Base_LinoID > 0;\r\n let linoLeft: number = -1;\r\n if (pcs.Base_LinoID > 0) {\r\n pcs.css.lino_src = lino_path(LinoWidthMaxPx, pcs);\r\n linoLeft = (\r\n ((\r\n Math.floor(\r\n (RailSidePx) +\r\n (DocWidthPx) / 2 -\r\n (LinoWidthMaxPx) / 2,\r\n )\r\n ))\r\n );\r\n pcs.css.lino_left = `${linoLeft}px`;\r\n pcs.css.lino_top = `${((RailSidePx + DocHeightPx + BevelWidthPx + SMatCount * (SMatWidthPx + BevelWidthPx) + FilletCount * WoodFilletWidthPx + Math.floor(((RailSidePx) - (BevelWidthPx) - (SMatCount) * ((SMatWidthPx) + (BevelWidthPx)) - (FilletCount) * (WoodFilletWidthPx)) / 2 - (LinoHeightMaxPx) / 2)))}px`;\r\n pcs.css.lino_width = `${LinoWidthMaxPx.toString()}px`;\r\n pcs.css.lino_height = `${LinoHeightMaxPx.toString()}px`;\r\n }\r\n return linoLeft;\r\n };\r\n\r\n export const lino_path = (n: number, pcs: ProductCustomizationState): string => {\r\n if (pcs.IsCAF || s.pcs.lino_is_dyf) {\r\n return `${FramePartDomain}linotype_caf/v2/${pcs.Base_LinoName.replace(/ /g, '_')}_${pcs.lino_dyf_color}.png`.toLowerCase();\r\n }\r\n let x = 'original';\r\n if (n >= 0 && n < 75) {\r\n x = '150';\r\n } else if (n >= 76 && n < 175) {\r\n x = '350';\r\n }\r\n return `${FramePartDomain}linotype_product/v2/${pcs.Base_LinoName}_${x}.png`.toLowerCase();\r\n };\r\n\r\n export const renderEngravedPlate = (\r\n Left: number,\r\n Top: number,\r\n EPWidthPx: number,\r\n EPHeightPx: number,\r\n BevelWidthPx: number,\r\n PMatWidthPx: number,\r\n pcs: ProductCustomizationState,\r\n ): void => {\r\n pcs.css.ep_bevel_backgroundColor = `white`;\r\n pcs.css.ep_bevel_left = `${Left.toString()}px`;\r\n pcs.css.ep_bevel_top = `${Top.toString()}px`;\r\n pcs.css.ep_bevel_width = `${(EPWidthPx + BevelWidthPx * 4).toString()}px`;\r\n pcs.css.ep_bevel_height = `${(EPHeightPx + BevelWidthPx * 4).toString()}px`;\r\n pcs.css.ep_pmat_backgroundImage =\r\n `url('${pmat_path(PMatWidthPx, pcs.PrimaryMatName)}')`.toLowerCase();\r\n pcs.css.ep_pmat_left = `${BevelWidthPx}px`;\r\n pcs.css.ep_pmat_top = `${BevelWidthPx}px`;\r\n pcs.css.ep_pmat_width = `${(EPWidthPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.ep_pmat_height = `${(EPHeightPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.ep_backgroundImage =\r\n `url('${FramePartDomain}engravedplate/${pcs.EngravedPlateName}_original_engravedplate.png')`.toLowerCase();\r\n pcs.css.ep_backgroundSize = `cover`;\r\n if (pcs.EngravedPlateID === 1099) {\r\n pcs.css.ep_color = `black`;\r\n } else if (pcs.EngravedPlateID === 39) {\r\n pcs.css.ep_color = `silver`;\r\n } else {\r\n pcs.css.ep_color = `gold`;\r\n }\r\n pcs.css.ep_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.ep_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.ep_width = `${EPWidthPx.toString()}px`;\r\n pcs.css.ep_height = `${EPHeightPx.toString()}px`;\r\n let EPLineCount: number = getEPLineCount(pcs);\r\n let LineHeight: number = (Math.floor((EPHeightPx) / 3));\r\n let EPTextTop: number = (\r\n ((\r\n Math.floor(\r\n ((EPHeightPx) -\r\n (EPLineCount) * (LineHeight)) /\r\n 2,\r\n )\r\n ))\r\n );\r\n pcs.css.ep_lines_top = `${EPTextTop.toString()}px`;\r\n pcs.css.ep_lines_left = `0px`;\r\n pcs.css.ep_lines_lineHeight = `${LineHeight.toString()}px`;\r\n pcs.css.ep_lines_fontSize = `${(LineHeight - 1).toString()}px`;\r\n pcs.css.ep_lines_width = `${EPWidthPx.toString()}px`;\r\n pcs.css.ep_lines_height = `${EPHeightPx.toString()}px`;\r\n if (pcs.css.lino_visible) {\r\n pcs.css.ep_visible = false;\r\n }\r\n };\r\n\r\n export const tassel_path = (n: number, TasselName: string | null): string => {\r\n let x = 'original';\r\n if (n >= 0 && n < 175) {\r\n x = '59';\r\n }\r\n return `https://i.diplomaframe.com/images/entities/tassel/v2/${TasselName}_${x}.png`.toLowerCase();\r\n };\r\n\r\n export const getEPLineCount = (pcs: ProductCustomizationState): number => {\r\n let lines = 0;\r\n if (pcs.EP_1 && !Util.isNullOrWhiteSpace(pcs.EP_1) && pcs.EP_1.length > 0) {\r\n lines += 1;\r\n }\r\n if (pcs.EP_2 && !Util.isNullOrWhiteSpace(pcs.EP_2) && pcs.EP_2.length > 0) {\r\n lines += 2;\r\n }\r\n if (pcs.EP_3 && !Util.isNullOrWhiteSpace(pcs.EP_3) && pcs.EP_3.length > 0) {\r\n lines += 3;\r\n }\r\n return lines;\r\n };\r\n\r\n export const ItemID_EndsWithNumber = (str: string): boolean => {\r\n if (Util.isNullOrWhiteSpace(str)) {\r\n return false;\r\n }\r\n var c = str.slice(-1);\r\n if (c >= '0' && c <= '9') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n export const Get_DocumentSizeTierID = (\r\n Width: number,\r\n Height: number,\r\n ProductTypeID: number,\r\n ): number => {\r\n if (Width > Height) {\r\n let Temp = Height;\r\n Height = Width;\r\n Width = Temp;\r\n }\r\n\r\n let id: number = 12;\r\n var arr = DocumentSizeTierData.filter(f => f.Width >= Width && f.Height >= Height);\r\n\r\n // console.log(Width, Height);\r\n // console.log(arr);\r\n\r\n if (arr.length === 1) {\r\n return arr[0].DocumentSizeTierID;\r\n } else if (arr.length > 1) {\r\n var x = arr[0];\r\n for (let i = 1; i < arr.length; i++) {\r\n var f = arr[i];\r\n if (\r\n f.Width >= Width &&\r\n f.Height >= Height &&\r\n f.Width < x.Width &&\r\n f.Height <= x.Height\r\n ) {\r\n x = f;\r\n }\r\n }\r\n id = x.DocumentSizeTierID;\r\n } else {\r\n id = 12;\r\n }\r\n\r\n return id;\r\n };\r\n\r\n export const getDocSizeTier = (pcs: ProductCustomizationState) => {\r\n let WidthLimit: number = 14;\r\n let HeightLimit: number = 14;\r\n let xDocument_Width = pcs.Document_Width;\r\n let xDocument_Height = pcs.Document_Height;\r\n\r\n if (xDocument_Width > WidthLimit) {\r\n let ratio: number = WidthLimit / xDocument_Width;\r\n xDocument_Width = WidthLimit;\r\n xDocument_Height = xDocument_Height * ratio;\r\n }\r\n if (xDocument_Height > HeightLimit) {\r\n let ratio: number = HeightLimit / xDocument_Height;\r\n xDocument_Height = HeightLimit;\r\n xDocument_Width = xDocument_Width * ratio;\r\n }\r\n\r\n // We normalized the width/height as that framestyle is driven by height. Height needs to be the smaller.\r\n let tempWidth: number = xDocument_Width;\r\n let tempHeight: number = xDocument_Height;\r\n if (tempHeight > tempWidth) {\r\n let dTemp: number = xDocument_Height;\r\n tempHeight = xDocument_Width;\r\n tempWidth = dTemp;\r\n }\r\n\r\n var arr = DocStackingSizeTiers.filter(\r\n f => f.DocWidth >= tempWidth && f.DocHeight >= tempHeight,\r\n );\r\n\r\n if (arr == null || arr.length < 1) {\r\n return DocStackingSizeTiers[DocStackingSizeTiers.length - 1];\r\n } else if (arr.length === 1) {\r\n return arr[0];\r\n } else {\r\n var x = arr[0];\r\n for (let i = 1; i < arr.length; i++) {\r\n var f = arr[i];\r\n if (\r\n f.DocWidth >= tempWidth &&\r\n f.DocHeight >= tempHeight &&\r\n f.DocWidth < x.DocWidth &&\r\n f.DocHeight <= x.DocHeight\r\n ) {\r\n x = f;\r\n }\r\n }\r\n return x;\r\n }\r\n };\r\n\r\n export const getDocSizeTier2 = (pcs: ProductCustomizationState) => {\r\n let WidthLimit: number = 14;\r\n let HeightLimit: number = 14;\r\n let xDocument2_Width = pcs.Document2_Width;\r\n let xDocument2_Height = pcs.Document2_Height;\r\n\r\n if (xDocument2_Width > WidthLimit) {\r\n let ratio: number = WidthLimit / xDocument2_Width;\r\n xDocument2_Width = WidthLimit;\r\n xDocument2_Height = xDocument2_Height * ratio;\r\n }\r\n if (xDocument2_Height > HeightLimit) {\r\n let ratio: number = HeightLimit / xDocument2_Height;\r\n xDocument2_Height = HeightLimit;\r\n xDocument2_Width = xDocument2_Width * ratio;\r\n }\r\n\r\n // We normalized the width/height as that framestyle is driven by height. Height needs to be the smaller.\r\n let tempWidth: number = xDocument2_Width;\r\n let tempHeight: number = xDocument2_Height;\r\n if (tempHeight > tempWidth) {\r\n let dTemp: number = xDocument2_Height;\r\n tempHeight = xDocument2_Width;\r\n tempWidth = dTemp;\r\n }\r\n\r\n var arr = DocStackingSizeTiers.filter(\r\n f => f.DocWidth >= tempWidth && f.DocHeight >= tempHeight,\r\n );\r\n\r\n if (arr == null || arr.length < 1) {\r\n return DocStackingSizeTiers[DocStackingSizeTiers.length - 1];\r\n } else if (arr.length === 1) {\r\n return arr[0];\r\n } else {\r\n var x = arr[0];\r\n for (let i = 1; i < arr.length; i++) {\r\n var f = arr[i];\r\n if (\r\n f.DocWidth >= tempWidth &&\r\n f.DocHeight >= tempHeight &&\r\n f.DocWidth < x.DocWidth &&\r\n f.DocHeight <= x.DocHeight\r\n ) {\r\n x = f;\r\n }\r\n }\r\n return x;\r\n }\r\n };\r\n\r\n export const linoWidthAdjust = (n: number, pcs: ProductCustomizationState): number => {\r\n if (pcs.IsCAF || pcs.MaxFrameWidthPx <= 300) {\r\n return n;\r\n }\r\n if (n > 300) {\r\n if (pcs.Document_Width >= 9 && pcs.Document_Width <= 9.9999) {\r\n return n * 0.9;\r\n } else if (pcs.Document_Width >= 10 && pcs.Document_Width <= 13.9999) {\r\n if (Util.isNullOrWhiteSpace(pcs.ItemID) && !ItemID_EndsWithNumber(pcs.ItemID)) {\r\n return n * 0.83;\r\n } else {\r\n return n * 0.9;\r\n }\r\n } else if (pcs.Document_Width >= 14 && pcs.Document_Width <= 16) {\r\n return n * 0.9;\r\n } else if (pcs.Document_Width >= 16.0001 && pcs.Document_Width <= 50) {\r\n if (Util.isNullOrWhiteSpace(pcs.ItemID) && !ItemID_EndsWithNumber(pcs.ItemID)) {\r\n return n * 0.9;\r\n } else {\r\n return n;\r\n }\r\n } else {\r\n return n * 0.9;\r\n }\r\n }\r\n return n;\r\n };\r\n\r\n export const render = (\r\n pcs: r.ProductCustomizationState,\r\n _renderType: Util.RenderType = Util.RenderType.Normal,\r\n ): PCS_CSS => {\r\n pcs.state_FlatImageMode = true;\r\n if (window.innerWidth > 1200) {\r\n pcs.MaxFrameWidthPx = DefaultPCS.DefaultMaxFrameWidth;\r\n } else if (window.innerWidth > 880) {\r\n pcs.MaxFrameWidthPx = 800;\r\n } else if (window.innerWidth > 440) {\r\n pcs.MaxFrameWidthPx = window.innerWidth * 0.9;\r\n } else if (window.innerWidth > 200) {\r\n pcs.MaxFrameWidthPx = window.innerWidth * 0.85;\r\n } else {\r\n pcs.MaxFrameWidthPx = window.innerWidth * 0.75;\r\n }\r\n pcs.MaxFrameHeightPx = DefaultPCS.DefaultMaxFrameHeight;\r\n\r\n if (_renderType === Util.RenderType.Zoom) {\r\n pcs.MaxFrameWidthPx = window.innerWidth * 0.8;\r\n pcs.MaxFrameHeightPx = window.innerHeight * 0.8;\r\n }\r\n\r\n pcs.css.insignia_bot_visible = false;\r\n pcs.Document_Width = s.pcs.docWidth;\r\n pcs.Document_Height = s.pcs.docHeight;\r\n pcs.Document2_Width = s.pcs.docWidth2;\r\n pcs.Document2_Height = s.pcs.docHeight2;\r\n pcs.isHorizontal = s.pcs.docWidth > s.pcs.docHeight;\r\n\r\n const moulding = s.prod.mouldings.filter(m => m.id === s.pcs.moulding_id)[0];\r\n if (moulding) {\r\n pcs.MouldingID = moulding.id;\r\n pcs.MouldingName = moulding.name;\r\n pcs.MouldingExtWidth = moulding.extWidth;\r\n }\r\n\r\n if (!pcs.IsCAF) {\r\n const mat = s.prod.mats.filter(m => m.id === s.pcs.matcombo_id)[0];\r\n if (mat) {\r\n pcs.MatCombo_IsWoodFillet = mat.mat2_id === 36 || mat.mat2_id === 38;\r\n pcs.PrimaryMatID = mat.mat1_id;\r\n pcs.PrimaryMatName = mat.pmat_name;\r\n pcs.PrimaryMatColor = mat.pmat_color;\r\n pcs.SecondaryMatID = mat.mat2_id;\r\n if (pcs.SecondaryMatID > 0) {\r\n pcs.SecondaryMatName = mat.smat_name;\r\n pcs.SecondaryMatColor = mat.smat_color;\r\n }\r\n }\r\n } else {\r\n const mat1 = s.prod.caf_mat1.filter(m => m.id === s.pcs.mat1_id)[0];\r\n const mat2 = s.prod.caf_mat2.filter(m => m.id === s.pcs.mat2_id)[0];\r\n if (mat1) {\r\n pcs.PrimaryMatID = mat1.id;\r\n pcs.PrimaryMatName = mat1.name;\r\n pcs.PrimaryMatColor = mat1.mat_color;\r\n } else {\r\n pcs.PrimaryMatID = -1;\r\n pcs.PrimaryMatName = '';\r\n pcs.PrimaryMatColor = '';\r\n }\r\n if (mat2) {\r\n pcs.MatCombo_IsWoodFillet = mat2.id === 36 || mat2.id === 38;\r\n pcs.SecondaryMatID = mat2.id;\r\n pcs.SecondaryMatName = mat2.name;\r\n pcs.SecondaryMatColor = mat2.mat_color;\r\n } else {\r\n pcs.SecondaryMatID = -1;\r\n pcs.SecondaryMatName = '';\r\n pcs.SecondaryMatColor = '';\r\n }\r\n }\r\n\r\n if (!s.pcs.ep_id || s.pcs.ep_id <= 0 || s.prod.EngravedPlateStatusID === 0) {\r\n pcs.HasEngravedPlate = false;\r\n } else {\r\n pcs.HasEngravedPlate = true;\r\n pcs.EngravedPlateID = s.pcs.ep_id;\r\n if (s.pcs.ep_id === 37) {\r\n pcs.EngravedPlateName = 'EP_Gold';\r\n } else if (s.pcs.ep_id === 39) {\r\n pcs.EngravedPlateName = 'EP_Silver';\r\n } else {\r\n pcs.EngravedPlateName = 'EP_Black';\r\n }\r\n pcs.EP_1 = s.pcs.ep1;\r\n pcs.EP_2 = s.pcs.ep2;\r\n pcs.EP_3 = s.pcs.ep3;\r\n }\r\n\r\n pcs.Base_LinoID = s.pcs.lino_id;\r\n pcs.Base_LinoName = s.pcs.lino_base_name;\r\n pcs.lino_dyf_color = s.pcs.lino_dyf_color;\r\n pcs.Base_InsigniaID = s.pcs.insignia_id;\r\n pcs.Base_InsigniaName = s.pcs.insignia_base_name;\r\n\r\n if (\r\n s.prod.allowUpload1 &&\r\n s.ui.image_uploaded &&\r\n s.pcs.image_upload_hash3 &&\r\n s.pcs.image_upload_hash3.length > 2 &&\r\n s.pcs.override_d1_img &&\r\n s.pcs.override_d1_img.length > 5\r\n ) {\r\n pcs.o3 = s.pcs.override_d1_img;\r\n }\r\n\r\n pcs.UseCommonDPI =\r\n (pcs.MaxFrameWidthPx == 220 && pcs.MaxFrameHeightPx == 250) ||\r\n pcs.MaxFrameWidthPx == 308;\r\n pcs.UseMaxMouldingForSizing = false;\r\n\r\n pcs.Base_ExtraID = s.prod.ExtraEntityID;\r\n pcs.Base_ExtraEntityName = s.prod.ExtraEntityName;\r\n\r\n if (s.prod.CustomizationMethod === 1) {\r\n render_old_style(pcs, _renderType);\r\n pcs.css.frame_display_width = pcs.FrameDisplay_width;\r\n pcs.css.frame_display_height = pcs.FrameDisplay_height;\r\n return {...pcs.css};\r\n } else if (s.prod.CustomizationMethod < 1) {\r\n pcs.css.frame_display_width = pcs.FrameDisplay_width;\r\n pcs.css.frame_display_height = pcs.FrameDisplay_height;\r\n return {...pcs.css};\r\n }\r\n\r\n if (\r\n s.prod.DYF_FrameStyleID === DYF_FrameStylesEnum.Single_Document ||\r\n s.prod.DYF_FrameStyleID === DYF_FrameStylesEnum.Photo_Frame ||\r\n s.prod.DYF_FrameStyleID === DYF_FrameStylesEnum.Spirit ||\r\n s.prod.DYF_FrameStyleID === DYF_FrameStylesEnum.SpiritB ||\r\n s.prod.DYF_FrameStyleID === DYF_FrameStylesEnum.Cameo\r\n ) {\r\n renderSingleDocFrame(pcs);\r\n } else if (s.prod.DYF_FrameStyleID === DYF_FrameStylesEnum.Tassel) {\r\n renderTasselFrame(pcs);\r\n } else if (\r\n s.prod.DYF_FrameStyleID === DYF_FrameStylesEnum.Double_Document ||\r\n s.prod.DYF_FrameStyleID === DYF_FrameStylesEnum.Campus_Scene\r\n ) {\r\n renderDoubleDoc(pcs);\r\n } else if (s.prod.DYF_FrameStyleID === DYF_FrameStylesEnum.Varsity) {\r\n renderVarsity(pcs);\r\n } else if (\r\n s.prod.DYF_FrameStyleID === DYF_FrameStylesEnum.Sports_Oval ||\r\n s.prod.DYF_FrameStyleID === DYF_FrameStylesEnum.Portrait_Oval\r\n ) {\r\n renderOvalFrame(pcs);\r\n } else if (s.prod.DYF_FrameStyleID === DYF_FrameStylesEnum.Century) {\r\n renderCentury(pcs);\r\n }\r\n\r\n pcs.css.frame_display_width = pcs.FrameDisplay_width;\r\n pcs.css.frame_display_height = pcs.FrameDisplay_height;\r\n\r\n return {...pcs.css};\r\n };\r\n\r\n export const render_old_style = (\r\n pcs: r.ProductCustomizationState,\r\n _renderType: Util.RenderType,\r\n ) => {\r\n let MouldingWidthPx: number =\r\n s.prod.MouldingThickness === 1 ? 21 : s.prod.MouldingThickness === 2 ? 63 : 42;\r\n\r\n const largept = [2, 6, 8, 44, 45, 46, 47, 59, 64, 9, 19, 9, 60];\r\n\r\n // if(largept.includes[s.prod.ProductTypeID] && !s.prod.OrientationHorizontal){\r\n // MouldingWidthPx = 16;\r\n // } else if(largept.includes[s.prod.ProductTypeID]){\r\n // MouldingWidthPx = 16;\r\n // } else\r\n\r\n if (\r\n s.prod.MouldingExtWidth <= 1.375 ||\r\n s.prod.MouldingID == 146 ||\r\n !s.prod.OrientationHorizontal\r\n ) {\r\n MouldingWidthPx = 22;\r\n } else if (s.prod.MouldingExtWidth < 2) {\r\n MouldingWidthPx = 32;\r\n } else {\r\n MouldingWidthPx = 50;\r\n }\r\n pcs.css.moulding_width = MouldingWidthPx;\r\n pcs.css.moulding_half = MouldingWidthPx / 2;\r\n\r\n pcs.css.m_topleft_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_topleftcorner.jpg`.toLowerCase();\r\n pcs.css.m_topleft_left = `0`;\r\n pcs.css.m_topleft_top = `0`;\r\n pcs.css.m_topleft_width = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_topright_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_toprightcorner.jpg`.toLowerCase();\r\n pcs.css.m_topright_left = ``;\r\n pcs.css.m_topright_top = `0`;\r\n pcs.css.m_topright_width = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_bottomleft_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_bottomleftcorner.jpg`.toLowerCase();\r\n pcs.css.m_bottomleft_left = `0`;\r\n pcs.css.m_bottomleft_top = `inherit`;\r\n pcs.css.m_bottomleft_width = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_bottomright_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_bottomrightcorner.jpg`.toLowerCase();\r\n pcs.css.m_bottomright_left = `inherit`;\r\n pcs.css.m_bottomright_top = `inherit`;\r\n pcs.css.m_bottomright_width = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_left_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_leftside.jpg`.toLowerCase();\r\n pcs.css.m_left_left = `0`;\r\n pcs.css.m_left_top = `0`;\r\n pcs.css.m_left_width = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_left_height = `100%`;\r\n pcs.css.m_right_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_rightside.jpg`.toLowerCase();\r\n pcs.css.m_right_left = `inherit`;\r\n pcs.css.m_right_top = `0`;\r\n pcs.css.m_right_width = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_right_height = `100%`;\r\n pcs.css.m_top_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_topside.jpg`.toLowerCase();\r\n pcs.css.m_top_left = `0px`;\r\n pcs.css.m_top_top = `0`;\r\n // pcs.css.m_top_width = `${PMatWidthPx.toString()}px`;\r\n pcs.css.m_top_height = `${MouldingWidthPx.toString()}px`;\r\n pcs.css.m_bottom_src =\r\n `${FramePartDomain}moulding/v2/${pcs.MouldingName}_original_bottomside.jpg`.toLowerCase();\r\n pcs.css.m_bottom_left = `0px`;\r\n pcs.css.m_bottom_top = `inherit`;\r\n // pcs.css.m_bottom_width = `${PMatWidthPx.toString()}px`;\r\n pcs.css.m_bottom_height = `${MouldingWidthPx.toString()}px`;\r\n\r\n return true;\r\n };\r\n\r\n const renderSingleDocFrame = (pcs: r.ProductCustomizationState): void => {\r\n let CurrentDocWidth: number = 0;\r\n let CurrentDocHeight: number = 0;\r\n let DocSizeTier = r.getDocSizeTier(pcs);\r\n let WidthLimit: number = 14;\r\n let HeightLimit: number = 14;\r\n\r\n if (pcs.Document_Width > WidthLimit) {\r\n let ratio: number = WidthLimit / pcs.Document_Width;\r\n pcs.Document_Width = WidthLimit;\r\n pcs.Document_Height = pcs.Document_Height * ratio;\r\n }\r\n if (pcs.Document_Height > HeightLimit) {\r\n let ratio: number = HeightLimit / pcs.Document_Height;\r\n pcs.Document_Height = HeightLimit;\r\n pcs.Document_Width = pcs.Document_Width * ratio;\r\n }\r\n CurrentDocWidth = pcs.Document_Width;\r\n CurrentDocHeight = pcs.Document_Height;\r\n\r\n let filletCount: number = pcs.MatCombo_IsWoodFillet ? 1 : 0;\r\n let SMatCount: number = !pcs.MatCombo_IsWoodFillet && pcs.SecondaryMatID > 0 ? 1 : 0;\r\n let SMatWidthPixelAdder: number = 1;\r\n\r\n // rail Setup\r\n // - Rail includes: Inner Mat and all mat bevels.\r\n // - The primary mat is actually the inner mat on single document frames\r\n // - The document \"underlaps\" the inner mat. See DocSizeTier.DocOverLap\r\n // - The mats are overlapped by the moulding by 0.25\r\n // - From this point forward, rail will be defined as all visible portions of mats including bevels (we are subtracting out the 0.25 of moulding overlap)\r\n let MouldingOverlap: number = 0.25;\r\n let RailTop: number = (DocSizeTier.StandardRail) - MouldingOverlap;\r\n let RailSide: number = (DocSizeTier.StandardRail) - MouldingOverlap;\r\n if (pcs.DYF_FrameStyleID == (r.DYF_FrameStylesEnum.Cameo)) {\r\n RailTop = (DocSizeTier.CameoRail) - MouldingOverlap;\r\n RailSide = (DocSizeTier.CameoRail) - MouldingOverlap;\r\n }\r\n // else if (pcs.DYF_FrameStyleID == (r.DYF_FrameStylesEnum.Photo_Frame) && pcs.Document_Width <= 10) {\r\n // RailTop = 1.625 - MouldingOverlap;\r\n // RailSide = 1.625 - MouldingOverlap;\r\n // }\r\n // Dim RailSize = CDec(DocSizeTier.CameoRail) - MouldingOverlap\r\n // insignia Adjustments\r\n let InsigniaWidth =\r\n pcs.Base_InsigniaWidthInches > 0\r\n ? pcs.Base_InsigniaWidthInches\r\n : r.DefaultPCS.DefaultInsigniaWidthMax;\r\n // if (ProductID == 35808) { var sql = $\"INSERT INTO BackendLogV2 VALUES (0, 18006, 138, GETUTCDATE(), 1, {ProductID}, 999, 999, 999, '34.192.96.123', '1: {InsigniaWidth}');\"; data.fn.ExecuteSQL(sql); }\r\n if (\r\n pcs.DYF_FrameStyleID == (r.DYF_FrameStylesEnum.Spirit) ||\r\n pcs.DYF_FrameStyleID == (r.DYF_FrameStylesEnum.SpiritB)\r\n ) {\r\n if (pcs.Base_InsigniaWidthInches > 1.9) {\r\n } else if (CurrentDocWidth < 10 && CurrentDocHeight < 10) {\r\n InsigniaWidth = Math.min(r.DefaultPCS.DefaultInsigniaWidthMax, RailTop - 0.5);\r\n // if (ProductID == 35808) { var sql = $\"INSERT INTO BackendLogV2 VALUES (0, 18006, 138, GETUTCDATE(), 1, {ProductID}, 999, 999, 999, '34.192.96.123', '2a: {InsigniaWidth}');\"; data.fn.ExecuteSQL(sql); }\r\n } else if (CurrentDocWidth < 10 || CurrentDocHeight < 10) {\r\n InsigniaWidth = Math.min(r.DefaultPCS.DefaultInsigniaWidthMax, RailTop - 0.4);\r\n // if (ProductID == 35808) { var sql = $\"INSERT INTO BackendLogV2 VALUES (0, 18006, 138, GETUTCDATE(), 1, {ProductID}, 999, 999, 999, '34.192.96.123', '2b: {DefaultPCS.DefaultInsigniaWidthMax}:{RailTop}');\"; data.fn.ExecuteSQL(sql); }\r\n }\r\n } else {\r\n InsigniaWidth =\r\n CurrentDocWidth < 10 && CurrentDocHeight < 10\r\n ? Math.min(r.DefaultPCS.DefaultInsigniaWidthMax, RailTop - 0.5)\r\n : InsigniaWidth;\r\n // if (ProductID == 35808) { var sql = $\"INSERT INTO BackendLogV2 VALUES (0, 18006, 138, GETUTCDATE(), 1, {ProductID}, 999, 999, 999, '34.192.96.123', '2c: {InsigniaWidth}');\"; data.fn.ExecuteSQL(sql); }\r\n }\r\n InsigniaWidth =\r\n DocSizeTier.DocSizeTierID >= 7 && pcs.Base_InsigniaWidthInches < 1 ? 2 : InsigniaWidth;\r\n // if (ProductID == 35808) { var sql = $\"INSERT INTO BackendLogV2 VALUES (0, 18006, 138, GETUTCDATE(), 1, {ProductID}, 999, 999, 999, '34.192.96.123', '3: {InsigniaWidth}');\"; data.fn.ExecuteSQL(sql); }\r\n // lino\r\n let LinoWidthMax: number =\r\n Math.min(r.DefaultPCS.DefaultLinoWidthMax, CurrentDocWidth + 1) +\r\n pcs.Base_LinoAdjustmentInches;\r\n LinoWidthMax = r.linoWidthAdjust(LinoWidthMax, pcs);\r\n let LinoHeightMax: number = r.DefaultPCS.DefaultLinoHeightMax * (LinoWidthMax / 11.5);\r\n // ****----____ EP-code-change ____----****\r\n let EPWidth: number = r.DefaultPCS.DefaultEPWidth;\r\n let EPHeight: number = r.DefaultPCS.DefaultEPHeight;\r\n if (CurrentDocHeight <= 7) {\r\n EPWidth = 3;\r\n EPHeight = 0.5;\r\n }\r\n // ****----____ EP-code-change ____----****\r\n let TotalWidth: number =\r\n RailSide * 2 +\r\n CurrentDocWidth +\r\n (pcs.UseMaxMouldingForSizing ? pcs.MouldingWidthMax * 2 : pcs.MouldingExtWidth * 2);\r\n let DPI: number = (Math.floor((pcs.MaxFrameWidthPx + 4) / TotalWidth)); // add 4. Yes, it's cheating, but we always round down and actually have a bit more room to work with.\r\n\r\n let done: boolean = false;\r\n let BevelWidthPx: number = -1;\r\n let DocWidthPx: number = -1;\r\n let DocHeightPx: number = -1;\r\n // ****----____ EP-code-change ____----****\r\n let EPWidthPx: number = -1;\r\n let EPHeightPx: number = -1;\r\n // ****----____ EP-code-change ____----****\r\n let MaxInsigniaWidthPx: number = -1;\r\n let LinoWidthMaxPx: number = -1;\r\n let LinoHeightMaxPx: number = -1;\r\n let MouldingWidthPx: number = -1;\r\n let MaxMouldingWidthPx: number = -1;\r\n let SMatWidthPx: number = -1;\r\n let RailSidePx: number = -1;\r\n let RailTopPx: number = -1;\r\n if (pcs.MaxFrameWidthPx <= 250 && SMatWidthPx > 2) {\r\n SMatWidthPx = 2;\r\n }\r\n let TotalUsedWidthPx: number = -1;\r\n let TotalUsedWidthPx_NoMargin: number = -1;\r\n let MaxSingleDocRailWidthPx: number = -1;\r\n let MaxPossibleSingleDocWidthPx: number = -1;\r\n let MaxPossibleSingleDocHeightPx: number = -1;\r\n let PMatWidthPx: number = -1;\r\n let TotalUsedHeightPx: number = -1;\r\n let TotalUsedHeightPx_NoMargin: number = 1;\r\n let PMatHeightPx: number = -1;\r\n let WoodFilletWidthPx: number = -1;\r\n\r\n while (!done) {\r\n BevelWidthPx = Math.max(1, (Math.round(pcs.BevelWidth * 2 * DPI))); // double bevel width. It was too small.\r\n DocWidthPx = (\r\n (Math.round((CurrentDocWidth - (DocSizeTier.DocOverlap)) * DPI))\r\n );\r\n DocHeightPx = (\r\n (Math.round((CurrentDocHeight - (DocSizeTier.DocOverlap)) * DPI))\r\n );\r\n // ****----____ EP-code-change ____----****\r\n EPWidthPx = ((EPWidth * DPI));\r\n EPHeightPx = ((EPHeight * DPI));\r\n // ****----____ EP-code-change ____----****\r\n MaxInsigniaWidthPx = (Math.round(InsigniaWidth * DPI));\r\n LinoWidthMaxPx = (Math.round(LinoWidthMax * DPI));\r\n LinoHeightMaxPx = (Math.round(LinoHeightMax * DPI));\r\n MouldingWidthPx = (Math.round(pcs.MouldingExtWidth * DPI));\r\n MaxMouldingWidthPx = (Math.round(pcs.MouldingWidthMax * DPI));\r\n pcs.Padding = MaxMouldingWidthPx - MouldingWidthPx;\r\n SMatWidthPx =\r\n Math.max(\r\n 1,\r\n (Math.floor((pcs.InnerAccentWidth - pcs.BevelWidth) * DPI)),\r\n ) + SMatWidthPixelAdder; // innerAccentWidth includes bevel. We take bevel out here as we convert to pixels. Adding +1 pixel here. We might have to loop back and adjust DPI down\r\n RailSidePx =\r\n (Math.round(RailSide * DPI)) +\r\n SMatWidthPixelAdder * SMatCount +\r\n filletCount * (BevelWidthPx * 2 + SMatWidthPx); // we add the smat pixel adder because this adder is not accounted for in the core rail size specs. Also, if it is a wood fillet, we must add the wood fillet to the rail size since the fillet is additive\r\n RailTopPx =\r\n (Math.round(RailTop * DPI)) +\r\n SMatWidthPixelAdder * SMatCount +\r\n filletCount * (BevelWidthPx * 2 + SMatWidthPx);\r\n if (pcs.MaxFrameWidthPx <= 250 && SMatWidthPx > 2) {\r\n SMatWidthPx = 2;\r\n } // Cap SMat at 2px for images at or below 250px// Cap SMat at 2px for images at or below 250px\r\n TotalUsedWidthPx = RailSidePx * 2 + DocWidthPx + MaxMouldingWidthPx * 2;\r\n TotalUsedWidthPx_NoMargin = RailSidePx * 2 + DocWidthPx + MouldingWidthPx * 2;\r\n // calculate the maximum possible width of a single doc frame with this document size. This is used to establish a common DPI across all single docs when UseCommonDPI is set to true\r\n MaxSingleDocRailWidthPx = Math.max(\r\n (\r\n ((\r\n Math.round(((DocSizeTier.CameoRail) - MouldingOverlap) * DPI)\r\n ))\r\n ) + SMatWidthPixelAdder,\r\n (\r\n ((\r\n Math.round(\r\n ((DocSizeTier.StandardRail) - MouldingOverlap) * DPI,\r\n )\r\n ))\r\n ) +\r\n SMatWidthPixelAdder +\r\n (BevelWidthPx * 2 + SMatWidthPx),\r\n ); // we use the larger cameo rail for this calculation. Also, compare against standard rail + fillet. Take the largest\r\n MaxPossibleSingleDocWidthPx =\r\n MaxSingleDocRailWidthPx * 2 + DocWidthPx + MaxMouldingWidthPx * 2;\r\n MaxPossibleSingleDocHeightPx =\r\n MaxSingleDocRailWidthPx * 2 + DocHeightPx + MaxMouldingWidthPx * 2;\r\n PMatWidthPx = TotalUsedWidthPx - MaxMouldingWidthPx * 2; // refers to the outer width, not the width of an individual side\r\n TotalUsedHeightPx = RailTopPx * 2 + DocHeightPx + MaxMouldingWidthPx * 2;\r\n TotalUsedHeightPx_NoMargin = RailTopPx * 2 + DocHeightPx + MouldingWidthPx * 2;\r\n PMatHeightPx = TotalUsedHeightPx - MaxMouldingWidthPx * 2; // refers to the outer width, not the width of an individual side\r\n WoodFilletWidthPx = BevelWidthPx * 2 + SMatWidthPx;\r\n\r\n if (DocHeightPx > DocWidthPx && pcs.UseCommonDPI) {\r\n if (MaxPossibleSingleDocHeightPx > pcs.MaxFrameWidthPx) {\r\n DPI -= 1;\r\n done = false;\r\n } else {\r\n done = true;\r\n }\r\n } else {\r\n if (\r\n (pcs.UseCommonDPI ? MaxPossibleSingleDocWidthPx : TotalUsedWidthPx_NoMargin) >\r\n pcs.MaxFrameWidthPx ||\r\n (pcs.UseCommonDPI ? TotalUsedHeightPx : TotalUsedHeightPx_NoMargin) >\r\n pcs.MaxFrameHeightPx\r\n ) {\r\n DPI -= 1;\r\n done = false;\r\n } else {\r\n done = true;\r\n }\r\n }\r\n }\r\n\r\n // check width, look back with new dpi if necessary\r\n pcs.FrameDisplay_width = TotalUsedWidthPx;\r\n pcs.FrameDisplay_height = TotalUsedHeightPx;\r\n // primary mat\r\n r.renderStandardPrimaryMat(\r\n PMatWidthPx,\r\n PMatHeightPx,\r\n MaxMouldingWidthPx,\r\n MouldingWidthPx,\r\n pcs,\r\n );\r\n r.renderStandardMoulding(MouldingWidthPx, PMatWidthPx, PMatHeightPx, pcs);\r\n // secondary mat\r\n pcs.css.fillet_visible = filletCount > 0;\r\n if (SMatCount > 0) {\r\n // if there is an inner accent, then the outer mat \"pulls back\" to make room for the inner mat\r\n pcs.css.doc1_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc1_pmat_bevel_left = `${(RailSidePx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_top = `${(RailTopPx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_width = `${DocWidthPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)}px`;\r\n pcs.css.doc1_pmat_bevel_height = `${DocHeightPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)}px`;\r\n // console.log(BevelWidthPx, SMatWidthPx, DocWidthPx, DocHeightPx);\r\n r.RenderStandardSMat(BevelWidthPx, SMatWidthPx, DocWidthPx, DocHeightPx, pcs);\r\n pcs.css.doc1_src = r.doc_path(\r\n DocWidthPx,\r\n DocHeightPx,\r\n pcs.Base_DocumentName,\r\n pcs.Base_ExtraEntityName,\r\n pcs.DYF_FrameStyleID,\r\n pcs.o3,\r\n );\r\n pcs.css.doc1_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_width = `${DocWidthPx.toString()}px`;\r\n pcs.css.doc1_height = `${DocHeightPx.toString()}px`;\r\n } else if (filletCount > 0) {\r\n // turn off inner mat pieces\r\n pcs.css.doc1_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc1_pmat_bevel_left = `0px`;\r\n pcs.css.doc1_pmat_bevel_top = `0px`;\r\n pcs.css.doc1_pmat_bevel_width = ``;\r\n pcs.css.doc1_pmat_bevel_height = ``;\r\n r.renderCollapsedSMat(pcs);\r\n r.renderStandardFillet(\r\n RailSidePx,\r\n RailTopPx,\r\n WoodFilletWidthPx,\r\n DocWidthPx,\r\n DocHeightPx,\r\n pcs,\r\n );\r\n pcs.css.doc1_src = r.doc_path(\r\n DocWidthPx,\r\n DocHeightPx,\r\n pcs.Base_DocumentName,\r\n pcs.Base_ExtraEntityName,\r\n pcs.DYF_FrameStyleID,\r\n pcs.o3,\r\n );\r\n pcs.css.doc1_left = `${RailSidePx.toString()}px`;\r\n pcs.css.doc1_top = `${RailTopPx.toString()}px`;\r\n pcs.css.doc1_width = `${DocWidthPx.toString()}px`;\r\n pcs.css.doc1_height = `${DocHeightPx.toString()}px`;\r\n } else {\r\n pcs.css.doc1_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc1_pmat_bevel_left = `${(RailSidePx - BevelWidthPx).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_top = `${(RailTopPx - BevelWidthPx).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_width = `${(DocWidthPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_height = `${(DocHeightPx + BevelWidthPx * 2).toString()}px`;\r\n r.renderCollapsedSMat(pcs);\r\n pcs.css.doc1_src = r.doc_path(\r\n DocWidthPx,\r\n DocHeightPx,\r\n pcs.Base_DocumentName,\r\n pcs.Base_ExtraEntityName,\r\n pcs.DYF_FrameStyleID,\r\n pcs.o3,\r\n );\r\n pcs.css.doc1_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_width = `${DocWidthPx.toString()}px`;\r\n pcs.css.doc1_height = `${DocHeightPx.toString()}px`;\r\n }\r\n // insignia\r\n let insLeft: number = r.renderStandardInsignia(\r\n filletCount,\r\n WoodFilletWidthPx,\r\n PMatWidthPx,\r\n MaxInsigniaWidthPx,\r\n RailTopPx,\r\n BevelWidthPx,\r\n SMatCount,\r\n SMatWidthPx,\r\n pcs,\r\n );\r\n // lino\r\n let linoLeft: number = -1;\r\n if (filletCount > 0) {\r\n pcs.css.lino_visible = pcs.Base_LinoID > 0;\r\n if (pcs.Base_LinoID != 0) {\r\n pcs.css.lino_src = r.lino_path(LinoWidthMaxPx, pcs);\r\n pcs.css.lino_left = `${(Math.floor((RailSidePx) + (DocWidthPx) / 2 - (LinoWidthMaxPx) / 2))}px`;\r\n pcs.css.lino_top = `${((RailSidePx + DocHeightPx + filletCount * WoodFilletWidthPx + Math.floor(((RailSidePx) - (filletCount) * (WoodFilletWidthPx)) / 2 - (LinoHeightMaxPx) / 2)))}px`;\r\n pcs.css.lino_width = `${LinoWidthMaxPx.toString()}px`;\r\n pcs.css.lino_height = `${LinoHeightMaxPx.toString()}px`;\r\n }\r\n } else {\r\n linoLeft = r.renderStandardLino(\r\n filletCount,\r\n WoodFilletWidthPx,\r\n BevelWidthPx,\r\n SMatCount,\r\n SMatWidthPx,\r\n RailSidePx,\r\n DocWidthPx,\r\n DocHeightPx,\r\n LinoWidthMaxPx,\r\n LinoHeightMaxPx,\r\n pcs,\r\n );\r\n }\r\n // ep\r\n pcs.css.ep_visible = pcs.HasEngravedPlate;\r\n if (pcs.HasEngravedPlate) {\r\n let EPTopPx: number =\r\n (\r\n (RailSidePx +\r\n DocHeightPx +\r\n BevelWidthPx +\r\n SMatCount * (SMatWidthPx + BevelWidthPx) +\r\n filletCount * WoodFilletWidthPx)\r\n ) +\r\n (\r\n ((\r\n Math.floor(\r\n ((RailSidePx) -\r\n (BevelWidthPx) -\r\n (SMatCount) *\r\n ((SMatWidthPx) + (BevelWidthPx)) -\r\n (filletCount) * (WoodFilletWidthPx)) /\r\n 2 -\r\n (EPHeightPx) / 2,\r\n )\r\n ))\r\n ) -\r\n BevelWidthPx * 2;\r\n let EPLeftPx: number =\r\n (\r\n ((\r\n Math.floor(\r\n (RailSidePx) +\r\n (DocWidthPx) / 2 -\r\n (EPWidthPx) / 2,\r\n )\r\n ))\r\n ) -\r\n BevelWidthPx * 2;\r\n r.renderEngravedPlate(\r\n EPLeftPx,\r\n EPTopPx,\r\n EPWidthPx,\r\n EPHeightPx,\r\n BevelWidthPx,\r\n PMatWidthPx,\r\n pcs,\r\n );\r\n }\r\n if (pcs.DYF_FrameStyleID == (r.DYF_FrameStylesEnum.Cameo)) {\r\n pcs.css.insignia_visible = false;\r\n pcs.css.cameo_visible = true;\r\n let CameoWidth: number = 4.75;\r\n let CameoHeight: number = 1.9;\r\n let CameoWidthPx: number = (Math.floor(CameoWidth * DPI)); // Cameo expands out to cover the missing inner accent space if no inner accent\r\n let CameoHeightPx: number = (Math.floor(CameoHeight * DPI));\r\n pcs.css.cameo_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.cameo_pmat_bevel_left = `${((\r\n ((\r\n Math.floor(\r\n (RailSidePx) +\r\n (DocWidthPx) / 2 -\r\n (CameoWidthPx) / 2,\r\n )\r\n ))\r\n )).toString()}px`;\r\n pcs.css.cameo_pmat_bevel_top = `${(\r\n (\r\n ((\r\n Math.floor(\r\n ((RailSidePx) -\r\n (BevelWidthPx) -\r\n SMatCount * ((SMatWidthPx) + BevelWidthPx)) /\r\n 2 -\r\n CameoHeightPx / 2,\r\n )\r\n ))\r\n ) - BevelWidthPx\r\n ).toString()}px`;\r\n pcs.css.cameo_pmat_bevel_width = `${(CameoWidthPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.cameo_pmat_bevel_height = `${(CameoHeightPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.cameo_pmat_bevel_borderRadius = `${CameoWidthPx.toString()}px / ${CameoHeightPx.toString()}px`;\r\n pcs.css.cameo_src = r.cameo_path(CameoWidthPx, pcs.Base_ExtraEntityName);\r\n pcs.css.cameo_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.cameo_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.cameo_width = `${CameoWidthPx.toString()}px`;\r\n pcs.css.cameo_height = `${CameoHeightPx.toString()}px`;\r\n pcs.css.cameo_borderRadius = `${CameoWidthPx.toString()}px / ${CameoHeightPx.toString()}px`;\r\n }\r\n if (\r\n pcs.DYF_FrameStyleID == (r.DYF_FrameStylesEnum.Spirit) ||\r\n pcs.DYF_FrameStyleID == (r.DYF_FrameStylesEnum.SpiritB)\r\n ) {\r\n pcs.css.spirit_visible = true;\r\n let left: number = (\r\n (Math.floor(((RailSidePx - SMatWidthPx - BevelWidthPx * 2)) / 2))\r\n );\r\n let spirit_thick: number = (\r\n (Math.floor(0.01260516605167 * (PMatWidthPx)))\r\n );\r\n if (spirit_thick % 2 != 0) {\r\n spirit_thick += 1;\r\n }\r\n spirit_thick += 2;\r\n let spirit_smat_thick: number = (((spirit_thick) / 2)) + 1;\r\n if (pcs.MaxFrameWidthPx >= 1280) {\r\n spirit_smat_thick = (((spirit_thick) / 2)) - 1;\r\n }\r\n if (spirit_smat_thick % 2 != 0) {\r\n if (pcs.MaxFrameWidthPx <= 599 || pcs.MaxFrameWidthPx == 800) {\r\n spirit_smat_thick -= 1;\r\n } else {\r\n spirit_smat_thick += 1;\r\n }\r\n }\r\n pcs.css.spirit_smat_bg = `#${pcs.SecondaryMatColor}`;\r\n let smat_left: number = left + (spirit_thick - spirit_smat_thick) / 2;\r\n let sidesLeft: number = left - (spirit_thick / 2);\r\n let sides_smat_Left: number =\r\n sidesLeft + ((spirit_thick - spirit_smat_thick) / 2);\r\n let sidesHeight: number = PMatHeightPx - left - left + spirit_thick;\r\n let smat_height: number = sidesHeight - (spirit_thick - spirit_smat_thick);\r\n // spirit widths\r\n pcs.css.spi_left_width = `${spirit_thick}px`;\r\n pcs.css.spi_right_width = `${spirit_thick}px`;\r\n pcs.css.spi_smat_left_width = `${spirit_smat_thick}px`;\r\n pcs.css.spi_smat_right_width = `${spirit_smat_thick}px`;\r\n // spirit left and right\r\n pcs.css.spi_left_left = `${sidesLeft}px`;\r\n pcs.css.spi_right_right = `${sidesLeft}px`;\r\n pcs.css.spi_left_top = `${sidesLeft}px`;\r\n pcs.css.spi_right_top = `${sidesLeft}px`;\r\n pcs.css.spi_left_height = `${sidesHeight}px`;\r\n pcs.css.spi_right_height = `${sidesHeight}px`;\r\n // spirit smat left and right\r\n pcs.css.spi_smat_left_left = `${sides_smat_Left}px`;\r\n pcs.css.spi_smat_right_right = `${sides_smat_Left}px`;\r\n pcs.css.spi_smat_left_top = `${sides_smat_Left}px`;\r\n pcs.css.spi_smat_right_top = `${sides_smat_Left}px`;\r\n pcs.css.spi_smat_left_height = `${smat_height}px`;\r\n pcs.css.spi_smat_right_height = `${smat_height}px`;\r\n if (pcs.DYF_FrameStyleID == (r.DYF_FrameStylesEnum.Spirit)) {\r\n insLeft = r.renderBottomInsignia(\r\n filletCount,\r\n WoodFilletWidthPx,\r\n PMatWidthPx,\r\n MaxInsigniaWidthPx,\r\n RailTopPx,\r\n BevelWidthPx,\r\n SMatCount,\r\n SMatWidthPx,\r\n DocHeightPx,\r\n pcs,\r\n );\r\n }\r\n pcs.css.spirit_visible_ins = insLeft > 0;\r\n pcs.css.spirit_ins_bot =\r\n pcs.DYF_FrameStyleID == (r.DYF_FrameStylesEnum.Spirit);\r\n pcs.css.spirit_visible_lino =\r\n pcs.DYF_FrameStyleID == (r.DYF_FrameStylesEnum.SpiritB) &&\r\n linoLeft > 0;\r\n // spirit bottom\r\n pcs.css.spi_bot1_left = `${left}px`;\r\n pcs.css.spi_bot2_right = `${left}px`;\r\n pcs.css.spi_bot1_bot = `${left - spirit_thick / 2}px`;\r\n pcs.css.spi_bot2_bot = `${left - spirit_thick / 2}px`;\r\n pcs.css.spi_smat_bot1_bot = `${smat_left - spirit_thick / 2}px`;\r\n pcs.css.spi_smat_bot2_bot = `${smat_left - spirit_thick / 2}px`;\r\n pcs.css.spi_bot1_height = `${spirit_thick}px`;\r\n pcs.css.spi_bot2_height = `${spirit_thick}px`;\r\n pcs.css.spi_smat_bot1_height = `${spirit_smat_thick}px`;\r\n pcs.css.spi_smat_bot2_height = `${spirit_smat_thick}px`;\r\n pcs.css.spi_smat_bot1_left = `${sides_smat_Left}px`;\r\n pcs.css.spi_smat_bot2_right = `${sides_smat_Left}px`;\r\n // bottom widths:\r\n if (pcs.DYF_FrameStyleID == (r.DYF_FrameStylesEnum.Spirit)) {\r\n let _w: number = pcs.css.spirit_visible_ins\r\n ? insLeft - MaxInsigniaWidthPx\r\n : PMatWidthPx - left - left;\r\n pcs.css.spi_bot1_width = `${_w}px`;\r\n pcs.css.spi_bot2_width = `${_w}px`;\r\n pcs.css.spi_smat_bot1_width = `${_w}px`;\r\n pcs.css.spi_smat_bot2_width = `${_w}px`;\r\n } else if (pcs.DYF_FrameStyleID == (r.DYF_FrameStylesEnum.SpiritB)) {\r\n let _w: number = pcs.css.spirit_visible_lino\r\n ? linoLeft - (((left) / 1.25))\r\n : PMatWidthPx - left - left;\r\n pcs.css.spi_bot1_width = `${_w}px`;\r\n pcs.css.spi_bot2_width = `${_w}px`;\r\n pcs.css.spi_smat_bot1_width = `${_w}px`;\r\n pcs.css.spi_smat_bot2_width = `${_w}px`;\r\n }\r\n // spirit top\r\n pcs.css.spi_top1_left = `${left}px`;\r\n pcs.css.spi_top2_right = `${left}px`;\r\n pcs.css.spi_top1_top = `${left - spirit_thick / 2}px`;\r\n pcs.css.spi_top2_top = `${left - spirit_thick / 2}px`;\r\n pcs.css.spi_smat_top1_top = `${smat_left - spirit_thick / 2}px`;\r\n pcs.css.spi_smat_top2_top = `${smat_left - spirit_thick / 2}px`;\r\n pcs.css.spi_top1_height = `${spirit_thick}px`;\r\n pcs.css.spi_top2_height = `${spirit_thick}px`;\r\n pcs.css.spi_smat_top1_height = `${spirit_smat_thick}px`;\r\n pcs.css.spi_smat_top2_height = `${spirit_smat_thick}px`;\r\n pcs.css.spi_smat_top1_left = `${sides_smat_Left}px`;\r\n pcs.css.spi_smat_top2_right = `${sides_smat_Left}px`;\r\n // top widths:\r\n if (pcs.DYF_FrameStyleID == (r.DYF_FrameStylesEnum.Spirit)) {\r\n let _w: number = PMatWidthPx - left - left;\r\n pcs.css.spi_top1_width = `${_w}px`;\r\n pcs.css.spi_top2_width = `${_w}px`;\r\n pcs.css.spi_smat_top1_width = `${_w}px`;\r\n pcs.css.spi_smat_top2_width = `${_w}px`;\r\n pcs.css.lino_visible = false;\r\n } else if (pcs.DYF_FrameStyleID == (r.DYF_FrameStylesEnum.SpiritB)) {\r\n let _w: number = pcs.css.spirit_visible_ins\r\n ? insLeft - MaxInsigniaWidthPx\r\n : PMatWidthPx - left - left;\r\n if (pcs.css.spirit_visible_ins && pcs.Base_InsigniaWidthInches >= 1.9) {\r\n let factor: number = 1;\r\n if (pcs.css.spirit_visible_ins && pcs.Base_InsigniaWidthInches >= 4.0) {\r\n factor = 1.75;\r\n } else if (pcs.css.spirit_visible_ins && pcs.Base_InsigniaWidthInches >= 3.5) {\r\n factor = 1.45;\r\n } else if (pcs.css.spirit_visible_ins && pcs.Base_InsigniaWidthInches >= 3.0) {\r\n factor = 1.35;\r\n } else if (\r\n pcs.css.spirit_visible_ins &&\r\n pcs.Base_InsigniaWidthInches >= 2.525\r\n ) {\r\n factor = 1.25;\r\n } else if (pcs.css.spirit_visible_ins && pcs.Base_InsigniaWidthInches == 2.5) {\r\n factor = 1.225;\r\n } else if (pcs.css.spirit_visible_ins && pcs.Base_InsigniaWidthInches >= 2.4) {\r\n factor = 1.175;\r\n } else if (pcs.css.spirit_visible_ins && pcs.Base_InsigniaWidthInches >= 2.3) {\r\n factor = 1.15;\r\n } else if (pcs.css.spirit_visible_ins && pcs.Base_InsigniaWidthInches >= 2.2) {\r\n factor = 1.125;\r\n } else if (pcs.css.spirit_visible_ins && pcs.Base_InsigniaWidthInches >= 2.1) {\r\n factor = 1.1;\r\n } else if (pcs.css.spirit_visible_ins && pcs.Base_InsigniaWidthInches >= 2.0) {\r\n factor = 1.075;\r\n } else if (pcs.css.spirit_visible_ins && pcs.Base_InsigniaWidthInches >= 1.9) {\r\n factor = 1.06;\r\n }\r\n if (pcs.Document_Width >= 14 || (pcs.Document_Height >= 11 && factor > 1)) {\r\n factor = factor * 0.825;\r\n }\r\n let old_w: number = _w;\r\n if (pcs.css.spirit_visible_ins && pcs.Base_InsigniaWidthInches >= 1.9) {\r\n _w = (\r\n ((\r\n ((\r\n ((insLeft) - (MaxInsigniaWidthPx))\r\n ) * factor)\r\n ))\r\n );\r\n }\r\n pcs.debug = `${pcs.Base_InsigniaWidthInches} - factor: ${factor} - old w: ${old_w} - new w: ${_w} - ww: ${pcs.Document_Width} - h: ${pcs.Document_Height}`;\r\n }\r\n pcs.css.spi_top1_width = `${_w}px`;\r\n pcs.css.spi_top2_width = `${_w}px`;\r\n pcs.css.spi_smat_top1_width = `${_w}px`;\r\n pcs.css.spi_smat_top2_width = `${_w}px`;\r\n }\r\n }\r\n };\r\n\r\n const renderTasselFrame = (pcs: ProductCustomizationState): void => {\r\n let CurrentDocWidth: number = 0;\r\n let CurrentDocHeight: number = 0;\r\n let DocSizeTier = r.getDocSizeTier(pcs);\r\n let WidthLimit: number = 14;\r\n let HeightLimit: number = 14;\r\n\r\n if (pcs.Document_Width > WidthLimit) {\r\n let ratio: number = WidthLimit / pcs.Document_Width;\r\n pcs.Document_Width = WidthLimit;\r\n pcs.Document_Height = pcs.Document_Height * ratio;\r\n }\r\n if (pcs.Document_Height > HeightLimit) {\r\n let ratio: number = HeightLimit / pcs.Document_Height;\r\n pcs.Document_Height = HeightLimit;\r\n pcs.Document_Width = pcs.Document_Width * ratio;\r\n }\r\n CurrentDocWidth = pcs.Document_Width;\r\n CurrentDocHeight = pcs.Document_Height;\r\n\r\n let filletCount: number = pcs.MatCombo_IsWoodFillet ? 1 : 0;\r\n\r\n let SMatCount: number = !pcs.MatCombo_IsWoodFillet && pcs.SecondaryMatID > 0 ? 1 : 0;\r\n let SMatWidthPixelAdder: number = 1;\r\n // rail Setup\r\n // - Rail includes: Inner Mat and all mat bevels.\r\n // - The primary mat is actually the inner mat on single document frames\r\n // - The document \"underlaps\" the inner mat. See DocSizeTier.DocOverLap\r\n // - The mats are overlapped by the moulding by 0.25\r\n // - From this point forward, rail will be defined as all visible portions of mats including bevels (we are subtracting out the 0.25 of moulding overlap)\r\n let MouldingOverlap: number = 0.25;\r\n let RailTop: number = (DocSizeTier.TasselRailHeight) - MouldingOverlap;\r\n let RailSide: number = (DocSizeTier.TasselRailWidth) - MouldingOverlap;\r\n // insignia Adjustments\r\n let InsigniaWidth =\r\n pcs.Base_InsigniaWidthInches > 0\r\n ? pcs.Base_InsigniaWidthInches\r\n : DefaultPCS.DefaultInsigniaWidthMax;\r\n InsigniaWidth =\r\n CurrentDocWidth < 10 && CurrentDocHeight < 10\r\n ? (InsigniaWidth = Math.min(DefaultPCS.DefaultInsigniaWidthMax, RailTop - 0.5))\r\n : InsigniaWidth;\r\n InsigniaWidth =\r\n DocSizeTier.DocSizeTierID >= 7 && pcs.Base_InsigniaWidthInches < 1 ? 2 : InsigniaWidth;\r\n // lino\r\n let LinoWidthMax: number =\r\n Math.min(DefaultPCS.DefaultLinoWidthMax, CurrentDocWidth + 1) +\r\n pcs.Base_LinoAdjustmentInches;\r\n LinoWidthMax = linoWidthAdjust(LinoWidthMax, pcs);\r\n let LinoHeightMax: number = DefaultPCS.DefaultLinoHeightMax * (LinoWidthMax / 11.5);\r\n // ****----____ EP-code-change ____----****\r\n let EPWidth: number = DefaultPCS.DefaultEPWidth;\r\n let EPHeight: number = DefaultPCS.DefaultEPHeight;\r\n if (CurrentDocHeight <= 7) {\r\n EPWidth = 3;\r\n EPHeight = 0.5;\r\n }\r\n // ****----____ EP-code-change ____----****\r\n let TotalWidth: number =\r\n RailSide * 2 +\r\n CurrentDocWidth +\r\n (pcs.UseMaxMouldingForSizing ? pcs.MouldingWidthMax * 2 : pcs.MouldingExtWidth * 2) +\r\n DocSizeTier.TasselGap +\r\n DocSizeTier.TasselWidth;\r\n let DPI: number = (Math.floor((pcs.MaxFrameWidthPx + 4) / TotalWidth)); // add 4. Yes, it's cheating, but we always round down and actually have a bit more room to work with.\r\n\r\n let done: boolean = false;\r\n let BevelWidthPx: number = -1;\r\n let DocWidthPx: number = -1;\r\n let DocHeightPx: number = -1;\r\n // ****----____ EP-code-change ____----****\r\n let EPWidthPx: number = -1;\r\n let EPHeightPx: number = -1;\r\n // ****----____ EP-code-change ____----****\r\n let MaxInsigniaWidthPx: number = -1;\r\n let LinoWidthMaxPx: number = -1;\r\n let LinoHeightMaxPx: number = -1;\r\n let MouldingWidthPx: number = -1;\r\n let MaxMouldingWidthPx: number = -1;\r\n pcs.Padding = MaxMouldingWidthPx - MouldingWidthPx;\r\n let RailSidePx: number = -1;\r\n let RailTopPx: number = -1;\r\n let SMatWidthPx: number = -1;\r\n if (pcs.MaxFrameWidthPx <= 250 && SMatWidthPx > 2) {\r\n SMatWidthPx = 2;\r\n } // cap SMat at 2px for images at or below 250px// cap SMat at 2px for images at or below 250px\r\n let TasselGapPx: number = -1;\r\n let TasselWidthPx: number = -1;\r\n let TasselHeightPx: number = -1;\r\n let TotalUsedWidthPx: number = -1;\r\n let TotalUsedWidthPx_NoMargin: number = -1;\r\n let PMatWidthPx: number = -1;\r\n let TotalUsedHeightPx: number = -1;\r\n let TotalUsedHeightPx_NoMargin: number = -1;\r\n let PMatHeightPx: number = -1;\r\n\r\n while (!done) {\r\n BevelWidthPx = Math.max(1, (Math.round(pcs.BevelWidth * 2 * DPI))); // double bevel width. It was too small.\r\n DocWidthPx = (\r\n (Math.round((CurrentDocWidth - (DocSizeTier.DocOverlap)) * DPI))\r\n );\r\n DocHeightPx = (\r\n (Math.round((CurrentDocHeight - (DocSizeTier.DocOverlap)) * DPI))\r\n );\r\n // ****----____ EP-code-change ____----****\r\n EPWidthPx = ((EPWidth * DPI));\r\n EPHeightPx = ((EPHeight * DPI));\r\n // ****----____ EP-code-change ____----****\r\n MaxInsigniaWidthPx = (Math.round(InsigniaWidth * DPI));\r\n LinoWidthMaxPx = (Math.round(LinoWidthMax * DPI));\r\n LinoHeightMaxPx = (Math.round(LinoHeightMax * DPI));\r\n MouldingWidthPx = (Math.round(pcs.MouldingExtWidth * DPI));\r\n MaxMouldingWidthPx = (Math.round(pcs.MouldingWidthMax * DPI));\r\n pcs.Padding = MaxMouldingWidthPx - MouldingWidthPx;\r\n RailSidePx =\r\n (Math.round(RailSide * DPI)) + SMatWidthPixelAdder * SMatCount; // we add the smat pixel adder because this adder is not accounted for in the core rail size specs\r\n RailTopPx = (Math.round(RailTop * DPI)) + SMatWidthPixelAdder * SMatCount;\r\n SMatWidthPx =\r\n Math.max(\r\n 1,\r\n (Math.floor((pcs.InnerAccentWidth - pcs.BevelWidth) * DPI)),\r\n ) + SMatWidthPixelAdder; // innerAccentWidth includes bevel. We take bevel out here as we convert to pixels.\r\n if (pcs.MaxFrameWidthPx <= 250 && SMatWidthPx > 2) {\r\n SMatWidthPx = 2;\r\n } // cap SMat at 2px for images at or below 250px// cap SMat at 2px for images at or below 250px\r\n TasselGapPx =\r\n (Math.round(DocSizeTier.TasselGap * DPI)) +\r\n SMatWidthPixelAdder * SMatCount * 2;\r\n TasselWidthPx =\r\n (Math.round(DocSizeTier.TasselWidth * DPI)) +\r\n SMatWidthPixelAdder * SMatCount; // tassel expands out to cover the missing inner accent space if no inner accent\r\n TasselHeightPx =\r\n (Math.round(DocSizeTier.TasselHeight * DPI)) +\r\n SMatWidthPixelAdder * SMatCount; // we add the smat pixel adder because this adder is not accounted for in the core rail size specs\r\n TotalUsedWidthPx =\r\n RailSidePx * 2 + DocWidthPx + MaxMouldingWidthPx * 2 + TasselGapPx + TasselWidthPx;\r\n TotalUsedWidthPx_NoMargin =\r\n RailSidePx * 2 + DocWidthPx + MouldingWidthPx * 2 + TasselGapPx + TasselWidthPx;\r\n PMatWidthPx = TotalUsedWidthPx - MaxMouldingWidthPx * 2; // refers to the outer width, not the width of an individual side\r\n TotalUsedHeightPx = RailTopPx * 2 + DocHeightPx + MaxMouldingWidthPx * 2;\r\n TotalUsedHeightPx_NoMargin = RailTopPx * 2 + DocHeightPx + MouldingWidthPx * 2;\r\n PMatHeightPx = TotalUsedHeightPx - MaxMouldingWidthPx * 2; // refers to the outer width, not\r\n\r\n if (\r\n TotalUsedWidthPx_NoMargin > pcs.MaxFrameWidthPx ||\r\n TotalUsedHeightPx_NoMargin > pcs.MaxFrameHeightPx\r\n ) {\r\n DPI -= 1;\r\n } else {\r\n done = true;\r\n }\r\n }\r\n\r\n // check width, look back with new dpi if necessary\r\n pcs.FrameDisplay_width = TotalUsedWidthPx;\r\n pcs.FrameDisplay_height = TotalUsedHeightPx;\r\n // primary mat\r\n r.renderStandardPrimaryMat(\r\n PMatWidthPx,\r\n PMatHeightPx,\r\n MaxMouldingWidthPx,\r\n MouldingWidthPx,\r\n pcs,\r\n );\r\n r.renderStandardMoulding(MouldingWidthPx, PMatWidthPx, PMatHeightPx, pcs);\r\n pcs.css.tassel_visible = true;\r\n // if there is an inner accent, then the outer mat \"pulls back\" to make room for the inner mat\r\n if (SMatCount > 0) {\r\n pcs.css.doc1_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc1_pmat_bevel_left = `${(RailSidePx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_top = `${(RailTopPx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_width = `${DocWidthPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)}px`;\r\n pcs.css.doc1_pmat_bevel_height = `${DocHeightPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)}px`;\r\n r.RenderStandardSMat(BevelWidthPx, SMatWidthPx, DocWidthPx, DocHeightPx, pcs);\r\n pcs.css.tassel_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.tassel_pmat_bevel_left = `${(RailSidePx + DocWidthPx + TasselGapPx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.tassel_pmat_bevel_top = `${((Math.floor(((PMatHeightPx) - (TasselHeightPx) - (SMatWidthPx) * 2 - (BevelWidthPx) * 4) / 2))).toString()}px`;\r\n pcs.css.tassel_pmat_bevel_width = `${(TasselWidthPx + SMatWidthPx * 2 + BevelWidthPx * 4).toString()}px`;\r\n pcs.css.tassel_pmat_bevel_height = `${(TasselHeightPx + SMatWidthPx * 2 + BevelWidthPx * 4).toString()}px`;\r\n pcs.css.tassel_smat_backgroundColor = `#${pcs.SecondaryMatColor}`;\r\n pcs.css.tassel_smat_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.tassel_smat_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.tassel_smat_width = `${(TasselWidthPx + 2 * (BevelWidthPx + SMatWidthPx)).toString()}px`;\r\n pcs.css.tassel_smat_height = `${(TasselHeightPx + 2 * (BevelWidthPx + SMatWidthPx)).toString()}px`;\r\n pcs.css.tassel_smat_bevel_backgroundColor = `white`;\r\n pcs.css.tassel_smat_bevel_left = `${SMatWidthPx.toString()}px`;\r\n pcs.css.tassel_smat_bevel_top = `${SMatWidthPx.toString()}px`;\r\n pcs.css.tassel_smat_bevel_width = `${(TasselWidthPx + 2 * BevelWidthPx).toString()}px`;\r\n pcs.css.tassel_smat_bevel_height = `${(TasselHeightPx + 2 * BevelWidthPx).toString()}px`;\r\n } else {\r\n pcs.css.doc1_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc1_pmat_bevel_left = `${(RailSidePx - BevelWidthPx).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_top = `${(RailTopPx - BevelWidthPx).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_width = `${(DocWidthPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_height = `${(DocHeightPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.tassel_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.tassel_pmat_bevel_left = `${(RailSidePx + DocWidthPx + TasselGapPx - BevelWidthPx).toString()}px`;\r\n pcs.css.tassel_pmat_bevel_top = `${((Math.floor(((PMatHeightPx) - (TasselHeightPx)) / 2))).toString()}px`;\r\n pcs.css.tassel_pmat_bevel_width = `${(TasselWidthPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.tassel_pmat_bevel_height = `${(TasselHeightPx + BevelWidthPx * 2).toString()}px`;\r\n r.renderCollapsedSMat(pcs);\r\n pcs.css.tassel_smat_backgroundColor = `none`;\r\n pcs.css.tassel_smat_left = `0px`;\r\n pcs.css.tassel_smat_top = `0px`;\r\n pcs.css.tassel_smat_width = ``;\r\n pcs.css.tassel_smat_height = ``;\r\n pcs.css.tassel_smat_bevel_backgroundColor = `none`;\r\n pcs.css.tassel_smat_bevel_left = `0px`;\r\n pcs.css.tassel_smat_bevel_top = `0px`;\r\n pcs.css.tassel_smat_bevel_width = ``;\r\n pcs.css.tassel_smat_bevel_height = ``;\r\n }\r\n pcs.css.doc1_src = r.doc_path(\r\n DocWidthPx,\r\n DocHeightPx,\r\n pcs.Base_DocumentName,\r\n pcs.Base_ExtraEntityName,\r\n pcs.DYF_FrameStyleID,\r\n pcs.o3,\r\n );\r\n pcs.css.doc1_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_width = `${DocWidthPx.toString()}px`;\r\n pcs.css.doc1_height = `${DocHeightPx.toString()}px`;\r\n pcs.css.tassel_src = r.tassel_path(TasselWidthPx, pcs.Base_ExtraEntityName);\r\n pcs.css.tassel_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.tassel_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.tassel_width = `${TasselWidthPx.toString()}px`;\r\n pcs.css.tassel_height = `${TasselHeightPx.toString()}px`;\r\n pcs.css.insignia_visible = pcs.Base_InsigniaID > 0;\r\n if (pcs.Base_InsigniaID > 0) {\r\n pcs.css.insignia_src = r.insignia_path(MaxInsigniaWidthPx, pcs.Base_InsigniaName);\r\n pcs.css.insignia_left = `${(Math.floor((RailSidePx) + (DocWidthPx) / 2 - (MaxInsigniaWidthPx) / 2))}px`;\r\n pcs.css.insignia_top = `${(Math.floor(((RailTopPx) - (BevelWidthPx) - (SMatCount) * ((SMatWidthPx) + (BevelWidthPx))) / 2 - (MaxInsigniaWidthPx) / 2))}px`;\r\n pcs.css.insignia_width = `${MaxInsigniaWidthPx.toString()}px`;\r\n pcs.css.insignia_height = `${MaxInsigniaWidthPx.toString()}px`;\r\n }\r\n pcs.css.lino_visible = pcs.Base_LinoID > 0;\r\n if (pcs.Base_LinoID > 0) {\r\n pcs.css.lino_src = r.lino_path(LinoWidthMaxPx, pcs);\r\n pcs.css.lino_left = `${(Math.floor((RailSidePx) + (DocWidthPx) / 2 - (LinoWidthMaxPx) / 2))}px`;\r\n pcs.css.lino_top = `${((RailTopPx + DocHeightPx + BevelWidthPx + SMatCount * (SMatWidthPx + BevelWidthPx) + Math.floor(((RailTopPx) - (BevelWidthPx) - (SMatCount) * ((SMatWidthPx) + (BevelWidthPx))) / 2 - (LinoHeightMaxPx) / 2)))}px`;\r\n pcs.css.lino_width = `${LinoWidthMaxPx.toString()}px`;\r\n pcs.css.lino_height = `${LinoHeightMaxPx.toString()}px`;\r\n }\r\n // ep\r\n pcs.css.ep_visible = pcs.HasEngravedPlate;\r\n if (pcs.HasEngravedPlate) {\r\n let EPTopPx: number =\r\n (\r\n ((\r\n (RailTopPx +\r\n DocHeightPx +\r\n BevelWidthPx +\r\n SMatCount * (SMatWidthPx + BevelWidthPx) +\r\n Math.floor(\r\n ((RailTopPx) -\r\n (BevelWidthPx) -\r\n (SMatCount) *\r\n ((SMatWidthPx) +\r\n (BevelWidthPx))) /\r\n 2 -\r\n (EPHeightPx) / 2,\r\n ))\r\n ))\r\n ) -\r\n BevelWidthPx * 2;\r\n let EPLeftPx: number =\r\n (\r\n ((\r\n Math.floor(\r\n (RailSidePx) +\r\n (DocWidthPx) / 2 -\r\n (EPWidthPx) / 2,\r\n )\r\n ))\r\n ) -\r\n BevelWidthPx * 2;\r\n r.renderEngravedPlate(\r\n EPLeftPx,\r\n EPTopPx,\r\n EPWidthPx,\r\n EPHeightPx,\r\n BevelWidthPx,\r\n PMatWidthPx,\r\n pcs,\r\n );\r\n }\r\n };\r\n\r\n const renderDoubleDoc = (pcs: ProductCustomizationState): void => {\r\n let DoubleDocSeparation: number = 1.35;\r\n let SMatCount: number = !pcs.MatCombo_IsWoodFillet && pcs.SecondaryMatID > 0 ? 1 : 0;\r\n let SMatWidthPixelAdder: number = 1;\r\n let CurrentDocWidth: number = 0;\r\n let CurrentDocHeight: number = 0;\r\n let CurrentDoc2Width: number = 0;\r\n let CurrentDoc2Height: number = 0;\r\n let DocSizeTier1 = r.getDocSizeTier(pcs);\r\n let WidthLimit: number = 14;\r\n let HeightLimit: number = 14;\r\n\r\n CurrentDocWidth = pcs.Document_Width;\r\n CurrentDocHeight = pcs.Document_Height;\r\n\r\n if (pcs.Document_Width > WidthLimit) {\r\n let ratio: number = WidthLimit / pcs.Document_Width;\r\n CurrentDocWidth = WidthLimit;\r\n CurrentDocHeight = pcs.Document_Height * ratio;\r\n }\r\n if (pcs.Document_Height > HeightLimit) {\r\n let ratio: number = HeightLimit / pcs.Document_Height;\r\n CurrentDocHeight = HeightLimit;\r\n CurrentDocWidth = pcs.Document_Width * ratio;\r\n }\r\n\r\n let Temp_Doc_Width2: number = 0;\r\n let Temp_Doc_Height2: number = 0;\r\n //if (pcs.DYF_FrameStyleID == (DYF_FrameStylesEnum.Campus_Scene)) {\r\n pcs.Document2_Width = pcs.Document_Width;\r\n pcs.Document2_Height = pcs.Document_Height;\r\n //}\r\n // pcs.Document2_Width = pcs.Document2_Width <= 0 ? pcs.Document_Width : pcs.Document2_Width;\r\n // pcs.Document2_Height = pcs.Document2_Height <= 0 ? pcs.Document_Height : pcs.Document2_Height;\r\n // we need to scale the second document if we ended up with adjusted doc 1 dimensions\r\n Temp_Doc_Width2 = pcs.Document2_Width <= 0 ? pcs.Document_Width : pcs.Document2_Width; // fall back to doc 1 dimensions if do 2 dimensions are undefined\r\n Temp_Doc_Height2 = pcs.Document2_Height <= 0 ? pcs.Document_Height : pcs.Document2_Height;\r\n if (CurrentDocWidth < pcs.Document_Width) {\r\n Temp_Doc_Width2 = (CurrentDocWidth / pcs.Document_Width) * Temp_Doc_Width2;\r\n Temp_Doc_Height2 = (CurrentDocHeight / pcs.Document_Height) * Temp_Doc_Height2;\r\n }\r\n let DocSizeTier2 = r.getDocSizeTier2(pcs);\r\n CurrentDoc2Width = CurrentDocWidth;\r\n CurrentDoc2Height = CurrentDocHeight;\r\n\r\n // we need to scale the first document if we ended up with adjusted doc 2 dimensions\r\n if (CurrentDoc2Width < Temp_Doc_Width2 - 0.001) {\r\n // use a buffer here.\r\n CurrentDocWidth = (CurrentDoc2Width / pcs.Document2_Width) * CurrentDocWidth;\r\n CurrentDocHeight = (CurrentDoc2Height / pcs.Document2_Height) * CurrentDocHeight;\r\n }\r\n\r\n let doCampusAlternate = false;\r\n let CampusVertical = false;\r\n let original_vertical = !pcs.isHorizontal;\r\n if (pcs.ProductTypeID === 8 || pcs.ProductTypeID === 9) {\r\n if (pcs.Base_ExtraHeight > 756) {\r\n doCampusAlternate = true;\r\n var reduction_ratio = 756 / pcs.Base_ExtraHeight;\r\n pcs.isHorizontal = false;\r\n CurrentDoc2Height = CurrentDocHeight;\r\n CurrentDoc2Width = CurrentDocHeight * reduction_ratio;\r\n\r\n var w1 = CurrentDocWidth;\r\n var h1 = CurrentDocHeight;\r\n var w2 = CurrentDoc2Width;\r\n var h2 = CurrentDoc2Height;\r\n\r\n CurrentDocWidth = w2;\r\n CurrentDocHeight = h2;\r\n CurrentDoc2Width = w1;\r\n CurrentDoc2Height = h1;\r\n } else {\r\n doCampusAlternate = false;\r\n var campus_ratio = 1;\r\n if (!pcs.isHorizontal) {\r\n pcs.isHorizontal = true;\r\n CurrentDoc2Width = CurrentDoc2Height;\r\n CurrentDoc2Height = CurrentDoc2Width;\r\n CampusVertical = true;\r\n }\r\n\r\n if (pcs.Base_ExtraHeight < 32) {\r\n //console.log('1');\r\n campus_ratio = 1;\r\n } else if (pcs.Base_ExtraHeight > 32 && pcs.Base_ExtraHeight != 580) {\r\n //console.log('2');\r\n var new1 = pcs.Base_ExtraHeight;\r\n var new2 = 580;\r\n campus_ratio = new1 / new2;\r\n } else {\r\n //console.log('3');\r\n campus_ratio = 1;\r\n }\r\n\r\n if (campus_ratio != 1 && CampusVertical) {\r\n CurrentDoc2Height = CurrentDocWidth * (pcs.Base_ExtraHeight / 756);\r\n CurrentDoc2Width = CurrentDocWidth;\r\n } else if (campus_ratio !== 1) {\r\n //console.log('4');\r\n CurrentDoc2Height = CurrentDoc2Height * campus_ratio;\r\n }\r\n }\r\n }\r\n\r\n let DocSizeTier =\r\n DocSizeTier1.DocSizeTierID >= DocSizeTier2.DocSizeTierID ? DocSizeTier1 : DocSizeTier2;\r\n\r\n // rail Setup\r\n // - Rail includes: Inner Mat and all mat bevels.\r\n // - The primary mat is actually the inner mat on single document frames\r\n // - The document \"underlaps\" the inner mat. See DocSizeTier.DocOverLap\r\n // - The mats are overlapped by the moulding by 0.25\r\n // - From this point forward, rail will be defined as all visible portions of mats including bevels (we are subtracting out the 0.25 of moulding overlap)\r\n let MouldingOverlap: number = 0.25;\r\n let RailTop: number = (DocSizeTier.StandardRail) - MouldingOverlap;\r\n let RailSide: number = (DocSizeTier.StandardRail) - MouldingOverlap;\r\n // insignia Adjustments\r\n let InsigniaWidth =\r\n pcs.Base_InsigniaWidthInches > 0\r\n ? pcs.Base_InsigniaWidthInches\r\n : DefaultPCS.DefaultInsigniaWidthMax;\r\n InsigniaWidth =\r\n CurrentDocWidth < 10 && CurrentDocHeight < 10\r\n ? (InsigniaWidth = Math.min(DefaultPCS.DefaultInsigniaWidthMax, RailTop - 0.5))\r\n : InsigniaWidth;\r\n InsigniaWidth =\r\n DocSizeTier.DocSizeTierID >= 7 && pcs.Base_InsigniaWidthInches <= 0 ? 2 : InsigniaWidth;\r\n // lino\r\n let LinoWidthMax: number =\r\n Math.min(DefaultPCS.DefaultLinoWidthMax, CurrentDocWidth + 1) +\r\n pcs.Base_LinoAdjustmentInches;\r\n if (doCampusAlternate) {\r\n LinoWidthMax =\r\n Math.min(DefaultPCS.DefaultLinoWidthMax, CurrentDoc2Width + 1) +\r\n pcs.Base_LinoAdjustmentInches;\r\n }\r\n LinoWidthMax = r.linoWidthAdjust(LinoWidthMax, pcs);\r\n let LinoHeightMax: number = DefaultPCS.DefaultLinoHeightMax * (LinoWidthMax / 11.5);\r\n\r\n // ****----____ EP-code-change ____----****\r\n let EPWidth: number = DefaultPCS.DefaultEPWidth;\r\n let EPHeight: number = DefaultPCS.DefaultEPHeight;\r\n if (CurrentDocHeight <= 7) {\r\n EPWidth = 3;\r\n EPHeight = 0.5;\r\n }\r\n // ****----____ EP-code-change ____----****\r\n let TotalWidth: number =\r\n RailSide * 2 +\r\n Math.max(CurrentDocWidth, CurrentDoc2Width) +\r\n (pcs.UseMaxMouldingForSizing ? pcs.MouldingWidthMax * 2 : pcs.MouldingExtWidth * 2);\r\n let DPI: number = (Math.floor((pcs.MaxFrameWidthPx + 4) / TotalWidth)); // add 4. Yes, it's cheating, but we always round down and actually have a bit more room to work with.\r\n let done: boolean = false;\r\n let doneCount: number = 0;\r\n let BevelWidthPx: number = -1;\r\n let DocWidthPx: number = -1;\r\n let DocHeightPx: number = -1;\r\n let Doc2WidthPx: number = -1;\r\n let Doc2HeightPx: number = -1;\r\n let DoubleDocSeparationPx: number = -1;\r\n let EPWidthPx: number = -1;\r\n let EPHeightPx: number = -1;\r\n let MaxInsigniaWidthPx: number = -1;\r\n let LinoWidthMaxPx: number = -1;\r\n let LinoHeightMaxPx: number = -1;\r\n let MouldingWidthPx: number = -1;\r\n let MaxMouldingWidthPx: number = -1;\r\n let RailSidePx: number = -1;\r\n let RailTopPx: number = -1;\r\n let SMatWidthPx: number = -1;\r\n let TotalUsedWidthPx: number = 0;\r\n let TotalUsedWidthPx_NoMargin: number = 0;\r\n let TotalUsedHeightPx: number = 0;\r\n let TotalUsedHeightPx_NoMargin: number = 0;\r\n let PMatWidthPx: number = -1;\r\n let PMatHeightPx: number = -1;\r\n while (!done) {\r\n doneCount += 1;\r\n BevelWidthPx = Math.max(1, (Math.round(pcs.BevelWidth * 2 * DPI))); // double bevel width. It was too small.\r\n DocWidthPx = (\r\n (Math.round((CurrentDocWidth - (DocSizeTier.DocOverlap)) * DPI))\r\n );\r\n DocHeightPx = (\r\n (Math.round((CurrentDocHeight - (DocSizeTier.DocOverlap)) * DPI))\r\n );\r\n Doc2WidthPx = (\r\n (Math.round((CurrentDoc2Width - (DocSizeTier.DocOverlap)) * DPI))\r\n );\r\n Doc2HeightPx = (\r\n (Math.round((CurrentDoc2Height - (DocSizeTier.DocOverlap)) * DPI))\r\n );\r\n DoubleDocSeparationPx =\r\n (Math.round(DoubleDocSeparation * DPI)) +\r\n SMatWidthPixelAdder * SMatCount * 2; // we add the smat pixel adder because this adder is not accounted for in the core doc separation specs\r\n // ****----____ EP-code-change ____----****\r\n EPWidthPx = ((EPWidth * DPI));\r\n EPHeightPx = ((EPHeight * DPI));\r\n // ****----____ EP-code-change ____----****\r\n MaxInsigniaWidthPx = (Math.round(InsigniaWidth * DPI));\r\n LinoWidthMaxPx = (Math.round(LinoWidthMax * DPI));\r\n LinoHeightMaxPx = (Math.round(LinoHeightMax * DPI));\r\n MouldingWidthPx = (Math.round(pcs.MouldingExtWidth * DPI));\r\n MaxMouldingWidthPx = (Math.round(pcs.MouldingWidthMax * DPI));\r\n pcs.Padding = MaxMouldingWidthPx - MouldingWidthPx;\r\n RailSidePx =\r\n (Math.round(RailSide * DPI)) + SMatWidthPixelAdder * SMatCount; // we add the smat pixel adder because this adder is not accounted for in the core rail size specs\r\n RailTopPx = (Math.round(RailTop * DPI)) + SMatWidthPixelAdder * SMatCount;\r\n SMatWidthPx =\r\n Math.max(\r\n 1,\r\n (Math.floor((pcs.InnerAccentWidth - pcs.BevelWidth) * DPI)),\r\n ) + SMatWidthPixelAdder; // innerAccentWidth includes bevel. We take bevel out here as we convert to pixels.\r\n if (pcs.MaxFrameWidthPx <= 250 && SMatWidthPx > 2) {\r\n SMatWidthPx = 2;\r\n } // Cap SMat at 2px for images at or below 250px// Cap SMat at 2px for images at or below 250px\r\n TotalUsedWidthPx = 0;\r\n TotalUsedWidthPx_NoMargin = 0;\r\n TotalUsedHeightPx = 0;\r\n TotalUsedHeightPx_NoMargin = 0;\r\n if (pcs.isHorizontal) {\r\n TotalUsedWidthPx =\r\n RailSidePx * 2 + Math.max(DocWidthPx, Doc2WidthPx) + MaxMouldingWidthPx * 2;\r\n TotalUsedWidthPx_NoMargin =\r\n RailSidePx * 2 + Math.max(DocWidthPx, Doc2WidthPx) + MouldingWidthPx * 2;\r\n TotalUsedHeightPx =\r\n RailTopPx * 2 +\r\n DocHeightPx +\r\n Doc2HeightPx +\r\n DoubleDocSeparationPx +\r\n MaxMouldingWidthPx * 2;\r\n TotalUsedHeightPx_NoMargin =\r\n RailTopPx * 2 +\r\n DocHeightPx +\r\n Doc2HeightPx +\r\n DoubleDocSeparationPx +\r\n MouldingWidthPx * 2;\r\n } else {\r\n TotalUsedWidthPx =\r\n RailSidePx * 2 +\r\n DocWidthPx +\r\n Doc2WidthPx +\r\n DoubleDocSeparationPx +\r\n MaxMouldingWidthPx * 2;\r\n TotalUsedWidthPx_NoMargin =\r\n RailSidePx * 2 +\r\n DocWidthPx +\r\n Doc2WidthPx +\r\n DoubleDocSeparationPx +\r\n MouldingWidthPx * 2;\r\n TotalUsedHeightPx =\r\n RailTopPx * 2 + Math.max(DocHeightPx, Doc2HeightPx) + MaxMouldingWidthPx * 2;\r\n TotalUsedHeightPx_NoMargin =\r\n RailTopPx * 2 + Math.max(DocHeightPx, Doc2HeightPx) + MouldingWidthPx * 2;\r\n }\r\n // calculate the maximum possible width of a single doc frame with this document size. This is used to establish a common DPI across all single docs when UseCommonDPI is set to true\r\n PMatWidthPx = TotalUsedWidthPx - MaxMouldingWidthPx * 2; // refers to the outer width, not the width of an individual side\r\n PMatHeightPx = TotalUsedHeightPx - MaxMouldingWidthPx * 2;\r\n // if UseCommonDPI is turned on, we want to sync single doc, cameo, and spirit. We sync them in such a way that, if turned on their side, vertical frames will still fit.\r\n if (DocHeightPx > DocWidthPx && pcs.UseCommonDPI) {\r\n if (\r\n TotalUsedHeightPx > pcs.MaxFrameWidthPx ||\r\n TotalUsedWidthPx > pcs.MaxFrameWidthPx\r\n ) {\r\n DPI -= 1;\r\n } else {\r\n done = true;\r\n }\r\n } else {\r\n if (\r\n (pcs.UseCommonDPI ? TotalUsedWidthPx : TotalUsedWidthPx_NoMargin) >\r\n pcs.MaxFrameWidthPx ||\r\n (pcs.UseCommonDPI ? TotalUsedHeightPx : TotalUsedHeightPx_NoMargin) >\r\n pcs.MaxFrameHeightPx\r\n ) {\r\n DPI -= 1;\r\n } else {\r\n done = true;\r\n }\r\n }\r\n if (doneCount > 100000) {\r\n done = true;\r\n }\r\n }\r\n // check width, look back with new dpi if necessary\r\n pcs.FrameDisplay_width = TotalUsedWidthPx;\r\n pcs.FrameDisplay_height = TotalUsedHeightPx;\r\n // primary mat\r\n r.renderStandardPrimaryMat(\r\n PMatWidthPx,\r\n PMatHeightPx,\r\n MaxMouldingWidthPx,\r\n MouldingWidthPx,\r\n pcs,\r\n );\r\n r.renderStandardMoulding(MouldingWidthPx, PMatWidthPx, PMatHeightPx, pcs);\r\n if (SMatCount > 0) {\r\n if (pcs.isHorizontal) {\r\n // if there is an inner accent, then the outer mat \"pulls back\" to make room for the inner mat\r\n pcs.css.doc1_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc1_pmat_bevel_left = `${(RailSidePx + ((PMatWidthPx - 2 * RailSidePx) / 2 - DocWidthPx / 2) - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_top = `${(RailTopPx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_width = `${DocWidthPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)}px`;\r\n pcs.css.doc1_pmat_bevel_height = `${DocHeightPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)}px`;\r\n pcs.css.doc2_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc2_pmat_bevel_left = `${(RailSidePx + ((PMatWidthPx - 2 * RailSidePx) / 2 - Doc2WidthPx / 2) - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc2_pmat_bevel_top = `${(RailTopPx + DocHeightPx + DoubleDocSeparationPx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc2_pmat_bevel_width = `${Doc2WidthPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)}px`;\r\n pcs.css.doc2_pmat_bevel_height = `${Doc2HeightPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)}px`;\r\n r.RenderStandardSMat(BevelWidthPx, SMatWidthPx, DocWidthPx, DocHeightPx, pcs);\r\n pcs.css.doc2_smat_backgroundColor = `#${pcs.SecondaryMatColor}`;\r\n pcs.css.doc2_smat_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc2_smat_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc2_smat_width = `${(Doc2WidthPx + SMatWidthPx * 2 + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc2_smat_height = `${(Doc2HeightPx + SMatWidthPx * 2 + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc2_smat_bevel_backgroundColor = `white`;\r\n pcs.css.doc2_smat_bevel_left = `${SMatWidthPx.toString()}px`;\r\n pcs.css.doc2_smat_bevel_top = `${SMatWidthPx.toString()}px`;\r\n pcs.css.doc2_smat_bevel_width = `${(Doc2WidthPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc2_smat_bevel_height = `${(Doc2HeightPx + BevelWidthPx * 2).toString()}px`;\r\n } else {\r\n pcs.css.doc1_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc1_pmat_bevel_left = `${(RailSidePx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_top = `${(\r\n RailTopPx +\r\n ((PMatHeightPx - 2 * RailTopPx) / 2 - DocHeightPx / 2) -\r\n SMatWidthPx -\r\n BevelWidthPx * 2\r\n ).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_width = `${(DocWidthPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_height = `${(DocHeightPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)).toString()}px`;\r\n pcs.css.doc2_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc2_pmat_bevel_left = `${(\r\n RailSidePx +\r\n DocWidthPx +\r\n DoubleDocSeparationPx -\r\n SMatWidthPx -\r\n BevelWidthPx * 2\r\n ).toString()}px`;\r\n pcs.css.doc2_pmat_bevel_top = `${(\r\n RailTopPx +\r\n ((PMatHeightPx - 2 * RailTopPx) / 2 - Doc2HeightPx / 2) -\r\n SMatWidthPx -\r\n BevelWidthPx * 2\r\n ).toString()}px`;\r\n pcs.css.doc2_pmat_bevel_width = `${(Doc2WidthPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)).toString()}px`;\r\n pcs.css.doc2_pmat_bevel_height = `${(Doc2HeightPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)).toString()}px`;\r\n r.RenderStandardSMat(BevelWidthPx, SMatWidthPx, DocWidthPx, DocHeightPx, pcs);\r\n pcs.css.doc2_smat_backgroundColor = `#${pcs.SecondaryMatColor}`;\r\n pcs.css.doc2_smat_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc2_smat_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc2_smat_width = `${(Doc2WidthPx + SMatWidthPx * 2 + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc2_smat_height = `${(Doc2HeightPx + SMatWidthPx * 2 + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc2_smat_bevel_backgroundColor = `white`;\r\n pcs.css.doc2_smat_bevel_left = `${SMatWidthPx.toString()}px`;\r\n pcs.css.doc2_smat_bevel_top = `${SMatWidthPx.toString()}px`;\r\n pcs.css.doc2_smat_bevel_width = `${(Doc2WidthPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc2_smat_bevel_height = `${(Doc2HeightPx + BevelWidthPx * 2).toString()}px`;\r\n }\r\n } else {\r\n if (pcs.isHorizontal) {\r\n pcs.css.doc1_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc1_pmat_bevel_left = `${\r\n RailSidePx +\r\n ((PMatWidthPx - 2 * RailSidePx) / 2 - DocWidthPx / 2) -\r\n BevelWidthPx\r\n }px`;\r\n pcs.css.doc1_pmat_bevel_top = `${RailTopPx - BevelWidthPx}px`;\r\n pcs.css.doc1_pmat_bevel_width = `${DocWidthPx + BevelWidthPx * 2}px`;\r\n pcs.css.doc1_pmat_bevel_height = `${DocHeightPx + BevelWidthPx * 2}px`;\r\n pcs.css.doc2_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc2_pmat_bevel_left = `${\r\n RailSidePx +\r\n ((PMatWidthPx - 2 * RailSidePx) / 2 - Doc2WidthPx / 2) -\r\n BevelWidthPx\r\n }px`;\r\n pcs.css.doc2_pmat_bevel_top = `${RailTopPx + DocHeightPx + DoubleDocSeparationPx - BevelWidthPx}px`;\r\n pcs.css.doc2_pmat_bevel_width = `${Doc2WidthPx + BevelWidthPx * 2}px`;\r\n pcs.css.doc2_pmat_bevel_height = `${Doc2HeightPx + BevelWidthPx * 2}px`;\r\n } else {\r\n pcs.css.doc1_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc1_pmat_bevel_left = `${RailSidePx - BevelWidthPx}px`;\r\n pcs.css.doc1_pmat_bevel_top = `${\r\n RailTopPx +\r\n ((PMatHeightPx - 2 * RailTopPx) / 2 - DocHeightPx / 2) -\r\n BevelWidthPx\r\n }px`;\r\n pcs.css.doc1_pmat_bevel_width = `${DocWidthPx + BevelWidthPx * 2}px`;\r\n pcs.css.doc1_pmat_bevel_height = `${DocHeightPx + BevelWidthPx * 2}px`;\r\n pcs.css.doc2_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc2_pmat_bevel_left = `${RailSidePx + DocWidthPx + DoubleDocSeparationPx - BevelWidthPx}px`;\r\n pcs.css.doc2_pmat_bevel_top = `${\r\n RailTopPx +\r\n ((PMatHeightPx - 2 * RailTopPx) / 2 - Doc2HeightPx / 2) -\r\n BevelWidthPx\r\n }px`;\r\n pcs.css.doc2_pmat_bevel_width = `${Doc2WidthPx + BevelWidthPx * 2}px`;\r\n pcs.css.doc2_pmat_bevel_height = `${Doc2HeightPx + BevelWidthPx * 2}px`;\r\n }\r\n r.renderCollapsedSMat(pcs);\r\n pcs.css.doc2_smat_backgroundColor = `none`;\r\n pcs.css.doc2_smat_left = `0px`;\r\n pcs.css.doc2_smat_top = `0px`;\r\n pcs.css.doc2_smat_width = ``;\r\n pcs.css.doc2_smat_height = ``;\r\n pcs.css.doc2_smat_bevel_backgroundColor = `none`;\r\n pcs.css.doc2_smat_bevel_left = `0px`;\r\n pcs.css.doc2_smat_bevel_top = `0px`;\r\n pcs.css.doc2_smat_bevel_width = ``;\r\n pcs.css.doc2_smat_bevel_height = ``;\r\n }\r\n\r\n if (!doCampusAlternate) {\r\n pcs.css.doc1_src = r.doc_path(\r\n DocWidthPx,\r\n DocHeightPx,\r\n pcs.Base_DocumentName,\r\n pcs.Base_ExtraEntityName,\r\n pcs.DYF_FrameStyleID,\r\n pcs.o3,\r\n );\r\n pcs.css.doc1_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_width = `${DocWidthPx.toString()}px`;\r\n pcs.css.doc1_height = `${DocHeightPx.toString()}px`;\r\n pcs.css.doc2_visible = true;\r\n pcs.css.doc2_src =\r\n pcs.DYF_FrameStyleID == (DYF_FrameStylesEnum.Campus_Scene)\r\n ? r.campus_path(pcs.Base_ExtraEntityName)\r\n : r.doc_path(\r\n Doc2WidthPx,\r\n Doc2HeightPx,\r\n pcs.Base_DocumentName,\r\n pcs.Base_ExtraEntityName,\r\n pcs.DYF_FrameStyleID,\r\n pcs.o4,\r\n );\r\n pcs.css.doc2_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc2_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc2_width = `${Doc2WidthPx.toString()}px`;\r\n pcs.css.doc2_height = `${Doc2HeightPx.toString()}px`;\r\n } else {\r\n pcs.css.doc1_src =\r\n pcs.DYF_FrameStyleID == (DYF_FrameStylesEnum.Campus_Scene)\r\n ? r.campus_path(pcs.Base_ExtraEntityName)\r\n : r.doc_path(\r\n Doc2WidthPx,\r\n Doc2HeightPx,\r\n pcs.Base_DocumentName,\r\n pcs.Base_ExtraEntityName,\r\n pcs.DYF_FrameStyleID,\r\n pcs.o3,\r\n );\r\n pcs.css.doc1_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_width = `${DocWidthPx.toString()}px`;\r\n pcs.css.doc1_height = `${DocHeightPx.toString()}px`;\r\n pcs.css.doc2_visible = true;\r\n pcs.css.doc2_src = r.doc_path(\r\n original_vertical ? 500 : 2000,\r\n original_vertical ? 2000 : 500,\r\n pcs.Base_DocumentName,\r\n pcs.Base_ExtraEntityName,\r\n pcs.DYF_FrameStyleID,\r\n pcs.o4,\r\n );\r\n pcs.css.doc2_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc2_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc2_width = `${Doc2WidthPx.toString()}px`;\r\n pcs.css.doc2_height = `${Doc2HeightPx.toString()}px`;\r\n }\r\n\r\n // insignia\r\n r.renderStandardInsignia(\r\n 0,\r\n 0,\r\n PMatWidthPx,\r\n MaxInsigniaWidthPx,\r\n RailTopPx,\r\n BevelWidthPx,\r\n SMatCount,\r\n SMatWidthPx,\r\n pcs,\r\n );\r\n if (doCampusAlternate) {\r\n pcs.css.insignia_left = `${RailSidePx + DocWidthPx + DoubleDocSeparationPx - BevelWidthPx + (Doc2WidthPx + BevelWidthPx * 2 - MaxInsigniaWidthPx) / 2}px`;\r\n }\r\n\r\n // lino\r\n pcs.css.lino_visible = pcs.Base_LinoID > 0;\r\n if (pcs.Base_LinoID > 0) {\r\n pcs.css.lino_src = r.lino_path(LinoWidthMaxPx, pcs);\r\n pcs.css.lino_left = `${(Math.floor(((PMatWidthPx / 2)) - ((LinoWidthMaxPx / 2))))}px`;\r\n if (doCampusAlternate) {\r\n pcs.css.lino_left = `${RailSidePx + DocWidthPx + DoubleDocSeparationPx - BevelWidthPx + (Doc2WidthPx + BevelWidthPx * 2 - LinoWidthMaxPx) / 2}px`;\r\n }\r\n\r\n pcs.css.lino_width = `${LinoWidthMaxPx.toString()}px`;\r\n pcs.css.lino_height = `${LinoHeightMaxPx.toString()}px`;\r\n if (pcs.isHorizontal) {\r\n pcs.css.lino_top = `${((RailTopPx + DocHeightPx + DoubleDocSeparationPx + Doc2HeightPx + (BevelWidthPx) + SMatCount * ((SMatWidthPx) + (BevelWidthPx)) + Math.floor(((RailTopPx) - (BevelWidthPx) - (SMatCount) * (SMatWidthPx + (BevelWidthPx))) / 2 - (LinoHeightMaxPx) / 2)))}px`;\r\n } else {\r\n pcs.css.lino_top = `${((RailTopPx + Math.max(DocHeightPx, Doc2HeightPx) + BevelWidthPx + SMatCount * (SMatWidthPx + BevelWidthPx) + Math.floor(((RailTopPx) - (BevelWidthPx) - (SMatCount) * ((SMatWidthPx + BevelWidthPx))) / 2 - (LinoHeightMaxPx) / 2)))}px`;\r\n }\r\n }\r\n\r\n // ep\r\n pcs.css.ep_visible = pcs.HasEngravedPlate;\r\n if (pcs.HasEngravedPlate) {\r\n let epDocWidth: number = (\r\n ((\r\n Math.round(\r\n (Math.max(pcs.Document_Width, pcs.Document2_Width) -\r\n (DocSizeTier.DocOverlap)) *\r\n DPI,\r\n )\r\n ))\r\n );\r\n let EPTopPx: number = -1;\r\n let EPLeftPx: number = (\r\n (Math.floor(((PMatWidthPx / 2)) - (EPWidthPx) / 2))\r\n );\r\n if (pcs.isHorizontal) {\r\n EPTopPx = (\r\n ((\r\n (RailTopPx +\r\n DocHeightPx +\r\n (DoubleDocSeparationPx) +\r\n Doc2HeightPx +\r\n BevelWidthPx +\r\n SMatCount * ((SMatWidthPx) + (BevelWidthPx)) +\r\n (RailTopPx -\r\n (BevelWidthPx) -\r\n SMatCount * ((SMatWidthPx) + BevelWidthPx) -\r\n EPHeightPx -\r\n (BevelWidthPx) * 4) /\r\n 2)\r\n ))\r\n );\r\n } else {\r\n EPTopPx = (\r\n ((\r\n (RailTopPx +\r\n Math.max(DocHeightPx, Doc2HeightPx) +\r\n BevelWidthPx +\r\n SMatCount * ((SMatWidthPx) + BevelWidthPx) +\r\n (RailTopPx -\r\n (BevelWidthPx) -\r\n SMatCount * (SMatWidthPx + (BevelWidthPx)) -\r\n EPHeightPx -\r\n BevelWidthPx * 4) /\r\n 2)\r\n ))\r\n );\r\n }\r\n r.renderEngravedPlate(\r\n EPLeftPx,\r\n EPTopPx,\r\n EPWidthPx,\r\n EPHeightPx,\r\n BevelWidthPx,\r\n PMatWidthPx,\r\n pcs,\r\n );\r\n }\r\n if (pcs.DYF_FrameStyleID == (DYF_FrameStylesEnum.Campus_Scene)) {\r\n if (SMatCount > 0) {\r\n if (pcs.isHorizontal) {\r\n pcs.css.doc1_pmat_bevel_top = `${(RailTopPx + Doc2HeightPx + DoubleDocSeparationPx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc2_pmat_bevel_top = `${(RailTopPx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n } else {\r\n pcs.css.doc1_pmat_bevel_top = `${(\r\n RailTopPx +\r\n ((PMatHeightPx - 2 * RailTopPx) / 2 - DocHeightPx / 2) -\r\n SMatWidthPx -\r\n BevelWidthPx * 2\r\n ).toString()}px`;\r\n pcs.css.doc2_pmat_bevel_top = `${(\r\n RailTopPx +\r\n ((PMatHeightPx - 2 * RailTopPx) / 2 - Doc2HeightPx / 2) -\r\n SMatWidthPx -\r\n BevelWidthPx * 2\r\n ).toString()}px`;\r\n }\r\n } else {\r\n if (pcs.isHorizontal) {\r\n pcs.css.doc1_pmat_bevel_top = `${RailTopPx + Doc2HeightPx + DoubleDocSeparationPx - BevelWidthPx}px`;\r\n pcs.css.doc2_pmat_bevel_top = `${RailTopPx - BevelWidthPx}px`;\r\n } else {\r\n pcs.css.doc1_pmat_bevel_top = `${\r\n RailTopPx +\r\n ((PMatHeightPx - 2 * RailTopPx) / 2 - DocHeightPx / 2) -\r\n BevelWidthPx\r\n }px`;\r\n pcs.css.doc2_pmat_bevel_top = `${\r\n RailTopPx +\r\n ((PMatHeightPx - 2 * RailTopPx) / 2 - Doc2HeightPx / 2) -\r\n BevelWidthPx\r\n }px`;\r\n }\r\n }\r\n }\r\n };\r\n\r\n const renderCentury = (pcs: ProductCustomizationState): void => {\r\n let CurrentDocWidth: number = 0;\r\n let CurrentDocHeight: number = 0;\r\n let DocSizeTier = r.getDocSizeTier(pcs);\r\n let WidthLimit: number = 14;\r\n let HeightLimit: number = 14;\r\n\r\n if (pcs.Document_Width > WidthLimit) {\r\n let ratio: number = WidthLimit / pcs.Document_Width;\r\n pcs.Document_Width = WidthLimit;\r\n pcs.Document_Height = pcs.Document_Height * ratio;\r\n }\r\n if (pcs.Document_Height > HeightLimit) {\r\n let ratio: number = HeightLimit / pcs.Document_Height;\r\n pcs.Document_Height = HeightLimit;\r\n pcs.Document_Width = pcs.Document_Width * ratio;\r\n }\r\n CurrentDocWidth = pcs.Document_Width;\r\n CurrentDocHeight = pcs.Document_Height;\r\n\r\n let SMatCount: number = !pcs.MatCombo_IsWoodFillet && pcs.SecondaryMatID > 0 ? 1 : 0;\r\n let SMatWidthPixelAdder: number = 1;\r\n let MouldingInsigniaAreaWidth: number = (pcs.MouldingExtWidth) - 0.2;\r\n let MouldingInsigniaVerticalOffset: number = -0.115;\r\n // Rail Setup\r\n // - Rail includes: Inner Mat and all mat bevels.\r\n // - The primary mat is actually the inner mat on single document frames\r\n // - The document \"underlaps\" the inner mat. See DocSizeTier.DocOverLap\r\n // - The mats are overlapped by the moulding by 0.25\r\n // - From this point forward, rail will be defined as all visible portions of mats including bevels (we are subtracting out the 0.25 of moulding overlap)\r\n let MouldingOverlap: number = 0.25;\r\n let RailTop: number = Util.isNullOrWhiteSpace(pcs.PrimaryMatName) ? 0 : 0.875; // We assume that millenniums have a primary mat, and century frames do not.\r\n if (\r\n !Util.isNullOrWhiteSpace(pcs.PrimaryMatName) &&\r\n pcs.Document_Width >= 12 &&\r\n pcs.Document_Height >= 12\r\n ) {\r\n RailTop = 1.5;\r\n } // millenium mat sizing info: https://trello.com/c/Z0Vb4nEz/326-framestyles-century-millennium// millenium mat sizing info: https://trello.com/c/Z0Vb4nEz/326-framestyles-century-millennium\r\n if (\r\n !Util.isNullOrWhiteSpace(pcs.PrimaryMatName) &&\r\n pcs.Document_Width >= 16 &&\r\n pcs.Document_Height >= 16\r\n ) {\r\n RailTop = 1.875;\r\n }\r\n let RailSide: number = RailTop;\r\n // Insignia Adjustments\r\n let InsigniaWidth: number =\r\n pcs.Base_InsigniaWidthInches > 0\r\n ? (pcs.Base_InsigniaWidthInches)\r\n : (DefaultPCS.DefaultInsigniaWidthMax);\r\n // ****----____ EP-code-change ____----****\r\n let EPWidth: number = DefaultPCS.DefaultEPWidth;\r\n let EPHeight: number = DefaultPCS.DefaultEPHeight;\r\n if (CurrentDocHeight <= 7) {\r\n EPWidth = 3;\r\n EPHeight = 0.5;\r\n }\r\n // ****----____ EP-code-change ____----****\r\n let TotalWidth: number =\r\n ((RailSide * 2 + (CurrentDocWidth))) +\r\n (pcs.UseMaxMouldingForSizing ? pcs.MouldingWidthMax * 2 : pcs.MouldingExtWidth * 2);\r\n let DPI: number = (Math.floor((pcs.MaxFrameWidthPx + 4) / TotalWidth)); // add 4. Yes, it's cheating, but we always round down and actually have a bit more room to work with.\r\n let done: boolean = false;\r\n let doneCount: number = 0;\r\n let BevelWidthPx: number = -1;\r\n let DocWidthPx: number = -1;\r\n let DocHeightPx: number = -1;\r\n let EPWidthPx: number = -1;\r\n let EPHeightPx: number = -1;\r\n let MouldingInsigniaAreaWidthPx: number = -1;\r\n let MouldingInsigniaVerticalOffsetPx: number = -1;\r\n let MaxInsigniaWidthPx: number = -1;\r\n let MouldingWidthPx: number = -1;\r\n let MaxMouldingWidthPx: number = -1;\r\n let RailSidePx: number = -1;\r\n let RailTopPx: number = -1;\r\n let SMatWidthPx: number = -1;\r\n let TotalUsedWidthPx: number = -1;\r\n let TotalUsedWidthPx_NoMargin: number = -1;\r\n let MaxSingleDocRailWidthPx: number = -1;\r\n let MaxPossibleSingleDocWidthPx: number = -1;\r\n let MaxPossibleSingleDocHeightPx: number = -1;\r\n let PMatWidthPx: number = -1;\r\n let TotalUsedHeightPx: number = -1;\r\n let TotalUsedHeightPx_NoMargin: number = -1;\r\n let PMatHeightPx: number = -1;\r\n let WoodFilletWidthPx: number = -1;\r\n while (!done) {\r\n doneCount += 1;\r\n BevelWidthPx = Math.max(1, (Math.round(pcs.BevelWidth * 2 * DPI))); // double bevel width. It was too small.\r\n DocWidthPx = (\r\n (Math.round((CurrentDocWidth - (DocSizeTier.DocOverlap)) * DPI))\r\n );\r\n DocHeightPx = (\r\n (Math.round((CurrentDocHeight - (DocSizeTier.DocOverlap)) * DPI))\r\n );\r\n // ****----____ EP-code-change ____----****\r\n EPWidthPx = ((EPWidth * DPI));\r\n EPHeightPx = ((EPHeight * DPI));\r\n // ****----____ EP-code-change ____----****\r\n MouldingInsigniaAreaWidthPx = (\r\n (Math.round(MouldingInsigniaAreaWidth * DPI))\r\n );\r\n MouldingInsigniaVerticalOffsetPx = (\r\n (Math.round(MouldingInsigniaVerticalOffset * DPI))\r\n );\r\n MaxInsigniaWidthPx = (Math.round(InsigniaWidth * DPI));\r\n MaxInsigniaWidthPx = Math.min(MouldingInsigniaAreaWidthPx, MaxInsigniaWidthPx);\r\n MouldingWidthPx = (Math.round(pcs.MouldingExtWidth * DPI));\r\n MaxMouldingWidthPx = (Math.round(pcs.MouldingWidthMax * DPI));\r\n pcs.Padding = MaxMouldingWidthPx - MouldingWidthPx;\r\n RailSidePx =\r\n (Math.round(RailSide * DPI)) + SMatWidthPixelAdder * SMatCount; // we add the smat pixel adder because this adder is not accounted for in the core rail size specs\r\n RailTopPx = (Math.round(RailTop * DPI)) + SMatWidthPixelAdder * SMatCount;\r\n SMatWidthPx =\r\n Math.max(\r\n 1,\r\n (Math.floor((pcs.InnerAccentWidth - pcs.BevelWidth) * DPI)),\r\n ) + SMatWidthPixelAdder; // innerAccentWidth includes bevel. We take bevel out here as we convert to pixels.\r\n if (pcs.MaxFrameWidthPx <= 250 && SMatWidthPx > 2) {\r\n SMatWidthPx = 2;\r\n } // Cap SMat at 2px for images at or below 250px// Cap SMat at 2px for images at or below 250px\r\n TotalUsedWidthPx = RailSidePx * 2 + DocWidthPx + MaxMouldingWidthPx * 2;\r\n TotalUsedWidthPx_NoMargin = RailSidePx * 2 + DocWidthPx + MouldingWidthPx * 2;\r\n // calculate the maximum possible width of a single doc frame with this document size. This is used to establish a common DPI across all single docs when UseCommonDPI is set to true\r\n MaxSingleDocRailWidthPx = Math.max(\r\n (\r\n ((\r\n Math.round(((DocSizeTier.CameoRail) - MouldingOverlap) * DPI)\r\n ))\r\n ) + SMatWidthPixelAdder,\r\n (\r\n ((\r\n Math.round(\r\n ((DocSizeTier.StandardRail) - MouldingOverlap) * DPI,\r\n )\r\n ))\r\n ) +\r\n SMatWidthPixelAdder +\r\n (BevelWidthPx * 2 + SMatWidthPx),\r\n ); // we use the larger cameo rail for this calculation. Also, compare against standard rail + fillet. Take the largest\r\n MaxPossibleSingleDocWidthPx =\r\n MaxSingleDocRailWidthPx * 2 + DocWidthPx + MaxMouldingWidthPx * 2;\r\n MaxPossibleSingleDocHeightPx =\r\n MaxSingleDocRailWidthPx * 2 + DocHeightPx + MaxMouldingWidthPx * 2;\r\n PMatWidthPx = TotalUsedWidthPx - MaxMouldingWidthPx * 2; // refers to the outer width, not the width of an individual side\r\n TotalUsedHeightPx = RailTopPx * 2 + DocHeightPx + MaxMouldingWidthPx * 2;\r\n TotalUsedHeightPx_NoMargin = RailTopPx * 2 + DocHeightPx + MouldingWidthPx * 2;\r\n PMatHeightPx = TotalUsedHeightPx - MaxMouldingWidthPx * 2; // refers to the outer width, not the width of an individual side\r\n WoodFilletWidthPx = BevelWidthPx * 2 + SMatWidthPx;\r\n // if UseCommonDPI is turned on, we want to sync single doc, cameo, and spirit. We sync them in such a way that, if turned on their side, vertical frames will still fit.\r\n if (DocHeightPx > DocWidthPx && pcs.UseCommonDPI) {\r\n if (MaxPossibleSingleDocHeightPx > pcs.MaxFrameWidthPx) {\r\n DPI -= 1;\r\n } else {\r\n done = true;\r\n }\r\n } else {\r\n if (\r\n (pcs.UseCommonDPI ? MaxPossibleSingleDocWidthPx : TotalUsedWidthPx_NoMargin) >\r\n pcs.MaxFrameWidthPx ||\r\n (pcs.UseCommonDPI ? TotalUsedHeightPx : TotalUsedHeightPx_NoMargin) >\r\n pcs.MaxFrameHeightPx\r\n ) {\r\n DPI -= 1;\r\n } else {\r\n done = true;\r\n }\r\n }\r\n if (doneCount > 100000) {\r\n done = true;\r\n }\r\n }\r\n // check width, look back with new dpi if necessary\r\n pcs.FrameDisplay_width = TotalUsedWidthPx;\r\n pcs.FrameDisplay_height = TotalUsedHeightPx;\r\n // primary mat\r\n r.renderStandardPrimaryMat(\r\n PMatWidthPx,\r\n PMatHeightPx,\r\n MaxMouldingWidthPx,\r\n MouldingWidthPx,\r\n pcs,\r\n );\r\n r.renderStandardMoulding(MouldingWidthPx, PMatWidthPx, PMatHeightPx, pcs);\r\n // secondary mat\r\n if (!Util.isNullOrWhiteSpace(pcs.PrimaryMatName)) {\r\n pcs.css.doc1_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc1_pmat_bevel_left = `${(RailSidePx - BevelWidthPx).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_top = `${(RailTopPx - BevelWidthPx).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_width = `${(DocWidthPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_height = `${(DocHeightPx + BevelWidthPx * 2).toString()}px`;\r\n r.renderCollapsedSMat(pcs);\r\n pcs.css.doc1_src = r.doc_path(\r\n DocWidthPx,\r\n DocHeightPx,\r\n pcs.Base_DocumentName,\r\n pcs.Base_ExtraEntityName,\r\n pcs.DYF_FrameStyleID,\r\n pcs.o3,\r\n );\r\n pcs.css.doc1_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_width = `${DocWidthPx.toString()}px`;\r\n pcs.css.doc1_height = `${DocHeightPx.toString()}px`;\r\n } else {\r\n pcs.css.doc1_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc1_pmat_bevel_left = `${(RailSidePx - BevelWidthPx).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_top = `${(RailTopPx - BevelWidthPx).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_width = `${(DocWidthPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_height = `${(DocHeightPx + BevelWidthPx * 2).toString()}px`;\r\n r.renderCollapsedPMatBevel(pcs);\r\n r.renderCollapsedSMat(pcs);\r\n // todo: fix for millennium\r\n pcs.css.doc1_src = r.doc_path(\r\n DocWidthPx,\r\n DocHeightPx,\r\n pcs.Base_DocumentName,\r\n pcs.Base_ExtraEntityName,\r\n pcs.DYF_FrameStyleID,\r\n pcs.o3,\r\n );\r\n pcs.css.doc1_left = `0px`;\r\n pcs.css.doc1_top = `0px`;\r\n pcs.css.doc1_width = `${DocWidthPx.toString()}px`;\r\n pcs.css.doc1_height = `${DocHeightPx.toString()}px`;\r\n }\r\n // insignia\r\n pcs.css.insignia_visible = pcs.Base_InsigniaID > 0;\r\n if (pcs.Base_InsigniaID > 0) {\r\n pcs.css.insignia_src = r.insignia_path_noBevel(\r\n MaxInsigniaWidthPx,\r\n pcs.Base_InsigniaName,\r\n );\r\n pcs.css.insignia_left = `${((\r\n ((\r\n Math.floor(\r\n ((PMatWidthPx / 2)) - ((MaxInsigniaWidthPx / 2)),\r\n )\r\n ))\r\n )).toString()}px`;\r\n pcs.css.insignia_top = `${(\r\n -1 *\r\n (\r\n ((\r\n Math.floor(\r\n ((MouldingWidthPx - BevelWidthPx)) / 2 -\r\n MaxInsigniaWidthPx / 2,\r\n )\r\n ))\r\n ) -\r\n MaxInsigniaWidthPx +\r\n MouldingInsigniaVerticalOffsetPx\r\n ).toString()}px`;\r\n pcs.css.insignia_width = `${MaxInsigniaWidthPx.toString()}px`;\r\n pcs.css.insignia_height = `${MaxInsigniaWidthPx.toString()}px`;\r\n }\r\n };\r\n\r\n const renderVarsity = (pcs: ProductCustomizationState): void => {\r\n let CurrentDocWidth: number = 0;\r\n let CurrentDocHeight: number = 0;\r\n let DocSizeTier = r.getDocSizeTier(pcs);\r\n let WidthLimit: number = 14;\r\n let HeightLimit: number = 14;\r\n\r\n if (pcs.Document_Width > WidthLimit) {\r\n let ratio: number = WidthLimit / pcs.Document_Width;\r\n pcs.Document_Width = WidthLimit;\r\n pcs.Document_Height = pcs.Document_Height * ratio;\r\n }\r\n if (pcs.Document_Height > HeightLimit) {\r\n let ratio: number = HeightLimit / pcs.Document_Height;\r\n pcs.Document_Height = HeightLimit;\r\n pcs.Document_Width = pcs.Document_Width * ratio;\r\n }\r\n CurrentDocWidth = pcs.Document_Width;\r\n CurrentDocHeight = pcs.Document_Height;\r\n\r\n let SMatCount: number = !pcs.MatCombo_IsWoodFillet && pcs.SecondaryMatID > 0 ? 1 : 0;\r\n let SMatWidthPixelAdder: number = 1;\r\n // rail Setup\r\n // - Rail includes: Inner Mat and all mat bevels.\r\n // - The primary mat is actually the inner mat on single document frames\r\n // - The document \"underlaps\" the inner mat. See DocSizeTier.DocOverLap\r\n // - The mats are overlapped by the moulding by 0.25\r\n // - From this point forward, rail will be defined as all visible portions of mats including bevels (we are subtracting out the 0.25 of moulding overlap)\r\n let MouldingOverlap: number = 0.25;\r\n let RailTop: number = (DocSizeTier.StandardRail) - MouldingOverlap;\r\n let RailSide: number = (DocSizeTier.StandardRail) - MouldingOverlap;\r\n // insignia Adjustments\r\n let InsigniaWidth =\r\n pcs.Base_InsigniaWidthInches > 0\r\n ? pcs.Base_InsigniaWidthInches\r\n : DefaultPCS.DefaultInsigniaWidthMax;\r\n InsigniaWidth =\r\n DocSizeTier.DocSizeTierID >= 7 && pcs.Base_InsigniaWidthInches < 1 ? 2 : InsigniaWidth;\r\n // lino\r\n let LinoWidthMax: number =\r\n Math.min(DefaultPCS.DefaultLinoWidthMax, CurrentDocWidth + 1) +\r\n pcs.Base_LinoAdjustmentInches;\r\n LinoWidthMax = r.linoWidthAdjust(LinoWidthMax, pcs);\r\n let LinoHeightMax: number = DefaultPCS.DefaultLinoHeightMax * (LinoWidthMax / 11.5);\r\n // ****----____ EP-code-change ____----****\r\n let EPWidth: number = DefaultPCS.DefaultEPWidth;\r\n let EPHeight: number = DefaultPCS.DefaultEPHeight;\r\n if (CurrentDocHeight <= 7) {\r\n EPWidth = 3;\r\n EPHeight = 0.5;\r\n }\r\n // ****----____ EP-code-change ____----****\r\n let TotalWidth: number =\r\n RailSide * 2 +\r\n CurrentDocWidth +\r\n (pcs.UseMaxMouldingForSizing ? pcs.MouldingWidthMax * 2 : pcs.MouldingExtWidth * 2);\r\n let DPI: number = (Math.floor(pcs.MaxFrameWidthPx / TotalWidth));\r\n let done: boolean = false;\r\n let doneCount: number = 0;\r\n let BevelWidthPx: number = -1;\r\n let DocWidthPx: number = -1;\r\n let DocHeightPx: number = -1;\r\n let EPWidthPx: number = -1;\r\n let EPHeightPx: number = -1;\r\n let MaxInsigniaWidthPx: number = -1;\r\n let LinoWidthMaxPx: number = -1;\r\n let LinoHeightMaxPx: number = -1;\r\n let MouldingWidthPx: number = -1;\r\n let MaxMouldingWidthPx: number = -1;\r\n let SMatWidthPx: number = -1;\r\n let RailSidePx: number = -1;\r\n let RailTopPx: number = -1;\r\n let TotalUsedWidthPx: number = -1;\r\n let TotalUsedWidthPx_NoMargin: number = -1;\r\n let PMatWidthPx: number = -1;\r\n let TotalUsedHeightPx: number = -1;\r\n let TotalUsedHeightPx_NoMargin: number = -1;\r\n let PMatHeightPx: number = -1;\r\n let MaxSingleDocRailWidthPx: number = -1;\r\n let MaxPossibleSingleDocWidthPx: number = -1;\r\n let MaxPossibleSingleDocHeightPx: number = -1;\r\n while (!done) {\r\n BevelWidthPx = Math.max(1, (Math.floor(pcs.BevelWidth * 2 * DPI))); // double bevel width. It was too small.\r\n DocWidthPx = (\r\n (Math.round((CurrentDocWidth - (DocSizeTier.DocOverlap)) * DPI))\r\n );\r\n DocHeightPx = (\r\n (Math.round((CurrentDocHeight - (DocSizeTier.DocOverlap)) * DPI))\r\n );\r\n // ****----____ EP-code-change ____----****\r\n EPWidthPx = ((EPWidth * DPI));\r\n EPHeightPx = ((EPHeight * DPI));\r\n // ****----____ EP-code-change ____----****\r\n MaxInsigniaWidthPx = (Math.round(InsigniaWidth * DPI));\r\n LinoWidthMaxPx = (Math.round(LinoWidthMax * DPI));\r\n LinoHeightMaxPx = (Math.round(LinoHeightMax * DPI));\r\n MouldingWidthPx = (Math.round(pcs.MouldingExtWidth * DPI));\r\n MaxMouldingWidthPx = (Math.round(pcs.MouldingWidthMax * DPI));\r\n pcs.Padding = MaxMouldingWidthPx - MouldingWidthPx;\r\n SMatWidthPx =\r\n Math.max(\r\n 1,\r\n (Math.floor((pcs.InnerAccentWidth - pcs.BevelWidth) * DPI)),\r\n ) + SMatWidthPixelAdder; // innerAccentWidth includes bevel. We take bevel out here as we convert to pixels. Adding +1 pixel here. We might have to loop back and adjust DPI down\r\n RailSidePx =\r\n (Math.round(RailSide * DPI)) + SMatWidthPixelAdder * SMatCount; // we add the smat pixel adder because this adder is not accounted for in the core rail size specs. Also, if it is a wood fillet, we must add the wood fillet to the rail size since the fillet is additive\r\n RailTopPx = (Math.round(RailTop * DPI)) + SMatWidthPixelAdder * SMatCount;\r\n if (pcs.MaxFrameWidthPx <= 250 && SMatWidthPx > 2) {\r\n SMatWidthPx = 2;\r\n } // Cap SMat at 2px for images at or below 250px// Cap SMat at 2px for images at or below 250px\r\n TotalUsedWidthPx = RailSidePx * 2 + DocWidthPx + MaxMouldingWidthPx * 2;\r\n TotalUsedWidthPx_NoMargin = RailSidePx * 2 + DocWidthPx + MouldingWidthPx * 2;\r\n PMatWidthPx = TotalUsedWidthPx - MaxMouldingWidthPx * 2; // refers to the outer width, not the width of an individual side\r\n TotalUsedHeightPx = RailTopPx * 2 + DocHeightPx + MaxMouldingWidthPx * 2;\r\n TotalUsedHeightPx_NoMargin = RailTopPx * 2 + DocHeightPx + MouldingWidthPx * 2;\r\n PMatHeightPx = TotalUsedHeightPx - MaxMouldingWidthPx * 2; // refers to the outer width, not the width of an individual side\r\n // if UseCommonDPI is turned on, we want to sync single doc, cameo, and spirit. We sync them in such a way that, if turned on their side, vertical frames will still fit.\r\n // calculate the maximum possible width of a single doc frame with this document size. This is used to establish a common DPI across all single docs when UseCommonDPI is set to true\r\n MaxSingleDocRailWidthPx = Math.max(\r\n (\r\n ((\r\n Math.round(((DocSizeTier.CameoRail) - MouldingOverlap) * DPI)\r\n ))\r\n ) + SMatWidthPixelAdder,\r\n (\r\n ((\r\n Math.round(\r\n ((DocSizeTier.StandardRail) - MouldingOverlap) * DPI,\r\n )\r\n ))\r\n ) +\r\n SMatWidthPixelAdder +\r\n (BevelWidthPx * 2 + SMatWidthPx),\r\n ); // we use the larger cameo rail for this calculation. Also, compare against standard rail + fillet. Take the largest\r\n MaxPossibleSingleDocWidthPx =\r\n MaxSingleDocRailWidthPx * 2 + DocWidthPx + MaxMouldingWidthPx * 2;\r\n MaxPossibleSingleDocHeightPx =\r\n MaxSingleDocRailWidthPx * 2 + DocHeightPx + MaxMouldingWidthPx * 2;\r\n if (DocHeightPx > DocWidthPx && pcs.UseCommonDPI) {\r\n if (MaxPossibleSingleDocHeightPx > pcs.MaxFrameWidthPx) {\r\n DPI -= 1;\r\n } else {\r\n done = true;\r\n }\r\n } else {\r\n if (\r\n (pcs.UseCommonDPI ? MaxPossibleSingleDocWidthPx : TotalUsedWidthPx_NoMargin) >\r\n pcs.MaxFrameWidthPx ||\r\n (pcs.UseCommonDPI ? TotalUsedHeightPx : TotalUsedHeightPx_NoMargin) >\r\n pcs.MaxFrameHeightPx\r\n ) {\r\n DPI -= 1;\r\n } else {\r\n done = true;\r\n }\r\n }\r\n doneCount += 1;\r\n if (doneCount > 100000) {\r\n done = true;\r\n }\r\n }\r\n // check width, look back with new dpi if necessary\r\n pcs.FrameDisplay_width = TotalUsedWidthPx;\r\n pcs.FrameDisplay_height = TotalUsedHeightPx;\r\n // primary mat\r\n r.renderStandardPrimaryMat(\r\n PMatWidthPx,\r\n PMatHeightPx,\r\n MaxMouldingWidthPx,\r\n MouldingWidthPx,\r\n pcs,\r\n );\r\n r.renderStandardMoulding(MouldingWidthPx, PMatWidthPx, PMatHeightPx, pcs);\r\n pcs.css.varsity_visible = true;\r\n if (SMatCount > 0) {\r\n pcs.css.varsity_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.varsity_pmat_bevel_left = `${(RailSidePx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.varsity_pmat_bevel_top = `${(RailTopPx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.varsity_pmat_bevel_width = `${(DocWidthPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)).toString()}px`;\r\n pcs.css.varsity_pmat_bevel_height = `${(DocHeightPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)).toString()}px`;\r\n pcs.css.varsity_smat_backgroundColor = `#${pcs.SecondaryMatColor}`;\r\n pcs.css.varsity_smat_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.varsity_smat_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.varsity_smat_width = `${(DocWidthPx + SMatWidthPx * 2 + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.varsity_smat_height = `${(DocHeightPx + SMatWidthPx * 2 + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.varsity_smat_bevel_backgroundColor = `white`;\r\n pcs.css.varsity_smat_bevel_left = `${SMatWidthPx.toString()}px`;\r\n pcs.css.varsity_smat_bevel_top = `${SMatWidthPx.toString()}px`;\r\n pcs.css.varsity_smat_bevel_width = `${(DocWidthPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.varsity_smat_bevel_height = `${(DocHeightPx + BevelWidthPx * 2).toString()}px`;\r\n } else {\r\n pcs.css.varsity_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.varsity_pmat_bevel_left = `${(RailSidePx - BevelWidthPx).toString()}px`;\r\n pcs.css.varsity_pmat_bevel_top = `${(RailTopPx - BevelWidthPx).toString()}px`;\r\n pcs.css.varsity_pmat_bevel_width = `${(DocWidthPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.varsity_pmat_bevel_height = `${(DocHeightPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.varsity_smat_backgroundColor = `none`;\r\n pcs.css.varsity_smat_left = `0px`;\r\n pcs.css.varsity_smat_top = `0px`;\r\n pcs.css.varsity_smat_width = ``;\r\n pcs.css.varsity_smat_height = ``;\r\n pcs.css.varsity_smat_bevel_backgroundColor = `none`;\r\n pcs.css.varsity_smat_bevel_left = `0px`;\r\n pcs.css.varsity_smat_bevel_top = `0px`;\r\n pcs.css.varsity_smat_bevel_width = ``;\r\n pcs.css.varsity_smat_bevel_height = ``;\r\n }\r\n\r\n pcs.css.varsity_bg_backgroundColor = `#${Util.isNullOrWhiteSpace(s.pcs.vlbg_color) ? `000000` : s.pcs.vlbg_color}`;\r\n pcs.css.varsity_bg_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.varsity_bg_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.varsity_bg_width = `${DocWidthPx.toString()}px`;\r\n pcs.css.varsity_bg_height = `${DocHeightPx.toString()}px`;\r\n pcs.css.varsity_src = r.vl_path(DocWidthPx, DocHeightPx, pcs.Base_ExtraEntityName);\r\n pcs.css.varsity_left = `0px`;\r\n pcs.css.varsity_top = `0px`;\r\n pcs.css.varsity_width = `${DocWidthPx.toString()}px`;\r\n pcs.css.varsity_height = `${DocHeightPx.toString()}px`;\r\n // insignia\r\n r.renderStandardInsignia(\r\n 0,\r\n 0,\r\n PMatWidthPx,\r\n MaxInsigniaWidthPx,\r\n RailTopPx,\r\n BevelWidthPx,\r\n SMatCount,\r\n SMatWidthPx,\r\n pcs,\r\n );\r\n r.renderStandardLino(\r\n 0,\r\n 0,\r\n BevelWidthPx,\r\n SMatCount,\r\n SMatWidthPx,\r\n RailSidePx,\r\n DocWidthPx,\r\n DocHeightPx,\r\n LinoWidthMaxPx,\r\n LinoHeightMaxPx,\r\n pcs,\r\n );\r\n pcs.css.ep_visible = pcs.HasEngravedPlate;\r\n if (pcs.HasEngravedPlate) {\r\n pcs.css.ep_visible = true;\r\n let EPTopPx: number =\r\n (\r\n (RailSidePx +\r\n DocHeightPx +\r\n BevelWidthPx +\r\n SMatCount * (SMatWidthPx + BevelWidthPx))\r\n ) +\r\n (\r\n ((\r\n Math.floor(\r\n ((RailSidePx) -\r\n (BevelWidthPx) -\r\n (SMatCount) *\r\n ((SMatWidthPx) + (BevelWidthPx))) /\r\n 2 -\r\n (EPHeightPx) / 2,\r\n )\r\n ))\r\n ) -\r\n BevelWidthPx * 2;\r\n let EPLeftPx: number =\r\n (\r\n ((\r\n Math.floor(\r\n (RailSidePx) +\r\n (DocWidthPx) / 2 -\r\n (EPWidthPx) / 2,\r\n )\r\n ))\r\n ) -\r\n BevelWidthPx * 2;\r\n r.renderEngravedPlate(\r\n EPLeftPx,\r\n EPTopPx,\r\n EPWidthPx,\r\n EPHeightPx,\r\n BevelWidthPx,\r\n PMatWidthPx,\r\n pcs,\r\n );\r\n }\r\n };\r\n\r\n const renderOvalFrame = (pcs: ProductCustomizationState): void => {\r\n let CurrentDocWidth: number = 0;\r\n let CurrentDocHeight: number = 0;\r\n let DocSizeTier = r.getDocSizeTier(pcs);\r\n let WidthLimit: number = 14;\r\n let HeightLimit: number = 14;\r\n\r\n if (pcs.Document_Width > WidthLimit) {\r\n let ratio: number = WidthLimit / pcs.Document_Width;\r\n pcs.Document_Width = WidthLimit;\r\n pcs.Document_Height = pcs.Document_Height * ratio;\r\n }\r\n if (pcs.Document_Height > HeightLimit) {\r\n let ratio: number = HeightLimit / pcs.Document_Height;\r\n pcs.Document_Height = HeightLimit;\r\n pcs.Document_Width = pcs.Document_Width * ratio;\r\n }\r\n CurrentDocWidth = pcs.Document_Width;\r\n CurrentDocHeight = pcs.Document_Height;\r\n let SMatCount: number = !pcs.MatCombo_IsWoodFillet && pcs.SecondaryMatID > 0 ? 1 : 0;\r\n let SMatWidthPixelAdder: number = 1;\r\n // rail Setup\r\n // - Rail includes: Inner Mat and all mat bevels.\r\n // - The primary mat is actually the inner mat on single document frames\r\n // - The document \"underlaps\" the inner mat. See DocSizeTier.DocOverLap\r\n // - The mats are overlapped by the moulding by 0.25\r\n // - From this point forward, rail will be defined as all visible portions of mats including bevels (we are subtracting out the 0.25 of moulding overlap)\r\n let MouldingOverlap: number = 0.25;\r\n let RailTop: number = (DocSizeTier.TasselRailHeight) - MouldingOverlap;\r\n let RailSide: number = (DocSizeTier.TasselRailWidth) - MouldingOverlap;\r\n // insignia Adjustments\r\n let InsigniaWidth =\r\n pcs.Base_InsigniaWidthInches > 0\r\n ? pcs.Base_InsigniaWidthInches\r\n : DefaultPCS.DefaultInsigniaWidthMax;\r\n InsigniaWidth =\r\n DocSizeTier.DocSizeTierID >= 7 && pcs.Base_InsigniaWidthInches < 1 ? 2 : InsigniaWidth;\r\n // lino\r\n let LinoWidthMax: number =\r\n Math.min(DefaultPCS.DefaultLinoWidthMax, CurrentDocWidth + 1) +\r\n pcs.Base_LinoAdjustmentInches;\r\n LinoWidthMax = r.linoWidthAdjust(LinoWidthMax, pcs);\r\n let LinoHeightMax: number = DefaultPCS.DefaultLinoHeightMax * (LinoWidthMax / 11.5);\r\n let OvalGap: number = 1;\r\n let OvalWidth: number = 4.5;\r\n let OvalHeight: number = 6.5;\r\n // ****----____ EP-code-change ____----****\r\n let EPWidth: number = DefaultPCS.DefaultEPWidth;\r\n let EPHeight: number = DefaultPCS.DefaultEPHeight;\r\n if (CurrentDocHeight <= 7) {\r\n EPWidth = 3;\r\n EPHeight = 0.5;\r\n }\r\n // ****----____ EP-code-change ____----****\r\n let TotalWidth: number =\r\n RailSide * 2 +\r\n CurrentDocWidth +\r\n (pcs.UseMaxMouldingForSizing ? pcs.MouldingWidthMax * 2 : pcs.MouldingExtWidth * 2) +\r\n OvalGap +\r\n OvalWidth;\r\n let DPI: number = (Math.floor(pcs.MaxFrameWidthPx / TotalWidth));\r\n let done: boolean = false;\r\n let doneCount: number = -1;\r\n let BevelWidthPx: number = -1;\r\n let DocWidthPx: number = -1;\r\n let DocHeightPx: number = -1;\r\n let EPWidthPx: number = -1;\r\n let EPHeightPx: number = -1;\r\n let MaxInsigniaWidthPx: number = -1;\r\n let LinoWidthMaxPx: number = -1;\r\n let LinoHeightMaxPx: number = -1;\r\n let MouldingWidthPx: number = -1;\r\n let MaxMouldingWidthPx: number = -1;\r\n let SMatWidthPx: number = -1;\r\n let RailSidePx: number = -1;\r\n let RailTopPx: number = -1;\r\n let OvalGapPx: number = -1;\r\n let OvalWidthPx: number = -1;\r\n let OvalHeightPx: number = -1;\r\n let TotalUsedWidthPx: number = -1;\r\n let TotalUsedWidthPx_NoMargin: number = -1;\r\n let PMatWidthPx: number = -1;\r\n let TotalUsedHeightPx: number = -1;\r\n let TotalUsedHeightPx_NoMargin: number = -1;\r\n let PMatHeightPx: number = -1;\r\n let MaxSingleDocRailWidthPx: number = -1;\r\n let MaxPossibleSingleDocWidthPx: number = -1;\r\n let MaxPossibleSingleDocHeightPx: number = -1;\r\n while (!done) {\r\n BevelWidthPx = Math.max(1, (Math.round(pcs.BevelWidth * 2 * DPI))); // double bevel width. It was too small.\r\n DocWidthPx = (\r\n (Math.round((CurrentDocWidth - (DocSizeTier.DocOverlap)) * DPI))\r\n );\r\n DocHeightPx = (\r\n (Math.round((CurrentDocHeight - (DocSizeTier.DocOverlap)) * DPI))\r\n );\r\n // ****----____ EP-code-change ____----****\r\n EPWidthPx = ((EPWidth * DPI));\r\n EPHeightPx = ((EPHeight * DPI));\r\n // ****----____ EP-code-change ____----****\r\n MaxInsigniaWidthPx = (Math.round(InsigniaWidth * DPI));\r\n LinoWidthMaxPx = (Math.round(LinoWidthMax * DPI));\r\n LinoHeightMaxPx = (Math.round(LinoHeightMax * DPI));\r\n MouldingWidthPx = (Math.round(pcs.MouldingExtWidth * DPI));\r\n MaxMouldingWidthPx = (Math.round(pcs.MouldingWidthMax * DPI));\r\n pcs.Padding = MaxMouldingWidthPx - MouldingWidthPx;\r\n SMatWidthPx =\r\n Math.max(\r\n 1,\r\n (Math.floor((pcs.InnerAccentWidth - pcs.BevelWidth) * DPI)),\r\n ) + SMatWidthPixelAdder; // innerAccentWidth includes bevel. We take bevel out here as we convert to pixels. Adding +1 pixel here. We might have to loop back and adjust DPI down\r\n RailSidePx =\r\n (Math.round(RailSide * DPI)) + SMatWidthPixelAdder * SMatCount; // we add the smat pixel adder because this adder is not accounted for in the core rail size specs. Also, if it is a wood fillet, we must add the wood fillet to the rail size since the fillet is additive\r\n RailTopPx = (Math.round(RailTop * DPI)) + SMatWidthPixelAdder * SMatCount;\r\n if (pcs.MaxFrameWidthPx <= 250 && SMatWidthPx > 2) {\r\n SMatWidthPx = 2;\r\n } // Cap SMat at 2px for images at or below 250px// Cap SMat at 2px for images at or below 250px\r\n OvalGapPx =\r\n (Math.round(OvalGap * DPI)) + SMatWidthPixelAdder * SMatCount * 2;\r\n OvalWidthPx = (Math.round(OvalWidth * DPI));\r\n OvalHeightPx = (Math.round(OvalHeight * DPI));\r\n TotalUsedWidthPx =\r\n RailSidePx * 2 + DocWidthPx + MaxMouldingWidthPx * 2 + OvalGapPx + OvalWidthPx;\r\n TotalUsedWidthPx_NoMargin =\r\n RailSidePx * 2 + DocWidthPx + MouldingWidthPx * 2 + OvalGapPx + OvalWidthPx;\r\n PMatWidthPx = TotalUsedWidthPx - MaxMouldingWidthPx * 2; // refers to the outer width, not the width of an individual side\r\n TotalUsedHeightPx = RailTopPx * 2 + DocHeightPx + MaxMouldingWidthPx * 2;\r\n TotalUsedHeightPx_NoMargin = RailTopPx * 2 + DocHeightPx + MouldingWidthPx * 2;\r\n PMatHeightPx = TotalUsedHeightPx - MaxMouldingWidthPx * 2; // refers to the outer width, not the width of an individual side\r\n // if UseCommonDPI is turned on, we want to sync single doc, cameo, and spirit. We sync them in such a way that, if turned on their side, vertical frames will still fit.\r\n // calculate the maximum possible width of a single doc frame with this document size. This is used to establish a common DPI across all single docs when UseCommonDPI is set to true\r\n MaxSingleDocRailWidthPx = Math.max(\r\n (\r\n ((\r\n Math.round(((DocSizeTier.CameoRail) - MouldingOverlap) * DPI)\r\n ))\r\n ) + SMatWidthPixelAdder,\r\n (\r\n ((\r\n Math.round(\r\n ((DocSizeTier.StandardRail) - MouldingOverlap) * DPI,\r\n )\r\n ))\r\n ) +\r\n SMatWidthPixelAdder +\r\n (BevelWidthPx * 2 + SMatWidthPx),\r\n ); // we use the larger cameo rail for this calculation. Also, compare against standard rail + fillet. Take the largest\r\n MaxPossibleSingleDocWidthPx =\r\n MaxSingleDocRailWidthPx * 2 + DocWidthPx + MaxMouldingWidthPx * 2;\r\n MaxPossibleSingleDocHeightPx =\r\n MaxSingleDocRailWidthPx * 2 + DocHeightPx + MaxMouldingWidthPx * 2;\r\n if (DocHeightPx > DocWidthPx && pcs.UseCommonDPI) {\r\n if (MaxPossibleSingleDocHeightPx > pcs.MaxFrameWidthPx) {\r\n DPI -= 1;\r\n } else {\r\n done = true;\r\n }\r\n } else {\r\n if (\r\n (pcs.UseCommonDPI ? MaxPossibleSingleDocWidthPx : TotalUsedWidthPx_NoMargin) >\r\n pcs.MaxFrameWidthPx ||\r\n (pcs.UseCommonDPI ? TotalUsedHeightPx : TotalUsedHeightPx_NoMargin) >\r\n pcs.MaxFrameHeightPx\r\n ) {\r\n DPI -= 1;\r\n } else {\r\n done = true;\r\n }\r\n }\r\n doneCount += 1;\r\n if (doneCount > 100000) {\r\n done = true;\r\n }\r\n }\r\n // check width, look back with new dpi if necessary\r\n pcs.FrameDisplay_width = TotalUsedWidthPx;\r\n pcs.FrameDisplay_height = TotalUsedHeightPx;\r\n // primary mat\r\n r.renderStandardPrimaryMat(\r\n PMatWidthPx,\r\n PMatHeightPx,\r\n MaxMouldingWidthPx,\r\n MouldingWidthPx,\r\n pcs,\r\n );\r\n r.renderStandardMoulding(MouldingWidthPx, PMatWidthPx, PMatHeightPx, pcs);\r\n pcs.css.oval_visible = true;\r\n if (SMatCount > 0) {\r\n pcs.css.doc1_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.doc1_pmat_bevel_left = `${(RailSidePx + OvalWidthPx + OvalGapPx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_top = `${(RailTopPx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_width = `${DocWidthPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)}px`;\r\n pcs.css.doc1_pmat_bevel_height = `${DocHeightPx + 2 * (BevelWidthPx * 2 + SMatWidthPx)}px`;\r\n r.RenderStandardSMat(BevelWidthPx, SMatWidthPx, DocWidthPx, DocHeightPx, pcs);\r\n pcs.css.oval_pmat_bevel_backgroundColor = `white`;\r\n pcs.css.oval_pmat_bevel_left = `${(RailSidePx - SMatWidthPx - BevelWidthPx * 2).toString()}px`;\r\n pcs.css.oval_pmat_bevel_top = `${((\r\n ((\r\n Math.floor(\r\n ((PMatHeightPx) -\r\n (OvalHeightPx) -\r\n (SMatWidthPx) * 2) /\r\n 2,\r\n )\r\n ))\r\n )).toString()}px`;\r\n pcs.css.oval_pmat_bevel_width = `${(OvalWidthPx + SMatWidthPx * 2 + BevelWidthPx * 4).toString()}px`;\r\n pcs.css.oval_pmat_bevel_height = `${OvalHeightPx + SMatWidthPx * 2 + BevelWidthPx * 4}px`;\r\n pcs.css.oval_pmat_bevel_borderRadius = `${(\r\n OvalWidthPx +\r\n SMatWidthPx * 2 +\r\n BevelWidthPx * 4\r\n ).toString()}px / ${(OvalHeightPx + SMatWidthPx * 2 + BevelWidthPx * 4).toString()}px`;\r\n pcs.css.oval_smat_backgroundColor = `#${pcs.SecondaryMatColor}`;\r\n pcs.css.oval_smat_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.oval_smat_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.oval_smat_width = `${(OvalWidthPx + 2 * (BevelWidthPx + SMatWidthPx)).toString()}px`;\r\n pcs.css.oval_smat_height = `${(OvalHeightPx + 2 * (BevelWidthPx + SMatWidthPx)).toString()}px`;\r\n pcs.css.oval_smat_borderRadius = `${(\r\n OvalWidthPx +\r\n 2 * (BevelWidthPx + SMatWidthPx)\r\n ).toString()}px / ${(OvalHeightPx + 2 * (BevelWidthPx + SMatWidthPx)).toString()}px`;\r\n pcs.css.oval_smat_bevel_backgroundColor = `#FFFFFF`;\r\n pcs.css.oval_smat_bevel_left = `${SMatWidthPx.toString()}px`;\r\n pcs.css.oval_smat_bevel_top = `${SMatWidthPx.toString()}px`;\r\n pcs.css.oval_smat_bevel_width = `${(OvalWidthPx + 2 * BevelWidthPx).toString()}px`;\r\n pcs.css.oval_smat_bevel_height = `${(OvalHeightPx + 2 * BevelWidthPx).toString()}px`;\r\n pcs.css.oval_smat_bevel_borderRadius = `${(\r\n OvalWidthPx +\r\n 2 * BevelWidthPx\r\n ).toString()}px / ${(OvalHeightPx + 2 * BevelWidthPx).toString()}px`;\r\n } else {\r\n pcs.css.doc1_pmat_bevel_backgroundColor = `#FFFFFF`;\r\n pcs.css.doc1_pmat_bevel_left = `${(RailSidePx + OvalWidthPx + OvalGapPx - BevelWidthPx).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_top = `${(RailTopPx - BevelWidthPx).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_width = `${(DocWidthPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.doc1_pmat_bevel_height = `${(DocHeightPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.oval_pmat_bevel_backgroundColor = `#FFFFFF`;\r\n pcs.css.oval_pmat_bevel_left = `${(RailSidePx - BevelWidthPx).toString()}px`;\r\n pcs.css.oval_pmat_bevel_top = `${((\r\n (Math.floor(((PMatHeightPx) - OvalHeightPx) / 2))\r\n )).toString()}px`;\r\n pcs.css.oval_pmat_bevel_width = `${(OvalWidthPx + BevelWidthPx * 2).toString()}px`;\r\n pcs.css.oval_pmat_bevel_height = `${OvalHeightPx + BevelWidthPx * 2}px`;\r\n pcs.css.oval_pmat_bevel_borderRadius = `${OvalWidthPx.toString()}px / ${OvalHeightPx.toString()}px`;\r\n r.renderCollapsedSMat(pcs);\r\n pcs.css.oval_smat_backgroundColor = `none`;\r\n pcs.css.oval_smat_left = `0px`;\r\n pcs.css.oval_smat_top = `0px`;\r\n pcs.css.oval_smat_width = ``;\r\n pcs.css.oval_smat_height = ``;\r\n pcs.css.oval_smat_borderRadius = `0px`;\r\n pcs.css.oval_smat_bevel_backgroundColor = `none`;\r\n pcs.css.oval_smat_bevel_left = `0px`;\r\n pcs.css.oval_smat_bevel_top = `0px`;\r\n pcs.css.oval_smat_bevel_width = ``;\r\n pcs.css.oval_smat_bevel_height = ``;\r\n pcs.css.oval_smat_bevel_borderRadius = `0px`;\r\n }\r\n pcs.css.doc1_src = r.doc_path(\r\n DocWidthPx,\r\n DocHeightPx,\r\n pcs.Base_DocumentName,\r\n pcs.Base_ExtraEntityName,\r\n pcs.DYF_FrameStyleID,\r\n pcs.o3,\r\n );\r\n pcs.css.doc1_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.doc1_width = `${DocWidthPx.toString()}px`;\r\n pcs.css.doc1_height = `${DocHeightPx.toString()}px`;\r\n pcs.css.oval_src = r.oval_path(OvalWidthPx, pcs.Base_ExtraEntityName, pcs.DYF_FrameStyleID);\r\n pcs.css.oval_left = `${BevelWidthPx.toString()}px`;\r\n pcs.css.oval_top = `${BevelWidthPx.toString()}px`;\r\n pcs.css.oval_width = `${OvalWidthPx.toString()}px`;\r\n pcs.css.oval_height = `${OvalHeightPx.toString()}px`;\r\n pcs.css.oval_borderRadius = `${OvalWidthPx.toString()}px / ${OvalHeightPx.toString()}px`;\r\n pcs.css.oval_backgroundColor = `#FFFFFF`;\r\n pcs.css.insignia_visible = pcs.Base_InsigniaID > 0;\r\n if (pcs.Base_InsigniaID > 0) {\r\n pcs.css.insignia_src = r.insignia_path(MaxInsigniaWidthPx, pcs.Base_InsigniaName);\r\n pcs.css.insignia_left = `${OvalWidthPx + OvalGapPx + (Math.floor((RailSidePx) + (DocWidthPx) / 2 - (MaxInsigniaWidthPx) / 2))}px`;\r\n pcs.css.insignia_top = `${(Math.floor(((RailTopPx) - (BevelWidthPx) - (SMatCount) * ((SMatWidthPx) + (BevelWidthPx))) / 2 - (MaxInsigniaWidthPx) / 2))}px`;\r\n pcs.css.insignia_width = `${MaxInsigniaWidthPx.toString()}px`;\r\n pcs.css.insignia_height = `${MaxInsigniaWidthPx.toString()}px`;\r\n }\r\n pcs.css.lino_visible = pcs.Base_LinoID > 0;\r\n if (pcs.Base_LinoID > 0) {\r\n pcs.css.lino_src = r.lino_path(LinoWidthMaxPx, pcs);\r\n pcs.css.lino_left = `${OvalWidthPx + OvalGapPx + (Math.floor((RailSidePx) + (DocWidthPx) / 2 - (LinoWidthMaxPx) / 2))}px`;\r\n pcs.css.lino_top = `${((RailTopPx + DocHeightPx + BevelWidthPx + SMatCount * (SMatWidthPx + BevelWidthPx) + Math.floor(((RailTopPx) - (BevelWidthPx) - (SMatCount) * ((SMatWidthPx) + (BevelWidthPx))) / 2 - (LinoHeightMaxPx) / 2)))}px`;\r\n pcs.css.lino_width = `${LinoWidthMaxPx.toString()}px`;\r\n pcs.css.lino_height = `${LinoHeightMaxPx.toString()}px`;\r\n }\r\n // ep\r\n pcs.css.ep_visible = pcs.HasEngravedPlate;\r\n if (pcs.HasEngravedPlate) {\r\n let EPTopPx: number =\r\n (\r\n ((\r\n (RailTopPx +\r\n DocHeightPx +\r\n BevelWidthPx +\r\n SMatCount * (SMatWidthPx + BevelWidthPx) +\r\n Math.floor(\r\n ((RailTopPx) -\r\n (BevelWidthPx) -\r\n (SMatCount) *\r\n ((SMatWidthPx) +\r\n (BevelWidthPx))) /\r\n 2 -\r\n (EPHeightPx) / 2,\r\n ))\r\n ))\r\n ) -\r\n BevelWidthPx * 2;\r\n let EPLeftPx: number =\r\n OvalWidthPx +\r\n OvalGapPx +\r\n (\r\n ((\r\n Math.floor(\r\n (RailSidePx) +\r\n (DocWidthPx) / 2 -\r\n (EPWidthPx) / 2,\r\n )\r\n ))\r\n ) -\r\n BevelWidthPx * 2;\r\n r.renderEngravedPlate(\r\n EPLeftPx,\r\n EPTopPx,\r\n EPWidthPx,\r\n EPHeightPx,\r\n BevelWidthPx,\r\n PMatWidthPx,\r\n pcs,\r\n );\r\n }\r\n };\r\n}\r\n","import React, {createRef} from 'react';\r\nimport {observable, action, makeObservable} from 'mobx';\r\nimport {observer} from 'mobx-react';\r\nimport s from '../s';\r\nimport * as util from '../../util';\r\nimport {PCS_CSS} from '../i';\r\nimport * as emitter from '../../global/emitter';\r\nimport AbTestStore, {ABTestKeys} from '../../global/store/ab-test.store';\r\n\r\ninterface IProductRenderProps {\r\n css: PCS_CSS;\r\n zoom: boolean;\r\n}\r\n\r\n@observer\r\nexport default class ProductRender extends React.Component {\r\n @observable isZoomVisible: boolean;\r\n @observable originalContainerRef: React.RefObject = createRef();\r\n @observable zoomedContainerRef: React.RefObject = createRef();\r\n @observable zoomSquareContainerRef: React.RefObject = createRef();\r\n\r\n constructor(props: IProductRenderProps) {\r\n super(props);\r\n this.save = this.save.bind(this);\r\n this.onMouseMove = this.onMouseMove.bind(this);\r\n this.onMouseEnter = this.onMouseEnter.bind(this);\r\n this.onMouseLeave = this.onMouseLeave.bind(this);\r\n makeObservable(this);\r\n }\r\n\r\n @action\r\n onMouseMove(e: React.MouseEvent) {\r\n const squareCurrent = this.zoomSquareContainerRef.current;\r\n const originalCurrent = this.originalContainerRef.current;\r\n\r\n if (!originalCurrent || !squareCurrent) return;\r\n\r\n this.calculateZoomSquareSize();\r\n\r\n const imageRect = originalCurrent.getBoundingClientRect();\r\n const squareWidth = parseInt(squareCurrent.style.width, 10);\r\n const squareHeight = parseInt(squareCurrent.style.height, 10);\r\n\r\n let mouseX = e.clientX - imageRect.left;\r\n let mouseY = e.clientY - imageRect.top;\r\n\r\n mouseX -= squareWidth / 2;\r\n mouseY -= squareHeight / 2;\r\n\r\n if (mouseX + squareWidth > imageRect.width) mouseX = imageRect.width - squareWidth;\r\n\r\n if (mouseY + squareHeight > imageRect.height) mouseY = imageRect.height - squareHeight;\r\n\r\n if (mouseX < 0) mouseX = 0;\r\n\r\n if (mouseY < 0) mouseY = 0;\r\n\r\n squareCurrent.style.top = `${mouseY}px`;\r\n squareCurrent.style.left = `${mouseX}px`;\r\n\r\n const scale = 2;\r\n\r\n this.setStyle('transformOrigin', `${mouseX * scale}px ${mouseY * scale}px`);\r\n this.setStyle('transform', `scale(${scale})`);\r\n this.setStyle('width', `${squareWidth * scale}px`, true);\r\n this.setStyle('height', `${squareHeight * scale}px`, true);\r\n this.setStyle('border', '1px solid gray', true);\r\n this.setStyle('boxShadow', '0 0 7px 5px rgba(0, 0, 0, .75)', true);\r\n }\r\n\r\n @action\r\n calculateZoomSquareSize() {\r\n const current = this.zoomSquareContainerRef.current;\r\n\r\n if (!current) return;\r\n\r\n let squareWidth: number;\r\n let squareHeight: number;\r\n\r\n const {frame_display_width, frame_display_height} = this.props.css;\r\n const ratio = frame_display_width / frame_display_height;\r\n\r\n if (frame_display_width > frame_display_height) {\r\n squareWidth = 350;\r\n squareHeight = squareWidth / ratio;\r\n } else {\r\n squareHeight = 350;\r\n squareWidth = squareHeight * ratio;\r\n }\r\n\r\n current.style.width = `${squareWidth}px`;\r\n current.style.height = `${squareHeight}px`;\r\n }\r\n\r\n @action\r\n onMouseLeave() {\r\n this.isZoomVisible = false;\r\n }\r\n\r\n @action\r\n onMouseEnter() {\r\n if (window.innerWidth > 1200) {\r\n this.isZoomVisible = true;\r\n }\r\n }\r\n\r\n @action\r\n setStyle(attr: string, value: string, parentStyle: boolean = false) {\r\n const current = this.zoomedContainerRef.current;\r\n\r\n if (!current) return;\r\n\r\n if (parentStyle && current.parentElement) {\r\n current.parentElement.style[attr] = value;\r\n } else {\r\n current.style[attr] = value;\r\n }\r\n }\r\n\r\n @action\r\n save = async (e: any) => {\r\n // const w:number = s.pcs.css.frame_display_width;\r\n // const h:number = s.pcs.css.frame_display_height;\r\n // const ratio:number = w/h;\r\n // console.log(w, h, ratio);\r\n // const newWidth:number = 565;\r\n };\r\n\r\n abForceUpdate = async () => this.forceUpdate();\r\n\r\n componentDidMount(): void {\r\n emitter.eventEmitter.subscribe(emitter.EventType.AB, 'ab', this.abForceUpdate);\r\n var loadingDiv = document.getElementById('prod-loading') as HTMLDivElement;\r\n if (loadingDiv) {\r\n loadingDiv.remove();\r\n }\r\n }\r\n\r\n render() {\r\n if (!s.ready || !this.props.css) {\r\n return;\r\n }\r\n\r\n let replaceImage: boolean;\r\n let newImage: React.JSX.Element;\r\n\r\n const th6Enabled = !s.prod.th6Disabled && !util.isNullOrWhiteSpace(s.prod.th6);\r\n\r\n if (th6Enabled) {\r\n const defaultConfiguration =\r\n s.prod.MouldingID === s.pcs.moulding_id &&\r\n s.prod.Mat1_ID === s.pcs.mat1_id &&\r\n s.prod.Mat2_ID === s.pcs.mat2_id &&\r\n s.prod.InsigniaID === s.pcs.insignia_id &&\r\n s.prod.EngravedPlateStatusID === s.pcs.ep_id &&\r\n s.prod.LinoID === s.pcs.lino_id;\r\n\r\n replaceImage =\r\n defaultConfiguration &&\r\n th6Enabled &&\r\n AbTestStore.ABIsVariant(ABTestKeys.ab_prod_th6, 1);\r\n newImage = (\r\n \r\n );\r\n }\r\n\r\n const renderContent = () => {\r\n if (s.prod.CustomizationMethod < 1) {\r\n return (\r\n
    \r\n
    \r\n {!replaceImage && (\r\n \r\n )}\r\n\r\n {replaceImage && newImage}\r\n\r\n {s.prod && s.prod.is_tassel_cord && (\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n if (s.prod.CustomizationMethod === 1) {\r\n return (\r\n \r\n {!replaceImage && (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {s.prod && s.prod.is_tassel_cord && (\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n\r\n {replaceImage && newImage}\r\n \r\n );\r\n } else {\r\n return (\r\n
    \r\n \r\n\r\n \r\n {!replaceImage && (\r\n \r\n {/* Moulding */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n {this.props.css.doc1_visible && (\r\n \r\n \r\n \r\n \r\n {!s.ui.image_uploaded && (\r\n \r\n )}\r\n \r\n \r\n
    \r\n \r\n \r\n )}\r\n\r\n {this.props.css.doc2_visible && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {this.props.css.tassel_visible && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {this.props.css.fillet_visible && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {this.props.css.insignia_visible && (\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {this.props.css.insignia_bot_visible && (\r\n \r\n )}\r\n\r\n {this.props.css.lino_visible && (\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {this.props.css.ep_visible && (\r\n \r\n \r\n \r\n \r\n
    {s.pcs.ep1}
    \r\n
    {s.pcs.ep2}
    \r\n
    {s.pcs.ep3}
    \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {this.props.css.varsity_visible && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {this.props.css.oval_visible && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {/* Spirit */}\r\n {this.props.css.spirit_visible && (\r\n \r\n )}\r\n {this.props.css.spirit_visible && (\r\n \r\n )}\r\n {this.props.css.spirit_visible && (\r\n \r\n )}\r\n {this.props.css.spirit_visible && (\r\n \r\n )}\r\n {this.props.css.spirit_visible && (\r\n \r\n )}\r\n {this.props.css.spirit_visible && (\r\n \r\n )}\r\n\r\n {this.props.css.spirit_visible && (\r\n \r\n )}\r\n {this.props.css.spirit_visible && (\r\n \r\n )}\r\n {this.props.css.spirit_visible && (\r\n \r\n )}\r\n {this.props.css.spirit_visible && (\r\n \r\n )}\r\n {this.props.css.spirit_visible && (\r\n \r\n )}\r\n {this.props.css.spirit_visible && (\r\n \r\n )}\r\n\r\n {/* Cameo */}\r\n {this.props.css.cameo_visible && (\r\n \r\n \r\n \r\n )}\r\n\r\n {s.prod && s.prod.is_tassel_cord && (\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n \r\n )}\r\n\r\n {replaceImage && newImage}\r\n \r\n \r\n );\r\n }\r\n };\r\n\r\n const isMobile = window.innerWidth < 1200;\r\n const zoomContainerVisible =\r\n this.isZoomVisible &&\r\n AbTestStore.ABIsVariant(ABTestKeys.prod_zoom, 1) &&\r\n !this.props.zoom &&\r\n !isMobile;\r\n const content = (\r\n <>\r\n \r\n {renderContent()}\r\n {zoomContainerVisible && (\r\n \r\n )}\r\n \r\n {zoomContainerVisible && (\r\n \r\n \r\n {renderContent()}\r\n \r\n \r\n )}\r\n \r\n );\r\n\r\n const insigniaVisible =\r\n AbTestStore.ABIsVariant(ABTestKeys.prod_zoom, 2) &&\r\n this.isZoomVisible &&\r\n s.ui.name_insignia;\r\n const insignia = (\r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n {insigniaVisible ? insignia : content}\r\n \r\n );\r\n }\r\n}\r\n","import {observable, autorun, action, makeObservable, runInAction} from 'mobx';\r\nimport store from '../checkout/s';\r\nimport {pricing} from './api';\r\nimport {\r\n ProductUI,\r\n StoreInfo,\r\n ViewProduct,\r\n ProductState,\r\n PCS_CSS,\r\n GlassPrices,\r\n ViewGlass,\r\n ProductStateShare,\r\n} from './i';\r\nimport {r} from './rendering/core';\r\nimport * as util from '../util';\r\nimport {updateShippingBoxID} from './calc';\r\n\r\ndeclare var __isMyFrames: boolean;\r\ndeclare var __StoreID: number;\r\ndeclare var __preload_product: string;\r\ndeclare var __preload_glass_prices: string;\r\ndeclare var __fast_ship: boolean;\r\ndeclare var klaviyo: any[];\r\ndeclare const window: any;\r\ndeclare const marketing_product_visit: (arg: any[]) => void;\r\ndeclare var __portal: IPortalSettings;\r\n\r\nexport class ProdStore {\r\n @observable ui: ProductUI;\r\n @observable pcs: ProductState;\r\n @observable prod: ViewProduct;\r\n @observable si: StoreInfo;\r\n @observable isRetail: boolean;\r\n @observable debug: boolean = true;\r\n @observable errorLog: string;\r\n @observable errorLogInfo: string;\r\n @observable apiError: boolean = false;\r\n @observable ready: boolean = false;\r\n @observable __fast_ship_orig: boolean = false;\r\n @observable __fast_ship_warned: boolean = false;\r\n @observable selected_doc_size: number = 3;\r\n @observable glass_prices: GlassPrices[];\r\n @observable glass: ViewGlass[];\r\n @observable ppi_w: number;\r\n @observable ppi_h: number;\r\n @observable ppi_w_max: number;\r\n @observable ppi_h_max: number;\r\n @observable ppi_w_actual: number;\r\n @observable ppi_h_actual: number;\r\n @observable product_thumbnail_height: number = 75;\r\n @observable PortalID: number = 0;\r\n\r\n constructor() {\r\n this.ui = {\r\n product_title: '',\r\n item_id: '',\r\n sku: '',\r\n msrp: 0,\r\n price: 0,\r\n review_count: 0,\r\n review_score: 5,\r\n doc_type: '',\r\n box_id: -1,\r\n categoryIds: [],\r\n\r\n show_grad_year: true,\r\n show_atc: true,\r\n show_cust: true,\r\n show_pricing: true,\r\n\r\n name_moulding: '',\r\n moulding_has_zoom: true,\r\n moulding_zoom_path: '',\r\n moulding_zoom_path_th: '',\r\n\r\n name_mat1: '',\r\n name_mat2: '',\r\n name_glass: '',\r\n name_insignia: '',\r\n\r\n title_mat_combo: '',\r\n title_moulding: '',\r\n title_mat1: '',\r\n title_mat2: '',\r\n title_glass: '',\r\n title_insignia: '',\r\n title_vlbg: '',\r\n\r\n color_mat1: '',\r\n color_mat2: '',\r\n old_style_composite: '',\r\n\r\n linen: false,\r\n\r\n doRender: false,\r\n update_pricing: false,\r\n update_doc_sizes: false,\r\n\r\n zoom_thumbnails: false,\r\n zoom_real_images: false,\r\n show_caf_doc_sizes: false,\r\n show_caf_doc_sizes_both: false,\r\n\r\n bo_msg: '',\r\n is_bo: false,\r\n\r\n image_uploaded: false,\r\n image_uploaded_msg: '',\r\n image_uploading: false,\r\n processing_title: '',\r\n processing_text: '',\r\n allow_customer_photos: true,\r\n allow_reviews: true,\r\n allow_smartbox: true,\r\n };\r\n\r\n this.glass = [\r\n {id: 1, title: 'Standard', price: '$0'},\r\n {id: 2, title: 'Reflection Control', price: '$0'},\r\n {id: 3, title: 'Conservation UV', price: '$0'},\r\n {id: 4, title: 'UV & Reflection Control', price: '$0'},\r\n ];\r\n\r\n this.pcs = {} as ProductState;\r\n makeObservable(this);\r\n }\r\n\r\n @action\r\n init = () => {\r\n this.PortalID = __portal.PortalID;\r\n this.__fast_ship_orig = __fast_ship;\r\n this.isRetail = !__isMyFrames;\r\n this.prod = JSON.parse(JSON.stringify(__preload_product)) as ViewProduct;\r\n this.glass_prices = JSON.parse(JSON.stringify(__preload_glass_prices)) as GlassPrices[];\r\n this.si = this.prod.StoreInfo[__StoreID];\r\n\r\n if (this.prod.ProductID === 51558) {\r\n __fast_ship = true;\r\n this.__fast_ship_orig = true;\r\n }\r\n\r\n if (this.prod.mouldings) {\r\n this.prod.mouldings = this.prod.mouldings.filter(x => x.storeId == __StoreID);\r\n this.prod.mouldings.map((m, i) => (m.i = i));\r\n } else {\r\n s.prod.mouldings = [];\r\n }\r\n if (this.prod.mats) {\r\n this.prod.mats = this.prod.mats.filter(x => x.storeId == __StoreID);\r\n this.prod.mats.map((m, i) => (m.i = i));\r\n } else {\r\n s.prod.mats = [];\r\n }\r\n if (this.prod.caf_mat1) {\r\n this.prod.caf_mat1 = this.prod.caf_mat1.filter(x => x.storeId == __StoreID);\r\n this.prod.caf_mat1.filter(x => x.storeId == __StoreID).map((m, i) => (m.i = i));\r\n } else {\r\n s.prod.caf_mat1 = [];\r\n }\r\n if (this.prod.caf_mat2) {\r\n this.prod.caf_mat2 = this.prod.caf_mat2.filter(x => x.storeId == __StoreID);\r\n this.prod.caf_mat2.filter(x => x.storeId == __StoreID).map((m, i) => (m.i = i));\r\n } else {\r\n s.prod.caf_mat2 = [];\r\n }\r\n if (this.prod.insignias) {\r\n this.prod.insignias = this.prod.insignias.filter(x => x.storeId == __StoreID);\r\n this.prod.insignias.filter(x => x.storeId == __StoreID).map((m, i) => (m.i = i));\r\n } else {\r\n s.prod.insignias = [];\r\n }\r\n if (this.prod.linos) {\r\n this.prod.linos = this.prod.linos.filter(x => x.storeId == __StoreID);\r\n this.prod.linos.map((m, i) => (m.i = i));\r\n } else {\r\n s.prod.linos = [];\r\n }\r\n\r\n // setup ui\r\n this.ui.item_id = this.prod.ItemID;\r\n this.ui.price = this.isRetail ? this.si.Price_Retail : this.si.Price_Wholesale;\r\n this.prod.reviewCount;\r\n this.prod.reviewScore;\r\n this.ui.msrp = this.si.priceMSRPDec;\r\n this.ui.product_title = this.prod.Name;\r\n this.ui.doc_type = this.prod.DocType;\r\n this.ui.box_id = this.prod.Shipping_BoxID;\r\n const cat = [...new Set(this.prod.categories.map(m => m.CategoryID))];\r\n for (let i = 0; i < cat.length; i++) {\r\n if (s.prod.categories.filter(x => x.CategoryID === cat[i]).length > 1) {\r\n this.ui.categoryIds.push(cat[i]);\r\n }\r\n }\r\n if (this.si.StoreTypeID === 5 && this.isRetail) {\r\n this.ui.show_grad_year = false;\r\n }\r\n if (this.si.StoreTypeID === 5 && this.isRetail) {\r\n this.ui.show_cust = false;\r\n }\r\n if (this.prod.ProductID === 59753) {\r\n this.prod.is_tassel_cord = true;\r\n }\r\n\r\n // pcs\r\n if (this.prod.ForcePlexiglass) {\r\n this.pcs.use_plexi = true;\r\n }\r\n this.pcs.is_caf = this.prod.IsCAF;\r\n this.prod.orig_pcs.IsCAF = this.prod.IsCAF;\r\n this.pcs.customized_core = false;\r\n this.pcs.customized_glass = false;\r\n this.pcs.base_product_id = this.prod.ProductID;\r\n this.pcs.base_item_id = this.prod.ItemID;\r\n this.pcs.docWidth = this.prod.docWidth;\r\n this.pcs.docHeight = this.prod.docHeight;\r\n this.pcs.docWidth2 = this.prod.docWidth2;\r\n this.pcs.docHeight2 = this.prod.docHeight2;\r\n this.pcs.moulding_id = this.prod.MouldingID;\r\n this.pcs.moulding_extWidth = this.prod.MouldingExtWidth;\r\n this.ui.moulding_has_zoom = this.prod.MouldingHasZoom;\r\n this.ui.moulding_zoom_path = this.prod.Moulding_IMG_Zoom;\r\n this.ui.moulding_zoom_path_th = this.prod.Moulding_IMG_ZoomThumb;\r\n this.pcs.matcombo_id = this.prod.MatComboID;\r\n this.pcs.mat1_id = this.prod.Mat1_ID;\r\n this.pcs.mat2_id = this.prod.Mat2_ID;\r\n this.pcs.insignia_id = this.prod.InsigniaID;\r\n this.pcs.insignia_base_name = this.prod.InsigniaName;\r\n this.ui.name_insignia = this.prod.InsigniaName ? this.prod.InsigniaName.toLowerCase() : '';\r\n this.pcs.glass_id = 1;\r\n this.pcs.insignia_id = this.prod.InsigniaID;\r\n this.pcs.ep_id = 0;\r\n this.pcs.ep_id_view = 37;\r\n this.pcs.wholesale = __isMyFrames;\r\n this.pcs.qty = 1;\r\n this.ui.review_count = this.prod.reviewCount;\r\n this.ui.review_score = this.prod.reviewScore;\r\n if (!this.pcs.is_caf) {\r\n this.pcs.item_id = this.prod.orig_pcs.ItemID;\r\n } else {\r\n s.ui.moulding_has_zoom = true;\r\n }\r\n this.pcs.category_map_id = this.prod.orig_pcs.SelectedCategoryMapID;\r\n if (this.prod.EngravedPlateStatusID === 1) {\r\n this.pcs.ep_id = 37;\r\n }\r\n if (this.prod.EngravedPlateStatusID === 2) {\r\n this.pcs.ep_id = 39;\r\n this.pcs.ep_id_view = 39;\r\n }\r\n if (this.prod.EngravedPlateStatusID === 4) {\r\n this.pcs.ep_id_view = 39;\r\n }\r\n if (this.prod.EngravedPlateStatusID === 6) {\r\n this.pcs.ep_id = 1099;\r\n }\r\n if (this.prod.EngravedPlateStatusID === 7) {\r\n this.pcs.ep_id = 1099;\r\n this.pcs.ep_id_view = 1099;\r\n }\r\n this.pcs.lino_id = this.prod.LinoID;\r\n this.pcs.lino_base_name = this.prod.orig_pcs.Base_LinoName;\r\n this.pcs.lino_dyf_color = 'gold';\r\n this.pcs.lino_is_dyf = this.prod.ProductID < 0;\r\n this.pcs.is_horizontal = this.prod.IsHorizontal;\r\n // console.log(this.prod.IsHorizontal);\r\n\r\n if (this.prod.DYF_FrameStyleID === 4) {\r\n this.pcs.vlbg_id = this.prod.VLBG_ID;\r\n const vlbg = s.prod.caf_mat2.filter(x => x.id === this.pcs.vlbg_id)[0];\r\n if (vlbg) {\r\n this.pcs.vlbg_color = vlbg.mat_color;\r\n this.ui.title_vlbg = vlbg.title;\r\n }\r\n }\r\n\r\n if (this.pcs.is_caf) {\r\n this.ui.update_pricing = true;\r\n var _m = this.prod.mouldings.filter(x => x.isBase);\r\n if (_m.length > 0) {\r\n this.pcs.moulding_id = _m[0].id;\r\n }\r\n var _i = this.prod.insignias.filter(x => x.isBase);\r\n if (_i.length > 0) {\r\n this.pcs.insignia_id = _i[0].id;\r\n }\r\n var _l = this.prod.linos.filter(x => x.isBase);\r\n if (_l.length > 0) {\r\n this.pcs.lino_id = _l[0].id;\r\n }\r\n var _m1 = this.prod.caf_mat1.filter(x => x.isBase);\r\n if (_m1.length > 0) {\r\n this.pcs.mat1_id = _m1[0].id;\r\n this.pcs.mat1_color = _m1[0].mat_color;\r\n this.pcs.ins_gold_allowed = _m1[0].ins_gold_allowed;\r\n this.pcs.ins_silver_allowed = _m1[0].ins_silver_allowed;\r\n this.pcs.ins_black_allowed = _m1[0].ins_black_allowed;\r\n this.ui.linen = s.ui.linen = _m1[0].name.toLowerCase().includes('linen');\r\n }\r\n var _m2 = this.prod.caf_mat2.filter(x => x.isBase);\r\n if (_m2.length > 0) {\r\n this.pcs.mat2_id = _m2[0].id;\r\n this.pcs.mat2_color = _m2[0].mat_color;\r\n }\r\n s.ui.product_title = `Custom ${this.prod.DYF_FrameStyleName} Frame`;\r\n\r\n if (s.si.StoreID !== 136072) {\r\n s.ui.product_title = `Custom ${this.si.ProdInstText} ${this.prod.DYF_FrameStyleName} Frame`;\r\n }\r\n\r\n s.ui.moulding_has_zoom = true;\r\n s.pcs.DocSizeTierID = 4;\r\n if (this.prod.DYF_FrameStyleID === 10) {\r\n this.selected_doc_size = 0;\r\n }\r\n } else if (this.prod.mats) {\r\n const mc = this.prod.mats.filter(x => x.id === this.prod.MatComboID)[0];\r\n if (mc) {\r\n this.process_color_restrictions();\r\n this.pcs.mat1_color = mc.pmat_color;\r\n this.pcs.ins_gold_allowed = mc.ins_gold_allowed;\r\n this.pcs.ins_silver_allowed = mc.ins_silver_allowed;\r\n this.pcs.ins_black_allowed = mc.ins_black_allowed;\r\n this.ui.linen = s.ui.linen = mc.pmat_name.toLowerCase().includes('linen');\r\n }\r\n }\r\n\r\n if (this.prod.CustomizationMethod === 1) {\r\n this.ui.old_style_composite = this.prod.OldCompositeImage;\r\n }\r\n\r\n // hide year of graduation if linked store, or if diploma not in the product name\r\n if (\r\n (this.si.StoreTypeID === 5 && this.isRetail) ||\r\n !this.ui.product_title.toLowerCase().includes('diploma') ||\r\n this.pcs.is_caf\r\n ) {\r\n this.ui.show_grad_year = false;\r\n }\r\n if (this.prod.YearOfGraduation_Required) {\r\n this.ui.show_grad_year = true;\r\n }\r\n\r\n this.ui.allow_customer_photos = this.si.allow_customer_photos;\r\n this.ui.allow_reviews = this.si.allow_reviews;\r\n this.ui.allow_smartbox = this.si.allow_smartbox;\r\n\r\n if (__portal.DisableRealImages) {\r\n this.ui.allow_customer_photos = false;\r\n }\r\n\r\n if (__portal.DisableReviews) {\r\n this.ui.allow_reviews = false;\r\n }\r\n\r\n // share\r\n if (util.getParameterByName('k')) {\r\n try {\r\n let f: ProductStateShare = JSON.parse(atob(util.getParameterByName('k') as string));\r\n // console.log(JSON.stringify(f));\r\n parseInt(f.m0.toString(), 10);\r\n parseInt(f.m1.toString(), 10);\r\n parseInt(f.m2.toString(), 10);\r\n parseInt(f.i.toString(), 10);\r\n parseInt(f.g.toString(), 10);\r\n parseInt(f.l.toString(), 10);\r\n\r\n s.pcs.moulding_id = f.m0;\r\n s.pcs.mat1_id = f.m1;\r\n s.pcs.mat2_id = f.m2;\r\n\r\n if (f.i > 0) {\r\n const m = s.prod.insignias.filter(m => m.id === f.i)[0];\r\n if (m) {\r\n s.pcs.insignia_id = m.id;\r\n s.pcs.insignia_base_name = m.name;\r\n s.pcs.insignia_is_dyf = m.isCAF;\r\n s.pcs.insignia_dyf_color = m.ins_color.toLowerCase();\r\n s.ui.name_insignia = m.name.toLowerCase();\r\n s.ui.title_insignia = m.title;\r\n }\r\n }\r\n\r\n if (f.l > 0) {\r\n const m = s.prod.linos.filter(m => m.id === f.l)[0];\r\n if (m) {\r\n s.pcs.lino_base_name = m.name;\r\n s.pcs.lino_is_dyf = false;\r\n s.pcs.lino_id = m.id;\r\n s.pcs.lino_text = m.name;\r\n s.pcs.lino_dyf_color = f.lc;\r\n s.pcs.ep_id = 0;\r\n }\r\n }\r\n\r\n s.pcs.glass_id = f.g;\r\n s.pcs.lino_id = f.l;\r\n s.pcs.ep_id = f.e;\r\n s.pcs.ep1 = f.e1;\r\n s.pcs.ep2 = f.e2;\r\n s.pcs.ep3 = f.e3;\r\n s.pcs.is_horizontal = f.o;\r\n s.pcs.docWidth = f.w1;\r\n s.pcs.docWidth2 = f.w2;\r\n s.pcs.docHeight = f.h1;\r\n s.pcs.docHeight2 = f.h2;\r\n\r\n // console.log(f);\r\n } catch (err: any) {\r\n console.error(err);\r\n }\r\n }\r\n\r\n this.ui.doRender = true;\r\n this.ui.update_pricing = true;\r\n this.pulse();\r\n this.ready = true;\r\n\r\n // marketing\r\n if (this.isRetail && !this.prod.IsCAF) {\r\n const marketing_item: any = [\r\n {\r\n item_id: s.prod.IsCAF ? `CAF-${s.prod.ProductID}` : s.pcs.item_id,\r\n item_name: s.prod.Name,\r\n coupon: '',\r\n currency: 'USD',\r\n discount: 0,\r\n index: 1,\r\n item_brand: 'Church Hill Classics',\r\n item_category: s.prod.ProductTypeDisplayName,\r\n location_id: 'ChIJUcHLaPbi54kRtbVMrbSH4MU',\r\n price: this.ui.price,\r\n quantity: 1,\r\n product_id: s.prod.ProductID,\r\n item_list_name: s.prod.IsCAF ? `${this.si.InstName}` : this.si.StoreName,\r\n item_list_id: this.si.StoreID.toString(),\r\n item_variant: this.prod.ItemID,\r\n },\r\n ];\r\n\r\n if (marketing_product_visit) {\r\n marketing_product_visit(marketing_item);\r\n }\r\n }\r\n\r\n // window.addEventListener('resize', util.debounce(this.pulse(true), 150));\r\n window.addEventListener(\r\n 'resize',\r\n util.debounce(() => this.pulse(true), 150),\r\n );\r\n\r\n try {\r\n let item_image = {\r\n ProductName: s.prod.Name,\r\n ProductID: s.prod.ProductID,\r\n SKU: s.prod.ItemID,\r\n URL: `https://www.diplomaframe.com${s.si.URL}`,\r\n Brand: 'Church Hill Classics',\r\n Price: s.si.Price_Retail,\r\n ImageUrl:\r\n s.prod.CustomizationMethod === 2\r\n ? `https://i.diplomaframe.com/images/products/gen/products/${s.prod.ItemID.toLowerCase()}_${s.prod.ProductID}_1280_1280.png`\r\n : `https://i.diplomaframe.com/images/products/full/${s.prod.Image_Full.toLowerCase()}`,\r\n };\r\n\r\n let item_noimage = {\r\n ProductName: s.prod.Name,\r\n ProductID: s.prod.ProductID,\r\n SKU: s.prod.ItemID,\r\n URL: `https://www.diplomaframe.com${s.si.URL}`,\r\n Brand: 'Church Hill Classics',\r\n Price: s.si.Price_Retail,\r\n };\r\n\r\n if (!s.prod.IsCAF && s.prod.CustomizationMethod === 2) {\r\n klaviyo.push(['track', 'Viewed Product', item_image]);\r\n } else if (s.prod.IsCAF) {\r\n klaviyo.push(['track', 'Viewed Product', item_noimage]);\r\n } else if (s.prod.Image_Full && s.prod.Image_Full.length > 5) {\r\n klaviyo.push(['track', 'Viewed Product', item_image]);\r\n } else {\r\n klaviyo.push(['track', 'Viewed Product', item_noimage]);\r\n }\r\n } catch (errk) {\r\n console.error(errk);\r\n }\r\n };\r\n\r\n @action\r\n give_ep_color_id = (id: number): number => {\r\n if (!this.pcs.ins_silver_allowed && id === 39) {\r\n if (this.pcs.ins_gold_allowed) {\r\n return 37;\r\n } else {\r\n return 39;\r\n }\r\n } else if (!this.pcs.ins_gold_allowed && (id === 37 || id < 1)) {\r\n if (this.pcs.ins_silver_allowed) {\r\n return 39;\r\n } else {\r\n return 37;\r\n }\r\n } else if (!this.pcs.ins_black_allowed && id === 1099) {\r\n if (this.pcs.ins_gold_allowed) {\r\n return 37;\r\n } else {\r\n return 39;\r\n }\r\n }\r\n return id;\r\n };\r\n\r\n @action\r\n pulse_fast_ship = (): void => {\r\n if (!this.__fast_ship_orig || this.prod.IsCAF || !this.isRetail) {\r\n __fast_ship = false;\r\n return;\r\n }\r\n\r\n var diffFromFastShip = false;\r\n\r\n if (s.prod.IsFrame && s.pcs.glass_id > 1) {\r\n diffFromFastShip = true;\r\n }\r\n if (s.prod.IsFrame && s.pcs.moulding_id !== s.prod.MouldingID) {\r\n diffFromFastShip = true;\r\n }\r\n if (s.prod.IsFrame && s.pcs.mat1_id !== s.prod.Mat1_ID) {\r\n diffFromFastShip = true;\r\n }\r\n if (s.prod.IsFrame && s.pcs.mat2_id !== s.prod.Mat2_ID) {\r\n diffFromFastShip = true;\r\n }\r\n if (s.prod.IsFrame && s.pcs.insignia_id !== s.prod.InsigniaID) {\r\n diffFromFastShip = true;\r\n }\r\n if (s.prod.IsFrame && s.pcs.lino_id !== s.prod.LinoID) {\r\n diffFromFastShip = true;\r\n }\r\n\r\n if (__fast_ship && diffFromFastShip && !this.__fast_ship_warned) {\r\n // warn\r\n this.__fast_ship_warned = true;\r\n util.modal('modal-fast-ship-warning');\r\n }\r\n __fast_ship = !diffFromFastShip;\r\n };\r\n\r\n @action\r\n pulse = (forceRender?: boolean) => {\r\n // if(!this.ui.msrp || this.ui.msrp < 0){this.ui.msrp = 0;}\r\n this.pulse_fast_ship();\r\n if (!this.pcs.is_caf) {\r\n this.pulse_product();\r\n } else {\r\n this.pulse_caf();\r\n }\r\n\r\n // todo i, if invalid insignia or EP elected, switch it to allowed versiin\r\n // s.pcs.ep_id_view === 1099 ? 'black' : s.pcs.ep_id_view === 39\r\n // color enforcement:)\r\n if (this.prod.IsCAF) {\r\n this.process_color_restrictions();\r\n if (this.pcs.ep_id > 0) {\r\n this.pcs.ep_id = this.give_ep_color_id(this.pcs.ep_id);\r\n }\r\n this.pcs.ep_id_view = this.give_ep_color_id(this.pcs.ep_id_view);\r\n\r\n if (this.pcs.lino_id > 0) {\r\n if (!this.pcs.ins_gold_allowed && s.pcs.lino_dyf_color === 'gold') {\r\n if (this.pcs.ins_silver_allowed) {\r\n s.pcs.lino_dyf_color = 'silver';\r\n }\r\n if (this.pcs.ins_black_allowed) {\r\n s.pcs.lino_dyf_color = 'black';\r\n }\r\n } else if (!this.pcs.ins_silver_allowed && s.pcs.lino_dyf_color === 'silver') {\r\n if (this.pcs.ins_black_allowed) {\r\n s.pcs.lino_dyf_color = 'black';\r\n }\r\n if (this.pcs.ins_gold_allowed) {\r\n s.pcs.lino_dyf_color = 'gold';\r\n }\r\n } else if (!this.pcs.ins_black_allowed && s.pcs.lino_dyf_color === 'black') {\r\n if (this.pcs.ins_gold_allowed) {\r\n s.pcs.lino_dyf_color = 'gold';\r\n }\r\n if (this.pcs.ins_silver_allowed) {\r\n s.pcs.lino_dyf_color = 'silver';\r\n }\r\n }\r\n }\r\n\r\n if (this.pcs.insignia_id > 0) {\r\n let oldColor = s.pcs.insignia_dyf_color;\r\n let assignedName = '';\r\n // console.log(oldColor);\r\n if (!this.pcs.ins_gold_allowed && s.pcs.insignia_dyf_color === 'gold') {\r\n if (this.pcs.ins_silver_allowed) {\r\n s.pcs.insignia_dyf_color = 'silver';\r\n if (assignedName === '') {\r\n assignedName = 'silver';\r\n }\r\n }\r\n if (this.pcs.ins_black_allowed) {\r\n s.pcs.insignia_dyf_color = 'black';\r\n if (assignedName === '') {\r\n assignedName = 'black';\r\n }\r\n }\r\n } else if (!this.pcs.ins_silver_allowed && s.pcs.insignia_dyf_color === 'silver') {\r\n if (this.pcs.ins_black_allowed) {\r\n s.pcs.insignia_dyf_color = 'black';\r\n if (assignedName === '') {\r\n assignedName = 'black';\r\n }\r\n }\r\n if (this.pcs.ins_gold_allowed) {\r\n s.pcs.insignia_dyf_color = 'gold';\r\n if (assignedName === '') {\r\n assignedName = 'gold';\r\n }\r\n }\r\n } else if (!this.pcs.ins_black_allowed && s.pcs.insignia_dyf_color === 'black') {\r\n // console.log('black - ');\r\n if (this.pcs.ins_gold_allowed) {\r\n s.pcs.insignia_dyf_color = 'gold';\r\n if (assignedName === '') {\r\n assignedName = 'gold';\r\n console.log('gold a - ');\r\n }\r\n }\r\n if (this.pcs.ins_silver_allowed) {\r\n s.pcs.insignia_dyf_color = 'silver';\r\n if (assignedName === '') {\r\n assignedName = 'silver';\r\n }\r\n }\r\n }\r\n\r\n if (assignedName !== '') {\r\n let newName = this.pcs.insignia_base_name\r\n .toLowerCase()\r\n .replace(oldColor, assignedName);\r\n let new_ins = this.prod.insignias.filter(x => x.name.toLowerCase() === newName);\r\n\r\n if (new_ins && new_ins.length > 0) {\r\n this.pcs.insignia_id = new_ins[0].id;\r\n this.pcs.insignia_base_name = new_ins[0].name;\r\n this.pcs.insignia_is_dyf = new_ins[0].isCAF;\r\n this.ui.name_insignia = new_ins[0].name.toLowerCase();\r\n this.ui.title_insignia = new_ins[0].title;\r\n this.ui.doRender = true;\r\n } else {\r\n this.pcs.insignia_id = -1;\r\n this.ui.title_insignia = '';\r\n this.ui.doRender = true;\r\n }\r\n }\r\n }\r\n\r\n if (\r\n this.pcs.insignia_id > 0 &&\r\n s.ui.linen &&\r\n s.pcs.insignia_base_name.toLowerCase().includes('embossed')\r\n ) {\r\n this.pcs.insignia_id = -1;\r\n this.ui.title_insignia = '';\r\n this.ui.doRender = true;\r\n }\r\n }\r\n\r\n if (this.ui.doRender || forceRender) {\r\n this.pcs.css = r.render(this.prod.orig_pcs, util.RenderType.Normal);\r\n this.glass_update();\r\n this.setUI();\r\n }\r\n if (this.ui.update_pricing) {\r\n this.ui.update_pricing = false;\r\n pricing();\r\n }\r\n if (this.ui.update_doc_sizes) {\r\n updateShippingBoxID();\r\n }\r\n\r\n this.ui.show_atc = true;\r\n this.ui.is_bo = false;\r\n this.ui.bo_msg = '';\r\n if (this.si.StoreTypeID === 5 && this.isRetail) {\r\n this.ui.show_atc = false;\r\n this.ui.show_pricing = false;\r\n } else if (this.isRetail && this.prod && this.prod.BO_Single) {\r\n this.ui.show_atc = false;\r\n this.ui.is_bo = true;\r\n this.ui.bo_msg = s.prod.BO_OverrideText;\r\n } else if (\r\n (this.isRetail || this.prod.IsBO_MyFrames) &&\r\n this.prod.BO_Text !== '' &&\r\n this.prod.BO_FramePartID === this.pcs.moulding_id\r\n ) {\r\n this.ui.show_atc = false;\r\n this.ui.is_bo = true;\r\n this.ui.bo_msg = s.prod.BO_Text;\r\n } else if (!this.isRetail && this.prod.BO_MyFramesText !== '') {\r\n this.ui.show_atc = false;\r\n this.ui.is_bo = true;\r\n this.ui.bo_msg = this.prod.BO_MyFramesText;\r\n }\r\n\r\n if (this.prod && this.prod.docWidth > 0) {\r\n this.ppi_w = this.prod.docWidth * 150;\r\n this.ppi_h = this.prod.docHeight * 150;\r\n this.ppi_w_max = this.prod.docWidth * 300;\r\n this.ppi_h_max = this.prod.docHeight * 300;\r\n }\r\n };\r\n\r\n @action\r\n pulse_product = () => {\r\n this.ui.sku = this.ui.item_id === this.pcs.base_item_id ? this.si.SKU : '';\r\n this.ui.item_id = `${this.pcs.customized_core ? 'C' : ''}${this.pcs.customized_glass ? 'G' : ''}${this.pcs.base_item_id}`;\r\n this.pcs.DocSizeTierID = r.Get_DocumentSizeTierID(\r\n this.pcs.docWidth,\r\n this.pcs.docHeight,\r\n this.prod.ProductTypeID,\r\n );\r\n\r\n // if(this.ui.mat_change){\r\n // this.ui.mat_change = false;\r\n // const m = s.prod.mats.filter(m => m.id === this.pcs.matcombo_id)[0];\r\n // this.pcs.css.pmat_BackgroundImage = this.pcs.css.pmat_BackgroundImage.replace(/(v2\\/)(.*)(_)/g, `v2/${m.pmat_name.toLowerCase()}_`);\r\n\r\n // const isFillet = (m.mat2_id === 36 || m.mat1_id === 38);\r\n // this.pcs.css.fillet_visible = isFillet;\r\n // const smat = `#${m.smat_color}`;\r\n // this.pcs.css.doc1_smat_backgroundColor = smat;\r\n // this.pcs.css.doc2_smat_backgroundColor = smat;\r\n // this.pcs.css.tassel_smat_backgroundColor = smat;\r\n // this.pcs.css.varsity_smat_backgroundColor = smat;\r\n // this.pcs.css.oval_smat_backgroundColor = smat;\r\n // this.pcs.css.spirit_smat_bg = smat;\r\n\r\n // if(isFillet){\r\n\r\n // } else {\r\n\r\n // }\r\n // }\r\n\r\n // this.ui.price = this.isRetail ? this.si.price_Retail : this.si.price_Wholesale;\r\n };\r\n\r\n @action\r\n pulse_caf = () => {\r\n this.pcs.DocSizeTierID = r.Get_DocumentSizeTierID(\r\n this.pcs.docWidth,\r\n this.pcs.docHeight,\r\n this.prod.ProductTypeID,\r\n );\r\n };\r\n\r\n @action\r\n glass_update = () => {\r\n for (let i = 0; i < this.glass.length; i++) {\r\n this.glass[i].price = util\r\n .currency_noNegatives(\r\n r.getGlassPrice(this.prod.orig_pcs, s.pcs.DocSizeTierID, this.glass[i].id),\r\n )\r\n .replace('.00', '');\r\n }\r\n };\r\n\r\n @action\r\n process_color_restrictions = () => {\r\n if (!this.prod.IsCAF) {\r\n return;\r\n }\r\n const mat = s.prod.caf_mat1.filter(x => x.id === s.pcs.mat1_id)[0];\r\n const m = s.prod.mouldings.filter(x => x.id === s.pcs.moulding_id)[0];\r\n // console.log(m.dyf_color);\r\n if (mat && m) {\r\n this.pcs.ins_gold_allowed = mat.ins_gold_allowed && m.dyf_color !== 'no gold';\r\n this.pcs.ins_silver_allowed = mat.ins_silver_allowed && m.dyf_color !== 'no silver';\r\n this.pcs.ins_black_allowed = mat.ins_black_allowed && m.dyf_color !== 'no black';\r\n }\r\n };\r\n\r\n @action\r\n setUI = () => {\r\n const moulding = s.prod.mouldings.filter(m => m.id === s.pcs.moulding_id)[0];\r\n\r\n const _glass = s.glass.filter(m => m.id === this.pcs.glass_id)[0];\r\n\r\n if (moulding) {\r\n this.ui.name_moulding = moulding.name.toLowerCase();\r\n this.ui.title_moulding = moulding.title;\r\n\r\n this.ui.moulding_has_zoom = moulding.has_zoom;\r\n this.ui.moulding_zoom_path = moulding.IMG_Zoom;\r\n this.ui.moulding_zoom_path_th = moulding.IMG_Zoom_Thumb;\r\n }\r\n if (this.pcs.is_caf) {\r\n this.ui.moulding_has_zoom = true;\r\n }\r\n\r\n if (!this.pcs.is_caf) {\r\n const mat = s.prod.mats.filter(m => m.id === s.pcs.matcombo_id)[0];\r\n if (mat) {\r\n this.ui.name_mat1 = mat.pmat_name.toLowerCase();\r\n this.ui.name_mat2 = mat.smat_name.toLowerCase();\r\n\r\n this.ui.title_mat_combo = mat.title;\r\n this.ui.title_mat1 = mat.pmat_title;\r\n this.ui.title_mat2 = mat.smat_title;\r\n\r\n this.ui.color_mat1 = mat.pmat_color;\r\n this.ui.color_mat2 = mat.smat_color;\r\n }\r\n } else {\r\n const m1 = s.prod.caf_mat1.filter(m => m.id === s.pcs.mat1_id)[0];\r\n const m2 = s.prod.caf_mat2.filter(m => m.id === s.pcs.mat2_id)[0];\r\n if (m1) {\r\n this.ui.name_mat1 = m1.name.toLowerCase();\r\n this.ui.title_mat1 = m1.title;\r\n this.ui.color_mat1 = m1.mat_color;\r\n }\r\n if (m2) {\r\n this.ui.name_mat2 = m2.name.toLowerCase();\r\n this.ui.title_mat2 = m2.title;\r\n this.ui.color_mat2 = m2.mat_color;\r\n }\r\n }\r\n\r\n if (_glass) {\r\n this.ui.name_glass = _glass.title;\r\n }\r\n };\r\n\r\n blankFunction = () => {\r\n const x = 1;\r\n };\r\n\r\n closeTooltips = () => {\r\n setTimeout(function () {}, 1500);\r\n };\r\n}\r\n\r\nconst s = new ProdStore();\r\nexport default s;\r\n","declare var _openLinkTimer: any;\r\ndeclare var window: any;\r\ndeclare const modalOpen: (id: string) => void;\r\ndeclare var __portal: IPortalSettings;\r\n\r\nexport const isNullOrWhiteSpace = (str: string): boolean =>\r\n !str || str === null || str.match(/^\\s*$/) !== null;\r\nexport const currency = (_z: number): string =>\r\n _z == undefined ? '$0.00' : `\\$${_z.toFixed(2).replace(/\\d(?=(\\d{3})+\\.)/g, '$&,')}`;\r\nexport const currency_noNegatives = (_z: number): string =>\r\n _z == undefined\r\n ? '$0.00'\r\n : `\\$${(_z < 0 ? 0 : _z).toFixed(2).replace(/\\d(?=(\\d{3})+\\.)/g, '$&,')}`;\r\n\r\nexport enum ValidationMessages {\r\n TooShort = 'Entry is too short, please lengthen your entry',\r\n TooLong = 'Entry is too long, please shorten your entry',\r\n}\r\n\r\nexport enum RenderType {\r\n Normal = 1,\r\n Zoom,\r\n Popout,\r\n Other,\r\n}\r\n\r\ndeclare global {\r\n // tslint:disable-next-line\r\n interface String {\r\n truncate(n: number, useDots: boolean): string;\r\n }\r\n}\r\n\r\nString.prototype.truncate = function (this: string, n: number, useDots: boolean = false) {\r\n return this.substr(0, n - 1) + (useDots && this.length > n ? '…' : '');\r\n};\r\n\r\nexport const isInputError = (v: IValidationObject) => v.isError && v.alive;\r\nexport const setInputError = (v: IValidationObject, msg: string) => {\r\n v.msg = msg;\r\n v.alive = true;\r\n v.isError = true;\r\n};\r\n\r\nexport const getPhoneNumberFormatted = (_p: string) => {\r\n const cleaned = `${_p}`.replace(/\\D/g, '');\r\n const match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/);\r\n if (match) {\r\n return `(${match[1]}) ${match[2]}-${match[3]}`;\r\n }\r\n return _p;\r\n};\r\n\r\nexport const getPhoneHREF = () => {\r\n return __portal.CustomerServicePhone.replace(/\\D/g, '');\r\n};\r\n\r\nexport const roundF = (value: number, precision: number) => {\r\n var multiplier = Math.pow(10, precision || 0);\r\n return Math.round(value * multiplier) / multiplier;\r\n};\r\n\r\nexport const toTitleCase = (str: string) =>\r\n str.replace(/\\w\\S*/g, txt => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase());\r\nexport const suggIsNumeric = n => !isNaN(parseFloat(n)) && isFinite(n);\r\n\r\n/* tslint:disable:no-unnecessary-callback-wrapper */\r\nwindow.openLink = (_url: string, _blank?: boolean) => openLink(_url, _blank);\r\n/* tslint:enable:no-unnecessary-callback-wrapper */\r\nexport const openLink = (_url: string, _blank?: boolean) => {\r\n try {\r\n if (_openLinkTimer != undefined) {\r\n clearTimeout(_openLinkTimer);\r\n }\r\n if (typeof _url === 'undefined') {\r\n return;\r\n }\r\n if (typeof _blank !== 'undefined') {\r\n window.open(_url, '_newtab');\r\n } else {\r\n document.location = _url;\r\n }\r\n } catch (err) {\r\n if (_url != undefined) {\r\n document.location = _url;\r\n }\r\n }\r\n};\r\n\r\nexport const modal = _id => {\r\n modalOpen(_id);\r\n};\r\n\r\nexport const debounce = (func: any, delay: number) => {\r\n let timer: any;\r\n return function (event: any) {\r\n if (timer) clearTimeout(timer);\r\n timer = setTimeout(func, delay, event);\r\n };\r\n};\r\n\r\nexport const getParameterByName = (name: string, url = window.location.href) => {\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n var regex = new RegExp(`[?&]${name}(=([^&#]*)|&|#|$)`),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n};\r\n\r\nexport const ariaPulse = () => {\r\n const caro_prev: HTMLElement[] = [].slice.call(\r\n document.getElementsByClassName('swiper-button-prev') as HTMLCollectionOf,\r\n );\r\n const caro_next: HTMLElement[] = [].slice.call(\r\n document.getElementsByClassName('swiper-button-next') as HTMLCollectionOf,\r\n );\r\n caro_prev.map(x => (x.ariaLabel = 'previous'));\r\n caro_next.map(x => (x.ariaLabel = 'next'));\r\n};\r\n\r\nexport const prod_entity_zoom_open = (\r\n _id: string,\r\n sender: HTMLElement,\r\n offset_top: number,\r\n offset_left: number,\r\n _w: string,\r\n _h: string,\r\n _title: string,\r\n _desc: string,\r\n _color?: string,\r\n) => {\r\n const rect = sender.getBoundingClientRect();\r\n const div = document.createElement('div');\r\n const p = document.createElement('div');\r\n const p2 = document.createElement('div');\r\n const img = document.createElement('img');\r\n console.log(rect);\r\n // console.log(sender);\r\n if (_color) {\r\n img.style.backgroundColor = `#${_color}`;\r\n }\r\n img.src = sender.getAttribute('data-img') as string;\r\n div.className = 'prod-img-zoom';\r\n div.style.width = _w;\r\n\r\n img.style.width = _w;\r\n img.style.height = _h;\r\n div.style.top = `${Math.floor(rect.top) + offset_top - 10}px`;\r\n div.style.left = `${Math.floor(rect.left) + offset_left}px`;\r\n // console.log(rect.top, div.style.top, offset_top);\r\n p.innerText = _title;\r\n p2.innerText = _desc;\r\n div.appendChild(img);\r\n if (_title && _title.length > 0) {\r\n div.appendChild(p);\r\n }\r\n if (_desc && _desc.length > 0) {\r\n div.appendChild(p2);\r\n }\r\n (document.getElementById('prod-wrapper') as HTMLElement).appendChild(div);\r\n // (document.getElementById(_id) as HTMLElement).appendChild(div);\r\n //moulding-inner\r\n sender.appendChild(div);\r\n};\r\n\r\nexport const prod_entity_zoom_destroy = () => {\r\n const modals = document.getElementsByClassName(\r\n 'prod-img-zoom',\r\n ) as HTMLCollectionOf;\r\n for (let i = 0; i < modals.length; i++) {\r\n modals[i].remove();\r\n }\r\n};\r\n\r\nexport const webp = (s: string): string => {\r\n return s.toLowerCase().replace('.jpg', '.webp').replace('.png', '.webp').replace(/ /g, '%20');\r\n};\r\n\r\nexport const getCookieValue = (s: string): string => {\r\n let cookieName = `${s}=`;\r\n let cookies = document.cookie.split(';');\r\n for (let i = 0; i < cookies.length; i++) {\r\n let cookie = cookies[i].trim();\r\n if (cookie.indexOf(cookieName) === 0) {\r\n return cookie.substring(cookieName.length, cookie.length);\r\n }\r\n }\r\n return '';\r\n};\r\n","// extracted by mini-css-extract-plugin\n if(module.hot) {\n (function() {\n var localsJsonString = undefined;\n // 1737748801974\n var cssReload = require(\"../../node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"esModule\":false});\n // only invalidate when locals change\n if (\n module.hot.data &&\n module.hot.data.value &&\n module.hot.data.value !== localsJsonString\n ) {\n module.hot.invalidate();\n } else {\n module.hot.accept();\n }\n module.hot.dispose(function(data) {\n data.value = localsJsonString;\n cssReload();\n });\n })();\n }\n ","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\tif (cachedModule.error !== undefined) throw cachedModule.error;\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\ttry {\n\t\tvar execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ };\n\t\t__webpack_require__.i.forEach(function(handler) { handler(execOptions); });\n\t\tmodule = execOptions.module;\n\t\texecOptions.factory.call(module.exports, module, module.exports, execOptions.require);\n\t} catch(e) {\n\t\tmodule.error = e;\n\t\tthrow e;\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n// expose the module execution interceptor\n__webpack_require__.i = [];\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// This function allow to reference all chunks\n__webpack_require__.hu = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + __webpack_require__.h() + \".hot-update.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.hmrF = function() { return \"product.\" + __webpack_require__.h() + \".hot-update.json\"; };","__webpack_require__.h = function() { return \"c6cc3571f8386ae3eb5b\"; }","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.j = 964;","var currentModuleData = {};\nvar installedModules = __webpack_require__.c;\n\n// module and require creation\nvar currentChildModule;\nvar currentParents = [];\n\n// status\nvar registeredStatusHandlers = [];\nvar currentStatus = \"idle\";\n\n// while downloading\nvar blockingPromises = 0;\nvar blockingPromisesWaiting = [];\n\n// The update info\nvar currentUpdateApplyHandlers;\nvar queuedInvalidatedModules;\n\n__webpack_require__.hmrD = currentModuleData;\n\n__webpack_require__.i.push(function (options) {\n\tvar module = options.module;\n\tvar require = createRequire(options.require, options.id);\n\tmodule.hot = createModuleHotObject(options.id, module);\n\tmodule.parents = currentParents;\n\tmodule.children = [];\n\tcurrentParents = [];\n\toptions.require = require;\n});\n\n__webpack_require__.hmrC = {};\n__webpack_require__.hmrI = {};\n\nfunction createRequire(require, moduleId) {\n\tvar me = installedModules[moduleId];\n\tif (!me) return require;\n\tvar fn = function (request) {\n\t\tif (me.hot.active) {\n\t\t\tif (installedModules[request]) {\n\t\t\t\tvar parents = installedModules[request].parents;\n\t\t\t\tif (parents.indexOf(moduleId) === -1) {\n\t\t\t\t\tparents.push(moduleId);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcurrentParents = [moduleId];\n\t\t\t\tcurrentChildModule = request;\n\t\t\t}\n\t\t\tif (me.children.indexOf(request) === -1) {\n\t\t\t\tme.children.push(request);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn(\n\t\t\t\t\"[HMR] unexpected require(\" +\n\t\t\t\t\trequest +\n\t\t\t\t\t\") from disposed module \" +\n\t\t\t\t\tmoduleId\n\t\t\t);\n\t\t\tcurrentParents = [];\n\t\t}\n\t\treturn require(request);\n\t};\n\tvar createPropertyDescriptor = function (name) {\n\t\treturn {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn require[name];\n\t\t\t},\n\t\t\tset: function (value) {\n\t\t\t\trequire[name] = value;\n\t\t\t}\n\t\t};\n\t};\n\tfor (var name in require) {\n\t\tif (Object.prototype.hasOwnProperty.call(require, name) && name !== \"e\") {\n\t\t\tObject.defineProperty(fn, name, createPropertyDescriptor(name));\n\t\t}\n\t}\n\tfn.e = function (chunkId, fetchPriority) {\n\t\treturn trackBlockingPromise(require.e(chunkId, fetchPriority));\n\t};\n\treturn fn;\n}\n\nfunction createModuleHotObject(moduleId, me) {\n\tvar _main = currentChildModule !== moduleId;\n\tvar hot = {\n\t\t// private stuff\n\t\t_acceptedDependencies: {},\n\t\t_acceptedErrorHandlers: {},\n\t\t_declinedDependencies: {},\n\t\t_selfAccepted: false,\n\t\t_selfDeclined: false,\n\t\t_selfInvalidated: false,\n\t\t_disposeHandlers: [],\n\t\t_main: _main,\n\t\t_requireSelf: function () {\n\t\t\tcurrentParents = me.parents.slice();\n\t\t\tcurrentChildModule = _main ? undefined : moduleId;\n\t\t\t__webpack_require__(moduleId);\n\t\t},\n\n\t\t// Module API\n\t\tactive: true,\n\t\taccept: function (dep, callback, errorHandler) {\n\t\t\tif (dep === undefined) hot._selfAccepted = true;\n\t\t\telse if (typeof dep === \"function\") hot._selfAccepted = dep;\n\t\t\telse if (typeof dep === \"object\" && dep !== null) {\n\t\t\t\tfor (var i = 0; i < dep.length; i++) {\n\t\t\t\t\thot._acceptedDependencies[dep[i]] = callback || function () {};\n\t\t\t\t\thot._acceptedErrorHandlers[dep[i]] = errorHandler;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thot._acceptedDependencies[dep] = callback || function () {};\n\t\t\t\thot._acceptedErrorHandlers[dep] = errorHandler;\n\t\t\t}\n\t\t},\n\t\tdecline: function (dep) {\n\t\t\tif (dep === undefined) hot._selfDeclined = true;\n\t\t\telse if (typeof dep === \"object\" && dep !== null)\n\t\t\t\tfor (var i = 0; i < dep.length; i++)\n\t\t\t\t\thot._declinedDependencies[dep[i]] = true;\n\t\t\telse hot._declinedDependencies[dep] = true;\n\t\t},\n\t\tdispose: function (callback) {\n\t\t\thot._disposeHandlers.push(callback);\n\t\t},\n\t\taddDisposeHandler: function (callback) {\n\t\t\thot._disposeHandlers.push(callback);\n\t\t},\n\t\tremoveDisposeHandler: function (callback) {\n\t\t\tvar idx = hot._disposeHandlers.indexOf(callback);\n\t\t\tif (idx >= 0) hot._disposeHandlers.splice(idx, 1);\n\t\t},\n\t\tinvalidate: function () {\n\t\t\tthis._selfInvalidated = true;\n\t\t\tswitch (currentStatus) {\n\t\t\t\tcase \"idle\":\n\t\t\t\t\tcurrentUpdateApplyHandlers = [];\n\t\t\t\t\tObject.keys(__webpack_require__.hmrI).forEach(function (key) {\n\t\t\t\t\t\t__webpack_require__.hmrI[key](\n\t\t\t\t\t\t\tmoduleId,\n\t\t\t\t\t\t\tcurrentUpdateApplyHandlers\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t\tsetStatus(\"ready\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"ready\":\n\t\t\t\t\tObject.keys(__webpack_require__.hmrI).forEach(function (key) {\n\t\t\t\t\t\t__webpack_require__.hmrI[key](\n\t\t\t\t\t\t\tmoduleId,\n\t\t\t\t\t\t\tcurrentUpdateApplyHandlers\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"prepare\":\n\t\t\t\tcase \"check\":\n\t\t\t\tcase \"dispose\":\n\t\t\t\tcase \"apply\":\n\t\t\t\t\t(queuedInvalidatedModules = queuedInvalidatedModules || []).push(\n\t\t\t\t\t\tmoduleId\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t// ignore requests in error states\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\t// Management API\n\t\tcheck: hotCheck,\n\t\tapply: hotApply,\n\t\tstatus: function (l) {\n\t\t\tif (!l) return currentStatus;\n\t\t\tregisteredStatusHandlers.push(l);\n\t\t},\n\t\taddStatusHandler: function (l) {\n\t\t\tregisteredStatusHandlers.push(l);\n\t\t},\n\t\tremoveStatusHandler: function (l) {\n\t\t\tvar idx = registeredStatusHandlers.indexOf(l);\n\t\t\tif (idx >= 0) registeredStatusHandlers.splice(idx, 1);\n\t\t},\n\n\t\t// inherit from previous dispose call\n\t\tdata: currentModuleData[moduleId]\n\t};\n\tcurrentChildModule = undefined;\n\treturn hot;\n}\n\nfunction setStatus(newStatus) {\n\tcurrentStatus = newStatus;\n\tvar results = [];\n\n\tfor (var i = 0; i < registeredStatusHandlers.length; i++)\n\t\tresults[i] = registeredStatusHandlers[i].call(null, newStatus);\n\n\treturn Promise.all(results).then(function () {});\n}\n\nfunction unblock() {\n\tif (--blockingPromises === 0) {\n\t\tsetStatus(\"ready\").then(function () {\n\t\t\tif (blockingPromises === 0) {\n\t\t\t\tvar list = blockingPromisesWaiting;\n\t\t\t\tblockingPromisesWaiting = [];\n\t\t\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\t\t\tlist[i]();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction trackBlockingPromise(promise) {\n\tswitch (currentStatus) {\n\t\tcase \"ready\":\n\t\t\tsetStatus(\"prepare\");\n\t\t/* fallthrough */\n\t\tcase \"prepare\":\n\t\t\tblockingPromises++;\n\t\t\tpromise.then(unblock, unblock);\n\t\t\treturn promise;\n\t\tdefault:\n\t\t\treturn promise;\n\t}\n}\n\nfunction waitForBlockingPromises(fn) {\n\tif (blockingPromises === 0) return fn();\n\treturn new Promise(function (resolve) {\n\t\tblockingPromisesWaiting.push(function () {\n\t\t\tresolve(fn());\n\t\t});\n\t});\n}\n\nfunction hotCheck(applyOnUpdate) {\n\tif (currentStatus !== \"idle\") {\n\t\tthrow new Error(\"check() is only allowed in idle status\");\n\t}\n\treturn setStatus(\"check\")\n\t\t.then(__webpack_require__.hmrM)\n\t\t.then(function (update) {\n\t\t\tif (!update) {\n\t\t\t\treturn setStatus(applyInvalidatedModules() ? \"ready\" : \"idle\").then(\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn setStatus(\"prepare\").then(function () {\n\t\t\t\tvar updatedModules = [];\n\t\t\t\tcurrentUpdateApplyHandlers = [];\n\n\t\t\t\treturn Promise.all(\n\t\t\t\t\tObject.keys(__webpack_require__.hmrC).reduce(function (\n\t\t\t\t\t\tpromises,\n\t\t\t\t\t\tkey\n\t\t\t\t\t) {\n\t\t\t\t\t\t__webpack_require__.hmrC[key](\n\t\t\t\t\t\t\tupdate.c,\n\t\t\t\t\t\t\tupdate.r,\n\t\t\t\t\t\t\tupdate.m,\n\t\t\t\t\t\t\tpromises,\n\t\t\t\t\t\t\tcurrentUpdateApplyHandlers,\n\t\t\t\t\t\t\tupdatedModules\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn promises;\n\t\t\t\t\t}, [])\n\t\t\t\t).then(function () {\n\t\t\t\t\treturn waitForBlockingPromises(function () {\n\t\t\t\t\t\tif (applyOnUpdate) {\n\t\t\t\t\t\t\treturn internalApply(applyOnUpdate);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn setStatus(\"ready\").then(function () {\n\t\t\t\t\t\t\treturn updatedModules;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n}\n\nfunction hotApply(options) {\n\tif (currentStatus !== \"ready\") {\n\t\treturn Promise.resolve().then(function () {\n\t\t\tthrow new Error(\n\t\t\t\t\"apply() is only allowed in ready status (state: \" +\n\t\t\t\t\tcurrentStatus +\n\t\t\t\t\t\")\"\n\t\t\t);\n\t\t});\n\t}\n\treturn internalApply(options);\n}\n\nfunction internalApply(options) {\n\toptions = options || {};\n\n\tapplyInvalidatedModules();\n\n\tvar results = currentUpdateApplyHandlers.map(function (handler) {\n\t\treturn handler(options);\n\t});\n\tcurrentUpdateApplyHandlers = undefined;\n\n\tvar errors = results\n\t\t.map(function (r) {\n\t\t\treturn r.error;\n\t\t})\n\t\t.filter(Boolean);\n\n\tif (errors.length > 0) {\n\t\treturn setStatus(\"abort\").then(function () {\n\t\t\tthrow errors[0];\n\t\t});\n\t}\n\n\t// Now in \"dispose\" phase\n\tvar disposePromise = setStatus(\"dispose\");\n\n\tresults.forEach(function (result) {\n\t\tif (result.dispose) result.dispose();\n\t});\n\n\t// Now in \"apply\" phase\n\tvar applyPromise = setStatus(\"apply\");\n\n\tvar error;\n\tvar reportError = function (err) {\n\t\tif (!error) error = err;\n\t};\n\n\tvar outdatedModules = [];\n\tresults.forEach(function (result) {\n\t\tif (result.apply) {\n\t\t\tvar modules = result.apply(reportError);\n\t\t\tif (modules) {\n\t\t\t\tfor (var i = 0; i < modules.length; i++) {\n\t\t\t\t\toutdatedModules.push(modules[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn Promise.all([disposePromise, applyPromise]).then(function () {\n\t\t// handle errors in accept handlers and self accepted module load\n\t\tif (error) {\n\t\t\treturn setStatus(\"fail\").then(function () {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}\n\n\t\tif (queuedInvalidatedModules) {\n\t\t\treturn internalApply(options).then(function (list) {\n\t\t\t\toutdatedModules.forEach(function (moduleId) {\n\t\t\t\t\tif (list.indexOf(moduleId) < 0) list.push(moduleId);\n\t\t\t\t});\n\t\t\t\treturn list;\n\t\t\t});\n\t\t}\n\n\t\treturn setStatus(\"idle\").then(function () {\n\t\t\treturn outdatedModules;\n\t\t});\n\t});\n}\n\nfunction applyInvalidatedModules() {\n\tif (queuedInvalidatedModules) {\n\t\tif (!currentUpdateApplyHandlers) currentUpdateApplyHandlers = [];\n\t\tObject.keys(__webpack_require__.hmrI).forEach(function (key) {\n\t\t\tqueuedInvalidatedModules.forEach(function (moduleId) {\n\t\t\t\t__webpack_require__.hmrI[key](\n\t\t\t\t\tmoduleId,\n\t\t\t\t\tcurrentUpdateApplyHandlers\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t\tqueuedInvalidatedModules = undefined;\n\t\treturn true;\n\t}\n}","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// no chunk loading\n\nvar oldTags = [];\nvar newTags = [];\nvar applyHandler = function(options) {\n\treturn { dispose: function() {\n\t\tfor(var i = 0; i < oldTags.length; i++) {\n\t\t\tvar oldTag = oldTags[i];\n\t\t\tif(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);\n\t\t}\n\t\toldTags.length = 0;\n\t}, apply: function() {\n\t\tfor(var i = 0; i < newTags.length; i++) newTags[i].rel = \"stylesheet\";\n\t\tnewTags.length = 0;\n\t} };\n}\n__webpack_require__.hmrC.miniCss = function(chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList) {\n\tapplyHandlers.push(applyHandler);\n\tchunkIds.forEach(function(chunkId) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tvar oldTag = findStylesheet(href, fullhref);\n\t\tif(!oldTag) return;\n\t\tpromises.push(new Promise(function(resolve, reject) {\n\t\t\tvar tag = createStylesheet(chunkId, fullhref, oldTag, function() {\n\t\t\t\ttag.as = \"style\";\n\t\t\t\ttag.rel = \"preload\";\n\t\t\t\tresolve();\n\t\t\t}, reject);\n\t\t\toldTags.push(oldTag);\n\t\t\tnewTags.push(tag);\n\t\t}));\n\t});\n}\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = __webpack_require__.hmrS_jsonp = __webpack_require__.hmrS_jsonp || {\n\t964: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\nvar currentUpdatedModulesList;\nvar waitingUpdateResolves = {};\nfunction loadUpdateChunk(chunkId, updatedModulesList) {\n\tcurrentUpdatedModulesList = updatedModulesList;\n\treturn new Promise(function(resolve, reject) {\n\t\twaitingUpdateResolves[chunkId] = resolve;\n\t\t// start update chunk loading\n\t\tvar url = __webpack_require__.p + __webpack_require__.hu(chunkId);\n\t\t// create error before stack unwound to get useful stacktrace later\n\t\tvar error = new Error();\n\t\tvar loadingEnded = function(event) {\n\t\t\tif(waitingUpdateResolves[chunkId]) {\n\t\t\t\twaitingUpdateResolves[chunkId] = undefined\n\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\terror.message = 'Loading hot update chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\terror.type = errorType;\n\t\t\t\terror.request = realSrc;\n\t\t\t\treject(error);\n\t\t\t}\n\t\t};\n\t\t__webpack_require__.l(url, loadingEnded);\n\t});\n}\n\nself[\"webpackHotUpdatereacttest2018\"] = function(chunkId, moreModules, runtime) {\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\tcurrentUpdate[moduleId] = moreModules[moduleId];\n\t\t\tif(currentUpdatedModulesList) currentUpdatedModulesList.push(moduleId);\n\t\t}\n\t}\n\tif(runtime) currentUpdateRuntime.push(runtime);\n\tif(waitingUpdateResolves[chunkId]) {\n\t\twaitingUpdateResolves[chunkId]();\n\t\twaitingUpdateResolves[chunkId] = undefined;\n\t}\n};\n\nvar currentUpdateChunks;\nvar currentUpdate;\nvar currentUpdateRemovedChunks;\nvar currentUpdateRuntime;\nfunction applyHandler(options) {\n\tif (__webpack_require__.f) delete __webpack_require__.f.jsonpHmr;\n\tcurrentUpdateChunks = undefined;\n\tfunction getAffectedModuleEffects(updateModuleId) {\n\t\tvar outdatedModules = [updateModuleId];\n\t\tvar outdatedDependencies = {};\n\n\t\tvar queue = outdatedModules.map(function (id) {\n\t\t\treturn {\n\t\t\t\tchain: [id],\n\t\t\t\tid: id\n\t\t\t};\n\t\t});\n\t\twhile (queue.length > 0) {\n\t\t\tvar queueItem = queue.pop();\n\t\t\tvar moduleId = queueItem.id;\n\t\t\tvar chain = queueItem.chain;\n\t\t\tvar module = __webpack_require__.c[moduleId];\n\t\t\tif (\n\t\t\t\t!module ||\n\t\t\t\t(module.hot._selfAccepted && !module.hot._selfInvalidated)\n\t\t\t)\n\t\t\t\tcontinue;\n\t\t\tif (module.hot._selfDeclined) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"self-declined\",\n\t\t\t\t\tchain: chain,\n\t\t\t\t\tmoduleId: moduleId\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (module.hot._main) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"unaccepted\",\n\t\t\t\t\tchain: chain,\n\t\t\t\t\tmoduleId: moduleId\n\t\t\t\t};\n\t\t\t}\n\t\t\tfor (var i = 0; i < module.parents.length; i++) {\n\t\t\t\tvar parentId = module.parents[i];\n\t\t\t\tvar parent = __webpack_require__.c[parentId];\n\t\t\t\tif (!parent) continue;\n\t\t\t\tif (parent.hot._declinedDependencies[moduleId]) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: \"declined\",\n\t\t\t\t\t\tchain: chain.concat([parentId]),\n\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\tparentId: parentId\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (outdatedModules.indexOf(parentId) !== -1) continue;\n\t\t\t\tif (parent.hot._acceptedDependencies[moduleId]) {\n\t\t\t\t\tif (!outdatedDependencies[parentId])\n\t\t\t\t\t\toutdatedDependencies[parentId] = [];\n\t\t\t\t\taddAllToSet(outdatedDependencies[parentId], [moduleId]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tdelete outdatedDependencies[parentId];\n\t\t\t\toutdatedModules.push(parentId);\n\t\t\t\tqueue.push({\n\t\t\t\t\tchain: chain.concat([parentId]),\n\t\t\t\t\tid: parentId\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\ttype: \"accepted\",\n\t\t\tmoduleId: updateModuleId,\n\t\t\toutdatedModules: outdatedModules,\n\t\t\toutdatedDependencies: outdatedDependencies\n\t\t};\n\t}\n\n\tfunction addAllToSet(a, b) {\n\t\tfor (var i = 0; i < b.length; i++) {\n\t\t\tvar item = b[i];\n\t\t\tif (a.indexOf(item) === -1) a.push(item);\n\t\t}\n\t}\n\n\t// at begin all updates modules are outdated\n\t// the \"outdated\" status can propagate to parents if they don't accept the children\n\tvar outdatedDependencies = {};\n\tvar outdatedModules = [];\n\tvar appliedUpdate = {};\n\n\tvar warnUnexpectedRequire = function warnUnexpectedRequire(module) {\n\t\tconsole.warn(\n\t\t\t\"[HMR] unexpected require(\" + module.id + \") to disposed module\"\n\t\t);\n\t};\n\n\tfor (var moduleId in currentUpdate) {\n\t\tif (__webpack_require__.o(currentUpdate, moduleId)) {\n\t\t\tvar newModuleFactory = currentUpdate[moduleId];\n\t\t\t/** @type {TODO} */\n\t\t\tvar result = newModuleFactory\n\t\t\t\t? getAffectedModuleEffects(moduleId)\n\t\t\t\t: {\n\t\t\t\t\t\ttype: \"disposed\",\n\t\t\t\t\t\tmoduleId: moduleId\n\t\t\t\t\t};\n\t\t\t/** @type {Error|false} */\n\t\t\tvar abortError = false;\n\t\t\tvar doApply = false;\n\t\t\tvar doDispose = false;\n\t\t\tvar chainInfo = \"\";\n\t\t\tif (result.chain) {\n\t\t\t\tchainInfo = \"\\nUpdate propagation: \" + result.chain.join(\" -> \");\n\t\t\t}\n\t\t\tswitch (result.type) {\n\t\t\t\tcase \"self-declined\":\n\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n\t\t\t\t\tif (!options.ignoreDeclined)\n\t\t\t\t\t\tabortError = new Error(\n\t\t\t\t\t\t\t\"Aborted because of self decline: \" +\n\t\t\t\t\t\t\t\tresult.moduleId +\n\t\t\t\t\t\t\t\tchainInfo\n\t\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"declined\":\n\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n\t\t\t\t\tif (!options.ignoreDeclined)\n\t\t\t\t\t\tabortError = new Error(\n\t\t\t\t\t\t\t\"Aborted because of declined dependency: \" +\n\t\t\t\t\t\t\t\tresult.moduleId +\n\t\t\t\t\t\t\t\t\" in \" +\n\t\t\t\t\t\t\t\tresult.parentId +\n\t\t\t\t\t\t\t\tchainInfo\n\t\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"unaccepted\":\n\t\t\t\t\tif (options.onUnaccepted) options.onUnaccepted(result);\n\t\t\t\t\tif (!options.ignoreUnaccepted)\n\t\t\t\t\t\tabortError = new Error(\n\t\t\t\t\t\t\t\"Aborted because \" + moduleId + \" is not accepted\" + chainInfo\n\t\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"accepted\":\n\t\t\t\t\tif (options.onAccepted) options.onAccepted(result);\n\t\t\t\t\tdoApply = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"disposed\":\n\t\t\t\t\tif (options.onDisposed) options.onDisposed(result);\n\t\t\t\t\tdoDispose = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(\"Unexception type \" + result.type);\n\t\t\t}\n\t\t\tif (abortError) {\n\t\t\t\treturn {\n\t\t\t\t\terror: abortError\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (doApply) {\n\t\t\t\tappliedUpdate[moduleId] = newModuleFactory;\n\t\t\t\taddAllToSet(outdatedModules, result.outdatedModules);\n\t\t\t\tfor (moduleId in result.outdatedDependencies) {\n\t\t\t\t\tif (__webpack_require__.o(result.outdatedDependencies, moduleId)) {\n\t\t\t\t\t\tif (!outdatedDependencies[moduleId])\n\t\t\t\t\t\t\toutdatedDependencies[moduleId] = [];\n\t\t\t\t\t\taddAllToSet(\n\t\t\t\t\t\t\toutdatedDependencies[moduleId],\n\t\t\t\t\t\t\tresult.outdatedDependencies[moduleId]\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (doDispose) {\n\t\t\t\taddAllToSet(outdatedModules, [result.moduleId]);\n\t\t\t\tappliedUpdate[moduleId] = warnUnexpectedRequire;\n\t\t\t}\n\t\t}\n\t}\n\tcurrentUpdate = undefined;\n\n\t// Store self accepted outdated modules to require them later by the module system\n\tvar outdatedSelfAcceptedModules = [];\n\tfor (var j = 0; j < outdatedModules.length; j++) {\n\t\tvar outdatedModuleId = outdatedModules[j];\n\t\tvar module = __webpack_require__.c[outdatedModuleId];\n\t\tif (\n\t\t\tmodule &&\n\t\t\t(module.hot._selfAccepted || module.hot._main) &&\n\t\t\t// removed self-accepted modules should not be required\n\t\t\tappliedUpdate[outdatedModuleId] !== warnUnexpectedRequire &&\n\t\t\t// when called invalidate self-accepting is not possible\n\t\t\t!module.hot._selfInvalidated\n\t\t) {\n\t\t\toutdatedSelfAcceptedModules.push({\n\t\t\t\tmodule: outdatedModuleId,\n\t\t\t\trequire: module.hot._requireSelf,\n\t\t\t\terrorHandler: module.hot._selfAccepted\n\t\t\t});\n\t\t}\n\t}\n\n\tvar moduleOutdatedDependencies;\n\n\treturn {\n\t\tdispose: function () {\n\t\t\tcurrentUpdateRemovedChunks.forEach(function (chunkId) {\n\t\t\t\tdelete installedChunks[chunkId];\n\t\t\t});\n\t\t\tcurrentUpdateRemovedChunks = undefined;\n\n\t\t\tvar idx;\n\t\t\tvar queue = outdatedModules.slice();\n\t\t\twhile (queue.length > 0) {\n\t\t\t\tvar moduleId = queue.pop();\n\t\t\t\tvar module = __webpack_require__.c[moduleId];\n\t\t\t\tif (!module) continue;\n\n\t\t\t\tvar data = {};\n\n\t\t\t\t// Call dispose handlers\n\t\t\t\tvar disposeHandlers = module.hot._disposeHandlers;\n\t\t\t\tfor (j = 0; j < disposeHandlers.length; j++) {\n\t\t\t\t\tdisposeHandlers[j].call(null, data);\n\t\t\t\t}\n\t\t\t\t__webpack_require__.hmrD[moduleId] = data;\n\n\t\t\t\t// disable module (this disables requires from this module)\n\t\t\t\tmodule.hot.active = false;\n\n\t\t\t\t// remove module from cache\n\t\t\t\tdelete __webpack_require__.c[moduleId];\n\n\t\t\t\t// when disposing there is no need to call dispose handler\n\t\t\t\tdelete outdatedDependencies[moduleId];\n\n\t\t\t\t// remove \"parents\" references from all children\n\t\t\t\tfor (j = 0; j < module.children.length; j++) {\n\t\t\t\t\tvar child = __webpack_require__.c[module.children[j]];\n\t\t\t\t\tif (!child) continue;\n\t\t\t\t\tidx = child.parents.indexOf(moduleId);\n\t\t\t\t\tif (idx >= 0) {\n\t\t\t\t\t\tchild.parents.splice(idx, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// remove outdated dependency from module children\n\t\t\tvar dependency;\n\t\t\tfor (var outdatedModuleId in outdatedDependencies) {\n\t\t\t\tif (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) {\n\t\t\t\t\tmodule = __webpack_require__.c[outdatedModuleId];\n\t\t\t\t\tif (module) {\n\t\t\t\t\t\tmoduleOutdatedDependencies =\n\t\t\t\t\t\t\toutdatedDependencies[outdatedModuleId];\n\t\t\t\t\t\tfor (j = 0; j < moduleOutdatedDependencies.length; j++) {\n\t\t\t\t\t\t\tdependency = moduleOutdatedDependencies[j];\n\t\t\t\t\t\t\tidx = module.children.indexOf(dependency);\n\t\t\t\t\t\t\tif (idx >= 0) module.children.splice(idx, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tapply: function (reportError) {\n\t\t\t// insert new code\n\t\t\tfor (var updateModuleId in appliedUpdate) {\n\t\t\t\tif (__webpack_require__.o(appliedUpdate, updateModuleId)) {\n\t\t\t\t\t__webpack_require__.m[updateModuleId] = appliedUpdate[updateModuleId];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// run new runtime modules\n\t\t\tfor (var i = 0; i < currentUpdateRuntime.length; i++) {\n\t\t\t\tcurrentUpdateRuntime[i](__webpack_require__);\n\t\t\t}\n\n\t\t\t// call accept handlers\n\t\t\tfor (var outdatedModuleId in outdatedDependencies) {\n\t\t\t\tif (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) {\n\t\t\t\t\tvar module = __webpack_require__.c[outdatedModuleId];\n\t\t\t\t\tif (module) {\n\t\t\t\t\t\tmoduleOutdatedDependencies =\n\t\t\t\t\t\t\toutdatedDependencies[outdatedModuleId];\n\t\t\t\t\t\tvar callbacks = [];\n\t\t\t\t\t\tvar errorHandlers = [];\n\t\t\t\t\t\tvar dependenciesForCallbacks = [];\n\t\t\t\t\t\tfor (var j = 0; j < moduleOutdatedDependencies.length; j++) {\n\t\t\t\t\t\t\tvar dependency = moduleOutdatedDependencies[j];\n\t\t\t\t\t\t\tvar acceptCallback =\n\t\t\t\t\t\t\t\tmodule.hot._acceptedDependencies[dependency];\n\t\t\t\t\t\t\tvar errorHandler =\n\t\t\t\t\t\t\t\tmodule.hot._acceptedErrorHandlers[dependency];\n\t\t\t\t\t\t\tif (acceptCallback) {\n\t\t\t\t\t\t\t\tif (callbacks.indexOf(acceptCallback) !== -1) continue;\n\t\t\t\t\t\t\t\tcallbacks.push(acceptCallback);\n\t\t\t\t\t\t\t\terrorHandlers.push(errorHandler);\n\t\t\t\t\t\t\t\tdependenciesForCallbacks.push(dependency);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (var k = 0; k < callbacks.length; k++) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tcallbacks[k].call(null, moduleOutdatedDependencies);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\tif (typeof errorHandlers[k] === \"function\") {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\terrorHandlers[k](err, {\n\t\t\t\t\t\t\t\t\t\t\tmoduleId: outdatedModuleId,\n\t\t\t\t\t\t\t\t\t\t\tdependencyId: dependenciesForCallbacks[k]\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} catch (err2) {\n\t\t\t\t\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"accept-error-handler-errored\",\n\t\t\t\t\t\t\t\t\t\t\t\tmoduleId: outdatedModuleId,\n\t\t\t\t\t\t\t\t\t\t\t\tdependencyId: dependenciesForCallbacks[k],\n\t\t\t\t\t\t\t\t\t\t\t\terror: err2,\n\t\t\t\t\t\t\t\t\t\t\t\toriginalError: err\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\t\t\t\t\treportError(err2);\n\t\t\t\t\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\t\t\t\ttype: \"accept-errored\",\n\t\t\t\t\t\t\t\t\t\t\tmoduleId: outdatedModuleId,\n\t\t\t\t\t\t\t\t\t\t\tdependencyId: dependenciesForCallbacks[k],\n\t\t\t\t\t\t\t\t\t\t\terror: err\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Load self accepted modules\n\t\t\tfor (var o = 0; o < outdatedSelfAcceptedModules.length; o++) {\n\t\t\t\tvar item = outdatedSelfAcceptedModules[o];\n\t\t\t\tvar moduleId = item.module;\n\t\t\t\ttry {\n\t\t\t\t\titem.require(moduleId);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (typeof item.errorHandler === \"function\") {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\titem.errorHandler(err, {\n\t\t\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\t\t\tmodule: __webpack_require__.c[moduleId]\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (err1) {\n\t\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\t\ttype: \"self-accept-error-handler-errored\",\n\t\t\t\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\t\t\t\terror: err1,\n\t\t\t\t\t\t\t\t\toriginalError: err\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\t\treportError(err1);\n\t\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\ttype: \"self-accept-errored\",\n\t\t\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\t\t\terror: err\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn outdatedModules;\n\t\t}\n\t};\n}\n__webpack_require__.hmrI.jsonp = function (moduleId, applyHandlers) {\n\tif (!currentUpdate) {\n\t\tcurrentUpdate = {};\n\t\tcurrentUpdateRuntime = [];\n\t\tcurrentUpdateRemovedChunks = [];\n\t\tapplyHandlers.push(applyHandler);\n\t}\n\tif (!__webpack_require__.o(currentUpdate, moduleId)) {\n\t\tcurrentUpdate[moduleId] = __webpack_require__.m[moduleId];\n\t}\n};\n__webpack_require__.hmrC.jsonp = function (\n\tchunkIds,\n\tremovedChunks,\n\tremovedModules,\n\tpromises,\n\tapplyHandlers,\n\tupdatedModulesList\n) {\n\tapplyHandlers.push(applyHandler);\n\tcurrentUpdateChunks = {};\n\tcurrentUpdateRemovedChunks = removedChunks;\n\tcurrentUpdate = removedModules.reduce(function (obj, key) {\n\t\tobj[key] = false;\n\t\treturn obj;\n\t}, {});\n\tcurrentUpdateRuntime = [];\n\tchunkIds.forEach(function (chunkId) {\n\t\tif (\n\t\t\t__webpack_require__.o(installedChunks, chunkId) &&\n\t\t\tinstalledChunks[chunkId] !== undefined\n\t\t) {\n\t\t\tpromises.push(loadUpdateChunk(chunkId, updatedModulesList));\n\t\t\tcurrentUpdateChunks[chunkId] = true;\n\t\t} else {\n\t\t\tcurrentUpdateChunks[chunkId] = false;\n\t\t}\n\t});\n\tif (__webpack_require__.f) {\n\t\t__webpack_require__.f.jsonpHmr = function (chunkId, promises) {\n\t\t\tif (\n\t\t\t\tcurrentUpdateChunks &&\n\t\t\t\t__webpack_require__.o(currentUpdateChunks, chunkId) &&\n\t\t\t\t!currentUpdateChunks[chunkId]\n\t\t\t) {\n\t\t\t\tpromises.push(loadUpdateChunk(chunkId));\n\t\t\t\tcurrentUpdateChunks[chunkId] = true;\n\t\t\t}\n\t\t};\n\t}\n};\n\n__webpack_require__.hmrM = function() {\n\tif (typeof fetch === \"undefined\") throw new Error(\"No browser support: need fetch API\");\n\treturn fetch(__webpack_require__.p + __webpack_require__.hmrF()).then(function(response) {\n\t\tif(response.status === 404) return; // no update available\n\t\tif(!response.ok) throw new Error(\"Failed to fetch update manifest \" + response.statusText);\n\t\treturn response.json();\n\t});\n};\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkreacttest2018\"] = self[\"webpackChunkreacttest2018\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__.O(undefined, [121], function() { return __webpack_require__(3813); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","ReturnPolicyModal","React","render","ModalSimple","id","title","href","className","target","__decorate","observer","EventType","eventEmitter","events","getEventKey","eventType","uniqueSuffix","dispatch","event","eventName","this","forEach","callback","subscribe","includes","push","unsubscribe","constructor","props","super","componentDidMount","open","show","util","hide","close","setTimeout","modalCloseById","onOutsideClick","e","classList","contains","abTestClass","tabIndex","onClick","style","maxWidth","maxHeight","window","innerHeight","role","type","children","ABTestKeys","AbTestStore","Object","defineProperty","_component","__awaiter","forceUpdate","key","ab","undefined","value","variation","ABGetValue","observable","action","Sentry","dsn","integrations","tracesSampleRate","tracePropagationTargets","replaysSessionSampleRate","replaysOnErrorSampleRate","ignoreErrors","environment","location","hostname","document","addEventListener","container","getElementById","createRoot","ProductComponent","dataLayer","req","_url","o","axios","post","then","response","status","console","error","JSON","parse","data","catch","err","redeemCode","getProductPackage","runInAction","reload","pricing","result","s","ui","price","result_decimal","statevent","add_to_cart","args_1","buyNow","pcs","atc_error","success","redirect_url","prod_cat","LinkToProductID","v","ProductID","log","msg","prod","StoreID","si","updateShippingBoxID","docWidth","docHeight","_t","hit","i","ShippingSizeData","length","ssd","width","height","box_id","isShippingOversize","ATCButton","loading","IsCAF","caf_input_sizes","caf_valid_sizes","allowUpload2","image_uploaded","image_uploaded_msg","DocType","show_caf_doc_sizes","atc","bind","makeObservable","emitter","AB","abForceUpdate","label","additionalClass","ABIsVariant","ab_green_product","ATC","createRef","checkIfVisible","canShare","navigator","share","mainATCRef","current","IntersectionObserver","entry","isMainATCVisible","isIntersecting","threshold","observe","ref","lite","prod_buynow","_a","categories","isRetail","modalOpen","show_atc","PromoRedeem","innerWidth","position","top","left","r","CAFDocSize","show_caf_doc_sizes_both","collapse","init","error1","error2","error3","error4","DYF_FrameStyleID","doc2_w","toLowerCase","doc2_h","print2_w","print2_h","doc1_w","doc1_h","print1_w","print1_h","printWidth","printHeight","docWidth2","docHeight2","printWidth2","printHeight2","isHorizontal","caf_note_IsHorizontal","notes","caf_note","truncate","stop_caf","is_horizontal","srcSet","alt","src","paddingLeft","paddingRight","marginLeft","flex","step","name","placeholder","onChange","parseFloat","htmlFor","pattern","maxLength","Category","cat","filter","x","category_map_id","category_selected_no_new_product","_w","Doc_Width","_h","Doc_Height","IsHorizontal","OrientationHorizontal","glass_id","AllowGlassID2","doRender","update_pricing","pulse","save","category_name","CategoryID","CategoryName","ready","is_caf","paddingBottom","display","fontWeight","map","m","Name","__fast_ship_orig","parseInt","linos","CustomFieldsComponent","custom_text_1","custom_text_2","custom_text_3","save1","save2","save3","show_cust","CustomField1_Enabled","CustomField1_Title","CustomField2_Enabled","CustomField2_Title","CustomField3_Enabled","CustomField3_Title","DescMain","hide_dynamic","ItemID","show_doc_size","ProductTypeID","IsFrame","show_frame_size","JF_Width","show_custom_frame","show_smart_box","allow_smartbox","Shipping_BoxID","ProductTypeDisplayName","jf_width","moulding_extWidth","jf_height","JF_Height","componentDidUpdate","ul","DOMParser","parseFromString","default_prod_info_static","querySelector","firstLi","removeChild","description","outerHTML","onKeyDown","toggleExpandable","dangerouslySetInnerHTML","__html","ph_desc_size","ph_desc_jf_size","LevelLock","PortalID","__portal","DisableProdDescLinks","HideLevelLock","ph_desc_ll","LevelLockModal","ph_desc_smart","SmartBoxModal","StoreTypeID","ph_desc_custom","CustomizationMethod","item_id","sku","DYF_FrameStyleName","title_moulding","title_mat1","mat2_id","title_mat2","insignia_id","title_insignia","lino_id","lino_base_name","ep_id","name_glass","AllowGlassID1","use_plexi","computed","DocSize","h","w","preventDefault","dw","doc_sizes_photo","doc_sizes_varsity","doc_sizes","newHeight","ForcePlexiglass","changeDocSize","changeOrientation","changeDYF","marginBottom","justifyContent","fontSize","selected","dyfList","doc_type","CustomerServicePhone","CustomerServiceEmail","Price_Retail","EngravedPlate","collapsed","ep_id_view","ep1","ep2","ep3","ins_black_allowed","ins_gold_allowed","ins_silver_allowed","collapseToggle","ep_color_change","ep_add","ep_remove","ep_change_text","canCollapse","getColorText","getColorTextLower","name_moulding","getImage","EngravedPlateStatusID","padding","paddingTop","EngravedPlateLines","Glass","IsGlassAllowed","standardGlassTitle","product_glass","AllowGlassID3","AllowGlassID4","marginTop","glass","GradYear","grad_year","show_grad_year","minWidth","max","min","color","flexDirection","alignItems","gap","border","ImageUploadCopy","image_upload_hash3","override_d1_img","image_uploading","reso_level","clicked","centerCrop","selectFile","createCroppedImage","detail","fileInput","mcerr","canUpload","processing_title","processing_text","formData","FormData","currentTarget","append","file","toString","__fiu","token","config","headers","RequestVerificationToken","ir","hash","ppi_w_actual","ppi_h_actual","finally","crop","imgRef","naturalWidth","naturalHeight","canvas","createElement","scaleX","scaleY","ctx","getContext","drawImage","y","toBlob","blob","File","completedCrop","files","imgSrc","reader","FileReader","readAsDataURL","aspect","centerAspectCrop","makeAspectCrop","unit","accept","clear","textAlign","ReactCrop","percentCrop","onComplete","minHeight","onLoad","onSubmit","disabled","ppi_w","ppi_h","ppi_w_max","ppi_h_max","UploadFee","Insignia","collapsed_number","getCollapsedNumber","orig_ins_name","stringify","orig_pcs","Base_InsigniaName","init_ins","InsigniaID","insignia_base_name","insignia_dyf_color","insignia_is_dyf","insignias","isCAF","ins_color","name_insignia","scrollIntoView","d_i","orig","fpc_id","initInsignia","changeCategory","ins_remove","backgroundColor","color_mat1","linen","slice","textDecoration","margin","Lino","orig_lino_name","Base_LinoName","lino_display_name","hasCategory1","isBase","dyf_custom_lino_type_id","hasCategory2","hasCategory3","hasCategory4","init_linos","LinoID","lino_dyf_color","lino_is_dyf","lino_text","f1","f2","f3","f4","getElementsByTagName","_id","trim","initLinos","changeLino","changeLinoColor","lino_remove","getOptionsCount","handleLinoDropdown","changeLinoProd","css","lino_src","borderRadius","lineHeight","replace","InstName","reverse","mat1_color","Mat","max_mats","max_mats_bg","getMaxMats","collapsed_number_mat2","collapsed_number_mat3","collapsed_mat2","collapsed_mat3","m1","caf_mat1","m2","caf_mat2","mat1_id","mat_color","mat2_color","name_mat2","color_mat2","matcombo_id","mats","pmat_color","smat_color","pmat_name","ImageName","old_style_composite","vlbg_id","vlbg_color","title_vlbg","collapseToggle_mat2","collapseToggle_mat3","save_vlbg","call","querySelectorAll","popoverTriggerEl","bootstrap","Popover","title_mat_combo","InfoIcon","ABGetClassName","product_mats","MatComboID","Moulding","moulding_id","mouldings","xx","extWidth","MouldingID","d1","d2","d3","selected_finish","changeColor","Default","allowList","_all","fpc_name","finishes","Set","sort","IsRecycled","ReactDOMServer","RecycledIcon","ModalInfo","store","ProductHeader","d","click","goReviews","listItems","textContent","productDescription","default_render","product_title","allow_reviews","review_count","review_score","show_pricing","ab_1_render","toFixed","HasKey","api","__promo_json","redeemAvailable","redeemOff","QtyComponent","qty","ProductItem","getZoomImgUrl","product","split","resolution","newResolution","zoomImgUrl","link","relatedProducts","RelatedProducts","Swiper","grabCursor","loop","keyboard","enabled","navigation","spaceBetween","updateOnWindowResize","breakpoints","slidesPerView","modules","Keyboard","Navigation","p","SwiperSlide","stopPropagation","SliderRealImages","zoom_index","zoom_real_images","toggleZoom","real_images","centeredSlides","zoom","scrollbar","pagination","slidesPerGroup","Zoom","Scrollbar","initialSlide","virtualIndex","SliderTH","swiper","zoom_id","ele","index","attributes","slideToLoop","css_zoom","zoom_thumbnails","loadSwiper","loadSwiperZoom","getSlidesPerView","show_slider","Mat1_ID","th1Disabled","th2Disabled","th3Disabled","th4Disabled","th5Disabled","th6Disabled","th7Disabled","th8Disabled","th9Disabled","th10Disabled","do_loop","slideCount","moulding_has_zoom","th5","th6","real_images_th","product_thumbnail_height","onInit","centeredSlidesBounds","centerInsufficientSlides","Image_Thumb","DocumentID","ExtraEntityID","moulding_zoom_path_th","is_tassel_cord","ProdInstText","th1","th2","th3","th4","th7","th8","th9","th10","backgroundImage","name_mat1","OldInsigniaThumb","disableGlassUpgrades","slidesPerGroupAuto","ProductRender","moulding_zoom_path","backgroundRepeat","OldInsigniaImage","Yotpo","defer","t","parentNode","insertBefore","URL","_ssd","_dstc","DocumentSizeTierID","Width","Height","IsMax","UsePlexiglass","DocumentSizeTierData","ab_update","react_product","_key","_value","header","ProductProcessing","allow_customer_photos","textTransform","is_bo","bo_msg","right","categoryIds","allowUpload1","StoreProductMessage","wholesale","hasPromo","promo","modal1","modal2","__fast_ship","fullWidth","StoreName","Phone","Fax","Address1","Address2","StoreLink","ProdReturnSnippet","H2_1","H2_1_Content","H2_2","H2_2_Content","H2_3","H2_3_Content","H2_4","H2_4_Content","EngravedPlateStatusEnum","DYF_FrameStylesEnum","DocStackingSizeTiers","DocSizeTierID","CameoRail","DocDistance","DocHeight","DocWidth","DocOverlap","OvalRailSide","OvalRailOvalTop","OvalRailDocTop","SpiritRailTopAndSides","SpiritRailBottom","StandardRail","TasselRailHeight","TasselRailWidth","TasselGap","TasselHeight","TasselWidth","DocStackingSizeTiersClass","DefaultPCS","ProductCustomizationState","getGlassPrice","GlassID","isPhotoFrame","Glass_DocSizeTierID","isOversized","__oversized","glass_prices","Price","Price_Wholesale","ps","m0","g","l","e1","e2","e3","w1","w2","h1","h2","lc","shareData","text","url","btoa","toJS","event_params","method","content_type","FramePartDomain","renderStandardPrimaryMat","PMatWidthPX","PMatHeightPX","MaxMouldingWidthPx","MouldingWidthPx","pmat_BackgroundImage","pmat_path","PrimaryMatName","pmat_width","pmat_height","pmat_backgroundSize","pmat_top","pmat_left","body_width","n","renderStandardMoulding","PMatWidthPx","PMatHeightPx","m_topleft_src","MouldingName","m_topleft_left","m_topleft_top","m_topleft_width","m_topright_src","m_topright_left","m_topright_top","m_topright_width","m_bottomleft_src","m_bottomleft_left","m_bottomleft_top","m_bottomleft_width","m_bottomright_src","m_bottomright_left","m_bottomright_top","m_bottomright_width","m_left_src","m_left_left","m_left_top","m_left_width","m_left_height","m_right_src","m_right_left","m_right_top","m_right_width","m_right_height","m_top_src","m_top_left","m_top_top","m_top_width","m_top_height","m_bottom_src","m_bottom_left","m_bottom_top","m_bottom_width","m_bottom_height","doc_path","DocHeightPx","docName","Base_ExtraEntityName","override","vl_path","VLHeightPx","VLName","oval_path","OvalName","campus_path","cameo_path","renderCollapsedPMatBevel","doc1_pmat_bevel_backgroundColor","doc1_pmat_bevel_left","doc1_pmat_bevel_top","doc1_pmat_bevel_width","doc1_pmat_bevel_height","renderCollapsedSMat","doc1_smat_backgroundColor","doc1_smat_left","doc1_smat_top","doc1_smat_width","doc1_smat_height","doc1_smat_bevel_backgroundColor","doc1_smat_bevel_left","doc1_smat_bevel_top","doc1_smat_bevel_width","doc1_smat_bevel_height","RenderStandardSMat","BevelWidthPx","SMatWidthPx","DocWidthPx","SecondaryMatColor","renderStandardFillet","RailSidePx","RailTopPx","WoodFilletWidthPx","f_container_left","f_container_top","f_container_width","f_container_height","f_topleft_src","SecondaryMatName","f_topleft_left","f_topleft_top","f_topleft_width","f_topright_src","f_topright_left","f_topright_top","f_topright_width","f_bottomleft_src","f_bottomleft_left","f_bottomleft_top","f_bottomleft_width","f_bottomright_src","f_bottomright_left","f_bottomright_top","f_bottomright_width","f_left_src","f_left_left","f_left_top","f_left_width","f_left_height","f_right_src","f_right_left","f_right_top","f_right_width","f_right_height","f_top_src","f_top_left","f_top_top","f_top_width","f_top_height","f_bottom_src","f_bottom_left","f_bottom_top","f_bottom_width","f_bottom_height","renderStandardInsignia","FilletCount","MaxInsigniaWidthPx","SMatCount","insignia_bot_visible","insignia_visible","Base_InsigniaID","insignia_src","insignia_path","Math","floor","insignia_left","insignia_top","insignia_width","insignia_height","insignia_bot","renderBottomInsignia","renderBottomRightInsignia","insignia_br_visible","mod","insignia_br_src","insignia_br_right","FrameDisplay_width","insignia_br_bot","insignia_br_width","insignia_br_height","insignia_path_noBevel","InsigniaName","renderStandardLino","LinoWidthMaxPx","LinoHeightMaxPx","lino_visible","Base_LinoID","linoLeft","lino_path","lino_left","lino_top","lino_width","lino_height","renderEngravedPlate","Left","Top","EPWidthPx","EPHeightPx","ep_bevel_backgroundColor","ep_bevel_left","ep_bevel_top","ep_bevel_width","ep_bevel_height","ep_pmat_backgroundImage","ep_pmat_left","ep_pmat_top","ep_pmat_width","ep_pmat_height","ep_backgroundImage","EngravedPlateName","ep_backgroundSize","EngravedPlateID","ep_color","ep_left","ep_top","ep_width","ep_height","EPLineCount","getEPLineCount","LineHeight","EPTextTop","ep_lines_top","ep_lines_left","ep_lines_lineHeight","ep_lines_fontSize","ep_lines_width","ep_lines_height","ep_visible","tassel_path","TasselName","lines","EP_1","Util","EP_2","EP_3","ItemID_EndsWithNumber","str","c","Get_DocumentSizeTierID","Temp","arr","f","getDocSizeTier","xDocument_Width","Document_Width","xDocument_Height","Document_Height","ratio","tempWidth","tempHeight","getDocSizeTier2","xDocument2_Width","Document2_Width","xDocument2_Height","Document2_Height","linoWidthAdjust","MaxFrameWidthPx","_renderType","Normal","state_FlatImageMode","DefaultMaxFrameWidth","MaxFrameHeightPx","DefaultMaxFrameHeight","moulding","MouldingExtWidth","mat1","mat2","PrimaryMatID","PrimaryMatColor","MatCombo_IsWoodFillet","SecondaryMatID","mat","smat_name","HasEngravedPlate","o3","UseCommonDPI","UseMaxMouldingForSizing","Base_ExtraID","ExtraEntityName","render_old_style","frame_display_width","frame_display_height","FrameDisplay_height","assign","Single_Document","Photo_Frame","Spirit","SpiritB","Cameo","renderSingleDocFrame","Tassel","renderTasselFrame","Double_Document","Campus_Scene","renderDoubleDoc","Varsity","renderVarsity","Sports_Oval","Portrait_Oval","renderOvalFrame","Century","renderCentury","MouldingThickness","moulding_width","moulding_half","CurrentDocWidth","CurrentDocHeight","DocSizeTier","filletCount","MouldingOverlap","RailTop","RailSide","InsigniaWidth","Base_InsigniaWidthInches","DefaultInsigniaWidthMax","LinoWidthMax","DefaultLinoWidthMax","Base_LinoAdjustmentInches","LinoHeightMax","DefaultLinoHeightMax","EPWidth","DefaultEPWidth","EPHeight","DefaultEPHeight","TotalWidth","MouldingWidthMax","DPI","done","TotalUsedWidthPx","TotalUsedWidthPx_NoMargin","MaxSingleDocRailWidthPx","MaxPossibleSingleDocWidthPx","MaxPossibleSingleDocHeightPx","TotalUsedHeightPx","TotalUsedHeightPx_NoMargin","round","BevelWidth","Padding","InnerAccentWidth","fillet_visible","doc1_src","Base_DocumentName","doc1_left","doc1_top","doc1_width","doc1_height","insLeft","EPTopPx","EPLeftPx","cameo_visible","CameoWidth","CameoHeight","CameoWidthPx","CameoHeightPx","cameo_pmat_bevel_backgroundColor","cameo_pmat_bevel_left","cameo_pmat_bevel_top","cameo_pmat_bevel_width","cameo_pmat_bevel_height","cameo_pmat_bevel_borderRadius","cameo_src","cameo_left","cameo_top","cameo_width","cameo_height","cameo_borderRadius","spirit_visible","spirit_thick","spirit_smat_thick","spirit_smat_bg","smat_left","sidesLeft","sides_smat_Left","sidesHeight","smat_height","spi_left_width","spi_right_width","spi_smat_left_width","spi_smat_right_width","spi_left_left","spi_right_right","spi_left_top","spi_right_top","spi_left_height","spi_right_height","spi_smat_left_left","spi_smat_right_right","spi_smat_left_top","spi_smat_right_top","spi_smat_left_height","spi_smat_right_height","spirit_visible_ins","spirit_ins_bot","spirit_visible_lino","spi_bot1_left","spi_bot2_right","spi_bot1_bot","spi_bot2_bot","spi_smat_bot1_bot","spi_smat_bot2_bot","spi_bot1_height","spi_bot2_height","spi_smat_bot1_height","spi_smat_bot2_height","spi_smat_bot1_left","spi_smat_bot2_right","spi_bot1_width","spi_bot2_width","spi_smat_bot1_width","spi_smat_bot2_width","spi_top1_left","spi_top2_right","spi_top1_top","spi_top2_top","spi_smat_top1_top","spi_smat_top2_top","spi_top1_height","spi_top2_height","spi_smat_top1_height","spi_smat_top2_height","spi_smat_top1_left","spi_smat_top2_right","spi_top1_width","spi_top2_width","spi_smat_top1_width","spi_smat_top2_width","factor","old_w","debug","TasselGapPx","TasselWidthPx","TasselHeightPx","tassel_visible","tassel_pmat_bevel_backgroundColor","tassel_pmat_bevel_left","tassel_pmat_bevel_top","tassel_pmat_bevel_width","tassel_pmat_bevel_height","tassel_smat_backgroundColor","tassel_smat_left","tassel_smat_top","tassel_smat_width","tassel_smat_height","tassel_smat_bevel_backgroundColor","tassel_smat_bevel_left","tassel_smat_bevel_top","tassel_smat_bevel_width","tassel_smat_bevel_height","tassel_src","tassel_left","tassel_top","tassel_width","tassel_height","CurrentDoc2Width","CurrentDoc2Height","DocSizeTier1","Temp_Doc_Width2","Temp_Doc_Height2","DocSizeTier2","doCampusAlternate","CampusVertical","original_vertical","Base_ExtraHeight","reduction_ratio","campus_ratio","doneCount","Doc2WidthPx","Doc2HeightPx","DoubleDocSeparationPx","doc2_pmat_bevel_backgroundColor","doc2_pmat_bevel_left","doc2_pmat_bevel_top","doc2_pmat_bevel_width","doc2_pmat_bevel_height","doc2_smat_backgroundColor","doc2_smat_left","doc2_smat_top","doc2_smat_width","doc2_smat_height","doc2_smat_bevel_backgroundColor","doc2_smat_bevel_left","doc2_smat_bevel_top","doc2_smat_bevel_width","doc2_smat_bevel_height","doc2_visible","doc2_src","o4","doc2_left","doc2_top","doc2_width","doc2_height","MouldingInsigniaAreaWidth","MouldingInsigniaAreaWidthPx","MouldingInsigniaVerticalOffsetPx","varsity_visible","varsity_pmat_bevel_backgroundColor","varsity_pmat_bevel_left","varsity_pmat_bevel_top","varsity_pmat_bevel_width","varsity_pmat_bevel_height","varsity_smat_backgroundColor","varsity_smat_left","varsity_smat_top","varsity_smat_width","varsity_smat_height","varsity_smat_bevel_backgroundColor","varsity_smat_bevel_left","varsity_smat_bevel_top","varsity_smat_bevel_width","varsity_smat_bevel_height","varsity_bg_backgroundColor","varsity_bg_left","varsity_bg_top","varsity_bg_width","varsity_bg_height","varsity_src","varsity_left","varsity_top","varsity_width","varsity_height","OvalGapPx","OvalWidthPx","OvalHeightPx","oval_visible","oval_pmat_bevel_backgroundColor","oval_pmat_bevel_left","oval_pmat_bevel_top","oval_pmat_bevel_width","oval_pmat_bevel_height","oval_pmat_bevel_borderRadius","oval_smat_backgroundColor","oval_smat_left","oval_smat_top","oval_smat_width","oval_smat_height","oval_smat_borderRadius","oval_smat_bevel_backgroundColor","oval_smat_bevel_left","oval_smat_bevel_top","oval_smat_bevel_width","oval_smat_bevel_height","oval_smat_bevel_borderRadius","oval_src","oval_left","oval_top","oval_width","oval_height","oval_borderRadius","oval_backgroundColor","onMouseMove","onMouseEnter","onMouseLeave","squareCurrent","zoomSquareContainerRef","originalCurrent","originalContainerRef","calculateZoomSquareSize","imageRect","getBoundingClientRect","squareWidth","squareHeight","mouseX","clientX","mouseY","clientY","setStyle","isZoomVisible","attr","parentStyle","zoomedContainerRef","parentElement","loadingDiv","remove","replaceImage","newImage","th6Enabled","defaultConfiguration","Mat2_ID","ab_prod_th6","objectFit","renderContent","Image_Full","bottom","backgroundSize","doc1_visible","boxShadow","whiteSpace","letterSpacing","overflow","flexWrap","isMobile","zoomContainerVisible","prod_zoom","content","opacity","zIndex","background","insigniaVisible","insignia","_b","alignSelf","ProdStore","__isMyFrames","__preload_product","__preload_glass_prices","StoreInfo","__StoreID","storeId","reviewCount","reviewScore","msrp","priceMSRPDec","customized_core","customized_glass","base_product_id","base_item_id","MouldingHasZoom","Moulding_IMG_Zoom","Moulding_IMG_ZoomThumb","SelectedCategoryMapID","VLBG_ID","vlbg","_m","_i","_l","_m1","_m2","selected_doc_size","mc","process_color_restrictions","OldCompositeImage","YearOfGraduation_Required","DisableRealImages","DisableReviews","atob","marketing_item","item_name","coupon","currency","discount","item_brand","item_category","location_id","quantity","product_id","item_list_name","item_list_id","item_variant","marketing_product_visit","item_image","ProductName","SKU","Brand","ImageUrl","item_noimage","klaviyo","errk","diffFromFastShip","__fast_ship_warned","forceRender","pulse_fast_ship","pulse_caf","pulse_product","give_ep_color_id","oldColor","assignedName","newName","new_ins","glass_update","setUI","update_doc_sizes","BO_Single","BO_OverrideText","IsBO_MyFrames","BO_Text","BO_FramePartID","BO_MyFramesText","dyf_color","_glass","has_zoom","IMG_Zoom","IMG_Zoom_Thumb","pmat_title","smat_title","title_glass","isNullOrWhiteSpace","match","_z","currency_noNegatives","ValidationMessages","RenderType","String","prototype","useDots","substr","getPhoneHREF","roundF","precision","multiplier","pow","openLink","_blank","_openLinkTimer","clearTimeout","modal","debounce","func","delay","timer","getParameterByName","results","RegExp","exec","decodeURIComponent","ariaPulse","caro_prev","getElementsByClassName","caro_next","ariaLabel","prod_entity_zoom_destroy","modals","webp","localsJsonString","cssReload","module","hot","invalidate","dispose","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","execOptions","factory","__webpack_modules__","require","handler","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","keys","every","splice","getter","__esModule","a","definition","enumerable","get","hu","chunkId","miniCssF","hmrF","globalThis","Function","obj","prop","hasOwnProperty","script","needAttach","scripts","getAttribute","charset","timeout","nc","setAttribute","onScriptComplete","prev","onerror","onload","doneFns","head","appendChild","Symbol","toStringTag","currentChildModule","currentUpdateApplyHandlers","queuedInvalidatedModules","currentModuleData","installedModules","currentParents","registeredStatusHandlers","currentStatus","blockingPromises","blockingPromisesWaiting","setStatus","newStatus","Promise","all","unblock","list","hotCheck","applyOnUpdate","Error","hmrM","update","updatedModules","hmrC","reduce","promises","internalApply","resolve","applyInvalidatedModules","hotApply","options","errors","Boolean","disposePromise","applyPromise","reportError","outdatedModules","apply","indexOf","hmrI","hmrD","me","_main","request","active","parents","warn","createPropertyDescriptor","configurable","set","fetchPriority","promise","trackBlockingPromise","createRequire","_acceptedDependencies","_acceptedErrorHandlers","_declinedDependencies","_selfAccepted","_selfDeclined","_selfInvalidated","_disposeHandlers","_requireSelf","dep","errorHandler","decline","addDisposeHandler","removeDisposeHandler","idx","check","addStatusHandler","removeStatusHandler","scriptUrl","importScripts","currentScript","tagName","toUpperCase","test","oldTags","newTags","applyHandler","oldTag","rel","miniCss","removedChunks","removedModules","applyHandlers","updatedModulesList","fullhref","existingLinkTags","dataHref","tag","existingStyleTags","findStylesheet","reject","linkTag","nonce","errorType","realHref","code","nextSibling","createStylesheet","as","currentUpdatedModulesList","currentUpdateChunks","currentUpdate","currentUpdateRemovedChunks","currentUpdateRuntime","installedChunks","hmrS_jsonp","waitingUpdateResolves","loadUpdateChunk","realSrc","message","getAffectedModuleEffects","updateModuleId","outdatedDependencies","queue","chain","queueItem","pop","parentId","parent","concat","addAllToSet","b","item","jsonpHmr","appliedUpdate","warnUnexpectedRequire","newModuleFactory","abortError","doApply","doDispose","chainInfo","join","onDeclined","ignoreDeclined","onUnaccepted","ignoreUnaccepted","onAccepted","onDisposed","moduleOutdatedDependencies","outdatedSelfAcceptedModules","outdatedModuleId","dependency","disposeHandlers","child","callbacks","errorHandlers","dependenciesForCallbacks","acceptCallback","k","dependencyId","err2","onErrored","originalError","ignoreErrored","err1","self","moreModules","runtime","jsonp","fetch","ok","statusText","json","webpackJsonpCallback","parentChunkLoadingFunction","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}