{"version":3,"file":"923.6cfe219c2131bd84.module.js","mappings":"qGAMO,MAAMA,EACTC,WAAyC,CAAC,UAAY,GAAG,kBAAoB,kB,kCCD1E,IAAKC,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAAA,EAAgB,mCAAhBA,EAAAA,EAAgB,uBAAhBA,CAAgB,K,mCCArB,MAAMC,EACAC,uBACTH,mBAA6C,cAC7CA,8BAAmE,yBACnEA,oBAA+C,eAC/CA,wBAAuD,mBACvDA,gBAAuC,WACvCA,gBAAuC,WACvCA,kBAA2C,aAC3CA,kBAA2C,aAC3CA,2BAA6D,sBAC7DA,kBAA2C,aAC3CA,kBAA2C,aAC3CA,0BAA2D,qBAC3DA,0BAA2D,qBAC3DA,iBAAyC,YACzCA,4BAA+D,uBAC/DA,yBAAyD,oBACzDA,2BAA6D,sBAC7DA,2BAA6D,sBAC7DA,mCAA6E,8BAC7EA,2BAA6D,sBAC7DA,2BAA6D,sBAC7DA,oCAA+E,+BAC/EA,2BAA6D,sBAC7DA,qBAAiD,gBACjDA,uBAAqD,kBACrDA,2BAA6D,sBAC7DA,oBAA+C,eAC/CA,4BAA+D,uBAC/DA,sBAAmD,iBACnDA,0BAA2D,qBAC3DA,WAA8oB,CAAC,yBAA0B,eAAgB,aAAc,sBAAuB,aAAc,aAAc,WAAY,WAAY,aAAc,qBAAsB,qBAAsB,YAAa,mBAAoB,oBAAqB,sBAAuB,sBAAuB,sBAAuB,+BAAgC,sBAAuB,8BAA+B,sBAAuB,uBAAwB,kBAAmB,sBAAuB,qBAAsB,eAAgB,uBAAwB,iBAAkB,iB,+LChCnsC,IAAKI,EAAkB,SAAlBA,GAAkB,OAAlBA,EAAAA,EAAkB,qBAAlBA,EAAAA,EAAkB,iBAAlBA,EAAAA,EAAkB,mBAAlBA,EAAAA,EAAkB,mBAAlBA,EAAAA,EAAkB,mBAAlBA,EAAAA,EAAkB,qBAAlBA,EAAAA,EAAkB,yBAAlBA,EAAAA,EAAkB,qBAAlBA,CAAkB,K,wUCN9B,QAAmBC,GACXA,EAAOC,KACAD,EAAOC,KAAK,GAEhBD,EAAOE,QAAO,CAACC,EAAKC,IAAQD,EAAIE,OAAOD,IAAM,G,oFCoBjD,SAASE,EAAuBC,GACnC,MAAMC,EANH,SAAsBD,GAGzB,OADAA,EAAiB,MAATA,EAAgB,KAAOA,EAAME,WAAWC,QAAQ,cAAe,IAChEC,WAAWJ,EACtB,CAEmBK,CAAaL,GAC5B,OAAOM,MAAML,GAAU,EAAIA,CAC/B,CAEO,SAASM,EAAUP,GACtB,GAAa,MAATA,EACA,OAAO,KAEX,GAAoB,iBAATA,EACP,OAAgB,GAATA,EAEX,MAAMQ,EAAWR,EAAME,WAAWO,cAClC,MAAmB,KAAZD,GAA+B,QAAZA,EAAqB,EAAgB,KAAZA,GAA+B,SAAZA,EAAsB,EAAI,IACpG,CAoCO,SAASE,EAA+BC,EAAwCC,GACnF,MAAMC,GAAYC,EAAAA,EAAAA,GAAiBF,GAOnC,OAFAG,EAA8BF,EAAUG,KAAM,kCAJzBC,KA+CzB,SAAuCC,EAAwDD,GAC3F,MAAME,EAAc,CAChBD,YAAaA,CAACA,EAAwDE,KAClE,MAAMC,EAASD,EAAmBE,cAC9BC,GAAeL,IAAgBA,EAAYM,KAAKC,OAChDC,EAAeC,SAASC,cAAc,QAK1C,GAHAF,EAAaG,UAAUT,EAAmBU,WAC1CC,EAAAA,EAAAA,GAA0BL,EAA6B,MAAfR,EAAsBA,EAAYM,KAAK,GAAK,IACpFH,EAAOW,aAAaN,EAAcN,GAC9BG,EACA,OAEJG,EAAaO,QAAQC,WAAa,OAClC,MAAMC,EAAwC,MAA5Bd,EAAOY,QAAQE,UAAqBC,KAAKC,MAAMhB,EAAOY,QAAQE,WAA4B,GAC5GA,EAAUG,QAAQpB,EAAYM,MAC9BH,EAAOY,QAAQE,UAAYC,KAAKG,UAAUJ,EAAU,EAExD,oBAAqBK,CAACtB,EAAwDuB,KACvD,MAAfvB,GAA0D,IAAnCX,EAAUW,EAAYM,KAAK,IAClDiB,EAAmBC,eAAgBD,EAAmBE,cAAc,OAAQb,UAAY,IAExFW,EAAmBG,UAAY,EACnC,GAGRzB,EAAYF,EAAQ4B,SAASC,qBAA4D5B,EAAaD,EAC1G,CAxEQ8B,EADqBC,EAAAA,EAAAA,IAAmB/B,EAAQgC,IAAyD,KAAnDtC,EAAauC,MAAKC,GAAQA,EAAKF,IAAMhC,EAAQgC,KACxDhC,EAAQ,IA0E3D,SAAyCJ,GAErC,GAA+B,GADNA,EAAUuC,iBAAiB,oBAC/B3B,OAAa,CAC9B,MAAM4B,EAAeC,IACjB,MAAMnB,EAAYC,KAAKC,MAAMiB,EAAgBrB,QAAQE,WAErD,UADOmB,EAAgBrB,QAAQE,UACL,GAApBA,EAAUV,QAAsC,GAAvBU,EAAU,GAAGV,OAAc,CACtD,MAAM8B,ECxIP,YAAyBC,GAEpC,OAAOA,EAAE7D,QAAO,CAAC6D,EAAGC,IAAMD,EAAEE,SAAQC,GAAKF,EAAEG,KAAIC,GAAK,CAACF,EAAGE,GAAGnE,YAC/D,CDqIsCoE,IAAa3B,GAC7BT,EAAeC,SAASC,cAAc,QAC5C2B,EAAcQ,SAAQC,IAClB,MAAMC,EAAgBX,EAAgBY,WAAU,GAC1CC,EAAcF,EAAcb,iBAAiB,sCACnD,IAAK,IAAIgB,EAAID,EAAY1C,OAAS,EAAG2C,GAAK,EAAGA,KACzCrC,EAAAA,EAAAA,GAA0BoC,EAAYC,GAAIC,MAAMC,QAAQN,GAAOA,EAAII,GAAKJ,GAE5EtC,EAAaG,OAAOoC,EAAc,IAEtCX,EAAgBZ,eAAehB,EAAaI,SAChD,GAEJf,EAA8BF,EAAUG,KAAM,mBAAoBqC,EACtE,CACAxC,EAAUuC,iBAAiB,sBAAsBW,SAAQQ,UAAgBA,EAAqBtC,QAAQC,YAC1G,CA9FIsC,CAAgC3D,GACzBA,EAAUG,KAAKyD,SAC1B,CA8FA,SAAS1D,EAA8B2D,EAAmBC,EAAkBC,GACxE,MAAM9C,EAAW4C,EAAKtB,iBAAiBuB,GACvC,IAAK,IAAIP,EAAItC,EAASL,OAAS,EAAG2C,GAAK,EAAGA,IACtCrD,EAA8Be,EAASsC,GAAmBO,EAAUC,GAEpEF,EAAKG,QAAQF,IACbC,EAAKF,EAEb,C,kBEzLO,SAASI,EAAYC,GACxB,OAAOA,GAAKA,EAAED,YAAcC,EAAED,cAAcE,OAASD,CACzD,CACO,SAASE,EAAgBC,GAC5B,OAAOA,EAAKtB,KAAI,SAAUmB,GACtB,OAAOD,EAAYC,EACvB,GACJ,C,iLCee,MAAMI,UAAmBC,EAAAA,GAQpCC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAqDC,GAC9HC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,0CAChBD,KAAKE,eAAiB,IAAIC,EAAAA,EAAgB,GAC9C,CAEAC,eAAAA,GAWI,OAV6B,MAAzBJ,KAAKK,mBACDL,KAAKM,WAAWC,SAASC,oBACzBR,KAAKK,iBAAmB,IAAIF,EAAAA,EAAgB,MAC5CH,KAAKS,mBAAmBT,KAAKM,WAAWC,SAASC,oBAC5CE,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAMA,EAAE3C,OAAS2C,EAAE,GAAK,QACjCiC,UAAUX,KAAKK,mBAEpBL,KAAKK,iBAAmB,IAAIF,EAAAA,EAAgBH,KAAKM,WAAWC,SAASK,QAGtEZ,KAAKK,gBAChB,CAEAQ,oBAAAA,GACI,OAAIb,KAAKM,WAAWC,SAASO,YAClBC,EAAAA,EAAAA,GAAK,CAACf,KAAKM,WAAWC,SAASO,aAE/Bd,KAAKI,iBAEpB,CAEAY,OAAAA,CAAQC,EAAmCC,GACvCnB,MAAMiB,QAAQC,EAAMC,GACpBlB,KAAKmB,OAAOF,EAAM,sBAClBjB,KAAKmB,OAAOF,EAAM,YAClBjB,KAAKmB,OAAOF,EAAM,wBAClBjB,KAAKmB,OAAOF,EAAM,qBACtB,CAEAG,OAAAA,CAAQF,GACJ,MAAM3G,EAASwF,MAAMqB,QAAQF,GAU7B,OATc,MAAV3G,IACAA,EAAO8G,SAAWrB,KAAKqB,SACU,MAA7BrB,KAAKsB,uBACL/G,EAAO+G,qBAAuBtB,KAAKsB,sBAER,MAA3BtB,KAAKuB,qBACLhH,EAAOgH,mBAAqBvB,KAAKuB,qBAGlChH,CACX,CAEA,mBAAMiH,CAAcC,GAChB,MAAMC,QAAkB1B,KAAK2B,YAAY,gBAAiBF,GAK1D,OAJAzB,KAAK4B,YAAa5B,KAAKM,WAAWC,SAASiB,eAAiBK,EAAAA,EAAwBC,SAAmC,aAAxBJ,EAASK,OAAOC,MAA+C,MAAxBN,EAASK,OAAOC,QAAkBN,EAASO,SAAYP,EAASO,SACtMjC,KAAKsB,qBAAuBI,EAASQ,SACrClC,KAAKE,eAAeiC,KAAKT,EAASQ,UAAY,IAC9ClC,KAAKoC,aACEV,CACX,CAEAE,WAAAA,CAAYS,GACRrC,KAAKqB,SAAWgB,EAChBrC,KAAKsC,UAAUH,KAAKE,EACxB,CAEAE,mBAAAA,GACI,OAAOC,EAAAA,EAAAA,GAAcxC,KAAKa,uBAAiEb,KAAKI,mBAA4DM,MAAKxC,EAAAA,EAAAA,IAAI,EAAEuE,EAAGC,MAAOC,EAAAA,EAAAA,IAAeD,EAAGD,EAAG,QAC1M,CAEAG,MAAAA,GACI,OAAOJ,EAAAA,EAAAA,GAAc,CAACzC,MAAM6C,SAAU5C,KAAKsC,UAAWtC,KAAK6C,YAAYnC,MAAKxC,EAAAA,EAAAA,IAAI,EAAE4E,EAAOzB,EAAU0B,MAAaA,GAASD,IAAU9C,KAAKM,WAAWC,SAASiB,eAAiBK,EAAAA,EAAwBmB,KAAM3B,KAC/M,CAEA4B,OAAAA,GACI,OAAOT,EAAAA,EAAAA,GAAc,CAACxC,KAAK4C,SAAU5C,KAAKE,iBAAiBQ,MAAKxC,EAAAA,EAAAA,IAAI,EAAE4E,EAAOI,KAAoBJ,EAAQ,GAAKI,EAAgB,CAACA,GAAiBlD,KAAKmD,mBAAmBpH,OAAS,EAAIiE,KAAKmD,mBAAqB,KACnN,E,6XCvEJ,IAAIC,EAAyF,KAYtF,MAAM1D,EAgCTC,WAAAA,CAAY/D,EAA0CgE,EAAwBC,EAAsBC,GAChGE,KAAKpE,cAAgBA,EACrBoE,KAAKzC,GAAKsC,EAAetC,GACzByC,KAAKC,SAAWJ,EAAewD,SAC/BrD,KAAKM,WAAaT,EAElBG,KAAKsD,SAA0B,MAAf1D,EAAsB,GAAKA,EAAY0D,UAAY,GACnEtD,KAAKuD,QAAyB,MAAf3D,EAAsB,GAAKA,EAAY2D,SAAW,GACjEvD,KAAKwD,OAAwB,MAAf5D,EAAsB,GAAKA,EAAY4D,QAAU,GAE/DxD,KAAKF,mBAAqBA,EACL,MAAjBlE,GAA2D,MAAlCkE,EAAmB2D,cAC5C3D,EAAmB2D,YAAczD,MAErCA,KAAK0D,kBAAoB,GACzB1D,KAAK2D,aAAe,CAAC,EACrB3D,KAAK4D,cAAgB,CAAC,EACtB,MAAMC,EAAgB,iBAAiBC,KAAK9D,KAAKM,WAAW+C,UAC5D,GAAqB,MAAjBQ,EACA,MAAM,IAAIE,MAAMrH,KAAKG,UAAUmD,KAAKM,aAExCN,KAAKC,SAAW,mCAAqC4D,EAAc,GACnE7D,KAAKgE,KAAO,KAEZhE,KAAKiE,wBAA0B,CAAC,EAEhCjE,KAAKkE,yBAA2B,IAAI/D,EAAAA,EAAgB,CAAC,GACrDH,KAAKgB,QAAQpB,GAAa,GAC1BI,KAAK5D,SAAW,GAChB4D,KAAKmE,WAAa,IAAIhE,EAAAA,EAAgB,IACtCH,KAAKoE,SAAW,IAAIjE,EAAAA,GAAgB,GACpCH,KAAKqE,aAAazE,GAElBI,KAAKsE,cAAWC,EAChBvE,KAAKwE,YAASD,EACdvE,KAAKyE,iBAAcF,EACnBvE,KAAK0E,eAAiB,GACtB1E,KAAK2E,iBAAmB,IAAIxE,EAAAA,EAAgBH,KAAK0E,eACrD,CAEAvD,MAAAA,CAAOF,EAAwB2D,EAAcC,EAAyBvK,GAClEuK,EAAUA,GAAWD,EAER,MAATtK,GAAyB,MAAR2G,IAEjB3G,EAAQ2G,EAAK2D,IAGjB5E,KAAK6E,GAAWvK,EAEW,MAAvB0F,KAAK6E,EAAU,KAEf7E,KAAK6E,EAAU,KAAO,IAAI1E,EAAAA,EAAgBH,KAAK6E,IAExCvK,GAAS0F,KAAK6E,EAAU,KAAKC,YAEpC9E,KAAK6E,EAAU,KAAK1C,KAAKnC,KAAK6E,GAGtC,CAEAR,YAAAA,CAAapD,GAETjB,KAAK5D,UAAY4D,KAAKM,WAAWlE,UAAY,IAAI8B,KAAI,CAAC6G,EAAiBC,KACnE,MAAMC,EAAYhE,EAAQA,EAAK7E,UAAY6E,EAAK7E,SAASL,OAASiJ,EAAQ/D,EAAK7E,SAAS4I,GAAU,CAAC,EAAkB,KACrH,OAAOE,EAAAA,EAAAA,GAAalF,KAAMiF,EAAYF,EAAiB/E,KAAKF,mBAAmB,IAEnFE,KAAKmE,WAAWhC,KAAKnC,KAAK5D,SAC9B,CAGAqE,kBAAAA,CAAmBlD,EAAY4H,EAAkBC,GAC7C,GAAU,MAAN7H,GAA4B,MAAd4H,EACd,OAAOpE,EAAAA,EAAAA,GAAK,CAAC,KAEU,MAAvBqC,IACAA,EAAsB,yCAE1B,MAAM5H,EAAcwE,KAAKM,WAAWC,SAAStF,aAAasC,IAAO4H,EACjE,GAAmB,MAAf3J,EACA,OAAOuF,EAAAA,EAAAA,GAAK,CAAC,KAEjB,MAAM7B,EAAOkE,EAAqBiC,MAAKC,GAAUA,EAAO7E,mBAAmBjF,EAAawE,KAAMoF,KAC9F,OAAO5C,EAAAA,EAAAA,GAAc,EAACzB,EAAAA,EAAAA,GAAK7B,GAAOc,KAAKkE,2BAA2BxD,MAC9D6E,EAAAA,EAAAA,IAAU,EAAEhL,EAAQ0J,KACe,MAA3BA,GAAmC1G,KAAM0G,GAClClD,EAAAA,EAAAA,GAAK,CAACkD,EAAwB1G,KAE9BhD,MAIvB,CAGA,iBAAMoH,CAAqB6D,EAAcvE,EAAcwE,GACnD,MAAMC,EAAW1F,KAAK2F,UAChBC,QAAY5F,KAAKF,mBAAmB+F,WAAW,cAAe,CAAEC,OAAQJ,EAASI,SACvF,IAAIC,EAAuB,CACvBC,SAAUN,EAASM,SACnBC,YAAaP,EAASO,YACtBC,SAAUR,EAASQ,SACnBC,QAAS,KACTC,UAAU,EACVC,SAAS,EACTC,QAAStG,KAAKF,mBAAmByG,cAAe,EAChDC,UAAWxG,KAAKF,mBAAmB2G,eAAgB,EACnDC,SAAU1G,KAAKF,mBAAmB4G,WAAY,EAC9CC,OAAQ3G,KAAKzC,GACbqJ,gBAAiB5G,KAAK6G,8BACtBrB,KAAMA,EACNvE,KAAMA,GAGM,MAAZwE,IACAM,EAAWN,EAASM,IAExB,MAAMe,QAAa9G,KAAKF,mBAAmBiH,UAAUnB,EAAK,CACtDoB,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpB3L,KAAMoB,KAAKG,UAAUkJ,KAEnBmB,QAAoBJ,EAAKK,OAE/B,OADezK,KAAKC,MAAMuK,EAAYnF,OAE1C,CAGAqF,6BAAAA,CAA8B7J,EAAY4H,EAAkBC,GACxD,MAAM7K,EAASyF,KAAKS,mBAAmBlD,EAAI4H,EAAYC,GACvD,OAAO5C,EAAAA,EAAAA,GAAc,CAACjI,EAAQ6I,IACzB1C,MAEGxC,EAAAA,EAAAA,IAAI,EAAE5D,EAAOgL,KAEFhL,EAAML,QAAO,CAAC6D,EAAGY,IAAMZ,GAA6B,IAAxBwH,EAAOzK,UAAU6D,KAAU,MAElE2I,EAAAA,EAAAA,MAEHC,WACT,CAGAC,yBAAAA,CAA0BhK,EAAY4H,EAAkBC,GACpD,OAAOpF,KAAKS,mBAAmBlD,EAAI4H,EAAYC,GAAO1E,MAAK2G,EAAAA,EAAAA,MAASC,WACxE,CAEAE,kBAAAA,GACI,OAA6B,MAAtBxH,KAAKpE,cAAwBoE,KAAKpE,cAAc4L,sBAAuBzG,EAAAA,EAAAA,GAAK,CAAC,IACxF,CAEA0G,cAAAA,CAAelK,EAAYmK,GACvB,MAAM,IAAI3D,KACd,CAEA4D,mBAAAA,CAAoBnC,EAAcoC,GAC9B,OAAOA,GACX,CAEAC,QAAAA,GACI,OAA0B,MAAtB7H,KAAKpE,cACEoE,KAAKpE,cAAciM,YAEnB9G,EAAAA,EAAAA,GAAK,EAAC,GAErB,CAEA+G,wBAAAA,GACI,OAAM9H,KAAKM,WAAWC,SAAsCwH,iBAAmBC,EAAAA,EAAgBC,UAAYD,EAAAA,EAAgBC,QAC7F,MAAtBjI,KAAKpE,cACEoE,KAAKpE,cAAckM,2BAEnBE,EAAAA,EAAgBE,MAGnBlI,KAAKM,WAAWC,SAAsCwH,eAEtE,CAEA/G,OAAAA,CAAQC,EAAuBC,GAC3BlB,KAAKmI,KAAOnI,KAAKmI,OAAQC,EAAAA,EAAAA,KACzBpI,KAAKgE,KAAe,MAAR/C,EACA,MAARA,IACAjB,KAAKsD,SAAWrC,EAAKqC,SACrBtD,KAAKuD,QAAUtC,EAAKsC,QACpBvD,KAAKwD,OAASvC,EAAKuC,QAAU,GAC7BxD,KAAKiE,wBAA0BhD,EAAKgD,wBACpCjE,KAAKkE,yBAAyB/B,KAAKnC,KAAKiE,0BAEvC/C,GACDlB,KAAK5D,SAASiC,SAAQ,CAACgK,EAAOrD,MACd,MAAR/D,GAAiBA,EAAK7E,UAAY6E,EAAK7E,SAASL,OAASiJ,IACzDqD,EAAMrH,QAAgB,MAARC,EAAe,KAAOA,EAAK7E,SAAS4I,GACtD,GAGZ,CAGA5D,OAAAA,CAAQF,GACJ,GAAIlB,KAAKgE,KACL,OAAO,KAEX,MAAMpB,EAAS5C,KAAK4C,SACd0F,EAAO,CAAC,EAMd,OALAA,EAAKlM,SAAW8E,EAAkB,KAAQlB,KAAK5D,SAAS8B,KAAIqK,GAAKA,EAAEnH,SAAQ,KAC3EkH,EAAK/K,GAAKyC,KAAKzC,GAEf+K,EAAKrI,SAAWD,KAAKC,SACrBqI,EAAKxF,MAAkB,MAAVF,GAAmE,MAAhDA,EAAoCkC,UAAoBlC,EAAoCkC,WACrHwD,CACX,CAEAE,gBAAAA,GACI,OAAOxI,KAAK5D,SAASqM,QAAO/J,GAAU,MAALA,IAAWzE,QAAO,CAAC6D,EAAGyK,IAAMzK,EAAE1D,OAAOmO,EAAEC,qBAAqB,GACjG,CAEAE,gBAAAA,GACI,OAAO1I,KAAKwI,mBAAmBzM,OAAS,CAC5C,CAEA4M,QAAAA,GAEI,OAAO3I,KAAKM,WAAWC,SAASO,YAAcd,KAAKM,WAAWC,SAASK,OAASZ,KAAKM,WAAWC,SAASqI,cAAgB5I,KAAKM,WAAWC,SAASsI,iBACtJ,CAEAC,gBAAAA,CAAiBX,GACb,GAAInI,KAAKmI,MAAQA,EACb,OAAOnI,KAEX,IAAIzF,EAAS,KAOb,OANAyF,KAAK5D,SACAqM,QAAO/J,GAAU,MAALA,IACZqK,MAAK1J,IACF9E,EAAS8E,EAAEyJ,iBAAiBX,GACX,MAAV5N,KAERA,CACX,CAEAyO,oBAAAA,CAAqBb,GACjB,GAAInI,KAAKmI,MAAQA,EACb,MAAO,CAACnI,MAEZ,IAAIzF,EAAS,KAOb,OANAyF,KAAK5D,SACAqM,QAAO/J,GAAU,MAALA,IACZqK,MAAK1J,IACF9E,EAAS8E,EAAE2J,qBAAqBb,GACf,MAAV5N,KAED,MAAVA,EACO,KAEJ,CAACyF,MAAM5F,OAAOG,EACzB,CAEAsM,2BAAAA,GACI,MAAMtM,EAAS,GACf,IAAI0O,EAAKjJ,KACT,KAA2B,MAApBiJ,EAAGrN,eACNrB,EAAO2O,KAAKD,EAAGrN,cAAcQ,SAAS+M,QAAQF,IAC9CA,EAAKA,EAAGrN,cAGZ,OADArB,EAAO6O,UACA7O,CACX,CAEA8O,oBAAAA,CAAmDnK,GAC/C,OAAOc,KAAKsJ,oBAAoBpK,EACpC,CAEAoK,mBAAAA,CAAoBpK,GAChB,MAAM3E,EAAS,GAEf,OADAyF,KAAKuJ,qBAAqBrK,EAAM3E,GACzBA,CACX,CAEAgP,oBAAAA,CAAqBrK,EAA2C3E,GACxD2E,EAAKsK,MAAMxJ,KAAM,CAACA,QAClBzF,EAAO2O,KAAKlJ,MAEhBA,KAAK5D,SAASqM,QAAO/J,GAAU,MAALA,IAAWL,SAAQgK,GAASA,EAAMkB,qBAAqBrK,EAAM3E,IAC3F,CAGAkP,gBAAAA,CAAiBlM,EAAYmM,GACzB,MAAMnP,EAASyF,KAAK2J,kBAAkBpM,EAAImM,GAC1C,GAAqB,GAAjBnP,EAAOwB,OACP,OAAOgF,EAAAA,EAAAA,GAAK,CAAC,KAGjB,MAAM6I,EAAarP,EAAOkO,QAAO/J,GAAKA,EAAEgC,OAElCmJ,EAAgBtP,EAAOkO,QAAO/J,IAAMA,EAAEgC,OAI5C,OAHImJ,EAAc9N,OAAS,GACvB6N,EAAWV,MAAKnI,EAAAA,EAAAA,GAAK,CAAC8I,KAEE,GAArBD,EAAW7N,QAAcgF,EAAAA,EAAAA,GAAK,CAAC,KAA4B,GAArB6I,EAAW7N,OAAc6N,EAAW,IAAKpH,EAAAA,EAAAA,GAAcoH,GAAYlJ,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAKoL,EAAcpL,KAChJ,CAEAqL,cAAAA,CAAe5D,EAAwB6D,GACnC,OAAe,MAAX7D,EACOnG,KAEJ,IAAIiK,EAAYjK,KAAMmG,EAAS6D,EAC1C,CAEAE,cAAAA,CAAe3M,EAAYmM,GACvB,OAAO1J,KAAKyJ,iBAAiBlM,EAAImM,GAAahJ,MAAK6E,EAAAA,EAAAA,IAAU4E,IAAY3H,EAAAA,EAAAA,GAAc2H,EAASjM,KAAIQ,GAAMA,EAAoC0L,yBAAwB1J,MAAKxC,EAAAA,EAAAA,IAAImM,GAAkBP,EAAcO,QACnN,CAEAV,iBAAAA,CAAkBpM,EAAYmM,GAC1B,OAAI1J,KAAKzC,IAAMA,EACJ,CAACyC,MAEuC,GAA/CA,KAAK5D,SAASqM,QAAO/J,GAAU,MAALA,IAAW3C,OAC9B,GAEJ+N,EAAc9J,KAAK5D,SAASqM,QAAO/J,GAAU,MAALA,IAAWR,KAAImK,GAASA,EAAMsB,kBAAkBpM,EAAImM,KACvG,CAEA9G,MAAAA,CAAO0H,EAA2BpJ,GAY9B,GATAoJ,IAAoBA,EACpBpJ,IAAoBA,EACW,MAA3BlB,KAAKuK,qBACLvK,KAAKuK,mBAAqB,CACtBC,KAAM,CAAEA,UAAMjG,EAAWkG,WAAOlG,GAChCkG,MAAO,CAAED,UAAMjG,EAAWkG,WAAOlG,KAIwB,MAA7DvE,KAAKuK,mBAAmBD,GAAiBpJ,GACzC,GAAIA,EAEAlB,KAAKuK,mBAAmBD,GAAiBpJ,IAAmBH,EAAAA,EAAAA,GAAK,EAAC,QAC/D,CACH,MAiBM2J,EAjBS1K,KAAKmE,WAAWzD,MAC3B6E,EAAAA,EAAAA,IAAUnJ,GACoC,GAA1CA,EAASqM,QAAO/J,GAAU,MAALA,IAAW3C,QAC1BgF,EAAAA,EAAAA,GAAK,CAAC,MACNyB,EAAAA,EAAAA,GACIpG,EACKqM,QAAO/J,GAAU,MAALA,IACZR,KAAIqK,IACM/F,EAAAA,EAAAA,GAAc+F,EAAE3F,OAAO0H,EAAiBpJ,GAAkBlB,KAAK2K,gBAAgBpC,IAAI7H,MAEtFxC,EAAAA,EAAAA,IAAI,EAAE4E,EAAO8H,MAAoBA,GAAgB9H,WAK3E5E,EAAAA,EAAAA,IAAI2M,GAAWA,EAAQC,OAAMpM,GAAKA,OAEXgC,MAAKqK,EAAAA,EAAAA,GAAM,CAAEC,qBAAqB,EAAMC,UAAWA,IAAM,IAAIC,EAAAA,EAAc,MAEtGlL,KAAKuK,mBAAmBD,GAAiBpJ,GAAmBwJ,CAChE,CAGJ,OAAO1K,KAAKuK,mBAAmBD,GAAiBpJ,EACpD,CAEA+B,OAAAA,GACI,OAAOlC,EAAAA,EAAAA,GAAK,CAAC,IACjB,CAEAoK,eAAAA,GACI,OAAOnL,KAAK2E,iBAAiBjE,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAMA,EAAE3C,OAAS,EAAI2C,EAAE0M,KAAK,KAAO,KAC7E,CAEA,yBAAMC,CAAoBf,GACtB,MAAOgB,EAAWC,SAA6BC,QAAQC,IAAI,CAACzL,KAAK4C,OAAO0H,GAAiB,GAAM5J,MAAK2G,EAAAA,EAAAA,MAASC,YAAatH,KAAKmL,kBAAkBzK,MAAK2G,EAAAA,EAAAA,MAASC,cAC/J,KAAMgE,KAAchO,EAAAA,EAAAA,IAAmBiO,KAAyBvL,KAAKyE,YACjE,OAAOzE,KAEX,IAAK,MAAMqI,KAASrI,KAAK5D,SAAU,CAC/B,MAAMsP,QAAmBrD,EAAMgD,sBAC/B,GAAkB,MAAdK,EACA,OAAOA,CAEf,CACA,OAAO,IACX,CAEAC,qBAAAA,GACI,GAAI3L,KAAKyE,YACL,OAAOzE,KAEX,IAAK,MAAMqI,KAASrI,KAAK5D,SAAU,CAC/B,MAAMsP,EAAarD,EAAMsD,wBACzB,GAAkB,MAAdD,EACA,OAAOA,CAEf,CACA,OAAO,IACX,CAKA,uBAAME,GACF,MAAMC,EAAc,GACdC,QAAmB9L,KAAKiD,UAAUvC,MAAK2G,EAAAA,EAAAA,MAASC,YACpC,MAAdwE,GAAsBA,EAAW/P,OAAS,GAC1C8P,EAAY3C,KAAK4C,GAErB,IAAK,MAAMzD,KAASrI,KAAK5D,SAAU,CAC/B,MAAM2P,QAAe1D,EAAMuD,oBACb,MAAVG,GAAkBA,EAAOhQ,OAAS,GAClC8P,EAAY3C,KAAK6C,EAEzB,CACA,OAAOjC,EAAc+B,EACzB,CAEAhJ,OAAAA,GACI,OAAO7C,KAAKoE,QAChB,CAEAhC,UAAAA,GACIpC,KAAKoE,SAASjC,MAAK,EACvB,CAGAwI,eAAAA,CAAgBtC,GACZ,OAA6B,MAAtBrI,KAAKpE,cAAwBoE,KAAKpE,cAAc+O,gBAAgB3K,OAAQe,EAAAA,EAAAA,GAAK,EAAC,GACzF,CAGAiL,uBAAAA,CAAwB3D,GACpB,OAA6B,MAAtBrI,KAAKpE,cAAwBoE,KAAKpE,cAAcoQ,wBAAwBhM,OAAQe,EAAAA,EAAAA,GAAK,EAAC,GACjG,CAGAkL,kBAAAA,GACI,OAA6B,MAAtBjM,KAAKpE,cAAwBoE,KAAKpE,cAAcoQ,wBAAwBhM,OAAQe,EAAAA,EAAAA,GAAK,EAAC,GACjG,CAEAmL,aAAAA,GACI,OAA6B,MAAtBlM,KAAKpE,cAAwBoE,KAAKpE,cAAcsQ,iBAAkBnL,EAAAA,EAAAA,GAAK,CAAC,IACnF,CAEAoL,oBAAAA,GACI,OAA6B,MAAtBnM,KAAKpE,cAAwBoE,KAAKpE,cAAcuQ,wBAAyBpL,EAAAA,EAAAA,GAAK,GACzF,CAGA4E,OAAAA,GACI,OAA6B,MAAtB3F,KAAKpE,cAAwBoE,KAAKpE,cAAc+J,UAAY3F,IACvE,CAEAoM,iBAAAA,GACIpM,KAAKwE,QAAS,EACdxE,KAAK5D,SACAqM,QAAO/J,GAAU,MAALA,IACZL,SAAQgK,IACLA,EAAM+D,mBAAmB,GAErC,CAEAC,eAAAA,CAAgBC,GAEO,MAAfA,IAAiD,WAAxBtM,KAAKM,WAAWkF,MAAoD,WAA/B8G,EAAYhM,WAAWkF,MAA+C,mBAAxBxF,KAAKM,WAAWkF,MAA4D,mBAA/B8G,EAAYhM,WAAWkF,MAA0C,MAAXxF,KAAKzC,IAAcyC,KAAKzC,IAAM+O,EAAY/O,MACzP+O,EAAYnE,KAAOnI,KAAKmI,KACxBmE,EAAYhI,SAAWtE,KACvBA,KAAKsE,SAAWgI,EAChBtM,KAAKuM,YAAcvM,KAAKwM,mBAE5BxM,KAAKwE,QAAS,EACdxE,KAAK5D,SACAqM,QAAO/J,GAAU,MAALA,IACZL,SAAQgK,IACL,MAAMoE,EAAgC,MAAfH,EAAsB,GAAKA,EAAYlQ,SAASqM,QAAO/J,GAAU,MAALA,IAAW+J,QAAO/J,GAA+B,mBAAzB2J,EAAM/H,WAAWkF,MAAkD,mBAArB9G,EAAE4B,WAAWkF,MAAuC,MAAR9G,EAAEnB,IAAcmB,EAAEnB,IAAM8K,EAAM9K,KACnO8K,EAAMgE,gBAAgBI,EAAe1Q,OAAS,EAAI0Q,EAAe,GAAK,KAAK,IAEhE,MAAfH,IACAA,EAAY9H,QAAS,EACrB8H,EAAYlQ,SACPqM,QAAO/J,GAAU,MAALA,IACZ+J,QAAO/J,IAAMsB,KAAK5D,SAASqM,QAAO/J,GAAU,MAALA,IAAWqK,MAAK2D,GAAKA,EAAEnP,IAAMmB,EAAEnB,OACtEc,SAAQgK,IACLA,EAAM+D,mBAAmB,IAGzC,CAEAO,cAAAA,GACI,OAAqB,MAAjB3M,KAAKsE,SACEtE,KAAKwE,OAAS,UAAY,MAEb,MAApBxE,KAAKuM,aAAuBvM,KAAKuM,YAAYxQ,OAAS,EAC/C,UAEJ,IACX,CAEA6Q,mBAAAA,GACI,IAAIC,EAAa7M,KAAK2M,iBAMtB,OALkB,MAAdE,IACI7M,KAAK5D,SAASL,QAAUiE,KAAKsE,SAAUlI,SAASL,QAAUiE,KAAK5D,SAAS2M,MAAKV,GAAwC,MAA/BA,EAAMuE,yBAAkC5M,KAAKsE,SAAUlI,SAAS2M,MAAKV,GAAmC,MAA1BA,EAAMsE,sBAC1KE,EAAa,WAGdA,CACX,CAEAL,eAAAA,GACI,GAAqB,MAAjBxM,KAAKsE,SACL,MAAO,GAEX,MAAM/J,EAAS,GAsCf,OAnCA,SAASuS,EAAQC,EAAuBC,EAAuBC,GAC3D,SAASC,EAAWC,EAA4BC,EAAsBC,GAClE,GAAI1O,MAAMC,QAAuB,MAAfwO,EAAsBC,EAAiBD,GAAc,CACnE,MAAME,EAA2BF,GAA6B,GACxDG,EAA8BF,GAAgC,GAChEC,EAAavR,SAAWwR,EAAgBxR,QACxCxB,EAAO2O,KAAK,CAAEsE,IAAKL,EAAc,UAAWC,YAAaE,EAAavR,OAAQsR,eAAgBE,EAAgBxR,SAElH,IAAK,IAAIiJ,EAAQ,EAAGA,EAAQyI,KAAKC,IAAIJ,EAAavR,OAAQwR,EAAgBxR,QAASiJ,IAC/E8H,EAAQK,EAAc,IAAMnI,EAAQ,IAAKsI,EAAatI,GAAQuI,EAAgBvI,GAEtF,KAAiF,WAAtD,MAAfoI,SAA6BC,SAAwBD,GAC7DN,EAAQK,EAAaC,EAAaC,GAE9B3Q,KAAKG,UAAUuQ,KAAiB1Q,KAAKG,UAAUwQ,IAC/C9S,EAAO2O,KAAK,CAAEsE,IAAKL,EAAaC,cAAaC,kBAGzD,CACA,GAA6E,WAAxD,MAAhBL,SAA8BC,SAAyBD,GAA2B,CAEnF,MAAMW,EAAuCX,GAAyC,CAAC,EAEjFY,EAA0CX,GAA4C,CAAC,GAC7FY,EAAAA,EAAAA,GAASC,OAAOC,KAAKJ,GAAevT,OAAO0T,OAAOC,KAAKH,KAAoBvP,SAAQmP,IAI/EN,EAH8B,MAAVH,EAAiBS,EAAa,MAAPA,EAAcT,EAAS,IAAMS,EAAMT,EAC1DC,EAAeW,EAAcH,GAAO,KACjCP,EAAkBW,EAAiBJ,GAAO,KACb,GAE5D,MACIN,EAAWH,EAAQC,EAAcC,EAEzC,CACAH,CAAQ,KApCa9M,KAAKsE,SAAShE,WAAWC,SACtBP,KAAKM,WAAWC,UAoCjChG,CACX,EAGJ,SAASyT,EAAoBlS,GACzB,OAAY,MAARA,GAA+B,GAAfA,EAAKC,OACd,GAEJD,EAAKmS,MAAM,oBAAqB/P,KAAI,SAAUmB,GACjD,OAAOA,EAAE5E,QAAQ,OAAQ,KAAKA,QAAQ,QAAS,KACnD,GACJ,CAEA,SAAS8E,EAAgBC,GACrB,OAAOA,EAAKtB,KAAI,SAAUmB,GACtB,OAAOD,EAAYC,EACvB,GACJ,CAEA,SAASD,EAAYC,GACjB,OAAOA,GAAKA,EAAED,YAAcC,EAAED,cAAcE,OAASD,CACzD,CAEA,SAAS6O,EAAoBC,EAAkC1C,EAAcwC,EAAUG,GACnF,OAAO,SAAU/O,GACb,GAAI4O,EACA,GAAIE,EAAQ9O,EAAG4O,IACX,IAAKxC,EACD,OAAO,OAER,GAAIA,EACP,OAAO,EAGf,IAAIlR,EAASkR,EAKb,OAJA2C,EAAUrF,MAAK,SAAUsF,GAErB,OADA9T,EAAS4T,EAAQ9O,EAAGgP,GACb5C,GAAOlR,EAASA,CAC3B,IACOA,CACX,CACJ,CACA,SAAS+T,EAAUH,EAA4C1C,GAC3D,OAAO,SAAU8C,EAAoBN,EAAeG,GAChD,GAAuB,GAAnBG,EAASxS,OACT,OAAO0P,EAEX,MAAM+C,EAAU,SAAUnP,GACtB,OAAY,MAALA,EAAY,GAAKA,CAC5B,EAIMoP,EAAWP,GAHA,SAAUxP,EAAWgO,GAClC,OAAOyB,EAAQK,EAAQ9P,GAAI8P,EAAQ9B,GACvC,GAC4CjB,EAAKwC,EAAOG,GACxD,IAAI7T,EAASkR,EAKb,OAJA8C,EAASxF,MAAK,SAAU1J,GAEpB,OADA9E,EAASkU,EAASpP,GACXoM,GAAOlR,EAASA,CAC3B,IACOA,CACX,CACJ,CACA,SAASmU,EAAYP,GACjB,OAAO,SAAUI,EAAoBN,EAAeG,GAChD,MAAMK,EAAWP,EAAiBC,GAAS,EAAMzT,WAAWuT,GAAQG,EAAUlQ,IAAIxD,aAElF,IAAIH,GAA0C,EAU9C,OATAgU,EAASlQ,SAAQ,SAAUgB,GACvB,MAAMsP,EAAajU,WAAW2E,GAC9B,OAAIzE,MAAM+T,IACNpU,EAAS,uBACF,IAEXA,EAASA,GAAUkU,EAASE,GACrBpU,EACX,IACOA,CACX,CACJ,CAEA,SAASqU,EAAWL,EAAoBN,EAAsBG,EAAqBS,GA2B/E,OAzBiB,UAAbA,EACMP,GAAU,SAAU5P,EAAGgO,GACnB,OAAOhO,GAAKgO,CAChB,IAAG,GACU,aAAbmC,EACEP,GAAU,SAAU5P,EAAGgO,GACnB,OAAOhO,GAAKgO,CAChB,IAAG,GACU,YAAbmC,EACEH,GAAY,SAAUhQ,EAAGgO,GACrB,OAAOhO,EAAIgO,CACf,IACa,qBAAbmC,EACEH,GAAY,SAAUhQ,EAAGgO,GACrB,OAAOhO,GAAKgO,CAChB,IACa,eAAbmC,EACEH,GAAY,SAAUhQ,EAAGgO,GACrB,OAAOhO,EAAIgO,CACf,IACa,wBAAbmC,EACEH,GAAY,SAAUhQ,EAAGgO,GACrB,OAAOhO,GAAKgO,CAChB,IACA,MACJ6B,EAAUN,EAAQG,EACtC,CAEA,SAASU,EAAWC,GAChB,OAAiB,MAAVA,GAAkBA,EAAOhG,MAAKzO,GAAkB,MAATA,IAAkB,QAAQ0U,KAAK1U,IACjF,CAEA,SAAS2U,EAAqBC,EAA+BC,EAAsBC,GAC/E,MAAMC,EAAUH,EAAME,GAChBjQ,EAAUI,EAAgByO,EAAoBkB,EAAM,GAAGE,eACvDE,EAActB,EAAoBkB,EAAM,GAAGE,kBAC3CG,EAAaJ,EAAW1G,QAAOpJ,GAAKF,EAAQ4J,MAAKyG,GAAKA,GAAKpQ,EAAYC,IAAIF,KAC3E6F,EAAQ7F,EAAQgK,QAAQ/J,EAAYmQ,EAAW,KAErD,OADyBF,EAAQ5U,QAAQ,MAAO6U,EAAYtK,GAEhE,CAEA,SAAS8E,EAAiB/P,GACtB,OAAO4E,MAAM8Q,UAAUrV,OAAOoP,MAAM,GAAIzP,EAC5C,CAGO,MAAMkQ,UAAoBvK,EAI7BC,WAAAA,CAAY+P,EAA6BvJ,EAAwB6D,GAC7DjK,MAAM2P,EAAQ9T,cAAe,CAAE0H,SAAUoM,EAAQpM,SAAUC,QAASmM,EAAQnM,QAASC,OAAQkM,EAAQlM,OAAQ2C,UAAS6D,aAAY5N,SAAUsT,EAAQtT,UAA+DsT,EAAQpP,WAAYoP,EAAQ5P,oBAC/OE,KAAK0P,QAAUA,EACf1P,KAAKmG,QAAUA,EACfnG,KAAKgK,WAAaA,CACtB,CAEA3F,YAAAA,CAAapD,GACTjB,KAAK5D,SAAY6E,EAAK7E,SACjBqM,QAAO/J,GAAU,MAALA,IACZ+J,QAAO/J,GAA2B,WAArBA,EAAE4B,WAAWkF,MAA0C,qBAArB9G,EAAE4B,WAAWkF,KAA+B9G,EAAE4B,WAAWC,SAA0B4F,SAAWlF,EAAKkF,QAA+B,gBAArBzH,EAAE4B,WAAWkF,KAAyB9G,EAAEnB,IAAM0D,EAAKkF,QAA+B,oBAArBzH,EAAE4B,WAAWkF,KAAgD,MAAnBvE,EAAK+I,YAAuBtL,EAAE4B,WAAWC,SAAmCyJ,YAAc/I,EAAK+I,WAAkC,mBAArBtL,EAAE4B,WAAWkF,MAAyD,iBAArB9G,EAAE4B,WAAWkF,OAC7atH,KAAIQ,GAAK,IAAIuL,EAAYvL,EAAIuC,EAAgCkF,QAAUlF,EAAgC+I,cAC5GhK,KAAKmE,WAAWhC,KAAKnC,KAAK5D,SAC9B,CAEAmN,oBAAAA,CAAqBrK,EAA2C3E,GACxB,qBAAhCyF,KAAK0P,QAAQpP,WAAWkF,MAIxBtG,EAAKsK,MAAMxJ,KAAK0P,QAAS,CAAC1P,KAAK0P,WAC/BnV,EAAO2O,KAAKlJ,KAAK0P,SAErB1P,KAAK5D,SAASqM,QAAO/J,GAAU,MAALA,IAAWL,SAAQgK,GAASA,EAAMkB,qBAAqBrK,EAAM3E,MANnFyF,KAAK0P,QAAQnG,qBAAqBrK,EAAM3E,EAOhD,CAEAuO,gBAAAA,CAAiBX,GACb,GAAoC,qBAAhCnI,KAAK0P,QAAQpP,WAAWkF,KACxB,OAAOxF,KAAK0P,QAAQ5G,iBAAiBX,GAEzC,GAAInI,KAAK0P,QAAQvH,MAAQA,EACrB,OAAOnI,KAAK0P,QAEhB,IAAInV,EAAS,KAOb,OANAyF,KAAK5D,SACAqM,QAAO/J,GAAU,MAALA,IACZqK,MAAK1J,IACF9E,EAAS8E,EAAEyJ,iBAAiBX,GACX,MAAV5N,KAERA,CACX,CACAoP,iBAAAA,CAAkBpM,EAAYmM,GAC1B,MAAoC,qBAAhC1J,KAAK0P,QAAQpP,WAAWkF,KACjBxF,KAAK0P,QAAQ/F,kBAAkBpM,EAAImM,GAE1C1J,KAAK0P,QAAQnS,IAAMA,EACZ,CAACyC,KAAK0P,SAEkC,GAA/C1P,KAAK5D,SAASqM,QAAO/J,GAAU,MAALA,IAAW3C,OAC9B,GAEJ+N,EAAc9J,KAAK5D,SAASqM,QAAO/J,GAAU,MAALA,IAAWR,KAAImK,GAASA,EAAMsB,kBAAkBpM,EAAImM,KACvG,EAKG,MAAMiG,UAA4JjQ,EAarKC,WAAAA,CAAY/D,EAA0CgE,EAAwBC,EAAsBC,GAChGC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAK4P,OAAyB,MAAfhQ,EAAsBI,KAAK6P,2BAA6BjQ,EAAYtF,MACnF0F,KAAK8P,QAAU9P,KAAK8P,SAAW,IAAI3P,EAAAA,EAAgBH,KAAK4P,QAExD5P,KAAK+P,UAA2B,MAAfnQ,GAA0D,GAAnCkO,OAAOC,KAAKnO,GAAa7D,OAAiD,MAAnCiE,KAAK6P,2BAAqCjQ,EAAYoQ,SACrIhQ,KAAKiQ,WAAajQ,KAAKiQ,YAAc,IAAI9P,EAAAA,EAAgBH,KAAK+P,WAE9D/P,KAAKkQ,qBAAuBlQ,KAAKkQ,sBAAwB,IAAI/P,EAAAA,EAAgBH,KAAKmQ,qBAAuB,CAAC,GAC1GnQ,KAAKoQ,UAAW,CACpB,CACApP,OAAAA,CAAQC,EAAwBC,GAC5BnB,MAAMiB,QAAQC,EAAMC,GACpBlB,KAAKmB,OAAOF,EAAM,QAAS,UAC3BjB,KAAKmB,OAAOF,EAAM,WAAY,aAC9BjB,KAAKmB,OAAOF,EAAM,sBACtB,CACA4O,wBAAAA,GACI,MAAMQ,EAAYrQ,KAAKF,mBAAmB2D,aAAaC,kBACjDsB,EAAqB,MAAbqL,GAAyC,GAApBA,EAAUtU,OAAc,EAAIsU,EAAU,GACnE1M,EAAgB3D,KAAKF,mBAAmB2D,aAAaE,cAAgB,CAAC,EAC5E,OAAI3D,KAAKzC,MAAOoG,EACLA,EAAa3D,KAAKzC,IAAKyH,GAEvB,IAEf,CAEA7D,MAAAA,CAAOF,EAAwB2D,EAAcC,EAAyBvK,GACrD,MAATA,GAAyB,MAAR2G,GAAwB,SAAR2D,IACjCtK,EAAQ0F,KAAK6P,4BAEJ,MAATvV,GAAyB,MAAR2G,GAAwB,YAAR2D,IACjCtK,EAA2C,MAAnC0F,KAAK6P,4BAEjB9P,MAAMoB,OAAOF,EAAM2D,EAAMC,EAASvK,EACtC,CACA8G,OAAAA,CAAQF,GACJ,MAAM3G,EAASwF,MAAMqB,QAAQF,GAO7B,OANc,MAAV3G,IAEAA,EAAOD,MAAuB,MAAf0F,KAAK4P,OAAiB,GAAK5P,KAAK4P,OAE/CrV,EAAO+V,SAAWtQ,KAAK+P,WAEpBxV,CACX,CACAqI,MAAAA,CAAO0H,EAA2BpJ,GAW9B,GAVAoJ,IAAoBA,EACpBpJ,IAAoBA,EAGW,MAA3BlB,KAAKuQ,qBACLvQ,KAAKuQ,mBAAqB,CACtB/F,KAAM,CAAEA,UAAMjG,EAAWkG,WAAOlG,GAChCkG,MAAO,CAAED,UAAMjG,EAAWkG,WAAOlG,KAGsF,MAA3HvE,KAAKuQ,mBAAmBjG,EAAgB9P,YAAgC0G,EAAgB1G,YAAyC,CACjI,MAAMoI,EAAS7C,MAAM6C,OAAO0H,EAAiBpJ,GACvCsP,EAAaxQ,KAAKiD,UAAUvC,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAiB,GAAZA,EAAE3C,UAC5CxB,GAASiI,EAAAA,EAAAA,GAAcI,EAAQ5C,KAAK6C,UAAW7C,KAAKiM,qBAAsBuE,GAAY9P,MAAKxC,EAAAA,EAAAA,IAAI,EAAEuS,EAAY1N,EAAQ2N,EAAkBpF,KAAemF,MAAe1N,GAAUuH,GAAmBoG,IAAmBpF,MAC3NtL,KAAKuQ,mBAAmBjG,EAAgB9P,YAAgC0G,EAAgB1G,YAAkCD,EAAOmG,MAAKqK,EAAAA,EAAAA,GAAM,CAAEC,qBAAqB,EAAMC,UAAWA,IAAM,IAAIC,EAAAA,EAAc,KAChN,CACA,OAAOlL,KAAKuQ,mBAAmBjG,EAAgB9P,YAAgC0G,EAAgB1G,WACnG,CACA4F,eAAAA,GAWI,OAV6B,MAAzBJ,KAAKK,mBACAL,KAAKM,WAAWC,SAAuDC,mBACxER,KAAKK,iBAAmBL,KAAKS,mBAAoBT,KAAKM,WAAWC,SAAuDC,oBAAoBE,MACxIxC,EAAAA,EAAAA,IAAIQ,GAAMA,EAAE3C,OAAS2C,EAAE,GAAK,QAC5BqM,EAAAA,EAAAA,GAAM,CAAEC,qBAAqB,EAAMC,UAAWA,IAAM,IAAI9K,EAAAA,EAAgB,SAG5EH,KAAKK,kBAAmBU,EAAAA,EAAAA,GAAK,CAACf,KAAKM,WAAWC,SAASK,OAAS,QAGjEZ,KAAKK,gBAChB,CAEAQ,oBAAAA,GACI,OAAIb,KAAKM,WAAWC,SAASO,YAClBC,EAAAA,EAAAA,GAAK,CAACf,KAAKM,WAAWC,SAASO,aAE/Bd,KAAKI,iBAEpB,CAEAmC,mBAAAA,GACI,OAAOC,EAAAA,EAAAA,GAAcxC,KAAKa,uBAAwBb,KAAKI,mBAAmBM,MAAKxC,EAAAA,EAAAA,IAAI,EAAEuE,EAAGC,MAAOC,EAAAA,EAAAA,IAAeD,EAAGD,EAAG,QACxH,CACAkO,QAAAA,CAASrW,GAEL,MAAMyI,EAAS/C,KAAKoQ,UAAYpQ,KAAK4P,QAAUtV,EAC/C0F,KAAK4P,OAAStV,EACV0F,KAAK8P,QAAQhL,YAAcxK,GAC3B0F,KAAK8P,QAAQ3N,KAAK7H,GAEtB0F,KAAK+P,WAAY,EACZ/P,KAAKiQ,WAAWnL,YACjB9E,KAAKiQ,WAAW9N,MAAK,GAErBY,GACA/C,KAAKoC,YAGb,CACA9H,KAAAA,GACI,OAAO0F,KAAK4P,MAChB,CACAgB,MAAAA,GACI,OAAO5Q,KAAK8P,OAChB,CAEAe,UAAAA,GACI,OAAO7Q,KAAK8P,QAAQpP,MAAKxC,EAAAA,EAAAA,IAAI5D,GAAmB,MAATA,EAAgB,GAAKqE,MAAMC,QAAQtE,GAASA,EAAQ,CAACA,KAChG,CACAwW,eAAAA,GACI,MAAM,IAAI/M,MAAM,MACpB,CACAgN,SAAAA,GACI,OAAO/Q,KAAKiQ,UAChB,CAEAe,aAAAA,GACI,GAAIhR,KAAKM,WAAWC,SAAS0Q,0BACzB,OAAOjR,KAAKS,mBAAmBT,KAAKM,WAAWC,SAAS0Q,2BAA2BvQ,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAKA,EAAE+J,QAAO/J,KAAMpB,EAAAA,EAAAA,IAAmBoB,QAChI,CACH,MAAMwS,EAAWlR,KAAKM,WAAWC,SAAS4Q,aAC1C,OAAI7T,EAAAA,EAAAA,IAAmB4T,IACZnQ,EAAAA,EAAAA,GAAK,CAAC,MAENA,EAAAA,EAAAA,GAAK,CAAC,CAACmQ,IAEtB,CACJ,CAGA9G,mBAAAA,GAGI,GAAiC,MAA7BpK,KAAKoR,qBAA8B,CACnC,MAAMC,EAAQ,EAIVnT,EAAAA,EAAAA,IAAK5D,IAA8B,MAATA,EAAgB,GAAKqE,MAAMC,QAAQtE,GAASA,EAAQ,CAACA,IAAQmO,QAAO/J,KAAMpB,EAAAA,EAAAA,IAAmBoB,QAM3H2S,EAAMnI,MACF3D,EAAAA,EAAAA,IAAUjL,IAEN,MAAMwN,EAA2B9H,KAAK8H,2BAChChD,EAAWA,IACb9E,KAAKiQ,WAAWvP,MACZ6E,EAAAA,EAAAA,IAAUyK,GAEFA,GACOjP,EAAAA,EAAAA,GAAK,CAACzG,IAEN0F,KAAKgR,mBAI5B,OAAIlJ,GAA4BE,EAAAA,EAAgBsJ,aACrCxM,IAEA9E,KAAK6H,WAAWnH,MACnB6E,EAAAA,EAAAA,IAAUlG,GAEFA,EACOyF,IACAgD,GAA4BE,EAAAA,EAAgBE,OAC5CnH,EAAAA,EAAAA,GAAK,CAAC,KACN+G,GAA4BE,EAAAA,EAAgBuJ,aAC5CvR,KAAKgR,iBAGLjQ,EAAAA,EAAAA,GAAK,CAAC,OAI7B,KAMR,MAAMyQ,EAAUxR,KAAK8P,QAEf2B,EAAqBD,EAAQ9Q,KAAK8I,MAAMgI,EAASH,GACvDrR,KAAKoR,qBAAuBK,EAAmB/Q,MAI3CqK,EAAAA,EAAAA,GAAM,CAAEC,qBAAqB,EAAMC,UAAWA,IAAM,IAAIC,EAAAA,EAAc,KAK9E,CAEA,OAAOlL,KAAKoR,oBAChB,CACAM,kBAAAA,GACI,OAAO1R,KAAKoK,sBACP1J,MAAK2G,EAAAA,EAAAA,GAAM,KAAM,KACjBC,WACT,CACAqK,MAAAA,GACI,OAAO3R,KAAKkQ,qBAAqBxP,MAAKxC,EAAAA,EAAAA,IAAIgR,GAASpB,OAAO8D,OAAO,CAAC,EAAsC,MAAT1C,EAAgBlP,KAAKM,WAAW6P,oBAAsBjB,KACzJ,CACAjM,OAAAA,GAGI,GAAgC,MAA5BjD,KAAK6R,oBAA6B,CAClC,MAAMtX,EAASyF,KAAK2R,SAASjR,MACzB6E,EAAAA,EAAAA,IAAU2J,IACN,GAAiC,GAA7BpB,OAAOC,KAAKmB,GAAOnT,OACnB,OAAOgF,EAAAA,EAAAA,GAAK,CAAC,KAEjB,MAAMqJ,EAAsBpK,KAAKoK,sBAC3B0H,EAAmC,GACnCC,EAAWjE,OAAOC,KAAKmB,GAC7B,SAAS8C,EAAiB9S,GACtB4S,EAAS5I,KACLkB,EAAoB1J,MAChBxC,EAAAA,EAAAA,GAAIgB,IACJhB,EAAAA,EAAAA,IAAIQ,GAAW6F,MAAL7F,EAAiB,GAAKA,KAG5C,CACA,SAASuT,EAAkF/C,EAA+BE,EAAiBlQ,GACvI,MAAMgT,EAAsBC,EAAsB3I,MAAMxJ,KAAM,CAACkP,EAAOE,IACtE0C,EAAS5I,MACL1G,EAAAA,EAAAA,GAAc,CAAC0P,EAAqB9H,IAAsB1J,MACtDxC,EAAAA,EAAAA,IAAI,EAAEkU,EAAoBC,MACtB,MAAOlD,EAAYmD,GAAWF,EAC9B,GAAIE,EAAS,CACT,MAAM/X,EAAS2E,EAAKmT,EAAWlD,GAC/B,OAAiB5K,MAAVhK,EAAsB,GAAKA,CACtC,CACA,MAAO,EAAE,KAIzB,CAEA,SAAS4X,EAA+EjD,EAA+BE,GACnH,MAAMmD,EAAcvE,EAAoBkB,EAAM,GAAGE,cAEjD,OAD4BpP,KAAKF,mBAAmB2D,YAAayG,eAAegF,EAAM,GAAGE,WAAkBpP,KAAKmI,MAAMzH,MAAKxC,EAAAA,EAAAA,IAAIiR,GAAc,CAACA,EAAYP,EAAWO,EAAY,KAA4B,GAAtBoD,EAAYxW,OAAc,CAAC,IAAMwW,EAAa,aAEzO,CAEA,IAAK,IAAIvN,EAAQ,EAAGA,EAAQ+M,EAAShW,OAAQiJ,IAAS,CAClD,MAAMoK,EAAU2C,EAAS/M,GACnBqK,EAAUH,EAAME,GACtB,OAAQA,GAEJ,IAAK,2BACD4C,GAAiBjD,IACb,MAAMwD,EAAcvE,EAAoBkB,EAAM,oCAC9C,GAAIN,EAAWG,EAAQ,KAA4B,GAAtBwD,EAAYxW,OAAc,CAAC,IAAMwW,EAAa,WAAoC,GAAtBA,EAAYxW,QAAgC,GAAjBgT,EAAOhT,OACvH,MAAO,CAACsT,EACZ,IAEJ,MAEJ,IAAK,oBACD2C,GAAiBjD,IACb,IAAKD,EAAWC,GACZ,MAAO,CAACM,EACZ,IAEJ,MAEJ,IAAK,wBACDyC,EAAS5I,KAAKlJ,KAAK+Q,YAAYrQ,MAAKxC,EAAAA,EAAAA,IAAI8R,GAAcA,EAAuB,GAAZ,CAACX,OAClE,MAEJ,IAAK,mCACD4C,EAAyBzI,MAAMxJ,KAAM,CACjCkP,EACAE,EACA,CAACiD,EAAqBlD,KAClB,IAAKL,EAAWuD,GAEZ,MAAO,CADkBpD,EAAqBC,EAAOC,EAAYC,GAErE,IAGR,MAEJ,IAAK,uCAAwC,CACzC,MAAM8C,EAAsBC,EAAsB3I,MAAMxJ,KAAM,CAACkP,EAAOE,IACtE0C,EAAS5I,MACL1G,EAAAA,EAAAA,GAAc,CAAC0P,EAAqBlS,KAAK+Q,cAAcrQ,MACnDxC,EAAAA,EAAAA,IAAI,EAAEkU,EAAoBpC,MACtB,MAAOb,EAAYmD,GAAWF,EAC9B,OAAIE,IAAYtC,EAEL,CADkBf,EAAqBC,EAAOC,EAAYC,IAG9D,EAAE,MAIrB,KACJ,CACA,IAAK,4CAA6C,CAC9C,MAAMoD,EAASxE,EAAoBkB,EAAM,GAAGE,aACtCqD,EAASzE,EAAoBkB,EAAM,GAAGE,aACtCmD,EAAcvE,EAAoBkB,EAAM,GAAGE,cAC3C8C,GAAsB1P,EAAAA,EAAAA,GAAciQ,EAAOvU,KAAIwU,GAAS1S,KAAKF,mBAAmB2D,YAAayG,eAAewI,EAAO1S,KAAKmI,SAAQzH,MAClIxC,EAAAA,EAAAA,IAAIyU,IACA,IAAK,IAAIC,EAAa,EAAGA,EAAaL,EAAYxW,OAAQ6W,IACtD,IAAK,IAAIC,EAAY,EAAGA,EAAYF,EAAY5W,OAAQ8W,IACpD,GAAIjE,EAAW+D,EAAYE,GAAY,KAAM,CAACN,EAAYK,IAAc,UACpE,MAAO,EAAC,EAAMA,GAI1B,MAAO,EAAC,EAAO,KAAK,KAG5Bd,EAAS5I,MACL1G,EAAAA,EAAAA,GAAc,CAAC4H,EAAqB8H,IAAsBxR,MACtDxC,EAAAA,EAAAA,IAAI,EAAE6Q,EAAQqD,MACV,MAAOE,EAASM,GAAcR,EAExBU,EAAQC,SAASP,EAAOI,IAC9B,GAAIN,GAAqB,MAAVvD,GAAkBA,EAAOhT,QAAU+W,EAAO,CACrD,MAAMzD,EAAUH,EAAME,GAChBE,EAActB,EAAoBkB,EAAM,GAAGE,kBAC3C4D,EAAchF,EAAoBkB,EAAM,GAAGE,kBAGjD,MAAO,CADkBC,EAAQ5U,QAAQ,MAAO+X,EAAOI,IAAanY,QAAQ,MAAOuY,EAAYJ,IAAanY,QAAQ,MAAO6U,EAAYsD,IAE3I,CACA,MAAO,EAAE,MAIrB,KACJ,CACA,IAAK,qCAAsC,CACvC,MAAMV,EAAsBC,EAAsB3I,MAAMxJ,KAAM,CAACkP,EAAOE,IAChE6D,EAAcjF,EAAoBkB,EAAM,gDAExCgE,GAAU1Q,EAAAA,EAAAA,GAAcyQ,EAAY/U,KAAIX,GAAMyC,KAAKF,mBAAmB2D,YAAayG,eAAe3M,EAAIyC,KAAKmI,SAAQzH,MAAKxC,EAAAA,EAAAA,GAAI4L,IAClIgI,EAAS5I,MACL1G,EAAAA,EAAAA,GAAc0Q,EAAShB,GAAqBxR,MACxCxC,EAAAA,EAAAA,IAAI,EAAE6Q,EAAQqD,MACV,MAAOjD,EAAYmD,GAAWF,EAC9B,OAAIE,GAAWxD,EAAWC,GAEf,CADkBE,EAAqBC,EAAOC,EAAYC,IAG9D,EAAE,MAIrB,KACJ,CACA,IAAK,sBAAuB,CACxB,MAAM6D,EAAcjF,EAAoBkB,EAAM,iCACxCgE,GAAU1Q,EAAAA,EAAAA,GAAcyQ,EAAY/U,KAAIX,GAAMyC,KAAKF,mBAAmB2D,YAAayG,eAAe3M,EAAIyC,KAAKmI,SAAQzH,MAAKxC,EAAAA,EAAAA,GAAI4L,IAClIgI,EAAS5I,KAAKgK,EAAQxS,MAAKxC,EAAAA,EAAAA,IAAI6Q,GAAWD,EAAWC,GAAU,CAACM,GAAW,OAC3E,KACJ,CACA,IAAK,6BACD2C,GAAiBjD,IACb,GAAc,MAAVA,GAAkBA,EAAOhT,QAAUgX,SAAS7D,EAAM,qCAClD,MAAO,CAACG,EACZ,IAEJ,MAEJ,IAAK,wCACD4C,EAAyBzI,MAAMxJ,KAAM,CACjCkP,EACAE,EACA,CAACiD,EAAqBlD,KAClB,MAAMN,EAAYK,EAAM,wDAGxB,IAAKN,EAAWyD,EAFGnD,EAAM,+CACPlB,EAAoBkB,EAAM,oDACML,GAE9C,MAAO,CADkBI,EAAqBC,EAAOC,EAAYC,GAErE,IAGR,MAEJ,IAAK,yBACD4C,GAAiBjD,IAIb,IAAKH,EAAWG,EAHGG,EAAM,gCACPlB,EAAoBkB,EAAM,qCAC1BA,EAAM,0CAEpB,MAAO,CAACG,EACZ,IAEJ,MAEJ,IAAK,oBAAqB,CACtB,MAAM8D,EAAanT,KAAkEmT,UACjFA,GACArB,EAAS5I,MACL1G,EAAAA,EAAAA,GAAcxC,KAAK+Q,YAAaoC,GAAWzS,MACvCxC,EAAAA,EAAAA,IAAI,EAAE8R,EAAUoD,MACZ,GAAIpD,EAAU,CACV,MAAMqD,EAAUN,SAAS7D,EAAM,2BAC/B,GAAgB,MAAZkE,GAAoBA,EAAWC,EAC/B,MAAO,CAAChE,EAEhB,CACA,MAAO,EAAE,MAKzB,KACJ,CACA,IAAK,qBAAsB,CACvB,MAAMiE,EAAatT,KAAkEsT,UACjFA,GACAxB,EAAS5I,MACL1G,EAAAA,EAAAA,GAAcxC,KAAK+Q,YAAauC,GAAW5S,MACvCxC,EAAAA,EAAAA,IAAI,EAAE8R,EAAUuD,MACZ,GAAIvD,EAAU,CACV,MAAMwD,EAAoBtE,EAAM,gCAC1BuE,EAAiBlU,EAAqC,MAArBiU,EAA4B,GAAKA,EAAkBE,MAAM,MAChG,GAAgB,MAAZH,EAAkB,CAClB,MAAMI,EAAgBvU,EAAYmU,GAClC,IAAKE,EAAe1K,MAAKrK,GAAKiV,EAAcC,SAAS,IAAMlV,KACvD,MAAO,CAAC2Q,EAEhB,CACJ,CACA,MAAO,EAAE,MAKzB,KACJ,CACA,IAAK,kBACD2C,GAAiBjD,IACb,GAAID,EAAWC,GAAS,CACpB,MAAM8E,EAAYd,SAAS7D,EAAM,wBAC3B4E,EAAYf,SAAS7D,EAAM,wBAC3BnT,GAAUgT,EAAO,GAAK,IAAIhT,OAChC,GAAIA,EAAS8X,GAAa9X,EAAS+X,EAC/B,MAAO,CAACzE,EAEhB,KAEJ,MAEJ,IAAK,iBACD2C,GAAiBjD,IACb,GAAID,EAAWC,GAAS,CACpB,MAAMgF,EAAQ7E,EAAM,0BACpB,IAAK,IAAI8E,OAAOD,GAAO/E,KAAKD,EAAO,GAAK,IACpC,MAAO,CAACM,EAEhB,KAOhB,CACA,OAAuB,GAAnByC,EAAS/V,QACFgF,EAAAA,EAAAA,GAAK,CAAC,MAE4B,MAAtBf,KAAKpE,eAAwBmF,EAAAA,EAAAA,GAAK,EAAC,IAASf,KAAKpE,cAAc+O,gBAAgB3K,OAChFU,MAClB6E,EAAAA,EAAAA,IAAU7G,GACFA,GACO8D,EAAAA,EAAAA,GAAcsP,GAAUpR,MAAKxC,EAAAA,EAAAA,IAAI2M,GAAWf,EAAce,OAE1D9J,EAAAA,EAAAA,GAAK,CAAC,OAGxB,KAKTf,KAAK6R,oBAAsBtX,EAAOmG,MAAKqK,EAAAA,EAAAA,GAAM,CAAEC,qBAAqB,EAAMC,UAAWA,IAAM,IAAIC,EAAAA,EAAc,KACjH,CACA,OAAOlL,KAAK6R,mBAChB,EAGG,SAASoC,EAAwBC,GAEpC,OAAOA,EAAMC,2BAA6BD,EAAME,yBACpD,CAKO,SAASC,EAAsBH,GAElC,OAAOA,EAAMI,YACjB,CAKO,SAASC,EAAmBL,GAE/B,OAAOA,EAAMM,cACjB,CAaO,SAASC,EAA6BP,GAEzC,OAAOA,EAAMQ,qBACjB,CAKO,SAASC,EAA+BT,GAE3C,OAAOA,EAAMU,oBACjB,CAKO,SAASC,EAA4BX,GAExC,OAAOA,EAAMY,mBAAqBZ,EAAMa,kBAC5C,CAMO,SAASC,EAA2Bd,GAEvC,OAAOA,EAAMe,YAAcf,EAAMgB,WACrC,CAQO,SAASC,EAAwBjB,GAEpC,OAAOA,EAAMkB,sBACjB,CAOO,SAASC,EAAqBnB,GAEjC,OAAOA,EAAMoB,gBACjB,C,6FCl4Ce,MAAMC,UAA+B7V,EAAAA,GAChDC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAA6DC,GACtIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,qDACpB,E,qFCJW,MAAMuV,UAA0B9V,EAAAA,GAC3CC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAA2DC,GACpIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,gDACpB,E,yJCAW,MAAMwV,UAAkC/V,EAAAA,GACnDC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAoEC,GAC7IC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,wDACpB,CAEA4H,QAAAA,GACI,OAAO9H,MAAM8H,WAAWnH,MACpB6E,EAAAA,EAAAA,IAAUlG,IACN,GAAKA,EACA,CACD,GAA8C,MAA1CW,KAAKM,WAAWC,SAASmV,gBAA0B1V,KAAKM,WAAWC,SAASoV,mBAAqB,IAAI5Z,OAAS,EAE9G,OADeiE,KAAKS,mBAAmBT,KAAKM,WAAWC,SAASmV,cAAgB1V,KAAKM,WAAWC,SAASoV,mBAC3FjV,MAAKxC,EAAAA,EAAAA,IAAI5D,GAASA,EAAML,QAAO,CAAC6D,EAAGY,IAAMZ,GAAsB,KAAjBjD,EAAAA,EAAAA,IAAU6D,KAAU,MAC7E,CACH,MAAMS,EAAUa,KAAKM,WAAWC,SAASqV,cAAgB5V,KAAKM,WAAWC,SAASqV,cAAcC,QAAU,GACtG7V,KAAKM,WAAWC,SAASuV,cACzB3W,EAAQ+J,KAAKlJ,KAAKM,WAAWC,SAASuV,cAE1C,MAAMC,GAAmBxW,EAAAA,EAAAA,GAAgBJ,GAEzC,OADuCa,KAAKsJ,qBAAoB/N,GAAWA,EAAQgC,IAAMyC,KAAKM,WAAWC,SAASyV,iBAAgBja,OAAS,GAEhIgF,EAAAA,EAAAA,GAAK,EAAC,IAENf,KAAKF,mBAAmB2D,YAAagG,iBAAiBzJ,KAAKM,WAAWC,SAASyV,eAAiBhW,KAAKmI,MAAMzH,MAC9G6E,EAAAA,EAAAA,IAAUnJ,IAAYoG,EAAAA,EAAAA,GAAcpG,EAAS8B,KAAIQ,GAAMA,EAAyB0L,4BAChFlM,EAAAA,EAAAA,IAAI+X,GAActX,MAAM8Q,UAAUrV,OAAOoP,MAAM,GAAIyM,MACnD/X,EAAAA,EAAAA,IAAImU,IAAa9S,EAAAA,EAAAA,GAAgB8S,MACjCnU,EAAAA,EAAAA,IAAIgY,IAAmBlW,KAAKM,WAAWC,SAAS4V,SAAU,IAAUD,EAAenN,MAAK1J,GAAK0W,EAAiBhN,MAAKyG,GAAKnQ,GAAKmQ,QAGzI,CACJ,CAvBQ,OAAOzO,EAAAA,EAAAA,GAAK,EAAC,GAuBrB,IAGZ,CAEA6B,MAAAA,CAAO0H,EAA2BpJ,GAC9B,OAAOsB,EAAAA,EAAAA,GAAcxC,KAAK6H,WAAY9H,MAAM6C,OAAO0H,EAAiBpJ,IAAkBR,MAAKxC,EAAAA,EAAAA,IAAI,EAAEkY,EAAStT,MAAYsT,GAAWtT,IACrI,E,qFC3CW,MAAMuT,UAAyB1G,EAAAA,GAC1ChQ,WAAAA,CAAY/D,EAA0CgE,EAA8BC,EAA2DC,GAC3IC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,gDAChBD,KAAKoQ,UAAW,EAChBpQ,KAAKyE,aAAc,CACvB,CAEA6R,eAAAA,GACI,OAAOtW,KAAKoK,qBAChB,CAEAA,mBAAAA,GACI,OAAOpK,KAAK6Q,YAChB,CAEAA,UAAAA,GACI,OAAO7Q,KAAKkM,eAChB,CAEA3J,mBAAAA,GACI,OAAOvC,KAAKmM,sBAChB,E,0GCXJ,MAAMoK,EAAY,uCAEH,MAAMC,UAAgB7G,EAAAA,GASjChQ,WAAAA,CAAY/D,EAA0CgE,EAA2BC,EAAkDC,GAC/HC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAWsW,EAChBvW,KAAKyW,cAAe,EACpBzW,KAAK0W,aAAe,KACpB1W,KAAKyE,aAAc,CACvB,CACAzD,OAAAA,CAAQC,EAAoBC,GACxBnB,MAAMiB,QAAQC,EAAMC,GACpBlB,KAAK2W,aAAa1V,EACtB,CACA2V,WAAAA,CAAY3V,GACRjB,KAAK2W,aAAa1V,GAClBjB,KAAKoC,YACT,CACAuU,YAAAA,CAAa1V,GACT,GAAY,MAARA,EAAc,CAEd,MAAM4V,EAAmB7W,KAAK6P,2BAY9B,OAXwB,MAApBgH,IAEA7W,KAAKmB,OAAO0V,EAAkB,YAE9B7W,KAAKmB,OAAO0V,EAAkB,YAElC7W,KAAKmB,OAAO,KAAM,WAClBnB,KAAKmB,OAAO,KAAM,YAClBnB,KAAKmB,OAAO,KAAM,YAClBnB,KAAKmB,OAAO,KAAM,oBAClBnB,KAAKmB,OAAO,KAAM,UAEtB,CACKF,EAAK+O,UACNhQ,KAAKmB,OAAOF,EAAM,WAAY,aAElCjB,KAAKmB,OAAOF,EAAM,WAClBjB,KAAKmB,OAAOF,EAAM,YAClBjB,KAAKmB,OAAOF,EAAM,YAClBjB,KAAKmB,OAAOF,EAAM,eAClBjB,KAAKmB,OAAOF,EAAM,WACdA,EAAK+O,UACLhQ,KAAKmB,OAAOF,EAAM,WAAY,YAEtC,CACAG,OAAAA,CAAQF,GACJ,MAAM3G,EAASwF,MAAMqB,QAAQF,GAW7B,OAVA3G,EAAOuc,QAAU9W,KAAK8W,QACtBvc,EAAOgZ,SAAWvT,KAAKuT,SACvBhZ,EAAO6Y,SAAWL,SAAS/S,KAAKoT,UAChC7Y,EAAOwc,YAAc/W,KAAK+W,YACrB/W,KAAK+P,YACNxV,EAAOyc,gBAAiB,GAEvBhX,KAAK8W,UACN9W,KAAK0W,aAAe,MAEjBnc,CACX,CACAoX,MAAAA,GACI,OAAO5R,MAAM4R,SAASjR,MAClBxC,EAAAA,EAAAA,IAAI3D,IACqBuT,OAAOC,KAAKxT,GAAQkO,QAAO/J,GAAuC,GAAlCA,EAAEyK,QAAQ,uBAAoE,GAAvCzK,EAAEyK,QAAQ,2BACzF9K,SAAQ4Y,IACjB,MAAMC,EAAO,wBAA0BD,EAAEE,UAAU,IACnD5c,EAAO2c,GAAQ3c,EAAO0c,UACf1c,EAAO0c,EAAE,IAEb1c,KAGnB,EAGG,SAAS6c,EAAU1Y,GACtB,OAAOA,EAAEuB,UAAYsW,CACzB,C,0NCzFe,MAAMc,UAAmB3X,EAAAA,GAUpCC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAqDC,GAC9HC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,yCACpB,CAEAoE,YAAAA,CAAapD,GACTjB,KAAKF,mBAAmB2D,YAAaC,kBAAoB1D,KAAKF,mBAAmB2D,YAAaC,mBAAqB,GACnH,MAAMA,EAAoB1D,KAAKF,mBAAmB2D,YAAaC,kBACzD4T,EAAW5T,EAAkB3H,OAAS,EAAI2H,EAAkB,GAAK,EAEvE,GADAA,EAAkB9G,QAAQ,GACd,MAARqE,EAAc,CACd,MAAMsW,EAAcvX,KAAKF,mBAAmB2D,YAAaG,cAAc5D,KAAKzC,IACtEia,EAA+B,MAAfD,EAAsBvX,KAAKM,WAAWC,SAASkX,KAAO,EAAIF,EAAYD,GAC5F,IAAK,IAAI5Y,EAAI,EAAGA,EAAI4Y,EAAU5Y,IAC1BgF,EAAkB,IAAM6T,EAAY7Y,GAExCsB,KAAK5D,SAAW,IAAIuC,MAAM6Y,EAAgB,GAAGE,KAAK,GAAGxZ,KAAI8G,IACrD,MAAM2S,EAAI3X,KAAK4X,aAAa,MAE5B,OADAlU,EAAkB,KACXiU,CAAC,GAEhB,MASI,IARA3X,KAAK5D,SACA6E,GAASA,EAAK7E,SAET6E,EAAK7E,SAAS8B,KAAImK,IACd,MAAMsP,EAAI3X,KAAK4X,aAAavP,GAE5B,OADA3E,EAAkB,KACXiU,CAAC,IAJZ,GAMH3X,KAAK5D,SAASL,QAAUiE,KAAKM,WAAWC,SAASkX,KAAO,IAC3DzX,KAAK6X,QAAQ,MAGrBnU,EAAkBoU,QAClB9X,KAAKmE,WAAWhC,KAAKnC,KAAK5D,SAC9B,CAEA4E,OAAAA,CAAQC,EAAuBC,GAE3B,GADAnB,MAAMiB,QAAQC,GAAM,IACfC,EAAiB,CAClBlB,KAAKF,mBAAmB2D,YAAaC,kBAAoB1D,KAAKF,mBAAmB2D,YAAaC,mBAAqB,GACnH,MAAMA,EAAoB1D,KAAKF,mBAAmB2D,YAAaC,kBACzD4T,EAAW5T,EAAkB3H,OAAS,EAAI2H,EAAkB,GAAK,EAEvE,IAAI8T,EACJ,GAFA9T,EAAkB9G,QAAQ,GAEd,MAARqE,EACAuW,EAAgBvW,EAAK7E,SAASL,YAE9B,GAAIiE,KAAKzC,MAAOyC,KAAKF,mBAAmB2D,YAAaG,cAAe,CAChE,MAAM2T,EAAcvX,KAAKF,mBAAmB2D,YAAaG,cAAc5D,KAAKzC,IAC5E,IAAK,IAAImB,EAAI,EAAGA,EAAI4Y,EAAU5Y,IAC1BgF,EAAkB,IAAM6T,EAAY7Y,GAExC8Y,EAAgBD,EAAYD,EAChC,MACIE,EAAgBxX,KAAK5D,SAAW4D,KAAK5D,SAASL,OAASiE,KAAKM,WAAWC,SAASkX,KAAO,EAG/F,MAAMrb,EAAY4D,KAAK5D,SAAW4D,KAAK5D,SAASyZ,MAAM,EAAG2B,GAAiB,GAC1E,IAAK,IAAIxS,EAAQ,EAAGA,EAAQwS,EAAexS,IAAS,CAChD,MAAMqD,EAAgB,MAARpH,EAAgBA,EAAK7E,SAAS4I,GAA+B,KACvE5I,EAAS4I,GACT5I,EAAS4I,GAAOhE,QAAQqH,GAExBjM,EAAS4I,GAAShF,KAAK4X,aAAavP,GAExC3E,EAAkB,IACtB,CACAA,EAAkBoU,QAClB9X,KAAK+X,SAAS3b,EAClB,CACJ,CAEA4b,mBAAAA,CAAoBC,GAChB,IAAIC,EAAgB,EAChB9b,EAAY4D,KAAK5D,SAA8BqM,QAAO/J,IAClDA,EAAEyZ,eAAeD,IACdD,EAAIG,SAAS1Z,EAAE2Z,UAAa3Z,EAAEyZ,iBAEzC,GAAI/b,EAASL,QAAUkc,EAAIlc,OAASmc,GAAiBlY,KAAK5D,SAASL,QAAUkc,EAAIlc,OAASmc,EACtF,OAEJ,MAAMI,EAAWL,EAAIxP,QAAO/J,IAAMtC,EAAS2M,MAAKR,GAAKA,EAAE8P,SAAW3Z,MAC9D4Z,EAASvc,OAAS,EAClBuc,EAASja,SAAQd,IACb,MAAMgb,EAAwBnc,EAASqM,QAAOJ,IAAUA,EAAMmQ,eAAczc,OAC5EK,EAAS8M,KAAKlJ,KAAK4X,aAAa,CAAES,QAAS9a,EAAIkb,WAAYF,EAAwB,EAAGJ,eAAe,IAA8B,IAGvI/b,EACKqM,QAAOJ,IAAUA,EAAMmQ,eACvBna,SAAQ,CAACgK,EAAOrD,KACbqD,EAAMoQ,YAAczT,EAAQ,GAAGxK,WAC/B6N,EAAMqQ,YAAYvW,KAAKkG,EAAMoQ,WAAW,IAGpDrc,EAAW6b,EAAI/Z,KAAIQ,GAAKtC,EAASqM,QAAOiE,GAAKA,EAAE2L,SAAW3Z,IAAG,KAAIia,MAAK,CAAC7a,EAAGC,IAAuB,MAAhBD,EAAE2a,WAAqB,EAAoB,MAAhB1a,EAAE0a,YAAsB,EAAI1F,SAASjV,EAAE2a,YAAc1F,SAAShV,EAAE0a,cACxKzY,KAAKM,WAAWC,SAASqY,gBACM5Y,KAAK5D,SAA8BqM,QAAO/J,GAAwB,GAAnBA,EAAEyZ,gBAC1D9Z,SAAQwa,IAC1Bzc,EAAS0c,OAAO/F,SAAS8F,EAAYJ,YAAe,EAAG,EAAGI,EAAY,IAI9E7Y,KAAK+X,SAAS3b,EAClB,CAEA2b,QAAAA,CAASgB,GACL/Y,KAAK5D,SAAW2c,EAChB/Y,KAAKmE,WAAWhC,KAAK4W,GACA,MAAjB/Y,KAAKsE,UAAqBtE,KAAKwE,QAC9BxE,KAAKsE,SAAwByT,SAASgB,EAAM7a,KAAIQ,GAAKA,EAAE4F,WAEhE,CAEAsT,YAAAA,CAAa3W,GACT,MAAMqH,EAAO,IAAI0Q,EAAehZ,KAAMiB,EAAMjB,KAAKM,WAAYN,KAAKF,oBAClE,GAAqB,MAAjBE,KAAKsE,WAAqBtE,KAAKwE,OAAQ,CACvC,MAAM8H,EAAetM,KAAKsE,SAAwBsT,aAAa3W,GAC/DqH,EAAK+D,gBAAgBC,EACzB,CACA,OAAOhE,CACX,CAEAuP,OAAAA,CAAQ5W,GACJ,MAAMqH,EAAOtI,KAAK4X,aAAa3W,GAAS,CAAC,GACrB,MAAhBqH,EAAK+P,UACL/P,EAAK6P,eAAgB,GAEzBnY,KAAKiZ,SAAS3Q,EAClB,CAEA2Q,QAAAA,CAAS3Q,GACkB,MAAnBA,EAAKmQ,aACLnQ,EAAKmQ,YAAezY,KAAK5D,SAA8BqM,QAAOF,IAAMA,EAAEiQ,eAAczc,OAAS,GAAGvB,WAChG8N,EAAKoQ,YAAYvW,KAAKmG,EAAKmQ,aAE/BzY,KAAK5D,SAAS8M,KAAKZ,GACnBtI,KAAKmE,WAAWhC,KAAKnC,KAAK5D,UACL,MAAjB4D,KAAKsE,UAAqC,MAAjBgE,EAAKhE,UAAqBtE,KAAKwE,QACvDxE,KAAKsE,SAAwB2U,SAAS3Q,EAAKhE,SAEpD,CAEA4U,UAAAA,CAAW5Q,EAAsB6Q,GAC7B,MAAMnU,EAAQhF,KAAK5D,SAAS+M,QAAQb,GAEpC,GAAItD,GAAS,EAAG,CACZ,IAAKsD,EAAK6P,eAAiBgB,EAAgBpd,OAAS,GAAKod,EAAgB1Q,QAAO2Q,GAAKA,EAAEhB,SAAS9P,EAAK+P,WAAY,CAC7G,MAAMgB,EAAarZ,KAAK5D,SAA8B4I,GACtDqU,EAAUb,cAAe,EACzBa,EAAUZ,WAAa,IAC3B,MACIzY,KAAK5D,SAAS0c,OAAO9T,EAAO,GAEhC,IAAK,IAAItG,EAAIsG,EAAOtG,EAAIsB,KAAK5D,SAASL,OAAQ2C,IAAK,CAC/C,MAAM2J,EAASrI,KAAK5D,SAA8BsC,GAClD2J,EAAMoQ,WAAiC,MAApBpQ,EAAMoQ,WAAqB,MAAQ1F,SAAS1K,EAAMoQ,YAAe,GAAGje,WACvF6N,EAAMqQ,YAAYvW,KAAKkG,EAAMoQ,WACjC,CACAzY,KAAKmE,WAAWhC,KAAKnC,KAAK5D,SAC9B,CACqB,MAAjB4D,KAAKsE,UAAqC,MAAjBgE,EAAKhE,UAAqBtE,KAAKwE,QACvDxE,KAAKsE,SAAwB4U,WAAW5Q,EAAKhE,SAA4B,GAElF,CAEA1B,MAAAA,CAAO0H,EAA0BpJ,GAC7B,MAAM0B,EAAS7C,MAAM6C,OAAO0H,EAAiBpJ,GACvCoY,EAAatZ,KAAKiD,UAAUvC,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAiB,GAAZA,EAAE3C,UAKlD,OAJeyG,EAAAA,EAAAA,GAAcI,EAAQ0W,GAAY5Y,MAE7CxC,EAAAA,EAAAA,IAAI,EAAEuS,EAAYnF,KAAemF,GAAcnF,IAGvD,CAEArI,OAAAA,GACI,OAAOjD,KAAKmE,WAAWzD,MACnBxC,EAAAA,EAAAA,IAAI9B,IACA,MAAM7B,EAAS,GAOf,OANoC,MAAhCyF,KAAKM,WAAWC,SAASkX,KAAezX,KAAK5D,SAASL,OAASiE,KAAKM,WAAWC,SAASkX,KACxFld,EAAO2O,KAAK,sBAAsBlJ,KAAKM,WAAWC,SAASkX,OAAOzX,KAAK2I,cAEvC,MAAhC3I,KAAKM,WAAWC,SAASmN,KAAe1N,KAAK5D,SAASL,OAASiE,KAAKM,WAAWC,SAASmN,KACxFnT,EAAO2O,KAAK,qBAAqBlJ,KAAKM,WAAWC,SAASmN,OAAO1N,KAAK2I,cAEnEpO,CAAM,IAGzB,CAEAoP,iBAAAA,CAAkBpM,EAAYmM,GAC1B,GAAI1J,KAAKzC,IAAMA,EACX,MAAO,CAACyC,MAEZ,MAAMuZ,EAAQva,GACHA,EAAK5C,SAAS2M,MAAKV,GAClBA,EAAM9K,IAAMA,GAGTgc,EAAKlR,KAIpB,IADkBkR,EAAKvZ,KAAKM,YAExB,OAAOP,MAAM4J,kBAAkBpM,EAAImM,GAEvC,IAAI8P,EAAW,KAOf,OANAxZ,KAAK5D,SAAS2M,MAAKV,IACXA,EAAMS,iBAAiBY,KACvB8P,EAAWnR,GAEI,MAAZmR,KAEK,MAAZA,EACOA,EAAS7P,kBAAkBpM,EAAImM,GAEnC,CACH1J,KAAKmE,WAAWzD,MACZ6E,EAAAA,EAAAA,IAAU/F,IACN,IAAIia,EAAU,KACdja,EAAKuJ,MAAKV,IACFA,EAAMS,iBAAiBY,KACvB+P,EAAUpR,GAEI,MAAXoR,KAKX,MAAMC,EAA8B,MAAXD,EAAkBA,EAAQ9P,kBAAkBpM,EAAImM,GAAe3J,MAAM4J,kBAAkBpM,EAAImM,GAC9GiQ,EAAoBD,EAAiBjR,QAAO/J,GAAK,SAAUA,IAC3Dkb,EAAuBF,EAAiBjR,QAAO/J,KAAO,SAAUA,KAItE,OAHIkb,EAAqB7d,OAAS,GAC9B4d,EAAkBzQ,MAAKnI,EAAAA,EAAAA,GAAK,CAAC6Y,KAEG,GAA5BD,EAAkB5d,QAAcgF,EAAAA,EAAAA,GAAK,CAAC,MAAOyB,EAAAA,EAAAA,GAAcmX,GAAmBjZ,MAAKxC,EAAAA,EAAAA,IAAIQ,IAAKoL,OAsB9F/P,EAtB4G2E,EAuB3HC,MAAM8Q,UAAUrV,OAAOoP,MAAM,GAAIzP,IAvB6F0O,QAAOiE,IAAOA,EAAE9Q,cAAiC4c,eAsB1L,IAA0Bze,CAtB6K,IAAE,KAIrM,CAGAqG,eAAAA,GAWI,OAV6B,MAAzBJ,KAAKK,mBACDL,KAAKM,WAAWC,SAASC,oBACzBR,KAAKK,iBAAmB,IAAIF,EAAAA,EAAgB,MAC5CH,KAAKS,mBAAmBT,KAAKM,WAAWC,SAASC,oBAC5CE,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAMA,EAAE3C,OAAS2C,EAAE,GAAK,QACjCiC,UAAUX,KAAKK,mBAEpBL,KAAKK,iBAAmB,IAAIF,EAAAA,EAAgBH,KAAKM,WAAWC,SAASK,QAGtEZ,KAAKK,gBAChB,EAOG,MAAM2Y,UAAuBtZ,EAAAA,GAOhCC,WAAAA,CAAY/D,EAA0CgE,EAA8BC,EAAqDC,GACrIC,MAAMnE,EAAegE,EAAcC,EAAgBC,GACnDE,KAAKC,SAAW,KAChBD,KAAK0Y,YAAc,IAAIvY,EAAAA,EAAgBH,KAAKyY,WAChD,CAGAjR,kBAAAA,GACI,OAA0B,MAAtBxH,KAAKpE,eACEmF,EAAAA,EAAAA,GAAK,CAAC,KAENf,KAAKpE,cAAc4L,qBAAqB9G,MAAK6E,EAAAA,EAAAA,IAAWmH,GAAgB1M,KAAKpE,cAAeuI,WAAWzD,MAAKxC,EAAAA,EAAAA,IAAKQ,GAA4B,IAAIgO,EAAGhO,EAAEyK,QAAQnJ,MAAMxF,iBAEnL,CAEA6J,YAAAA,CAAapD,GACTlB,MAAMsE,aAAapD,GACP,MAARA,IACoBsD,MAAhBtD,EAAKoX,SAAwBrY,KAAKM,WAAWC,SAASqY,eACtD5Y,KAAKqY,QAAU,KAEfrY,KAAKqY,QAAUpX,EAAKoX,QAExBrY,KAAKwY,aAAevX,EAAKuX,aACzBxY,KAAKmY,cAAgBlX,EAAKkX,cAC1BnY,KAAKyY,WAAaxX,EAAKwX,YAAYje,YAEvCwF,KAAK5D,SAASqM,QAAO/J,GAAKA,aAAamb,GAAqBnb,aAAaob,IAAsBzb,SAAQkK,GAAMA,EAA+CwR,eAAe/Z,OAC/K,EAGG,MAAM6Z,UAA0Bna,EAAAA,GAInCC,WAAAA,CAAY/D,EAA0CgE,EAA8BC,EAA4DC,GAC5IC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,kDAChBD,KAAKga,YAAc,KACnBha,KAAKia,aAAe,IAAI9Z,EAAAA,EAAgB,KAC5C,CAEAa,OAAAA,CAAQC,EAA8BC,GAClCnB,MAAMiB,QAAQC,EAAMC,EACxB,CACAE,OAAAA,CAAQF,GACJ,MAAM3G,EAASwF,MAAMqB,QAAQF,GAM7B,OALc,MAAV3G,IACAA,EAAOD,MAAQ0F,KAAKqY,UACpB9d,EAAOie,aAAexY,KAAKwY,eAC3Bje,EAAO4d,cAAgBnY,KAAK6Y,eAEzBte,CACX,CAEAwf,cAAAA,CAAeC,GACXha,KAAKga,YAAcA,EACnBha,KAAKia,aAAa9X,KAAK6X,EAC3B,CAMAnJ,UAAAA,GACI,OAAO7Q,KAAKia,aAAavZ,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAW,MAALA,EAAY,GAAK,CAACA,EAAE2Z,WAChE,CAEAjO,mBAAAA,GACI,OAAOpK,KAAK6Q,YAChB,CAEAwH,OAAAA,GACI,OAAOrY,KAAKga,YAAa3B,OAC7B,CACAG,YAAAA,GACI,OAAOxY,KAAKga,YAAaxB,YAC7B,CACAK,WAAAA,GACI,OAAO7Y,KAAKga,YAAa7B,aAC7B,EAGG,MAAM2B,UAA6Bpa,EAAAA,GAItCC,WAAAA,CAAY/D,EAA0CgE,EAA8BC,EAA+DC,GAC/IC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,qDAChBD,KAAKga,YAAc,KACnBha,KAAKia,aAAe,IAAI9Z,EAAAA,EAAgB,KAC5C,CAEAa,OAAAA,CAAQC,EAA8BC,GAClCnB,MAAMiB,QAAQC,EAAMC,EACxB,CACAE,OAAAA,CAAQF,GACJ,MAAM3G,EAASwF,MAAMqB,QAAQF,GAI7B,OAHc,MAAV3G,IACAA,EAAOD,MAAQ0F,KAAKyY,cAEjBle,CACX,CAEAwf,cAAAA,CAAeC,GACXha,KAAKga,YAAcA,EACnBha,KAAKia,aAAa9X,KAAK6X,EAC3B,CAMAnJ,UAAAA,GACI,OAAO7Q,KAAKia,aAAavZ,MAAK6E,EAAAA,EAAAA,IAAU7G,GAAW,MAALA,EAAY,GAAKA,EAAEga,YAAYhY,MAAKxC,EAAAA,EAAAA,IAAIwO,GAAW,MAALA,EAAY,GAAK,CAACA,QAClH,CAEAtC,mBAAAA,GACI,OAAOpK,KAAK6Q,YAChB,CAEA4H,UAAAA,GACI,OAAOzY,KAAKga,YAAavB,UAC7B,E,qFC7ZW,MAAMyB,UAAgBxa,EAAAA,GAWjCC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAwCC,GACjHC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,4CAChBD,KAAKma,aAAeva,EAAYua,aAChCna,KAAKoa,IAAMxa,EAAYwa,IACvBpa,KAAK8F,OAASlG,EAAYkG,OAC1B9F,KAAKgG,SAAWpG,EAAYoG,SAC5BhG,KAAKiG,YAAcrG,EAAYqG,YAC/BjG,KAAKkG,SAAWtG,EAAYsG,SAC5BlG,KAAKqa,UAAYza,EAAYya,UAC7Bra,KAAKsa,OAAS1a,EAAY0a,OAC1Bta,KAAK2D,aAAe/D,EAAY+D,aAChC3D,KAAK4D,cAAgBhE,EAAYgE,aACrC,CAEA2W,kBAAAA,CAAmBtZ,GACfjB,KAAKma,aAAena,KAAKma,cAAgB,CAAC,EAC1C,IAAK,MAAOlD,EAAG5X,KAAMyO,OAAO0M,QAAQvZ,GAAQ,CAAC,GACzCjB,KAAKma,aAAalD,GAAK5X,CAE/B,CAEA2B,OAAAA,CAAQC,EAAgBC,GACpBlB,KAAK2D,aAAe1C,EAAK0C,aACzB3D,KAAK4D,cAAgB3C,EAAK2C,cAC1B7D,MAAMiB,QAAQC,EAAMC,GACpBlB,KAAKsa,OAASrZ,EAAKqZ,OACnBta,KAAKqa,UAAYpZ,EAAKoZ,UACtBra,KAAK8F,OAAS9F,KAAK8F,QAAU7E,EAAK6E,OAClC9F,KAAKoa,IAAMnZ,EAAKmZ,IAChBpa,KAAKma,aAAelZ,EAAKkZ,aACzBna,KAAKya,MAAQxZ,EAAKwZ,KACtB,CAEArZ,OAAAA,CAAQF,GACJ,MAAM3G,EAASwF,MAAMqB,QAAQF,GAU7B,OATc,MAAV3G,IACAA,EAAOuL,OAAS9F,KAAK8F,OACrBvL,EAAOyL,SAAWhG,KAAKgG,SACvBzL,EAAO0L,YAAcjG,KAAKiG,YAC1B1L,EAAO2L,SAAWlG,KAAKkG,SACvB3L,EAAO4f,aAAena,KAAKma,aAC3B5f,EAAOkgB,MAAQza,KAAKya,MACpBlgB,EAAO6f,IAAMpa,KAAKoa,KAEf7f,CACX,CAEAia,cAAAA,CAAekG,GAGX,OAFgB1a,KAAKqJ,qBAAqBkL,EAAAA,IAAoB9L,QAAO/J,GAAKA,GAAKsB,OAC7DhC,SAAQU,GAAKA,EAAE8V,eAAekG,IAEpD,CAEAtY,UAAAA,GACI,MAAMuY,EAAW3a,KAAKsJ,qBAAoB5K,GAAKA,aAAaiR,EAAAA,KAC5D,IAAK,MAAMiL,KAAWD,EAClBC,EAAQxY,YAEhB,E,0JCnEW,MAAMyY,UAAqBnb,EAAAA,GAMtCC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAuDC,GAChIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAK8a,aAAc,EACnB9a,KAAKsV,kBAAmB,EACxBtV,KAAK+a,SAAW/a,KAAK+a,WAAY,EACjC/a,KAAKgb,UAAYhb,KAAKgb,WAAa,IAAI7a,EAAAA,EAAgBH,KAAK+a,UAC5D/a,KAAKC,SAAW,2CACpB,CAEAe,OAAAA,CAAQC,EAAuBC,GAC3BnB,MAAMiB,QAAQC,EAAMC,GACR,MAARD,GAGJjB,KAAKmB,OAAOF,EAAM,WACtB,CAEAmV,OAAAA,GACI,OAAOpW,KAAKgb,UAAUta,MAAK2G,EAAAA,EAAAA,MAASC,WACxC,CAEA+S,SAAAA,GACI,MAAO,CAACra,KAAKM,WAAWC,SAASK,MAAO,GAAGZ,KAAKM,WAAWC,SAASK,wBACxE,CAEAuT,yBAAAA,CAA0B1N,GACtB,OAAOA,CACX,CAEA,+BAAM2N,CAA0B3N,GAC5B,MAAMvH,SAAc,gCAAoEkV,0BACxF,aAAalV,EAAKsK,MAAMxJ,KAAM,GAClC,CAEAib,uBAAAA,GACI,MAAMC,EAAMlb,KAAKM,WAAWC,SAAS0a,wBACrC,OAAc,MAAPC,GAAqBA,CAChC,CAEApG,iBAAAA,GACI,QAAO9U,KAAK+a,UAAW,IAC3B,CAEAhG,kBAAAA,GACI,OAAO/U,KAAKgb,UAAUta,MAAKxC,EAAAA,EAAAA,IAAIQ,KAAMA,GAAI,OAC7C,CAEAyc,oBAAAA,GACI,OAAOnb,KAAKgb,UAAUta,MAAKxC,EAAAA,EAAAA,IAAIQ,IAAMA,IACzC,CAEAwW,WAAAA,GACI,OAAOlV,KAAKgb,UAAUta,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAOA,EAAa,KAAT,SAC9C,EAGG,SAAS0c,EAAe1c,GAE3B,OAAOA,EAAEoc,WACb,C,sIC/De,MAAMO,UAAqB3b,EAAAA,GAUtCC,WAAAA,CAAY/D,EAA0CgE,EAAgCC,EAAuDC,GACzIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,4CAChBD,KAAKsb,SAAWtb,KAAKsb,UAAY,IAAInb,EAAAA,EAAgB,KACzD,CAEAia,GAAAA,CAAI5U,EAA6C+V,GAC7C,MAAMlY,EAAmB,QAARmC,EAAkB+V,EAAa3hB,EAAAA,EAAkB4hB,UAAY5hB,EAAAA,EAAkB6hB,SAAoB,UAARjW,EAAoB+V,EAAa3hB,EAAAA,EAAkB8hB,oBAAsB9hB,EAAAA,EAAkB+hB,WAAsB,QAARnW,EAAkB+V,EAAa3hB,EAAAA,EAAkBgiB,kBAAoBhiB,EAAAA,EAAkBiiB,SAAoB,UAARrW,EAAoB+V,EAAa3hB,EAAAA,EAAkBkiB,oBAAsBliB,EAAAA,EAAkBmiB,WAAc,KACja,OAAO/b,KAAKgc,KAAK3Y,EACrB,CAEAjC,OAAAA,CAAQF,GACJ,MAAM3G,EAASwF,MAAMqB,QAAQF,GAI7B,OAHc,MAAV3G,IACAA,EAAO+f,OAASta,KAAKsa,QAElB/f,CACX,CAEAia,cAAAA,CAAekG,GAGX,OAFgB1a,KAAKqJ,qBAAqBkL,EAAAA,IAAoB9L,QAAO/J,GAAKA,GAAKsB,OAC7DhC,SAAQU,GAAKA,EAAE8V,eAAekG,IAEpD,CAEA1Z,OAAAA,CAAQC,EAAyBC,GAC7BnB,MAAMiB,QAAQC,EAAMC,GACpBlB,KAAKgc,KAAQ/a,EAAKmZ,KAAO,CAAC,EAC1Bpa,KAAKic,cAAgBhb,EAAKgb,cAC1Bjc,KAAKkc,cAAgBjb,EAAKib,cAC1Blc,KAAKmc,sBAAwBlb,EAAKkb,sBAClCnc,KAAKya,MAAQxZ,EAAKwZ,MAClBza,KAAKoc,UAAUnb,EAAKqZ,OACxB,CAEA8B,SAAAA,CAAU9B,GACNta,KAAKsa,OAASA,EACO,MAAjBta,KAAKsb,SACLtb,KAAKsb,SAAW,IAAInb,EAAAA,EAAgBma,GAEpCta,KAAKsb,SAASnZ,KAAKmY,EAE3B,CAEA+B,aAAAA,GACI,OAAO7Z,EAAAA,EAAAA,GAAcxC,KAAKsb,SAAUtb,KAAK4C,UAAUlC,MAAKxC,EAAAA,EAAAA,IAAI,EAAEoc,EAAQxX,KAAsB,MAAVwX,EAAkBxX,EAAQ,WAAa,UAAawX,IAC1I,E,oIC1DW,MAAMgC,UAAmB3M,EAAAA,GACpChQ,WAAAA,CAAY/D,EAA0CgE,EAA8BC,EAAqDC,GACrIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,0CAChBD,KAAKoQ,UAAW,EAChBpQ,KAAKyE,aAAc,CACvB,CACAoM,UAAAA,GACI,MAAM0L,EAAWxc,MAAM8Q,aACvB,OAAI7Q,KAAKF,mBAAmB0c,kBAAoBxc,KAAKyc,aAC1CF,EAEAA,EAAS7b,KAAK4b,EAAWI,oBAAoBJ,EAAWK,mBAEvE,CAEAvS,mBAAAA,GACI,MAAMmS,EAAWxc,MAAMqK,sBACvB,OAAIpK,KAAKF,mBAAmB0c,kBAAoBxc,KAAKyc,aAC1CF,EAEAA,EAAS7b,KACZ4b,EAAWI,oBAAoBJ,EAAWK,mBAMtD,CAEAC,YAAAA,GACI,OAAO5c,KAAKoK,sBAAsB1J,MAAKxC,EAAAA,EAAAA,IAAI,EAAEQ,KAAO,IAAI4d,EAAWO,UAAUne,EAAGsB,KAAKM,WAAWC,SAASuc,wBAC7G,CAEA5Q,aAAAA,GACI,OAAOlM,KAAK4c,cAChB,CAEAzQ,oBAAAA,GACI,OAAOnM,KAAKuC,qBAChB,CAEA7I,yBAA2B,IAC3B,0BAAOgjB,CAAoBK,GACvB,IAAI1V,GAAQ,EACZ,OAAO2V,EAAAA,EAAAA,IAAUte,GACR2I,GAGLA,GAAQ,GACD4V,EAAAA,EAAAA,GAAM,KAHFA,EAAAA,EAAAA,GAAMF,IAKzB,CACA,gBAAOF,CAAUviB,EAAsB4iB,GACnC,IAAK5iB,IAASgD,EAAAA,EAAAA,IAAmBhD,GAC7B,MAAO,GAEX,IAAK4iB,IAAc5f,EAAAA,EAAAA,IAAmB4f,GAClC,MAAO,CAAC5iB,GAEZ,IAAIC,EAAS,GACb,IAAK,IAAIyK,EAAQ,EAAGA,EAAQkY,EAAWnhB,OAAQiJ,IAAS,CACpD,MAAMmY,EAAMD,EAAWlY,GAQvB,GAPI,KAAKgK,KAAKmO,GACNnY,EAAQ1K,EAAMyB,SACdxB,GAAUD,EAAM0K,IAGpBzK,GAAU2iB,EAAWlY,GAErBzK,EAAOwB,QAAUzB,EAAMyB,OACvB,KAER,CACA,OAAqB,MAAdmhB,EAAqB,CAAC3iB,GAAU,EAC3C,E,kJC3EW,MAAM6iB,UAAsBzN,EAAAA,GAGvChQ,WAAAA,CAAY/D,EAA0CgE,EAAmCC,EAAwDC,GAC7IC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,4CACpB,CAEAmK,mBAAAA,GACI,OAAOpK,KAAK6Q,YAChB,CAEAA,UAAAA,GACI,GAAwB,MAApB7Q,KAAKqd,YAAqB,CAC1B,MAAM9iB,EAASyF,KAAKS,mBAAmBT,KAAKM,WAAWC,SAASmV,eAGhE1V,KAAKqd,YAAc9iB,EAAOmG,MAAKqK,EAAAA,EAAAA,GAAM,CAAEC,qBAAqB,EAAMC,UAAWA,IAAM,IAAIC,EAAAA,EAAc,KACzG,CACA,OAAOlL,KAAKqd,WAChB,E,sDCrBW,MAAMC,UAAsB5d,EAAAA,GAIvCC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAwDC,GACjIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,6CAChBD,KAAKud,cAAgBvd,KAAKmI,KAAO,UAEjCnI,KAAKwd,mBAAqBxd,KAAKwd,oBAAsB,GACrDxd,KAAKyE,aAAc,CACvB,CAEAzD,OAAAA,CAAQC,EAAuBC,GAC3BnB,MAAMiB,QAAQC,EAAMC,GACpBlB,KAAKmB,OAAOF,EAAM,qBAAsB,qBAC5C,CAEA2B,MAAAA,GACI,OAAK5C,KAAKM,WAAWC,SAASkd,YAAczd,KAAKF,mBAAmB2G,aACjDzG,KAAKS,mBAAmBT,KAAKM,WAAWC,SAASmV,cAAgB1V,KAAKM,WAAWC,SAASoV,mBAC3FjV,MAAKxC,EAAAA,EAAAA,IAAI5D,GAASA,EAAML,QAAO,CAAC6D,EAAGY,IAAMZ,GAAsB,KAAjBjD,EAAAA,EAAAA,IAAU6D,KAAU,MAEzEqB,MAAM6C,QAErB,CAEAK,OAAAA,GACI,OAAKjD,KAAKM,WAAWC,SAASkd,YAAczd,KAAKF,mBAAmB2G,cACzDjE,EAAAA,EAAAA,GAAc,CAACxC,KAAK4C,YAAa5C,KAAKwd,mBAAmBtf,KAAIX,GAAMyC,KAAK2F,UAAU8D,iBAAiBlM,OAAOmD,MAC7GxC,EAAAA,EAAAA,IAAI,EAAE4E,KAAUqH,MACZxL,MAAM8Q,UAAUrV,OAAOoP,MAAM,GAAIW,GAAU9L,SAAQ9C,IAC/C,MAAMmiB,EAAWniB,EAAQmJ,eACnBiZ,EAAaD,EAASvU,QAAQnJ,KAAKud,eACrCza,GAAS6a,GAAc,EACvBD,EAAS5E,OAAO6E,EAAY,GACpB7a,IAAyB,IAAhB6a,GACjBD,EAASxU,KAAKlJ,KAAKud,eAEvBhiB,EAAQoJ,iBAAiBxC,KAAKub,EAAS,IAEpC5a,EAAQ,GAAK,CAAC9C,KAAKM,WAAWC,SAASqd,kBAI/C7d,MAAMkD,SAErB,E,4CC3CW,MAAM4a,UAAsBlO,EAAAA,GACvChQ,WAAAA,CAAY/D,EAA0CgE,EAAmCC,EAAwDC,GAE1H,MAAfF,GAA4C,MAArBA,EAAYtF,QACnCsF,EAAYtF,MAAQ,IAExByF,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAK+P,UAA2B,MAAfnQ,GAA4C,MAArBA,EAAYtF,OAA6C,GAA5BsF,EAAYtF,MAAMyB,OAAciE,KAAK6P,2BAA4B9T,OAAS,EAAI6D,EAAYoQ,SAC/JhQ,KAAKC,SAAW,6CAChBD,KAAKyE,aAAc,CACvB,CAEAoL,wBAAAA,GACI,IAAItV,EAASwF,MAAM8P,2BAKnB,OAHc,MAAVtV,IACAA,EAAS,IAENA,CACX,CAEAyW,aAAAA,GACI,OAAOxO,EAAAA,EAAAA,GAAc,CAACzC,MAAMiR,gBAAiBhR,KAAK8d,oBAAoBpd,MAClExC,EAAAA,EAAAA,IAAI,EAAE6f,EAAIC,KAECD,EAAGtV,QAAOxK,GAAK+f,EAAGjV,MAAK5K,GAAKA,EAAE7D,OAAS2D,QAG1D,CAGA6f,eAAAA,GAEI,GAAc,GADC9d,KAAKM,WAAWC,SAAS0d,OACvB,CACb,MAAMlF,EAAQ/Y,KAAK5D,SACb8hB,EAAa,GACnB,IAAK,IAAIlZ,EAAQ,EAAGA,EAAQ+T,EAAMhd,OAAQiJ,IAAS,CAC/C,MAAMsD,EAAOyQ,EAAM/T,GACbpE,EAAQ0H,EAAKhI,WAAWC,SAASK,MACjCtG,EAAQgO,EAAKhI,WAAWC,SAASjG,MACvC4jB,EAAWhV,KAAK,CAAEtI,QAAOtG,OAAOqI,EAAAA,EAAAA,IAAerI,EAAOsG,IAC1D,CACA,OAAOG,EAAAA,EAAAA,GAAK,CAACmd,GACjB,CAAO,CACH,MAAMC,EAAS,GACTpF,EAAQ/Y,KAAKM,WAAWC,SAASwY,MACvC,IAAK,IAAI/T,EAAQ,EAAGA,EAAQ+T,EAAMhd,OAAQiJ,IAAS,CAC/C,MAAMsD,EAAOyQ,EAAM/T,GACnB,IAAIoZ,EAAS,KAGTA,EAFA,uBAAwB9V,GAAQA,EAAK9H,mBAE5BR,KAAKS,mBAAmB6H,EAAK9H,qBAE7BO,EAAAA,EAAAA,GAAK,CAAC,CAAkBuH,EAAM1H,SAE3C,IAAIgQ,EAAS,KAGTA,EAFA,uBAAwBtI,GAAQA,EAAK+V,mBAE5Bre,KAAKS,mBAAmB6H,EAAK+V,qBAE7Btd,EAAAA,EAAAA,GAAK,CAAC,CAAkBuH,EAAMhO,SAG3C6jB,EAAOjV,MAAK1G,EAAAA,EAAAA,GAAc,CAAC4b,EAAQxN,IAASlQ,MAAKxC,EAAAA,EAAAA,IAAI,EAAE0C,EAAOtG,MAAYsG,EAAM7E,QAAUzB,EAAMyB,OAAS6E,EAAM1C,KAAI,CAACQ,EAAGgO,KAAM,CAAG9L,MAAOlC,EAAGpE,MAAOA,EAAMoS,OAASpS,EAAM4D,KAAI,CAACQ,EAAGgO,KAAM,CAAGpS,MAAOoE,EAAGkC,MAAOA,EAAM8L,QAAQxO,KAAI,EAAG0C,QAAOtG,YAAY,CAAGsG,QAAOtG,MAAgB,MAATA,GAAiB,QAAQ0U,KAAK1U,GAASsG,EAAQtG,SACpT,CACA,OAAOkI,EAAAA,EAAAA,GAAc2b,GAAQzd,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAKA,EAAE1E,SACjD,CACJ,CAEA2Q,eAAAA,CAAgBtC,GACZ,OAAO7F,EAAAA,EAAAA,GAAc,CAACzC,MAAM4K,gBAAgBtC,GAAQrI,KAAK4Q,SAASlQ,MAAKxC,EAAAA,EAAAA,IAAK6Q,GAA+B,MAAVA,GAAkBA,EAAO5F,QAAQd,EAAM/H,WAAWC,SAAS+d,iBAAmB,OAAM5d,MAAKxC,EAAAA,EAAAA,IAAI,EAAEJ,EAAGC,KAAOD,GAAKC,IACnN,E,2BC7EW,MAAMwgB,UAA+B7e,EAAAA,GAChDC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAiEC,GAC1IC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,qDACpB,E,wBCDW,MAAMue,UAAmB9e,EAAAA,GAGpCC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAqDC,GAC9HC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,yCACpB,CAEAwe,qBAAAA,GACI,GAAmC,MAA/Bze,KAAK0e,uBAAgC,CACrC1e,KAAK0e,uBAAyB,IAAIve,EAAAA,EAAgB,IAClD,MAAMwe,EAAc3e,KAAKM,WAAWC,SAASoe,YAC7C,GAAgE,IAA3D3e,KAAKM,WAAWC,SAASqe,kBAAoB,IAAI7iB,OAAa,CAC/D,MAAM8iB,EAAoB,GAC1B,IAAK,MAAMC,KAAmB9e,KAAKM,WAAWC,SAASqe,kBAAoB,GACvEC,EAAkB3V,KAAKlJ,KAAKS,mBAAmBqe,EAAgBpJ,eAAgBhV,MAAKxC,EAAAA,EAAAA,IAAIpC,IAAQ,CAAGyB,GAAIuhB,EAAgBpJ,cAAe5Z,cAE1I0G,EAAAA,EAAAA,GAAcqc,GACTne,MAAKxC,EAAAA,EAAAA,IAAIjD,IAAgBD,EAAAA,EAAAA,IAA+BC,EAAc0jB,MACtEhe,WAAUoe,GAAuB/e,KAAK0e,wBAAwBvc,KAAK4c,IAC5E,MACI/e,KAAK0e,uBAAyB,IAAIve,EAAAA,EAAgBwe,GAAe,GAEzE,CACA,OAAO3e,KAAK0e,sBAChB,E,uBC3BW,MAAMM,UAAsBrP,EAAAA,GACvChQ,WAAAA,CAAY/D,EAA0CgE,EAA8BC,EAAwDC,GACxIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,4CACpB,E,0BCVG,MAAMgf,EAAU,CACnB,EAAG,WACH,EAAG,YACH,EAAG,SACH,EAAG,aAGMhe,EAAO,CAChBie,OAAQ,CACJ,CAAE5kB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,eACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,wBACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,QACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,iBACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,eACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,iBACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,kBACrB,CAAExB,MAAO,KAAMwB,KAAM,gBACrB,CAAExB,MAAO,KAAMwB,KAAM,QACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,gBACrB,CAAExB,MAAO,KAAMwB,KAAM,gBACrB,CAAExB,MAAO,KAAMwB,KAAM,kBACrB,CAAExB,MAAO,KAAMwB,KAAM,gBACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,QACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,iBACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,YAGzBqjB,UAAW,CACP,CAAE7kB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,eACrB,CAAExB,MAAO,KAAMwB,KAAM,iBACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,oBACrB,CAAExB,MAAO,KAAMwB,KAAM,wBACrB,CAAExB,MAAO,KAAMwB,KAAM,gBACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,6BACrB,CAAExB,MAAO,KAAMwB,KAAM,yBACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,YAGzBsjB,UAAW,CAEP,CAAE9kB,MAAO,KAAMwB,KAAM,eACrB,CAAExB,MAAO,KAAMwB,KAAM,iBACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,kBACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,uBACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,oCACrB,CAAExB,MAAO,KAAMwB,KAAM,oCACrB,CAAExB,MAAO,KAAMwB,KAAM,0BACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,iBACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,kCACrB,CAAExB,MAAO,KAAMwB,KAAM,qBACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,gBACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,kBACrB,CAAExB,MAAO,KAAMwB,KAAM,4BACrB,CAAExB,MAAO,KAAMwB,KAAM,QACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,oBACrB,CAAExB,MAAO,KAAMwB,KAAM,2BACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,sCACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,gBACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,iBACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,QACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,sBACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,eACrB,CAAExB,MAAO,KAAMwB,KAAM,qBACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,+BACrB,CAAExB,MAAO,KAAMwB,KAAM,iBACrB,CAAExB,MAAO,KAAMwB,KAAM,QACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,iBACrB,CAAExB,MAAO,KAAMwB,KAAM,oBACrB,CAAExB,MAAO,KAAMwB,KAAM,+BACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,QACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,iBACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,qCACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,8BACrB,CAAExB,MAAO,KAAMwB,KAAM,QACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,eACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,2CACrB,CAAExB,MAAO,KAAMwB,KAAM,uBACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,oCACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,iBACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,+CACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,QACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,oBACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,oCACrB,CAAExB,MAAO,KAAMwB,KAAM,yBACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,eACrB,CAAExB,MAAO,KAAMwB,KAAM,iBACrB,CAAExB,MAAO,KAAMwB,KAAM,eACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,QACrB,CAAExB,MAAO,KAAMwB,KAAM,kBACrB,CAAExB,MAAO,KAAMwB,KAAM,4BACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,QACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,uBACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,oBACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,QACrB,CAAExB,MAAO,KAAMwB,KAAM,eACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,eACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,sBACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,oBACrB,CAAExB,MAAO,KAAMwB,KAAM,gDACrB,CAAExB,MAAO,KAAMwB,KAAM,yBACrB,CAAExB,MAAO,KAAMwB,KAAM,eACrB,CAAExB,MAAO,KAAMwB,KAAM,8BACrB,CAAExB,MAAO,KAAMwB,KAAM,6BACrB,CAAExB,MAAO,KAAMwB,KAAM,oCACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,yBACrB,CAAExB,MAAO,KAAMwB,KAAM,gBACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,gBACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,6BACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,mBACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,gBACrB,CAAExB,MAAO,KAAMwB,KAAM,gDACrB,CAAExB,MAAO,KAAMwB,KAAM,eACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,0BACrB,CAAExB,MAAO,KAAMwB,KAAM,aACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,eACrB,CAAExB,MAAO,KAAMwB,KAAM,wBACrB,CAAExB,MAAO,KAAMwB,KAAM,gCACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,gCACrB,CAAExB,MAAO,KAAMwB,KAAM,YACrB,CAAExB,MAAO,KAAMwB,KAAM,eACrB,CAAExB,MAAO,KAAMwB,KAAM,QACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,uBACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,gBACrB,CAAExB,MAAO,KAAMwB,KAAM,4BACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,wBACrB,CAAExB,MAAO,KAAMwB,KAAM,wDACrB,CAAExB,MAAO,KAAMwB,KAAM,iBACrB,CAAExB,MAAO,KAAMwB,KAAM,wCACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,cACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,sCACrB,CAAExB,MAAO,KAAMwB,KAAM,WACrB,CAAExB,MAAO,KAAMwB,KAAM,4BACrB,CAAExB,MAAO,KAAMwB,KAAM,yBACrB,CAAExB,MAAO,KAAMwB,KAAM,qBACrB,CAAExB,MAAO,KAAMwB,KAAM,kBACrB,CAAExB,MAAO,KAAMwB,KAAM,SACrB,CAAExB,MAAO,KAAMwB,KAAM,UACrB,CAAExB,MAAO,KAAMwB,KAAM,c,2ECxT7B,MAAMujB,EAA8B,CAAC,EAEtB,MAAMC,UAAwB3P,EAAAA,GAGzChQ,WAAAA,CAAY/D,EAA0CgE,EAA8BC,EAA0DC,GAC1IC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,+CAChBD,KAAKyE,aAAc,CACvB,CAEA8a,YAAAA,CAAaC,EAAkBC,EAAiB1Q,GAC5CyQ,EAASA,GAAU,CAAC,MACpBzQ,EAASA,GAAU0Q,EACnB,MAAM1G,EAAQ,GACRhd,EAAS0R,KAAKC,OACb,CAAC8R,EAAQC,EAAO1Q,GAAQ7Q,KAAI,SAAUmB,GACrC,OAAOA,EAAEtD,MACb,KAEJ,IAAK,IAAI2C,EAAI,EAAGA,EAAI3C,EAAQ2C,IAAK,CAC7B,MAAM5C,EAAO2jB,EAAM1jB,QAAU2C,EAAI+gB,EAAMA,EAAM1jB,OAAS,GAAK0jB,EAAM/gB,GAC3DpE,EAAQyU,EAAOhT,QAAU2C,EAAIqQ,EAAOA,EAAOhT,OAAS,GAAKgT,EAAOrQ,GAChEghB,EAAQF,EAAOzjB,QAAU2C,EAAI8gB,EAAOA,EAAOzjB,OAAS,GAAKyjB,EAAO9gB,GACtEqa,EAAM7P,KAAK,CACPpN,KAAMA,EACNwiB,eAAyB,MAAThkB,GAA0B,IAATA,EAAcwB,EAAOxB,EACtDolB,MAAgB,MAATA,GAA0B,IAATA,EAAc,KAAO,CAAE9a,KAAM8a,IAE7D,CACA,OAAO3G,CACX,CAEA,yBAAM4G,GACF,GAAgD,MAA5C3f,KAAKM,WAAWC,SAASqf,gBACzB,MAAO,GAEX,MAAMjZ,EAAS3G,KAAKzC,GACdqJ,EAAkB5G,KAAK6G,8BACvBgZ,EAAWnjB,KAAKG,UAAU,CAAC8J,EAAQC,IA8CzC,OA7CMiZ,KAAYR,IACdA,EAA4BQ,GAAY,WACpC,MAAMna,EAAW1F,KAAK2F,UAChBC,QAAY5F,KAAKF,mBAAmB+F,WAAW,cAAe,CAAEC,OAAQJ,EAASI,SACjF7E,EAAO,CACT+E,SAAUN,EAASM,SACnBC,YAAaP,EAASO,YACtBC,SAAUR,EAASQ,SACnBC,QAAS,KACTC,UAAU,EACVC,SAAS,EACTC,QAAStG,KAAKF,mBAAmByG,cAAe,EAChDC,UAAWxG,KAAKF,mBAAmB2G,eAAgB,EACnDC,SAAU1G,KAAKF,mBAAmB4G,WAAY,EAC9CC,SACAC,kBACApB,KAAM,0BAIV,IACI,MAAMsB,QAAa9G,KAAKF,mBAAmBiH,UAAUnB,EAAK,CACtDoB,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpB3L,KAAMoB,KAAKG,UAAUoE,KAEnBiG,QAAoBJ,EAAKK,OAE/B,OADezK,KAAKC,MAAMuK,EAAYnF,QACxB7D,KAAImB,IAAK,CACnBvD,KAAMuD,EAAEygB,KACRJ,MAAOrgB,EAAE0gB,MACTzB,eAAgBjf,EAAE2gB,SAE1B,CAAE,MAAO7hB,GAEL,OADA8hB,QAAQC,IAAI/hB,GACL,EAKX,CACH,EA1CuC,UA4C/BkhB,EAA4BQ,EAC7C,CAEAM,SAAAA,GACI,MAAM3a,EAAOxF,KAAKM,WAAWC,SAAS6f,qBACtC,GDpGgB,GCoGZ5a,EAAgD,CAChD,MAAMK,EAAa7F,KAAKF,mBAAmB+F,WAC3C,MAAO,WACH,MAAMD,QAAYC,EAAW,4BAA6B,CAAEL,KAAMA,EAAKhL,aACjEsM,QAAauZ,MAAMza,GAGzB,OAFA0a,EAAAA,EAAAA,IAAwBxZ,UACJA,EAAKK,QACbjJ,KAAImB,IAAK,CACjBvD,KAAMuD,EAAEygB,KACRxB,eAAgBjf,EAAE2gB,SAEzB,EATM,EAUX,CAAO,GAAYzb,MAARiB,EACP,OAAO+a,EAAsBC,EAA6Bhb,IAAOtH,KAAImB,IAAK,CACtEvD,KAAMuD,EAAEvD,KACRwiB,eAAgBjf,EAAE/E,UAGtB,MAAM,IAAIyJ,KAElB,CAEA0c,MAAAA,GACI,IAAIlmB,EAAS,KACb,GAA6C,GAAzCyF,KAAKM,WAAWC,SAASmgB,cAA+D,MAAzC1gB,KAAKM,WAAWC,SAASmgB,cAA8D,MAAtC1gB,KAAKM,WAAWC,SAASogB,WAAqB3gB,KAAKM,WAAWC,SAASogB,UAAU5kB,OAAS,EAAI,CAG9L,MAAMgd,EAAQ/Y,KAAKM,WAAWC,SAASogB,WAAa,GAC9CxC,EAAS,GACf,IAAK,IAAInZ,EAAQ,EAAGA,EAAQ+T,EAAMhd,OAAQiJ,IAAS,CAC/C,MAAMsD,EAAOyQ,EAAM/T,GACb4b,EAAStY,EAAKoX,OAAQ3e,EAAAA,EAAAA,GAAK,CAAC,CAACuH,EAAKoX,SAAW1f,KAAKS,mBAAmB6H,EAAKuY,mBAAqBvY,EAAKwY,wBACpGC,EAAQzY,EAAKxM,MAAOiF,EAAAA,EAAAA,GAAK,CAAC,CAACuH,EAAKxM,QAAUkE,KAAKS,mBAAmB6H,EAAK0Y,kBAAoB1Y,EAAK2Y,uBAChGnQ,EAAkBxI,EAAKgW,gBAAiBvd,EAAAA,EAAAA,GAAK,CAAC,CAACuH,EAAKgW,kBAAoBte,KAAKS,mBAAmB6H,EAAK+V,mBAAqB/V,EAAK4Y,wBAErI/C,EAAOjV,MAAK1G,EAAAA,EAAAA,GAAc,CAACue,EAAOjQ,EAAiB8P,IAASlgB,MAAKxC,EAAAA,EAAAA,IAAI,EAAEpC,EAAMwiB,EAAgBoB,MAAY5jB,EAAKC,QAAUuiB,EAAeviB,OAASD,EAAKoC,KAAI,CAACQ,EAAGgO,KAAM,CAAG5Q,KAAM4C,EAAG4f,eAAgBA,EAAe5R,GAAIgT,MAAOA,EAAMhT,OAAS4R,EAAepgB,KAAI,CAACQ,EAAGgO,KAAM,CAAG4R,eAAgB5f,EAAG5C,KAAMA,EAAK4Q,GAAIgT,MAAOA,EAAMhT,QAAQxO,KAAI,EAAGpC,OAAMwiB,iBAAgBoB,YAAY,CAAG5jB,OAAM4jB,MAAgB,MAATA,GAA0B,IAATA,EAAc,KAAO,CAAE9a,KAAM8a,GAASpB,eAAkC,MAAlBA,GAA0B,QAAQtP,KAAKsP,GAAkBxiB,EAAOwiB,SACngB,CACA/jB,GAASiI,EAAAA,EAAAA,GAAc2b,GAAQzd,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAKA,EAAE1E,SACnD,MAAoD,GAAzCgG,KAAKM,WAAWC,SAASmgB,aAEhCnmB,EAASyF,KAAK2f,uBACkC,GAAzC3f,KAAKM,WAAWC,SAASmgB,cAA+D,MAAzC1gB,KAAKM,WAAWC,SAASmgB,cAAyE,MAAjD1gB,KAAKM,WAAWC,SAAS6f,wBAChI7lB,EAASyF,KAAKmgB,aAElB,OAAQgB,EAAAA,EAAAA,GAAa5mB,GAAUA,GAASwG,EAAAA,EAAAA,GAAe,MAAVxG,GAAkB,SAAUA,EAASA,EAAS,CAACA,GAChG,CAEA6mB,YAAAA,GACI,IAAIX,EAASzgB,KAAKygB,SA2ClB,OA1C0C,IAAtCzgB,KAAKM,WAAWC,SAAS8gB,WACzBZ,EAASA,EAAO/f,MACZxC,EAAAA,EAAAA,IAAI6a,IACAA,EAAMJ,MAAK,SAAU7a,EAAGC,GACpB,MAAMujB,EAAwB,MAAXxjB,EAAE4hB,MAAgB,KAAO5hB,EAAE4hB,MAAM9a,KAC9C2c,EAAwB,MAAXxjB,EAAE2hB,MAAgB,KAAO3hB,EAAE2hB,MAAM9a,KACpD,GAAI0c,GAAcC,EAAY,CAC1B,MAAMC,GAAUC,EAAAA,EAAAA,IAAmB3jB,EAAEhC,MAC/B4lB,GAAUD,EAAAA,EAAAA,IAAmB1jB,EAAEjC,MACrC,IAAKlB,MAAM4mB,KAAa5mB,MAAM8mB,GAC1B,OAAOF,EAAUE,EAAU,EAAIF,EAAUE,GAAW,EAAI,EACrD,IAAK9mB,MAAM4mB,GACd,OAAQ,EACL,IAAK5mB,MAAM8mB,GACd,OAAO,EAEX,MAAMC,GAAQC,EAAAA,EAAAA,IAAa9jB,EAAEhC,MACvB+lB,GAAQD,EAAAA,EAAAA,IAAa7jB,EAAEjC,MAC7B,OAAa,MAAT6lB,GAA0B,MAATE,EACVF,EAAQE,EAAQ,EAAIF,EAAQE,GAAS,EAAI,EAChC,MAATF,GACC,EACQ,MAATE,GAGJ/jB,EAAEhC,KAAOiC,EAAEjC,KAFP,EAEkBgC,EAAEhC,KAAOiC,EAAEjC,MAAQ,EAAI,CACxD,CACA,OAAOwlB,EAAcC,EAAc,GAAK,CAC5C,IAIA,MAAMO,EAAW,GAMjB,OALA/I,EAAM1a,SAAQkK,IAJd,IAAoBzK,EAAsBC,EAKjC+jB,EAAS/lB,SALwBgC,EAK6BwK,GAJhD,OADHzK,EAKoBgkB,EAASA,EAAS/lB,OAAS,IAJrD2jB,MAA2B,MAAX3hB,EAAE2hB,MAA2B,MAAX3hB,EAAE2hB,OAAiB5hB,EAAE4hB,MAAM9a,MAAQ7G,EAAE2hB,MAAM9a,QAAoB,MAAV9G,EAAEhC,KAAyB,MAAViC,EAAEjC,KAAegC,EAAEhC,MAAQiC,EAAEjC,QAA8B,MAApBgC,EAAEwgB,eAA6C,MAApBvgB,EAAEugB,eAAyBxgB,EAAEwgB,gBAAkBvgB,EAAEugB,kBAKjOwD,EAAS5Y,KAAKX,EAClB,IAEGuZ,CAAQ,MAIpBrB,CACX,CAEAsB,aAAAA,GACI,OAAO/hB,KAAKohB,eAAe1gB,MACvBxC,EAAAA,EAAAA,IAAI8jB,IACA,MAAMC,EAAkCC,GAAgBpU,OAAOC,KAAKmU,GAAK1kB,MAAKgQ,GAAkC,QAA3BA,EAAIpQ,sBACnF2b,EAAQiJ,EAAYvZ,QAAO,SAAUpJ,GACvC,OAAkB,MAAXA,EAAEqgB,OAA+E,IAA9DrgB,EAAEqgB,MAAMuC,EAA+B5iB,EAAEqgB,OACvE,IACMnlB,EAAS,GACTilB,EAAS,CAAC,EAchB,OAbAzG,EAAM1a,SAAQ,SAAUgB,GACpB,IAAIqgB,EAAQF,EAAOngB,EAAEqgB,MAAOuC,EAA+B5iB,EAAEqgB,SAChD,MAATA,GACAA,EAAQ,CACJlS,IAAKnO,EAAEqgB,MAAOuC,EAA+B5iB,EAAEqgB,QAC/C3G,MAAO,CAAC1Z,IAEZmgB,EAAOE,EAAMlS,KAAOkS,EACpBnlB,EAAO2O,KAAKwW,IAEZA,EAAM3G,MAAM7P,KAAK7J,EAEzB,IACO9E,CAAM,IAGzB,CAEA4nB,eAAAA,GACI,OAAOniB,KAAKohB,eAAe1gB,MACvBxC,EAAAA,EAAAA,IAAI8jB,IACA,MAAMjJ,EAAQiJ,EAAYvZ,QAAO,SAAUpJ,GACvC,OAAkB,MAAXA,EAAEqgB,OAAiC,IAAhBrgB,EAAEqgB,MAAM9a,IACtC,IACA,IAAIwd,EAAkBpiB,KAAKM,WAAWC,SAAS6hB,gBAK/C,OAJI9kB,EAAAA,EAAAA,IAAmB8kB,KACnBA,EAAkB,0BAEtBrJ,EAAMnc,QAAQ,CAAE0hB,oBAAgB/Z,EAAWzI,KAAMsmB,IAC1CrJ,CAAK,IAGxB,E,6CC5OW,MAAMsJ,UAAwB3iB,EAAAA,GACzCC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAA6DC,GACtIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,iDACpB,CACAuI,gBAAAA,GACI,MAAO,CAACxI,KACZ,E,OCPW,MAAMsiB,UAA+B5iB,EAAAA,GAGhDC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAiEC,GAC1IC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,sDAChBD,KAAKuiB,gBAAiB,CAC1B,E,sDCAW,MAAMC,UAAgB9iB,EAAAA,GAKjCC,WAAAA,CAAY/D,EAA0CgE,EAA2BC,EAAkDC,GAC/HC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,uCAChBD,KAAKsb,SAAWtb,KAAKsb,UAAY,IAAInb,EAAAA,EAAgB,KACzD,CACAiB,OAAAA,CAAQF,GACJ,MAAM3G,EAASwF,MAAMqB,QAAQF,GAI7B,OAHc,MAAV3G,IACAA,EAAO+f,OAASta,KAAKsa,QAElB/f,CACX,CACAyG,OAAAA,CAAQC,EAAoBC,GACxBnB,MAAMiB,QAAQC,EAAMC,GACR,MAARD,GAGJjB,KAAKoc,UAAUnb,EAAKqZ,OACxB,CACA8B,SAAAA,CAAU9B,GACNta,KAAKsa,OAASA,EACO,MAAjBta,KAAKsb,SACLtb,KAAKsb,SAAW,IAAInb,EAAAA,EAAgBma,GAEpCta,KAAKsb,SAASnZ,KAAKmY,EAE3B,CAEAtO,uBAAAA,CAAwB3D,GACpB,OAAO7F,EAAAA,EAAAA,GAAc,CAACzC,MAAM4K,gBAAgBtC,GAAQrI,KAAKsb,SAAS5a,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAU,cAALA,OAAsBgC,MAAKxC,EAAAA,EAAAA,IAAI,EAAEJ,EAAGC,KAAOD,GAAKC,IACpI,CAEA0kB,iBAAAA,GACI,OAAIziB,KAAKM,WAAWC,SAASmiB,yBAClB1iB,KAAKqc,gBAAgB3b,MAAmCxC,EAAAA,EAAAA,IAAIQ,GAAU,YAALA,MAEjEqC,EAAAA,EAAAA,GAAK,EAAC,GAErB,CAEA8G,QAAAA,GACI,OAAO9H,MAAM8H,WAAWnH,MAAK6E,EAAAA,EAAAA,IAAUlG,GAAMA,EAAIW,KAAK2iB,WAAW,OAAQ5hB,EAAAA,EAAAA,GAAK,EAAC,MACnF,CAEA6hB,SAAAA,CAAUC,EAAcvI,EAAgBnU,GACpC,OAAiD,MAA1CnG,KAAK8iB,WAAWD,EAAMvI,EAAQnU,EACzC,CACA4c,UAAAA,CAAWF,EAAcvI,EAAgBnU,GACrC,MAAiD,QAA1CnG,KAAK8iB,WAAWD,EAAMvI,EAAQnU,EACzC,CACA6c,UAAAA,CAAWH,EAAcvI,EAAgBnU,GACrC,MAAiD,WAA1CnG,KAAK8iB,WAAWD,EAAMvI,EAAQnU,EACzC,CACA2c,UAAAA,CAAWD,EAAcvI,EAAgBnU,GACrC,MAAM8c,EAAcjjB,KAAKM,WAAWC,SAAS4F,QACvC+c,EACa,MAAfD,EACM,KACCjjB,KAAK2F,UACD2D,qBAAoB5K,GAAKA,EAAEnB,IAAM0lB,IACjCzlB,MAAKkB,IAAK,IACzB,GAAiB,MAAbwkB,EAAmB,CAEnB,MAAMC,EAAqBnjB,KAAK2F,UAAsBrF,WAAW6iB,kBAC3DC,EAAgBD,GAAmB3lB,MAAKkB,GAAKA,EAAEpE,OAASggB,IAG9D,OAFkC,MAAjB8I,EAAgC,UAARP,GAA+B,YAAVvI,GAAkC,cAAVA,EAA0B8I,EAAcP,OAAiB,UAARA,EAAmB,OAAS,UAExI,UAAT,MACtB,CACA,GAAiB,MAAbK,EAAmB,CACnB,MAAM3H,EAAqB,UAARsH,EACnB,GAAIK,EAAU9I,IAAI,OAAQmB,KAA2B,MAAXpV,GAAmB8c,GAAe9c,GACxE,MAAO,OAEX,GAAI+c,EAAU9I,IAAI,SAAUmB,KAA2B,MAAXpV,GAAmB8c,GAAe9c,GAC1E,MAAO,SAEX,GAAIoV,GAAc2H,EAAU9I,IAAI,OAAQmB,GACpC,MAAO,SAEf,CAEA,OAAO,IACX,CAEAoH,UAAAA,CAAWnd,GACP,GACI,MACI,GAAwC,MAApCxF,KAAKM,WAAWC,SAAS6V,SAA8D,GAA3CpW,KAAKM,WAAWC,SAAS6V,QAAQra,OAC7E,OAAO,EAEX,OAAQyJ,GACJ,IAAK,OACD,OAAOxF,KAAKM,WAAWC,SAAS6V,QAAQgC,SAASiL,EAAAA,EAAYC,MACjE,IAAK,UACD,OAAOtjB,KAAKM,WAAWC,SAAS6V,QAAQgC,SAASiL,EAAAA,EAAYE,SACjE,QAEI,OAAO,EAElB,EAbD,GAcF,CACE,GAAIvjB,KAAKM,WAAWC,SAASmV,cAGzB,OAFe1V,KAAKS,mBAAmBT,KAAKM,WAAWC,SAASmV,eAElDhV,MAAKxC,EAAAA,EAAAA,IAAI5D,GAASA,EAAML,QAAO,CAAC6D,EAAGY,IAAMZ,GAAsB,KAAjBjD,EAAAA,EAAAA,IAAU6D,KAAU,MAC7E,GAAIsB,KAAKM,WAAWC,SAASyV,eAAgB,CAChD,MAAM7W,EAAUa,KAAKM,WAAWC,SAASqV,cAAgB5V,KAAKM,WAAWC,SAASqV,cAAcC,QAAU,GACtG7V,KAAKM,WAAWC,SAASuV,cACzB3W,EAAQ+J,KAAKlJ,KAAKM,WAAWC,SAASuV,cAE1C,MAAMC,GAAmBxW,EAAAA,EAAAA,GAAgBJ,GAEzC,OADuCa,KAAKsJ,qBAAoB/N,GAAWA,EAAQgC,IAAMyC,KAAKM,WAAWC,SAASyV,iBAAgBja,OAAS,GAEhIgF,EAAAA,EAAAA,GAAK,EAAC,IAENf,KAAKF,mBAAmB2D,YAAagG,iBAAiBzJ,KAAKM,WAAWC,SAASyV,eAAgBhW,KAAKmI,MAAMzH,MAC7G6E,EAAAA,EAAAA,IAAUnJ,IAAYoG,EAAAA,EAAAA,GAAcpG,EAAS8B,KAAIQ,GAAMA,EAAyB0L,4BAChFlM,EAAAA,EAAAA,IAAI+X,GAActX,MAAM8Q,UAAUrV,OAAOoP,MAAM,GAAIyM,MACnD/X,EAAAA,EAAAA,IAAImU,IAAa9S,EAAAA,EAAAA,GAAgB8S,MACjCnU,EAAAA,EAAAA,IAAIgY,IAAmBlW,KAAKM,WAAWC,SAAS4V,SAAU,IAAUD,EAAenN,MAAK1J,GAAK0W,EAAiBhN,MAAKyG,GAAKnQ,GAAKmQ,QAGzI,CACI,OAAOzO,EAAAA,EAAAA,GAAK,EAAC,GAErB,CACI,OAAOA,EAAAA,EAAAA,GAAK,EAAC,GAErB,CACAsb,aAAAA,GACI,OAAOrc,KAAKsb,SAAS5a,MAAK6E,EAAAA,EAAAA,IAAU+U,GAAqB,MAAVA,EAAiBta,KAAK4C,SAASlC,MAAKxC,EAAAA,EAAAA,IAAI4E,GAAUA,EAAQ,WAAa,cAAe/B,EAAAA,EAAAA,GAAK,CAACuZ,MAC/I,E,sBChJW,MAAMkJ,UAA0B9jB,EAAAA,GAG3CC,WAAAA,CAAY/D,EAA0CgE,EAA6BC,EAAgEC,GAC/IC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,gDACpB,CACAe,OAAAA,CAAQC,EAA6BC,GACjCnB,MAAMiB,QAAQC,EAAMC,GACR,MAARD,IACJjB,KAAKyjB,QAAUxiB,EAAKwiB,QACxB,CACAjb,gBAAAA,GACI,MAAO,CAACxI,KACZ,E,SCZW,MAAM0jB,UAAsB/T,EAAAA,GACvChQ,WAAAA,CAAY/D,EAA0CgE,EAA8BC,EAAwDC,GACxIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,6CAChBD,KAAKyE,aAAc,CACvB,CAEAqZ,eAAAA,GACI,MAAM/E,EAAQ/Y,KAAKM,WAAWC,SAASwY,OAAS,GAC1CoF,EAAS,GACf,IAAK,IAAInZ,EAAQ,EAAGA,EAAQ+T,EAAMhd,OAAQiJ,IAAS,CAC/C,MAAMsD,EAAOyQ,EAAM/T,GACnB,IAAIoZ,EAMAxN,EAJAwN,EADA9V,EAAK9H,mBACIR,KAAKS,mBAAmB6H,EAAK9H,mBAAoB,OAEjDO,EAAAA,EAAAA,GAAK,CAAC,CAACuH,EAAK1H,SAIrBgQ,EADAtI,EAAK+V,mBACIre,KAAKS,mBAAmB6H,EAAK+V,mBAAoB,OAEjDtd,EAAAA,EAAAA,GAAK,CAAC,CAACuH,EAAKhO,SAEzB6jB,EAAOjV,MAAK1G,EAAAA,EAAAA,GAAc,CAAC4b,EAAQxN,IAASlQ,MAAKxC,EAAAA,EAAAA,IAAI,EAAE0C,EAAOtG,MAAYsG,EAAM7E,QAAUzB,EAAMyB,OAAS6E,EAAM1C,KAAI,CAACQ,EAAGgO,KAAM,CAAG9L,MAAOlC,EAAGpE,MAAOA,EAAMoS,OAASpS,EAAM4D,KAAI,CAACQ,EAAGgO,KAAM,CAAGpS,MAAOoE,EAAGkC,MAAOA,EAAM8L,QAAQxO,KAAI,EAAG0C,QAAOtG,YAAY,CAAGsG,QAAOtG,MAAgB,MAATA,GAAiB,QAAQ0U,KAAK1U,GAASsG,EAAQtG,MAAUmO,QAAO2Q,GAAgB,MAAXA,EAAExY,OAA4B,MAAXwY,EAAE9e,WAC/V,CACA,OAAOkI,EAAAA,EAAAA,GAAc2b,GAAQzd,MAEzBxC,EAAAA,EAAAA,IAAIQ,GAAKA,EAAE1E,SAEnB,E,kBChCW,MAAM2pB,UAAkBjkB,EAAAA,GACnCC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAoDC,GAC7HC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,wCACpB,ECJW,MAAM2jB,UAAuClkB,EAAAA,GACxDC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAyEC,GAClJC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,6DACpB,E,QCFW,MAAM4jB,UAAmBnkB,EAAAA,GAGpCC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAqDC,GAC9HC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,yCACpB,CAIAG,eAAAA,GAWI,OAV6B,MAAzBJ,KAAKK,mBACDL,KAAKM,WAAWC,SAASC,mBACzBR,KAAKK,iBAAmBL,KAAKS,mBAAmBT,KAAKM,WAAWC,SAASC,oBAAoBE,MACzFxC,EAAAA,EAAAA,IAAIQ,GAAMA,EAAE3C,OAAS2C,EAAE,GAAK,QAC5BqM,EAAAA,EAAAA,GAAM,CAAEC,qBAAqB,EAAMC,UAAWA,IAAM,IAAI9K,EAAAA,EAAgB,SAG5EH,KAAKK,kBAAmBU,EAAAA,EAAAA,GAAK,CAACf,KAAKM,WAAWC,SAASK,OAAS,QAGjEZ,KAAKK,gBAChB,E,0BCrBW,MAAMyjB,UAA0BpkB,EAAAA,GAG3CC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAA4DC,GACrIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKoV,wBAAyB,CAClC,CAEAgB,OAAAA,GACI,OAAyD,MAArDpW,KAAKM,WAAWC,SAASwjB,0BAA4G,IAAvE/jB,KAAKM,WAAWC,SAASyjB,8BAAgC,IAAIjoB,OACpHyP,QAAQyY,SAAQ,GAEZjkB,KAAKS,mBAAmBT,KAAKM,WAAWC,SAASwjB,yBAA2B/jB,KAAKM,WAAWC,SAASyjB,8BAE/GtjB,MACGxC,EAAAA,EAAAA,IAAIgmB,GACcA,EAAiBnb,MAAK1J,GAAKW,KAAKM,WAAWC,SAAS4jB,yBAA0Bhb,QAAQ9J,IAAM,OACxFW,KAAKM,WAAWC,SAAS6jB,qBAGlD1jB,MAAK2G,EAAAA,EAAAA,MACLC,WACT,CAEA+c,eAAAA,GACI,MAAM1F,EAAc3e,KAAKM,WAAWC,SAASoe,YAC7C,GAAyD,MAArD3e,KAAKM,WAAWC,SAAS+jB,0BAAgG,IAA3DtkB,KAAKM,WAAWC,SAASqe,kBAAoB,IAAI7iB,QAAuF,IAAvEiE,KAAKM,WAAWC,SAASgkB,8BAAgC,IAAIxoB,OAC5L,OAAOyP,QAAQyY,QAAQ,CAACtF,IACrB,GAAgE,IAA3D3e,KAAKM,WAAWC,SAASqe,kBAAoB,IAAI7iB,OAAa,CACtE,MAAM8iB,EAAoB,GAC1B,IAAK,MAAMC,KAAmB9e,KAAKM,WAAWC,SAASqe,kBAAoB,GACvEC,EAAkB3V,KAAKlJ,KAAKS,mBAAmBqe,EAAgBpJ,eAAgBhV,MAAKxC,EAAAA,EAAAA,IAAIpC,IAAQ,CAAGyB,GAAIuhB,EAAgBpJ,cAAe5Z,aAE1I,OAAO0G,EAAAA,EAAAA,GAAcqc,GAChBne,MACGxC,EAAAA,EAAAA,IAAIjD,IAAgBD,EAAAA,EAAAA,IAA+BC,EAAc0jB,MACjEtX,EAAAA,EAAAA,MAEHC,WACT,CACI,OAAOtH,KAAKuH,0BAA0BvH,KAAKM,WAAWC,SAAS+jB,yBAA2BtkB,KAAKM,WAAWC,SAASgkB,6BAE3H,E,SC7CW,MAAMC,UAA6B9kB,EAAAA,GAG9CC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAA+DC,GACxIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKsV,kBAAmB,CAC5B,CAEAc,OAAAA,GACI,MAAMqO,EAAgBzkB,KAAKM,WAAWC,SAASkkB,cAC/C,OAAqB,GAAjBA,EACOjZ,QAAQyY,SAAQ,GACC,GAAjBQ,EACAjZ,QAAQyY,SAAQ,GAEhBjkB,KAAKoH,8BAA8BpH,KAAKM,WAAWC,SAASmkB,0BAE3E,CAEArK,SAAAA,GACI,MAAO,CAACra,KAAKM,WAAWC,SAASK,MACrC,E,wBCrBW,MAAM+jB,UAA+BjlB,EAAAA,GAGhDC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAiEC,GAC1IC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKsV,kBAAmB,CAC5B,CAEAc,OAAAA,GACI,MAAMqO,EAAgBzkB,KAAKM,WAAWC,SAASkkB,cAC/C,OAAqB,GAAjBA,EACOjZ,QAAQyY,SAAQ,GACC,GAAjBQ,EACAjZ,QAAQyY,SAAQ,GAEhBjkB,KAAKoH,8BAA8BpH,KAAKM,WAAWC,SAASmkB,0BAE3E,CAEArK,SAAAA,GACI,MAAO,CAACra,KAAKM,WAAWC,SAASK,MACrC,EClBW,MAAMgkB,UAAwBllB,EAAAA,GACzC4V,iBAEA3V,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAA0DC,GACnIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SANK,+CAOVD,KAAKsV,kBAAmB,CAC5B,CAEAc,OAAAA,GACI,MAAMqO,EAAgBzkB,KAAKM,WAAWC,SAASkkB,cAC/C,OAAyL,GAArLzkB,KAAK2F,UAAU2D,qBAAqB8P,GAA0BA,EAAE7b,IAAMyC,KAAKM,WAAWC,SAASskB,eAAgBzN,EAAAA,EAAAA,GAAUgC,IAAMA,EAAE3C,cAAgB1D,SAASqG,EAAEhG,UAAY,IAAGrX,OACpKyP,QAAQyY,SAAQ,GAEvBQ,GAAiBK,EAAAA,EAAoBC,KAC9BvZ,QAAQyY,SAAQ,GAChBQ,GAAiBK,EAAAA,EAAoBE,MACrCxZ,QAAQyY,SAAQ,GAEhBjkB,KAAKoH,8BAA8BpH,KAAKM,WAAWC,SAASmkB,0BAE3E,CAEArK,SAAAA,GACI,MAAO,CAACra,KAAKM,WAAWC,SAASK,MACrC,EC5BW,MAAMqkB,UAA8BvlB,EAAAA,GAE/CC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAgEC,GACzIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,iDAChBD,KAAKklB,sBAAuB,CAChC,CAEApQ,iBAAAA,GACI,QAAO9U,KAAKM,WAAWC,SAAS4kB,kBAA0B,IAC9D,CAEAvQ,oBAAAA,GACI,OAAO5U,KAAKM,WAAWC,SAAS6kB,cACpC,CAEA1Q,qBAAAA,GACI,OAAyD,MAArD1U,KAAKM,WAAWC,SAAS8kB,yBACVrlB,KAAKuH,0BAA0BvH,KAAKM,WAAWC,SAAS8kB,yBAA0BrlB,KAAKM,WAAWC,SAAS+kB,8BAGnHtlB,KAAKM,WAAWC,SAASglB,WAExC,E,cCzBJ,MAAMC,GAA8B,sBAQrB,MAAMC,WAAsD/lB,EAAAA,GACvEC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAuCC,GAChHC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,6CACpB,CAEA6U,iBAAAA,GACI,OAAO9U,KAAK+U,qBAAqBrU,MAAK2G,EAAAA,EAAAA,MAASC,WACnD,CAEAyN,kBAAAA,GACI,OAAO/U,KAAK0lB,sBAAsBhlB,MAC9BxC,EAAAA,EAAAA,IAAI6a,GACOA,EAAM9e,QAAO,CAAC6D,EAAGyK,IAAMzK,EAAIyK,EAAEod,SAAWpd,EAAEqd,WAAW,GAAK,GAAW,OAGxF,CAEAzK,oBAAAA,GACI,OAAOnb,KAAKkV,cAAcxU,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAKA,GAAK8mB,KACjD,CAEAhR,cAAAA,CAAekG,GACX,MAAO,EACX,CAEAxF,WAAAA,GACI,OAAOlV,KAAK+U,qBAAqBrU,MAC7B6E,EAAAA,EAAAA,IAAUsgB,GACDA,EAGc7lB,KAAKS,mBAAmBT,KAAKM,WAAWC,SAASulB,sCAClDplB,MAAKxC,EAAAA,EAAAA,IAAI5D,IAAUA,GAASA,EAAMyB,OAASzB,EAAM8Q,KAAK,IAAMpL,KAAKM,WAAWC,SAASwlB,0BAA4BP,OAHxHzkB,EAAAA,EAAAA,GAAK,CAAC,SAM7B,CAEAilB,kBAAAA,GACI,OAAOhmB,KAAK0lB,sBAAsBhlB,MAAK2G,EAAAA,EAAAA,MAASC,WACpD,CAEAoe,mBAAAA,GAQI,MAAM3M,EAAQ,GACd,IAAK,IAAIkN,EAAY,EAAGA,GAAajmB,KAAKM,WAAWC,SAASwY,OAAOhd,QAAU,GAAIkqB,IAAa,CAC5F,MAAMC,EAAgBlmB,KAAKM,WAAWC,SAASwY,MAAOkN,GAChDE,EAAsB,CACxB,CACIR,SAAoC,MAA1BO,EAAcP,SAAmB,EAAIO,EAAcP,SAC7DC,UAAWM,EAAcN,WAAa,EACtCQ,YAAaF,EAAcE,aAAe,GAC1CC,IAAKH,EAAcG,KAAO,KAGlCtN,EAAM7P,KAAK,CAACid,GAAW3jB,EAAAA,EAAAA,GAAesL,OAAOC,KAAKoY,EAAU,IAAyBjoB,KAAIQ,GAAK,CAACA,EAAGwnB,EAAexnB,EAAI,oBAAkDR,KAAI,EAAE+Y,EAAG1O,KAAa,MAALA,GAAYxH,EAAAA,EAAAA,GAAK,CAAC,CAACkW,EAAG,QAAmBjX,KAAKS,mBAAmB8H,GAAa7H,MAAKxC,EAAAA,EAAAA,IAAIooB,GAAM,CAACrP,EAAGqP,UAC7R,CACA,OAAO9jB,EAAAA,EAAAA,GAAcuW,EAAM7a,KAAI,EAAEioB,EAAWI,KAAiBA,EAAY7lB,MAAKxC,EAAAA,EAAAA,IAAIsoB,GAAgB,CAACL,EAAWK,SAA2B9lB,MACrIxC,EAAAA,EAAAA,IAAIuoB,IACA,MAAM1N,EAAQ,GACd,IAAK,MAAOoN,EAAWlrB,KAAiBwrB,EACpC,IAAIxrB,EAAa8N,MAAKrK,GAAa,MAARA,EAAE,IAA6B,GAAfA,EAAE,GAAG3C,SAAhD,CAIA,IAAK,IAAKyR,EAAKuB,KAAW9T,EACtB,GAAc,MAAV8T,EAAJ,CAGIvB,EAAIoG,SAAS,iBACbpG,EAAMA,EAAIqI,MAAM,GAAG,KAEvB,IAAK,IAAI6Q,EAAa,EAAGA,EAAa3X,EAAOhT,OAAQ2qB,IAC7CA,GAAcP,EAAUpqB,QACxBoqB,EAAUjd,KAAK,CAAC,GAGhBid,EAAUO,GAAYlZ,GADf,aAAPA,GAA6B,YAAPA,GACOnT,EAAAA,EAAAA,IAAuB0U,EAAO2X,IAE9B3X,EAAO2X,EAX5C,CAeJ,IAAK,MAAMlZ,KAAOM,OAAOC,KAAKoY,EAAU,IACpC,IAAK,MAAM7d,KAAQ6d,EACE,MAAb7d,EAAKkF,KAEDlF,EAAKkF,GADE,aAAPA,GAA6B,YAAPA,GACVnT,EAAAA,EAAAA,IAAuB8rB,EAAU,GAAG3Y,IAEpC2Y,EAAU,GAAG3Y,IAKzC7O,MAAM8Q,UAAUvG,KAAKM,MAAMuP,EAAOoN,EA/BlC,CAiCJ,OAAOpN,CAAK,IAGxB,EC7GW,MAAM4N,WAA0BlB,GAC3C9lB,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAA4DC,GACrIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,gDACpB,CAEAuU,cAAAA,CAAekG,GACX,MAAO,CACH,CACI9Z,MAAO,oBACP2kB,YAAaqB,eACY5mB,KAAK2B,YAAY,mBAAoB+Y,GAAMhc,IAC5DA,EAAE2H,SAAU,EACZ3H,EAAEmoB,QAAS,EACJnoB,MAKnB,CACIkC,MAAO,oDACPimB,QAAQ,GAGpB,CAEA1S,yBAAAA,CAA0B1N,GACtB,OAAOA,CACX,CAEA,+BAAM2N,CAA0B3N,GAC5B,GAAIA,EAAc,CACd,MAAMvH,SAAc,gCAAyEkV,0BAC7F,aAAalV,EAAKsK,MAAMxJ,KAAM,GAClC,CACI,MAAM,IAAI+D,KAElB,ECvCW,MAAM+iB,WAA8BpnB,EAAAA,GAC/CC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAgEC,GACzIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,qDACpB,CAEAkU,yBAAAA,CAA0B1N,GACtB,OAAOA,CACX,CAEA,+BAAM2N,CAA0B3N,GAC5B,MAAMvH,SAAc,gCAA6EkV,0BACjG,aAAalV,EAAKsK,MAAMxJ,KAAM,GAClC,E,SCZW,MAAM+mB,WAA6BrnB,EAAAA,GAC9CC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAA+DC,GACxIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,mDACpB,CAEAkU,yBAAAA,CAA0B1N,GACtB,OAAOA,CACX,CAEA,+BAAM2N,CAA0B3N,GAC5B,MAAMvH,SAAc,gCAA4EkV,0BAChG,aAAalV,EAAKsK,MAAMxJ,KAAM,GAClC,E,yBCXW,MAAMgnB,WAAyBtnB,EAAAA,GAG1CC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAA2DC,GACpIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,+CACpB,CAEAgnB,cAAAA,GACI,MAAMC,EAAWprB,GAAiB,CAAC,CAAEA,OAAMqrB,QAASnnB,KAAKM,WAAWC,SAASyJ,WAAYod,MAAOpnB,KAAKM,WAAWC,SAAS6mB,QACnHC,EAAWA,IAAIC,IAAkCA,EAAMrtB,QAAO,CAACC,EAAKqtB,IAAgB,MAAPrtB,GAAe,QAAQ8U,KAAK9U,GAAOqtB,EAAMrtB,IACtH4B,EAAOurB,EAASrnB,KAAKM,WAAWC,SAASinB,WAAYxnB,KAAKM,WAAWC,SAASqI,cAC9E6e,EAAiB,CAAC,0BAA2B,wBAEnD,GAAIA,EAAe1e,MAAK2e,GAA8C,MAApC1nB,KAAKM,WAAWC,SAASmnB,KAAkB,CACzE,GAA4B,MAAxB1nB,KAAK2nB,gBAAyB,CAC9B3nB,KAAK2nB,gBAAkB,IAAIzc,EAAAA,EAAc,GACzC,MAAM0c,EAAc,CAChBC,wBAAyB,IAAIC,GAAAA,EAC7BC,qBAAsB,IAAID,GAAAA,GAG9B,IAAK,MAAMpS,KAAiB+R,EAAgB,CACxC,MAAMC,EAAS1nB,KAAKM,WAAWC,SAASmV,GACxCkS,EAAYlS,GAAiB1V,KAAKS,mBAAmBinB,EACzD,EACUllB,EAAAA,EAAAA,GAAc,CAAColB,EAAYC,wBAAyBD,EAAYG,uBAAuBrnB,MAAKxC,EAAAA,EAAAA,IAAI,EAAEspB,EAAYpR,KAAwC,KAA1Bvb,EAAAA,EAAAA,IAAUub,EAAQ,KAA2B,MAAdA,EAAQ,GAAa8Q,EAAQG,EAASG,EAAW,GAAI1rB,IAAU,MAClO6E,UAAUX,KAAK2nB,gBACrB,CACA,OAAO3nB,KAAK2nB,eAChB,CACI,OAAO5mB,EAAAA,EAAAA,GAAK,CAACmmB,EAAQprB,IAE7B,E,QCjCW,MAAMksB,WAA0BtoB,EAAAA,GAG3CC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAA4DC,GACrIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,iDAChBD,KAAKioB,gBAAkB,KACvBC,YAAW,KACPloB,KAAKmoB,oBAAoB,GAC1B,EACP,CAEAC,cAAAA,GAEI,GADApoB,KAAKmoB,qBACuB,MAAxBnoB,KAAKioB,gBACL,IAAK,MAAMI,KAAYva,OAAOC,KAAK/N,KAAKioB,iBACpC,GAAIjoB,KAAKioB,gBAAgBI,GAAUvjB,WAC/B,OAAO9E,KAAK5D,SAASoB,MAAKkB,GAAKA,EAAEnB,IAAM8qB,IAInD,OAAOroB,KAAK5D,SAASoB,MAAKkB,GAAKA,EAAEnB,GAAIqW,SAAS,UAClD,CAEAuU,kBAAAA,GACI,GAA4B,MAAxBnoB,KAAKioB,gBAAyB,CAC9BjoB,KAAKioB,gBAAkB,CAAC,EACxB,IAAK,MAAMK,KAAUtoB,KAAKM,WAAWC,SAASgoB,UAAY,GAAI,CAC1D,MAAMC,EAAgB,IAAIroB,EAAAA,GAAgB,GAC1CH,KAAKioB,gBAAgBK,EAAOD,UAAaG,EACzC,MAAMd,EAASY,EAAO5S,cACP1V,KAAKS,mBAAmBinB,GAElChnB,MAEGxC,EAAAA,EAAAA,IAAI5D,GAASA,EAAML,QAAO,CAAC6D,EAAGY,IAAMZ,GAAsB,KAAjBjD,EAAAA,EAAAA,IAAU6D,KAAU,MAGhEiC,UAAU6nB,EACnB,CACJ,CACJ,CAEAjf,oBAAAA,CAAqBrK,EAA0C3E,GAC3D,OAAOyF,KAAKooB,iBAAiB7e,qBAAqBrK,EAAM3E,EAC5D,CAEAuO,gBAAAA,CAAiBX,GACb,OAAOnI,KAAKooB,iBAAiBtf,iBAAiBX,EAClD,CAEAwB,iBAAAA,CAAkBpM,EAAYmM,GAC1B,OAAO1J,KAAKooB,iBAAiBze,kBAAkBpM,EAAImM,EACvD,E,gBCpDW,MAAM+e,WAA0B/oB,EAAAA,GAC3CgpB,aACAC,iBAEAhpB,WAAAA,CAAY/D,EAA0CgE,EAA8BC,EAA4DC,GAC5IC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAK0oB,aAAe,KACpB1oB,KAAK2oB,iBAAmB,IAAIxoB,EAAAA,GAAyB,EACzD,CAEA2U,iBAAAA,GACI,OAAO,CACX,CAEAC,kBAAAA,GACI,OAAOhU,EAAAA,EAAAA,GAAK,EAAC,GACjB,CAEAoT,yBAAAA,CAA0B1N,GACtB,OAAQA,CACZ,CAEAmiB,SAAAA,CAAUziB,GACN,OAAkB,MAAXA,GAAmBA,GAAWnG,KAAKM,WAAWC,SAAS4F,OAClE,CAEA,qBAAM0iB,CAAgBC,GAClB9oB,KAAK0oB,aAAeI,EACpB,MAAMC,EAAc/oB,KAAKzC,GAAc9C,QAAQ,WAAY,IAC3D,IAAK,MAAMuuB,WAAmBhpB,KAAK2F,UAAU8D,iBAAiBsf,GAAazhB,YACtE0hB,EAAgCH,gBAAgBC,GAErD9oB,KAAK2oB,iBAAiBxmB,MAAK,EAC/B,CAEAf,OAAAA,CAAQF,GACJ,MAAM3G,EAASwF,MAAMqB,QAAQF,GAI7B,OAHc,MAAV3G,GAAuC,MAArByF,KAAK0oB,eACvBnuB,EAAOmuB,aAAe1oB,KAAK0oB,cAExBnuB,CACX,CAEA+Z,YAAAA,GACI,OAAOtU,KAAK2oB,iBAAiBjoB,MAAKxC,EAAAA,EAAAA,IAAIQ,IAAMA,IAChD,CAEA,+BAAM0V,CAA0B3N,GAE5B,MAAO,CACHwiB,WAFcC,EAAAA,GAAAA,WAAe,gCAAsEC,SAGnGloB,KAAM,CACFmoB,SAAWN,GAAkB9oB,KAAK6oB,gBAAgBC,IAG9D,ECtDW,MAAMO,WAA2B3pB,EAAAA,GAC5CgpB,aAEA/oB,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAA6DC,GACtIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAK0oB,aAAe,IACxB,CAEAG,eAAAA,CAAgBC,GACZ9oB,KAAK0oB,aAAeI,CACxB,CAEA1nB,OAAAA,CAAQF,GACJ,MAAM3G,EAASwF,MAAMqB,QAAQF,GAI7B,OAHc,MAAV3G,GAAuC,MAArByF,KAAK0oB,eACvBnuB,EAAOmuB,aAAe1oB,KAAK0oB,cAExBnuB,CACX,E,2CCXW,MAAM+uB,WAAqB5pB,EAAAA,GAKtCC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAuDC,GAChIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,2CACpB,CAEAe,OAAAA,CAAQC,EAA8BC,GAClCnB,MAAMiB,QAAQC,EAAMC,GACpBlB,KAAKmB,OAAOF,EAAM,eAAgB,eACtC,CAEAsoB,eAAAA,CAAgBC,GACZxpB,KAAKypB,aAAeD,EACpBxpB,KAAK0pB,cAAcvnB,KAAKqnB,EAC5B,CAEAG,eAAAA,GACI,OAAO3pB,KAAKypB,YAChB,CAEAroB,OAAAA,CAAQF,GACJ,MAAM3G,EAASwF,MAAMqB,QAAQF,GAI7B,OAHc,MAAV3G,GAAuC,MAArByF,KAAKypB,eACvBlvB,EAAOkvB,aAAezpB,KAAKypB,aAAavrB,KAAImB,IAAK,CAAG4B,KAAM5B,OAEvD9E,CACX,CAEA,gBAAMqvB,CAAWC,EAA8BC,GAE3C,MAAMC,EAA2B,cAAdD,EACnB,IAAIvvB,EAAqB,CACrBuvB,aACA7oB,KAAM8oB,EAAa,KAAOF,EAC1BG,UAAWD,EAAa,KAAOF,GAAgB9tB,QAEnD,GAAwD,MAApDiE,KAAKM,WAAWC,SAAS0pB,yBAAmCF,EAAY,CACxE,MAAM7qB,GAAOgrB,EAAAA,GAAAA,iBAAgB,2BACvBzsB,EAAOuC,KAAKM,WAAWC,SAAStF,aAAa+E,KAAKM,WAAWC,SAAS0pB,yBAAyB,GAC/FE,GAAappB,EAAAA,EAAAA,GAAK,CAAC,CAAEE,KAAM,KAAM+oB,UAAW,KAAMF,gBAClDM,EAAelrB,EAAKzB,EAAM,CAAEuB,KAAMgB,KAAMqqB,SAAU5sB,KAASuC,KAAKF,mBAAoBsF,OAAO,GAAS+kB,EAAY,MAAgC5vB,OAEtJA,SADyB6vB,EAAY1pB,MAAK2G,EAAAA,EAAAA,MAASC,aAC9B/M,MACzB,CACA,aAAcyF,KAAK2B,YAAY,sBAAuBjF,KAAKG,UAAUtC,GAIzE,CAEA+vB,KAAAA,CAAMC,EAAkCC,EAAiCC,GACrE,GAAwD,MAApDzqB,KAAKM,WAAWC,SAAS0pB,wBAAiC,CAC1D,MAAM/qB,GAAOgrB,EAAAA,GAAAA,iBAAgB,2BACvBzsB,EAAOuC,KAAKM,WAAWC,SAAStF,aAAa+E,KAAKM,WAAWC,SAAS0pB,yBAAyB,GA0B/FE,GAAa3nB,EAAAA,EAAAA,GAAc+nB,EAAOC,EAAMC,GAAO/pB,MAAKxC,EAAAA,EAAAA,IAAI,EAAE2nB,EAAM6E,EAAK/R,MAAU,CAAGgS,SAAU9E,EAAM+E,cAAeF,EAAKG,KAAMlS,OAElI,OADezZ,EAAKzB,EAAM,CAAEuB,KAAMgB,KAAMqqB,SAAU5sB,KAASuC,KAAKF,mBAAoBsF,OAAO,GAAS+kB,EAAY,MAAgC5vB,OACnImG,MACTxC,EAAAA,EAAAA,IAAI,EAAG3D,OAAQ0G,EAAM6pB,gBACV,CAAE7pB,KAAMA,GAAM8pB,WAAa,GAAIf,UAAW/oB,GAAM+pB,iBAAmB,MAGtF,CACI,OAAOxoB,EAAAA,EAAAA,GAAc+nB,EAAOC,EAAMC,GAAO/pB,MACrC6E,EAAAA,EAAAA,IAAUqhB,OAAQf,EAAM6E,EAAK/R,MACzB,MAAMpe,QAAgByF,KAAK2B,YAAY,uBAAwBjF,KAAKG,UAAU,CAAEgpB,OAAM6E,MAAK/R,UAI3F,MAAO,CACH1X,KAAM1G,EAAO0G,KAAK/C,KAAIQ,GAClBA,EAAEzE,QACE,CAAC0d,EAAGjZ,KACAiZ,EAAEjZ,EAAEusB,KAAOvsB,EAAEshB,MACNrI,IAEX,CAAC,KAGTqS,UAAWzvB,EAAOyvB,UACrB,IAIjB,EAGG,MAAMkB,WAAuCxrB,EAAAA,GAGhDC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAAyEC,GAClJC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,6DACpB,CAEA4Q,UAAAA,GACI,MAAMsa,EAAYnrB,KAAKpE,cACjBwvB,EAAWD,EAAU7qB,WAAWC,SAAS8qB,aAAaC,WAAU5sB,GAAKA,EAAE6sB,kBAAoBvrB,KAAKM,WAAWC,SAASirB,SAC1H,OAAOL,EAAUzB,cAAchpB,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAKA,EAAER,KAAIwO,GAAKA,EAAE0e,OAC9D,CAEAhhB,mBAAAA,GACI,OAAOpK,KAAK6Q,YAChB,E,8FC9HJ,MAAM4a,GAA4B,CAC9BC,aAAc,aACdC,aAAc,aACdC,KAAM,SACNC,YAAa,gBACbC,UAAW,cACXC,SAAU,aACVC,MAAO,UACPC,IAAK,mBACLC,MAAO,UACPC,QAAS,YACTC,MAAO,WAGI,MAAMC,WAA0B3sB,EAAAA,GAW3CC,WAAAA,CAAY/D,EAA0CgE,EAAuBC,EAA4DC,GACrIC,MAAMnE,EAAegE,EAAaC,EAAgBC,GAClDE,KAAKC,SAAW,iDAChBD,KAAKud,cAAgBvd,KAAKmI,KAAO,UAEjCnI,KAAKwd,mBAAqBxd,KAAKwd,oBAAsB,GACrDxd,KAAKyE,aAAc,EACnBzE,KAAKssB,yBAA2BtsB,KAAKM,WAAWC,SAASiF,MAAQ+mB,GAAAA,EAAuBC,6BACxFxsB,KAAKysB,UAAY,IAAItsB,EAAAA,EAAwB,GACjD,CAEAa,OAAAA,CAAQC,EAA4BC,GAChCnB,MAAMiB,QAAQC,EAAMC,GACpBlB,KAAKmB,OAAOF,EAAM,wBAClBjB,KAAKmB,OAAOF,EAAM,WAAY,aAC9BjB,KAAKmB,OAAOF,EAAM,sBACe,MAA7BjB,KAAKsB,uBACLtB,KAAK0sB,wBAA0BhwB,KAAKC,MAAMqD,KAAKsB,sBAEvD,CAEAF,OAAAA,CAAQF,GACJ,MAAM3G,EAASwF,MAAMqB,QAAQF,GAK7B,OAJc,MAAV3G,GAA+C,MAA7ByF,KAAKsB,uBACvB/G,EAAO+G,qBAAuBtB,KAAKsB,qBACnC/G,EAAO8G,SAAWrB,KAAK2sB,WAEpBpyB,CACX,CAEA,oBAAMqyB,GACF,MAAM3rB,EAAmB,GACnB4rB,EAAiC,GACvC,IAAK,MAAMC,KAAY9sB,KAAK+sB,sBAAuB,CAC/C,MAAM1b,EAAa,GACfrR,KAAKssB,yBACLjb,EAAMnI,MACF3D,EAAAA,EAAAA,IAAWnJ,IAAmCoG,EAAAA,EAAAA,GAAcpG,EAAS8B,KAAIQ,GAAMA,EAAyB0L,4BACxGlM,EAAAA,EAAAA,IAAK+X,GAAyBtX,MAAM8Q,UAAUrV,OAAOoP,MAAM,GAAIyM,MAGnE5E,EAAMnI,MAAKhL,EAAAA,EAAAA,IAAK9B,GAAwBA,EAAS8B,KAAIQ,GAAKA,EAAEoY,aAEhE,MAAMvb,SAAiBuxB,EAASpsB,MAAK2G,EAAAA,EAAAA,MAASC,aAAc,GAC5D/L,EAAQ6G,aACRyqB,EAAQ3jB,KAAK3N,EAAQ0H,UAAUvC,MAAKxC,EAAAA,EAAAA,IAAIQ,GAAKA,EAAE3C,OAAS,MACxD,MAAMzB,SAAgBwyB,EAASpsB,KAAK8I,MAAMsjB,EAAUzb,GAAO3Q,MAAK2G,EAAAA,EAAAA,MAASC,aAA0B,GACtF,MAAThN,GACA2G,EAAKiI,KAAK,CAAE+hB,IAAK1vB,EAAQgC,GAAKyiB,MAAO1lB,GAE7C,CAOA,SANwBkI,EAAAA,EAAAA,GAAcqqB,GACjCnsB,MACGxC,EAAAA,EAAAA,IAAI5D,GAASA,EAAMyO,MAAKrK,GAAKA,OAC7B2I,EAAAA,EAAAA,MAEHC,YAGD,MADAtH,KAAKoC,aACC2B,MAAM,SAEhB,MAIMrC,QAAkB1B,KAAK2B,YAAY,uBAAwBjF,KAAKG,UAAUoE,IAJ9D8E,IACdA,EAASM,SAAU,EACZN,KAUX,OAJA/F,KAAK0sB,wBAA0BhrB,EAC/B1B,KAAKsB,qBAAuB5E,KAAKG,UAAUmD,KAAK0sB,yBAChD1sB,KAAK4B,YAAYF,EAASO,SAC1BjC,KAAKysB,UAAUtqB,MAAKiG,EAAAA,GAAAA,MACb1G,CACX,CAEAiG,mBAAAA,CAAoBnC,EAAcoC,GAC9B,OAAOA,EAAoB5H,KAAKysB,UACpC,CAEA7qB,WAAAA,CAAYS,EAAgB2qB,GAAkB,GAK1C,OAJAhtB,KAAK2sB,UAAYtqB,EACZ2qB,GACDhtB,KAAKitB,WAAW9qB,KAAKnC,KAAK2sB,WAEvBtqB,CACX,CAEAC,SAAAA,GACI,OAAOE,EAAAA,EAAAA,GAAcxC,KAAK+sB,uBAAuBrsB,MAC7C6E,EAAAA,EAAAA,IAAU0D,IACN,MAAMkB,EAAiCxL,MAAM8Q,UAAUrV,OAAOoP,MAAM,GAAIP,GACxE,OAAIjJ,KAAKssB,0BACE9pB,EAAAA,EAAAA,GAAc,CAACxC,KAAKitB,YAAYzqB,EAAAA,EAAAA,GAAc2H,EAASjM,KAAIQ,GAAMA,EAAyB0L,sBAAsB1J,MAAKxC,EAAAA,EAAAA,IAAImB,GAAK,CAACX,EAAEnB,GAAI8B,WAA+BqB,MACvKxC,EAAAA,EAAAA,IAAI,EAAEgvB,EAAGne,MACL,GAA4C,MAAxC/O,KAAK0sB,yBAAyB3qB,OAAgB,OAAO,EACzD,MAAMorB,EAAoBrf,OAAO0M,QAAQiR,IAA2BxxB,QAChE,CAACC,GAAMkzB,EAAaC,MAChB,MAAMC,EAAYttB,KAAKM,WAAWC,SAAS8sB,GAI3C,OAHiB,MAAbC,IACApzB,EAAIozB,GAAattB,KAAK0sB,yBAAyB3qB,QAAQwrB,6BAA6BC,gBAAgBJ,SAAsE7oB,GAEvKrK,CAAG,GAEd,CAAC,GAECuzB,EAAuBztB,KAAK0sB,wBAAwBzqB,QACpD1H,EAASwU,EAAOjE,OAAM,EAAEvN,EAAI8B,MAC9B,MAAM/E,EAAQqE,MAAM8Q,UAAUrV,OAAOoP,MAAM,GAAInK,GAAe,GAC9D,OAAOD,EAAAA,EAAAA,GAAY+tB,EAAkB5vB,MAAS6B,EAAAA,EAAAA,GAAY9E,EAAM,IAGpE,OADA0F,KAAKoE,SAASjC,KAAK5H,GACZyF,KAAK4B,YAAY6rB,GAAwBlzB,GAAQ,EAAK,MAI9DiI,EAAAA,EAAAA,GAAc,CAACxC,KAAKitB,YAAYzqB,EAAAA,EAAAA,GAAc2H,EAASjM,KAAIQ,GAAMA,EAAcqS,YAAYrQ,MAAKxC,EAAAA,EAAAA,IAAImB,GAAK,CAAEX,EAAcoY,QAASzX,WAASqB,MAC9IxC,EAAAA,EAAAA,IAAI,EAAEmD,EAAU0N,MACZ,MAAM2e,EAAW3e,EAAO7Q,KAAIQ,GAAKA,EAAE,KAC7BivB,EAAY5e,EAAO7Q,KAAIQ,GAAKA,EAAE,KAC9BkvB,EAAkB5tB,KAAK0sB,yBAAyB3qB,QAAQ8rB,4BACxDC,EAAmB,CAACF,GAAiBG,OAAOC,QAASJ,GAAiBK,MAAMD,SAASvlB,QAAO/J,KAAOA,IACnGnE,GAAS2zB,EAAAA,GAAAA,GAAWR,EAAUI,IAAqBH,EAAU7iB,OAAMpM,GAAKA,IAG9E,OAFAsB,KAAKoE,SAASjC,KAAK5H,GAEZyF,KAAK4B,YAAYP,GAAY9G,GAAQ,EAAK,IAG7D,IAGZ,CAEAwyB,mBAAAA,GAEI,OADa/sB,KAAKssB,yBAA4B,CAAC,cAAe,aAAc,mBAAoB,gBAAiB,aAAc,aAAc,SAAU,UAAW,YAAa,UAAW,WAAuBtsB,KAAKM,WAAWC,SAAS4tB,cAAgBC,GAAAA,EAA6BC,gBAAmB,CAAC,uBAAwB,uBAAoC,CAAC,eAC5V5lB,QAAO+E,GAAwC,MAAjCxN,KAAKM,WAAWC,SAASiN,KAActP,KAAIsP,GAAOxN,KAAKF,mBAAmB2D,YAAagG,iBAAiBzJ,KAAKM,WAAWC,SAASiN,GAAOxN,KAAKmI,OAC3K,CAEAmmB,wBAAAA,GACI,OAAO9rB,EAAAA,EAAAA,GAAcxC,KAAK+sB,uBAAuBrsB,MAC7C6E,EAAAA,EAAAA,IAAU4E,IAAY3H,EAAAA,EAAAA,IAAcsH,EAAAA,GAAAA,GAAcK,GAAUjM,KAAIQ,GAAKA,EAAEuE,UAAUvC,MAAKxC,EAAAA,EAAAA,IAAIwO,GAAiB,GAAZA,EAAE3Q,gBACjGmC,EAAAA,EAAAA,IAAIqwB,GAAUA,EAAOzjB,OAAMpM,GAAKA,MAExC,CAEAkE,MAAAA,CAAO0H,EAA2BpJ,GAC9B,MAAMstB,EAAczuB,MAAM6C,OAAO0H,EAAiBpJ,GAClD,OAAOsB,EAAAA,EAAAA,GAAc,CAACgsB,EAAaxuB,KAAKiM,qBAAsBjM,KAAK6C,UAAW7C,KAAKsC,cAAc5B,MAAKxC,EAAAA,EAAAA,IAAI,EAAEuS,EAAYC,EAAkB3N,EAAQ1B,MAAeoP,IAAe1N,IAAU2N,GAAoBrP,IAClN,CAEA4B,OAAAA,GACI,OAAOjD,KAAK4C,SAASlC,MAAKxC,EAAAA,EAAAA,IAAI4E,GAAUA,EAAQ,GAAK9C,KAAKmD,mBAAmBpH,OAAS,EAAIiE,KAAKmD,mBAAqB,CAAC,4CACzH,CAEAmR,YAAAA,GACI,OAAO9R,EAAAA,EAAAA,GAAc,CAACxC,KAAKsC,YAAatC,KAAK6H,aAAanH,MAAKxC,EAAAA,EAAAA,IAAI,EAAEmD,EAAU+U,MAAc/U,GAAY+U,IAC7G,ECjIJ,SAASlR,GAAatJ,EAA0CgE,EAAuBC,EAAsDC,GAEzI,OADaD,EAAe2F,MAExB,IAAK,aACD,OAAO,IAAI/F,EAAAA,EAAW7D,EAAegE,EAAaC,EAAuDC,GAC7G,IAAK,gBACD,OAAO,IAAIsd,EAAcxhB,EAAegE,EAAqCC,EAA0DC,GAC3I,IAAK,gBACD,OAAO,IAAIwd,EAAc1hB,EAAegE,EAAaC,EAA0DC,GACnH,IAAK,gBACD,OAAO,IAAI+d,EAAcjiB,EAAegE,EAAqCC,EAA0DC,GAC3I,IAAK,yBACD,OAAO,IAAIye,EAAuB3iB,EAAegE,EAAaC,EAAmEC,GACrI,IAAK,aACD,OAAO,IAAI0e,EAAW5iB,EAAegE,EAAaC,EAAuDC,GAC7G,IAAK,yBACD,OAAO,IAAIyV,EAAAA,EAAuB3Z,EAAegE,EAAaC,EAAmEC,GACrI,IAAK,gBACD,OAAO,IAAIkf,EAAcpjB,EAAegE,EAAgCC,EAA0DC,GACtI,IAAK,oBACD,OAAO,IAAI0V,EAAAA,EAAkB5Z,EAAegE,EAAaC,EAA0DC,GACvH,IAAK,4BACD,OAAO,IAAI2V,EAAAA,EAA0B7Z,EAAegE,EAAaC,EAAsEC,GAC3I,IAAK,kBACD,OAAO,IAAIwf,EAAgB1jB,EAAegE,EAAgCC,EAA4DC,GAC1I,IAAK,mBACD,OAAO,IAAIuW,EAAAA,EAAiBza,EAAegE,EAAgCC,EAA6DC,GAC5I,IAAK,UACD,OAAO,IAAI0W,EAAAA,EAAQ5a,EAAegE,EAA6BC,EAA0DC,GAC7H,IAAK,oBACD,OAAO,IAAI+Z,EAAAA,GAAkBje,EAAegE,EAAgCC,EAA0DC,GAC1I,IAAK,uBACD,OAAO,IAAIga,EAAAA,GAAqBle,EAAegE,EAAgCC,EAA0DC,GAC7I,IAAK,aACD,OAAO,IAAIuX,EAAAA,GAAWzb,EAAegE,EAAaC,EAAuDC,GAC7G,IAAK,qBACD,OAAO,IAAI2uB,EAAmB7yB,EAAegE,EAAaC,EAA0DC,GACxH,IAAK,UACD,OAAO,IAAIoa,EAAAA,EAAQte,EAAegE,EAAyBC,EAA0CC,GACzG,IAAK,yBACD,OAAO,IAAIwiB,EAAuB1mB,EAAegE,EAAaC,EAAmEC,GACrI,IAAK,UACD,OAAO,IAAI0iB,EAAQ5mB,EAAegE,EAA6BC,EAAoDC,GACvH,IAAK,eACD,OAAO,IAAIub,EAAAA,EAAazf,EAAegE,EAAkCC,EAAyDC,GACtI,IAAK,oBACD,OAAO,IAAI0jB,EAAkB5nB,EAAegE,EAAaC,EAA0DC,GACvH,IAAK,gBACD,OAAO,IAAI4jB,EAAc9nB,EAAegE,EAAgCC,EAA0DC,GACtI,IAAK,YACD,OAAO,IAAI6jB,EAAU/nB,EAAegE,EAAaC,EAA0DC,GAC/G,IAAK,iCACD,OAAO,IAAI8jB,EAA+BhoB,EAAegE,EAAaC,EAA2EC,GACrJ,IAAK,aACD,OAAO,IAAI+jB,EAAWjoB,EAAegE,EAAaC,EAA0DC,GAChH,IAAK,aACD,OAAO,IAAIwc,EAAAA,EAAW1gB,EAAegE,EAAgCC,EAAuDC,GAChI,IAAK,eACD,OAAO,IAAIwpB,GAAa1tB,EAAegE,EAAaC,EAAyDC,GACjH,IAAK,iCACD,OAAO,IAAIorB,GAA+BtvB,EAAegE,EAAaC,EAA0DC,GACpI,IAAK,oBACD,OAAO,IAAIgkB,EAAkBloB,EAAegE,EAAaC,EAA8DC,GAC3H,IAAK,uBACD,OAAO,IAAI0kB,EAAqB5oB,EAAegE,EAAaC,EAA0DC,GAC1H,IAAK,yBACD,OAAO,IAAI6kB,EAAuB/oB,EAAegE,EAAaC,EAA0DC,GAC5H,IAAK,kBACD,OAAO,IAAI8kB,EAAgBhpB,EAAegE,EAAaC,EAA0DC,GACrH,IAAK,wBACD,OAAO,IAAImlB,EAAsBrpB,EAAegE,EAAaC,EAA0DC,GAC3H,IAAK,oBACD,OAAO,IAAI6mB,GAAkB/qB,EAAegE,EAAaC,EAA8DC,GAC3H,IAAK,mBACD,OAAO,IAAIknB,GAAiBprB,EAAegE,EAAaC,EAA0DC,GACtH,IAAK,oBACD,OAAO,IAAIkoB,GAAkBpsB,EAAegE,EAAaC,EAA0DC,GACvH,IAAK,wBACD,OAAO,IAAIgnB,GAAsBlrB,EAAegE,EAAaC,EAA0DC,GAC3H,IAAK,uBACD,OAAO,IAAIinB,GAAqBnrB,EAAegE,EAAaC,EAAiEC,GACjI,IAAK,eACD,OAAO,IAAI+a,EAAAA,EAAajf,EAAegE,EAAaC,EAA0DC,GAClH,IAAK,oBACD,OAAO,IAAI2oB,GAAkB7sB,EAAegE,EAAgCC,EAA0DC,GAC1I,IAAK,qBACD,OAAO,IAAIupB,GAAmBztB,EAAegE,EAAaC,EAA0DC,GACxH,IAAK,oBACD,OAAO,IAAIusB,GAAkBzwB,EAAegE,EAAaC,EAA8DC,GAC3H,QAEI,OAAO,IAAIJ,EAAAA,GAAe9D,EAAegE,EAAaC,EAA0DC,GAE5H,C,8NCvJA,IAAI4uB,GAAmB,EAMhB,SAASC,EAA+BjtB,GAC3C,QAAKktB,UAAUC,QAAiC,0BAAvBntB,EAASotB,aAA6C,kBAAmBF,WAG3FF,CACX,CACO,SAASK,IACZ,OAAOL,CACX,CAbI,kBAAmBE,WACnBA,UAAUI,cAAcC,MAAM5pB,MAAK,WAC/BqpB,GAAmB,CACvB,I,2ICfG,IAAKQ,EAAoB,SAApBA,GAAoB,OAApBA,EAAAA,EAAoB,uCAApBA,EAAAA,EAAoB,uBAApBA,EAAAA,EAAoB,yBAApBA,EAAAA,EAAoB,iDAApBA,EAAAA,EAAoB,mBAApBA,CAAoB,M,iCC2BzB,SAASC,EAAsBjwB,EAAeghB,GACjD,MAAMkP,EAAU,IAAIjvB,EAAAA,EAAmB,MAyBvC,OAxBAkvB,EAAAA,EAAAA,IACInwB,GACA3E,IACQ2lB,GACAD,QAAQC,IAAI,CAAEA,IAAKA,aAAeoP,SAAWpP,EAAI3lB,GAAU2lB,EAAK3lB,WAEpE60B,EAAQjtB,KAAK5H,EAAO,GAExB,CACIg1B,WAAW,EACXC,QACW,MAAPtP,EACM3lB,IACI0lB,QAAQC,IAAI,CAAEsP,QAASj1B,GAAS,OAEpCgK,EACVkrB,UACW,MAAPvP,EACM3lB,IACI0lB,QAAQC,IAAI,CAAEuP,UAAWl1B,GAAS,OAEtCgK,IAGX6qB,CACX,CACO,MAAMM,GAAeC,EAAAA,EAAAA,IAAY,QAAQ,KAC5C,MAAMttB,EAAQ,CACV8D,SAASypB,EAAAA,EAAAA,IAAI,MACbC,MAAMD,EAAAA,EAAAA,IAAI,MACVE,UAAUF,EAAAA,EAAAA,IAAoB,MAC9BG,cAAcH,EAAAA,EAAAA,IAAoB,MAClCI,iBAAiBJ,EAAAA,EAAAA,IAAI,MACrBnpB,cAAcmpB,EAAAA,EAAAA,IAAI,MAClBrpB,aAAaqpB,EAAAA,EAAAA,IAAI,MACjBlpB,UAAUkpB,EAAAA,EAAAA,IAAI,MACdK,qBAAqBL,EAAAA,EAAAA,IAAI,IACzBM,gBAAgBN,EAAAA,EAAAA,KAAI,GACpBO,iBAAiBP,EAAAA,EAAAA,KAAI,GACrBQ,sBAAsBR,EAAAA,EAAAA,KAAI,GAC1BS,oBAAoBT,EAAAA,EAAAA,KAAI,GACxBU,kBAAkBV,EAAAA,EAAAA,KAAI,GACtBW,eAAeX,EAAAA,EAAAA,KAAI,GACnBY,sBAAsBZ,EAAAA,EAAAA,KAAI,GAC1Ba,yBAAyBb,EAAAA,EAAAA,KAAI,GAC7Bc,eAAed,EAAAA,EAAAA,KAAI,GACnBe,eAAef,EAAAA,EAAAA,IAAI,MAEnBgB,gBAAgBhB,EAAAA,EAAAA,IAAI,IAAIiB,KACxBC,+BAA+BlB,EAAAA,EAAAA,KAAI,GACnCmB,2BAA2BnB,EAAAA,EAAAA,IAAI,MAC/BoB,YAAYpB,EAAAA,EAAAA,IAAI,MAChBqB,6BAA6BrB,EAAAA,EAAAA,IAAI,IAAIiB,MAGzC,SAASK,EAAkB/oB,GAEvB,IAAI5N,EAAS8H,EAAMytB,SAASx1B,MAAS+H,EAAMytB,SAASx1B,MAAMwO,iBAAiBX,EAAKA,MAAQA,GAA+B,KAKvH,OAJc,MAAV5N,GAAkB8H,EAAMoE,aAAanM,QAErCC,EAAS8H,EAAM0tB,aAAaz1B,MAAQ+H,EAAM0tB,aAAaz1B,MAAMwO,iBAAiBX,EAAKA,MAAQA,GAAQ,MAEhG5N,CACX,CACA,SAAS42B,EAAa7kB,EAAoD8kB,GACtE,GAAI/uB,EAAMoE,aAAanM,MAAO,CAC1B,MAAM+2B,EAA8B,MAAf/kB,EAAsB,GAAKA,EAAYlQ,SACtDk1B,EAA0D,MAAlBF,EAAyB,GAAKA,EAAeh1B,SACrF7B,EAAS,GACf,IAAIyK,EAAQ,EACZ,MAAM8O,EAAYrG,KAAKC,IAAI4jB,EAAgBv1B,OAAQs1B,EAAat1B,QAChE,IAAKiJ,EAAQ,EAAGA,EAAQ8O,EAAW9O,IAAS,CACxC,GAAIA,EAAQssB,EAAgBv1B,OAAQ,CAChC,MAAMw1B,EAAeD,EAAgBtsB,GACrCzK,EAAO2O,KAAKqoB,EAChB,CACA,GAAIvsB,EAAQqsB,EAAat1B,OAAQ,CAC7B,MAAMy1B,EAAYH,EAAarsB,GAC1BssB,EAAgBvoB,MAAKrK,GAAKA,EAAEnB,IAAMi0B,EAAUj0B,MAC7ChD,EAAO2O,KAAKsoB,EAEpB,CACJ,CACA,OAAOj3B,CACX,CACI,OAAO62B,EAAiBA,EAAeh1B,SAAW,IAE1D,CAgBA,SAASq1B,IACL,OAAOpvB,EAAMoE,aAAanM,KAC9B,CACA,SAASo3B,IACL,OAAOD,KAAmBpvB,EAAMquB,cAAcp2B,KAClD,CACA,SAASiP,EAAqBd,GAE1B,OADoBpG,EAAMytB,SAASx1B,MACfgP,oBAAoBb,EAC5C,CAGA,MAAMkpB,EAAgB,CAAC,EACvB,SAASC,EAAmBpkB,EAAatO,GAIrC,OAHMsO,KAAOmkB,IACTA,EAAcnkB,GAAOtO,KAElByyB,EAAcnkB,EACzB,CAEA,MAAMqkB,EAAS1C,GAAmB,IAAM2C,MAClCC,EAAU5C,GAAmB,IAAM9sB,EAAMytB,SAASx1B,OAAOggB,QAAU,OACnE0X,EAAW7C,GAAmB,IAAM9sB,EAAM8D,QAAQ7L,QAExD,SAAS23B,IACL,OAAOL,EAAgB,sBAAsB,KAClCpvB,EAAAA,EAAAA,GAAc,CAACqvB,EAAQE,EAASC,IAAWtxB,MAC9CxC,EAAAA,EAAAA,IAAI,EAAEg0B,EAAO5X,EAAQnU,MACjB,GAAa,MAAT+rB,EACA,MAAO,GAEX,GAAI7vB,EAAMoE,aAAanM,MACnB,OAAO43B,EAEX,MAAMrP,EAAOxgB,EAAMkE,YAAYjM,MAAQ,QAAU,SACjD,OAAO43B,EACFzpB,QAAO/J,GAAKA,EAAEkkB,UAAUC,EAAMvI,EAASnU,KACvCwS,MAAK,CAAC7a,EAAGC,KACN,MAAMo0B,EAAKr0B,EAAEilB,WAAWF,EAAMvI,EAASnU,GAEvC,GAAIgsB,GADOp0B,EAAEglB,WAAWF,EAAMvI,EAASnU,GACzB,CACV,MAAMisB,EAAKt0B,EAAEwC,WAAWC,SAAS4F,QAC3BksB,EAAKt0B,EAAEuC,WAAWC,SAAS4F,QACjC,OAAIisB,GAAMC,EACC,EACAD,EAAMC,GACL,EAED,CAEf,CAAO,OAAIF,EACA,GAEC,CACZ,GACF,MAItB,CACA,SAASG,IACL,MAAMJ,EAAQJ,KAAe,GAC7B,OAAIzvB,EAAMoE,aAAanM,MACZ43B,EAEJA,EACFzpB,QAAO/J,GAAKA,EAAEkkB,UAAUvgB,EAAMkE,YAAYjM,MAAQ,QAAU,SAAU+H,EAAMytB,SAASx1B,MAAOggB,OAAQjY,EAAM8D,QAAQ7L,SAClHqe,MAAK,CAAC7a,EAAGC,KACN,MAAMo0B,EAAKr0B,EAAEilB,WAAW1gB,EAAMkE,YAAYjM,MAAQ,QAAU,SAAU+H,EAAMytB,SAASx1B,MAAOggB,OAAQjY,EAAM8D,QAAQ7L,OAElH,GAAI63B,GADOp0B,EAAEglB,WAAW1gB,EAAMkE,YAAYjM,MAAQ,QAAU,SAAU+H,EAAMytB,SAASx1B,MAAOggB,OAAQjY,EAAM8D,QAAQ7L,OACpG,CACV,MAAM83B,EAAKt0B,EAAEwC,WAAWC,SAAS4F,QAC3BksB,EAAKt0B,EAAEuC,WAAWC,SAAS4F,QACjC,OAAIisB,GAAMC,EACC,EACAD,EAAMC,GACL,EAED,CAEf,CAAO,OAAIF,EACA,GAEC,CACZ,GAEZ,CAuCA,SAASL,IACL,OAAQX,EAAa9uB,EAAM0tB,aAAaz1B,MAAkB+H,EAAMytB,SAASx1B,QAAsB,IAAImO,QAAO/J,GAA0B,WAArBA,EAAE4B,WAAWkF,OAAmBiD,QAAO/J,KAAMgzB,MAAqC,IAAbhzB,EAAE8F,QAC1L,CACA,SAAS+tB,IACL,OAA4B,MAAxBlwB,EAAMytB,SAASx1B,MACR,KAEH+H,EAAMytB,SAASx1B,MAAMgP,qBAAqB5K,GAA+C,gBAArBA,EAAE4B,WAAWkF,OAAwBqQ,QAA2B8C,MAAK,CAAC7a,EAAGC,IAAOD,EAAEoe,cAAgBne,EAAEme,eAAiB,EAAIpe,EAAEoe,cAAgBne,EAAEme,cAAgB,EAAI,GACjP,CAuBA,SAASsW,IACL,MAAMC,EAAWF,IACjB,OAAgB,MAAZE,GAAoBA,EAAS12B,OAAS,EACb02B,EAAShqB,QAAO/J,GAAwB,MAAnBA,EAAEwd,eAAqC,YAAZxd,EAAE4b,QAAmC,mBAAX5b,EAAE2D,QAGlG,IACX,CACA,SAASqwB,IACL,MAAMD,EAAWF,IACjB,OAAgB,MAAZE,GAAoBA,EAAS12B,OAAS,EAClC01B,IACOgB,EAEcA,EAAShqB,QAAO/J,GAAKA,EAAE0b,IAAI,OAAQ/X,EAAMkE,YAAYjM,QAAS,KAGpF,IACX,CAeA,SAASq4B,IACL,MAAMF,EAAWC,IACjB,OAAgB,MAAZD,EACIhB,IACOgB,EAEcA,EAAShqB,QAAO/J,GAAKA,EAAE0b,IAAI,SAAU/X,EAAMkE,YAAYjM,QAAS,KAGtF,IACX,CA+BA,MAAMwO,EAAoBX,GAAsC+oB,EAAkB/oB,GAC5EsB,EAAmBA,CAAClM,EAAYmM,IAAyBrH,EAAMytB,SAASx1B,MAAQ+H,EAAMytB,SAASx1B,MAAMmP,iBAAiBlM,EAAImM,IAAe3I,EAAAA,EAAAA,GAAK,CAAC,KAC/I6xB,GAAgBC,EAAAA,EAAAA,KAAS,IACpBxwB,EAAMytB,SAASx1B,QAEpBw4B,GAAoBD,EAAAA,EAAAA,KAAS,IACxBxwB,EAAM0tB,aAAaz1B,QAsBxBy4B,EAAwBx3B,GAjR9B,SAA+BA,GAC3B,IAAIy3B,EAAc,GAClB,MAAMvvB,EAAcpB,EAAMytB,SAASx1B,MAE7B24B,EAAsBxvB,EAAYuF,qBAAqBzN,EAAQ4M,MASrE,QAPG6qB,eAAgBC,EAAoBpd,MAAM,EAAG,KAAS5b,QAErD,CAAC6D,EAAGY,KACO,CAAE/C,OAAQ+C,EAAGs0B,YAAal1B,EAAEk1B,YAAc,aAAel1B,EAAEnC,OAAOS,SAAS+M,QAAQzK,GAAK,OAEnG,CAAE/C,OAAQ8H,EAAauvB,YAAa,eAEjCA,CACX,CAmQ8DE,CAAsB33B,GAC9E8e,GAAYwY,EAAAA,EAAAA,KAAS,IAChBxwB,EAAMytB,SAASx1B,MAAO+f,YAE3B8Y,GAAsBN,EAAAA,EAAAA,KAAS,IAC1BtpB,GAAqB7K,GAA0B,yBAArBA,EAAE4B,WAAWkF,SAG5C4tB,GAAaP,EAAAA,EAAAA,KAAS,IACI,MAAxBxwB,EAAMytB,SAASx1B,MACR,KAEJ+H,EAAMytB,SAASx1B,MAAMgP,qBAAqB5K,GAA+C,eAArBA,EAAE4B,WAAWkF,OAAuBzJ,OAAS,IAEtHs3B,GAAkBR,EAAAA,EAAAA,KAAS,IACtBtpB,GAAqB7K,GAA0B,WAArBA,EAAE4B,WAAWkF,SAE5C8tB,GAA8BT,EAAAA,EAAAA,KAAS,IAClCtpB,GAAqB7K,GAAmB,MAAdA,EAAE4E,UAAoB5E,EAAE4E,SAASyF,MAAKrK,GAAgB,MAAXA,EAAE60B,OAAiB70B,EAAE60B,MAAMx3B,OAAS,QAE9Gy3B,GAAyBX,EAAAA,EAAAA,KAAS,IAC7BtpB,GAAqB7K,GAAkB,MAAbA,EAAE6E,SAAmB7E,EAAE6E,QAAQxH,OAAS,MAEvE03B,GAAoBZ,EAAAA,EAAAA,KAAS,IACxBW,EAAuBl5B,MAAM4D,KAAIC,GAAKA,EAAEoF,QAAQrF,KAAIw1B,IAAK,IAAMA,EAAGn4B,QAAS4C,QAAOnE,SAEvF25B,GAAwBd,EAAAA,EAAAA,KAAS,IAC5BtpB,GAAqB7K,GAAiB,MAAZA,EAAE8E,QAAkB9E,EAAE8E,OAAOzH,OAAS,MAErE63B,GAAmBf,EAAAA,EAAAA,KAAS,IACvBc,EAAsBr5B,MAAM4D,KAAIC,GAAKA,EAAEqF,OAAOtF,KAAIw1B,IAAK,IAAMA,EAAGn4B,QAAS4C,QAAOnE,SAErF65B,GAAYhB,EAAAA,EAAAA,KAAS,IACK,MAAxBxwB,EAAMytB,SAASx1B,MACR,KAEJq5B,EAAsBr5B,MAAMyB,OAAS,IAE1C02B,GAAWI,EAAAA,EAAAA,KAAS,IACfN,MAELuB,GAAsBjB,EAAAA,EAAAA,KAAS,IArKrC,WACI,MAAMJ,EAAWF,IACjB,OAAgB,MAAZE,GAAoBA,EAAS12B,OAAS,EAClC01B,IACOgB,EAEcA,EAAShqB,QAAO/J,GAAKA,EAAEud,eAAiBvd,EAAEwd,gBAGhE,IACX,CA4JW6X,KAELC,IAAwBnB,EAAAA,EAAAA,KAAS,IA7JvC,WACI,MAAMJ,EAAWF,IACjB,OAAgB,MAAZE,GAAoBA,EAAS12B,OAAS,EAClC01B,IACOgB,EAEcA,EAAShqB,QAAO/J,IAAMA,EAAEud,gBAAkBvd,EAAEwd,gBAGlE,IACX,CAoJW+X,KAELC,IAAkBrB,EAAAA,EAAAA,KAAS,IACtBH,MAELyB,IAAoBtB,EAAAA,EAAAA,KAAS,IACxBF,MAELyB,IAAqBvB,EAAAA,EAAAA,KAAS,IArIpC,WACI,MAAMJ,EAAWC,IACjB,OAAgB,MAAZD,EACIhB,IACOgB,EAEcA,EAAShqB,QAAO/J,GAAKA,EAAE0b,IAAI,SAAU/X,EAAMkE,YAAYjM,QAAS,KAGtF,IACX,CA4HW+5B,KAELC,IAAoBzB,EAAAA,EAAAA,KAAS,IACxBL,MAEL+B,IAAiB1B,EAAAA,EAAAA,KAAS,IApHhC,WACI,MAAMJ,EAAWE,IACjB,OAAgB,MAAZF,EACIhB,IACOgB,EAEcA,EAAShqB,QAAO/J,GAAKA,EAAE0b,IAAI,OAAQ/X,EAAMkE,YAAYjM,QAAS,KAGpF,IACX,CA2GWk6B,KAELC,IAAiC5B,EAAAA,EAAAA,KAAS,IA3GhD,WACI,MAAMJ,EAAWD,IACjB,OAAIY,EAAW94B,UACK,MAAZm4B,GAAoBA,EAAS12B,OAAS,GAAK02B,EAAS1pB,MAAKqQ,GAA+C,GAA1CA,EAAE9Y,YAAYC,UAAUm0B,gBAAoE,MAA1Ctb,EAAE9Y,YAAYC,UAAUm0B,iBAMpJ,CAmGWC,KAELC,IAAyB/B,EAAAA,EAAAA,KAAS,IApGxC,WACI,MAAMJ,EAAWD,IACjB,OAAIY,EAAW94B,MACJm4B,GAAUhqB,QAAO/J,GAA+C,GAA1CA,EAAE4B,YAAYC,UAAUm0B,gBAAoE,MAA1Ch2B,EAAE4B,YAAYC,UAAUm0B,iBAEpGjC,CACX,CA+FWoC,KAuBLC,IAAcjC,EAAAA,EAAAA,KAAS,IAClBnB,MAELqD,IAAalC,EAAAA,EAAAA,KAAS,OACjBxwB,EAAMoE,aAAanM,OAAiC,MAAxB+H,EAAMytB,SAASx1B,QAA8D,WAA9C+H,EAAMytB,SAASx1B,MAAMsS,wBAErFooB,IAAiBnC,EAAAA,EAAAA,KAAS,IACrBhB,EAAOnxB,MACV6E,EAAAA,EAAAA,IAAU7G,IAAK8D,EAAAA,EAAAA,GAAc9D,EAAGR,KAAIwO,GAAKA,EAAE+V,0BAC3CvkB,EAAAA,EAAAA,IAAIQ,GAAKA,EAAEoM,OAAM4B,GAAKA,SAGxBuoB,IAAYpC,EAAAA,EAAAA,KAAS,KACvB,GAA4B,MAAxBxwB,EAAMytB,SAASx1B,MAAe,CAC9B,GAAI+H,EAAMoE,aAAanM,OAAS+H,EAAMkE,YAAYjM,MAC9C,OAAO,EAEX,GAAIggB,GAAOhgB,OAAS46B,EAAAA,EAAmBC,SACnC,OAAO,EAEX,MAAMC,EAAc/yB,EAAMytB,SAASx1B,MAAMgG,WAAWC,SAC9C80B,EAAeD,EAAYC,aACjC,GAAIA,GAAgBC,EAAAA,EAAiBC,OACjC,OAAO,EACJ,GAAIF,GAAgBC,EAAAA,EAAiBE,QACxC,OAAO,EACJ,GAAIH,GAAgBC,EAAAA,EAAiBG,WAA6B,MAAhBJ,EAAsB,CAC3E,MAAMK,EAAM,IAAIC,KACVC,EAAiBC,GAAiB,IAAIF,KAAKE,EAAKp7B,QAAQ,QAAS,IAAIA,QAAQ,cAAe,UAC5Fq7B,EAAYV,EAAYW,mBACxBC,EAAUZ,EAAYa,kBAC5B,OAAqB,MAAbH,GAAqBJ,EAAME,EAAcE,IAA2B,MAAXE,GAAmBN,GAAOE,EAAcI,EAC7G,CAEI,OAAO,CAEf,CACI,OAAO,CACX,IAEEE,IAAkBrD,EAAAA,EAAAA,KAAS,IAxQrBxwB,EAAMytB,SAASx1B,MAAOgG,WAAmB6iB,kBAAkB1a,QAAQ/J,GAAqB,QAAVA,EAAEmkB,OAAgB3kB,KAAKQ,GAAWA,EAAEpE,UA2QxHwL,IAAS+sB,EAAAA,EAAAA,KAAS,IACbxwB,EAAMytB,SAASx1B,MAAQ+H,EAAMytB,SAASx1B,MAAMwL,OAAS,OAE1DqwB,IAAiBtD,EAAAA,EAAAA,KAAS,IACrBxwB,EAAMytB,SAASx1B,MAAQ+H,EAAMytB,SAASx1B,MAAMgG,WAAW81B,WAAa,OAEzE9b,IAASuY,EAAAA,EAAAA,KAAS,IA5NbxwB,EAAMytB,SAASx1B,MAAQ+H,EAAMytB,SAASx1B,MAAMggB,OAAS,OA+N1D+b,IAAQxD,EAAAA,EAAAA,KAAS,IACZxwB,EAAMytB,SAASx1B,MAAQ+H,EAAMytB,SAASx1B,MAAMgG,WAAWC,SAASK,MAAQ,OAE7E01B,IAAiBzD,EAAAA,EAAAA,KAAS,IACrBxwB,EAAMytB,SAASx1B,MAAQ+H,EAAMytB,SAASx1B,MAAMgG,WAAWC,SAAS+1B,eAAiB,OAEtFC,IAAY1D,EAAAA,EAAAA,KAAS,IAChBxwB,EAAMytB,SAASx1B,MAAQ+H,EAAMytB,SAASx1B,MAAMgG,WAAWC,SAASg2B,YAAchC,GAAej6B,OAAS,IAAIyO,MAAKrK,GAAKA,EAAE4B,WAAWC,SAASg2B,YAAa,OAE5JC,IAAe3D,EAAAA,EAAAA,KAAS,IACnBxwB,EAAMytB,SAASx1B,MAAQ+H,EAAMytB,SAASx1B,MAAMgG,WAAWC,SAAW,OAEvEyiB,IAAa6P,EAAAA,EAAAA,KAAS,IACjBxwB,EAAMytB,SAASx1B,QAAU+H,EAAMytB,SAASx1B,MAAMgG,WAAWC,SAASyiB,WAAa,OAEpFyT,GAAkBC,IACpB,MAAM7G,EAAOqC,GAAM53B,MAAMo8B,EAAa,GACtC,OAAOC,GAAkB9G,GAAM,EAAM,EAEnC+G,GAAkBF,IACpB,MAAM7G,EAAOqC,GAAM53B,MAAMo8B,EAAa,GACtC,OAAOG,GAAkBhH,EAAK,EAQ5BiH,GAA8BjH,GACpB,MAARA,GACO9uB,EAAAA,EAAAA,GAAK,CAAC,OAEbsB,EAAMoE,aAAanM,OACZyG,EAAAA,EAAAA,GAAK,EAAC,KAEVyB,EAAAA,EAAAA,GAAc,CAACuvB,EAASC,IAAWtxB,MACtCxC,EAAAA,EAAAA,IAAI,EAAEoc,EAAQnU,OACN0pB,EAAK7M,WAAW3gB,EAAMkE,YAAYjM,MAAQ,QAAU,SAAUggB,EAASnU,IAGpE,QAIbwwB,GAAoBA,CAAC9G,EAAekH,MAClC/T,GAAW1oB,QAGH,MAARu1B,EACO,MAEPxtB,EAAMoE,aAAanM,UAGnBu1B,EAAK7M,WAAW3gB,EAAMkE,YAAYjM,MAAQ,QAAU,SAAUggB,GAAOhgB,MAAQy8B,EAAgB,KAAO10B,EAAM8D,QAAQ7L,QAG/G,OAELu8B,GAAqBhH,IACnB7M,GAAW1oB,QAGH,MAARu1B,EACO,OAEPxtB,EAAMoE,aAAanM,SAGnBu1B,EAAK9M,WAAW1gB,EAAMkE,YAAYjM,MAAQ,QAAU,SAAUggB,GAAOhgB,MAAQ+H,EAAM8D,QAAQ7L,QAGxF,MAEL43B,IAAQW,EAAAA,EAAAA,KAAS,IACZf,MAELkF,IAAqBnE,EAAAA,EAAAA,KAAS,KAChC,GAAIxwB,EAAMytB,SAASx1B,MAAO,CACtB,MAAMggB,EAASjY,EAAMytB,SAASx1B,MAAOgG,WAAW6iB,kBAAmB3lB,MAAKkB,GAAKA,EAAEpE,OAAS+H,EAAMytB,SAASx1B,MAAOggB,SAC9G,OAAOA,EAAO2c,WAAa3c,EAAOhgB,KACtC,CACA,OAAO,IAAI,IAET48B,GAAe5c,IACjB,GAAIjY,EAAMytB,SAASx1B,MAAO,CACtB,MAAM68B,EAAU90B,EAAMytB,SAASx1B,MAAMgG,WAAW6iB,mBAAmB3lB,MAAKkB,GAAKA,EAAEpE,OAASggB,IACxF,OAAO6c,GAASF,WAAaE,GAAS78B,KAC1C,CACA,OAAO,IAAI,EAET88B,IAAyBvE,EAAAA,EAAAA,KAAS,KAC5B1B,EAAa9uB,EAAM0tB,aAAaz1B,MAAwC+H,EAAMytB,SAASx1B,QAA4C,IAAImO,QAAO/J,KAAMgzB,MAAqC,IAAbhzB,EAAE8F,SAAkBuE,MAAKrK,GAA0B,6BAArBA,EAAE4B,WAAWkF,SAE7N6xB,IAAmBxE,EAAAA,EAAAA,KAAS,IACvBxwB,EAAMytB,SAASx1B,MAAQ+H,EAAMytB,SAASx1B,MAAMgG,WAAW6iB,mBAAmB1a,QAAO/J,GAAKA,EAAEpE,OAAS46B,EAAAA,EAAmBoC,SAAW54B,EAAEpE,OAAS+H,EAAMytB,SAASx1B,MAAOggB,SAAW5b,EAAEpE,OAAO8d,SAAS,kBAAoB1Z,EAAEu4B,WAAW7e,SAAS,mBAAoB,GAAK,KAErQmf,IAAe1E,EAAAA,EAAAA,KAAS,IACnBP,MAELkF,IAAgB3E,EAAAA,EAAAA,KAAS,IACpBZ,MAELwF,IAAgB5E,EAAAA,EAAAA,KAAS,IA/ZpBjB,EAAgB,qBAAqB,IACxBK,IACDvxB,MACX6E,EAAAA,EAAAA,IAAUmH,IACNlK,EAAAA,EAAAA,IACKkK,GAAK,IAAIxO,KAAIQ,IAEV,MAAMg5B,EAAWh5B,EAAEikB,WAAajkB,EAAEikB,WAAW,SAAU5hB,EAAAA,EAAAA,GAAK,EAAErC,EAAEi5B,WAAaj5B,EAAEi5B,UAAU,UACnFlV,EAAoB/jB,EAAE+jB,kBAAoB/jB,EAAE+jB,qBAAsB1hB,EAAAA,EAAAA,GAAK,EAAC,IAC9E,OAAOyB,EAAAA,EAAAA,GAAc,CAACk1B,EAAUjV,IAAoB/hB,MAAKxC,EAAAA,EAAAA,IAAI,EAAEmB,EAAGqD,KAAO,CAAChE,EAAGW,EAAGqD,EAAGhE,EAAE4B,WAAWC,SAAS4F,SAAW,MAAc,QAI9IjI,EAAAA,EAAAA,IAAIQ,IACA,MAAMiZ,EAAIjZ,EAAE+J,QAAOiE,GAAKA,EAAE,KACpBkrB,EAAK,GACLC,EAAgC,CAAC,EACvC,IAAK,MAAMhI,KAAQlY,EACXkgB,EAAKhI,EAAK,MAGTA,EAAK,KACNgI,EAAKhI,EAAK,KAAM,GAEpB+H,EAAG1uB,KAAK2mB,EAAK,KAEjB,OAAO+H,CAAE,SAwYnBE,IAAsBjF,EAAAA,EAAAA,KAAS,IAC1B4E,GAAcn9B,MAAMoG,MAAK2G,EAAAA,EAAAA,MAASC,cAOvChE,IAAWuvB,EAAAA,EAAAA,KAAS,IACfxwB,EAAMytB,SAASx1B,MAAQ+H,EAAMytB,SAASx1B,MAAMgJ,SAAW,OAE5Dy0B,IAAuBlF,EAAAA,EAAAA,KAAS,IAC3BrnB,QAAQC,IAAI9M,MAAMoC,KAAKsB,EAAMuuB,eAAet2B,UAajD09B,GAAoBA,KACtB31B,EAAM4tB,oBAAoB31B,MAAQ,EAAE,EAElC29B,GAAcC,IAChB71B,EAAM8D,QAAQ7L,MAAQ49B,CAAQ,EAS5BC,GAAqBC,IACPlH,EAAkBkH,EAAO76B,IACjCqZ,YAAYwhB,EAA4B,EAoB9CC,GAAqBA,KACvBh2B,EAAM2tB,gBAAgB11B,OAAQ,EAC9B+H,EAAMytB,SAASx1B,MAAQ,IAAI,EAIzBg+B,GAAmBr3B,IACrBoB,EAAM2uB,WAAW12B,MAAQ,KACzB+H,EAAMsuB,cAAcr2B,MAAQ,KAC5B+H,EAAM8D,QAAQ7L,MAAQ2G,EAAKkF,QAC3B9D,EAAMytB,SAASx1B,MAAQ2G,EAAK6uB,SAC5BztB,EAAM0tB,aAAaz1B,MAAQ2G,EAAK8uB,aAChC1tB,EAAM2tB,gBAAgB11B,OAAQ,EAC9B+H,EAAMoE,aAAanM,MAAQ2G,EAAKwF,aAChCpE,EAAMkE,YAAYjM,MAAQ2G,EAAKsF,YAC/BlE,EAAMqE,SAASpM,MAAQ2G,EAAKyF,SAC5BrE,EAAM6tB,eAAe51B,MAAQ2G,EAAKivB,eAClC7tB,EAAM8tB,gBAAgB71B,MAAQ2G,EAAKkvB,gBACnC9tB,EAAM+tB,qBAAqB91B,MAAQ2G,EAAKmvB,qBACxC/tB,EAAMguB,mBAAmB/1B,MAAQ2G,EAAKovB,mBACtChuB,EAAMiuB,iBAAiBh2B,MAAQ2G,EAAKqvB,iBACpCjuB,EAAMkuB,cAAcj2B,MAAQ2G,EAAKsvB,cACjCluB,EAAMmuB,qBAAqBl2B,MAAQ2G,EAAKuvB,qBACxCnuB,EAAMouB,wBAAwBn2B,MAAQ2G,EAAKwvB,wBAC3CpuB,EAAM4tB,oBAAoB31B,MAAQ,EAAE,EAKlCi+B,GAAczyB,IAChBzD,EAAMytB,SAASx1B,MAAOwL,OAASA,EAC/BzD,EAAMsuB,cAAcr2B,MAAQ,IAAI,EAE9Bk+B,GAAsBle,IACxBgY,IAAmBj0B,SAAQo6B,IACnBA,EAAErc,WACFqc,EAAErc,UAAU9B,EAChB,GACF,EAEAoe,GAAwBC,IAC1Bt2B,EAAMuuB,eAAet2B,MAAMs+B,IAAID,EAAQ,EAErCE,GAA2BF,IAC7Bt2B,EAAMuuB,eAAet2B,MAAMw+B,OAAOH,EAAQ,EAExCI,GAAcA,EAAGn5B,cAAao5B,cAEhCp5B,EAAY0D,SAAU4F,KAAK8vB,EAAQ,EAEjCC,GAAwBA,EAAGr5B,cAAas5B,YAAWC,yBACrCv5B,EAAY0D,SAAS9F,MAAKkB,GAAKA,EAAEnB,IAAM27B,IAC9CC,mBAAqBA,CAAkB,EAE9CC,GAAkBA,KACpB/2B,EAAM6tB,eAAe51B,OAAQ,EAC7B+H,EAAM8tB,gBAAgB71B,OAAQ,EAC9B+H,EAAMguB,mBAAmB/1B,OAAQ,EACjC+H,EAAMiuB,iBAAiBh2B,OAAQ,EAC/B+H,EAAMkuB,cAAcj2B,OAAQ,CAAK,EAE/B++B,GAA0B/+B,IAC5B+H,EAAM0uB,0BAA0Bz2B,MAAQA,CAAK,EAE3Cg/B,GAAmBX,IACrBD,GAAkBC,GAGlB,MAAMY,EAAU5hB,IACZkhB,GAAqBF,GACdhhB,GAGX,OADAghB,EAAQtzB,KAAKk0B,EAAQA,GACdZ,CAAO,EAIZa,GAAuB5S,UAOzB,GANmB,MAAfwR,EAAOvI,KACPxtB,EAAMytB,SAASx1B,MAAO0G,QAAQo3B,EAAOn3B,MAAM,GACpCm3B,EAAOvI,MAAQ,IACtBxtB,EAAMytB,SAASx1B,MAAO0G,QAAQo3B,EAAOn3B,MAAM,GAC3CixB,GAAM53B,MAAM89B,EAAOvI,KAAO,GAAG7uB,QAAQo3B,EAAOn3B,KAAK7E,SAASg8B,EAAO3f,cAEjEga,EAASn4B,OAAOyB,OAAiB,CACjC,MAAM09B,EAAqBtF,GAAkB75B,MAC7C,IAAKm/B,EAAmB1wB,MAAKrK,GAAKA,EAAEnB,IAAM8E,EAAM8D,QAAQ7L,QAAQ,CAC5D,MAAMo/B,EAA+C,GAA7BD,EAAmB19B,QAA0CsG,EAAMoE,aAAanM,OAASm/B,EAAmB19B,OAAS,EAApF09B,EAAmB,GAAGl8B,GAA8F,UAC7K06B,GAAWyB,EACf,CACJ,GAIEC,GAAiB/S,UACnBsL,GAAM53B,MAAM89B,EAAOvI,KAAO,GAAGzT,UAAUgc,EAAO9d,OAAO,EAEzD,IAAIsf,GAAyC,KAC7C,MAAMC,GAAoBjT,UACtB,GAAI5D,GAAW1oB,OAAS+H,EAAMoE,aAAanM,MAIvC,OAH8B,MAA1B+H,EAAM2uB,WAAW12B,QACjB+H,EAAM2uB,WAAW12B,OAAQ8N,EAAAA,EAAAA,MAEtB/F,EAAM2uB,WAAW12B,MAExB,KAAuB,MAAhBwL,GAAOxL,OACLs/B,KACDA,GAAgBE,GAAa,CAAEjK,MAAO,WAEpC+J,GACNA,GAAgB,WAEV,IAAIpuB,SAAQ4d,GAAYlB,WAAWkB,EAAU,KAEvD,OAAOtjB,GAAOxL,KAClB,EAyLEy/B,GAAaA,EAAG5zB,UAASX,OAAMmB,SAAQqzB,aAAYpzB,kBAAiB3F,OAAM2Q,SAAQvL,UAASwgB,YACtFyS,GACH,WACI,GAAIj3B,EAAMoE,aAAanM,MACnB,MAAM,IAAIyJ,MAAM,iBAEpB,GAAIif,GAAW1oB,MACX,MAAM,IAAIyJ,MAAM,YAEpB,MAAMgC,EAAW,CACbk0B,OAAQn0B,GAAOxL,MACf0L,SAAU3D,EAAMytB,SAASx1B,MAAO0L,SAChCC,YAAa5D,EAAMytB,SAASx1B,MAAO2L,YACnCS,SAAUrE,EAAMqE,SAASpM,MACzBgM,QAASjE,EAAMkE,YAAYjM,MAC3B6L,QAASA,EACTyL,OAAQA,EACRiV,OAAQA,EACRxgB,QAASA,EACTb,KAAMA,EACNmB,OAAQA,EACRqzB,WAAYA,EACZpzB,gBAAiBA,EACjB3F,KAAMvE,KAAKG,UAAUoE,IAEnBi5B,GAAYC,EAAAA,EAAAA,KACZv0B,QAAYs0B,EAAUE,OAAO,cAAe,CAC9CC,SAAUlE,GAAe77B,MACzBwL,OAAQC,EAASk0B,SAEfv4B,QAAiBqF,EAAAA,EAAAA,IAAUmzB,EAAWt0B,EAAK,CAC7CoB,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpBqzB,YAAa,cACbh/B,KAAMoB,KAAKG,UAAUkJ,KAEzB,GAAuB,KAAnBrE,EAAS4Y,OAAe,CACxB,MAAMigB,QAAqB74B,EAASyF,OAC9B2oB,EAAWyK,EAAaC,KAE9B,aADMhB,GAAqB,CAAEv4B,KAAM6uB,EAAUD,KAAM,KAAMpX,WAAY,OAC9D8hB,EAAax4B,MACxB,CAAO,IAAI4sB,EAA+BjtB,GAGtC,MAAM,IAAIqC,MAAM,eAAiBrC,EAAS4Y,OAAS,IAAM5Y,EAASotB,WAEzE,EA9CD,IAiDFgL,GAAeA,EAAGjK,OAAM4K,gBAAeC,WAAU1wB,iBACnD,MAAMkwB,GAAYC,EAAAA,EAAAA,KAGlB,OAFAD,EAAUS,YAAa,EAEhBrB,GACH,WACI,GAAIj3B,EAAMoE,aAAanM,MACnB,MAAM,IAAIyJ,MAAM,iBAEpB,GAAIif,GAAW1oB,OAAkB,MAARu1B,GAAgBA,GAAQ,GAAK4G,GAAe5G,GACjE,MAAM,IAAI9rB,MAAM,YAEpB,GAAY,MAAR8rB,GAAgBA,GAAQ,IAAM+G,GAAe/G,UAAgBqK,EAAUU,yBAAyBC,EAAAA,EAAkBC,iBAAiBC,IACnI,MAAM,IAAIh3B,MAAM,eAEpB,MAAMi3B,EAAO34B,EAAMytB,SAASx1B,MAC5B,IAAI2gC,EACJ,MAAMC,EAAShJ,GAAM53B,MACrB,IAAIme,EAAa,KACjB,GAAY,MAARoX,GAAiB4K,EAwBd,CACH,GAAIO,EAAK5+B,SAAS2M,MAAK0vB,GAA8B,UAAxBA,EAAcne,SACvC,OAEJ,MAAM6gB,EAAgB5D,GAAaj9B,MACnC2gC,EAAYD,EAAK55B,SAAQ,GACzB65B,EAAU7+B,SAAW,GACrB,IAAK,IAAI4I,EAAQ,EAAGA,EAAQk2B,EAAOn/B,OAAQiJ,IAAS,CAChD,MAAMo2B,EAAUF,EAAOl2B,GACvB,GAAIm2B,EAAc/iB,SAASgjB,KAAazE,GAAkByE,GAAS,KAAWvE,GAAkBuE,WAAoBlB,EAAUU,yBAAyBC,EAAAA,EAAkBC,iBAAiBC,QAAWN,GAAmC,cAAlBW,EAAQ9gB,QAA0BtV,EAAQ,GAAK6qB,GAAO,OAClQ8J,GAAe,CAAE9J,KAAM7qB,EAAQ,EAAGsV,OAAQ,WAChD,MAAM+gB,EAAiBL,EAAK5+B,SAAS+M,QAAQiyB,GAC7CH,EAAU7+B,SAASi/B,GAAkBD,EAAQh6B,SAGjD,CACJ,CACA,IAAK,IAAI4D,EAAQ,EAAGA,EAAQg2B,EAAK5+B,SAASL,OAAQiJ,IAAS,CACvD,MAAMqD,EAAQ2yB,EAAK5+B,SAAS4I,GACxBqD,EAAMugB,WAAavgB,EAAMugB,UAAUvmB,EAAM8D,QAAQ7L,SACjD2gC,EAAU7+B,SAAS4I,GAASqD,EAAMjH,UAE1C,CACIq5B,IACA5K,EAAO,KAEf,MA/CI,GAFApX,EAAauiB,EAAK5+B,SAAS+M,QAAQ+xB,EAAOrL,EAAO,IACjDoL,EAAYD,EAAK55B,SAAQ,GACrByuB,GAAQ,EAAG,CACX,MAAMuL,EAAUF,EAAOrL,EAAO,GAC9B,GAAsB,UAAlBuL,EAAQ9gB,OACR,OAEJ,GAAIqc,GAAkByE,GAAS,GAC3B,OAEJ,IAAK7D,GAAaj9B,MAAM8d,SAASgjB,GAC7B,aAEEzB,GAAe,CAAE9J,OAAMvV,OAAQ,WACrC2gB,EAAU7+B,SAAW,GACrB6+B,EAAU7+B,SAASqc,GAAcuiB,EAAK5+B,SAASqc,GAAYrX,SAC/D,KAAO,CACH,GAAI45B,EAAK5+B,SAAS2M,MAAK0vB,GAA8B,UAAxBA,EAAcne,SACvC,OAEJ7B,GAAc,EACdwiB,EAAU7+B,SAAW,EACzB,CA4BJ,IAAI0J,EAASk1B,EAAKl1B,OACJ,MAAVA,IACiC,MAA7BzD,EAAMsuB,cAAcr2B,QACpB+H,EAAMsuB,cAAcr2B,OAAQ8N,EAAAA,EAAAA,MAEhCtC,EAASzD,EAAMsuB,cAAcr2B,OAEjC,MAAMyL,EAAW,CACbu1B,UAAWL,EACX/0B,SAAU+0B,EAAW/0B,SACrB+zB,OAAQn0B,EACRE,SAAUi1B,EAAWj1B,SACrBC,YAAag1B,EAAWh1B,YACxBS,SAAUrE,EAAMqE,SAASpM,MACzB0K,MAAOyT,EACPnS,QAASjE,EAAMkE,YAAYjM,MAC3BihC,aAAcP,EAAK1gB,OACnBnU,QAAS9D,EAAM8D,QAAQ7L,MACvBkhC,WAAYxxB,GAEVpE,QAAYs0B,EAAUE,OAAOM,EAAW,yBAA2B,aAAuB,MAAR7K,EAAe,OAAS,QAAS,CACrH/pB,OAAQA,EACRE,SAAUg1B,EAAKh1B,SACfC,YAAa+0B,EAAK/0B,YAClBC,SAAU80B,EAAK90B,SACfQ,SAAUrE,EAAMqE,SAASpM,MACzBu1B,KAAMpX,EACN4hB,SAAUlE,GAAe77B,MACzBgM,QAASP,EAASO,QAClBi1B,aAAcx1B,EAASw1B,aACvBp1B,QAASJ,EAASI,QAClBq1B,WAAYz1B,EAASy1B,aAEzB,IAAIjB,EACJ,IACI,MAAM74B,QAAiBqF,EAAAA,EAAAA,IAAUmzB,EAAWt0B,EAAK,CAC7CoB,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpBqzB,YAAa,cACbh/B,KAAMoB,KAAKG,UAAUkJ,MAEzBua,EAAAA,EAAAA,IAAwB5e,GACxB64B,QAAqB74B,EAASyF,MAClC,CAAE,MAAOhJ,GAML,OALY,MAAR0xB,GAAgBA,EAAO,QACjB8J,GAAe,CAAE9J,OAAMvV,OAAQ,YAErCke,GAAmB,WAEhB,IACX,CACA,MAAMiD,EAAYf,EAAWH,EAAaC,KAAOD,EAKjD,aAJMf,GAAqB,CAAEv4B,KAAMw6B,EAAW5L,OAAMpX,eACjC,MAAfuiB,EAAKl1B,QACLyyB,GAAWzyB,GAERy0B,CACV,EA5HD,GA6HH,EAwKCmB,GAAgB9U,OAAStmB,aAAYuvB,OAAM8L,iBAAgBC,WAAU1L,iBAAgBC,kBAAiBE,qBAAoBC,mBAAkBC,gBAAeC,uBAAsBC,0BAAyBL,uBAAsB3pB,eAAcF,cAAaG,WAAUyT,mBACvQ,MAAM+f,GAAYC,EAAAA,EAAAA,KACZ0B,QAAmB3B,EAAUU,yBAAyBC,EAAAA,EAAkBiB,WAAWf,IACnFve,QAAyB0d,EAAUU,yBAAyBC,EAAAA,EAAkBkB,iBAAiBhB,IAC/FiB,EAAYA,CAAC17B,EAAoCuvB,KACnD,MAAM/vB,EAAyC,CAC3CiH,UAAWA,EAAAA,GAAUk1B,KAAK,KAAM/B,GAChCr0B,WAAYA,CAAC2H,EAAavM,IAAiCi5B,EAAUE,OAAO5sB,EAAK,CAAE0uB,WAAY/F,GAAe77B,SAAU2G,IACxH44B,kBAAmBA,IAAMA,KACzBp2B,YAAa,KACbiyB,IAAKwE,EAAUxE,IACfyG,SAAUjC,EAAUkC,YAAYjG,GAAe77B,OAC/CmM,aAAcA,EACdF,YAAaA,EACb81B,cAAe/7B,EAAWg8B,kBAC1B51B,SAAUA,EACVm1B,aACArf,oBAEE/Y,GAAcyB,EAAAA,EAAAA,GAAa,KAAM2qB,EAAMvvB,EAAYR,GAKzD,OAJA2D,EAAY8W,mBAAmBJ,GAIxB1W,CAAW,EAEhBA,EAAcu4B,EAAU17B,EAAYuvB,GAC1C,IAAI0M,EAAkB,KAoBtB,GAnBI91B,GAAkC,MAAlBk1B,IAChBY,EAAkBP,EAAUL,EAAgBC,GAC5Cn4B,EAAY4I,gBAAgBkwB,IAEhCjE,GAAgB,CACZxI,SAAUrsB,EACVssB,aAAcwM,EACd91B,aAAcA,EACdF,YAAaA,EACb2pB,eAAgBA,EAChBC,gBAAiBA,EACjBE,mBAAoBA,EACpBC,iBAAkBA,EAClBF,qBAAsBA,EACtBG,cAAeA,EACfC,qBAAsBA,EACtBC,wBAAyBA,EACzB/pB,SAAUA,IAEV+rB,EAASn4B,OAAOyB,OAAiB,CACjC,MAAM09B,EAAqBtF,GAAkB75B,MAEvCo/B,EAA+C,GAA7BD,EAAmB19B,QAA0CsG,EAAMoE,aAAanM,OAASm/B,EAAmB19B,OAAS,EAApF09B,EAAmB,GAAGl8B,GAA8F,UAC7K06B,GAAWyB,EACf,GAuGJ,MAAO,CACHvzB,QAAS9D,EAAM8D,QACf0pB,KAAMxtB,EAAMwtB,KACZC,SAAUztB,EAAMytB,SAChBC,aAAc1tB,EAAM0tB,aACpBC,gBAAiB3tB,EAAM2tB,gBACvBvpB,aAAcpE,EAAMoE,aACpBF,YAAalE,EAAMkE,YACnBG,SAAUrE,EAAMqE,SAChBiqB,cAAetuB,EAAMsuB,cACrBV,oBAAqB5tB,EAAM4tB,oBAC3BC,eAAgB7tB,EAAM6tB,eACtBC,gBAAiB9tB,EAAM8tB,gBACvBC,qBAAsB/tB,EAAM+tB,qBAC5BC,mBAAoBhuB,EAAMguB,mBAC1BC,iBAAkBjuB,EAAMiuB,iBACxBC,cAAeluB,EAAMkuB,cACrBC,qBAAsBnuB,EAAMmuB,qBAC5BC,wBAAyBpuB,EAAMouB,wBAC/BC,cAAeruB,EAAMquB,cAErBE,eAAgBvuB,EAAMuuB,eACtBE,8BAA+BzuB,EAAMyuB,8BACrCC,0BAA2B1uB,EAAM0uB,0BACjCC,WAAY3uB,EAAM2uB,WAClBC,4BAA6B5uB,EAAM4uB,4BAEnCnoB,mBACAW,mBACAmpB,gBACAE,oBACA0J,eA3oCoBr0B,IACpB,MAAM5M,EAAUuN,EAAiBX,GACjC,OAAe,MAAX5M,EACO,KAEJA,EAAQjB,OAAO,EAuoCtBmiC,kBAroCuBt0B,IACvB,MAAM5M,EAAUuN,EAAiBX,GAC3BipB,EAAiB71B,EAAQiJ,OAASjJ,EAAQ+I,SAAY/I,EAE5D,OAAO41B,EADa51B,EAAQiJ,OAASjJ,EAAUA,EAAQ+I,SACtB8sB,EAAe,EAkoChDsL,mBAhoCwBv0B,GACjB9F,EAAM4tB,oBAAoB31B,MAAM8d,SAASjQ,GAgoChD+B,eA9nCmBA,CAAC3M,EAAYmM,IACfD,EAAiBlM,EAAImM,GACtBhJ,MAAK6E,EAAAA,EAAAA,IAAW7G,GAAyC,MAALA,GAAYqC,EAAAA,EAAAA,GAAK,CAAC,QAASyB,EAAAA,EAAAA,GAAc9D,EAAER,KAAIwO,GAAMA,EAAyBtC,yBAAwB1J,MAAKxC,EAAAA,EAAAA,IAAI+X,GAActX,MAAM8Q,UAAUrV,OAAOoP,MAAM,GAAIyM,SA6nClO8c,uBACA1Y,YACA8Y,sBACAE,kBACAC,8BACAE,yBACAC,oBACAE,wBACAC,mBACAnB,WACAqB,sBACAE,yBACAE,mBACAC,qBACAC,sBACAE,qBACAC,kBACAE,kCACAG,0BACAE,eACAC,cACAC,kBACAC,aACAiB,mBACApwB,UACAqwB,kBACA7b,UACA+b,SACAC,kBACAC,aACAC,gBACAxT,cACAoQ,aACAqD,kBACAG,kBACA+F,mBA1/BwB9M,GACpB7M,GAAW1oB,OACJyG,EAAAA,EAAAA,GAAK,EAAC,IAEV+1B,GAA2BjH,GAu/BlCiH,8BACAH,qBACAE,qBACAhD,YACA3B,SACA8E,sBACAE,eACAE,0BACAC,oBACAE,gBACAC,iBACAC,iBACAK,uBACA/F,UACAC,WACA1uB,YACAy0B,wBACA6E,gBA16BoBA,EAAGz0B,OAAM00B,cACzBA,EACKx6B,EAAM4tB,oBAAoB31B,MAAM8d,SAASjQ,IAC1C9F,EAAM4tB,oBAAoB31B,MAAM4O,KAAKf,GAGrC9F,EAAM4tB,oBAAoB31B,MAAM8d,SAASjQ,KACzC9F,EAAM4tB,oBAAoB31B,MAAQ+H,EAAM4tB,oBAAoB31B,MAAMmO,QAAO/J,GAAKA,GAAKyJ,IAE3F,EAk6BA6vB,qBACAC,cACA6E,eA55BoB1E,IACnBlH,EAAkBkH,EAAO76B,IAA2BoT,SAASynB,EAAO99B,MAAM,EA45B3EyiC,oBA15ByB3E,IACTlH,EAAkBkH,EAAO76B,IACjCmZ,aAAe0hB,EAAO9d,MAAM,EAy5BpC6d,qBACA6E,eAp5BoB70B,IACnB+oB,EAAkB/oB,IAAsB0P,QAAQ,KAAK,EAo5BtDolB,kBAl5BuB7E,IACtBlH,EAAkBkH,EAAO8E,cAA6BhkB,WAAWkf,EAAO9vB,KAAM8vB,EAAOjf,gBAAgB,EAk5BtGgkB,mBAh5BwB/E,IACxB,MAAMgF,EAAUlM,EAAkBkH,EAAO8E,aAC1B,MAAXE,GACAA,EAAQplB,oBAAoBogB,EAAOngB,IACvC,EA64BAolB,gBA34BoBA,KACpBh7B,EAAMquB,cAAcp2B,OAAS+H,EAAMquB,cAAcp2B,KAAK,EA24BtD+9B,sBACAC,mBACAgF,iBA92BsBrC,IACtB54B,EAAMytB,SAASx1B,MAAO0G,QAAQi6B,EAAU,EA82BxC1C,cACAC,sBACAE,qBACAG,wBACAE,eACAE,yBACAG,mBACAC,0BACAC,gBACAE,wBACAG,kBACAE,qBACA0D,mBAhyBuB3W,SAChB0S,GACH,WACI,MAAM,QAAEkE,EAAO,KAAEr1B,EAAI,UAAEs1B,GAAcrF,EACrC,IAAIsF,EAAU53B,GAAOxL,MACN,MAAXojC,UACM5D,GAAa,CAAEjK,MAAO,IAC5B6N,EAAU53B,GAAOxL,OAErB,MAAMwc,GAAU1O,EAAAA,EAAAA,KACVu1B,EAAa,IAAIC,SACvB,IAAItjB,EAAS,GACTujB,GAAW,EACfF,EAAWxhC,OAAO,SAAUuhC,GAAW,IACvCC,EAAWxhC,OAAO,WAAYkG,EAAMkE,YAAYjM,QAAS,GAAOE,YAChEmjC,EAAWxhC,OAAO,YAAakG,EAAMqE,SAASpM,QAAS,GAAOE,YAC9DmjC,EAAWxhC,OAAO,UAAW2a,GAC7B6mB,EAAWxhC,OAAO,WAAYqhC,EAASA,EAAQ54B,MAC3C64B,IAGAnjB,EAAS,eAGb,MAAM4f,GAAYC,EAAAA,EAAAA,KACZ2D,QAAkB5D,EAAUE,OAAO,0BAA2B,CAAEC,SAAUlE,GAAe77B,QACzFyjC,EAAkBA,KAChBN,IAGAnjB,EAAS,KACT6d,GAAkB,CACd56B,GAAI4K,EACJ2O,QAASA,EACTC,YAAaymB,EAAQh4B,KACrB+N,SAAUiqB,EAAQ54B,KAClBwO,SAAUoqB,EAAQQ,KAClBhuB,UAAU,IAElB,EAEEiuB,EAAgBC,IACdT,IAGAnjB,EAAS4jB,EAAW,YAAc,OACtC,EASEC,EAAgBA,KAElB,MAAMC,EAAa,IAAIC,WACvBD,EAAWE,WAAWd,GACtBY,EAAWG,iBAAiB,QAAQ3X,UAChC,IACI,MAAM4X,EAAmBV,EAAUrjC,QAAQ,0BAA2B,uCAChEkjC,EAAa,CACf73B,OAAQA,GACRgR,QAASA,EACTvD,SAAUiqB,EAAQ54B,KAClB65B,SAAUjB,EAAQh4B,KAClBvE,KAAMm9B,EAAW7jC,QAUe,YARAwM,EAAAA,EAAAA,IAAUmzB,EAAWsE,EAAkB,CACvEx3B,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpBqzB,YAAa,cACbh/B,KAAMoB,KAAKG,UAAU8gC,MAECrjB,OACtByjB,IAEAE,GAER,CAAE,MAAOS,GAEL,MADAT,IACMS,CACV,KAIJN,EAAWG,iBAAiB,QAASN,GAErCG,EAAWG,iBAAiB,QAASN,EAAa,EAEtD,IAAIU,EACJ,IACIA,QAAuB53B,EAAAA,EAAAA,IAAUmzB,EAAW4D,EAAW,CACnD92B,OAAQ,OACRszB,YAAa,cACbh/B,KAAMqiC,GAEd,CAAE,MAAOe,GACL,IAAI3P,IAIA,MADAkP,IACMS,EAEV,kBALUP,GAMd,CACA,GAA6B,KAAzBQ,EAAerkB,OAAe,CAC9B,MAAMxT,QAAa63B,EAAex3B,OACN,GAAxBL,GAAM83B,eA9DNnB,EACAI,GAAW,EAEXvjB,EAAS,aA8DTyjB,GAER,MAAWpP,EAA+BgQ,SAChCR,IAENF,EAAsC,KAAzBU,EAAerkB,QAEhC,MAAO,CAAExD,UAAS+mB,WAAUvjB,SAC/B,EAxHD,IA+xBJukB,WApqBejY,UAEf,MAAMkY,EAAuBlY,UAEzB,MAAMmY,SAAsBvzB,QAAQC,IAAIuvB,EAAK1xB,qBAAoB5K,IAAK+V,EAAAA,EAAAA,IAA6B/V,KAAIR,KAAIoK,GAASA,EAA+CoM,4BAA2BjM,QAAO/J,GAAU,MAALA,IACpMsgC,QAAkBhE,EAAKp4B,QAAO,GAEpC,aADM,IAAI4I,SAAQmM,GAAKuQ,WAAWvQ,EAAG,KAC9B,CACH5V,OAAQi9B,EAAUt+B,MAAK2G,EAAAA,EAAAA,MAAY03B,EAAahjC,OAAS,EAAImzB,EAAqB+P,sBAAwB/P,EAAqBgQ,UAAahQ,EAAqBiQ,iBACjKC,YAAaL,EAAahjC,OAAS,EAAIgjC,EAAa,QAAKx6B,EAC5D,EAEL,GAAIye,GAAW1oB,MACX,MAAM,IAAIyJ,MAAM,YAEpB,GAAI1B,EAAMoE,aAAanM,MAEnB,OADC+H,EAAMytB,SAASx1B,MAAkB8H,mBACrB08B,EAAqBz8B,EAAMytB,SAASx1B,OAErD,MAAMC,QAAgBu/B,GAAa,CAAEjK,KAAM,KAAM6K,UAAU,EAAM1wB,eACjE,OAAc,MAAVzP,EACOA,EACAw0B,UACM+P,EAAqBz8B,EAAMytB,SAASx1B,OAE1C,IACX,EA2oBA+kC,kBAjoBsBzY,OAASzgB,UAASm5B,iBACxC,MAAM/kC,QAAew/B,GAAW,CAAEv0B,KAAM,aAAcmB,OAAQR,EAASA,UAASlF,KAAMq+B,EAAY1tB,QAAQ,IAI1G,OAHIrX,EAAO0H,SACPg2B,GAAW9xB,GAER5L,EAAOglC,eAAe,EA6nB7BC,kBA3nBsB5Y,UACtB,MAAM6Y,EAAU,GAChB,IAAK,MAAMt3B,KAAQ9F,EAAM4tB,oBAAoB31B,MAAO,CAChD,MAAMiB,EAAU21B,EAAkB/oB,GAC5Bu3B,EAAO3M,EAAqBx3B,GAC5B0F,EAAO1F,EAAQ6F,UACrBq+B,EAAQv2B,KAAK,CAAE1D,KAAM,YAAamB,OAAwCpL,EAAQgC,GAAKy8B,WAAY0F,EAAMz+B,KAAMA,GACnH,CAEA,IAAK,MAAM0+B,KAAUF,QACX1F,GAAW4F,GAErB3H,IAAmB,EAgnBnB+B,cACAD,gBACA8F,YAvbgBhZ,OAAStgB,aAClBgzB,GACH,WACI,GAAIj3B,EAAMoE,aAAanM,MACnB,MAAM,IAAIyJ,MAAM,iBAEpB,IAAKuC,GACGjE,EAAMkE,YAAYjM,MAClB,MAAM,IAAIyJ,MAAM,gBAGxB,GAAIif,GAAW1oB,MACX,MAAM,IAAIyJ,MAAM,YAEpB,MAAMxG,EAAK8E,EAAMytB,SAASx1B,MAAOwL,OACjC,GAAU,MAANvI,EACA,OAEJ,MAAM28B,GAAYC,EAAAA,EAAAA,WFprC3BvT,eAA2BnN,EAAoBlc,EAAY+I,EAAkB+zB,GAChF,MAAMz0B,QAAY6T,EAAQ2gB,OAAO,cAAe,CAAE8B,WAAY7B,EAAUv0B,OAAQvI,EAAI+I,QAASA,IACvF5E,QAAiBqF,EAAAA,EAAAA,IAAU0S,EAAS7T,EAAK,CAC3CoB,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpBqzB,YAAa,gBAEjB,GAAuB,KAAnB54B,EAAS4Y,SAAiBqU,EAA+BjtB,GAGzD,MAAM,IAAIqC,MAAM,eAAiBrC,EAAS4Y,OAAS,IAAM5Y,EAASotB,WAE1E,CEuqCsB+Q,CAAgB3F,EAAW38B,EAAI+I,EAAS6vB,GAAe77B,MAChE,EAlBD,IAsbJwlC,YAjagBlZ,OAASzgB,UAAS6yB,cAClC,MAAMz+B,QAAew/B,GAAW,CAAEv0B,KAAM,WAAYmB,OAAQR,EAASA,UAASlF,KAAM,CAAE8+B,QAAS/G,KAC/F,MAAO,CAAEgH,QAASzlC,EAAO0H,QAASg+B,SAAU1lC,EAAOglC,gBAAiB,EAgapEW,YA9ZgBtZ,OAASzgB,UAAS6yB,UAASmH,gBAC3C,MAAM5lC,QAAew/B,GAAW,CAAEv0B,KAAM,SAAW26B,EAAWx5B,OAAQR,EAASA,QAAsB,gBAAbg6B,EAA8B,KAAOh6B,EAASlF,KAAM,CAAE8+B,QAAS/G,KACvJ,MAAO,CAAEgH,QAASzlC,EAAO0H,QAASg+B,SAAU1lC,EAAOglC,gBAAiB,EA6ZpEa,uBA1Z2BxZ,OAASphB,OAAMvE,WAC1C,MAAMo/B,EAAah+B,EAAMytB,SAASx1B,MAAOgP,qBAAoB5K,GAA0B,eAArBA,EAAE4B,WAAWkF,OACzEjL,QAAew/B,GAAW,CAAEv0B,OAAMmB,OAAQ05B,EAAW,GAAG9iC,GAAK4I,QAAS,KAAMlF,SAClF,MAAO,CAAE++B,QAASzlC,EAAO0H,QAASg+B,SAAU1lC,EAAOglC,gBAAiB,EAwZpEe,aAtZiB1Z,OAAS9gB,SAAQy6B,cAAalG,WAAUn0B,WAAUF,WAAUC,cAAaS,WAAU85B,UAASrmB,mBAC7Gke,KACA,MAAM6B,GAAYC,EAAAA,EAAAA,KACZsG,EAAeA,CAACpG,EAAqCkG,EAAwCv6B,EAAkBC,EAAqBC,IACtIg0B,EACKE,OAAO,wBAAyB,CAAEC,SAAUA,EAAUkG,YAAaA,EAAav6B,WAAUC,cAAaC,WAAUQ,aACjHrB,MAAKO,GAAOya,MAAMza,EAAK,CAAE00B,YAAa,kBACtCj1B,MAAKsS,GAAKA,EAAExQ,SACfu5B,EAAyB,MAAV56B,QAAuBo0B,EAAUE,OAAO,uBAAwB,CAAEC,SAAUA,EAAUkG,YAAaA,EAAav6B,WAAUC,cAAaC,WAAUs6B,UAAS95B,WAAUJ,SAAS,UAAiB4zB,EAAUE,OAAO,eAAgB,CAAEC,SAAUA,EAAUkG,YAAaA,EAAaz6B,WAC9R66B,EAActgB,MAAMqgB,EAAc,CAAEpG,YAAa,gBACjDsG,EAA6B,MAAZ56B,GAAmC,MAAfC,GAAmC,MAAZC,EAAmBu6B,EAAapG,EAAUkG,EAAav6B,EAAUC,EAAaC,GAAYsF,QAAQyY,QAAQ,MACtK4c,QAAqBF,EAC3B,GAA2B,KAAvBE,EAAavmB,OACb,MAAM,IAAIvW,MAAM,YAEpB,MAAM+8B,QAAkBD,EAAa15B,OACrC,IAAI45B,EAAc,KAClB,IACIA,QAAoBH,CACxB,CAAE,MACE,CAEe,MAAfG,GAAuBD,EAAS56B,UAAY66B,EAAY76B,WACxD66B,QAAoBN,EAAaK,EAAS3K,eAAgB,KAAM2K,EAAS96B,SAAU86B,EAAS76B,YAAa66B,EAAS56B,iBAGhHw1B,GAAc,CAChBp7B,WAAYygC,EACZlR,KAAMiR,EACN5Q,gBAAgB,EAChBC,iBAAiB,EACjBI,eAAe,EACfC,sBAAsB,EACtBC,yBAAyB,EACzBJ,oBAAoB,EACpBC,kBAAkB,EAClBF,sBAAsB,EACtB3pB,cAAc,EACdF,aAAa,EACb4T,eACAzT,SAA+B,MAArBo6B,EAASp6B,SAAmBo6B,EAASp6B,SAA8C,QAAlCA,IAEjD,MAAVZ,IACAo0B,EAAUS,YAAa,EAC3B,EA2WAqG,yBAzW6Bpa,OAAStmB,aAAY06B,OAAMW,iBAAgBsF,qBAClEvF,GAAc,CAChBp7B,aACAuvB,KAAMmL,EACNW,iBACAzL,gBAAgB,EAChBC,iBAAiB,EACjBE,oBAAoB,EACpBC,kBAAkB,EAClBF,sBAAsB,EACtBG,eAAe,EACfC,sBAAsB,EACtBC,yBAAyB,EACzBmL,SAAUqF,EACVx6B,cAAc,EACdF,aAAa,EACbG,UAAU,GACZ,EAyVFw6B,wBAvV4Bta,UAC5B,MAAM,SAAEyT,EAAQ,YAAEkG,EAAW,OAAEz6B,EAAM,SAAEI,EAAQ,SAAEF,EAAQ,YAAEC,EAAW,SAAES,EAAQ,QAAE85B,EAAO,cAAEW,GAAkBlgC,EAC7Go3B,KACA,MAAM6B,GAAYC,EAAAA,EAAAA,KACZsG,EAAeA,CAACz6B,EAAkBC,EAAqBC,IACzDg0B,EACKE,OAAO,wBAAyB,CAAEC,SAAUA,EAAUkG,YAAaA,EAAav6B,WAAUC,cAAaC,WAAUQ,aACjHrB,MAAKO,GAAOya,MAAMza,EAAK,CAAE00B,YAAa,kBACtCj1B,MAAKsS,GAAKA,EAAExQ,SAEfu5B,EAAyB,MAAV56B,QAAuBo0B,EAAUE,OAAO,uBAAwB,CAAEC,SAAUA,EAAUkG,YAAaA,EAAav6B,WAAUC,cAAaC,WAAUs6B,UAASY,YAAY,EAAM96B,SAAS,EAAMI,SAAUA,UAAoBwzB,EAAUE,OAAO,wBAAyB,CAAE8B,WAAY7B,EAAUgH,cAAed,EAAaz6B,WACtU66B,EAA+B,MAAjBQ,GAAuD,MAA9BA,EAAcnG,MAAMl1B,QAAkBq7B,EAAcnG,MAAMl1B,QAAUA,EAAS0F,QAAQyY,QAAQkd,GAAiB9gB,MAAMqgB,EAAc,CAAEpG,YAAa,gBAAiBj1B,MAAKsS,GAAKA,EAAExQ,SACrNy5B,EAA6B,MAAZ56B,GAAmC,MAAfC,GAAmC,MAAZC,EAAmBu6B,EAAaz6B,EAAUC,EAAaC,GAAYsF,QAAQyY,QAAQ,MAC/Iqd,EAAuB,MAAVx7B,EAAkB,CAAEk1B,WAAY2F,SAA2CA,EACxFG,EAAWQ,EAAWtG,KAC5B,IAAI+F,QAAoBH,EACL,MAAfG,GAAuBD,EAAS56B,UAAY66B,EAAY76B,WACxD66B,QAAoBN,EAAaK,EAAS96B,SAAU86B,EAAS76B,YAAa66B,EAAS56B,iBAEjFw1B,GAAc,CAChBp7B,WAAYygC,EACZ7Q,eAAgBoR,EAAWpR,eAC3BC,gBAAiBmR,EAAWnR,gBAC5BE,mBAAoBiR,EAAWjR,mBAC/BC,iBAAkBgR,EAAWhR,iBAC7BC,cAAe+Q,EAAW/Q,cAC1BC,qBAAsB8Q,EAAW9Q,qBACjCC,wBAAyB6Q,EAAW7Q,wBACpCL,qBAAsBkR,EAAWlR,qBACjCP,KAAMiR,EACNr6B,cAAc,EACdF,aAAa,EACbG,SAA+B,MAArBo6B,EAASp6B,SAAmBo6B,EAASp6B,SAA8C,QAAlCA,GAC7D,EAuTF66B,qDArTyD3a,UACzD,MAAMyZ,EAAah+B,EAAMytB,SAASx1B,MAAOgP,qBAAoB5K,GAA0B,eAArBA,EAAE4B,WAAWkF,OACzEjL,QAAgBw/B,GAAW,CAAEv0B,KAAM,yCAA0CmB,OAAQ05B,EAAW,GAAG9iC,GAAK4I,QAAS,KAAMlF,KAAM,OACnI,MAAO,CAAE++B,QAASzlC,EAAO0H,QAASg+B,SAAU1lC,EAAOglC,gBAAiBiC,UAAWjnC,EAAOknC,UAAW,EAmTjGC,sBAjT0B9a,UACmB,MAAzCvkB,EAAM0uB,0BAA0Bz2B,OAChC++B,GACI,WACI,IACI,MAAMa,GAAYC,EAAAA,EAAAA,KACZv0B,QAAYs0B,EAAUE,OAAO,eAAgB,CAAE8B,WAAY/F,GAAe77B,QAC1EoH,QAAiBqF,EAAAA,EAAAA,IAAUmzB,EAAWt0B,EAAK,CAAC,GAClD,GAAuB,KAAnBlE,EAAS4Y,OACT,aAAc5Y,EAASyF,OAEvB,MAAM,IAAIpD,MAAM,UAAYrC,EAAS4Y,OAE7C,CAAE,MAAOnc,GAEL,MADAk7B,GAAuB,MACjBl7B,CACV,CACH,EAdD,IAkBDkE,EAAM0uB,0BAA0Bz2B,OA6RvCohC,iBACAiG,qBAtOyB/a,OAASgb,YAAWhiC,cAAas5B,YAAWC,yBACrE,MAAMuE,EAAU53B,GAAOxL,MACjBw1B,EAAW,IAAI8N,SAErB9N,EAAS3zB,OAAO,YAAaylC,GAC7B9R,EAAS3zB,OAAO,YAAa+8B,GAC7BpJ,EAAS3zB,OAAO,qBAAsBg9B,EAAmB3+B,YACzD,MAAM0/B,GAAYC,EAAAA,EAAAA,KACZv0B,QAAYs0B,EAAUE,OAAO,4BAA6B,CAAE8B,WAAY/F,GAAe77B,MAAOwL,OAAQ43B,IACtGh8B,QAAiBqF,EAAAA,EAAAA,IAAUmzB,EAAWt0B,EAAK,CAC7CoB,OAAQ,OACRszB,YAAa,cACbh/B,KAAMw0B,IAEV,GAAuB,KAAnBpuB,EAAS4Y,OAMT,MAAM,IAAIvW,MAAM,UAAYrC,EAAS4Y,QAJrC,IAA6B,WADD5Y,EAASyF,QACpBlF,QACb,MAAM,IAAI8B,MAAM,8BAKxBk1B,GAAsB,CAAEr5B,cAAas5B,YAAWC,sBAAqB,EAiNrE0I,0BA9M8Bjb,UAC9B,MAAM,KAAE9qB,EAAI,mBAAEq9B,EAAkB,OAAE7e,EAAM,UAAEsnB,EAAS,YAAEhiC,EAAW,QAAEkiC,EAAO,UAAEC,EAAS,iBAAEC,EAAgB,SAAEC,GAAahhC,EAC/GihC,EAAoB,MAARpmC,GAAgB,QAAQkT,KAAKlT,GACzCqmC,EAAwB,MAAV7nB,GAAkB,QAAQtL,KAAKsL,GAC7C8nB,EAAwB,MAAXN,GAAqC,GAAlBA,EAAQ/lC,OAC9C,GAAImmC,GAAaC,GAAeC,EAC5B,OAEJ,MAAMC,EAAeF,EAAc,MAAQjL,GAAY5c,GAEjDgoB,EAAqB,YAAVhoB,EACXioB,EAAqB,YAAVjoB,EACXkoB,EAAoB,WAAVloB,EACVmoB,EAAgBH,GAAYC,GAAYC,EAC9C,IAAIF,IAAaJ,GAAc/I,GAGxB,GAAIoJ,GAAYL,EACnBQ,MAAM,6DAGV,IAAKD,GAAiBE,QAAQ,mDAAqDN,EAAe,KAAOC,EAAW,0LAA4LE,EAAU,iDAAmD,KAAM,CAC/W,MAAM9E,EAAU53B,GAAOxL,MACjB2gC,EAAY,IAAI2C,SAEtB3C,EAAU9+B,OAAO,YAAaylC,GAAa,IAC3C3G,EAAU9+B,OAAO,OAAgB,MAARL,EAAe,GAAKA,GAC7Cm/B,EAAU9+B,OAAO,qBAAsBg9B,GAAoB3+B,YAC3DygC,EAAU9+B,OAAO,SAAQ,GAAK3B,YAC9BygC,EAAU9+B,OAAO,WAAYkG,EAAMkE,YAAYjM,QAAS,GAAOE,YAC/DygC,EAAU9+B,OAAO,SAAoB,MAAVme,EAAiB,GAAKA,GACjD2gB,EAAU9+B,OAAO,WAAwB,MAAZ8lC,EAAmB,YAAcA,GAC9D,IAAK,MAAMvjC,KAAKojC,GAAW,GACvB7G,EAAU9+B,OAAO,UAAWuC,GAEhC,IAAK,MAAMA,KAAKqjC,GAAa,GACzB9G,EAAU9+B,OAAO,YAAauC,GAElC,IAAK,MAAMA,KAAKsjC,GAAoB,GAChC/G,EAAU9+B,OAAO,mBAAoBuC,GAEzC,MAAMw7B,GAAYC,EAAAA,EAAAA,KACZv0B,QAAYs0B,EAAUE,OAAO,kBAAmB,CAAE8B,WAAY/F,GAAe77B,MAAOwL,OAAQ43B,IAC5Fh8B,QAAiBqF,EAAAA,EAAAA,IAAUmzB,EAAWt0B,EAAK,CAC7CoB,OAAQ,OACRszB,YAAa,cACbh/B,KAAM2/B,IAEV,IAAI2H,EAAe,KACnB,GAAuB,KAAnBlhC,EAAS4Y,OAAe,CAExB,GADAsoB,QAAsBlhC,EAASyF,QACF,IAAzBy7B,EAAa5C,QACb,MAAM,IAAIj8B,MAAM,8BACR6+B,EAAaC,aAEbD,EAAaE,UACrB1J,KAER,MAAO,IAAIzK,EAA+BjtB,GAGtC,MAAM,IAAIqC,MAAM,UAAYrC,EAAS4Y,QAGzC,IAAK4nB,IAAcE,EAAY,CAC3B,MAAM3e,EAAWsf,GAAmB7I,EAAUE,OAAO,mCAAoC,CAAE8B,WAAY/F,GAAe77B,MAAOwL,OAAQA,GAAOxL,MAAOyoC,OAAQnB,GAAav/B,EAAMytB,SAASx1B,MAAOiD,GAAIuZ,QAASisB,IAC3MhK,GAAY,CAAEn5B,cAAao5B,QAAS,CAAEz7B,GAAIqlC,EAAcrlC,GAAIzB,OAAMq9B,qBAAoBtD,MAAMsE,EAAAA,EAAAA,KAAezE,MAAOnC,YAAa/nB,QAAQC,KAAKs2B,GAAa,IAAI7jC,KAAI0oB,MAAOloB,EAAGgO,KAAM,CAAGs2B,SAAUtkC,EAAGoY,SAAUgrB,GAAW,IAAIp1B,GAAI+W,cAAeA,GAASqe,GAAW,IAAIp1B,SAAUu1B,aACnR,CAKA,OAJKE,GACDpJ,GAAY,CAAEn5B,cAAao5B,QAAS,CAAEl9B,KAAM,qBAAuBumC,EAAcxM,MAAMsE,EAAAA,EAAAA,KAAezE,SAGnGkN,CACX,OA1DIF,MAAM,+DA0DV,EAsIH,G,sECpmDDO,E,MAA0B,GAA4B,KAE1DA,EAAwB/5B,KAAK,CAAC5D,EAAO/H,GAAI,6XAatC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mCAAmC,mCAAmC,MAAQ,GAAG,SAAW,4GAA4G,eAAiB,CAAC,ubAAyb,oVAAoV,WAAa,MAElhC,S,0DCDS2lC,MAAM,gC,GAOFA,MAAM,sB,+EAiCnB,SAAeC,EAAAA,EAAAA,IAAgB,CAC3BC,MAAO,CACHC,WAAY,CACR79B,KAAM89B,OACNC,UAAU,GAEdC,eAAgB,CACZh+B,KAAM89B,OACNC,UAAU,GAEdE,aAAc,CACVj+B,KAAMk+B,QACNH,UAAU,GAEdI,gBAAiB,CACbn+B,KAAM89B,OACNC,UAAU,GAEdp7B,KAAM,CACF3C,KAAM89B,OACNC,UAAU,GAEdpyB,aAAc,CACV3L,KAAM89B,OACNC,UAAU,GAEdK,YAAa,CACTp+B,KAAM89B,OACNC,UAAU,GAEdM,OAAQ,CACJr+B,KAAMsI,OACNy1B,UAAU,EACVpa,QAAOA,KACI,CACH2a,YAAY,EACZC,UAAU,EACVC,WAAY,QACZC,UAAW,QACXC,eAAe,EACfC,YAAa,GACbC,OAAQA,OACRC,QAASA,WAKzBC,WAAY,CACR,aAAcC,EAAAA,GAGlBC,KAAAA,CAAMpB,EAAc3pB,GAChB,MAAMgrB,GAAc7U,EAAAA,EAAAA,IAAS,MACvB8U,GAAYhV,EAAAA,EAAAA,KACZiV,GAAY/U,EAAAA,EAAAA,IAAY,IACxBgV,GAAgBhV,EAAAA,EAAAA,IAAY,IAC5BiV,GAAmBjV,EAAAA,EAAAA,IAAa,MAEhCkV,GAAkBjS,EAAAA,EAAAA,KAAS,KAC7B,MAAMkS,EAAcjgC,IACpB,MAAO,IACAs+B,EAAMS,OACTmB,MAAM,EACNC,YAAY,EACZd,aAAaxhC,EAAAA,EAAAA,OAAmBhE,MAAMC,QAAQmmC,GAAeA,EAAc,CAACA,GAAe,IAAM3B,EAAMjyB,aAAciyB,EAAMS,OAAOM,aAClIC,OAAQA,CAACc,EAAcC,EAAsBC,KACrChC,EAAMS,OAAOO,QACbhB,EAAMS,OAAOO,SAEjBgB,EAAkBC,WAAWF,QAAgB5gC,GAC7CsgC,EAAiBvqC,MAAMgrC,aAAa,gBAAiB,OAAO,EAEhEjB,QAASA,CAACa,EAAcC,EAAsBI,KAC1CX,EAActqC,MAAQ6qC,EACtBN,EAAiBvqC,MAAMgrC,aAAa,gBAAiB,SACpDT,EAAiBvqC,MAAsBkrC,QACpCpC,EAAMS,OAAOQ,SACbjB,EAAMS,OAAOQ,SACjB,EAEP,IAECoB,GAAY5S,EAAAA,EAAAA,KAAS,IAChB4R,EAAYnqC,MAAQmqC,EAAYnqC,MAAMorC,GAAK,OAGhD5gC,EAAWA,SACYP,IAArB6+B,EAAMC,WACCD,EAAMC,gBACS9+B,IAAf6+B,EAAMj7B,KACNu8B,EAAUlI,eAAe4G,EAAMj7B,WADnC,EAILw9B,EAAiBA,KACnB,MAAMC,GAAuBjjC,EAAAA,EAAAA,IAAeygC,EAAMjyB,aAAciyB,EAAMQ,YAAa,MACvD,MAAxBgC,EACAH,EAAUnrC,MAAMurC,OAAOP,aAAa,cAAeM,GAEnDH,EAAUnrC,MAAMurC,OAAOC,gBAAgB,gBAEtCxoC,EAAAA,EAAAA,IAAmB8lC,EAAMjyB,cAG1Bs0B,EAAUnrC,MAAMurC,OAAOE,UAAUxM,OAAO,kBAFxCkM,EAAUnrC,MAAMurC,OAAOE,UAAUnN,IAAI,iBAGzC,EAEEoN,EAAYA,KACVvsB,EAAQwsB,MAAMC,YACdzsB,EAAQ0sB,KAAK,aAAc,CAAEx/B,OAAQ8+B,EAAUnrC,MAAMurC,SAErDpsB,EAAQ0sB,KAAK,oBAAqBV,EAAUnrC,MAAMurC,OAAOvrC,MAC7D,EAQE8rC,EAAUA,KACuB,KAA/BxB,EAActqC,MAAMyB,aAAoEwI,IAAnDkhC,EAAUnrC,MAAM+rC,UAAUzB,EAActqC,QAC7EmrC,EAAUnrC,MAAM8rC,QAAQxB,EAActqC,MAC1C,EAcEgsC,EAAyB1f,UAiBvB,CAAC,YAAa,MAAO,QAAS,SAAU,IAAK,SAAU,WAAY,MAAO,OAAQ,YAAa,UAAW,aAAc,YAAa,UAAUxO,SAASmuB,EAAM/4B,OAC9J+4B,EAAMC,iBACND,EAAME,4BAEV,MAAMC,EAAaC,IAAO,CACtBC,KAAMnB,EAAUnrC,MAAMusC,YACtBC,MAAOrB,EAAUnrC,MAAMysC,aACvBC,IAAKj0B,SAAS9W,SAASgrC,eAAeC,aAAe,MAEzD,IAAIC,EAEJ,OAAQZ,EAAM/4B,KAEV,IAAK,SACL,IAAK,MACGvR,SAASgrC,eAAiBxB,EAAUnrC,MAAMurC,QAC1CJ,EAAUnrC,MAAMurC,OAAOL,QAE3BC,EAAUnrC,MAAM8sC,QAChB,MAGJ,IAAK,YACL,IAAK,SACD3B,EAAUnrC,MAAM+sC,cACV,IAAI77B,SAAQyY,GAAWiE,WAAWjE,EAAS,KACjDwhB,EAAUnrC,MAAMgtC,cAAc9B,QAC9B,MAGJ,IAAK,QACL,IAAK,IACDC,EAAUnrC,MAAM8rC,QAAQ,IAAIzQ,KAAK8P,EAAUnrC,MAAMusC,YAAapB,EAAUnrC,MAAMysC,aAAch0B,SAAS9W,SAASgrC,eAAeC,aAAe,MAC3H,SAAbX,EAAM/4B,KACNi4B,EAAUnrC,MAAMurC,OAAOL,QACvBC,EAAUnrC,MAAM8sC,UAEhB3B,EAAUnrC,MAAMitC,iBAAiBjC,aAAa,mBAAoB,YAClEG,EAAUnrC,MAAMitC,iBAAiB/B,SAErC,MAGJ,IAAK,SACL,IAAK,WAAY,CACb,MAAMgC,EAA0B,UAAbjB,EAAM/4B,IACzB25B,EAAY1B,EAAUnrC,MAAMmtC,WAAWf,EAAWc,EAAa,WAAa,OAAO,EAAGjB,EAAMmB,SAAW,QAAU,UAAUC,SAAUlC,EAAUnrC,MAAMupC,OAAO+D,gBAC5JnC,EAAUnrC,MAAMisC,EAAMmB,SAAW,aAAe,gBAAgBnB,EAAMmB,SAAWjC,EAAUnrC,MAAMusC,YAAc,IAAMW,GAAc,EAAI,IACvI/B,EAAUnrC,MAAMutC,kBAAkB5qC,cAAc,8BAA8BkqC,OAAe3B,QAC7F,KACJ,CAEA,IAAK,OACL,IAAK,MAAO,CACR,MAAMsC,EAAgC,QAAbvB,EAAM/4B,IAC/B25B,EAAY1B,EAAUnrC,MAAMmtC,WAAWf,EAAWoB,EAAmB,UAAY,SAAS,QAAQH,SAAUlC,EAAUnrC,MAAMupC,OAAO+D,gBACnInC,EAAUnrC,MAAMutC,kBAAkB5qC,cAAc,8BAA8BkqC,OAAe3B,QAC7F,KACJ,CAEA,IAAK,YACL,IAAK,aAAc,CACf,MACMuC,EAAiBrB,EADY,aAAbH,EAAM/4B,IACsB,WAAa,OAAO,EAAG,QAAQm6B,SACjFR,EAAY1B,EAAUnrC,MAAMmtC,WAAWM,EAAgBtC,EAAUnrC,MAAMupC,OAAO+D,gBAE9EnC,EAAUnrC,MAAM+qC,WAAW0C,GAC3BtC,EAAUnrC,MAAMutC,kBAAkB5qC,cAAc,8BAA8BkqC,OAAe3B,QAC7F,KACJ,CAEA,IAAK,UACL,IAAK,YAAa,CACd,MACMwC,EAAkBtB,EADY,WAAbH,EAAM/4B,IACuB,WAAa,OAAO,EAAG,SAASm6B,SACpFR,EAAY1B,EAAUnrC,MAAMmtC,WAAWO,EAAiBvC,EAAUnrC,MAAMupC,OAAO+D,gBAE/EnC,EAAUnrC,MAAM+qC,WAAW2C,GAC3BvC,EAAUnrC,MAAMutC,kBAAkB5qC,cAAc,8BAA8BkqC,OAAe3B,QAC7F,KACJ,EAGJ,EAsEJ,OAnEAyC,EAAAA,EAAAA,KAAU,UACkB1jC,IAApBkhC,EAAUnrC,QACVmrC,EAAUnrC,MAAMurC,OAAOtH,iBACnB,QACA,KACI6H,IACAJ,GAAW,IAEf,GAEJP,EAAUnrC,MAAMurC,OAAOtH,iBAAiB,SAAUgI,GAxIhCA,KACtB3B,EAActqC,MAASisC,EAAM5/B,OAA4BrM,MACpDsqC,EAActqC,MAAMyB,QACrB0pC,EAAUnrC,MAAM+sC,OACpB,EAoI+Ea,CAAiB3B,KAC5Fd,EAAUnrC,MAAM6tC,cAAc5J,iBAAiB,UAAW+H,GAE1Db,EAAUnrC,MAAMurC,OAAOP,aAAa,kBAAmBlC,EAAMI,gBAAkB/pB,EAAQwsB,MAAM1oC,IAC7FkoC,EAAUnrC,MAAMurC,OAAOP,aAAa,gBAAiBlC,EAAMK,cAC3DgC,EAAUnrC,MAAMurC,OAAOP,aAAa,mBAAoBlC,EAAMO,iBAE9D8B,EAAUnrC,MAAMutC,kBAAkBvC,aAAa,OAAQ,UACvDG,EAAUnrC,MAAMutC,kBAAkBvC,aAAa,aAAc,QAC7DG,EAAUnrC,MAAMutC,kBAAkBvC,aAAa,aAAc,eAC7DG,EAAUnrC,MAAMutC,kBAAkBvC,aAAa,mBAAoB,kCAE/D7rB,EAAQwsB,MAAM1oC,KACdkoC,EAAUnrC,MAAMurC,OAAOP,aAAa,KAAM7rB,EAAQwsB,MAAM1oC,IACxDkoC,EAAUnrC,MAAMiB,QAAQuqC,gBAAgB,OAE5CH,IACJ,KAGJtW,EAAAA,EAAAA,KACI,IAAM+T,EAAMQ,cACZ,KACI+B,GAAgB,KAGxBtW,EAAAA,EAAAA,KACI,IAAM+T,EAAMjyB,eACZ,KACIw0B,GAAgB,KAGxBtW,EAAAA,EAAAA,KACI,IAAMsV,EAAUrqC,QAChB8tC,IACQhF,EAAMC,YAAc+E,GACpB3uB,EAAQ0sB,KAAK,oBAAqBiC,EACtC,KAGR/Y,EAAAA,EAAAA,KACI,IAAM+T,EAAMC,aACZlpC,IACQwqC,EAAUrqC,OAASH,IACnBwqC,EAAUrqC,MAAQH,EACtB,KAGRk1B,EAAAA,EAAAA,KACI,IAAMuV,EAActqC,QACpB,IAAM8rC,OAEV/W,EAAAA,EAAAA,KACI,IAAM+T,EAAMO,kBACZ,IAAM8B,EAAUnrC,MAAMurC,OAAOP,aAAa,mBAAoBlC,EAAMO,mBAGjE,CAEHkB,mBAGAF,YAGAG,kBACAW,YAGAO,YACAqC,eAnMmBzhB,UACd6e,EAAUnrC,MAAMguC,OAGjB7C,EAAUnrC,MAAM8sC,cAFV3B,EAAUnrC,MAAMiuC,OAI1B,MAAMC,EAAiB/C,EAAUnrC,MAAMutC,kBAAkB5qC,cAAc,4BAA8BwoC,EAAUnrC,MAAMutC,kBAAkB5qC,cAAc,wBACjJurC,GAAgBzC,UAAU0C,SAAS,aACnCD,EAAelD,aAAa,mBAAoB,YAEpDkD,EAAehD,OAAO,EA4LtBf,cAER,I,sICpXAiE,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IACxBF,EAAQG,OAAS,SAAc,KAAM,QACrCH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,IAAQM,QAAS,IAAQA,OCjB1D,MAEA,GAFiC,E,QAAA,GAAgB,EAAQ,CAAC,CAAC,S,uEFYvDC,EAAAA,EAAAA,IAUM,MAVNC,EAUM,EAJFC,EAAAA,EAAAA,IAAwIC,GAAxIC,EAAAA,EAAAA,IAAwI,CAA5HzZ,IAAI,cAzBxByT,WAyB+CiG,EAAA3E,UAzB/C,sBAAA4E,EAAA,KAAAA,EAAA,GAAAC,GAyB+CF,EAAA3E,UAAS6E,IAAUF,EAAAG,OAAM,CAAGC,UAAUJ,EAAAtD,UAAY2D,SAAQL,EAAAtD,UAAYnC,OAAQyF,EAAAxE,kB,yDACrH8E,EAAAA,EAAAA,IAEM,MAFNC,EAEM,EADFD,EAAAA,EAAAA,IAAyK,UAAjKha,IAAI,mBAAoBka,QAAKP,EAAA,KAAAA,EAAA,G,QAAED,EAAAjB,gBAAAiB,EAAAjB,kBAAA0B,IAAgB7G,MAAM,yCAAyC19B,KAAK,SAAS,aAAW,kBAAkB,gBAAc,S,gBEpB/F,CAAC,YAAY,oB","sources":["webpack:///./cs-ts-bridge/cs/BuiltinExportSchemas.ts","webpack:///./cs-ts-bridge/cs/DocumentTypeEnum.ts","webpack:///./cs-ts-bridge/cs/FormAccessPurpose.ts","webpack:///./cs-ts-bridge/cs/VerificationStatus.ts","webpack:///./lib/flattenArrays.ts","webpack:///./public/lib/calculations.ts","webpack:///./lib/cartesian.ts","webpack:///./public/lib/caseOperations.ts","webpack:///./public/pages/elements/AddressDef.ts","webpack:///./public/pages/elements/BaseElementDef.ts","webpack:///./public/pages/elements/ContentTemplatePageDef.ts","webpack:///./public/pages/elements/DisplayElementDef.ts","webpack:///./public/pages/elements/DisplayIfOtherHasValueDef.ts","webpack:///./public/pages/elements/ExtraDataShimDef.ts","webpack:///./public/pages/elements/FileDef.ts","webpack:///./public/pages/elements/ForEachDef.ts","webpack:///./public/pages/elements/FormDef.ts","webpack:///./public/pages/elements/SignatureDef.ts","webpack:///./public/pages/elements/StateFormDef.ts","webpack:///./public/pages/elements/TextboxDef.ts","webpack:///./public/pages/elements/CalculatedDef.ts","webpack:///./public/pages/elements/ValidationDef.ts","webpack:///./public/pages/elements/CheckGroupDef.ts","webpack:///./public/pages/elements/ContactPageTemplateDef.ts","webpack:///./public/pages/elements/ContentDef.ts","webpack:///./public/pages/elements/DatePickerDef.ts","webpack:///./public/lib/standardDropDownListItems.ts","webpack:///./public/pages/elements/DropDownListDef.ts","webpack:///./public/pages/elements/FormAlternativeDef.ts","webpack:///./public/pages/elements/LandingPageTemplateDef.ts","webpack:///./public/pages/elements/PageDef.ts","webpack:///./public/pages/elements/PdfAlternativeDef.ts","webpack:///./public/pages/elements/RadioGroupDef.ts","webpack:///./public/pages/elements/RegionDef.ts","webpack:///./public/pages/elements/RequireValueIfOtherHasValueDef.ts","webpack:///./public/pages/elements/SectionDef.ts","webpack:///./public/pages/elements/ReceiptContentDef.ts","webpack:///./public/pages/elements/DisplayStampedPdfDef.ts","webpack:///./public/pages/elements/DisplayGeneratedPdfDef.ts","webpack:///./public/pages/elements/FileDocumentDef.ts","webpack:///./public/pages/elements/CompletionRedirectDef.ts","webpack:///./public/pages/elements/AbstractPayDef.ts","webpack:///./public/pages/elements/CommonCheckoutDef.ts","webpack:///./public/pages/elements/LexmarkIntegrationDef.ts","webpack:///./public/pages/elements/CompletionEmailerDef.ts","webpack:///./public/pages/elements/SubmitTriggerDef.ts","webpack:///./public/pages/elements/WorkflowSwitchDef.ts","webpack:///./public/pages/elements/CaptchaControlDef.ts","webpack:///./public/pages/elements/CaptchaBehaviorDef.ts","webpack:///./public/pages/elements/DataTableDef.ts","webpack:///./public/pages/elements/IdVerificationDef.ts","webpack:///./public/pages/elements/buildElement.ts","webpack:///./public/lib/pageIndexOperations.ts","webpack:///./cs-ts-bridge/cs/FormSubmitResultEnum.ts","webpack:///./public/pages/pageState/store.ts","webpack:///./lib/DatePicker.3.vue?1edf","webpack:///./lib/DatePicker.3.vue","webpack:///./lib/DatePicker.3.vue?7156","webpack:///./lib/DatePicker.3.vue?3e4b"],"sourcesContent":["//@ts-nocheck\n/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport class BuiltinExportSchemas {\n static MAP: { [key: string]: string; } = {\"__Builtin\":\"\",\"__BuiltinFormData\":\"Form Data Only\"};\n}\n","//@ts-nocheck\n/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport enum DocumentTypeEnum {\n DriversLicense = 0,\n Passport = 1,\n}\n","//@ts-nocheck\n/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport class FormAccessPurpose {\n readonly ReadonlyAndDelayedOkay: boolean;\n static readonly UserListing: \"UserListing\" = \"UserListing\";\n static readonly UserCrossTenantListing: \"UserCrossTenantListing\" = \"UserCrossTenantListing\";\n static readonly AdminListing: \"AdminListing\" = \"AdminListing\";\n static readonly AdminTaskListing: \"AdminTaskListing\" = \"AdminTaskListing\";\n static readonly UserView: \"UserView\" = \"UserView\";\n static readonly UserEdit: \"UserEdit\" = \"UserEdit\";\n static readonly UserSubmit: \"UserSubmit\" = \"UserSubmit\";\n static readonly UserAssign: \"UserAssign\" = \"UserAssign\";\n static readonly UserAssignWithToken: \"UserAssignWithToken\" = \"UserAssignWithToken\";\n static readonly UserUnlock: \"UserUnlock\" = \"UserUnlock\";\n static readonly UserResume: \"UserResume\" = \"UserResume\";\n static readonly UserPostSubmitEdit: \"UserPostSubmitEdit\" = \"UserPostSubmitEdit\";\n static readonly UserPostSubmitView: \"UserPostSubmitView\" = \"UserPostSubmitView\";\n static readonly AdminView: \"AdminView\" = \"AdminView\";\n static readonly AdminNonWorkflowEdit: \"AdminNonWorkflowEdit\" = \"AdminNonWorkflowEdit\";\n static readonly AdminWorkflowEdit: \"AdminWorkflowEdit\" = \"AdminWorkflowEdit\";\n static readonly AdminWorkflowUnlock: \"AdminWorkflowUnlock\" = \"AdminWorkflowUnlock\";\n static readonly AdminWorkflowSubmit: \"AdminWorkflowSubmit\" = \"AdminWorkflowSubmit\";\n static readonly AdminPostSubmitWorkflowEdit: \"AdminPostSubmitWorkflowEdit\" = \"AdminPostSubmitWorkflowEdit\";\n static readonly AdminPostSubmitView: \"AdminPostSubmitView\" = \"AdminPostSubmitView\";\n static readonly AdminWorkflowAssign: \"AdminWorkflowAssign\" = \"AdminWorkflowAssign\";\n static readonly AdminWorkflowAssignWithToken: \"AdminWorkflowAssignWithToken\" = \"AdminWorkflowAssignWithToken\";\n static readonly AdminWorkflowResume: \"AdminWorkflowResume\" = \"AdminWorkflowResume\";\n static readonly AdminDataEdit: \"AdminDataEdit\" = \"AdminDataEdit\";\n static readonly ApiViewRealTime: \"ApiViewRealTime\" = \"ApiViewRealTime\";\n static readonly ApiViewNearRealTime: \"ApiViewNearRealTime\" = \"ApiViewNearRealTime\";\n static readonly SystemSubmit: \"SystemSubmit\" = \"SystemSubmit\";\n static readonly SystemPostSubmitEdit: \"SystemPostSubmitEdit\" = \"SystemPostSubmitEdit\";\n static readonly SystemRealTime: \"SystemRealTime\" = \"SystemRealTime\";\n static readonly SystemNearRealTime: \"SystemNearRealTime\" = \"SystemNearRealTime\";\n static readonly ALL: (\"UserListing\" | \"UserCrossTenantListing\" | \"AdminListing\" | \"UserAssign\" | \"UserAssignWithToken\" | \"UserUnlock\" | \"UserResume\" | \"UserView\" | \"UserEdit\" | \"UserSubmit\" | \"UserPostSubmitEdit\" | \"UserPostSubmitView\" | \"AdminView\" | \"AdminTaskListing\" | \"AdminWorkflowEdit\" | \"AdminWorkflowUnlock\" | \"AdminWorkflowSubmit\" | \"AdminWorkflowAssign\" | \"AdminWorkflowAssignWithToken\" | \"AdminWorkflowResume\" | \"AdminPostSubmitWorkflowEdit\" | \"AdminPostSubmitView\" | \"AdminNonWorkflowEdit\" | \"ApiViewRealTime\" | \"ApiViewNearRealTime\" | \"SystemNearRealTime\" | \"SystemSubmit\" | \"SystemPostSubmitEdit\" | \"SystemRealTime\" | \"AdminDataEdit\")[] = [\"UserCrossTenantListing\", \"AdminListing\", \"UserAssign\", \"UserAssignWithToken\", \"UserUnlock\", \"UserResume\", \"UserView\", \"UserEdit\", \"UserSubmit\", \"UserPostSubmitEdit\", \"UserPostSubmitView\", \"AdminView\", \"AdminTaskListing\", \"AdminWorkflowEdit\", \"AdminWorkflowUnlock\", \"AdminWorkflowSubmit\", \"AdminWorkflowAssign\", \"AdminWorkflowAssignWithToken\", \"AdminWorkflowResume\", \"AdminPostSubmitWorkflowEdit\", \"AdminPostSubmitView\", \"AdminNonWorkflowEdit\", \"ApiViewRealTime\", \"ApiViewNearRealTime\", \"SystemNearRealTime\", \"SystemSubmit\", \"SystemPostSubmitEdit\", \"SystemRealTime\", \"AdminDataEdit\"];\n}\n","//@ts-nocheck\n/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport enum VerificationStatus {\n Unknown = 0,\n Error = 1,\n Passed = 2,\n Failed = 3,\n Paused = 4,\n Pending = 5,\n Attention = 6,\n Skipped = 7,\n}\n","export default <T>(arrays: T[][]) => {\n if (arrays.flat) {\n return arrays.flat(1);\n }\n return arrays.reduce((acc, val) => acc.concat(val), []);\n};\n","import { walkUpdateNodeTextContent, parseStringToDom } from \"@/lib/domHelper\";\nimport cartesian from \"@/lib/cartesian\";\nimport { isNullOrWhitespace } from \"@/lib/whitespaceMethods\";\n\n// TODO delete all of these?\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function resolveCalculationPromiseBool(jsScript: string, contextNode: any) {\n throw new Error();\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function resolveCalculationPromise(jsScript: any, contextNode: any) {\n throw new Error();\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function resolveCalculation(jsScript: any, contextNode: any) {\n throw new Error();\n}\nexport default resolveCalculation;\n\nexport function DfParseFloat(value: string | null | undefined | number) {\n // Remove spaces, dollar sign, commas, etc before parsing\n value = value == null ? null : value.toString().replace(/[^+0-9.-]+/g, \"\");\n return parseFloat(value!);\n}\nexport function DfParseFloatWithoutNan(value: string | null | undefined | number) {\n const result = DfParseFloat(value);\n return isNaN(result) ? 0 : result;\n}\n\nexport function parseBool(value: string | null | undefined | number) {\n if (value == null) {\n return null;\n }\n if (typeof value == \"number\") {\n return value != 0;\n }\n const valueStr = value.toString().toLowerCase();\n return valueStr == \"1\" || valueStr == \"true\" ? 1 : valueStr == \"0\" || valueStr == \"false\" ? 0 : null;\n}\n\n//export function DfGetTableRows(fetchXsrfFunc, urlFetcher, tableName, testMode, skip, top, sort) {\n// return DfGetAreaTableRows(fetchXsrfFunc, urlFetcher, null, tableName, testMode, skip, top, sort);\n//}\n//export function DfGetAllTableRows(fetchXsrfFunc, urlFetcher, tableName, testMode) {\n// return DfGetAllAreaTableRows(fetchXsrfFunc, urlFetcher, null, tableName, testMode);\n//}\n//export function DfGetAllTableValues(fetchXsrfFunc, urlFetcher, tableName, testMode, resultKey) {\n// return DfGetAllAreaTableValues(fetchXsrfFunc, urlFetcher, null, tableName, testMode, resultKey);\n//}\n//export function DfGetAllAreaTableRows(fetchXsrfFunc, urlFetcher, areaCode, tableName, testMode) {\n// return DfGetAreaTableRows(fetchXsrfFunc, urlFetcher, areaCode, tableName, testMode, null, null);\n//}\n//const tableCaches = {};\n//export function DfGetAreaTableRows(fetchXsrfFunc, urlFetcher, areaCode, tableName, testMode, skip, top, sort) {\n// const tableCache = _DFResolveGetTableCache(areaCode, tableName, testMode, skip, top, sort);\n// //@ts-ignore\n// let allPromise = tableCache[null];\n// if (allPromise == null) {\n// //@ts-ignore\n// tableCache[null] = allPromise = (async () => {\n// const url = await urlFetcher(\"datasourceFetchData\", { tenantCode: areaCode, tableKey: tableName, testMode: testMode, skip: skip, top: top, sort: JSON.stringify(sort) });\n// const tableResp = await fetch(url);\n// const tableDataCount = parseInt(tableResp.headers.get(\"x-df-datacount\"));\n// const tableData = await tableResp.json();\n// return { data: tableData, dataCount: tableDataCount };\n// })();\n// }\n// return allPromise;\n//}\n//export function DfGetAllAreaTableValues(fetchXsrfFunc, urlFetcher, areaCode, tableName, testMode, resultKey) {\n// return _DFResolveTableLookup([DfGetAllAreaTableRows(fetchXsrfFunc, urlFetcher, areaCode, tableName, testMode)], resultKey);\n//}\n//\ntype HtmlContentCalculation = { id: string | undefined; text: string[] };\nexport function resolveHtmlContentCalculations(calculations: HtmlContentCalculation[], content: string | undefined) {\n const parsedDom = parseStringToDom(content);\n const processFunc = (element: HTMLElement) => {\n const calculation = !isNullOrWhitespace(element.id) ? calculations.find(calc => calc.id == element.id) : null;\n HtmlResolveCalculationElement(calculation, element);\n };\n HtmlProcessDeeperMatchedNodes(parsedDom.body, \"conditional-block, calculation\", processFunc);\n HtmlResolveIterableCalculations(parsedDom);\n return parsedDom.body.innerHTML;\n}\n\n//function _DFResolveGetTableCache(areaCode, tableName, testMode, skip, top, sort) {\n// let areaCache = tableCaches[areaCode];\n// if (areaCache == null) {\n// areaCache = tableCaches[areaCode] = {};\n// }\n// let tableCache = areaCache[tableName];\n// if (tableCache == null) {\n// tableCache = areaCache[tableName] = {};\n// }\n// let modeCache = tableCache[testMode];\n// if (modeCache == null) {\n// modeCache = tableCache[testMode] = {};\n// }\n// let skipCache = modeCache[skip];\n// if (skipCache == null) {\n// skipCache = modeCache[skip] = {};\n// }\n// let topCache = skipCache[top];\n// if (topCache == null) {\n// topCache = skipCache[top] = {};\n// }\n// const sortKey = JSON.stringify(sort);\n// let sortCache = topCache[sortKey];\n// if (sortCache == null) {\n// sortCache = topCache[sortKey] = {};\n// }\n// return sortCache;\n//}\n\n//function _DFResolveTableLookup(promiseLists, resultKey) {\n// return Promise.all(promiseLists).then(function (input) {\n// return [].concat.apply(\n// [],\n// input.map(i => i.data.map(v => v[resultKey])),\n// );\n// });\n//}\n\nfunction HtmlResolveCalculationElement(calculation: HtmlContentCalculation | null | undefined, element: HTMLElement) {\n const resolveFunc = {\n calculation: (calculation: HtmlContentCalculation | null | undefined, calculationElement: HTMLElement) => {\n const parent = calculationElement.parentElement!,\n notIterable = !calculation || !calculation.text.length,\n childWrapper = document.createElement(\"span\");\n\n childWrapper.append(...calculationElement.children);\n walkUpdateNodeTextContent(childWrapper, calculation != null ? calculation.text[0] : \"\");\n parent.replaceChild(childWrapper, calculationElement);\n if (notIterable) {\n return;\n }\n childWrapper.dataset.isIterable = \"true\";\n const iterables = parent.dataset.iterables != null ? (JSON.parse(parent.dataset.iterables) as string[][]) : [];\n iterables.unshift(calculation.text);\n parent.dataset.iterables = JSON.stringify(iterables);\n },\n \"conditional-block\": (calculation: HtmlContentCalculation | null | undefined, conditionalElement: HTMLElement) => {\n if (calculation == null || parseBool(calculation.text[0]) === 1) {\n conditionalElement.replaceWith(...(conditionalElement.querySelector(\"div\")!.children || []));\n } else {\n conditionalElement.outerHTML = \"\";\n }\n },\n };\n resolveFunc[element.nodeName.toLocaleLowerCase() as \"calculation\" | \"conditional-block\"](calculation, element);\n}\n\nfunction HtmlResolveIterableCalculations(parsedDom: Document) {\n const iterableElements = parsedDom.querySelectorAll(\"[data-iterables]\");\n if (iterableElements.length != 0) {\n const processFunc = (iterableElement: HTMLElement) => {\n const iterables = JSON.parse(iterableElement.dataset.iterables!) as string[][];\n delete iterableElement.dataset.iterables;\n if (!(iterables.length == 1 && iterables[0].length == 1)) {\n const cartesianSets = cartesian(...iterables);\n const childWrapper = document.createElement(\"span\");\n cartesianSets.forEach(set => {\n const clonedElement = iterableElement.cloneNode(true) as HTMLElement;\n const isIterables = clonedElement.querySelectorAll(`:scope > [data-is-iterable=\"true\"]`);\n for (let i = isIterables.length - 1; i >= 0; i--) {\n walkUpdateNodeTextContent(isIterables[i], Array.isArray(set) ? set[i] : set);\n }\n childWrapper.append(clonedElement);\n });\n iterableElement.replaceWith(...childWrapper.children);\n }\n };\n HtmlProcessDeeperMatchedNodes(parsedDom.body, \"[data-iterables]\", processFunc);\n }\n parsedDom.querySelectorAll(`[data-is-iterable]`).forEach(elem => delete (elem as HTMLElement).dataset.isIterable);\n}\n\nfunction HtmlProcessDeeperMatchedNodes(node: HTMLElement, selector: string, func: (i: HTMLElement) => void) {\n const children = node.querySelectorAll(selector);\n for (let i = children.length - 1; i >= 0; i--) {\n HtmlProcessDeeperMatchedNodes(children[i] as HTMLElement, selector, func);\n }\n if (node.matches(selector)) {\n func(node);\n }\n}\n","export function cartesianTyped<T1, T2>(...input: [T1[], T2[]]): [T1, T2][];\nexport function cartesianTyped<T1, T2, T3>(...input: [T1[], T2[], T3[]]): [T1, T2, T3][];\nexport function cartesianTyped<T1, T2, T3, T4>(...input: [T1[], T2[], T3[], T4[]]): [T1, T2, T3, T4][];\n//export function cartesianTyped<T1, T2, T3, T4>(input: [T1[], T2[], T3[], T4[]]): [T1, T2, T3, T4][];\nexport function cartesianTyped<T1>(a: T1[]): [T1][];\nexport function cartesianTyped<T1, T2>(a: T1[], b: T2[]): [T1, T2][];\nexport function cartesianTyped<T1, T2, T3>(a: T1[], b: T2[], c: T3[]): [T1, T2, T3][];\nexport function cartesianTyped<T1, T2, T3, T4>(a: T1[], b: T2[], c: T3[], d: T4[]): [T1, T2, T3, T4][];\nexport function cartesianTyped<T1, T2, T3, T4, T5>(a: T1[], b: T2[], c: T3[], d: T4[], e: T5[]): [T1, T2, T3, T4, T5][];\nexport function cartesianTyped<T1, T2, T3, T4, T5>(input: [T1[], T2[], T3[], T4[], T5[]]): [T1, T2, T3, T4, T5][];\nexport function cartesianTyped<TA1, TA2, TA3, TB1>(a: [TA1, TA2, TA3][], b: TB1[]): [TA1, TA2, TA3, TB1][];\nexport function cartesianTyped<TA1, TA2, TA3, TA4, TB1>(a: [TA1, TA2, TA3, TA4][], b: TB1[]): [TA1, TA2, TA3, TA4, TB1][];\n//eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function cartesianTyped(...a: any[][]): any[][] {\n return cartesian(...a);\n}\nexport function cartesianTyped2<T1, T2, T3, T4, T5>(input: [T1[], T2[], T3[], T4[], T5[]]): [T1, T2, T3, T4, T5][];\nexport function cartesianTyped2<TA1, TA2, TA3, TB1>(a: [TA1, TA2, TA3][], b: TB1[]): [TA1, TA2, TA3, TB1][];\nexport function cartesianTyped2<TA1, TA2, TA3, TA4, TB1>(a: [TA1, TA2, TA3, TA4][], b: TB1[]): [TA1, TA2, TA3, TA4, TB1][];\n//eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function cartesianTyped2(...a: any[][]): any[][] {\n return cartesian(...a);\n}\nexport default function cartesian<T>(...a: T[][]): T[][] {\n //@ts-expect-error\n return a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));\n}\n","export function toUpperCase(v: string) {\n return v && v.toUpperCase ? v.toUpperCase().trim() : v;\n}\nexport function toUpperCaseList(list: string[]) {\n return list.map(function (v) {\n return toUpperCase(v);\n });\n}\n","import { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { BehaviorSubject, combineLatest, from, Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { stringCoalesce } from \"@/lib/whitespaceMethods\";\nimport { AddressSettings } from \"@cs-ts/address-settings\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { FormItem } from \"@/cs-ts-bridge/cs/FormItem\";\nimport { AddressVerificationEnum } from \"@cs-ts/address-verification-enum\";\nexport type VerifiedAddress = { Address1: string | null; Address2: string | null; City: string | null; State: string | null; ZipCode: string | null; Country: string | null; Messages: string[] | null; Latitude: number | null; Longitude: number | null; VerificationStatus: string | null; AddressPrecision: string | null; Changes: Changes | null; ErrorMessages: string[]; Code: string };\nexport type Changes = { Address1Number: string | null; Address1Street: string | null; City: string | null; State: string | null; ZipCode: string | null };\nexport type AddressVerificationResponse = {\n Success: boolean;\n Messages: string;\n AddressChanged: boolean;\n Result: VerifiedAddress;\n};\nexport interface FormAddressVerificationItem extends FormItem {\n verificationResponse: string;\n currentAddressData: string;\n verified: boolean | null;\n}\nexport default class AddressDef extends BaseElementDef<AddressSettings, FormDefinitionItem<AddressSettings>, FormItem> {\n declare _effectiveLabel$: BehaviorSubject<string | null | undefined>;\n declare validationMessages: string[];\n declare verified: boolean;\n declare verified$: BehaviorSubject<boolean>;\n declare verificationResponse: string;\n declare currentAddressData: string;\n declare errorMessages$: BehaviorSubject<string>;\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<AddressSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFAddress\"; // TODO - not hardcoded?\n this.errorMessages$ = new BehaviorSubject(\"\");\n }\n\n effectiveLabel$() {\n if (this._effectiveLabel$ == null) {\n if (this.definition.settings.labelCalculationId) {\n this._effectiveLabel$ = new BehaviorSubject(null as string | null | undefined);\n this.resolveCalculation(this.definition.settings.labelCalculationId)\n .pipe(map(i => (i.length ? i[0] : null)))\n .subscribe(this._effectiveLabel$);\n } else {\n this._effectiveLabel$ = new BehaviorSubject(this.definition.settings.label as string | null | undefined);\n }\n }\n return this._effectiveLabel$;\n }\n\n effectiveShortLabel$() {\n if (this.definition.settings.shortLabel) {\n return from([this.definition.settings.shortLabel]);\n } else {\n return this.effectiveLabel$();\n }\n }\n\n setData(data: FormAddressVerificationItem, excludeChildren: boolean) {\n super.setData(data, excludeChildren);\n this.setKey(data, \"validationMessages\");\n this.setKey(data, \"verified\");\n this.setKey(data, \"verificationResponse\");\n this.setKey(data, \"currentAddressData\");\n }\n\n getData(excludeChildren: boolean) {\n const result = super.getData(excludeChildren) as FormAddressVerificationItem;\n if (result != null) {\n result.verified = this.verified;\n if (this.verificationResponse != null) {\n result.verificationResponse = this.verificationResponse;\n }\n if (this.currentAddressData != null) {\n result.currentAddressData = this.currentAddressData;\n }\n }\n return result;\n }\n\n async verifyAddress(address: string) {\n const response = (await this.invokeAsync(\"verifyAddress\", address)) as AddressVerificationResponse;\n this.setVerified((this.definition.settings.verifyAddress == AddressVerificationEnum.Verify && (response.Result.Code == \"NOT_FOUND\" || response.Result.Code == null) && !response.Success) || response.Success);\n this.verificationResponse = response.Messages;\n this.errorMessages$.next(response.Messages ?? \"\");\n this.markEdited();\n return response;\n }\n\n setVerified(state: boolean) {\n this.verified = state;\n this.verified$.next(state);\n }\n\n effectiveLabelText$() {\n return combineLatest(this.effectiveShortLabel$() as Observable<string | null | undefined>, this.effectiveLabel$() as Observable<string | null | undefined>).pipe(map(([s, l]) => stringCoalesce(l, s, null)));\n }\n\n valid$() {\n return combineLatest([super.valid$(), this.verified$, this.edited$()]).pipe(map(([valid, verified, edited]) => (edited ? valid && (this.definition.settings.verifyAddress != AddressVerificationEnum.Off ? verified : true) : true)));\n }\n\n errors$() {\n return combineLatest([this.valid$(), this.errorMessages$]).pipe(map(([valid, errorMessages]) => (valid ? [] : errorMessages ? [errorMessages] : this.validationMessages.length > 0 ? this.validationMessages : [])));\n }\n}\n","import buildElement from \"./buildElement\";\nimport generateGuid from \"@/lib/generateGuid\";\nimport { HiddenValueMode } from \"@cs/HiddenValueMode\";\nimport distinct from \"@/lib/distinct\";\nimport { BehaviorSubject, ReplaySubject, combineLatest, from } from \"rxjs\";\nimport { map, switchMap, first, /*publishBehavior, refCount, finalize,*/ share /*tap*/ } from \"rxjs/operators\";\nimport { isNullOrWhitespace, stringCoalesce } from \"@/lib/whitespaceMethods\";\nimport { FormItem } from \"@cs/FormItem\";\n\nimport { IElementSettings } from \"@cs-ts/i-element-settings\";\nimport { IControlSettings } from \"@cs-ts/i-control-settings\";\nimport { FormComment } from \"@cs-ts/form-comment\";\nimport { FormHistory } from \"@cs-ts/form-history\";\nimport { FormIssue } from \"@/cs-ts-bridge/ts/form-issue\";\nimport { FormFileDependency } from \"@cs/FormFileDependency\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { Observable } from \"rxjs\";\nimport { IHiddenValueModeSettings } from \"@cs-ts/i-hidden-value-mode-settings\";\nimport { PageSettings } from \"@/cs-ts-bridge/ts/page-settings\";\nimport { SubmitTriggerSettings } from \"@/cs-ts-bridge/ts/submit-trigger-settings\";\nimport { FormControlItem } from \"@/cs-ts-bridge/cs/FormControlItem\";\nimport { FormBaseControlItem } from \"@/cs-ts-bridge/cs/FormBaseControlItem_1\";\nimport type FormDef from \"./FormDef\";\nimport type { resolveCalculation } from \"../../lib/calculations.direct\";\nimport { InvokeBody } from \"@cs-ts/invoke-body\";\n\n// TODO move to a separate file?\nexport type Awaitable<T> = T | PromiseLike<T>;\nexport type ChangeType = \"changed\" | \"deleted\" | \"new\" | null;\n\n// TODO - proper types\n\nlet _resolveCalculation: Promise<{ resolveCalculation: typeof resolveCalculation }> | null = null;\n\n// TODO - proper types\nexport interface ElementData {\n [key: string]: null | string | string[] | null | boolean | ElementData;\n}\n\nexport type BaseElementDefSimple<TSetting extends IElementSettings> = BaseElementDef<TSetting, FormDefinitionItem<TSetting>, FormItem>;\nexport type BaseElementDefBase = BaseElementDef<IElementSettings, FormDefinitionItem<IElementSettings>, FormItem>;\n//eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Change = { key: string | null; baseSetting: any; currentSetting: any };\n\nexport class BaseElementDef<TSetting extends IElementSettings, TDef extends FormDefinitionItem<TSetting>, TFormItem extends FormItem> {\n declare definition: TDef;\n declare parentElement: BaseElementDefBase | null;\n declare children: BaseElementDefBase[];\n declare isBase: boolean | undefined;\n declare baseLink: BaseElementDefBase | undefined;\n declare isFocusable: boolean | undefined;\n declare forceNonLive: boolean | undefined;\n declare forceMaskedOutput: boolean | undefined;\n declare typeName: string;\n declare id: string | undefined;\n declare vmId: string;\n declare comments: FormComment[];\n declare history: FormHistory[];\n declare issues: FormIssue[];\n declare calculationContext: CalculationContext;\n declare fixedCalculationResults: Record<string, string[]>;\n declare dependencies: Record<string, string | string[] | FormFileDependency>;\n declare dependenciesIndex: number[];\n declare foreachCounts: Record<string, number[]>;\n\n declare stub: boolean | null;\n declare fixedCalculationResults$: BehaviorSubject<Record<string, string[]>>;\n declare _children$: BehaviorSubject<BaseElementDefBase[]>;\n declare _edited$: BehaviorSubject<boolean>;\n //declare changes: Change[];\n declare baseChanges: Change[];\n //@ts-ignore-error\n declare _baseElementValid$: { [k: boolean]: { [k: boolean]: Observable<boolean> | undefined } } | null;\n declare customErrorIds: string[];\n declare _customErrorIds$: BehaviorSubject<string[]>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: TFormItem, definitionData: TDef, calculationContext: CalculationContext) {\n this.parentElement = parentElement;\n this.id = definitionData.id;\n this.typeName = definitionData.fullType;\n this.definition = definitionData;\n /* @type {string[]} */\n this.comments = elementData == null ? [] : elementData.comments || [];\n this.history = elementData == null ? [] : elementData.history || [];\n this.issues = elementData == null ? [] : elementData.issues || [];\n /** @type {import (\"./__CalculationContextInterface\").CalculationContext} */\n this.calculationContext = calculationContext;\n if (parentElement == null && calculationContext.rootElement == null) {\n calculationContext.rootElement = this;\n }\n this.dependenciesIndex = [];\n this.dependencies = {};\n this.foreachCounts = {};\n const typeNameMatch = /[.]([^.]*)Def,/.exec(this.definition.fullType);\n if (typeNameMatch == null) {\n throw new Error(JSON.stringify(this.definition));\n }\n this.typeName = \"MI.Common.DynamicForms.Models.DF\" + typeNameMatch[1]; // TODO - not hardcoded?\n this.stub = null;\n /** @type {Record<string,string[]>} */\n this.fixedCalculationResults = {};\n /** @type {BehaviorSubject<Record<string,string[]>>} */\n this.fixedCalculationResults$ = new BehaviorSubject({} as Record<string, string[]>);\n this.setData(elementData, true);\n this.children = [];\n this._children$ = new BehaviorSubject([] as BaseElementDefBase[]);\n this._edited$ = new BehaviorSubject(false);\n this.initChildren(elementData);\n //this.changes = [];\n this.baseLink = undefined;\n this.isBase = undefined;\n this.isFocusable = undefined;\n this.customErrorIds = [];\n this._customErrorIds$ = new BehaviorSubject(this.customErrorIds);\n }\n\n setKey(data: TFormItem | null, name: string, saveKey?: string | null, value?: string | boolean | null) {\n saveKey = saveKey || name;\n //console.log(`A - setKey$ for ${this.definition.id} - A - ${saveKey} - ${JSON.stringify(value)}`);\n if (value == null && data != null) {\n //@ts-ignore TODO?\n value = data[name];\n }\n //@ts-ignore TODO?\n this[saveKey] = value;\n //@ts-ignore TODO?\n if (this[saveKey + \"$\"] == null) {\n //@ts-ignore TODO?\n this[saveKey + \"$\"] = new BehaviorSubject(this[saveKey]);\n //@ts-ignore TODO?\n } else if (value != this[saveKey + \"$\"].getValue()) {\n //@ts-ignore TODO?\n this[saveKey + \"$\"].next(this[saveKey]);\n }\n //console.log(`Z - setKey$ for ${this.definition.id} - Z - ${saveKey} - ${JSON.stringify(value)}`);\n }\n\n initChildren(data: TFormItem) {\n //@ts-ignore TODO\n this.children = (this.definition.children || []).map((childDefinition, index) => {\n const childData = data ? (data.children && data.children.length > index ? data.children[index] : ({} as FormItem)) : null;\n return buildElement(this, childData!, childDefinition, this.calculationContext);\n });\n this._children$.next(this.children);\n }\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolveCalculation(id: string, legacyCalc?: any, debug?: boolean): Observable<string[]> {\n if (id == null && legacyCalc == null) {\n return from([[]]);\n }\n if (_resolveCalculation == null) {\n _resolveCalculation = import(/* webpackChunkName: \"CalculationDirect\", webpackPrefetch: true */ \"../../lib/calculations.direct\");\n }\n const calculation = this.definition.settings.calculations[id] || legacyCalc;\n if (calculation == null) {\n return from([[]]);\n }\n const func = _resolveCalculation!.then(module => module.resolveCalculation(calculation, this, debug)) as Promise<() => Observable<string[]>>;\n return combineLatest([from(func), this.fixedCalculationResults$]).pipe(\n switchMap(([result, fixedCalculationResults]) => {\n if (fixedCalculationResults != null && id in fixedCalculationResults) {\n return from([fixedCalculationResults[id]]);\n } else {\n return result();\n }\n }),\n );\n }\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n async invokeAsync<TResult>(type: string, data: string, adjuster?: (a: InvokeBody) => InvokeBody) {\n const formNode = this.getRoot() as FormDef;\n const url = await this.calculationContext.urlFetcher(\"invokeDraft\", { formId: formNode.formId! });\n let postData: InvokeBody = {\n formName: formNode.formName,\n formVersion: formNode.formVersion,\n formHash: formNode.formHash,\n segment: null!,\n skipForm: true,\n noWrite: true,\n asAdmin: this.calculationContext.adminReview || false, // TODO\n inPreview: this.calculationContext.adminPreview || false, // TODO\n testMode: this.calculationContext.testMode || false, // TODO\n target: this.id,\n targetPathArray: this.getElementPathIndexFromRoot(),\n type: type,\n data: data,\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n };\n if (adjuster != null) {\n postData = adjuster(postData);\n }\n const resp = await this.calculationContext.fetchXsrf(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(postData),\n });\n const outerResult = await resp.json();\n const result = JSON.parse(outerResult.Result) as TResult;\n return result;\n }\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolveCalculationPromiseBool(id: string, legacyCalc?: any, debug?: boolean) {\n const result = this.resolveCalculation(id, legacyCalc, debug);\n return combineLatest([result, _resolveCalculation])\n .pipe(\n //@ts-ignore\n map(([value, module]) => {\n //@ts-ignore\n return value.reduce((a, i) => a || module.parseBool(i) === 1, false);\n }),\n first(),\n )\n .toPromise();\n }\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolveCalculationPromise(id: string, legacyCalc?: any, debug?: boolean) {\n return this.resolveCalculation(id, legacyCalc, debug).pipe(first()).toPromise();\n }\n\n getVirtualContext$(): Observable<string[]> {\n return this.parentElement != null ? this.parentElement.getVirtualContext$() : from([[]]);\n }\n\n getCalculation(id: string, fallback: unknown) {\n throw new Error();\n }\n\n effectiveExtraData$(type: string, fallbackCalculation: (extraCacheKey$?: Observable<string>) => Observable<string[] | null>) {\n return fallbackCalculation();\n }\n\n visible$(): Observable<boolean> {\n if (this.parentElement != null) {\n return this.parentElement.visible$();\n } else {\n return from([true]);\n }\n }\n\n effectiveHiddenValueMode(): HiddenValueMode {\n if (((this.definition.settings as IHiddenValueModeSettings).hiddenValueMode ?? HiddenValueMode.Inherit) == HiddenValueMode.Inherit) {\n if (this.parentElement != null) {\n return this.parentElement.effectiveHiddenValueMode();\n } else {\n return HiddenValueMode.Blank;\n }\n } else {\n return (this.definition.settings as IHiddenValueModeSettings).hiddenValueMode!;\n }\n }\n\n setData(data: FormItem | null, excludeChildren?: boolean) {\n this.vmId = this.vmId || generateGuid();\n this.stub = data == null;\n if (data != null) {\n this.comments = data.comments;\n this.history = data.history;\n this.issues = data.issues ?? [];\n this.fixedCalculationResults = data.fixedCalculationResults;\n this.fixedCalculationResults$.next(this.fixedCalculationResults);\n }\n if (!excludeChildren) {\n this.children.forEach((child, index) => {\n if (data == null || (data.children && data.children.length > index)) {\n child.setData(data == null ? null : data.children[index]);\n }\n });\n }\n }\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n getData(excludeChildren?: boolean): TFormItem | null {\n if (this.stub) {\n return null;\n }\n const valid$ = this.valid$();\n const item = {} as TFormItem;\n item.children = excludeChildren ? null! : this.children.map(c => c.getData(false)!);\n item.id = this.id;\n //@ts-expect-error\n item.typeName = this.typeName;\n item.valid = valid$ != null && (valid$ as BehaviorSubject<boolean>).getValue != null ? (valid$ as BehaviorSubject<boolean>).getValue() : true;\n return item;\n }\n\n getCustomPageNav(): BaseElementDefBase[] {\n return this.children.filter(i => i != null).reduce((a, c) => a.concat(c.getCustomPageNav()), [] as BaseElementDefBase[]);\n }\n\n hasCustomPageNav() {\n return this.getCustomPageNav().length > 0;\n }\n\n getLabel() {\n //@ts-expect-error\n return this.definition.settings.shortLabel || this.definition.settings.label || this.definition.settings.displayLabel || this.definition.settings.adminDisplayLabel;\n }\n\n getElementByVmId(vmId: string): BaseElementDefBase | null {\n if (this.vmId == vmId) {\n return this;\n }\n let result = null;\n this.children\n .filter(i => i != null)\n .some(v => {\n result = v.getElementByVmId(vmId);\n return result != null;\n });\n return result;\n }\n\n getElementPathByVmId(vmId: string) {\n if (this.vmId == vmId) {\n return [this];\n }\n let result = null;\n this.children\n .filter(i => i != null)\n .some(v => {\n result = v.getElementPathByVmId(vmId);\n return result != null;\n });\n if (result == null) {\n return null;\n }\n return [this].concat(result);\n }\n\n getElementPathIndexFromRoot() {\n const result = [];\n let el = this as BaseElementDefBase; // eslint-disable-line @typescript-eslint/no-this-alias\n while (el.parentElement != null) {\n result.push(el.parentElement.children.indexOf(el));\n el = el.parentElement;\n }\n result.reverse();\n return result;\n }\n\n getElementsByFilter2<T extends BaseElementDefBase>(func: (el: BaseElementDefBase) => el is T): T[] {\n return this.getElementsByFilter(func) as T[];\n }\n\n getElementsByFilter(func: (el: BaseElementDefBase) => boolean) {\n const result = [] as BaseElementDefBase[];\n this._getElementsByFilter(func, result);\n return result;\n }\n\n _getElementsByFilter(func: (el: BaseElementDefBase) => boolean, result: BaseElementDefBase[]) {\n if (func.apply(this, [this])) {\n result.push(this);\n }\n this.children.filter(i => i != null).forEach(child => child._getElementsByFilter(func, result));\n }\n\n /** @returns {Observable<BaseElementDef[]>} */\n getElementsById$(id: string, contextVmId?: string) {\n const result = this._getElementsById$(id, contextVmId);\n if (result.length == 0) {\n return from([[]]);\n }\n //@ts-expect-error TODO?\n const observable = result.filter(i => i.pipe) as Observable<BaseElementDefBase[]>[];\n //@ts-expect-error TODO?\n const nonObservable = result.filter(i => !i.pipe) as BaseElementDefBase[];\n if (nonObservable.length > 0) {\n observable.push(from([nonObservable]));\n }\n return observable.length == 0 ? from([[]]) : observable.length == 1 ? observable[0] : combineLatest(observable).pipe(map(i => flattenArrays(i)));\n }\n\n getSegmentView(segment: string | null, triggerKey: string | null): BaseElementDefBase {\n if (segment == null) {\n return this;\n }\n return new SegmentView(this, segment, triggerKey) as unknown as BaseElementDefBase;\n }\n\n getValuesById$(id: string, contextVmId: string) {\n return this.getElementsById$(id, contextVmId).pipe(switchMap(elements => combineLatest(elements.map(i => (i as unknown as BaseControlDefBase).effectiveValueList$())).pipe(map(arraysOfValues => flattenArrays(arraysOfValues)))));\n }\n\n _getElementsById$(id: string, contextVmId?: string): (Observable<BaseElementDefBase[]> | BaseElementDefBase)[] {\n if (this.id == id) {\n return [this];\n }\n if (this.children.filter(i => i != null).length == 0) {\n return [];\n }\n return flattenArrays(this.children.filter(i => i != null).map(child => child._getElementsById$(id, contextVmId)));\n }\n\n valid$(includeUnedited?: boolean, excludeChildren?: boolean): Observable<boolean> {\n //const oid = generateGuid();\n //console.log(`${oid} - Starting valid$ for ${this.definition.id}, ${includeUnedited}, ${excludeChildren}`);\n includeUnedited = !!includeUnedited;\n excludeChildren = !!excludeChildren;\n if (this._baseElementValid$ == null) {\n this._baseElementValid$ = {\n true: { true: undefined, false: undefined },\n false: { true: undefined, false: undefined },\n };\n }\n //@ts-expect-error\n if (this._baseElementValid$[includeUnedited][excludeChildren] == null) {\n if (excludeChildren) {\n //@ts-expect-error\n this._baseElementValid$[includeUnedited][excludeChildren] = from([true]);\n } else {\n const result = this._children$.pipe(\n switchMap(children =>\n children.filter(i => i != null).length == 0\n ? from([[]])\n : combineLatest(\n children\n .filter(i => i != null)\n .map(c => {\n return combineLatest(c.valid$(includeUnedited, excludeChildren), this._validateChild$(c)).pipe(\n //tap(i => { debugger; }),\n map(([valid, validateChild]) => (validateChild ? valid : true)),\n );\n }),\n ),\n ),\n map(results => results.every(i => i)),\n );\n const finalResult = result.pipe(share({ resetOnRefCountZero: true, connector: () => new ReplaySubject(1) }));\n //@ts-expect-error\n this._baseElementValid$[includeUnedited][excludeChildren] = finalResult;\n }\n }\n //@ts-expect-error\n return this._baseElementValid$[includeUnedited][excludeChildren]; //.pipe(finalize(() => console.log(`${oid} - Finishing valid$ for ${this.definition.id}, ${includeUnedited}, ${excludeChildren}`)));\n }\n\n errors$() {\n return from([[] as string[]]);\n }\n\n customErrorIds$() {\n return this._customErrorIds$.pipe(map(i => (i.length > 0 ? i.join(\" \") : \"\")));\n }\n\n async firstInvalidElement(includeUnedited?: boolean): Promise<BaseElementDefBase | null> {\n const [thisValid, thisHasCustomErrors] = await Promise.all([this.valid$(includeUnedited, true).pipe(first()).toPromise(), this.customErrorIds$().pipe(first()).toPromise()]);\n if ((!thisValid || !isNullOrWhitespace(thisHasCustomErrors)) && this.isFocusable) {\n return this;\n }\n for (const child of this.children) {\n const childFirst = await child.firstInvalidElement();\n if (childFirst != null) {\n return childFirst;\n }\n }\n return null;\n }\n\n firstFocusableElement(): BaseElementDefBase | null {\n if (this.isFocusable) {\n return this;\n }\n for (const child of this.children) {\n const childFirst = child.firstFocusableElement();\n if (childFirst != null) {\n return childFirst;\n }\n }\n return null;\n }\n\n /**\n * Gets errors of child elements\n */\n async descendentsErrors(): Promise<string[]> {\n const totalErrors = [];\n const thisErrors = await this.errors$().pipe(first()).toPromise();\n if (thisErrors != null && thisErrors.length > 0) {\n totalErrors.push(thisErrors);\n }\n for (const child of this.children) {\n const errors = await child.descendentsErrors();\n if (errors != null && errors.length > 0) {\n totalErrors.push(errors);\n }\n }\n return flattenArrays(totalErrors);\n }\n\n edited$() {\n return this._edited$;\n }\n\n markEdited() {\n this._edited$.next(true);\n }\n\n /** @returns {Observable<boolean>} */\n _validateChild$(child: BaseElementDefBase): Observable<boolean> {\n return this.parentElement != null ? this.parentElement._validateChild$(this) : from([true]);\n }\n\n /** @returns {Observable<boolean>} */\n _validateUneditedChild$(child: BaseElementDefBase): Observable<boolean> {\n return this.parentElement != null ? this.parentElement._validateUneditedChild$(this) : from([true]);\n }\n\n /** @returns {Observable<boolean>} */\n _validateUnedited$(): Observable<boolean> {\n return this.parentElement != null ? this.parentElement._validateUneditedChild$(this) : from([true]);\n }\n\n _maskedValue$(): Observable<string[]> {\n return this.parentElement != null ? this.parentElement._maskedValue$() : from([[]]);\n }\n\n _effectiveLabelText$(): Observable<string | null | undefined> {\n return this.parentElement != null ? this.parentElement._effectiveLabelText$() : from([]);\n }\n\n /** @returns {BaseElementDef} */\n getRoot(): BaseElementDefBase {\n return this.parentElement != null ? this.parentElement.getRoot() : this;\n }\n\n markElementAsBase() {\n this.isBase = true;\n this.children\n .filter(i => i != null)\n .forEach(child => {\n child.markElementAsBase();\n });\n }\n\n linkBaseElement(baseElement: BaseElementDefBase | null) {\n // TODO does foreach need special handling?\n if (baseElement != null && ((this.definition.type == \"FormDef\" && baseElement.definition.type == \"FormDef\") || (this.definition.type == \"FormTemplateDef\" && baseElement.definition.type == \"FormTemplateDef\") || (this.id != null && this.id == baseElement.id))) {\n baseElement.vmId = this.vmId;\n baseElement.baseLink = this;\n this.baseLink = baseElement;\n this.baseChanges = this.diffBaseElement();\n }\n this.isBase = false;\n this.children\n .filter(i => i != null)\n .forEach(child => {\n const matchedElement = baseElement == null ? [] : baseElement.children.filter(i => i != null).filter(i => (child.definition.type == \"FormTemplateDef\" && i.definition.type == \"FormTemplateDef\") || (i.id != null && i.id == child.id));\n child.linkBaseElement(matchedElement.length > 0 ? matchedElement[0] : null);\n });\n if (baseElement != null) {\n baseElement.isBase = true;\n baseElement.children\n .filter(i => i != null)\n .filter(i => !this.children.filter(i => i != null).some(j => j.id == i.id))\n .forEach(child => {\n child.markElementAsBase();\n });\n }\n }\n\n baseChangeType(): ChangeType {\n if (this.baseLink == null) {\n return this.isBase ? \"deleted\" : \"new\";\n }\n if (this.baseChanges != null && this.baseChanges.length > 0) {\n return \"changed\";\n }\n return null;\n }\n\n baseChangeRecursive(): ChangeType {\n let changeType = this.baseChangeType();\n if (changeType == null) {\n if (this.children.length != this.baseLink!.children.length || this.children.some(child => child.baseChangeRecursive() != null) || this.baseLink!.children.some(child => child.baseChangeType() != null)) {\n changeType = \"changed\";\n }\n }\n return changeType;\n }\n\n diffBaseElement() {\n if (this.baseLink == null) {\n return [];\n }\n const result = [] as Change[];\n const baseSettings = this.baseLink.definition.settings;\n const currentSettings = this.definition.settings;\n function compare(prefix: string | null, baseSettings: unknown, currentSettings: unknown) {\n function compareKey(prefixedKey: string | null, baseSetting: unknown, currentSetting: unknown) {\n if (Array.isArray(baseSetting == null ? currentSetting : baseSetting)) {\n const baseSettingA: unknown[] = (baseSetting as unknown[]) || [];\n const currentSettingA: unknown[] = (currentSetting as unknown[]) || [];\n if (baseSettingA.length !== currentSettingA.length) {\n result.push({ key: prefixedKey + \".length\", baseSetting: baseSettingA.length, currentSetting: currentSettingA.length });\n }\n for (let index = 0; index < Math.max(baseSettingA.length, currentSettingA.length); index++) {\n compare(prefixedKey + \"[\" + index + \"]\", baseSettingA[index], currentSettingA[index]);\n }\n } else if ((baseSetting == null ? typeof currentSetting : typeof baseSetting) == \"object\") {\n compare(prefixedKey, baseSetting, currentSetting);\n } else {\n if (JSON.stringify(baseSetting) !== JSON.stringify(currentSetting)) {\n result.push({ key: prefixedKey, baseSetting, currentSetting });\n }\n }\n }\n if ((baseSettings == null ? typeof currentSettings : typeof baseSettings) == \"object\") {\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n const baseSettingsA: Record<any, unknown> = (baseSettings as Record<any, unknown>) || {};\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n const currentSettingsA: Record<any, unknown> = (currentSettings as Record<any, unknown>) || {};\n distinct(Object.keys(baseSettingsA).concat(Object.keys(currentSettingsA))).forEach(key => {\n const prefixedKey = prefix == null ? key : key != null ? prefix + \".\" + key : prefix;\n const baseSetting = baseSettings ? baseSettingsA[key] : null;\n const currentSetting = currentSettings ? currentSettingsA[key] : null;\n compareKey(prefixedKey, baseSetting, currentSetting);\n });\n } else {\n compareKey(prefix, baseSettings, currentSettings);\n }\n }\n compare(null, baseSettings, currentSettings);\n return result;\n }\n}\n\nfunction splitValidationList(text: string) {\n if (text == null || text.length == 0) {\n return [];\n }\n return text.match(/(\\\\.|[^\\\\\\\\`])+/g)!.map(function (v) {\n return v.replace(/\\\\`/g, \"`\").replace(/\\\\\\\\/g, \"\\\\\");\n });\n}\n\nfunction toUpperCaseList(list: string[]) {\n return list.map(function (v) {\n return toUpperCase(v);\n });\n}\n\nfunction toUpperCase(v: string) {\n return v && v.toUpperCase ? v.toUpperCase().trim() : v;\n}\n\nfunction buildFullMatcher<T>(matcher: (a: T, b: T) => boolean, all: boolean, match: T, matchList: T[]) {\n return function (v: T) {\n if (match) {\n if (matcher(v, match)) {\n if (!all) {\n return true;\n }\n } else if (all) {\n return false;\n }\n }\n let result = all;\n matchList.some(function (v2) {\n result = matcher(v, v2);\n return all ? !result : result;\n });\n return result;\n };\n}\nfunction dataMatch(matcher: (a: string, b: string) => boolean, all: boolean) {\n return function (dataList: string[], match: string, matchList: string[]) {\n if (dataList.length == 0) {\n return all;\n }\n const convert = function (v: string) {\n return v == null ? \"\" : v;\n };\n const matcher3 = function (i: string, j: string) {\n return matcher(convert(i), convert(j));\n };\n const matcher2 = buildFullMatcher(matcher3, all, match, matchList);\n let result = all;\n dataList.some(function (v) {\n result = matcher2(v);\n return all ? !result : result;\n });\n return result;\n };\n}\nfunction numberMatch(matcher: (a: number, b: number) => boolean) {\n return function (dataList: string[], match: string, matchList: string[]) {\n const matcher2 = buildFullMatcher(matcher, true, parseFloat(match), matchList.map(parseFloat));\n /** @type {string | boolean} */\n let result: boolean | \"dependency-mismatch\" = true;\n dataList.forEach(function (v) {\n const dataNumber = parseFloat(v);\n if (isNaN(dataNumber)) {\n result = \"dependency-mismatch\";\n return false;\n }\n result = result && matcher2(dataNumber);\n return result;\n });\n return result;\n };\n}\n\nfunction valueMatch(dataList: string[], match: string | null, matchList: string[], matchType: string) {\n const matcher =\n matchType == \"Equals\"\n ? dataMatch(function (i, j) {\n return i == j;\n }, false)\n : matchType == \"NotEquals\"\n ? dataMatch(function (i, j) {\n return i != j;\n }, true)\n : matchType == \"LessThan\"\n ? numberMatch(function (i, j) {\n return i < j;\n })\n : matchType == \"LessThanOrEqualTo\"\n ? numberMatch(function (i, j) {\n return i <= j;\n })\n : matchType == \"GreaterThan\"\n ? numberMatch(function (i, j) {\n return i > j;\n })\n : matchType == \"GreaterThanOrEqualTo\"\n ? numberMatch(function (i, j) {\n return i >= j;\n })\n : null;\n return matcher!(dataList, match!, matchList);\n}\n\nfunction isValueSet(values: string[]) {\n return values != null && values.some(value => value != null && !/^\\s*$/.test(value));\n}\n\nfunction formatIfOtherMessage(rules: Record<string, string>, otherValue: string[], ruleKey: string) {\n const message = rules[ruleKey];\n const matches = toUpperCaseList(splitValidationList(rules[`${ruleKey}-matches`]));\n const matchLabels = splitValidationList(rules[`${ruleKey}-matchlabels`]);\n const otherMatch = otherValue.filter(v => matches.some(m => m == toUpperCase(v), matches));\n const index = matches.indexOf(toUpperCase(otherMatch[0]));\n const formattedMessage = message.replace(\"{0}\", matchLabels[index]);\n return formattedMessage;\n}\n\nfunction flattenArrays<T>(arrays: T[][]): T[] {\n return Array.prototype.concat.apply([], arrays);\n}\n\n//@ts-expect-error\nexport class SegmentView extends BaseElementDef<IElementSettings, FormDefinitionItem<IElementSettings>, SegmentView> {\n declare wrapped: BaseElementDefBase;\n declare segment: string | null;\n declare triggerKey: string | null;\n constructor(wrapped: BaseElementDefBase, segment: string | null, triggerKey: string | null) {\n super(wrapped.parentElement, { comments: wrapped.comments, history: wrapped.history, issues: wrapped.issues, segment, triggerKey, children: wrapped.children as unknown as FormItem[] } as unknown as SegmentView, wrapped.definition, wrapped.calculationContext);\n this.wrapped = wrapped;\n this.segment = segment;\n this.triggerKey = triggerKey;\n }\n\n initChildren(data: SegmentView) {\n this.children = (data.children as unknown as BaseElementDefBase[])\n .filter(i => i != null)\n .filter(i => (i.definition.type == \"PageDef\" || i.definition.type == \"CaptchaControlDef\" ? (i.definition.settings as PageSettings).segment == data.segment : i.definition.type == \"StateFormDef\" ? i.id == data.segment : i.definition.type == \"SubmitTriggerDef\" ? data.triggerKey == null || (i.definition.settings as SubmitTriggerSettings).triggerKey == data.triggerKey : i.definition.type == \"FormReminderDef\" ? false : i.definition.type == \"FormExpireDef\" ? false : true))\n .map(i => new SegmentView(i, (data as unknown as SegmentView).segment, (data as unknown as SegmentView).triggerKey)) as unknown as BaseElementDefBase[];\n this._children$.next(this.children);\n }\n\n _getElementsByFilter(func: (el: BaseElementDefBase) => boolean, result: BaseElementDefBase[]) {\n if (this.wrapped.definition.type == \"WorkflowSwitchDef\") {\n this.wrapped._getElementsByFilter(func, result);\n return;\n }\n if (func.apply(this.wrapped, [this.wrapped])) {\n result.push(this.wrapped);\n }\n this.children.filter(i => i != null).forEach(child => child._getElementsByFilter(func, result));\n }\n\n getElementByVmId(vmId: string) {\n if (this.wrapped.definition.type == \"WorkflowSwitchDef\") {\n return this.wrapped.getElementByVmId(vmId);\n }\n if (this.wrapped.vmId == vmId) {\n return this.wrapped;\n }\n let result = null;\n this.children\n .filter(i => i != null)\n .some(v => {\n result = v.getElementByVmId(vmId);\n return result != null;\n });\n return result;\n }\n _getElementsById$(id: string, contextVmId?: string): (Observable<BaseElementDefBase[]> | BaseElementDefBase)[] {\n if (this.wrapped.definition.type == \"WorkflowSwitchDef\") {\n return this.wrapped._getElementsById$(id, contextVmId);\n }\n if (this.wrapped.id == id) {\n return [this.wrapped];\n }\n if (this.children.filter(i => i != null).length == 0) {\n return [];\n }\n return flattenArrays(this.children.filter(i => i != null).map(child => child._getElementsById$(id, contextVmId)));\n }\n}\n\nexport type BaseControlDefBase = BaseControlDef<IControlSettings, FormDefinitionItem<IControlSettings>, FormControlItem, string | string[]>;\n\nexport class BaseControlDef<TSetting extends IControlSettings, TDef extends FormDefinitionItem<TSetting>, TFormItem extends FormBaseControlItem<TValue>, TValue> extends BaseElementDef<TSetting, TDef, TFormItem> {\n declare _value: TValue;\n declare _value$: BehaviorSubject<TValue>;\n declare _effectiveValueList$: Observable<string[]>;\n declare _hasValue: boolean;\n declare _hasValue$: BehaviorSubject<boolean>;\n declare autoEdit: boolean;\n declare _baseControlValid$: { [k in \"true\" | \"false\"]: { [k in \"true\" | \"false\"]: undefined | Observable<boolean> } };\n declare _baseControlErrors$: Observable<string[]> | null;\n declare _effectiveLabel$: Observable<string | null> | null;\n declare clientValidateRules: Record<string, string>;\n declare clientValidateRules$: BehaviorSubject<Record<string, string>>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: TFormItem, definitionData: TDef, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this._value = (elementData == null ? this.getValueFromDependencies() : elementData.value) as TValue;\n this._value$ = this._value$ || new BehaviorSubject(this._value);\n //console.log(`${definitionData.settings.label} - ${elementData?.hasValue}`);\n this._hasValue = elementData == null || Object.keys(elementData).length == 0 ? this.getValueFromDependencies() != null : elementData.hasValue;\n this._hasValue$ = this._hasValue$ || new BehaviorSubject(this._hasValue);\n //this._effectiveValue$ = this._value.pipe(this.getEffectivePipe());\n this.clientValidateRules$ = this.clientValidateRules$ || new BehaviorSubject(this.clientValidateRules || {});\n this.autoEdit = true;\n }\n setData(data: TFormItem | null, excludeChildren?: boolean) {\n super.setData(data, excludeChildren);\n this.setKey(data, \"value\", \"_value\");\n this.setKey(data, \"hasValue\", \"_hasValue\");\n this.setKey(data, \"clientValidateRules\");\n }\n getValueFromDependencies() {\n const indexList = this.calculationContext.rootElement?.dependenciesIndex;\n const index = indexList == null || indexList.length == 0 ? 0 : indexList[0];\n const dependencies = (this.calculationContext.rootElement?.dependencies ?? {}) as Record<string, TValue[]>;\n if (this.id! in dependencies) {\n return dependencies[this.id!][index];\n } else {\n return null;\n }\n }\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n setKey(data: TFormItem | null, name: string, saveKey?: string | null, value?: any | null) {\n if (value == null && data == null && name == \"value\") {\n value = this.getValueFromDependencies();\n }\n if (value == null && data == null && name == \"hasValue\") {\n value = this.getValueFromDependencies() != null;\n }\n super.setKey(data, name, saveKey, value);\n }\n getData(excludeChildren?: boolean) {\n const result = super.getData(excludeChildren);\n if (result != null) {\n //@ts-expect-error\n result.value = this._value == null ? \"\" : this._value;\n //@ts-expect-error\n result.valueSet = this._hasValue;\n }\n return result;\n }\n valid$(includeUnedited?: boolean, excludeChildren?: boolean): Observable<boolean> {\n includeUnedited = !!includeUnedited;\n excludeChildren = !!excludeChildren;\n //const oid = generateGuid();\n //console.log(`${oid} - Starting C valid$ for ${this.definition.id}`);\n if (this._baseControlValid$ == null) {\n this._baseControlValid$ = {\n true: { true: undefined, false: undefined },\n false: { true: undefined, false: undefined },\n };\n }\n if (this._baseControlValid$[includeUnedited.toString() as \"true\" | \"false\"][excludeChildren.toString() as \"true\" | \"false\"] == null) {\n const valid$ = super.valid$(includeUnedited, excludeChildren);\n const hasErrors$ = this.errors$().pipe(map(i => i.length == 0));\n const result = combineLatest(valid$, this.edited$(), this._validateUnedited$(), hasErrors$).pipe(map(([superValid, edited, validateUnedited, thisValid]) => superValid && (edited || includeUnedited || validateUnedited ? thisValid : true)));\n this._baseControlValid$[includeUnedited.toString() as \"true\" | \"false\"][excludeChildren.toString() as \"true\" | \"false\"] = result.pipe(share({ resetOnRefCountZero: true, connector: () => new ReplaySubject(1) }));\n }\n return this._baseControlValid$[includeUnedited.toString() as \"true\" | \"false\"][excludeChildren.toString() as \"true\" | \"false\"]!; //.pipe(finalize(() => console.log(`${oid} - Finishing C valid$ for ${this.definition.id}`)));\n }\n effectiveLabel$() {\n if (this._effectiveLabel$ == null) {\n if ((this.definition.settings as unknown as { labelCalculationId: string }).labelCalculationId) {\n this._effectiveLabel$ = this.resolveCalculation((this.definition.settings as unknown as { labelCalculationId: string }).labelCalculationId).pipe(\n map(i => (i.length ? i[0] : null)),\n share({ resetOnRefCountZero: true, connector: () => new BehaviorSubject(null as null | string) }),\n );\n } else {\n this._effectiveLabel$ = from([this.definition.settings.label ?? null]);\n }\n }\n return this._effectiveLabel$!;\n }\n /** @returns {Observable<string>} */\n effectiveShortLabel$(): Observable<string | null> {\n if (this.definition.settings.shortLabel) {\n return from([this.definition.settings.shortLabel]);\n } else {\n return this.effectiveLabel$();\n }\n }\n /** @returns {Observable<string>} */\n effectiveLabelText$(): Observable<string | null | undefined> {\n return combineLatest(this.effectiveShortLabel$(), this.effectiveLabel$()).pipe(map(([s, l]) => stringCoalesce(l, s, null)));\n }\n setValue(value: TValue) {\n //console.log(`A - setValue$ for ${this.definition.id} - Z - ${JSON.stringify(value)}`);\n const edited = this.autoEdit && this._value != value;\n this._value = value;\n if (this._value$.getValue() != value) {\n this._value$.next(value);\n }\n this._hasValue = true;\n if (!this._hasValue$.getValue()) {\n this._hasValue$.next(true);\n }\n if (edited) {\n this.markEdited();\n }\n //console.log(`Z - setValue$ for ${this.definition.id} - Z - ${JSON.stringify(value)}`);\n }\n value() {\n return this._value;\n }\n value$() {\n return this._value$;\n }\n /** @returns {Observable<string[]>} */\n valueList$() {\n return this._value$.pipe(map(value => (value == null ? [] : Array.isArray(value) ? value : [value])));\n }\n effectiveValue$() {\n throw new Error(\"NYI\");\n }\n hasValue$() {\n return this._hasValue$;\n }\n /** @returns {Observable<string[]>} */\n defaultValue$() {\n if (this.definition.settings.defaultValueCalculationId) {\n return this.resolveCalculation(this.definition.settings.defaultValueCalculationId).pipe(map(i => i.filter(i => !isNullOrWhitespace(i))));\n } else {\n const defaultV = this.definition.settings.defaultValue;\n if (isNullOrWhitespace(defaultV)) {\n return from([[]]);\n } else {\n return from([[defaultV]]);\n }\n }\n }\n\n /** @returns {Observable<string[]>} */\n effectiveValueList$() {\n //const oid = generateGuid();\n //console.log(`${oid} - Starting effectiveValueList$ for ${this.definition.id}`);\n if (this._effectiveValueList$ == null) {\n const pipes = [\n //tap(v => {\n // console.log(`0 - Redoing effectiveValueList$ for ${this.definition.id} - Z - ${JSON.stringify(v)}`);\n //}),\n map((value: string[]) => (value == null ? [] : Array.isArray(value) ? value : [value]).filter(i => !isNullOrWhitespace(i))),\n //tap(v => {\n // console.log(`1 - Redoing effectiveValueList$ for ${this.definition.id} - Z - ${JSON.stringify(v)}`);\n //}),\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n ] as any[];\n pipes.push(\n switchMap(value => {\n //console.log(`A - Redoing effectiveValueList$ for ${this.definition.id} - A - ${JSON.stringify(value)}`);\n const effectiveHiddenValueMode = this.effectiveHiddenValueMode();\n const getValue = () =>\n this._hasValue$.pipe(\n switchMap(hasValue => {\n //console.log(`C - Redoing effectiveValueList$ for ${this.definition.id} - C - ${hasValue}`);\n if (hasValue) {\n return from([value]);\n } else {\n return this.defaultValue$();\n }\n }),\n );\n if (effectiveHiddenValueMode == HiddenValueMode.EnteredValue) {\n return getValue();\n } else {\n return this.visible$().pipe(\n switchMap(v => {\n //console.log(`B - Redoing effectiveValueList$ for ${this.definition.id} - B - ${v}`);\n if (v) {\n return getValue();\n } else if (effectiveHiddenValueMode == HiddenValueMode.Blank) {\n return from([[]]);\n } else if (effectiveHiddenValueMode == HiddenValueMode.DefaultValue) {\n return this.defaultValue$();\n } else {\n debugger;\n return from([[]]);\n }\n }),\n );\n }\n }),\n );\n //pipes.push(tap(v => {\n // console.log(`3 - Redoing effectiveValueList$ for ${this.definition.id} - Z - ${JSON.stringify(v)}`);\n //}));\n const source$ = this._value$;\n //@ts-ignore TODO?\n const sourceTransformed$ = source$.pipe.apply(source$, pipes) as Observable<string[]>; //eslint-disable-line prefer-spread\n this._effectiveValueList$ = sourceTransformed$.pipe(\n //tap(v => {\n // console.log(`4 - Redoing effectiveValueList$ for ${this.definition.id} - Z - ${JSON.stringify(v)}`);\n //}),\n share({ resetOnRefCountZero: true, connector: () => new ReplaySubject(1) }),\n //tap(v => {\n // console.log(`5 - Redoing effectiveValueList$ for ${this.definition.id} - Z - ${JSON.stringify(v)}`);\n //}),\n );\n }\n //@ts-ignore\n return this._effectiveValueList$; //.pipe(finalize(() => console.log(`${oid} - Finishing effectiveValueList$ for ${this.definition.id}`)));\n }\n effectiveValueList(): Promise<string[]> {\n return this.effectiveValueList$()\n .pipe(first(null, [] as string[]))\n .toPromise() as Promise<string[]>;\n }\n rules$() {\n return this.clientValidateRules$.pipe(map(rules => Object.assign({} as Record<string, string>, rules == null ? this.definition.clientValidateRules : rules)));\n }\n errors$(): Observable<string[]> {\n //const oid = generateGuid();\n //console.log(`${oid} - Starting errors$ for ${this.definition.id}`);\n if (this._baseControlErrors$ == null) {\n const result = this.rules$().pipe(\n switchMap(rules => {\n if (Object.keys(rules).length == 0) {\n return from([[] as string[]]);\n }\n const effectiveValueList$ = this.effectiveValueList$();\n const result$s: Observable<string[]>[] = [];\n const ruleKeys = Object.keys(rules);\n function simpleValidation(func: (a: string[]) => string[] | undefined) {\n result$s.push(\n effectiveValueList$.pipe(\n map(func),\n map(i => (i == undefined ? [] : i)),\n ),\n );\n }\n function ifOtherMatchesValidation(this: BaseControlDef<TSetting, TDef, TFormItem, TValue>, rules: Record<string, string>, ruleKey: string, func: (valueList: string[], overValue: string[]) => string[] | undefined) {\n const otherElementResult$ = ifOtherMatchesSubject.apply(this, [rules, ruleKey]);\n result$s.push(\n combineLatest([otherElementResult$, effectiveValueList$]).pipe(\n map(([otherElementResult, valueList]) => {\n const [otherValue, isMatch] = otherElementResult;\n if (isMatch) {\n const result = func(valueList, otherValue);\n return result == undefined ? [] : result;\n }\n return [];\n }),\n ),\n );\n }\n\n function ifOtherMatchesSubject(this: BaseControlDef<TSetting, TDef, TFormItem, TValue>, rules: Record<string, string>, ruleKey: string) {\n const matchValues = splitValidationList(rules[`${ruleKey}-matches`]);\n const otherElementResult$ = this.calculationContext.rootElement!.getValuesById$(rules[`${ruleKey}-other`], this.vmId).pipe(map(otherValue => [otherValue, valueMatch(otherValue, null, matchValues.length == 0 ? [\"\"] : matchValues, \"Equals\")] as const));\n return otherElementResult$;\n }\n\n for (let index = 0; index < ruleKeys.length; index++) {\n const ruleKey = ruleKeys[index];\n const message = rules[ruleKey];\n switch (ruleKey) {\n // cspell:ignore requiredifotherhasvalue, requiredfileifotherhasvalue, requireexactcountifotherhasvalue, requireoneifotherhasvalue, requireoneifotherhasvalue, requiredvalueifotherhasvalue, requiredvalueifotherhasvalue, requiredvalueifotherhasvalue, requiredvalueifotherhasvalue\n case \"data-val-serveronlyerror\": {\n simpleValidation(values => {\n const matchValues = splitValidationList(rules[\"data-val-serveronlyerror-values\"]);\n if (valueMatch(values, null, matchValues.length == 0 ? [\"\"] : matchValues, \"Equals\") || (matchValues.length == 0 && values.length == 0)) {\n return [message];\n }\n });\n break;\n }\n case \"data-val-required\": {\n simpleValidation(values => {\n if (!isValueSet(values)) {\n return [message];\n }\n });\n break;\n }\n case \"data-val-requiredfile\": {\n result$s.push(this.hasValue$().pipe(map(hasValue => (!hasValue ? [message] : []))));\n break;\n }\n case \"data-val-requiredifotherhasvalue\": {\n ifOtherMatchesValidation.apply(this, [\n rules,\n ruleKey,\n (valueList: string[], otherValue: string[]) => {\n if (!isValueSet(valueList)) {\n const formattedMessage = formatIfOtherMessage(rules, otherValue, ruleKey);\n return [formattedMessage];\n }\n },\n ]);\n break;\n }\n case \"data-val-requiredfileifotherhasvalue\": {\n const otherElementResult$ = ifOtherMatchesSubject.apply(this, [rules, ruleKey]);\n result$s.push(\n combineLatest([otherElementResult$, this.hasValue$()]).pipe(\n map(([otherElementResult, hasValue]) => {\n const [otherValue, isMatch] = otherElementResult;\n if (isMatch && !hasValue) {\n const formattedMessage = formatIfOtherMessage(rules, otherValue, ruleKey);\n return [formattedMessage];\n }\n return [];\n }),\n ),\n );\n break;\n }\n case \"data-val-requireexactcountifotherhasvalue\": {\n const counts = splitValidationList(rules[`${ruleKey}-counts`]);\n const others = splitValidationList(rules[`${ruleKey}-others`]);\n const matchValues = splitValidationList(rules[`${ruleKey}-matches`]);\n const otherElementResult$ = combineLatest(others.map(other => this.calculationContext.rootElement!.getValuesById$(other, this.vmId))).pipe(\n map(otherValues => {\n for (let matchIndex = 0; matchIndex < matchValues.length; matchIndex++) {\n for (let dataIndex = 0; dataIndex < otherValues.length; dataIndex++) {\n if (valueMatch(otherValues[dataIndex], null, [matchValues[matchIndex]], \"Equals\")) {\n return [true, matchIndex];\n }\n }\n }\n return [false, null];\n }),\n );\n result$s.push(\n combineLatest([effectiveValueList$, otherElementResult$]).pipe(\n map(([values, otherElementResult]) => {\n const [isMatch, matchIndex] = otherElementResult;\n //@ts-expect-error\n const count = parseInt(counts[matchIndex]);\n if (isMatch && values != null && values.length != count) {\n const message = rules[ruleKey];\n const matchLabels = splitValidationList(rules[`${ruleKey}-matchlabels`]);\n const otherLabels = splitValidationList(rules[`${ruleKey}-otherlabels`]);\n //@ts-expect-error\n const formattedMessage = message.replace(\"{0}\", counts[matchIndex]).replace(\"{1}\", otherLabels[matchIndex]).replace(\"{2}\", matchLabels[matchIndex]);\n return [formattedMessage];\n }\n return [];\n }),\n ),\n );\n break;\n }\n case \"data-val-requireoneifotherhasvalue\": {\n const otherElementResult$ = ifOtherMatchesSubject.apply(this, [rules, ruleKey]);\n const elementsIds = splitValidationList(rules[\"data-val-requireoneifotherhasvalue-elements\"]);\n /** @type {Observable<string[]>} */\n const values$ = combineLatest(elementsIds.map(id => this.calculationContext.rootElement!.getValuesById$(id, this.vmId))).pipe(map(flattenArrays));\n result$s.push(\n combineLatest(values$, otherElementResult$).pipe(\n map(([values, otherElementResult]) => {\n const [otherValue, isMatch] = otherElementResult;\n if (isMatch && isValueSet(values)) {\n const formattedMessage = formatIfOtherMessage(rules, otherValue, ruleKey);\n return [formattedMessage];\n }\n return [];\n }),\n ),\n );\n break;\n }\n case \"data-val-requireone\": {\n const elementsIds = splitValidationList(rules[\"data-val-requireone-elements\"]);\n const values$ = combineLatest(elementsIds.map(id => this.calculationContext.rootElement!.getValuesById$(id, this.vmId))).pipe(map(flattenArrays));\n result$s.push(values$.pipe(map(values => (isValueSet(values) ? [message] : []))));\n break;\n }\n case \"data-val-requireexactcount\": {\n simpleValidation(values => {\n if (values != null && values.length != parseInt(rules[\"data-val-requireexactcount-count\"])) {\n return [message];\n }\n });\n break;\n }\n case \"data-val-requiredvalueifotherhasvalue\": {\n ifOtherMatchesValidation.apply(this, [\n rules,\n ruleKey,\n (valueList: string[], otherValue: string[]) => {\n const matchType = rules[\"data-val-requiredvalueifotherhasvalue-valuematchtype\"];\n const matchValue = rules[\"data-val-requiredvalueifotherhasvalue-value\"];\n const matchList = splitValidationList(rules[\"data-val-requiredvalueifotherhasvalue-valuelist\"]);\n if (!valueMatch(valueList, matchValue, matchList, matchType)) {\n const formattedMessage = formatIfOtherMessage(rules, otherValue, ruleKey);\n return [formattedMessage];\n }\n },\n ]);\n break;\n }\n case \"data-val-requiredvalue\": {\n simpleValidation(values => {\n const matchValue = rules[\"data-val-requiredvalue-value\"];\n const matchList = splitValidationList(rules[\"data-val-requiredvalue-valuelist\"]);\n const matchType = rules[\"data-val-requiredvalue-valuematchtype\"];\n if (!valueMatch(values, matchValue, matchList, matchType)) {\n return [message];\n }\n });\n break;\n }\n case \"data-val-filesize\": {\n const fileSize$ = (this as unknown as { fileSize$: Observable<number | undefined> }).fileSize$;\n if (fileSize$) {\n result$s.push(\n combineLatest(this.hasValue$(), fileSize$).pipe(\n map(([hasValue, fileSize]) => {\n if (hasValue) {\n const maxSize = parseInt(rules[\"data-val-filesize-size\"]);\n if (fileSize != null && fileSize > maxSize) {\n return [message];\n }\n }\n return [];\n }),\n ),\n );\n }\n break;\n }\n case \"data-val-extension\": {\n const fileName$ = (this as unknown as { fileName$: Observable<string | undefined> }).fileName$;\n if (fileName$) {\n result$s.push(\n combineLatest(this.hasValue$(), fileName$).pipe(\n map(([hasValue, fileName]) => {\n if (hasValue) {\n const fileExtensionsStr = rules[\"data-val-extension-extension\"];\n const fileExtensions = toUpperCaseList(fileExtensionsStr == null ? [] : fileExtensionsStr.split(\",\")); // TODO - convert both sides to splitValidationList\n if (fileName != null) {\n const upperFileName = toUpperCase(fileName);\n if (!fileExtensions.some(i => upperFileName.endsWith(\".\" + i))) {\n return [message];\n }\n }\n }\n return [];\n }),\n ),\n );\n }\n break;\n }\n case \"data-val-length\": {\n simpleValidation(values => {\n if (isValueSet(values)) {\n const minLength = parseInt(rules[\"data-val-length-min\"]);\n const maxLength = parseInt(rules[\"data-val-length-max\"]);\n const length = (values[0] + \"\").length;\n if (length < minLength || length > maxLength) {\n return [message];\n }\n }\n });\n break;\n }\n case \"data-val-regex\": {\n simpleValidation(values => {\n if (isValueSet(values)) {\n const regex = rules[\"data-val-regex-pattern\"];\n if (!new RegExp(regex).test(values[0] + \"\")) {\n return [message];\n }\n }\n });\n break;\n }\n //default:\n // throw \"Error\"\n }\n }\n if (result$s.length == 0) {\n return from([[] as string[]]);\n }\n const validateChild$ = this.parentElement == null ? from([true]) : this.parentElement._validateChild$(this as unknown as BaseElementDefBase);\n return validateChild$.pipe(\n switchMap(i => {\n if (i) {\n return combineLatest(result$s).pipe(map(results => flattenArrays(results)));\n } else {\n return from([[] as string[]]);\n }\n }),\n );\n }),\n );\n // this._baseControlErrors$ = result.pipe(publishBehavior([]), refCount());\n /** @type { Observable<string[]> } */\n this._baseControlErrors$ = result.pipe(share({ resetOnRefCountZero: true, connector: () => new ReplaySubject(1) }));\n }\n return this._baseControlErrors$; //.pipe(finalize(() => console.log(`${oid} - Finished errors$ for ${this.definition.id}`)));\n }\n}\n\nexport function isICustomConfirmElement(input: BaseElementDefBase): input is ICustomConfirmElement {\n //@ts-expect-error\n return input.hasCustomConfirmComponent || input.getCustomConfirmComponent;\n}\nexport interface ICustomConfirmElement extends BaseElementDefBase {\n hasCustomConfirmComponent(adminPreview: boolean): boolean;\n getCustomConfirmComponent(adminPreview: boolean): Promise<{ component: any; data: any }>; // eslint-disable-line @typescript-eslint/no-explicit-any\n}\nexport function isIBlockSubmitElement(input: BaseElementDefBase): input is IBlockSubmitElement {\n //@ts-expect-error\n return input.blockSubmit$;\n}\nexport interface IBlockSubmitElement extends BaseElementDefBase {\n blockSubmit$(): Observable<boolean>;\n}\n\nexport function isILockableElement(input: BaseElementDefBase): input is ILockableElement {\n //@ts-expect-error\n return input.getLockActions;\n}\nexport type InnerLockAction = {\n unlock?: true;\n alreadyUnlocked?: true;\n redirectUrl?: string | (() => Promise<InnerLockAction>);\n};\nexport type LockAction = InnerLockAction & {\n label: string;\n};\nexport interface ILockableElement extends BaseElementDefBase {\n getLockActions(lock: string): LockAction[];\n}\n\nexport function isIPostSubmitRedirectElement(input: BaseElementDefBase): input is IShouldSkipConfirmElement {\n //@ts-expect-error\n return input.getPostSubmitRedirect;\n}\nexport interface IPostSubmitRedirectElement extends BaseElementDefBase {\n getPostSubmitRedirect(): Awaitable<string>;\n}\n\nexport function isIShouldSkipCompletionElement(input: BaseElementDefBase): input is IShouldSkipCompletionElement {\n //@ts-expect-error\n return input.shouldSkipCompletion;\n}\nexport interface IShouldSkipCompletionElement extends BaseElementDefBase {\n shouldSkipCompletion: () => boolean | null | undefined;\n}\n\nexport function isIShouldSkipConfirmElement(input: BaseElementDefBase): input is IShouldSkipConfirmElement {\n //@ts-expect-error\n return input.shouldSkipConfirm || input.shouldSkipConfirm$;\n}\nexport interface IShouldSkipConfirmElement extends BaseElementDefBase {\n shouldSkipConfirm?: () => Awaitable<boolean | null | undefined>;\n shouldSkipConfirm$?: () => Observable<boolean | null | undefined>;\n}\n\nexport function isICustomSubmitTextElement(input: BaseElementDefBase): input is IHasCustomSubmitTextElement {\n //@ts-expect-error\n return input.submitText || input.submitText$;\n}\nexport interface IHasCustomSubmitTextElement extends BaseElementDefBase {\n hasCustomSubmitText: () => Awaitable<boolean | null | undefined>;\n hasCustomSubmitText$: () => Observable<boolean | null | undefined>;\n submitText?: () => Awaitable<string | null | undefined>;\n submitText$?: () => Observable<string | null | undefined>;\n}\n\nexport function isICustomReceiptElement(input: BaseElementDefBase): input is ICustomReceiptElement {\n //@ts-expect-error\n return input.isCustomReceiptContent;\n}\nexport interface ICustomReceiptElement extends BaseElementDefBase {\n isCustomReceiptContent: true;\n visible(): Promise<boolean>;\n receiptContents(): Awaitable<string>;\n}\n\nexport function isICustomViewElement(input: BaseElementDefBase): input is ICustomViewElement {\n //@ts-expect-error\n return input.isCustomViewType;\n}\nexport interface ICustomViewElement extends BaseElementDefBase {\n isCustomViewType: true;\n visible(): Promise<boolean>;\n viewTypes(): string[];\n}\n","import { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { ContentTemplateSettings } from \"@cs-ts/content-template-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class ContentTemplatePageDef extends BaseElementDef<ContentTemplateSettings, FormDefinitionItem<ContentTemplateSettings>, FormItem> {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<ContentTemplateSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFContentTemplatePage\"; // TODO - not hardcoded?\n }\n}\n","import { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { DisplayElementSetting } from \"@cs-ts/display-element-setting\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class DisplayElementDef extends BaseElementDef<DisplayElementSetting, FormDefinitionItem<DisplayElementSetting>, FormItem> {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<DisplayElementSetting>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFDisplayElement\"; // TODO - not hardcoded?\n }\n}\n","import { parseBool } from \"../../lib/calculations\";\nimport { combineLatest, from } from \"rxjs\";\nimport { map, switchMap } from \"rxjs/operators\";\nimport { toUpperCaseList } from \"../../lib/caseOperations\";\nimport { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseControlDefBase, BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { DisplayIfOtherHasValueSettings } from \"@cs-ts/display-if-other-has-value-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class DisplayIfOtherHasValueDef extends BaseElementDef<DisplayIfOtherHasValueSettings, FormDefinitionItem<DisplayIfOtherHasValueSettings>, FormItem> {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<DisplayIfOtherHasValueSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFDisplayIfOtherHasValue\"; // TODO - not hardcoded?\n }\n\n visible$() {\n return super.visible$().pipe(\n switchMap(v => {\n if (!v) return from([false]);\n else {\n if (this.definition.settings.calculationId != null || (this.definition.settings.legacyCalculation || []).length > 0) {\n const result = this.resolveCalculation(this.definition.settings.calculationId!, this.definition.settings.legacyCalculation);\n return result.pipe(map(value => value.reduce((a, i) => a || parseBool(i) === 1, false)));\n } else {\n const matches = this.definition.settings.valuesToMatch ? this.definition.settings.valuesToMatch.slice() : [];\n if (this.definition.settings.valueToMatch) {\n matches.push(this.definition.settings.valueToMatch);\n }\n const upperCaseMatches = toUpperCaseList(matches);\n const otherElementIsDirectDescendant = this.getElementsByFilter(element => element.id == this.definition.settings.otherElementId).length > 0;\n if (otherElementIsDirectDescendant) {\n return from([true]);\n } else {\n return this.calculationContext.rootElement!.getElementsById$(this.definition.settings.otherElementId!, this.vmId).pipe(\n switchMap(children => combineLatest(children.map(i => (i as BaseControlDefBase).effectiveValueList$()))),\n map(valueLists => Array.prototype.concat.apply([], valueLists)),\n map(valueList => toUpperCaseList(valueList)),\n map(upperValueList => (this.definition.settings.invert || false) != upperValueList.some(v => upperCaseMatches.some(m => v == m))),\n );\n }\n }\n }\n }),\n );\n }\n\n valid$(includeUnedited?: boolean, excludeChildren?: boolean) {\n return combineLatest(this.visible$(), super.valid$(includeUnedited, excludeChildren)).pipe(map(([visible, valid]) => !visible || valid));\n }\n}\n","import { BaseElementDefBase, BaseControlDef } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { ExtraDataShimSettings } from \"@cs-ts/extra-data-shim-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { FormControlItem } from \"@cs/FormControlItem\";\n\nexport default class ExtraDataShimDef extends BaseControlDef<ExtraDataShimSettings, FormDefinitionItem<ExtraDataShimSettings>, FormControlItem, string> {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormControlItem, definitionData: FormDefinitionItem<ExtraDataShimSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFExtraDataShim\"; // TODO - not hardcoded?\n this.autoEdit = false;\n this.isFocusable = true;\n }\n\n extraShimValue$() {\n return this.effectiveValueList$();\n }\n\n effectiveValueList$() {\n return this.valueList$();\n }\n\n valueList$() {\n return this._maskedValue$();\n }\n\n effectiveLabelText$() {\n return this._effectiveLabelText$();\n }\n}\n","import { BaseControlDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FileSettings } from \"@cs-ts/file-settings\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { map } from \"rxjs/operators\";\nimport { FormFileItem } from \"@cs/FormFileItem\";\n\nexport interface InputFormFileItem extends FormFileItem {\n contentType: string;\n valueId: string;\n}\nexport interface OutputFormFileItem extends FormFileItem {\n contentType: string;\n valueId: string;\n removeExisting?: boolean;\n}\n\nconst TYPE_NAME = \"MI.Common.DynamicForms.Models.DFFile\";\n\nexport default class FileDef extends BaseControlDef<FileSettings, FormDefinitionItem<FileSettings>, FormFileItem, unknown> {\n declare valueId: string;\n declare fileName: string;\n declare fileSize: string;\n declare contentType: string;\n declare fileUrl: string;\n declare isFileUpload: boolean;\n declare uploadStatus: string | null;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormFileItem, definitionData: FormDefinitionItem<FileSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = TYPE_NAME; // TODO - not hardcoded?\n this.isFileUpload = true;\n this.uploadStatus = null;\n this.isFocusable = true;\n }\n setData(data: FormFileItem, excludeChildren: boolean) {\n super.setData(data, excludeChildren);\n this._setFileData(data as InputFormFileItem);\n }\n setFileData(data: InputFormFileItem) {\n this._setFileData(data);\n this.markEdited();\n }\n _setFileData(data: InputFormFileItem) {\n if (data == null) {\n //this.setKey({}, \"hasValue\", \"_hasValue\"); // TODO conflict with base value?\n const fileDependencies = this.getValueFromDependencies() as Record<string, string>;\n if (fileDependencies != null) {\n //@ts-expect-error\n this.setKey(fileDependencies, \"fileName\");\n //@ts-expect-error\n this.setKey(fileDependencies, \"fileUrl\");\n }\n this.setKey(null, \"valueId\");\n this.setKey(null, \"fileName\");\n this.setKey(null, \"fileSize\");\n this.setKey(null, \"contentType\");\n this.setKey(null, \"fileUrl\");\n return;\n }\n if (!data.hasValue) {\n this.setKey(data, \"hasValue\", \"_hasValue\");\n }\n this.setKey(data, \"valueId\");\n this.setKey(data, \"fileName\");\n this.setKey(data, \"fileSize\");\n this.setKey(data, \"contentType\");\n this.setKey(data, \"fileUrl\");\n if (data.hasValue) {\n this.setKey(data, \"hasValue\", \"_hasValue\");\n }\n }\n getData(excludeChildren?: boolean) {\n const result = super.getData(excludeChildren) as OutputFormFileItem;\n result.valueId = this.valueId;\n result.fileName = this.fileName;\n result.fileSize = parseInt(this.fileSize);\n result.contentType = this.contentType;\n if (!this._hasValue) {\n result.removeExisting = true;\n }\n if (!this.valueId) {\n this.uploadStatus = null;\n }\n return result;\n }\n rules$() {\n return super.rules$().pipe(\n map(result => {\n const requiredKeys = Object.keys(result).filter(i => i.indexOf(\"data-val-required\") == 0 && i.indexOf(\"data-val-requiredfile\") == -1);\n requiredKeys.forEach(k => {\n const newK = \"data-val-requiredfile\" + k.substring(\"data-val-required\".length);\n result[newK] = result[k];\n delete result[k];\n });\n return result;\n }),\n );\n }\n}\n\nexport function isFileDef(i: BaseElementDefBase): i is FileDef {\n return i.typeName == TYPE_NAME;\n}\n","import { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { ForEachSettings } from \"@cs-ts/for-each-settings\";\nimport { ForEachChildIdSettings } from \"@cs-ts/for-each-child-id-settings\";\nimport { ForEachChildIndexSettings } from \"@cs-ts/for-each-child-index-settings\";\nimport { IElementSettings } from \"@cs-ts/i-element-settings\";\nimport { FormItem } from \"@cs/FormItem\";\nimport { FormControlItem } from \"@cs/FormControlItem\";\nimport { FormForEachIdItem } from \"@cs/FormForEachIdItem\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { combineLatest, from, BehaviorSubject } from \"rxjs\";\nimport { map, switchMap } from \"rxjs/operators\";\nimport { Observable } from \"rxjs\";\n\nexport default class ForEachDef extends BaseElementDef<ForEachSettings, FormDefinitionItem<ForEachSettings>, FormItem> {\n //declare valueId : string;\n //declare fileName : string;\n //declare fileSize : string;\n //declare contentType : string;\n //declare fileUrl : string;\n //declare isFileUpload : boolean;\n //declare uploadStatus : string|null;\n declare _effectiveLabel$: BehaviorSubject<string | null>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<ForEachSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFForEach\"; // TODO - not hardcoded?\n }\n\n initChildren(data: FormItem) {\n this.calculationContext.rootElement!.dependenciesIndex = this.calculationContext.rootElement!.dependenciesIndex || [];\n const dependenciesIndex = this.calculationContext.rootElement!.dependenciesIndex;\n const topIndex = dependenciesIndex.length > 0 ? dependenciesIndex[0] : 0;\n dependenciesIndex.unshift(0);\n if (data == null) {\n const childCounts = this.calculationContext.rootElement!.foreachCounts[this.id!];\n const childrenCount = childCounts == null ? this.definition.settings.min || 0 : childCounts[topIndex];\n for (let i = 0; i < topIndex; i++) {\n dependenciesIndex[0] += childCounts[i];\n }\n this.children = new Array(childrenCount + 0).fill(0).map(index => {\n const r = this.generateItem(null);\n dependenciesIndex[0]++;\n return r;\n });\n } else {\n this.children =\n !data || !data.children\n ? []\n : data.children.map(child => {\n const r = this.generateItem(child as FormForEachIdItem);\n dependenciesIndex[0]++;\n return r;\n });\n while (this.children.length < (this.definition.settings.min || 0)) {\n this.addItem(null);\n }\n }\n dependenciesIndex.shift();\n this._children$.next(this.children);\n }\n\n setData(data: FormItem | null, excludeChildren?: boolean) {\n super.setData(data, true);\n if (!excludeChildren) {\n this.calculationContext.rootElement!.dependenciesIndex = this.calculationContext.rootElement!.dependenciesIndex || [];\n const dependenciesIndex = this.calculationContext.rootElement!.dependenciesIndex;\n const topIndex = dependenciesIndex.length > 0 ? dependenciesIndex[0] : 0;\n dependenciesIndex.unshift(0);\n let childrenCount;\n if (data != null) {\n childrenCount = data.children.length;\n } else {\n if (this.id! in this.calculationContext.rootElement!.foreachCounts) {\n const childCounts = this.calculationContext.rootElement!.foreachCounts[this.id!];\n for (let i = 0; i < topIndex; i++) {\n dependenciesIndex[0] += childCounts[i];\n }\n childrenCount = childCounts[topIndex];\n } else {\n childrenCount = this.children ? this.children.length : this.definition.settings.min || 0;\n }\n }\n const children = (this.children ? this.children.slice(0, childrenCount) : []) as ForEachDefItem[];\n for (let index = 0; index < childrenCount; index++) {\n const child = data != null ? (data.children[index] as FormForEachIdItem) : null;\n if (children[index]) {\n children[index].setData(child);\n } else {\n children[index] = this.generateItem(child);\n }\n dependenciesIndex[0]++;\n }\n dependenciesIndex.shift();\n this.setItems(children);\n }\n }\n\n setCalculationItems(ids: string[]) {\n let manualCounter = 0;\n let children = (this.children as ForEachDefItem[]).filter(i => {\n if (i.isManualChild) manualCounter++;\n return ids.includes(i.childId!) || i.isManualChild;\n });\n if (children.length == ids.length + manualCounter && this.children.length == ids.length + manualCounter) {\n return;\n }\n const idsToAdd = ids.filter(i => !children.some(c => c.childId == i));\n if (idsToAdd.length > 0) {\n idsToAdd.forEach(id => {\n const visibleChildrenLength = children.filter(child => !child.removedChild).length;\n children.push(this.generateItem({ childId: id, childIndex: visibleChildrenLength + 1, isManualChild: false } as FormForEachIdItem));\n });\n } else {\n children\n .filter(child => !child.removedChild)\n .forEach((child, index) => {\n child.childIndex = (index + 1).toString();\n child.childIndex$.next(child.childIndex);\n });\n }\n children = ids.map(i => children.filter(j => j.childId == i)[0]).sort((a, b) => (a.childIndex == null ? 1 : b.childIndex == null ? -1 : parseInt(a.childIndex) - parseInt(b.childIndex)));\n if (this.definition.settings.addRemoveItems) {\n const manuallyAddedChildren = (this.children as ForEachDefItem[]).filter(i => i.isManualChild == true);\n manuallyAddedChildren.forEach(manualChild => {\n children.splice(parseInt(manualChild.childIndex!) - 1, 0, manualChild);\n });\n }\n //console.log(`Setting children: ${this.definition.id}|${this.vmId}:\\n ${newIds}\\n => ${this.data.children.map(i => i.childId)}`)\n this.setItems(children);\n }\n\n setItems(items: ForEachDefItem[]) {\n this.children = items;\n this._children$.next(items);\n if (this.baseLink != null && !this.isBase) {\n (this.baseLink as ForEachDef).setItems(items.map(i => i.baseLink as ForEachDefItem));\n }\n }\n\n generateItem(data: FormForEachIdItem | null) {\n const item = new ForEachDefItem(this, data, this.definition, this.calculationContext);\n if (this.baseLink != null && !this.isBase) {\n const baseElement = (this.baseLink as ForEachDef).generateItem(data);\n item.linkBaseElement(baseElement);\n }\n return item;\n }\n\n addItem(data: FormForEachIdItem | null) {\n const item = this.generateItem(data || ({} as FormForEachIdItem));\n if (item.childId == null) {\n item.isManualChild = true;\n }\n this._addItem(item);\n }\n\n _addItem(item: ForEachDefItem) {\n if (item.childIndex == null) {\n item.childIndex = ((this.children as ForEachDefItem[]).filter(c => !c.removedChild).length + 1).toString();\n item.childIndex$.next(item.childIndex);\n }\n this.children.push(item);\n this._children$.next(this.children);\n if (this.baseLink != null && item.baseLink != null && !this.isBase) {\n (this.baseLink as ForEachDef)._addItem(item.baseLink as ForEachDefItem);\n }\n }\n\n removeItem(item: ForEachDefItem, calculatedItems: string[]) {\n const index = this.children.indexOf(item);\n\n if (index >= 0) {\n if (!item.isManualChild && calculatedItems.length > 0 && calculatedItems.filter(x => x.includes(item.childId!))) {\n const childItem = (this.children as ForEachDefItem[])[index];\n childItem.removedChild = true;\n childItem.childIndex = null;\n } else {\n this.children.splice(index, 1);\n }\n for (let i = index; i < this.children.length; i++) {\n const child = (this.children as ForEachDefItem[])[i];\n child.childIndex = child.childIndex == null ? null : (parseInt(child.childIndex!) - 1).toString();\n child.childIndex$.next(child.childIndex);\n }\n this._children$.next(this.children);\n }\n if (this.baseLink != null && item.baseLink != null && !this.isBase) {\n (this.baseLink as ForEachDef).removeItem(item.baseLink as ForEachDefItem, []);\n }\n }\n\n valid$(includeUnedited: boolean, excludeChildren?: boolean) {\n const valid$ = super.valid$(includeUnedited, excludeChildren);\n const thisValid$ = this.errors$().pipe(map(i => i.length == 0));\n const result = combineLatest(valid$, thisValid$).pipe(\n //tap(i => { debugger; }),\n map(([superValid, thisValid]) => superValid && thisValid),\n );\n return result;\n }\n\n errors$() {\n return this._children$.pipe(\n map(children => {\n const result = [];\n if (this.definition.settings.min != null && this.children.length < this.definition.settings.min) {\n result.push(`Must have at least ${this.definition.settings.min} ${this.getLabel()}`);\n }\n if (this.definition.settings.max != null && this.children.length > this.definition.settings.max) {\n result.push(`Must have at most ${this.definition.settings.max} ${this.getLabel()}`);\n }\n return result;\n }),\n );\n }\n\n _getElementsById$(id: string, contextVmId: string): (BaseElementDef<IElementSettings, FormDefinitionItem<IElementSettings>, FormItem> | Observable<BaseElementDefBase[]>)[] {\n if (this.id == id) {\n return [this];\n }\n const walk = (node: FormDefinitionItem<IElementSettings>): boolean => {\n return node.children.some(child => {\n if (child.id == id) {\n return true;\n }\n return walk(child);\n });\n };\n const idInScope = walk(this.definition);\n if (!idInScope) {\n return super._getElementsById$(id, contextVmId);\n }\n let context2 = null as BaseElementDefBase | null;\n this.children.some(child => {\n if (child.getElementByVmId(contextVmId)) {\n context2 = child;\n }\n return context2 != null;\n });\n if (context2 != null) {\n return context2._getElementsById$(id, contextVmId);\n }\n return [\n this._children$.pipe(\n switchMap(list => {\n let context = null as BaseElementDefBase | null;\n list.some(child => {\n if (child.getElementByVmId(contextVmId)) {\n context = child;\n }\n return context != null;\n });\n if (context != null) {\n debugger;\n }\n const unwrappedResults = context != null ? context._getElementsById$(id, contextVmId) : super._getElementsById$(id, contextVmId);\n const observableResults = unwrappedResults.filter(i => \"pipe\" in i) as Observable<BaseElementDefBase[]>[];\n const nonObservableResults = unwrappedResults.filter(i => !(\"pipe\" in i)) as BaseElementDefBase[];\n if (nonObservableResults.length > 0) {\n observableResults.push(from([nonObservableResults]));\n }\n return (observableResults.length == 0 ? from([[]]) : combineLatest(observableResults).pipe(map(i => flattenArrays(i).filter(j => !(j.parentElement as ForEachDefItem).removedChild)))) as Observable<BaseElementDefBase[]>;\n }),\n ),\n ];\n }\n\n // TODO duplicate of BaseControlDef\n effectiveLabel$() {\n if (this._effectiveLabel$ == null) {\n if (this.definition.settings.labelCalculationId) {\n this._effectiveLabel$ = new BehaviorSubject(null as string | null);\n this.resolveCalculation(this.definition.settings.labelCalculationId)\n .pipe(map(i => (i.length ? i[0] : null)))\n .subscribe(this._effectiveLabel$);\n } else {\n this._effectiveLabel$ = new BehaviorSubject(this.definition.settings.label as string | null);\n }\n }\n return this._effectiveLabel$;\n }\n}\n\nfunction flattenArrays<T>(arrays: T[][]): T[] {\n return Array.prototype.concat.apply([], arrays);\n}\n\nexport class ForEachDefItem extends BaseElementDef<ForEachSettings, FormDefinitionItem<ForEachSettings>, FormItem> {\n declare childId: string | null | undefined;\n declare removedChild: boolean;\n declare isManualChild: boolean;\n declare childIndex: string | null | undefined;\n declare childIndex$: BehaviorSubject<string | null | undefined>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem | null, definitionData: FormDefinitionItem<ForEachSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData!, definitionData, calculationContext);\n this.typeName = null!; // \"MI.Common.DynamicForms.Models.DFForEach+Child\"; // TODO - not hardcoded?\n this.childIndex$ = new BehaviorSubject(this.childIndex);\n }\n\n /** @returns {Observable<string[]>} */\n getVirtualContext$() {\n if (this.parentElement == null) {\n return from([[]]);\n } else {\n return this.parentElement.getVirtualContext$().pipe(switchMap((j: string[]) => this.parentElement!._children$.pipe(map((i: BaseElementDefBase[]) => [...j, i.indexOf(this).toString()]))));\n }\n }\n\n initChildren(data: FormForEachIdItem) {\n super.initChildren(data);\n if (data != null) {\n if (data.childId == undefined && this.definition.settings.addRemoveItems) {\n this.childId = null;\n } else {\n this.childId = data.childId;\n }\n this.removedChild = data.removedChild;\n this.isManualChild = data.isManualChild;\n this.childIndex = data.childIndex?.toString();\n }\n this.children.filter(i => i instanceof ForEachChildIdDef || i instanceof ForEachChildIndexDef).forEach(c => (c as ForEachChildIdDef | ForEachChildIndexDef).setForEachItem(this));\n }\n}\n\nexport class ForEachChildIdDef extends BaseElementDef<ForEachChildIdSettings, FormDefinitionItem<ForEachChildIdSettings>, FormControlItem> {\n declare foreachItem: ForEachDefItem | null;\n declare foreachItem$: BehaviorSubject<ForEachDefItem | null>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormControlItem, definitionData: FormDefinitionItem<ForEachChildIdSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFForEach+ChildId\"; // TODO - not hardcoded?\n this.foreachItem = null;\n this.foreachItem$ = new BehaviorSubject(null as ForEachDefItem | null);\n }\n\n setData(data: FormControlItem | null, excludeChildren?: boolean) {\n super.setData(data, excludeChildren);\n }\n getData(excludeChildren?: boolean) {\n const result = super.getData(excludeChildren) as FormControlItem;\n if (result != null) {\n result.value = this.childId();\n result.removedChild = this.removedChild();\n result.isManualChild = this.manualChild();\n }\n return result;\n }\n\n setForEachItem(foreachItem: ForEachDefItem) {\n this.foreachItem = foreachItem;\n this.foreachItem$.next(foreachItem);\n }\n\n //value() {\n // return this.childId();\n //}\n\n valueList$() {\n return this.foreachItem$.pipe(map(i => (i == null ? [] : [i.childId]))) as Observable<string[]>;\n }\n\n effectiveValueList$() {\n return this.valueList$();\n }\n\n childId() {\n return this.foreachItem!.childId!;\n }\n removedChild() {\n return this.foreachItem!.removedChild!;\n }\n manualChild() {\n return this.foreachItem!.isManualChild!;\n }\n}\n\nexport class ForEachChildIndexDef extends BaseElementDef<ForEachChildIndexSettings, FormDefinitionItem<ForEachChildIndexSettings>, FormControlItem> {\n declare foreachItem: ForEachDefItem | null;\n declare foreachItem$: BehaviorSubject<ForEachDefItem | null>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormControlItem, definitionData: FormDefinitionItem<ForEachChildIndexSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFForEach+ChildIndex\"; // TODO - not hardcoded?\n this.foreachItem = null;\n this.foreachItem$ = new BehaviorSubject(null as ForEachDefItem | null);\n }\n\n setData(data: FormControlItem | null, excludeChildren?: boolean) {\n super.setData(data, excludeChildren);\n }\n getData(excludeChildren?: boolean) {\n const result = super.getData(excludeChildren) as FormControlItem;\n if (result != null) {\n result.value = this.childIndex();\n }\n return result;\n }\n\n setForEachItem(foreachItem: ForEachDefItem) {\n this.foreachItem = foreachItem;\n this.foreachItem$.next(foreachItem);\n }\n\n //value() {\n // return this.childIndex();\n //}\n\n valueList$() {\n return this.foreachItem$.pipe(switchMap(i => (i == null ? [] : i.childIndex$.pipe(map(j => (j == null ? [] : [j]))))));\n }\n\n effectiveValueList$() {\n return this.valueList$();\n }\n\n childIndex() {\n return this.foreachItem!.childIndex!;\n }\n}\n","import { BaseElementDef, BaseElementDefBase, BaseControlDef, BaseControlDefBase, LockAction, isILockableElement } from \"./BaseElementDef\";\nimport { FormJson } from \"@cs/FormJson\";\nimport { FormDefinitionFormItem } from \"./__DefinitionDataInterface\";\nimport { FormSettings } from \"@cs-ts/form-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class FormDef extends BaseElementDef<FormSettings, FormDefinitionFormItem, FormJson> {\n declare externalData: Record<string, string[]>;\n declare formId: string | null | undefined;\n declare formName: string;\n declare formVersion: string;\n declare formHash: string;\n declare status: string;\n declare viewTypes: string[]; // TODO?\n declare locks: string[]; // TODO?\n declare can: Record<string, boolean>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormJson, definitionData: FormDefinitionFormItem, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DynamicForm\"; // TODO - not hardcoded?\n this.externalData = elementData.externalData;\n this.can = elementData.can;\n this.formId = elementData.formId;\n this.formName = elementData.formName;\n this.formVersion = elementData.formVersion;\n this.formHash = elementData.formHash;\n this.viewTypes = elementData.viewTypes;\n this.status = elementData.status;\n this.dependencies = elementData.dependencies; // TODO Observable\n this.foreachCounts = elementData.foreachCounts; // TODO Observable\n }\n\n appendExternalData(data: Record<string, string[]>) {\n this.externalData = this.externalData ?? {};\n for (const [k, v] of Object.entries(data ?? {})) {\n this.externalData[k] = v;\n }\n }\n\n setData(data: FormJson, excludeChildren?: boolean) {\n this.dependencies = data.dependencies; // TODO Observable\n this.foreachCounts = data.foreachCounts; // TODO Observable\n super.setData(data, excludeChildren);\n this.status = data.status;\n this.viewTypes = data.viewTypes;\n this.formId = this.formId || data.formId;\n this.can = data.can;\n this.externalData = data.externalData;\n this.locks = data.locks;\n }\n\n getData(excludeChildren?: boolean) {\n const result = super.getData(excludeChildren) as FormJson;\n if (result != null) {\n result.formId = this.formId!;\n result.formName = this.formName;\n result.formVersion = this.formVersion;\n result.formHash = this.formHash;\n result.externalData = this.externalData;\n result.locks = this.locks;\n result.can = this.can;\n }\n return result;\n }\n\n getLockActions(lock: string): LockAction[] {\n const lockEls = this.getElementsByFilter2(isILockableElement).filter(i => i != this);\n const r = lockEls.flatMap(i => i.getLockActions(lock));\n return r;\n }\n\n markEdited() {\n const controls = this.getElementsByFilter(i => i instanceof BaseControlDef) as BaseControlDefBase[];\n for (const control of controls) {\n control.markEdited();\n }\n }\n}\n","import { first, map } from \"rxjs/operators\";\nimport { BehaviorSubject } from \"rxjs\";\n\nimport { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { SignatureSettings } from \"@cs-ts/signature-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class SignatureDef extends BaseElementDef<SignatureSettings, FormDefinitionItem<SignatureSettings>, FormItem> {\n declare isSignature: true;\n declare isCustomViewType: true;\n declare isSigned: boolean;\n declare isSigned$: BehaviorSubject<boolean>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<SignatureSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.isSignature = true;\n this.isCustomViewType = true;\n this.isSigned = this.isSigned || false;\n this.isSigned$ = this.isSigned$ || new BehaviorSubject(this.isSigned);\n this.typeName = \"MI.Common.DynamicForms.Models.DFSignature\"; // TODO - not hardcoded?\n }\n\n setData(data: FormItem | null, excludeChildren?: boolean) {\n super.setData(data, excludeChildren);\n if (data == null) {\n return;\n }\n this.setKey(data, \"isSigned\");\n }\n\n visible() {\n return this.isSigned$.pipe(first()).toPromise();\n }\n\n viewTypes() {\n return [this.definition.settings.label, `${this.definition.settings.label} (Certification)`];\n }\n\n hasCustomConfirmComponent(adminPreview: boolean) {\n return adminPreview;\n }\n\n async getCustomConfirmComponent(adminPreview: boolean) {\n const func = (await import(/* webpackChunkName: \"PageAdmin\" */ \"./SignatureDef.Admin\")).getCustomConfirmComponent;\n return await func.apply(this, []);\n }\n\n requireUserVerification() {\n const rUV = this.definition.settings.requireUserVerification;\n return rUV == null ? true : rUV;\n }\n\n shouldSkipConfirm() {\n return this.isSigned ? null : false;\n }\n\n shouldSkipConfirm$() {\n return this.isSigned$.pipe(map(i => (i ? null : false)));\n }\n\n hasCustomSubmitText$() {\n return this.isSigned$.pipe(map(i => !i));\n }\n\n submitText$() {\n return this.isSigned$.pipe(map(i => (!i ? \"Sign\" : null)));\n }\n}\n\nexport function isSignatureDef(i: BaseElementDefBase): i is SignatureDef {\n //@ts-ignore\n return i.isSignature;\n}\n","import { BaseElementDefBase, BaseElementDef, isILockableElement, LockAction } from \"./BaseElementDef\";\nimport { BehaviorSubject, combineLatest } from \"rxjs\";\nimport { StateFormSettings } from \"@cs-ts/state-form-settings\";\nimport { FormAccessPurpose } from \"@cs/FormAccessPurpose\";\nimport { FormFormStateItem } from \"@cs/FormFormStateItem\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { map } from \"rxjs/operators\";\n\ntype allFormAccessPurposes = (typeof FormAccessPurpose)[\"ALL\"][0];\n\nexport default class StateFormDef extends BaseElementDef<StateFormSettings, FormDefinitionItem<StateFormSettings>, FormFormStateItem> {\n declare _status$: BehaviorSubject<string>;\n declare status: string;\n declare state: string;\n declare activatedDate: string;\n declare completedDate: string;\n declare locks: string[];\n declare _can: Record<allFormAccessPurposes, boolean>;\n declare isAssignedToOtherUser: boolean;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormFormStateItem, definitionData: FormDefinitionItem<StateFormSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFStateForm\"; // TODO - not hardcoded?\n this._status$ = this._status$ || new BehaviorSubject(null);\n }\n\n can(type: \"view\" | \"assign\" | \"edit\" | \"unlock\", asReviewer: boolean) {\n const fullType = type == \"view\" ? (asReviewer ? FormAccessPurpose.AdminView : FormAccessPurpose.UserView) : type == \"assign\" ? (asReviewer ? FormAccessPurpose.AdminWorkflowAssign : FormAccessPurpose.UserAssign) : type == \"edit\" ? (asReviewer ? FormAccessPurpose.AdminWorkflowEdit : FormAccessPurpose.UserEdit) : type == \"unlock\" ? (asReviewer ? FormAccessPurpose.AdminWorkflowUnlock : FormAccessPurpose.UserUnlock) : null!;\n return this._can[fullType];\n }\n\n getData(excludeChildren?: boolean) {\n const result = super.getData(excludeChildren) as FormFormStateItem;\n if (result != null) {\n result.status = this.status;\n }\n return result;\n }\n\n getLockActions(lock: string): LockAction[] {\n const lockEls = this.getElementsByFilter2(isILockableElement).filter(i => i != this);\n const r = lockEls.flatMap(i => i.getLockActions(lock));\n return r;\n }\n\n setData(data: FormFormStateItem, excludeChildren: boolean) {\n super.setData(data, excludeChildren);\n this._can = (data.can ?? {}) as Record<allFormAccessPurposes, boolean>;\n this.activatedDate = data.activatedDate as string;\n this.completedDate = data.completedDate as string;\n this.isAssignedToOtherUser = data.isAssignedToOtherUser as boolean;\n this.locks = data.locks;\n this.setStatus(data.status as string);\n }\n\n setStatus(status: string) {\n this.status = status;\n if (this._status$ == null) {\n this._status$ = new BehaviorSubject(status);\n } else {\n this._status$.next(status);\n }\n }\n\n clientStatus$() {\n return combineLatest(this._status$, this.valid$()).pipe(map(([status, valid]) => (status == null ? (valid ? \"Complete\" : \"Invalid\") : status)));\n }\n}\n","import { BaseElementDefBase, BaseControlDef } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { FormControlItem } from \"@cs/FormControlItem\";\nimport { TextboxSettings } from \"@cs-ts/textbox-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { timer } from \"rxjs\";\nimport { debounce, map } from \"rxjs/operators\";\nimport { isNullOrWhitespace } from \"@/lib/whitespaceMethods\";\n\nexport default class TextboxDef extends BaseControlDef<TextboxSettings, FormDefinitionItem<TextboxSettings>, FormControlItem, string> {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormControlItem, definitionData: FormDefinitionItem<TextboxSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFTextbox\"; // TODO - not hardcoded?\n this.autoEdit = false;\n this.isFocusable = true;\n }\n valueList$() {\n const baseList = super.valueList$();\n if (this.calculationContext.nonLiveTextboxes || this.forceNonLive) {\n return baseList;\n } else {\n return baseList.pipe(TextboxDef.debounceExceptFirst(TextboxDef.debounceValueTime));\n }\n }\n\n effectiveValueList$() {\n const baseList = super.effectiveValueList$();\n if (this.calculationContext.nonLiveTextboxes || this.forceNonLive) {\n return baseList;\n } else {\n return baseList.pipe(\n TextboxDef.debounceExceptFirst(TextboxDef.debounceValueTime),\n //tap(v => {\n // console.log(`2 - Redoing effectiveValueList$ for ${this.definition.id} - Z - ${JSON.stringify(v)}`);\n //})\n );\n }\n }\n\n maskedValue$() {\n return this.effectiveValueList$().pipe(map(([i]) => [...TextboxDef.maskValue(i, this.definition.settings.effectiveOutputMask!)]));\n }\n\n _maskedValue$() {\n return this.maskedValue$();\n }\n\n _effectiveLabelText$() {\n return this.effectiveLabelText$();\n }\n\n static debounceValueTime = 500;\n static debounceExceptFirst(time: number) {\n let first = true;\n return debounce((i: string[]) => {\n if (!first) {\n return timer(time);\n }\n first = false;\n return timer(0);\n });\n }\n static maskValue(value: string | null, outputMask: string | undefined) {\n if (!value || isNullOrWhitespace(value)) {\n return [];\n }\n if (!outputMask || isNullOrWhitespace(outputMask)) {\n return [value];\n }\n let result = \"\";\n for (let index = 0; index < outputMask.length; index++) {\n const cha = outputMask[index];\n if (/\\w/.test(cha)) {\n if (index < value.length) {\n result += value[index];\n }\n } else {\n result += outputMask[index];\n }\n if (result.length == value.length) {\n break;\n }\n }\n return outputMask != null ? [result] : [];\n }\n}\n","import { BaseControlDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { Observable, ReplaySubject } from \"rxjs\";\nimport { share } from \"rxjs/operators\";\nimport { FormDefinitionItem } from \"@/public/pages/elements/__DefinitionDataInterface\";\nimport { CalculatedSettings } from \"@cs-ts/calculated-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { FormMultiControlItem } from \"@/cs-ts-bridge/cs/FormMultiControlItem\";\n\n// TODO not really a control\nexport default class CalculatedDef extends BaseControlDef<CalculatedSettings, FormDefinitionItem<CalculatedSettings>, FormMultiControlItem, string[]> {\n declare _valueList$: Observable<string[]>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormMultiControlItem, definitionData: FormDefinitionItem<CalculatedSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFCalculated\"; // TODO - not hardcoded?\n }\n\n effectiveValueList$() {\n return this.valueList$();\n }\n\n valueList$() {\n if (this._valueList$ == null) {\n const result = this.resolveCalculation(this.definition.settings.calculationId!);\n //this._valueList$ = new ReplaySubject(1);\n //result.subscribe(this._valueList$);\n this._valueList$ = result.pipe(share({ resetOnRefCountZero: true, connector: () => new ReplaySubject(1) }));\n }\n return this._valueList$;\n }\n}\n","import { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { ValidationSettings } from \"@cs-ts/validation-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { parseBool } from \"../../lib/calculations\";\nimport { combineLatest } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nexport default class ValidationDef extends BaseElementDef<ValidationSettings, FormDefinitionItem<ValidationSettings>, FormItem> {\n declare associatedElements: string[];\n declare customErrorId: string;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<ValidationSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFValidation\"; // TODO - not hardcoded?\n this.customErrorId = this.vmId + \"_Errors\";\n /** @type {string[]} */\n this.associatedElements = this.associatedElements || [];\n this.isFocusable = true; // To properly get custom validation as invalid element\n }\n\n setData(data: FormItem | null, excludeChildren?: boolean) {\n super.setData(data, excludeChildren);\n this.setKey(data, \"associatedElements\", \"associatedElements\");\n }\n\n valid$() {\n if (!this.definition.settings.serverSide || this.calculationContext.adminPreview) {\n const result = this.resolveCalculation(this.definition.settings.calculationId!, this.definition.settings.legacyCalculation);\n return result.pipe(map(value => value.reduce((a, i) => a || parseBool(i) === 1, false)));\n } else {\n return super.valid$();\n }\n }\n\n errors$() {\n if (!this.definition.settings.serverSide || this.calculationContext.adminPreview) {\n return combineLatest([this.valid$(), ...this.associatedElements.map(id => this.getRoot().getElementsById$(id))]).pipe(\n map(([valid, ...elements]) => {\n Array.prototype.concat.apply([], elements).forEach(element => {\n const errorIds = element.customErrorIds;\n const errorIndex = errorIds.indexOf(this.customErrorId);\n if (valid && errorIndex >= 0) {\n errorIds.splice(errorIndex, 1);\n } else if (!valid && errorIndex === -1) {\n errorIds.push(this.customErrorId);\n }\n element._customErrorIds$.next(errorIds);\n });\n return valid ? [] : [this.definition.settings.errorMessage!];\n }),\n );\n } else {\n return super.errors$();\n }\n }\n}\n","import { BaseControlDef, BaseElementDefBase, BaseElementDef } from \"./BaseElementDef\";\nimport { FormMultiControlItem } from \"@cs/FormMultiControlItem\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { CheckGroupSettings } from \"@cs-ts/check-group-settings\";\nimport { CheckItemSettings } from \"@cs-ts/check-item-settings\";\nimport { CheckGroupItem } from \"@cs-ts/check-group-item\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { map } from \"rxjs/operators\";\nimport { combineLatest, from, Observable } from \"rxjs\";\nimport { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { stringCoalesce } from \"@/lib/whitespaceMethods\";\n\nexport default class CheckGroupDef extends BaseControlDef<CheckGroupSettings, FormDefinitionItem<CheckGroupSettings>, FormMultiControlItem, string[]> {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormMultiControlItem, definitionData: FormDefinitionItem<CheckGroupSettings>, calculationContext: CalculationContext) {\n // value needs to be a list for Vue template to function\n if (elementData != null && elementData.value == null) {\n elementData.value = [];\n }\n super(parentElement, elementData, definitionData, calculationContext);\n this._hasValue = elementData == null || elementData.value == null || elementData.value.length == 0 ? this.getValueFromDependencies()!.length > 0 : elementData.hasValue;\n this.typeName = \"MI.Common.DynamicForms.Models.DFCheckGroup\"; // TODO - not hardcoded?\n this.isFocusable = true;\n }\n\n getValueFromDependencies() {\n let result = super.getValueFromDependencies();\n // value needs to be a list for Vue template to function\n if (result == null) {\n result = [];\n }\n return result;\n }\n\n defaultValue$() {\n return combineLatest([super.defaultValue$(), this.effectiveItems$()]).pipe(\n map(([dV, eI]) => {\n //@ts-ignore\n return dV.filter(d => eI.some(e => e.value == d));\n }),\n );\n }\n\n /** @returns {Observable<{value: string, label: string}[]>} */\n effectiveItems$(): Observable<{ value: string; label: string }[]> {\n const layout = this.definition.settings.layout;\n if (layout == 3) {\n const items = this.children as BaseElementDef<CheckItemSettings, FormDefinitionItem<CheckItemSettings>, FormItem>[];\n const buildItems = [];\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n const label = item.definition.settings.label!;\n const value = item.definition.settings.value;\n buildItems.push({ label, value: stringCoalesce(value, label)! });\n }\n return from([buildItems]);\n } else {\n const item$s = [] as Observable<{ value: string; label: string }[]>[];\n const items = this.definition.settings.items;\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n let label$ = null;\n if (\"labelCalculationId\" in item && item.labelCalculationId) {\n //@ts-ignore\n label$ = this.resolveCalculation(item.labelCalculationId);\n } else {\n label$ = from([[(<CheckGroupItem>item).label]]);\n }\n let value$ = null;\n if (\"valueCalculationId\" in item && item.valueCalculationId) {\n //@ts-ignore\n value$ = this.resolveCalculation(item.valueCalculationId);\n } else {\n value$ = from([[(<CheckGroupItem>item).value]]);\n }\n //@ts-ignore\n item$s.push(combineLatest([label$, value$]).pipe(map(([label, value]) => (label.length >= value.length ? label.map((i, j) => ({ label: i, value: value[j] })) : value.map((i, j) => ({ value: i, label: label[j] }))).map(({ label, value }) => ({ label, value: value == null || /^\\s*$/.test(value) ? label : value })))));\n }\n return combineLatest(item$s).pipe(map(i => i.flat()));\n }\n }\n //@ts-ignore\n _validateChild$(child) {\n return combineLatest([super._validateChild$(child), this.value$().pipe(map((values: string[]) => values != null && values.indexOf(child.definition.settings.effectiveValue) >= 0))]).pipe(map(([a, b]) => a && b));\n }\n}\n","import { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { ContactPageTemplateSettings } from \"@cs-ts/contact-page-template-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class ContactPageTemplateDef extends BaseElementDef<ContactPageTemplateSettings, FormDefinitionItem<ContactPageTemplateSettings>, FormItem> {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<ContactPageTemplateSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFContactPageTemplate\"; // TODO - not hardcoded?\n }\n}\n","import { BehaviorSubject, combineLatest } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { resolveHtmlContentCalculations } from \"../../lib/calculations\";\nimport { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { ContentSettings } from \"@cs-ts/content-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class ContentDef extends BaseElementDef<ContentSettings, FormDefinitionItem<ContentSettings>, FormItem> {\n declare _effectiveHtmlContent$: BehaviorSubject<string>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<ContentSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFContent\"; // TODO - not hardcoded?\n }\n\n effectiveHtmlContent$() {\n if (this._effectiveHtmlContent$ == null) {\n this._effectiveHtmlContent$ = new BehaviorSubject(\"\");\n const htmlContent = this.definition.settings.htmlContent;\n if ((this.definition.settings.htmlCalculations || []).length != 0) {\n const htmlCalculations$ = [];\n for (const htmlCalculation of this.definition.settings.htmlCalculations ?? []) {\n htmlCalculations$.push(this.resolveCalculation(htmlCalculation.calculationId!).pipe(map(text => ({ id: htmlCalculation.calculationId, text }))));\n }\n combineLatest(htmlCalculations$)\n .pipe(map(calculations => resolveHtmlContentCalculations(calculations, htmlContent)))\n .subscribe(resolvedHtmlContent => this._effectiveHtmlContent$?.next(resolvedHtmlContent));\n } else {\n this._effectiveHtmlContent$ = new BehaviorSubject(htmlContent ?? \"\");\n }\n }\n return this._effectiveHtmlContent$;\n }\n}\n","import { FormControlItem } from \"@/cs-ts-bridge/ts/form-control-item\";\nimport { BaseControlDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { DatePickerSettings } from \"@cs-ts/date-picker-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\n// TODO maybe this should be an element?\nexport default class DatePickerDef extends BaseControlDef<DatePickerSettings, FormDefinitionItem<DatePickerSettings>, FormControlItem, string> {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormControlItem, definitionData: FormDefinitionItem<DatePickerSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFDatePicker\"; // TODO - not hardcoded?\n }\n}\n","// TODO - deduplicate with backend list\nexport const mapping = {\n 0: \"counties\",\n 1: \"provinces\",\n 2: \"states\",\n 3: \"countries\",\n} as const;\nexport const counties = 0;\nexport const data = {\n states: [\n { value: \"AL\", text: \"Alabama\" },\n { value: \"AK\", text: \"Alaska\" },\n { value: \"AZ\", text: \"Arizona\" },\n { value: \"AR\", text: \"Arkansas\" },\n { value: \"CA\", text: \"California\" },\n { value: \"CO\", text: \"Colorado\" },\n { value: \"CT\", text: \"Connecticut\" },\n { value: \"DE\", text: \"Delaware\" },\n { value: \"DC\", text: \"District of Columbia\" },\n { value: \"FL\", text: \"Florida\" },\n { value: \"GA\", text: \"Georgia\" },\n { value: \"HI\", text: \"Hawaii\" },\n { value: \"ID\", text: \"Idaho\" },\n { value: \"IL\", text: \"Illinois\" },\n { value: \"IN\", text: \"Indiana\" },\n { value: \"IA\", text: \"Iowa\" },\n { value: \"KS\", text: \"Kansas\" },\n { value: \"KY\", text: \"Kentucky\" },\n { value: \"LA\", text: \"Louisiana\" },\n { value: \"ME\", text: \"Maine\" },\n { value: \"MD\", text: \"Maryland\" },\n { value: \"MA\", text: \"Massachusetts\" },\n { value: \"MI\", text: \"Michigan\" },\n { value: \"MN\", text: \"Minnesota\" },\n { value: \"MS\", text: \"Mississippi\" },\n { value: \"MO\", text: \"Missouri\" },\n { value: \"MT\", text: \"Montana\" },\n { value: \"NE\", text: \"Nebraska\" },\n { value: \"NV\", text: \"Nevada\" },\n { value: \"NH\", text: \"New Hampshire\" },\n { value: \"NJ\", text: \"New Jersey\" },\n { value: \"NM\", text: \"New Mexico\" },\n { value: \"NY\", text: \"New York\" },\n { value: \"NC\", text: \"North Carolina\" },\n { value: \"ND\", text: \"North Dakota\" },\n { value: \"OH\", text: \"Ohio\" },\n { value: \"OK\", text: \"Oklahoma\" },\n { value: \"OR\", text: \"Oregon\" },\n { value: \"PA\", text: \"Pennsylvania\" },\n { value: \"RI\", text: \"Rhode Island\" },\n { value: \"SC\", text: \"South Carolina\" },\n { value: \"SD\", text: \"South Dakota\" },\n { value: \"TN\", text: \"Tennessee\" },\n { value: \"TX\", text: \"Texas\" },\n { value: \"UT\", text: \"Utah\" },\n { value: \"VT\", text: \"Vermont\" },\n { value: \"VA\", text: \"Virginia\" },\n { value: \"WA\", text: \"Washington\" },\n { value: \"WV\", text: \"West Virginia\" },\n { value: \"WI\", text: \"Wisconsin\" },\n { value: \"WY\", text: \"Wyoming\" },\n ],\n\n provinces: [\n { value: \"ON\", text: \"Ontario\" },\n { value: \"QC\", text: \"Quebec\" },\n { value: \"NS\", text: \"Nova Scotia\" },\n { value: \"NB\", text: \"New Brunswick\" },\n { value: \"MB\", text: \"Manitoba\" },\n { value: \"BC\", text: \"British Columbia\" },\n { value: \"PE\", text: \"Prince Edward Island\" },\n { value: \"SK\", text: \"Saskatchewan\" },\n { value: \"AB\", text: \"Alberta\" },\n { value: \"NL\", text: \"Newfoundland and Labrador\" },\n { value: \"NT\", text: \"Northwest Territories\" },\n { value: \"YT\", text: \"Yukon\" },\n { value: \"NU\", text: \"Nunavut\" },\n ],\n\n countries: [\n // cspell:disable\n { value: \"AF\", text: \"Afghanistan\" },\n { value: \"AX\", text: \"Åland Islands\" },\n { value: \"AL\", text: \"Albania\" },\n { value: \"DZ\", text: \"Algeria\" },\n { value: \"AS\", text: \"American Samoa\" },\n { value: \"AD\", text: \"Andorra\" },\n { value: \"AO\", text: \"Angola\" },\n { value: \"AI\", text: \"Anguilla\" },\n { value: \"AQ\", text: \"Antarctica\" },\n { value: \"AG\", text: \"Antigua and Barbuda\" },\n { value: \"AR\", text: \"Argentina\" },\n { value: \"AM\", text: \"Armenia\" },\n { value: \"AW\", text: \"Aruba\" },\n { value: \"AU\", text: \"Australia\" },\n { value: \"AT\", text: \"Austria\" },\n { value: \"AZ\", text: \"Azerbaijan\" },\n { value: \"BS\", text: \"Bahamas\" },\n { value: \"BH\", text: \"Bahrain\" },\n { value: \"BD\", text: \"Bangladesh\" },\n { value: \"BB\", text: \"Barbados\" },\n { value: \"BY\", text: \"Belarus\" },\n { value: \"BE\", text: \"Belgium\" },\n { value: \"BZ\", text: \"Belize\" },\n { value: \"BJ\", text: \"Benin\" },\n { value: \"BM\", text: \"Bermuda\" },\n { value: \"BT\", text: \"Bhutan\" },\n { value: \"BO\", text: \"Bolivia (Plurinational State of)\" },\n { value: \"BQ\", text: \"Bonaire, Sint Eustatius and Saba\" },\n { value: \"BA\", text: \"Bosnia and Herzegovina\" },\n { value: \"BW\", text: \"Botswana\" },\n { value: \"BV\", text: \"Bouvet Island\" },\n { value: \"BR\", text: \"Brazil\" },\n { value: \"IO\", text: \"British Indian Ocean Territory\" },\n { value: \"BN\", text: \"Brunei Darussalam\" },\n { value: \"BG\", text: \"Bulgaria\" },\n { value: \"BF\", text: \"Burkina Faso\" },\n { value: \"BI\", text: \"Burundi\" },\n { value: \"CV\", text: \"Cabo Verde\" },\n { value: \"KH\", text: \"Cambodia\" },\n { value: \"CM\", text: \"Cameroon\" },\n { value: \"CA\", text: \"Canada\" },\n { value: \"KY\", text: \"Cayman Islands\" },\n { value: \"CF\", text: \"Central African Republic\" },\n { value: \"TD\", text: \"Chad\" },\n { value: \"CL\", text: \"Chile\" },\n { value: \"CN\", text: \"China\" },\n { value: \"CX\", text: \"Christmas Island\" },\n { value: \"CC\", text: \"Cocos (Keeling) Islands\" },\n { value: \"CO\", text: \"Colombia\" },\n { value: \"KM\", text: \"Comoros\" },\n { value: \"CD\", text: \"Congo (Democratic Republic of the)\" },\n { value: \"CG\", text: \"Congo\" },\n { value: \"CK\", text: \"Cook Islands\" },\n { value: \"CR\", text: \"Costa Rica\" },\n { value: \"CI\", text: \"Côte d'Ivoire\" },\n { value: \"HR\", text: \"Croatia\" },\n { value: \"CU\", text: \"Cuba\" },\n { value: \"CW\", text: \"Curaçao\" },\n { value: \"CY\", text: \"Cyprus\" },\n { value: \"CZ\", text: \"Czechia\" },\n { value: \"DK\", text: \"Denmark\" },\n { value: \"DJ\", text: \"Djibouti\" },\n { value: \"DM\", text: \"Dominica\" },\n { value: \"DO\", text: \"Dominican Republic\" },\n { value: \"EC\", text: \"Ecuador\" },\n { value: \"EG\", text: \"Egypt\" },\n { value: \"SV\", text: \"El Salvador\" },\n { value: \"GQ\", text: \"Equatorial Guinea\" },\n { value: \"ER\", text: \"Eritrea\" },\n { value: \"EE\", text: \"Estonia\" },\n { value: \"ET\", text: \"Ethiopia\" },\n { value: \"FK\", text: \"Falkland Islands (Malvinas)\" },\n { value: \"FO\", text: \"Faroe Islands\" },\n { value: \"FJ\", text: \"Fiji\" },\n { value: \"FI\", text: \"Finland\" },\n { value: \"FR\", text: \"France\" },\n { value: \"GF\", text: \"French Guiana\" },\n { value: \"PF\", text: \"French Polynesia\" },\n { value: \"TF\", text: \"French Southern Territories\" },\n { value: \"GA\", text: \"Gabon\" },\n { value: \"GM\", text: \"Gambia\" },\n { value: \"GE\", text: \"Georgia\" },\n { value: \"DE\", text: \"Germany\" },\n { value: \"GH\", text: \"Ghana\" },\n { value: \"GI\", text: \"Gibraltar\" },\n { value: \"GR\", text: \"Greece\" },\n { value: \"GL\", text: \"Greenland\" },\n { value: \"GD\", text: \"Grenada\" },\n { value: \"GP\", text: \"Guadeloupe\" },\n { value: \"GU\", text: \"Guam\" },\n { value: \"GT\", text: \"Guatemala\" },\n { value: \"GG\", text: \"Guernsey\" },\n { value: \"GN\", text: \"Guinea\" },\n { value: \"GW\", text: \"Guinea-Bissau\" },\n { value: \"GY\", text: \"Guyana\" },\n { value: \"HT\", text: \"Haiti\" },\n { value: \"HM\", text: \"Heard Island and McDonald Islands\" },\n { value: \"VA\", text: \"Holy See\" },\n { value: \"HN\", text: \"Honduras\" },\n { value: \"HK\", text: \"Hong Kong\" },\n { value: \"HU\", text: \"Hungary\" },\n { value: \"IS\", text: \"Iceland\" },\n { value: \"IN\", text: \"India\" },\n { value: \"ID\", text: \"Indonesia\" },\n { value: \"IR\", text: \"Iran (Islamic Republic of)\" },\n { value: \"IQ\", text: \"Iraq\" },\n { value: \"IE\", text: \"Ireland\" },\n { value: \"IM\", text: \"Isle of Man\" },\n { value: \"IL\", text: \"Israel\" },\n { value: \"IT\", text: \"Italy\" },\n { value: \"JM\", text: \"Jamaica\" },\n { value: \"JP\", text: \"Japan\" },\n { value: \"JE\", text: \"Jersey\" },\n { value: \"JO\", text: \"Jordan\" },\n { value: \"KZ\", text: \"Kazakhstan\" },\n { value: \"KE\", text: \"Kenya\" },\n { value: \"KI\", text: \"Kiribati\" },\n { value: \"KP\", text: \"Korea (Democratic People's Republic of)\" },\n { value: \"KR\", text: \"Korea (Republic of)\" },\n { value: \"KW\", text: \"Kuwait\" },\n { value: \"KG\", text: \"Kyrgyzstan\" },\n { value: \"LA\", text: \"Lao People's Democratic Republic\" },\n { value: \"LV\", text: \"Latvia\" },\n { value: \"LB\", text: \"Lebanon\" },\n { value: \"LS\", text: \"Lesotho\" },\n { value: \"LR\", text: \"Liberia\" },\n { value: \"LY\", text: \"Libya\" },\n { value: \"LI\", text: \"Liechtenstein\" },\n { value: \"LT\", text: \"Lithuania\" },\n { value: \"LU\", text: \"Luxembourg\" },\n { value: \"MO\", text: \"Macao\" },\n { value: \"MK\", text: \"Macedonia (the former Yugoslav Republic of)\" },\n { value: \"MG\", text: \"Madagascar\" },\n { value: \"MW\", text: \"Malawi\" },\n { value: \"MY\", text: \"Malaysia\" },\n { value: \"MV\", text: \"Maldives\" },\n { value: \"ML\", text: \"Mali\" },\n { value: \"MT\", text: \"Malta\" },\n { value: \"MH\", text: \"Marshall Islands\" },\n { value: \"MQ\", text: \"Martinique\" },\n { value: \"MR\", text: \"Mauritania\" },\n { value: \"MU\", text: \"Mauritius\" },\n { value: \"YT\", text: \"Mayotte\" },\n { value: \"MX\", text: \"Mexico\" },\n { value: \"FM\", text: \"Micronesia (Federated States of)\" },\n { value: \"MD\", text: \"Moldova (Republic of)\" },\n { value: \"MC\", text: \"Monaco\" },\n { value: \"MN\", text: \"Mongolia\" },\n { value: \"ME\", text: \"Montenegro\" },\n { value: \"MS\", text: \"Montserrat\" },\n { value: \"MA\", text: \"Morocco\" },\n { value: \"MZ\", text: \"Mozambique\" },\n { value: \"MM\", text: \"Myanmar\" },\n { value: \"NA\", text: \"Namibia\" },\n { value: \"NR\", text: \"Nauru\" },\n { value: \"NP\", text: \"Nepal\" },\n { value: \"NL\", text: \"Netherlands\" },\n { value: \"NC\", text: \"New Caledonia\" },\n { value: \"NZ\", text: \"New Zealand\" },\n { value: \"NI\", text: \"Nicaragua\" },\n { value: \"NE\", text: \"Niger\" },\n { value: \"NG\", text: \"Nigeria\" },\n { value: \"NU\", text: \"Niue\" },\n { value: \"NF\", text: \"Norfolk Island\" },\n { value: \"MP\", text: \"Northern Mariana Islands\" },\n { value: \"NO\", text: \"Norway\" },\n { value: \"OM\", text: \"Oman\" },\n { value: \"PK\", text: \"Pakistan\" },\n { value: \"PW\", text: \"Palau\" },\n { value: \"PS\", text: \"Palestine, State of\" },\n { value: \"PA\", text: \"Panama\" },\n { value: \"PG\", text: \"Papua New Guinea\" },\n { value: \"PY\", text: \"Paraguay\" },\n { value: \"PE\", text: \"Peru\" },\n { value: \"PH\", text: \"Philippines\" },\n { value: \"PN\", text: \"Pitcairn\" },\n { value: \"PL\", text: \"Poland\" },\n { value: \"PT\", text: \"Portugal\" },\n { value: \"PR\", text: \"Puerto Rico\" },\n { value: \"QA\", text: \"Qatar\" },\n { value: \"RE\", text: \"Réunion\" },\n { value: \"RO\", text: \"Romania\" },\n { value: \"RU\", text: \"Russian Federation\" },\n { value: \"RW\", text: \"Rwanda\" },\n { value: \"BL\", text: \"Saint Barthélemy\" },\n { value: \"SH\", text: \"Saint Helena, Ascension and Tristan da Cunha\" },\n { value: \"KN\", text: \"Saint Kitts and Nevis\" },\n { value: \"LC\", text: \"Saint Lucia\" },\n { value: \"MF\", text: \"Saint Martin (French part)\" },\n { value: \"PM\", text: \"Saint Pierre and Miquelon\" },\n { value: \"VC\", text: \"Saint Vincent and the Grenadines\" },\n { value: \"WS\", text: \"Samoa\" },\n { value: \"SM\", text: \"San Marino\" },\n { value: \"ST\", text: \"Sao Tome and Principe\" },\n { value: \"SA\", text: \"Saudi Arabia\" },\n { value: \"SN\", text: \"Senegal\" },\n { value: \"RS\", text: \"Serbia\" },\n { value: \"SC\", text: \"Seychelles\" },\n { value: \"SL\", text: \"Sierra Leone\" },\n { value: \"SG\", text: \"Singapore\" },\n { value: \"SX\", text: \"Sint Maarten (Dutch part)\" },\n { value: \"SK\", text: \"Slovakia\" },\n { value: \"SI\", text: \"Slovenia\" },\n { value: \"SB\", text: \"Solomon Islands\" },\n { value: \"SO\", text: \"Somalia\" },\n { value: \"ZA\", text: \"South Africa\" },\n { value: \"GS\", text: \"South Georgia and the South Sandwich Islands\" },\n { value: \"SS\", text: \"South Sudan\" },\n { value: \"ES\", text: \"Spain\" },\n { value: \"LK\", text: \"Sri Lanka\" },\n { value: \"SD\", text: \"Sudan\" },\n { value: \"SR\", text: \"Suriname\" },\n { value: \"SJ\", text: \"Svalbard and Jan Mayen\" },\n { value: \"SZ\", text: \"Swaziland\" },\n { value: \"SE\", text: \"Sweden\" },\n { value: \"CH\", text: \"Switzerland\" },\n { value: \"SY\", text: \"Syrian Arab Republic\" },\n { value: \"TW\", text: \"Taiwan, Province of China[a]\" },\n { value: \"TJ\", text: \"Tajikistan\" },\n { value: \"TZ\", text: \"Tanzania, United Republic of\" },\n { value: \"TH\", text: \"Thailand\" },\n { value: \"TL\", text: \"Timor-Leste\" },\n { value: \"TG\", text: \"Togo\" },\n { value: \"TK\", text: \"Tokelau\" },\n { value: \"TO\", text: \"Tonga\" },\n { value: \"TT\", text: \"Trinidad and Tobago\" },\n { value: \"TN\", text: \"Tunisia\" },\n { value: \"TR\", text: \"Turkey\" },\n { value: \"TM\", text: \"Turkmenistan\" },\n { value: \"TC\", text: \"Turks and Caicos Islands\" },\n { value: \"TV\", text: \"Tuvalu\" },\n { value: \"UG\", text: \"Uganda\" },\n { value: \"UA\", text: \"Ukraine\" },\n { value: \"AE\", text: \"United Arab Emirates\" },\n { value: \"GB\", text: \"United Kingdom of Great Britain and Northern Ireland\" },\n { value: \"US\", text: \"United States\" },\n { value: \"UM\", text: \"United States Minor Outlying Islands\" },\n { value: \"UY\", text: \"Uruguay\" },\n { value: \"UZ\", text: \"Uzbekistan\" },\n { value: \"VU\", text: \"Vanuatu\" },\n { value: \"VE\", text: \"Venezuela (Bolivarian Republic of)\" },\n { value: \"VN\", text: \"Vietnam\" },\n { value: \"VG\", text: \"Virgin Islands (British)\" },\n { value: \"VI\", text: \"Virgin Islands (U.S.)\" },\n { value: \"WF\", text: \"Wallis and Futuna\" },\n { value: \"EH\", text: \"Western Sahara\" },\n { value: \"YE\", text: \"Yemen\" },\n { value: \"ZM\", text: \"Zambia\" },\n { value: \"ZW\", text: \"Zimbabwe\" },\n // cspell:enable\n ],\n} as const;\n","import { BaseControlDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { data as standardDropdownLists, mapping as standardDropdownListsMapping, counties as standardDropdownListsMappingIdCounties } from \"../../lib/standardDropDownListItems\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { DropDownListSettings } from \"@cs-ts/drop-down-list-settings\";\nimport { SelectListItem } from \"@cs/SelectListItem\";\nimport { SelectListGroup } from \"@cs/SelectListGroup\";\nimport { ListItem } from \"@cs/ListItem\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { from, combineLatest, isObservable } from \"rxjs\";\nimport { Observable } from \"rxjs\"; // eslint-disable-line @typescript-eslint/no-unused-vars\nimport { map } from \"rxjs/operators\";\nimport { throwIfNonSuccessStatus } from \"@/lib/fetchHelpers.3\";\nimport { isNullOrWhitespace } from \"@/lib/whitespaceMethods\";\nimport { tryParseDate, DfStrictParseFloat } from \"../../lib/calculations.shared\";\nimport { FormControlItem } from \"@/cs-ts-bridge/cs/FormControlItem\";\nimport FormDef from \"./FormDef\";\n\nconst resolveDatasourceItemsCache = {} as Record<string, Promise<{ effectiveValue: string; text: string; group: SelectListGroup }[]>>;\n\nexport default class DropDownListDef extends BaseControlDef<DropDownListSettings, FormDefinitionItem<DropDownListSettings>, FormControlItem, string> {\n declare definition: FormDefinitionItem<DropDownListSettings>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormControlItem, definitionData: FormDefinitionItem<DropDownListSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFDropDownList\"; // TODO - not hardcoded?\n this.isFocusable = true;\n }\n\n resolveItems(groups: string[], texts: string[], values: string[]) {\n groups = groups || [null];\n values = values || texts;\n const items = [];\n const length = Math.max(\n ...[groups, texts, values].map(function (v) {\n return v.length;\n }),\n );\n for (let i = 0; i < length; i++) {\n const text = texts.length <= i ? texts[texts.length - 1] : texts[i];\n const value = values.length <= i ? values[values.length - 1] : values[i];\n const group = groups.length <= i ? groups[groups.length - 1] : groups[i];\n items.push({\n text: text,\n effectiveValue: value == null || value == \"\" ? text : value,\n group: group == null || group == \"\" ? null : { name: group },\n });\n }\n return items;\n }\n\n async itemDatasourceAsync() {\n if (this.definition.settings.datasourceTable == null) {\n return [];\n }\n const target = this.id;\n const targetPathArray = this.getElementPathIndexFromRoot();\n const cacheKey = JSON.stringify([target, targetPathArray]);\n if (!(cacheKey in resolveDatasourceItemsCache)) {\n resolveDatasourceItemsCache[cacheKey] = (async () => {\n const formNode = this.getRoot() as FormDef;\n const url = await this.calculationContext.urlFetcher(\"invokeDraft\", { formId: formNode.formId! });\n const data = {\n formName: formNode.formName,\n formVersion: formNode.formVersion,\n formHash: formNode.formHash,\n segment: null,\n skipForm: true,\n noWrite: true,\n asAdmin: this.calculationContext.adminReview || false, // TODO\n inPreview: this.calculationContext.adminPreview || false, // TODO\n testMode: this.calculationContext.testMode || false, // TODO\n target,\n targetPathArray,\n type: \"resolveDatasourceItems\", // TODO magic string\n };\n\n // TODO - this fails for preview since it fetches the last published\n try {\n const resp = await this.calculationContext.fetchXsrf(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(data),\n });\n const outerResult = await resp.json();\n const result = JSON.parse(outerResult.Result) as SelectListItem[];\n return result.map(v => ({\n text: v.Text!,\n group: v.Group!,\n effectiveValue: v.Value!,\n }));\n } catch (e) {\n console.log(e);\n return [];\n //if (breakpoint(context)) {\n // debugger;\n // throw e;\n //}\n }\n })();\n }\n return await resolveDatasourceItemsCache[cacheKey];\n }\n\n itemStock() {\n const type = this.definition.settings.standardDropdownList;\n if (type == standardDropdownListsMappingIdCounties) {\n const urlFetcher = this.calculationContext.urlFetcher;\n return (async () => {\n const url = await urlFetcher(\"standardDropDownListItems\", { type: type.toString() });\n const resp = await fetch(url);\n throwIfNonSuccessStatus(resp);\n const data = (await resp.json()) as ListItem[];\n return data.map(v => ({\n text: v.Text,\n effectiveValue: v.Value,\n }));\n })();\n } else if (type != undefined) {\n return standardDropdownLists[standardDropdownListsMapping[type]].map(v => ({\n text: v.text,\n effectiveValue: v.value,\n }));\n } else {\n throw new Error();\n }\n }\n\n items$() {\n let result = null;\n if (this.definition.settings.listDataType == 0 || (this.definition.settings.listDataType == null && this.definition.settings.listItems != null && this.definition.settings.listItems.length > 0)) {\n // TODO constant\n // TODO old list items?\n const items = this.definition.settings.listItems ?? [];\n const item$s = [];\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n const group$ = item.group ? from([[item.group]]) : this.resolveCalculation(item.groupCalculationId!, item.legacyGroupCalculation);\n const text$ = item.text ? from([[item.text]]) : this.resolveCalculation(item.textCalculationId!, item.legacyTextCalculation);\n const effectiveValue$ = item.effectiveValue ? from([[item.effectiveValue]]) : this.resolveCalculation(item.valueCalculationId!, item.legacyValueCalculation);\n //@ts-ignore\n item$s.push(combineLatest([text$, effectiveValue$, group$]).pipe(map(([text, effectiveValue, group]) => (text.length >= effectiveValue.length ? text.map((i, j) => ({ text: i, effectiveValue: effectiveValue[j], group: group[j] })) : effectiveValue.map((i, j) => ({ effectiveValue: i, text: text[j], group: group[j] }))).map(({ text, effectiveValue, group }) => ({ text, group: group == null || group == \"\" ? null : { name: group }, effectiveValue: effectiveValue == null || /^\\s*$/.test(effectiveValue) ? text : effectiveValue })))));\n }\n result = combineLatest(item$s).pipe(map(i => i.flat()));\n } else if (this.definition.settings.listDataType == 2) {\n // TODO constant\n result = this.itemDatasourceAsync();\n } else if (this.definition.settings.listDataType == 1 || (this.definition.settings.listDataType == null && this.definition.settings.standardDropdownList != null)) {\n result = this.itemStock();\n }\n return (isObservable(result) ? result : from(result != null && \"then\" in result ? result : [result])) as Observable<{ group?: { name: string }; text: string; effectiveValue: string | undefined }[]>;\n }\n\n sortedItems$() {\n let items$ = this.items$();\n if (this.definition.settings.sortList !== false) {\n items$ = items$.pipe(\n map(items => {\n items.sort(function (a, b) {\n const aGroupName = a.group == null ? null : a.group.name;\n const bGroupName = b.group == null ? null : b.group.name;\n if (aGroupName == bGroupName) {\n const aNumber = DfStrictParseFloat(a.text);\n const bNumber = DfStrictParseFloat(b.text);\n if (!isNaN(aNumber) && !isNaN(bNumber)) {\n return aNumber > bNumber ? 1 : aNumber < bNumber ? -1 : 0;\n } else if (!isNaN(aNumber)) {\n return -1;\n } else if (!isNaN(bNumber)) {\n return 1;\n }\n const aDate = tryParseDate(a.text);\n const bDate = tryParseDate(b.text);\n if (aDate != null && bDate != null) {\n return aDate > bDate ? 1 : aDate < bDate ? -1 : 0;\n } else if (aDate != null) {\n return -1;\n } else if (bDate != null) {\n return 1;\n }\n return a.text > b.text ? 1 : a.text < b.text ? -1 : 0;\n }\n return aGroupName! > bGroupName! ? 1 : -1;\n });\n function itemEquals(a: (typeof items)[0], b: (typeof items)[0]) {\n return (a.group == null ? b.group == null : b.group != null && a.group.name == b.group.name) && (a.text == null ? b.text == null : a.text == b.text) && (a.effectiveValue == null ? b.effectiveValue == null : a.effectiveValue == b.effectiveValue);\n }\n const newItems = [] as typeof items;\n items.forEach(c => {\n if (!newItems.length || !itemEquals(newItems[newItems.length - 1], c)) {\n newItems.push(c);\n }\n });\n return newItems;\n }),\n );\n }\n return items$;\n }\n\n groupedItems$() {\n return this.sortedItems$().pipe(\n map(sortedItems => {\n const getCaseInsensitiveNameProperty = (obj: object) => Object.keys(obj).find(key => key.toLocaleLowerCase() == \"name\")!;\n const items = sortedItems.filter(function (v) {\n return v.group != null && v.group[getCaseInsensitiveNameProperty(v.group) as \"name\"] != \"\";\n });\n const result = [] as { key: string; items: typeof items }[];\n const groups = {} as Record<string, (typeof result)[0]>;\n items.forEach(function (v) {\n let group = groups[v.group![getCaseInsensitiveNameProperty(v.group!) as \"name\"]];\n if (group == null) {\n group = {\n key: v.group![getCaseInsensitiveNameProperty(v.group!) as \"name\"],\n items: [v],\n };\n groups[group.key] = group;\n result.push(group);\n } else {\n group.items.push(v);\n }\n });\n return result;\n }),\n );\n }\n\n ungroupedItems$() {\n return this.sortedItems$().pipe(\n map(sortedItems => {\n const items = sortedItems.filter(function (v) {\n return v.group == null || v.group.name == \"\";\n });\n let placeholderText = this.definition.settings.placeholderText;\n if (isNullOrWhitespace(placeholderText)) {\n placeholderText = \"-- Select an option --\";\n }\n items.unshift({ effectiveValue: undefined, text: placeholderText! });\n return items;\n }),\n );\n }\n}\n","import { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { FormAlternativeSettings } from \"@cs-ts/form-alternative-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class FormAlternative extends BaseElementDef<FormAlternativeSettings, FormDefinitionItem<FormAlternativeSettings>, FormItem> {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<FormAlternativeSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFFormAlternative\"; // TODO - not hardcoded?\n }\n getCustomPageNav() {\n return [this];\n }\n}\n","import { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { LandingPageTemplateSettings } from \"@cs-ts/landing-page-template-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class LandingPageTemplateDef extends BaseElementDef<LandingPageTemplateSettings, FormDefinitionItem<LandingPageTemplateSettings>, FormItem> {\n declare allowAnonymous: true;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<LandingPageTemplateSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFLandingPageTemplate\"; // TODO - not hardcoded?\n this.allowAnonymous = true;\n }\n}\n","import { BaseControlDefBase, BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { BehaviorSubject, combineLatest, from, Observable } from \"rxjs\";\nimport { map, switchMap } from \"rxjs/operators\";\nimport { toUpperCaseList } from \"../../lib/caseOperations\";\nimport { parseBool } from \"../../lib/calculations\";\nimport { VisibleEnum } from \"@cs/VisibleEnum\";\nimport { PageSettings } from \"@cs-ts/page-settings\";\nimport { FormPageItem } from \"@cs/FormPageItem\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport type FormDef from \"./FormDef\";\nimport type StateFormDef from \"./StateFormDef\";\n\nexport default class PageDef extends BaseElementDef<PageSettings, FormDefinitionItem<PageSettings>, FormPageItem> {\n declare _status$: BehaviorSubject<string | null>;\n declare status: string | null;\n declare isReviewOnly: boolean;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormPageItem, definitionData: FormDefinitionItem<PageSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFPage\"; // TODO - not hardcoded?\n this._status$ = this._status$ || new BehaviorSubject(null);\n }\n getData(excludeChildren?: boolean) {\n const result = super.getData(excludeChildren) as FormPageItem;\n if (result != null) {\n result.status = this.status!;\n }\n return result;\n }\n setData(data: FormPageItem, excludeChildren?: boolean) {\n super.setData(data, excludeChildren);\n if (data == null) {\n return;\n }\n this.setStatus(data.status);\n }\n setStatus(status: string) {\n this.status = status;\n if (this._status$ == null) {\n this._status$ = new BehaviorSubject(status as string | null);\n } else {\n this._status$.next(status);\n }\n }\n\n _validateUneditedChild$(child: BaseElementDefBase) {\n return combineLatest([super._validateChild$(child), this._status$.pipe(map(i => i != \"NotStarted\"))]).pipe(map(([a, b]) => a && b));\n }\n\n permitLaterPages$() {\n if (this.definition.settings.mustBeCompletedToProceed) {\n return this.clientStatus$().pipe(/*tap(i => { debugger; }), */ map(i => i == \"Complete\"));\n } else {\n return from([true]);\n }\n }\n\n visible$() {\n return super.visible$().pipe(switchMap(v => (v ? this.isEnabled$(null) : from([false]))));\n }\n\n isVisible(mode: string, status: string, segment: string | null) {\n return this._isDisplay(mode, status, segment) != null;\n }\n isEditable(mode: string, status: string, segment: string | null) {\n return this._isDisplay(mode, status, segment) == \"edit\";\n }\n isViewOnly(mode: string, status: string, segment: string | null) {\n return this._isDisplay(mode, status, segment) == \"display\";\n }\n _isDisplay(mode: string, status: string, segment: string | null) {\n const pageSegment = this.definition.settings.segment;\n const pageModel =\n pageSegment == null\n ? null\n : (this.getRoot()\n .getElementsByFilter(i => i.id == pageSegment)\n .find(i => true) as StateFormDef);\n if (pageModel == null) {\n // compatibility\n const effectiveStatuses = (this.getRoot() as FormDef).definition.effectiveStatuses;\n const currentStatus = effectiveStatuses?.find(i => i.value == status);\n const editable = currentStatus == null ? mode == \"Public\" && (status == \"Returned\" || status == \"InProgress\") : currentStatus.mode == (mode == \"Public\" ? \"User\" : \"Admin\");\n //console.log(`${editable} - ${currentStatus} - ${mode} - ${status}`);\n return editable ? \"edit\" : \"display\";\n }\n if (pageModel != null) {\n const asReviewer = mode != \"Public\";\n if (pageModel.can(\"edit\", asReviewer) && (segment == null || pageSegment == segment)) {\n return \"edit\";\n }\n if (pageModel.can(\"assign\", asReviewer) && (segment == null || pageSegment == segment)) {\n return \"assign\";\n }\n if (asReviewer && pageModel.can(\"view\", asReviewer)) {\n return \"display\";\n }\n }\n // TODO mode check\n return null;\n }\n\n isEnabled$(type: string | null): Observable<boolean> {\n if (\n (() => {\n if (this.definition.settings.visible == null || this.definition.settings.visible.length == 0) {\n return true;\n }\n switch (type) {\n case \"Edit\":\n return this.definition.settings.visible.includes(VisibleEnum.Edit);\n case \"Display\":\n return this.definition.settings.visible.includes(VisibleEnum.Display);\n default:\n debugger;\n return true;\n }\n })()\n ) {\n if (this.definition.settings.calculationId) {\n const result = this.resolveCalculation(this.definition.settings.calculationId);\n //@ts-ignore\n return result.pipe(map(value => value.reduce((a, i) => a || parseBool(i) === 1, false)));\n } else if (this.definition.settings.otherElementId) {\n const matches = this.definition.settings.valuesToMatch ? this.definition.settings.valuesToMatch.slice() : [];\n if (this.definition.settings.valueToMatch) {\n matches.push(this.definition.settings.valueToMatch);\n }\n const upperCaseMatches = toUpperCaseList(matches);\n const otherElementIsDirectDescendant = this.getElementsByFilter(element => element.id == this.definition.settings.otherElementId).length > 0;\n if (otherElementIsDirectDescendant) {\n return from([true]);\n } else {\n return this.calculationContext.rootElement!.getElementsById$(this.definition.settings.otherElementId, this.vmId).pipe(\n switchMap(children => combineLatest(children.map(i => (i as BaseControlDefBase).effectiveValueList$()))),\n map(valueLists => Array.prototype.concat.apply([], valueLists)),\n map(valueList => toUpperCaseList(valueList)),\n map(upperValueList => (this.definition.settings.invert || false) != upperValueList.some(v => upperCaseMatches.some(m => v == m))),\n );\n }\n } else {\n return from([true]);\n }\n } else {\n return from([false]);\n }\n }\n clientStatus$() {\n return this._status$.pipe(switchMap(status => (status == null ? this.valid$().pipe(map(valid => (valid ? \"Complete\" : \"Invalid\"))) : from([status]))));\n }\n}\n","import { FormPdfAltItem } from \"@/cs-ts-bridge/ts/form-pdf-alt-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { CompletionRedirectSettings } from \"@cs-ts/completion-redirect-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class PdfAlternativeDef extends BaseElementDef<CompletionRedirectSettings, FormDefinitionItem<CompletionRedirectSettings>, FormPdfAltItem> {\n declare fileUrl: string | undefined;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormPdfAltItem, definitionData: FormDefinitionItem<CompletionRedirectSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFPdfAlternative\"; // TODO - not hardcoded?\n }\n setData(data: FormPdfAltItem | null, excludeChildren?: boolean) {\n super.setData(data, excludeChildren);\n if (data == null) return;\n this.fileUrl = data.fileUrl;\n }\n getCustomPageNav() {\n return [this];\n }\n}\n","import { map } from \"rxjs/operators\";\nimport { combineLatest, from, Observable } from \"rxjs\";\nimport { FormControlItem } from \"@/cs-ts-bridge/ts/form-control-item\";\nimport { BaseControlDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { RadioGroupSettings } from \"@cs-ts/radio-group-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class RadioGroupDef extends BaseControlDef<RadioGroupSettings, FormDefinitionItem<RadioGroupSettings>, FormControlItem, string> {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormControlItem, definitionData: FormDefinitionItem<RadioGroupSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFRadioGroup\"; // TODO - not hardcoded?\n this.isFocusable = true;\n }\n\n effectiveItems$() {\n const items = this.definition.settings.items ?? [];\n const item$s = [];\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n let label$: Observable<(string | undefined)[]>;\n if (item.labelCalculationId) {\n label$ = this.resolveCalculation(item.labelCalculationId, null);\n } else {\n label$ = from([[item.label]]);\n }\n let value$: Observable<(string | undefined)[]>;\n if (item.valueCalculationId) {\n value$ = this.resolveCalculation(item.valueCalculationId, null);\n } else {\n value$ = from([[item.value]]);\n }\n item$s.push(combineLatest([label$, value$]).pipe(map(([label, value]) => (label.length >= value.length ? label.map((i, j) => ({ label: i, value: value[j] })) : value.map((i, j) => ({ value: i, label: label[j] }))).map(({ label, value }) => ({ label, value: value == null || /^\\s*$/.test(value) ? label : value })).filter(x => x.label != null || x.value != null))));\n }\n return combineLatest(item$s).pipe(\n //tap(i => { let a = i; debugger; }),\n map(i => i.flat()),\n );\n }\n}\n","import { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { RegionSettings } from \"@cs-ts/region-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class RegionDef extends BaseElementDef<RegionSettings, FormDefinitionItem<RegionSettings>, FormItem> {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<RegionSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFRegion\"; // TODO - not hardcoded?\n }\n}\n","import { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { RequireValueIfOtherHasValueSettings } from \"@cs-ts/require-value-if-other-has-value-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class RequireValueIfOtherHasValueDef extends BaseElementDef<RequireValueIfOtherHasValueSettings, FormDefinitionItem<RequireValueIfOtherHasValueSettings>, FormItem> {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<RequireValueIfOtherHasValueSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFRequireValueIfOtherHasValue\"; // TODO - not hardcoded?\n }\n}\n","import { BehaviorSubject, from, Observable } from \"rxjs\";\nimport { map, share } from \"rxjs/operators\";\nimport { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { SectionSettings } from \"@cs-ts/section-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class SectionDef extends BaseElementDef<SectionSettings, FormDefinitionItem<SectionSettings>, FormItem> {\n declare _effectiveLabel$: Observable<string | null>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<SectionSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFSection\"; // TODO - not hardcoded?\n }\n\n // TODO duplicate of BaseControlDef\n /** @returns {Observable<string>} */\n effectiveLabel$() {\n if (this._effectiveLabel$ == null) {\n if (this.definition.settings.labelCalculationId) {\n this._effectiveLabel$ = this.resolveCalculation(this.definition.settings.labelCalculationId).pipe(\n map(i => (i.length ? i[0] : null)),\n share({ resetOnRefCountZero: true, connector: () => new BehaviorSubject(null as null | string) }),\n );\n } else {\n this._effectiveLabel$ = from([this.definition.settings.label ?? null]);\n }\n }\n return this._effectiveLabel$;\n }\n}\n","import { combineLatest } from \"rxjs\";\nimport { map, first } from \"rxjs/operators\";\nimport { resolveHtmlContentCalculations } from \"../../lib/calculations\";\nimport { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { ReceiptContentSettings } from \"@cs-ts/receipt-content-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class ReceiptContentDef extends BaseElementDef<ReceiptContentSettings, FormDefinitionItem<ReceiptContentSettings>, FormItem> {\n declare isCustomReceiptContent: boolean;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<ReceiptContentSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.isCustomReceiptContent = true;\n }\n\n visible() {\n if (this.definition.settings.conditionalCalculationId == null && (this.definition.settings.legacyConditionalCalculation || []).length == 0) {\n return Promise.resolve(true);\n }\n const result = this.resolveCalculation(this.definition.settings.conditionalCalculationId!, this.definition.settings.legacyConditionalCalculation);\n return result\n .pipe(\n map(conditionalItems => {\n const match = conditionalItems.some(v => this.definition.settings.conditionalValuesToMatch!.indexOf(v) >= 0);\n return match != !!this.definition.settings.conditionalInvert;\n }),\n )\n .pipe(first())\n .toPromise();\n }\n\n receiptContents() {\n const htmlContent = this.definition.settings.htmlContent;\n if (this.definition.settings.htmlContentCalculationId == null && (this.definition.settings.htmlCalculations || []).length == 0 && (this.definition.settings.legacyHtmlContentCalculation || []).length == 0) {\n return Promise.resolve([htmlContent]);\n } else if ((this.definition.settings.htmlCalculations || []).length != 0) {\n const htmlCalculations$ = [];\n for (const htmlCalculation of this.definition.settings.htmlCalculations ?? []) {\n htmlCalculations$.push(this.resolveCalculation(htmlCalculation.calculationId!).pipe(map(text => ({ id: htmlCalculation.calculationId, text }))));\n }\n return combineLatest(htmlCalculations$)\n .pipe(\n map(calculations => resolveHtmlContentCalculations(calculations, htmlContent)),\n first(),\n )\n .toPromise();\n } else {\n return this.resolveCalculationPromise(this.definition.settings.htmlContentCalculationId!, this.definition.settings.legacyHtmlContentCalculation);\n }\n }\n}\n","import { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { DisplayStampedPdfSettings } from \"@cs-ts/display-stamped-pdf-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class DisplayStampedPdfDef extends BaseElementDef<DisplayStampedPdfSettings, FormDefinitionItem<DisplayStampedPdfSettings>, FormItem> {\n declare isCustomViewType: true;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<DisplayStampedPdfSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.isCustomViewType = true;\n }\n\n visible() {\n const showByDefault = this.definition.settings.showByDefault;\n if (showByDefault == 0) {\n return Promise.resolve(true);\n } else if (showByDefault == 1) {\n return Promise.resolve(false);\n } else {\n return this.resolveCalculationPromiseBool(this.definition.settings.showByDefaultCalculatedId!);\n }\n }\n\n viewTypes() {\n return [this.definition.settings.label];\n }\n}\n","import { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { DisplayGeneratedPdfSettings } from \"@cs-ts/display-generated-pdf-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class DisplayGeneratedPdfDef extends BaseElementDef<DisplayGeneratedPdfSettings, FormDefinitionItem<DisplayGeneratedPdfSettings>, FormItem> {\n declare isCustomViewType: true;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<DisplayGeneratedPdfSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.isCustomViewType = true;\n }\n\n visible() {\n const showByDefault = this.definition.settings.showByDefault;\n if (showByDefault == 0) {\n return Promise.resolve(true);\n } else if (showByDefault == 1) {\n return Promise.resolve(false);\n } else {\n return this.resolveCalculationPromiseBool(this.definition.settings.showByDefaultCalculatedId!);\n }\n }\n\n viewTypes() {\n return [this.definition.settings.label];\n }\n}\n","import { BaseElementDefBase, BaseElementDef, ICustomViewElement } from \"./BaseElementDef\";\nimport { FileDocumentSettings } from \"@cs-ts/file-document-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { FormItem } from \"@cs/FormItem\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { TrueFalseCalculated } from \"@cs-ts/true-false-calculated\";\nimport { isFileDef } from \"./FileDef\";\n\nconst TYPE_NAME = \"MI.Common.DynamicForms.Models.DFFileDocument\"; // TODO - not hardcoded?\nexport default class FileDocumentDef extends BaseElementDef<FileDocumentSettings, FormDefinitionItem<FileDocumentSettings>, FormItem> implements ICustomViewElement {\n isCustomViewType: true;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<FileDocumentSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = TYPE_NAME; // TODO - not hardcoded?\n this.isCustomViewType = true;\n }\n\n visible() {\n const showByDefault = this.definition.settings.showByDefault;\n if (this.getRoot().getElementsByFilter((x: BaseElementDefBase) => x.id == this.definition.settings.fileUploadId && isFileDef(x) && x.isFileUpload && parseInt(x.fileSize) > 0).length == 0) {\n return Promise.resolve(false);\n }\n if (showByDefault == TrueFalseCalculated.True) {\n return Promise.resolve(true);\n } else if (showByDefault == TrueFalseCalculated.False) {\n return Promise.resolve(false);\n } else {\n return this.resolveCalculationPromiseBool(this.definition.settings.showByDefaultCalculatedId!);\n }\n }\n\n viewTypes() {\n return [this.definition.settings.label!];\n }\n}\n\nexport function isFileDocumentDef(i: BaseElementDefBase): i is FileDocumentDef {\n return i.typeName == TYPE_NAME;\n}\n","import { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { CompletionRedirectSettings } from \"@cs-ts/completion-redirect-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class CompletionRedirectDef extends BaseElementDef<CompletionRedirectSettings, FormDefinitionItem<CompletionRedirectSettings>, FormItem> {\n declare isPostSubmitRedirect: true;\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<CompletionRedirectSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFCommonCheckout\"; // TODO - not hardcoded?\n this.isPostSubmitRedirect = true;\n }\n\n shouldSkipConfirm() {\n return this.definition.settings.skipConfirmation ? true : null;\n }\n\n shouldSkipCompletion() {\n return this.definition.settings.skipCompletion;\n }\n\n getPostSubmitRedirect() {\n if (this.definition.settings.redirectUrlCalculationId != null) {\n const result = this.resolveCalculationPromise(this.definition.settings.redirectUrlCalculationId, this.definition.settings.legacyRedirectUrlCalculation);\n return result;\n } else {\n return this.definition.settings.redirectUrl;\n }\n }\n}\n","import { BaseElementDef, BaseElementDefBase, ILockableElement, LockAction } from \"./BaseElementDef\";\nimport { first, map, switchMap } from \"rxjs/operators\";\nimport { combineLatest, from, Observable } from \"rxjs\";\nimport { DfParseFloatWithoutNan } from \"../../lib/calculations\";\nconst DEFAULT_PAYMENT_SUBMIT_TEXT = \"Continue to Payment\";\nimport { FormItem } from \"@cs/FormItem\";\nimport { FormDefinitionItem } from \"@/public/pages/elements/__DefinitionDataInterface\";\nimport { AbstractPaySettings } from \"@cs-ts/abstract-pay-settings\";\nimport { PaymentItem } from \"@cs-ts/payment-item\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n//import type FormDef from \"./FormDef\";\n\nexport default class AbstractPayDef<T extends AbstractPaySettings> extends BaseElementDef<T, FormDefinitionItem<T>, FormItem> implements ILockableElement {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<T>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFAbstractPay\"; // TODO - not hardcoded?\n }\n\n shouldSkipConfirm() {\n return this.shouldSkipConfirm$().pipe(first()).toPromise();\n }\n\n shouldSkipConfirm$() {\n return this.getCalculatedItems$().pipe(\n map(items => {\n return items.reduce((a, c) => a + c.quantity * c.unitPrice, 0) > 0 ? true : null;\n }),\n );\n }\n\n hasCustomSubmitText$() {\n return this.submitText$().pipe(map(i => i != DEFAULT_PAYMENT_SUBMIT_TEXT));\n }\n\n getLockActions(lock: string): LockAction[] {\n return [];\n }\n\n submitText$() {\n return this.shouldSkipConfirm$().pipe(\n switchMap(skip => {\n if (!skip) {\n return from([null]);\n }\n const observable = this.resolveCalculation(this.definition.settings.paymentSubmitButtonTextCalculationId!);\n return observable.pipe(map(value => (value && value.length ? value.join(\"\") : this.definition.settings.paymentSubmitButtonText) || DEFAULT_PAYMENT_SUBMIT_TEXT));\n }),\n );\n }\n\n getCalculatedItems() {\n return this.getCalculatedItems$().pipe(first()).toPromise();\n }\n\n getCalculatedItems$() {\n //const formStatus = (this.getRoot() as FormDef).status;\n // TODO status observable\n //const triggeringStatuses = [this.definition.settings.preStatus, this.definition.settings.pendingStatus].filter(i => i != null && i != \"\");\n //if (triggeringStatuses.length > 0 && !triggeringStatuses.includes(formStatus)) {\n // return from([[]]);\n //}\n type JsItem = { quantity: number; unitPrice: number; description: string; sku: string };\n const items = [] as (readonly [JsItem[], Observable<(readonly [keyof JsItem, null | string[]])[]>])[];\n for (let itemIndex = 0; itemIndex < (this.definition.settings.items?.length ?? 0); itemIndex++) {\n const itemConstants = this.definition.settings.items![itemIndex];\n const itemItems: JsItem[] = [\n {\n quantity: itemConstants.quantity == null ? 1 : itemConstants.quantity,\n unitPrice: itemConstants.unitPrice || 0,\n description: itemConstants.description || \"\",\n sku: itemConstants.sku || \"\",\n },\n ];\n items.push([itemItems, combineLatest((Object.keys(itemItems[0]) as (keyof JsItem)[]).map(i => [i, itemConstants[(i + \"CalculationId\") as keyof PaymentItem]] as const).map(([k, c]) => (c == null ? from([[k, null] as const]) : this.resolveCalculation(c as string).pipe(map(rV => [k, rV] as const)))))] as const);\n }\n return combineLatest(items.map(([itemItems, calcSubject]) => calcSubject.pipe(map(resolvedCalc => [itemItems, resolvedCalc] as const)))).pipe(\n map(inputItems => {\n const items = [] as JsItem[];\n for (const [itemItems, calculations] of inputItems) {\n if (calculations.some(i => i[1] != null && i[1].length == 0)) {\n continue;\n }\n //eslint-disable-next-line prefer-const\n for (let [key, values] of calculations) {\n if (values == null) {\n continue;\n }\n if (key.endsWith(\"Calculation\")) {\n key = key.slice(0, -1 * \"Calculation\".length) as keyof JsItem;\n }\n for (let valueIndex = 0; valueIndex < values.length; valueIndex++) {\n if (valueIndex >= itemItems.length) {\n itemItems.push({} as JsItem);\n }\n if (key == \"unitPrice\" || key == \"quantity\") {\n itemItems[valueIndex][key] = DfParseFloatWithoutNan(values[valueIndex]);\n } else {\n itemItems[valueIndex][key] = values[valueIndex];\n }\n }\n }\n for (const key of Object.keys(itemItems[0]) as (keyof JsItem)[]) {\n for (const item of itemItems) {\n if (item[key] == null) {\n if (key == \"unitPrice\" || key == \"quantity\") {\n item[key] = DfParseFloatWithoutNan(itemItems[0][key]);\n } else {\n item[key] = itemItems[0][key];\n }\n }\n }\n }\n Array.prototype.push.apply(items, itemItems);\n }\n return items;\n }),\n );\n }\n}\n","import AbstractPayDef from \"./AbstractPayDef\";\nimport { CommonCheckoutSettings } from \"@cs-ts/common-checkout-settings\";\nimport { BaseElementDefBase, LockAction } from \"./BaseElementDef\";\nimport { FormItem } from \"@cs/FormItem\";\nimport { FormDefinitionItem } from \"@/public/pages/elements/__DefinitionDataInterface\";\nimport type { ICustomConfirmElement } from \"./BaseElementDef\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class CommonCheckoutDef extends AbstractPayDef<CommonCheckoutSettings> implements ICustomConfirmElement {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<CommonCheckoutSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFCommonCheckout\"; // TODO - not hardcoded?\n }\n\n getLockActions(lock: string): LockAction[] {\n return [\n {\n label: \"Return to payment\",\n redirectUrl: async () => {\n const result = await this.invokeAsync(\"PaymentResumeUrl\", lock, i => {\n i.noWrite = false;\n i.unlock = true;\n return i;\n });\n return result as { alreadyUnlocked?: true; redirectUrl?: string };\n },\n },\n {\n label: \"Cancel payment and resume editing this submission\",\n unlock: true,\n },\n ];\n }\n\n hasCustomConfirmComponent(adminPreview: boolean) {\n return adminPreview;\n }\n\n async getCustomConfirmComponent(adminPreview: boolean) {\n if (adminPreview) {\n const func = (await import(/* webpackChunkName: \"PageAdmin\" */ \"./CommonCheckoutDef.Admin\")).getCustomConfirmComponent;\n return await func.apply(this, []);\n } else {\n throw new Error();\n }\n }\n}\n","import { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { LexmarkIntegrationSettings } from \"@cs-ts/lexmark-integration-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class LexmarkIntegrationDef extends BaseElementDef<LexmarkIntegrationSettings, FormDefinitionItem<LexmarkIntegrationSettings>, FormItem> {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<LexmarkIntegrationSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.LexmarkIntegrationDef\"; // TODO - not hardcoded?\n }\n\n hasCustomConfirmComponent(adminPreview: boolean) {\n return adminPreview;\n }\n\n async getCustomConfirmComponent(adminPreview: boolean) {\n const func = (await import(/* webpackChunkName: \"PageAdmin\" */ \"./LexmarkIntegrationDef.Admin\")).getCustomConfirmComponent;\n return await func.apply(this, []);\n }\n}\n","import { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormItem } from \"@cs/FormItem\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { CompletionEmailerSettings } from \"@cs-ts/completion-emailer-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport type { ICustomConfirmElement } from \"./BaseElementDef\";\n\nexport default class CompletionEmailerDef extends BaseElementDef<CompletionEmailerSettings, FormDefinitionItem<CompletionEmailerSettings>, FormItem> implements ICustomConfirmElement {\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<CompletionEmailerSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFCompletionEmailer\"; // TODO - not hardcoded?\n }\n\n hasCustomConfirmComponent(adminPreview: boolean) {\n return adminPreview;\n }\n\n async getCustomConfirmComponent(adminPreview: boolean) {\n const func = (await import(/* webpackChunkName: \"PageAdmin\" */ \"./CompletionEmailerDef.Admin\")).getCustomConfirmComponent;\n return await func.apply(this, []);\n }\n}\n","import { parseBool } from \"../../lib/calculations\";\nimport { map } from \"rxjs/operators\";\nimport { combineLatest, from, Observable, ReplaySubject } from \"rxjs\";\nimport { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { SubmitTriggerSettings } from \"@cs-ts/submit-trigger-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class SubmitTriggerDef extends BaseElementDef<SubmitTriggerSettings, FormDefinitionItem<SubmitTriggerSettings>, FormItem> {\n declare _submitButtons$: ReplaySubject<{ text: string; trigger: string | undefined; order: number | undefined }[]>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<SubmitTriggerSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFSubmitTrigger\"; // TODO - not hardcoded?\n }\n\n submitButtons$() {\n const mapText = (text: string) => [{ text, trigger: this.definition.settings.triggerKey, order: this.definition.settings.order }];\n const coalesce = (...array: (string | undefined)[]) => array.reduce((acc, cur) => (acc == null || /^\\s*$/.test(acc) ? cur : acc));\n const text = coalesce(this.definition.settings.buttonText, this.definition.settings.displayLabel)!;\n const calculationIds = [\"buttonTextCalculationId\", \"displayCalculationId\"] as const;\n\n if (calculationIds.some(calcId => this.definition.settings[calcId] != null)) {\n if (this._submitButtons$ == null) {\n this._submitButtons$ = new ReplaySubject(1);\n const observables = {\n buttonTextCalculationId: new Observable<string[]>(),\n displayCalculationId: new Observable<string[]>(),\n };\n\n for (const calculationId of calculationIds) {\n const calcId = this.definition.settings[calculationId]!;\n observables[calculationId] = this.resolveCalculation(calcId);\n }\n const r = combineLatest([observables.buttonTextCalculationId, observables.displayCalculationId]).pipe(map(([buttonText, visible]) => (parseBool(visible[0]) === 1 || visible[0] == null ? mapText(coalesce(buttonText[0], text)!) : [])));\n r.subscribe(this._submitButtons$);\n }\n return this._submitButtons$;\n } else {\n return from([mapText(text)]);\n }\n }\n}\n","import { parseBool } from \"../../lib/calculations\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { WorkflowSwitchSettings } from \"@cs-ts/workflow-switch-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport default class WorkflowSwitchDef extends BaseElementDef<WorkflowSwitchSettings, FormDefinitionItem<WorkflowSwitchSettings>, FormItem> {\n declare _branchSubjects: Record<string, BehaviorSubject<boolean>>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<WorkflowSwitchSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFWorkflowSwitch\"; // TODO - not hardcoded?\n this._branchSubjects = null!;\n setTimeout(() => {\n this.initBranchSubjects();\n }, 0);\n }\n\n _currentBranch() {\n this.initBranchSubjects();\n if (this._branchSubjects != null) {\n for (const branchId of Object.keys(this._branchSubjects)) {\n if (this._branchSubjects[branchId].getValue()) {\n return this.children.find(i => i.id == branchId)!;\n }\n }\n }\n return this.children.find(i => i.id!.endsWith(\"_ELSE\"))!;\n }\n\n initBranchSubjects() {\n if (this._branchSubjects == null) {\n this._branchSubjects = {};\n for (const branch of this.definition.settings.branches ?? []) {\n const branchSubject = new BehaviorSubject(false);\n this._branchSubjects[branch.branchId!] = branchSubject;\n const calcId = branch.calculationId!;\n const result = this.resolveCalculation(calcId);\n result\n .pipe(\n //tap(a => { debugger; }),\n map(value => value.reduce((a, i) => a || parseBool(i) === 1, false)),\n //tap(a => { debugger; })\n )\n .subscribe(branchSubject);\n }\n }\n }\n\n _getElementsByFilter(func: (i: BaseElementDefBase) => boolean, result: []) {\n return this._currentBranch()._getElementsByFilter(func, result);\n }\n\n getElementByVmId(vmId: string) {\n return this._currentBranch().getElementByVmId(vmId);\n }\n\n _getElementsById$(id: string, contextVmId?: string) {\n return this._currentBranch()._getElementsById$(id, contextVmId);\n }\n}\n","import { markRaw } from \"vue\";\nimport { BaseElementDef, BaseElementDefBase, IBlockSubmitElement, ICustomConfirmElement, IShouldSkipConfirmElement } from \"./BaseElementDef\";\nimport { map } from \"rxjs/operators\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { CaptchaControlSettings } from \"@cs-ts/captcha-control-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport type CaptchaBehaviorDef from \"./CaptchaBehaviorDef\";\nimport { BehaviorSubject, from } from \"rxjs\";\nimport type { FormCaptchaItem } from \"./CaptchaBehaviorDef\";\n\nexport default class CaptchaControlDef extends BaseElementDef<CaptchaControlSettings, FormDefinitionItem<CaptchaControlSettings>, FormCaptchaItem> implements IShouldSkipConfirmElement, IBlockSubmitElement, ICustomConfirmElement {\n captchaToken: string | null;\n hasCaptchaToken$: BehaviorSubject<boolean>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormCaptchaItem, definitionData: FormDefinitionItem<CaptchaControlSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.captchaToken = null;\n this.hasCaptchaToken$ = new BehaviorSubject<boolean>(false);\n }\n\n shouldSkipConfirm() {\n return false;\n }\n\n shouldSkipConfirm$() {\n return from([false]);\n }\n\n hasCustomConfirmComponent(adminPreview: boolean) {\n return !adminPreview;\n }\n\n isSegment(segment: string | null) {\n return segment == null || segment == this.definition.settings.segment;\n }\n\n async setCaptchaToken(token: string) {\n this.captchaToken = token;\n const behaviorId = (this.id as string).replace(\"_Control\", \"\");\n for (const behavior of (await this.getRoot().getElementsById$(behaviorId!).toPromise())!) {\n (behavior as CaptchaBehaviorDef).setCaptchaToken(token);\n }\n this.hasCaptchaToken$.next(true);\n }\n\n getData(excludeChildren?: boolean) {\n const result = super.getData(excludeChildren) as FormCaptchaItem;\n if (result != null && this.captchaToken != null) {\n result.captchaToken = this.captchaToken;\n }\n return result;\n }\n\n blockSubmit$() {\n return this.hasCaptchaToken$.pipe(map(i => !i));\n }\n\n async getCustomConfirmComponent(adminPreview: boolean) {\n const component = markRaw((await import(/* webpackChunkName: \"PageAdmin\" */ \"./CaptchaConfirm.3.vue\")).default);\n return {\n component,\n data: {\n callback: (token: string) => this.setCaptchaToken(token),\n },\n };\n }\n}\n","import { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\n//import { map, first } from \"rxjs/operators\";\nimport { FormItem } from \"@cs/FormItem\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { CaptchaBehaviorSettings } from \"@cs-ts/captcha-behavior-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\n\nexport interface FormCaptchaItem extends FormItem {\n captchaToken: string;\n}\n\nexport default class CaptchaBehaviorDef extends BaseElementDef<CaptchaBehaviorSettings, FormDefinitionItem<CaptchaBehaviorSettings>, FormItem> {\n captchaToken: string | null;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<CaptchaBehaviorSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.captchaToken = null;\n }\n\n setCaptchaToken(token: string) {\n this.captchaToken = token;\n }\n\n getData(excludeChildren: boolean) {\n const result = super.getData(excludeChildren) as FormCaptchaItem;\n if (result != null && this.captchaToken != null) {\n result.captchaToken = this.captchaToken;\n }\n return result;\n }\n}\n","import { BaseElementDefBase, BaseElementDef } from \"./BaseElementDef\";\nimport { combineLatest, from, Observable, ReplaySubject } from \"rxjs\";\nimport { FormItem } from \"@cs/FormItem\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { DataTableSelectedColumnDataSettings } from \"@cs-ts/data-table-selected-column-data-settings\";\nimport { DataTableSettings } from \"@cs-ts/data-table-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { switchMap, map, first } from \"rxjs/operators\";\nimport { makeBackendFunc, ExtendedBackendResult } from \"../../lib/calculations.direct\";\nimport { KeyValue } from \"@cs/KeyValue\";\n\nexport interface FormDataTableItem extends FormItem {\n selectedRows: { data: string[] }[];\n}\nexport interface FormDataTableItemInput extends FormItem {\n selectedRows: string[][];\n}\n\nexport default class DataTableDef extends BaseElementDef<DataTableSettings, FormDefinitionItem<DataTableSettings>, FormItem> {\n declare definition: FormDefinitionItem<DataTableSettings>;\n declare selectedRows: string[][] | null;\n declare selectedRows$: ReplaySubject<string[][]>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<DataTableSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFDataTable\"; // TODO - not hardcoded?\n }\n\n setData(data: FormDataTableItemInput, excludeChildren: boolean) {\n super.setData(data, excludeChildren);\n this.setKey(data, \"selectedRows\", \"selectedRows\");\n }\n\n setSelectedRows(rows: string[][]) {\n this.selectedRows = rows;\n this.selectedRows$.next(rows);\n }\n\n getSelectedRows() {\n return this.selectedRows;\n }\n\n getData(excludeChildren: boolean) {\n const result = super.getData(excludeChildren) as FormDataTableItem;\n if (result != null && this.selectedRows != null) {\n result.selectedRows = this.selectedRows.map(v => ({ data: v }));\n }\n return result;\n }\n\n async exportRows(exportRowsData: KeyValue[][], exportType: string) {\n type ExportData = { data: KeyValue[][] | null; dataCount: number | null; exportType: string };\n const exportsAll = exportType == \"Export All\";\n let result: ExportData = {\n exportType,\n data: exportsAll ? null : exportRowsData,\n dataCount: exportsAll ? null : exportRowsData?.length,\n };\n if (this.definition.settings.dataSourceCalculationId != null && exportsAll) {\n const func = makeBackendFunc(\"exportDataTableDataCalc\");\n const calc = this.definition.settings.calculations[this.definition.settings.dataSourceCalculationId][0];\n const otherData$ = from([{ data: null, dataCount: null, exportType }]);\n const exportRows$ = (func(calc, { node: this, rootCalc: calc, ...this.calculationContext, debug: false }, otherData$, null) as ExtendedBackendResult).result as Observable<{ result: ExportData }>;\n const exportRows = await exportRows$.pipe(first()).toPromise();\n result = exportRows!.result;\n }\n return (await this.invokeAsync(\"exportDataTableData\", JSON.stringify(result))) as {\n Success: boolean;\n Token: string;\n };\n }\n\n rows$(skip$: Observable<number | null>, top$: Observable<number | null>, sort$: Observable<[string, string][]>) {\n if (this.definition.settings.dataSourceCalculationId != null) {\n const func = makeBackendFunc(\"resolveDatasourceLookup\");\n const calc = this.definition.settings.calculations[this.definition.settings.dataSourceCalculationId][0];\n ////const rows$ = func(calc, { node: this, ...this.calculationContext, debug: false }).result as Observable<{ result: Record<string, string>[] }>;\n ////return rows$.pipe(\n //// switchMap(result => {\n //// return combineLatest(skip$, top$, sort$).pipe(\n //// map(([skip, top, sort]) => {\n //// let filteredRows = (result.result ?? []).sort((a, b) => {\n //// let r = 0;\n //// for (const [sortCol, sortDir] of sort) {\n //// r = a[sortCol].localeCompare(b[sortCol]) * (sortDir == \"asc\" ? 1 : -1);\n //// if (r != 0) break;\n //// }\n //// return r;\n //// });\n //// if (skip != null && top != null) {\n //// filteredRows = filteredRows.slice(skip, skip + top);\n //// } else if (skip != null) {\n //// filteredRows = filteredRows.slice(skip);\n //// } else if (top != null) {\n //// filteredRows = filteredRows.slice(0, top);\n //// }\n //// return { data: filteredRows, dataCount: result.result?.length ?? 0 };\n //// }),\n //// );\n //// }),\n ////);\n const otherData$ = combineLatest(skip$, top$, sort$).pipe(map(([skip, top, sort]) => ({ SkipRows: skip, OnlyFirstRows: top, Sort: sort })));\n const rows$ = (func(calc, { node: this, rootCalc: calc, ...this.calculationContext, debug: false }, otherData$, null) as ExtendedBackendResult).result as Observable<{ result: { pagedRows: Record<string, string>[]; unpagedRowCount: number }; otherData: { SkipRows: number; OnlyFirstRows: number; Sort: string[][] } }>;\n return rows$.pipe(\n map(({ result: data, otherData }) => {\n return { data: data?.pagedRows ?? [], dataCount: data?.unpagedRowCount ?? 0 };\n }),\n );\n } else {\n return combineLatest(skip$, top$, sort$).pipe(\n switchMap(async ([skip, top, sort]) => {\n const result = (await this.invokeAsync(\"resolveDatatableData\", JSON.stringify({ skip, top, sort }))) as {\n data: { Key: string; Value: string }[][];\n dataCount: number;\n };\n return {\n data: result.data.map(i =>\n i.reduce(\n (r, i) => {\n r[i.Key] = i.Value;\n return r;\n },\n {} as Record<string, string>,\n ),\n ),\n dataCount: result.dataCount,\n };\n }),\n );\n }\n }\n}\n\nexport class DataTableSelectedColumnDataDef extends BaseElementDef<DataTableSelectedColumnDataSettings, FormDefinitionItem<DataTableSelectedColumnDataSettings>, FormItem> {\n declare definition: FormDefinitionItem<DataTableSelectedColumnDataSettings>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<DataTableSelectedColumnDataSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFDataTableSelectedColumnData\"; // TODO - not hardcoded?\n }\n\n valueList$(): Observable<string[]> {\n const datatable = this.parentElement as DataTableDef;\n const colIndex = datatable.definition.settings.tableColumns.findIndex(i => i.datasourceColumn == this.definition.settings.column);\n return datatable.selectedRows$.pipe(map(i => i.map(j => j[colIndex])));\n }\n\n effectiveValueList$(): Observable<string[]> {\n return this.valueList$();\n }\n}\n","import { FormItem } from \"@/cs-ts-bridge/ts/form-item\";\nimport { BaseElementDef, BaseElementDefBase, BaseControlDefBase } from \"./BaseElementDef\";\nimport { FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { IdVerificationSettings } from \"@cs-ts/id-verification-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { combineLatest, BehaviorSubject, Observable } from \"rxjs\";\nimport { map, switchMap, first } from \"rxjs/operators\";\nimport { IdVerificationTypeEnum } from \"@cs-ts/id-verification-type-enum\";\nimport { DocumentVerificationTypeEnum } from \"@cs-ts/document-verification-type-enum\";\nimport { KeyValue } from \"@cs/KeyValue\";\nimport FileDef from \"./FileDef\";\nimport { InvokeBody } from \"@cs-ts/invoke-body\";\nimport { VerificationResponse } from \"@cs/VerificationResponse\";\nimport { toUpperCase } from \"@/public/lib/caseOperations\";\nimport arrayEqual from \"@/lib/arrayEquals\";\nimport { PersonalVerificationSummary } from \"@cs/PersonalVerificationSummary\";\nimport flattenArrays from \"@/lib/flattenArrays\";\nimport generateGuid from \"@/lib/generateGuid\";\n\nexport interface FormVerificationItem extends FormItem {\n verificationResponse: string;\n verified: boolean | null;\n}\nconst personRequestToSettingMap = {\n AddressLine1: \"address1Id\",\n AddressLine2: \"address2Id\",\n City: \"cityId\",\n DateOfBirth: \"dateOfBirthId\",\n FirstName: \"firstNameId\",\n LastName: \"lastNameId\",\n Phone: \"phoneId\",\n Ssn: \"socialSecurityId\",\n State: \"stateId\",\n ZipCode: \"zipCodeId\",\n Email: \"emailId\",\n} as const;\n\nexport default class IdVerificationDef extends BaseElementDef<IdVerificationSettings, FormDefinitionItem<IdVerificationSettings>, FormItem> {\n declare associatedElements: string[];\n declare customErrorId: string;\n declare verificationResponse: string;\n declare verificationResponseRaw: { Success: boolean; Result: VerificationResponse } | null;\n declare _verified: boolean;\n declare _verified$: BehaviorSubject<boolean>;\n declare isPersonalIdVerification: boolean;\n declare validationMessages: string[];\n declare cacheKey$: BehaviorSubject<string>;\n\n constructor(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<IdVerificationSettings>, calculationContext: CalculationContext) {\n super(parentElement, elementData, definitionData, calculationContext);\n this.typeName = \"MI.Common.DynamicForms.Models.DFIdVerification\"; // TODO - not hardcoded?\n this.customErrorId = this.vmId + \"_Errors\";\n /** @type {string[]} */\n this.associatedElements = this.associatedElements || [];\n this.isFocusable = true; // To properly get custom validation as invalid element\n this.isPersonalIdVerification = this.definition.settings.type == IdVerificationTypeEnum.PersonalIdentityVerification;\n this.cacheKey$ = new BehaviorSubject<string>(\"\");\n }\n\n setData(data: FormVerificationItem, excludeChildren: boolean) {\n super.setData(data, excludeChildren);\n this.setKey(data, \"verificationResponse\");\n this.setKey(data, \"verified\", \"_verified\");\n this.setKey(data, \"validationMessages\");\n if (this.verificationResponse != null) {\n this.verificationResponseRaw = JSON.parse(this.verificationResponse);\n }\n }\n\n getData(excludeChildren: boolean) {\n const result = super.getData(excludeChildren) as FormVerificationItem;\n if (result != null && this.verificationResponse != null) {\n result.verificationResponse = this.verificationResponse;\n result.verified = this._verified;\n }\n return result;\n }\n\n async verifyIdentity() {\n const data: KeyValue[] = [];\n const error$s: Observable<boolean>[] = [];\n for (const element$ of this.calculatedElement$s()) {\n const pipes: any = []; // eslint-disable-line @typescript-eslint/no-explicit-any\n if (this.isPersonalIdVerification) {\n pipes.push(\n switchMap((children: BaseElementDefBase[]) => combineLatest(children.map(i => (i as BaseControlDefBase).effectiveValueList$()))),\n map((valueLists: string[]) => Array.prototype.concat.apply([], valueLists)),\n );\n } else {\n pipes.push(map((children: FileDef[]) => children.map(i => i.valueId)));\n }\n const element = (await element$.pipe(first()).toPromise())![0];\n element.markEdited();\n error$s.push(element.errors$().pipe(map(i => i.length > 0)));\n const value = ((await element$.pipe.apply(element$, pipes).pipe(first()).toPromise()) as string[])[0]; //eslint-disable-line prefer-spread\n if (value != null) {\n data.push({ Key: element.id!, Value: value });\n }\n }\n const hasErrors = await combineLatest(error$s)\n .pipe(\n map(value => value.some(i => i)),\n first(),\n )\n .toPromise();\n if (hasErrors) {\n this.markEdited();\n throw Error(\"Error\");\n }\n const adjuster = (postData: InvokeBody) => {\n postData.noWrite = false;\n return postData;\n };\n const response = (await this.invokeAsync(\"invokeIdVerification\", JSON.stringify(data), adjuster)) as {\n Success: boolean;\n Result: VerificationResponse;\n };\n this.verificationResponseRaw = response;\n this.verificationResponse = JSON.stringify(this.verificationResponseRaw);\n this.setVerified(response.Success);\n this.cacheKey$.next(generateGuid());\n return response;\n }\n\n effectiveExtraData$(type: string, fallbackCalculation: (extraCacheKey$?: Observable<string>) => Observable<string[] | null>) {\n return fallbackCalculation(this.cacheKey$);\n }\n\n setVerified(state: boolean, silent: boolean = false) {\n this._verified = state;\n if (!silent) {\n this._verified$.next(this._verified);\n }\n return state;\n }\n\n verified$() {\n return combineLatest(this.calculatedElement$s()).pipe(\n switchMap(el => {\n const elements: BaseElementDefBase[] = Array.prototype.concat.apply([], el);\n if (this.isPersonalIdVerification) {\n return combineLatest([this._verified$, combineLatest(elements.map(i => (i as BaseControlDefBase).effectiveValueList$().pipe(map(v => [i.id, v] as [string, string[]]))))]).pipe(\n map(([_, values]) => {\n if (this.verificationResponseRaw?.Result == null) return false;\n const personRequestData = Object.entries(personRequestToSettingMap).reduce(\n (acc, [requestProp, settingProp]) => {\n const settingId = this.definition.settings[settingProp];\n if (settingId != null) {\n acc[settingId] = this.verificationResponseRaw?.Result?.PersonalVerificationSummary?.PersonRequest?.[requestProp as keyof PersonalVerificationSummary[\"PersonRequest\"]] ?? undefined;\n }\n return acc;\n },\n {} as Record<string, string | undefined>,\n );\n const currentVerifiedState = this.verificationResponseRaw.Success;\n const result = values.every(([id, v]) => {\n const value = Array.prototype.concat.apply([], v as string[])[0];\n return toUpperCase(personRequestData[id]!) == toUpperCase(value);\n });\n this._edited$.next(result);\n return this.setVerified(currentVerifiedState && result, true);\n }),\n );\n } else {\n return combineLatest([this._verified$, combineLatest(elements.map(i => (i as FileDef).hasValue$().pipe(map(v => [(i as FileDef).valueId, v]))))]).pipe(\n map(([verified, values]) => {\n const valueIds = values.map(i => i[0]) as string[];\n const hasValues = values.map(i => i[1]) as boolean[];\n const responseSummary = this.verificationResponseRaw?.Result?.DocumentVerificationSummary;\n const responseValueIds = [responseSummary?.Front?.ValueId, responseSummary?.Back?.ValueId].filter(i => !!i);\n const result = arrayEqual(valueIds, responseValueIds) && hasValues.every(i => i);\n this._edited$.next(result);\n // Always make button editable whenever files are changed since we can't distinguish and compare exactly the previous and recent uploaded documents.\n return this.setVerified(verified && result, true);\n }),\n );\n }\n }),\n );\n }\n\n calculatedElement$s() {\n const keys = this.isPersonalIdVerification ? ([\"firstNameId\", \"lastNameId\", \"socialSecurityId\", \"dateOfBirthId\", \"address1Id\", \"address2Id\", \"cityId\", \"stateId\", \"zipCodeId\", \"emailId\", \"phoneId\"] as const) : this.definition.settings.documentType == DocumentVerificationTypeEnum.IdDriverLicense ? ([\"driverLicenseFrontId\", \"driverLicenseBackId\"] as const) : ([\"passportId\"] as const);\n return keys.filter(key => this.definition.settings[key] != null).map(key => this.calculationContext.rootElement!.getElementsById$(this.definition.settings[key]!, this.vmId));\n }\n\n calculatedElementsValid$() {\n return combineLatest(this.calculatedElement$s()).pipe(\n switchMap(elements => combineLatest(flattenArrays(elements).map(i => i.errors$().pipe(map(j => j.length == 0))))),\n map(valids => valids.every(i => i)),\n );\n }\n\n valid$(includeUnedited?: boolean, excludeChildren?: boolean) {\n const superValid$ = super.valid$(includeUnedited, excludeChildren);\n return combineLatest([superValid$, this._validateUnedited$(), this.edited$(), this.verified$()]).pipe(map(([superValid, validateUnedited, edited, verified]) => (superValid && (edited || validateUnedited) ? verified : true)));\n }\n\n errors$() {\n return this.valid$().pipe(map(valid => (valid ? [] : this.validationMessages.length > 0 ? this.validationMessages : [\"Must pass ID Verification to continue.\"])));\n }\n\n blockSubmit$() {\n return combineLatest([this.verified$(), this.visible$()]).pipe(map(([verified, visible]) => !verified && visible));\n }\n}\n","import AddressDef from \"./AddressDef\";\nimport { BaseElementDef, BaseElementDefBase } from \"./BaseElementDef\";\nimport CalculatedDef from \"./CalculatedDef\";\nimport ValidationDef from \"./ValidationDef\";\nimport CheckGroupDef from \"./CheckGroupDef\";\nimport ContactPageTemplateDef from \"./ContactPageTemplateDef\";\nimport ContentDef from \"./ContentDef\";\nimport ContentTemplatePageDef from \"./ContentTemplatePageDef\";\nimport DatePickerDef from \"./DatePickerDef\";\nimport DisplayIfOtherHasValueDef from \"./DisplayIfOtherHasValueDef\";\nimport DisplayElementDef from \"./DisplayElementDef\";\nimport DropDownListDef from \"./DropDownListDef\";\nimport ExtraDataShimDef from \"./ExtraDataShimDef\";\nimport FileDef from \"./FileDef\";\nimport { ForEachChildIdDef, ForEachChildIndexDef } from \"./ForEachDef\";\nimport ForEachDef from \"./ForEachDef\";\nimport FormAlternativeDef from \"./FormAlternativeDef\";\nimport FormDef from \"./FormDef\";\nimport LandingPageTemplateDef from \"./LandingPageTemplateDef\";\nimport PageDef from \"./PageDef\";\nimport StateFormDef from \"./StateFormDef\";\nimport PdfAlternativeDef from \"./PdfAlternativeDef\";\nimport RadioGroupDef from \"./RadioGroupDef\";\nimport RegionDef from \"./RegionDef\";\nimport RequireValueIfOtherHasValueDef from \"./RequireValueIfOtherHasValueDef\";\nimport SectionDef from \"./SectionDef\";\nimport TextboxDef from \"./TextboxDef\";\nimport ReceiptContentDef from \"./ReceiptContentDef\";\nimport DisplayStampedPdfDef from \"./DisplayStampedPdfDef\";\nimport DisplayGeneratedPdfDef from \"./DisplayGeneratedPdfDef\";\nimport FileDocumentDef from \"./FileDocumentDef\";\nimport CompletionRedirectDef from \"./CompletionRedirectDef\";\nimport SignatureDef from \"./SignatureDef\";\nimport CommonCheckoutDef from \"./CommonCheckoutDef\";\nimport LexmarkIntegrationDef from \"./LexmarkIntegrationDef\";\nimport CompletionEmailerDef from \"./CompletionEmailerDef\";\nimport SubmitTriggerDef from \"./SubmitTriggerDef\";\nimport WorkflowSwitchDef from \"./WorkflowSwitchDef\";\nimport CaptchaControlDef from \"./CaptchaControlDef\";\nimport CaptchaBehaviorDef, { FormCaptchaItem } from \"./CaptchaBehaviorDef\";\nimport DataTableDef, { DataTableSelectedColumnDataDef } from \"./DataTableDef\";\nimport IdVerificationDef from \"./IdVerificationDef\";\nimport { FormItem } from \"@cs-ts/form-item\";\nimport { FormDefinitionFormItem, FormDefinitionItem } from \"./__DefinitionDataInterface\";\nimport { IElementSettings } from \"@cs-ts/i-element-settings\";\nimport { CalculationContext } from \"./__CalculationContextInterface\";\nimport { AddressSettings } from \"@cs-ts/address-settings\";\nimport { FormMultiControlItem } from \"@cs/FormMultiControlItem\";\nimport { CheckGroupSettings } from \"@cs-ts/check-group-settings\";\nimport { FormJson } from \"@cs-ts/form-json\";\nimport { FormPageItem } from \"@cs/FormPageItem\";\nimport { FormFormStateItem } from \"@cs/FormFormStateItem\";\nimport { DropDownListSettings } from \"@cs-ts/drop-down-list-settings\";\nimport { ForEachSettings } from \"@cs-ts/for-each-settings\";\nimport { PageSettings } from \"@cs-ts/page-settings\";\nimport { StateFormSettings } from \"@cs-ts/state-form-settings\";\nimport { TextboxSettings } from \"@cs-ts/textbox-settings\";\nimport { ExtraDataShimSettings } from \"@cs-ts/extra-data-shim-settings\";\nimport { DataTableSettings } from \"@cs-ts/data-table-settings\";\nimport { CommonCheckoutSettings } from \"@cs-ts/common-checkout-settings\";\nimport { CompletionEmailerSettings } from \"@cs-ts/completion-emailer-settings\";\nimport { FormControlItem } from \"@cs/FormControlItem\";\nimport { CalculatedSettings } from \"@cs-ts/calculated-settings\";\nimport { ContactPageTemplateSettings } from \"@cs-ts/contact-page-template-settings\";\nimport { ContentTemplatePageSettings } from \"@cs-ts/content-template-page-settings\";\nimport { ContentSettings } from \"@cs-ts/content-settings\";\nimport { DatePickerSettings } from \"@cs-ts/date-picker-settings\";\nimport { DisplayIfOtherHasValueSettings } from \"@cs-ts/display-if-other-has-value-settings\";\nimport { LandingPageTemplateSettings } from \"@cs-ts/landing-page-template-settings\";\nimport { RadioGroupSettings } from \"@cs-ts/radio-group-settings\";\nimport { RequireValueIfOtherHasValueSettings } from \"@cs-ts/require-value-if-other-has-value-settings\";\nimport { ReceiptContentSettings } from \"@cs-ts/receipt-content-settings\";\nimport { IdVerificationSettings } from \"@cs-ts/id-verification-settings\";\nimport { FormFileItem } from \"@cs/FormFileItem\";\n\nfunction buildElement(parentElement: BaseElementDefBase | null, elementData: FormItem, definitionData: FormDefinitionItem<IElementSettings>, calculationContext: CalculationContext) {\n const type = definitionData.type;\n switch (type) {\n case \"AddressDef\":\n return new AddressDef(parentElement, elementData, definitionData as FormDefinitionItem<AddressSettings>, calculationContext);\n case \"CalculatedDef\":\n return new CalculatedDef(parentElement, elementData as FormMultiControlItem, definitionData as FormDefinitionItem<CalculatedSettings>, calculationContext);\n case \"ValidationDef\":\n return new ValidationDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"CheckGroupDef\":\n return new CheckGroupDef(parentElement, elementData as FormMultiControlItem, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"ContactPageTemplateDef\":\n return new ContactPageTemplateDef(parentElement, elementData, definitionData as FormDefinitionItem<ContactPageTemplateSettings>, calculationContext);\n case \"ContentDef\":\n return new ContentDef(parentElement, elementData, definitionData as FormDefinitionItem<ContentSettings>, calculationContext);\n case \"ContentTemplatePageDef\":\n return new ContentTemplatePageDef(parentElement, elementData, definitionData as FormDefinitionItem<ContentTemplatePageSettings>, calculationContext);\n case \"DatePickerDef\":\n return new DatePickerDef(parentElement, elementData as FormControlItem, definitionData as FormDefinitionItem<DatePickerSettings>, calculationContext);\n case \"DisplayElementDef\":\n return new DisplayElementDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"DisplayIfOtherHasValueDef\":\n return new DisplayIfOtherHasValueDef(parentElement, elementData, definitionData as FormDefinitionItem<DisplayIfOtherHasValueSettings>, calculationContext);\n case \"DropDownListDef\":\n return new DropDownListDef(parentElement, elementData as FormControlItem, definitionData as FormDefinitionItem<DropDownListSettings>, calculationContext);\n case \"ExtraDataShimDef\":\n return new ExtraDataShimDef(parentElement, elementData as FormControlItem, definitionData as FormDefinitionItem<ExtraDataShimSettings>, calculationContext);\n case \"FileDef\":\n return new FileDef(parentElement, elementData as FormFileItem, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"ForEachChildIdDef\":\n return new ForEachChildIdDef(parentElement, elementData as FormControlItem, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"ForEachChildIndexDef\":\n return new ForEachChildIndexDef(parentElement, elementData as FormControlItem, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"ForEachDef\":\n return new ForEachDef(parentElement, elementData, definitionData as FormDefinitionItem<ForEachSettings>, calculationContext);\n case \"FormAlternativeDef\":\n return new FormAlternativeDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"FormDef\":\n return new FormDef(parentElement, elementData as FormJson, definitionData as FormDefinitionFormItem, calculationContext);\n case \"LandingPageTemplateDef\":\n return new LandingPageTemplateDef(parentElement, elementData, definitionData as FormDefinitionItem<LandingPageTemplateSettings>, calculationContext);\n case \"PageDef\":\n return new PageDef(parentElement, elementData as FormPageItem, definitionData as FormDefinitionItem<PageSettings>, calculationContext);\n case \"StateFormDef\":\n return new StateFormDef(parentElement, elementData as FormFormStateItem, definitionData as FormDefinitionItem<StateFormSettings>, calculationContext);\n case \"PdfAlternativeDef\":\n return new PdfAlternativeDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"RadioGroupDef\":\n return new RadioGroupDef(parentElement, elementData as FormControlItem, definitionData as FormDefinitionItem<RadioGroupSettings>, calculationContext);\n case \"RegionDef\":\n return new RegionDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"RequireValueIfOtherHasValueDef\":\n return new RequireValueIfOtherHasValueDef(parentElement, elementData, definitionData as FormDefinitionItem<RequireValueIfOtherHasValueSettings>, calculationContext);\n case \"SectionDef\":\n return new SectionDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"TextboxDef\":\n return new TextboxDef(parentElement, elementData as FormControlItem, definitionData as FormDefinitionItem<TextboxSettings>, calculationContext);\n case \"DataTableDef\":\n return new DataTableDef(parentElement, elementData, definitionData as FormDefinitionItem<DataTableSettings>, calculationContext);\n case \"DataTableSelectedColumnDataDef\":\n return new DataTableSelectedColumnDataDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"ReceiptContentDef\":\n return new ReceiptContentDef(parentElement, elementData, definitionData as FormDefinitionItem<ReceiptContentSettings>, calculationContext);\n case \"DisplayStampedPdfDef\":\n return new DisplayStampedPdfDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"DisplayGeneratedPdfDef\":\n return new DisplayGeneratedPdfDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"FileDocumentDef\":\n return new FileDocumentDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"CompletionRedirectDef\":\n return new CompletionRedirectDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"CommonCheckoutDef\":\n return new CommonCheckoutDef(parentElement, elementData, definitionData as FormDefinitionItem<CommonCheckoutSettings>, calculationContext);\n case \"SubmitTriggerDef\":\n return new SubmitTriggerDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"WorkflowSwitchDef\":\n return new WorkflowSwitchDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"LexmarkIntegrationDef\":\n return new LexmarkIntegrationDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"CompletionEmailerDef\":\n return new CompletionEmailerDef(parentElement, elementData, definitionData as FormDefinitionItem<CompletionEmailerSettings>, calculationContext);\n case \"SignatureDef\":\n return new SignatureDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"CaptchaControlDef\":\n return new CaptchaControlDef(parentElement, elementData as FormCaptchaItem, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"CaptchaBehaviorDef\":\n return new CaptchaBehaviorDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n case \"IdVerificationDef\":\n return new IdVerificationDef(parentElement, elementData, definitionData as FormDefinitionItem<IdVerificationSettings>, calculationContext);\n default:\n //debugger;\n return new BaseElementDef(parentElement, elementData, definitionData as FormDefinitionItem<CheckGroupSettings>, calculationContext);\n }\n}\n\nexport { buildElement as default };\n","import { fetchXsrf } from \"@/lib/fetchHelpers.3\";\nimport { mainStore } from \"@/mainStore\";\nexport async function deleteDraft(context: mainStore, id: string, asAdmin: boolean, areaCode: string) {\n const url = await context.getUrl(\"deleteDraft\", { tenantCode: areaCode, formId: id, asAdmin: asAdmin });\n const response = await fetchXsrf(context, url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n credentials: \"same-origin\",\n });\n if (response.status == 200 || isOfflineAndUsingServiceWorker(response)) {\n return;\n } else {\n throw new Error(\"Not 200 OK: \" + response.status + \" \" + response.statusText);\n }\n}\nlet hasServiceWorker = false;\nif (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready.then(function () {\n hasServiceWorker = true;\n });\n}\nexport function isOfflineAndUsingServiceWorker(response: Response) {\n if ((navigator.onLine && response.statusText != \"Service worker timeout\") || !(\"serviceWorker\" in navigator)) {\n return false;\n }\n return hasServiceWorker;\n}\nexport function isUsingServiceWorker() {\n return hasServiceWorker;\n}\n","//@ts-nocheck\n/**\n * This is a TypeGen auto-generated file.\n * Any changes made to this file can be lost when this file is regenerated.\n */\n\nexport enum FormSubmitResultEnum {\n ValidationFailed = 0,\n Redirect = 1,\n Submitted = 2,\n SubmittedWithRedirect = 3,\n Dialog = 4,\n}\n","import { ref, computed } from \"vue\";\nimport { defineStore } from \"pinia\"; //cspell:ignore pinia // todo global\nimport buildElement from \"../elements/buildElement\";\nimport generateGuid from \"@/lib/generateGuid\";\n// TODO move these?\nimport { AvailabilityType } from \"@cs/AvailabilityType\";\nimport { deleteDraft as deleteDraftFunc, isOfflineAndUsingServiceWorker, isUsingServiceWorker } from \"../../lib/pageIndexOperations\";\nimport { fetchXsrf, throwIfNonSuccessStatus } from \"@/lib/fetchHelpers.3\";\nimport { combineLatest, from, Observable, BehaviorSubject } from \"rxjs\";\nimport { map, first, switchMap } from \"rxjs/operators\";\nimport FormDef from \"../elements/FormDef\";\nimport FileDef, { InputFormFileItem } from \"../elements/FileDef\";\nimport type ForEachDef from \"../elements/ForEachDef\";\nimport type CaptchaControlDef from \"../elements/CaptchaControlDef\";\nimport { BaseControlDefBase, BaseElementDefBase, IPostSubmitRedirectElement, isIPostSubmitRedirectElement } from \"../elements/BaseElementDef\";\nimport { Comment } from \"@cs-ts/comment\";\nimport StateFormDef from \"../elements/StateFormDef\";\nimport type PageDef from \"../elements/PageDef\";\nimport { watch } from \"vue\";\nimport { useMainStore } from \"../../../mainStore\";\nimport { StandardFormStatus } from \"@cs/StandardFormStatus\";\nimport { ForEachDefItem } from \"../elements/ForEachDef\";\nimport { FormJson } from \"@cs/FormJson\";\nimport { SaveAllAndSubmitResponse } from \"@cs/SaveAllAndSubmitResponse\";\nimport { ManualOverrideInvokeResult } from \"@cs/ManualOverrideInvokeResult\";\nimport { FormSubmitResultEnum } from \"@cs/FormSubmitResultEnum\";\nimport { ReviewDataData } from \"@cs/ReviewDataData\";\nimport { AddCommentResponse } from \"@cs/AddCommentResponse\";\nimport { SimpleResult } from \"@cs/SimpleResult\";\nimport { FormDefinitionFormItem } from \"../elements/__DefinitionDataInterface\";\nimport { CalculationContext } from \"../elements/__CalculationContextInterface\";\nimport { KnownFeatureFlags } from \"@cs/KnownFeatureFlags\";\n// TODO separate file?\nexport function toObserverComputed<T>(func: () => T, log?: string | ((i: T) => string)): Observable<T> {\n const subject = new BehaviorSubject<T>(null!);\n watch(\n func,\n result => {\n if (log) {\n console.log({ log: log instanceof Function ? log(result) : log, result });\n }\n subject.next(result);\n },\n {\n immediate: true,\n onTrack:\n log != null\n ? result => {\n console.log({ onTrack: result });\n }\n : undefined,\n onTrigger:\n log != null\n ? result => {\n console.log({ onTrigger: result });\n }\n : undefined,\n },\n );\n return subject;\n}\nexport const usePageStore = defineStore(\"page\", () => {\n const state = {\n segment: ref(null as string | null),\n page: ref(null as null | number),\n formData: ref<FormDef | null>(null as null | FormDef),\n baseFormData: ref<FormDef | null>(null as null | FormDef),\n formDataLoading: ref(null as null | boolean),\n adminPreview: ref(null as null | boolean),\n adminReview: ref(null as null | boolean),\n testMode: ref(null as null | boolean),\n adminEditElementIds: ref([] as string[]), // type?\n canAddComments: ref(false as boolean),\n canChangeStatus: ref(false as boolean),\n canUpgradeDefinition: ref(false as boolean),\n canReplyToComments: ref(false as boolean),\n canAdminEditData: ref(false as boolean),\n anonymousUser: ref(false as boolean),\n canDeleteSubmissions: ref(false as boolean),\n canDeleteReviewComments: ref(false as boolean),\n showAdminDiff: ref(false as boolean),\n unsavedFormId: ref(null as string | null),\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n pendingActions: ref(new Set<Promise<any>>()),\n isSaveDisabledOnSectionChange: ref(false as boolean),\n schemaLabelMappingPromise: ref(null as null | Promise<Record<string, string>>),\n fakeFormId: ref(null as null | string),\n pendingAddressVerifications: ref(new Set<Promise<void>>()),\n } as const;\n\n function _getElementByVmId(vmId: string | { vmId: string } | string) {\n //@ts-expect-error\n let result = state.formData.value ? (state.formData.value.getElementByVmId(vmId.vmId || vmId) as BaseElementDefBase) : null;\n if (result == null && state.adminPreview.value) {\n //@ts-expect-error\n result = state.baseFormData.value ? state.baseFormData.value.getElementByVmId(vmId.vmId || vmId) : null;\n }\n return result;\n }\n function _getChildren(baseElement: BaseElementDefBase | null | undefined, currentElement: BaseElementDefBase) {\n if (state.adminPreview.value) {\n const baseChildren = baseElement == null ? [] : baseElement.children;\n const currentChildren: BaseElementDefBase[] = currentElement == null ? [] : currentElement.children;\n const result = [];\n let index = 0;\n const maxLength = Math.max(currentChildren.length, baseChildren.length);\n for (index = 0; index < maxLength; index++) {\n if (index < currentChildren.length) {\n const currentChild = currentChildren[index];\n result.push(currentChild);\n }\n if (index < baseChildren.length) {\n const baseChild = baseChildren[index];\n if (!currentChildren.some(i => i.id == baseChild.id)) {\n result.push(baseChild);\n }\n }\n }\n return result;\n } else {\n return currentElement ? currentElement.children : null;\n }\n }\n function _calculateElementPath(element: BaseElementDefBase): string {\n let elementPath = \"\";\n const rootElement = state.formData.value as FormDef;\n //if (rootElement != element) {\n const elementPathElements = rootElement.getElementPathByVmId(element.vmId) as BaseElementDefBase[];\n //@ts-ignore\n ({ elementPath } = elementPathElements.slice(1, 1000000).reduce(\n //@ts-ignore\n (a, i) => {\n return { parent: i, elementPath: a.elementPath + \".Children[\" + a.parent.children.indexOf(i) + \"]\" };\n },\n { parent: rootElement, elementPath: \"FormModel\" },\n ));\n return elementPath;\n }\n function _adminPreview() {\n return state.adminPreview.value;\n }\n function _showChanges() {\n return _adminPreview() && state.showAdminDiff.value;\n }\n function _getElementsByFilter(filter: (i: BaseElementDefBase) => boolean) {\n const rootElement = state.formData.value;\n return rootElement!.getElementsByFilter(filter);\n }\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n const memorizeState = {} as { [a: string]: any };\n function memorizeInState<T>(key: string, func: () => T): T {\n if (!(key in memorizeState)) {\n memorizeState[key] = func();\n }\n return memorizeState[key];\n }\n\n const pages$ = toObserverComputed(() => _getPages());\n const status$ = toObserverComputed(() => state.formData.value?.status ?? null);\n const segment$ = toObserverComputed(() => state.segment.value);\n\n function _getVisiblePages$() {\n return memorizeInState(\"__getVisiblePages$\", () => {\n return combineLatest([pages$, status$, segment$]).pipe(\n map(([pages, status, segment]) => {\n if (pages == null) {\n return [];\n }\n if (state.adminPreview.value) {\n return pages;\n }\n const mode = state.adminReview.value ? \"Admin\" : \"Public\"; // TODO?\n return pages\n .filter(i => i.isVisible(mode, status!, segment!))\n .sort((a, b) => {\n const aE = a.isEditable(mode, status!, segment!);\n const bE = b.isEditable(mode, status!, segment!);\n if (aE == bE) {\n const aS = a.definition.settings.segment;\n const bS = b.definition.settings.segment;\n if (aS == bS) {\n return 0;\n } else if (aS! < bS!) {\n return -1;\n } else {\n return 1;\n }\n } else if (aE) {\n return 1;\n } else {\n return -1;\n }\n });\n }),\n );\n });\n }\n function _getVisiblePages() {\n const pages = _getPages() || [];\n if (state.adminPreview.value) {\n return pages;\n }\n return pages\n .filter(i => i.isVisible(state.adminReview.value ? \"Admin\" : \"Public\", state.formData.value!.status, state.segment.value!))\n .sort((a, b) => {\n const aE = a.isEditable(state.adminReview.value ? \"Admin\" : \"Public\", state.formData.value!.status, state.segment.value!);\n const bE = b.isEditable(state.adminReview.value ? \"Admin\" : \"Public\", state.formData.value!.status, state.segment.value!);\n if (aE == bE) {\n const aS = a.definition.settings.segment;\n const bS = b.definition.settings.segment;\n if (aS == bS) {\n return 0;\n } else if (aS! < bS!) {\n return -1;\n } else {\n return 1;\n }\n } else if (aE) {\n return 1;\n } else {\n return -1;\n }\n });\n }\n function _getEnabledPages$() {\n return memorizeInState(\"_getEnabledPages$\", () => {\n const subject = _getVisiblePages$();\n return subject.pipe(\n switchMap(j =>\n combineLatest(\n (j || []).map(i => {\n //@ts-ignore\n const enabled$ = i.isEnabled$ ? i.isEnabled$(\"Edit\") : from([!i.isEnabled || i.isEnabled(\"Edit\")]);\n const permitLaterPages$ = i.permitLaterPages$ ? i.permitLaterPages$() : from([true]);\n return combineLatest([enabled$, permitLaterPages$]).pipe(map(([v, l]) => [i, v, l, i.definition.settings.segment ?? \"\"] as const));\n }),\n ),\n ),\n map(i => {\n const r = i.filter(j => j[1]);\n const r2 = [];\n const stop: Record<string, boolean> = {};\n for (const page of r) {\n if (stop[page[3]]) {\n continue;\n }\n if (!page[2]) {\n stop[page[3]] = true;\n }\n r2.push(page[0]);\n }\n return r2;\n }),\n );\n });\n }\n function _getEndUserStatuses() {\n // TODO maybe this belongs in the FormDef class\n // TODO: Proper annotation\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (state.formData.value!.definition as any).effectiveStatuses.filter((i: any) => i.mode == \"User\").map((i: any) => i.value);\n }\n function _getPages(): PageDef[] {\n return (_getChildren(state.baseFormData.value as FormDef, state.formData.value! as FormDef) || []).filter(i => i.definition.type == \"PageDef\").filter(i => (_showChanges() ? true : i.isBase !== true)) as unknown as PageDef[];\n }\n function segmentsF() {\n if (state.formData.value == null) {\n return null;\n }\n return (state.formData.value.getElementsByFilter((i: BaseElementDefBase) => i.definition.type == \"StateFormDef\").slice() as StateFormDef[]).sort((a, b) => (a.completedDate < b.completedDate ? -1 : a.completedDate > b.completedDate ? 1 : 0));\n }\n function _initializedSegments() {\n const segments = segmentsF();\n if (segments != null && segments.length > 0) {\n if (_adminPreview()) {\n return segments;\n }\n const matchingSegments = segments.filter(i => i.activatedDate || i.completedDate);\n return matchingSegments;\n }\n return null;\n }\n function _uninitializedSegments() {\n const segments = segmentsF();\n if (segments != null && segments.length > 0) {\n if (_adminPreview()) {\n return segments;\n }\n const matchingSegments = segments.filter(i => !i.activatedDate && !i.completedDate);\n return matchingSegments;\n }\n return null;\n }\n function _completedSegments() {\n const segments = segmentsF();\n if (segments != null && segments.length > 0) {\n const matchingSegments = segments.filter(i => i.completedDate != null && i.status != \"Returned\" && i.state != \"ReturnedPending\");\n return matchingSegments;\n }\n return null;\n }\n function _visibleSegments() {\n const segments = segmentsF();\n if (segments != null && segments.length > 0) {\n if (_adminPreview()) {\n return segments;\n }\n const matchingSegments = segments.filter(i => i.can(\"view\", state.adminReview.value ?? false));\n return matchingSegments;\n }\n return null;\n }\n function _status() {\n return state.formData.value ? state.formData.value.status : null;\n }\n function _unlockableSegments() {\n const segments = _visibleSegments();\n if (segments != null) {\n if (_adminPreview()) {\n return segments;\n }\n const matchingSegments = segments.filter(i => i.can(\"unlock\", state.adminReview.value ?? false));\n return matchingSegments;\n }\n return null;\n }\n function _availableSegments() {\n const segments = _visibleSegments();\n if (segments != null) {\n if (_adminPreview()) {\n return segments;\n }\n const matchingSegments = segments.filter(i => i.can(\"assign\", state.adminReview.value ?? false));\n return matchingSegments;\n }\n return null;\n }\n\n function _activeSegments() {\n const segments = _availableSegments();\n if (segments != null) {\n if (_adminPreview()) {\n return segments;\n }\n const matchingSegments = segments.filter(i => i.can(\"edit\", state.adminReview.value ?? false));\n return matchingSegments;\n }\n return null;\n }\n\n function _hasCompletedSegmentsToReturnTo() {\n const segments = _completedSegments();\n if (isWorkflow.value) {\n if (segments != null && segments.length > 0 && segments.some(x => x.definition?.settings?.allowReturning == true || x.definition?.settings?.allowReturning == null)) {\n return true;\n }\n return false;\n }\n return true;\n }\n function _possibleStagesToReturn() {\n const segments = _completedSegments();\n if (isWorkflow.value) {\n return segments?.filter(i => i.definition?.settings?.allowReturning == true || i.definition?.settings?.allowReturning == null);\n }\n return segments;\n }\n const getElementByVmId = (vmId: BaseElementDefBase | string) => _getElementByVmId(vmId);\n const getElementsById$ = (id: string, contextVmId: string) => (state.formData.value ? state.formData.value.getElementsById$(id, contextVmId) : from([[]]));\n const formDataTyped = computed(() => {\n return state.formData.value;\n });\n const baseFormDataTyped = computed(() => {\n return state.baseFormData.value;\n });\n const getValueByVmId = (vmId: string | BaseElementDefBase) => {\n const element = getElementByVmId(vmId) as BaseControlDefBase | null;\n if (element == null) {\n return null;\n }\n return element.value();\n };\n const getChildrenByVmId = (vmId: string | BaseElementDefBase) => {\n const element = getElementByVmId(vmId)!;\n const currentElement = element.isBase ? element.baseLink! : element;\n const baseElement = element.isBase ? element : element.baseLink;\n return _getChildren(baseElement, currentElement);\n };\n const isAdminEditingById = (vmId: string) => {\n return state.adminEditElementIds.value.includes(vmId);\n };\n const getValuesById$ = (id: string, contextVmId: string) => {\n const elements = getElementsById$(id, contextVmId);\n return elements.pipe(switchMap((i: BaseElementDefBase[] | null) => (i == null ? from([null]) : combineLatest(i.map(j => (j as BaseControlDefBase).effectiveValueList$())).pipe(map(valueLists => Array.prototype.concat.apply([], valueLists))))));\n };\n const getElementPathString = (element: BaseElementDefBase) => _calculateElementPath(element);\n const viewTypes = computed(() => {\n return state.formData.value!.viewTypes;\n });\n const directLinkTemplates = computed(() => {\n return _getElementsByFilter(i => i.definition.type == \"DirectLinkTemplateDef\");\n });\n\n const isWorkflow = computed(() => {\n if (state.formData.value == null) {\n return null;\n }\n return state.formData.value.getElementsByFilter((i: BaseElementDefBase) => i.definition.type == \"WorkflowDef\").length > 0;\n });\n const allFileElements = computed(() => {\n return _getElementsByFilter(i => i.definition.type == \"FileDef\");\n });\n const allElementsWithFileComments = computed(() => {\n return _getElementsByFilter(i => i.comments != null && i.comments.some(i => i.files != null && i.files.length > 0));\n });\n const allElementsWithHistory = computed(() => {\n return _getElementsByFilter(i => i.history != null && i.history.length > 0);\n });\n const allHistoryEntries = computed(() => {\n return allElementsWithHistory.value.map(e => e.history.map(h => ({ ...h, element: e }))).flat();\n });\n const allElementsWithIssues = computed(() => {\n return _getElementsByFilter(i => i.issues != null && i.issues.length > 0);\n });\n const allIssuesEntries = computed(() => {\n return allElementsWithIssues.value.map(e => e.issues.map(h => ({ ...h, element: e }))).flat();\n });\n const hasIssues = computed(() => {\n if (state.formData.value == null) {\n return null;\n }\n return allElementsWithIssues.value.length > 0;\n });\n const segments = computed(() => {\n return segmentsF();\n });\n const initializedSegments = computed(() => {\n return _initializedSegments();\n });\n const uninitializedSegments = computed(() => {\n return _uninitializedSegments();\n });\n const visibleSegments = computed(() => {\n return _visibleSegments();\n });\n const availableSegments = computed(() => {\n return _availableSegments();\n });\n const unlockableSegments = computed(() => {\n return _unlockableSegments();\n });\n const completedSegments = computed(() => {\n return _completedSegments();\n });\n const activeSegments = computed(() => {\n return _activeSegments();\n });\n const hasCompletedSegmentsToReturnTo = computed(() => {\n return _hasCompletedSegmentsToReturnTo();\n });\n const possibleStagesToReturn = computed(() => {\n return _possibleStagesToReturn();\n });\n //const state.adminPreview = computed(() => {\n // return _adminPreview(stateB);\n //},\n //state.adminReview(stateB)[\"adminReview\"] {\n // return adminReview.value;\n //},\n //testMode(stateB)[\"testMode\"] {\n // return testMode.value;\n //},\n //canAddComments(stateB)[\"canAddComments\"] {\n // return canAddComments.value;\n //},\n //canChangeStatus(stateB)[\"canChangeStatus\"] {\n // return canChangeStatus.value;\n //},\n //canReplyToComments(stateB)[\"canReplyToComments\"] {\n // return canReplyToComments.value;\n //},\n //anonymousUser(stateB)[\"anonymousUser\"] {\n // return anonymousUser.value;\n //},\n const showChanges = computed(() => {\n return _showChanges();\n });\n const hasChanges = computed(() => {\n return state.adminPreview.value && state.formData.value != null ? state.formData.value.baseChangeRecursive() == \"changed\" : false;\n });\n const isSubmittable$ = computed(() => {\n return pages$.pipe(\n switchMap(i => combineLatest(i!.map(j => j.permitLaterPages$()))),\n map(i => i.every(j => j)),\n );\n });\n const isOffline = computed(() => {\n if (state.formData.value != null) {\n if (state.adminPreview.value || state.adminReview.value) {\n return false;\n }\n if (status.value == StandardFormStatus.Returned) {\n return false;\n }\n const defSettings = state.formData.value.definition.settings;\n const availability = defSettings.availability;\n if (availability == AvailabilityType.Online) {\n return false;\n } else if (availability == AvailabilityType.Offline) {\n return true;\n } else if (availability == AvailabilityType.Scheduled || availability == null) {\n const now = new Date();\n const zonedToJsTime = (date: string) => new Date(date.replace(/\\s.*$/, \"\").replace(/([-+]\\d\\d)$/, \"$1:00\"));\n const startDate = defSettings.effectiveStartDate;\n const endDate = defSettings.effectiveDeadline;\n return (startDate != null && now < zonedToJsTime(startDate)) || (endDate != null && now >= zonedToJsTime(endDate));\n } else {\n debugger;\n return false;\n }\n } else {\n return false;\n }\n });\n const endUserStatuses = computed(() => {\n return _getEndUserStatuses();\n });\n const formId = computed(() => {\n return state.formData.value ? state.formData.value.formId : null;\n });\n const formTenantCode = computed(() => {\n return state.formData.value ? state.formData.value.definition.formTenant : null;\n });\n const status = computed(() => {\n return _status();\n });\n const title = computed(() => {\n return state.formData.value ? state.formData.value.definition.settings.label : null;\n });\n const offlineContent = computed(() => {\n return state.formData.value ? state.formData.value.definition.settings.offlineContent : null;\n });\n const mustLogin = computed(() => {\n return state.formData.value ? state.formData.value.definition.settings.mustLogin || (activeSegments.value || []).some(i => i.definition.settings.mustLogin) : null;\n });\n const formSettings = computed(() => {\n return state.formData.value ? state.formData.value.definition.settings : null;\n });\n const isViewOnly = computed(() => {\n return state.formData.value ? !!state.formData.value.definition.settings.isViewOnly : null;\n });\n const isPageViewOnly = (pageNumber: number) => {\n const page = pages.value[pageNumber - 1];\n return isPageObjViewOnly(page, false);\n };\n const isPageEditable = (pageNumber: number) => {\n const page = pages.value[pageNumber - 1];\n return isPageObjEditable(page);\n };\n const isPageObjViewOnly$ = (page: PageDef) => {\n if (isViewOnly.value) {\n return from([true as null | boolean]);\n }\n return isPageObjControlsViewOnly$(page);\n };\n const isPageObjControlsViewOnly$ = (page: PageDef) => {\n if (page == null) {\n return from([null as null | boolean]);\n }\n if (state.adminPreview.value) {\n return from([false as null | boolean]);\n }\n return combineLatest([status$, segment$]).pipe(\n map(([status, segment]) => {\n if (page.isViewOnly(state.adminReview.value ? \"Admin\" : \"Public\", status!, segment!)) {\n return true;\n }\n return null;\n }),\n );\n };\n const isPageObjViewOnly = (page: PageDef, ignoreSegment: boolean) => {\n if (isViewOnly.value) {\n return true;\n }\n if (page == null) {\n return null;\n }\n if (state.adminPreview.value) {\n return false;\n }\n if (page.isViewOnly(state.adminReview.value ? \"Admin\" : \"Public\", status.value!, ignoreSegment ? null : state.segment.value!)) {\n return true;\n }\n return null;\n };\n const isPageObjEditable = (page: PageDef) => {\n if (isViewOnly.value) {\n return false;\n }\n if (page == null) {\n return null;\n }\n if (state.adminPreview.value) {\n return true;\n }\n if (page.isEditable(state.adminReview.value ? \"Admin\" : \"Public\", status.value!, state.segment.value!)) {\n return true;\n }\n return null;\n };\n const pages = computed(() => {\n return _getPages();\n });\n const currentStatusLabel = computed(() => {\n if (state.formData.value) {\n const status = state.formData.value!.definition.effectiveStatuses!.find(i => i.value == state.formData.value!.status)!;\n return status.adminText || status.value;\n }\n return null;\n });\n const statusLabel = (status: string) => {\n if (state.formData.value) {\n const status2 = state.formData.value.definition.effectiveStatuses?.find(i => i.value == status);\n return status2?.adminText || status2?.value;\n }\n return null;\n };\n const isClientValidationOnly = computed(() => {\n return (_getChildren(state.baseFormData.value as unknown as BaseElementDefBase, state.formData.value! as unknown as BaseElementDefBase) || []).filter(i => (_showChanges() ? true : i.isBase !== true)).some(i => i.definition.type == \"DynamicContentTemplateDef\");\n });\n const possibleStatuses = computed(() => {\n return state.formData.value ? state.formData.value.definition.effectiveStatuses?.filter(i => i.value != StandardFormStatus.Deleted && i.value != state.formData.value!.status && !i.value?.includes(\"(submitting)\") && !i.adminText?.includes(\"(submitting)\")) ?? [] : [];\n });\n const visiblePages = computed(() => {\n return _getVisiblePages();\n });\n const visiblePages$ = computed(() => {\n return _getVisiblePages$();\n });\n const enabledPages$ = computed(() => {\n return _getEnabledPages$();\n });\n const enabledPagesPromise = computed(() => {\n return enabledPages$.value.pipe(first()).toPromise();\n });\n //unenabledPages: (state ,getters) => {\n // const pages = getters['pages']||[];\n // const enabledPages = new Set(getters['enabledPages']||[]);\n // return pages.filter(i => !enabledPages.has(i));\n //},\n const comments = computed(() => {\n return state.formData.value ? state.formData.value.comments : null;\n });\n const pendingActionPromise = computed(() => {\n return Promise.all(Array.from(state.pendingActions.value));\n });\n const setAdminEditing = ({ vmId, enabled }: { vmId: string; enabled: boolean }): void => {\n if (enabled) {\n if (!state.adminEditElementIds.value.includes(vmId)) {\n state.adminEditElementIds.value.push(vmId);\n }\n } else {\n if (state.adminEditElementIds.value.includes(vmId)) {\n state.adminEditElementIds.value = state.adminEditElementIds.value.filter(i => i != vmId);\n }\n }\n };\n const clearAdminEditing = (): void => {\n state.adminEditElementIds.value = [];\n };\n const setSegment = (segmentI: string): void => {\n state.segment.value = segmentI;\n };\n const setValueByVmId = (params: { id: string; value: string | string[] }): void => {\n (_getElementByVmId(params.id) as BaseControlDefBase).setValue(params.value);\n };\n const setFileStatusByVmId = (params: { id: string; status: string }): void => {\n const element = _getElementByVmId(params.id) as FileDef;\n element.uploadStatus = params.status;\n };\n const setFileInfoByVmId = (params: Partial<InputFormFileItem> & { id: string }): void => {\n const element = _getElementByVmId(params.id) as FileDef;\n element.setFileData(params as InputFormFileItem);\n };\n const addForEachItem = (vmId: string): void => {\n (_getElementByVmId(vmId) as ForEachDef)?.addItem(null);\n };\n const removeForEachItem = (params: { forEachVmId: string; item: ForEachDefItem; calculatedItems: string[] }): void => {\n (_getElementByVmId(params.forEachVmId) as ForEachDef)?.removeItem(params.item, params.calculatedItems);\n };\n const setForEachChildren = (params: { forEachVmId: string; ids: string[] }): void => {\n const foreach = _getElementByVmId(params.forEachVmId) as unknown as ForEachDef;\n if (foreach != null) {\n foreach.setCalculationItems(params.ids);\n }\n };\n const toggleAdminDiff = (): void => {\n state.showAdminDiff.value = !state.showAdminDiff.value;\n };\n //setFormSubmitButtonText = (value: string): void => {\n // state.formData.value!.definition.settings.effectiveSubmitButtonText = value;\n //},\n const _formDataIsLoading = (): void => {\n state.formDataLoading.value = true;\n state.formData.value = null;\n };\n // TODO: Proper annotation\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _formDataLoaded = (data: any): void => {\n state.fakeFormId.value = null;\n state.unsavedFormId.value = null;\n state.segment.value = data.segment;\n state.formData.value = data.formData;\n state.baseFormData.value = data.baseFormData;\n state.formDataLoading.value = false;\n state.adminPreview.value = data.adminPreview;\n state.adminReview.value = data.adminReview;\n state.testMode.value = data.testMode;\n state.canAddComments.value = data.canAddComments;\n state.canChangeStatus.value = data.canChangeStatus;\n state.canUpgradeDefinition.value = data.canUpgradeDefinition;\n state.canReplyToComments.value = data.canReplyToComments;\n state.canAdminEditData.value = data.canAdminEditData;\n state.anonymousUser.value = data.anonymousUser;\n state.canDeleteSubmissions.value = data.canDeleteSubmissions;\n state.canDeleteReviewComments.value = data.canDeleteReviewComments;\n state.adminEditElementIds.value = [];\n };\n const _formDataUpdated = (formDataI: FormJson): void => {\n state.formData.value!.setData(formDataI);\n };\n const _setFormId = (formId: string): void => {\n state.formData.value!.formId = formId;\n state.unsavedFormId.value = null;\n };\n const _setAllPagesStatus = (status: string | null): void => {\n _getVisiblePages().forEach(p => {\n if (p.setStatus) {\n p.setStatus(status!);\n }\n });\n };\n const _addPendingAction = <T>(promise: Promise<T>): void => {\n state.pendingActions.value.add(promise);\n };\n const _removePendingAction = <T>(promise: Promise<T>): void => {\n state.pendingActions.value.delete(promise);\n };\n const _addComment = ({ elementData, comment }: { elementData: BaseElementDefBase; comment: Comment }): void => {\n //@ts-ignore\n elementData.comments!.push(comment);\n };\n const _setCommentVisibility = ({ elementData, commentId, visibleToSubmitter }: { elementData: BaseElementDefBase; commentId: string; visibleToSubmitter: boolean }): void => {\n const comment = elementData.comments.find(i => i.id == commentId);\n comment!.visibleToSubmitter = visibleToSubmitter;\n };\n const _makeUneditable = (): void => {\n state.canAddComments.value = false;\n state.canChangeStatus.value = false;\n state.canReplyToComments.value = false;\n state.canAdminEditData.value = false;\n state.anonymousUser.value = false;\n };\n const _setSchemaLabelMapping = (value: Promise<Record<string, string>> | null): void => {\n state.schemaLabelMappingPromise.value = value;\n };\n const _trackAction = <T>(promise: Promise<T>): Promise<T> => {\n _addPendingAction(promise);\n // TODO: Proper annotation\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const remove = (r: T) => {\n _removePendingAction(promise);\n return r;\n };\n promise.then(remove, remove);\n return promise;\n };\n // TODO: Proper annotation\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _formPageDataUpdated = async (params: any) => {\n if (params.page == null) {\n state.formData.value!.setData(params.data, false);\n } else if (params.page >= 0) {\n state.formData.value!.setData(params.data, true);\n pages.value[params.page - 1].setData(params.data.children[params.childIndex]);\n }\n if (segments.value?.length ?? 0 > 0) {\n const availableSegmentsI = availableSegments.value!;\n if (!availableSegmentsI.some(i => i.id == state.segment.value)) {\n const selectedSegment = availableSegmentsI.length == 1 ? availableSegmentsI[0].id! : state.adminPreview.value && availableSegmentsI.length > 0 ? availableSegmentsI[0].id! : \"NOMATCH\";\n setSegment(selectedSegment);\n }\n }\n };\n // TODO: Proper annotation\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _setPageStatus = async (params: any) => {\n pages.value[params.page - 1].setStatus(params.status);\n };\n let formIdPromise: Promise<unknown> | null = null;\n const getOrCreateFormId = async (): Promise<string> => {\n if (isViewOnly.value || state.adminPreview.value) {\n if (state.fakeFormId.value == null) {\n state.fakeFormId.value = generateGuid();\n }\n return state.fakeFormId.value;\n } else {\n while (formId.value == null) {\n if (!formIdPromise) {\n formIdPromise = saveFormPage({ page: -1 });\n }\n await formIdPromise;\n formIdPromise = null;\n // Adding delay to process the response and update formId.value in background\n await new Promise(callback => setTimeout(callback, 0));\n }\n return formId.value!;\n }\n };\n const uploadExternalFile = async (params: { newFile: File; vmId: string; isComment?: boolean }): Promise<{ valueId: string; isThreat: boolean; status: string } | undefined> => {\n return _trackAction(\n (async () => {\n const { newFile, vmId, isComment } = params;\n let formIdI = formId.value;\n if (formIdI == null) {\n await saveFormPage({ page: -1 });\n formIdI = formId.value;\n }\n const valueId = generateGuid();\n const uploadData = new FormData();\n let status = \"\";\n let isThreat = false;\n uploadData.append(\"formID\", formIdI ?? \"\");\n uploadData.append(\"asAdmin\", (state.adminReview.value ?? false).toString());\n uploadData.append(\"testMode\", (state.testMode.value ?? false).toString());\n uploadData.append(\"valueID\", valueId);\n uploadData.append(\"formFile\", newFile, newFile.name);\n if (isComment) {\n // TODO?\n } else {\n status = \"in-progress\";\n }\n\n const mainStore = useMainStore();\n const uploadUrl = await mainStore.getUrl(\"uploadExternalReference\", { areaCode: formTenantCode.value });\n const successCallback = () => {\n if (isComment) {\n // TODO?\n } else {\n status = \"ok\";\n setFileInfoByVmId({\n id: vmId,\n valueId: valueId,\n contentType: newFile.type,\n fileName: newFile.name,\n fileSize: newFile.size,\n hasValue: true,\n });\n }\n };\n const failCallback = (tooLarge?: boolean) => {\n if (isComment) {\n // TODO?\n } else {\n status = tooLarge ? \"too-large\" : \"fail\";\n }\n };\n const avScanFailureCallback = () => {\n if (isComment) {\n isThreat = true;\n } else {\n status = \"avScanFail\";\n }\n };\n const offlineUpload = () => {\n // TODO only on connection failure?\n const filereader = new FileReader();\n filereader.readAsText(newFile);\n filereader.addEventListener(\"load\", async () => {\n try {\n const uploadOfflineUrl = uploadUrl.replace(\"UploadExternalReference\", \"ServiceWorkerOfflineUploadReference\"); // TODO await .value$root.getUrl('uploadOfflineExternalReference');\n const uploadData = {\n formId: formId,\n valueId: valueId,\n fileName: newFile.name,\n mimeType: newFile.type,\n data: filereader.result,\n };\n const offlineUploadResponse = await fetchXsrf(mainStore, uploadOfflineUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n credentials: \"same-origin\",\n body: JSON.stringify(uploadData),\n });\n if (offlineUploadResponse.status == 200) {\n successCallback();\n } else {\n failCallback();\n }\n } catch (err) {\n failCallback();\n throw err;\n }\n });\n // TODO\n //@ts-expect-error\n filereader.addEventListener(\"abort\", failCallback);\n //@ts-expect-error\n filereader.addEventListener(\"error\", failCallback);\n };\n let uploadResponse;\n try {\n uploadResponse = await fetchXsrf(mainStore, uploadUrl, {\n method: \"POST\",\n credentials: \"same-origin\",\n body: uploadData,\n });\n } catch (err) {\n if (isUsingServiceWorker()) {\n await offlineUpload();\n } else {\n failCallback();\n throw err;\n }\n return;\n }\n if (uploadResponse.status == 200) {\n const resp = await uploadResponse.json();\n if (resp?.ThreatDetected == true) {\n avScanFailureCallback();\n } else {\n successCallback();\n }\n } else if (isOfflineAndUsingServiceWorker(uploadResponse)) {\n await offlineUpload();\n } else {\n failCallback(uploadResponse.status == 413);\n }\n return { valueId, isThreat, status };\n })(),\n );\n };\n const submitForm = async (triggerKey: string | null): Promise<null | SaveAllAndSubmitResponse> => {\n // TODO\n const buildOfflineResponse = async (form: FormDef) => {\n // TODO: Proper annotation\n const redirectUrls = (await Promise.all(form.getElementsByFilter(i => isIPostSubmitRedirectElement(i)).map(item => (item as unknown as IPostSubmitRedirectElement).getPostSubmitRedirect()))).filter(i => i != null);\n const formValid = await form.valid$(true);\n await new Promise(r => setTimeout(r, 0));\n return {\n Result: formValid.pipe(first()) ? (redirectUrls.length > 0 ? FormSubmitResultEnum.SubmittedWithRedirect : FormSubmitResultEnum.Submitted) : FormSubmitResultEnum.ValidationFailed,\n RedirectUrl: redirectUrls.length > 0 ? redirectUrls[0] : undefined,\n };\n };\n if (isViewOnly.value) {\n throw new Error(\"Readonly\");\n }\n if (state.adminPreview.value) {\n (state.formData.value as FormDef).markEdited();\n return await buildOfflineResponse(state.formData.value! as FormDef);\n }\n const result = (await saveFormPage({ page: null, isSubmit: true, triggerKey })) as SaveAllAndSubmitResponse;\n if (result != null) {\n return result;\n } else if (isUsingServiceWorker()) {\n return await buildOfflineResponse(state.formData.value! as FormDef);\n } else {\n return null;\n }\n //if (response.status == 200) {\n // return await response.json();\n //} else if (isOfflineAndUsingServiceWorker(response)) {\n // return await buildOfflineResponse(form);\n //} else {\n // throw new Error(\"Not 200 OK: \"+response.status + \" \" +response.statusText)\n //}\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const selfAssignSegment = async ({ segment, verifyData }: { segment: string; verifyData: any }): Promise<string[]> => {\n const result = await invokeForm({ type: \"SelfAssign\", target: segment, segment, data: verifyData, assign: true });\n if (result.Success) {\n setSegment(segment);\n }\n return result.FailureMessages;\n };\n const saveAllAdminEdits = async () => {\n const changes = [];\n for (const vmId of state.adminEditElementIds.value) {\n const element = _getElementByVmId(vmId)!;\n const path = getElementPathString(element);\n const data = element.getData();\n changes.push({ type: \"AdminEdit\", target: /* TODO not unique - ForEach */ element.id!, targetPath: path, data: data });\n }\n // Delay so new values aren't overwritten by invoke response\n for (const change of changes) {\n await invokeForm(change);\n }\n clearAdminEditing();\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const invokeForm = ({ segment, type, target, targetPath, targetPathArray, data, assign, noWrite, unlock }: { segment?: string | null; type: string; target: string; targetPath?: string; targetPathArray?: number[]; data?: any; assign?: boolean; noWrite?: boolean; unlock?: boolean }): Promise<any> => {\n return _trackAction(\n (async () => {\n if (state.adminPreview.value) {\n throw new Error(\"Admin preview\");\n }\n if (isViewOnly.value) {\n throw new Error(\"Readonly\");\n }\n const postData = {\n formID: formId.value,\n formName: state.formData.value!.formName,\n formVersion: state.formData.value!.formVersion,\n testMode: state.testMode.value,\n asAdmin: state.adminReview.value,\n segment: segment,\n assign: assign,\n unlock: unlock,\n noWrite: noWrite,\n type: type,\n target: target,\n targetPath: targetPath,\n targetPathArray: targetPathArray,\n data: JSON.stringify(data),\n };\n const mainStore = useMainStore();\n const url = await mainStore.getUrl(\"invokeDraft\", {\n areaCode: formTenantCode.value,\n formId: postData.formID,\n });\n const response = await fetchXsrf(mainStore, url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n credentials: \"same-origin\",\n body: JSON.stringify(postData),\n });\n if (response.status == 200) {\n const responseData = await response.json();\n const formData = responseData.Form;\n await _formPageDataUpdated({ data: formData, page: null, childIndex: null });\n return responseData.Result;\n } else if (isOfflineAndUsingServiceWorker(response)) {\n // ???\n } else {\n throw new Error(\"Not 200 OK: \" + response.status + \" \" + response.statusText);\n }\n })(),\n );\n };\n const saveFormPage = ({ page, isSaveAndExit, isSubmit, triggerKey }: { page: number | null; isSaveAndExit?: boolean; isSubmit?: boolean; triggerKey?: string | null }): Promise<null | SaveAllAndSubmitResponse | FormJson> => {\n const mainStore = useMainStore();\n mainStore.hasSession = true;\n // TODO rename\n return _trackAction(\n (async () => {\n if (state.adminPreview.value) {\n throw new Error(\"Admin preview\");\n }\n if (isViewOnly.value || (page != null && page >= 0 && isPageViewOnly(page))) {\n throw new Error(\"Readonly\");\n }\n if (page != null && page >= 0 && !isPageEditable(page) && (await mainStore.isFeatureFlagActiveAsync(KnownFeatureFlags.SaveOnlyEditable.Id))) {\n throw new Error(\"NotEditable\");\n }\n const form = state.formData.value!;\n let formDataI;\n const pagesI = pages.value;\n let childIndex = null;\n if (page != null && !isSaveAndExit) {\n childIndex = form.children.indexOf(pagesI[page - 1]);\n formDataI = form.getData(true);\n if (page >= 0) {\n const pageObj = pagesI[page - 1];\n if (pageObj.status == \"Saving\") {\n return;\n }\n if (isPageObjViewOnly(pageObj, false)) {\n return;\n }\n if (!visiblePages.value.includes(pageObj)) {\n return;\n }\n await _setPageStatus({ page, status: \"Saving\" });\n formDataI.children = [];\n formDataI.children[childIndex] = form.children[childIndex].getData()!;\n } else {\n if (form.children.some(p => (p as PageDef).status == \"Saving\")) {\n return;\n }\n childIndex = -1;\n formDataI.children = [];\n }\n } else {\n if (form.children.some(p => (p as PageDef).status == \"Saving\")) {\n return;\n }\n const visiblePagesI = visiblePages.value;\n formDataI = form.getData(true);\n formDataI.children = [];\n for (let index = 0; index < pagesI.length; index++) {\n const pageObj = pagesI[index];\n if (visiblePagesI.includes(pageObj) && !isPageObjViewOnly(pageObj, false) && (isPageObjEditable(pageObj) || !(await mainStore.isFeatureFlagActiveAsync(KnownFeatureFlags.SaveOnlyEditable.Id))) && (!isSaveAndExit || pageObj.status != \"NotStarted\" || index + 1 == page)) {\n await _setPageStatus({ page: index + 1, status: \"Saving\" });\n const saveChildIndex = form.children.indexOf(pageObj);\n formDataI.children[saveChildIndex] = pageObj.getData();\n //} else {\n // throw new Error(JSON.stringify([visiblePages.includes(pageObj) , '&&', !isPageObjViewOnly.value(pageObj) , '&&(', !isSaveAndExit , '||', pageObj.status != \"NotStarted\" , '||', index + 1 == page, ')']));\n }\n }\n for (let index = 0; index < form.children.length; index++) {\n const child = form.children[index] as CaptchaControlDef;\n if (child.isSegment && child.isSegment(state.segment.value)) {\n formDataI.children[index] = child.getData();\n }\n }\n if (isSaveAndExit) {\n page = null;\n }\n }\n let formId = form.formId;\n if (formId == null) {\n if (state.unsavedFormId.value == null) {\n state.unsavedFormId.value = generateGuid();\n }\n formId = state.unsavedFormId.value;\n }\n const postData = {\n FormModel: formDataI,\n formHash: formDataI!.formHash,\n formID: formId,\n formName: formDataI!.formName,\n formVersion: formDataI!.formVersion,\n testMode: state.testMode.value,\n index: childIndex,\n asAdmin: state.adminReview.value,\n sourceStatus: form.status,\n segment: state.segment.value,\n submitType: triggerKey,\n };\n const url = await mainStore.getUrl(isSubmit ? \"saveFullAndSubmitDraft\" : \"saveDraft\" + (page != null ? \"Page\" : \"Full\"), {\n formId: formId,\n formName: form.formName,\n formVersion: form.formVersion,\n formHash: form.formHash,\n testMode: state.testMode.value,\n page: childIndex,\n areaCode: formTenantCode.value,\n asAdmin: postData.asAdmin,\n sourceStatus: postData.sourceStatus,\n segment: postData.segment,\n submitType: postData.submitType,\n });\n let responseData;\n try {\n const response = await fetchXsrf(mainStore, url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n credentials: \"same-origin\",\n body: JSON.stringify(postData),\n });\n throwIfNonSuccessStatus(response);\n responseData = await response.json();\n } catch (e) {\n if (page != null && page > 0) {\n await _setPageStatus({ page, status: \"Invalid\" });\n } else {\n _setAllPagesStatus(\"Invalid\");\n }\n return null;\n }\n const formDataR = isSubmit ? responseData.Form : responseData;\n await _formPageDataUpdated({ data: formDataR, page, childIndex });\n if (form.formId == null) {\n _setFormId(formId);\n }\n return responseData;\n })(),\n );\n };\n\n const deleteDraft = async ({ asAdmin }: { asAdmin: boolean }) => {\n return _trackAction(\n (async () => {\n if (state.adminPreview.value) {\n throw new Error(\"Admin preview\");\n }\n if (!asAdmin) {\n if (state.adminReview.value) {\n throw new Error(\"Admin review\");\n }\n }\n if (isViewOnly.value) {\n throw new Error(\"Readonly\");\n }\n const id = state.formData.value!.formId;\n if (id == null) {\n return;\n }\n const mainStore = useMainStore();\n await deleteDraftFunc(mainStore, id, asAdmin, formTenantCode.value!);\n })(),\n );\n };\n const returnDraft = async ({ segment, comment }: { segment: string; comment: string }): Promise<{ success: boolean; messages: string[] }> => {\n const result = await invokeForm({ type: \"ReturnTo\", target: segment, segment, data: { Comment: comment } });\n return { success: result.Success, messages: result.FailureMessages };\n };\n const resendEmail = async ({ segment, comment, eventType }: { segment: string; comment: string; eventType: string }): Promise<{ success: boolean; messages: string[] }> => {\n const result = await invokeForm({ type: \"Resend\" + eventType, target: segment, segment: eventType == \"Notification\" ? null : segment, data: { Comment: comment } });\n return { success: result.Success, messages: result.FailureMessages };\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const workflowManualOverride = async ({ type, data }: { type: string; data: any }): Promise<{ success: boolean; messages: string[] }> => {\n const workflowEl = state.formData.value!.getElementsByFilter(i => i.definition.type == \"WorkflowDef\");\n const result = await invokeForm({ type, target: workflowEl[0].id!, segment: null, data });\n return { success: result.Success, messages: result.FailureMessages };\n };\n const loadFormData = async ({ formId, areaUrlSlug, areaCode, formHash, formName, formVersion, testMode, urlSlug, externalData }: { formId?: string; areaUrlSlug?: string; areaCode?: string; formHash?: string; formName?: string; formVersion?: string; testMode?: boolean; urlSlug?: string; externalData?: Record<string, string[]> }): Promise<void> => {\n _formDataIsLoading();\n const mainStore = useMainStore();\n const fetchPageDef = (areaCode: string | null | undefined, areaUrlSlug: string | null | undefined, formName: string, formVersion: string, formHash: string) =>\n mainStore\n .getUrl(\"getPageDefinitionData\", { areaCode: areaCode, areaUrlSlug: areaUrlSlug, formName, formVersion, formHash, testMode })\n .then(url => fetch(url, { credentials: \"same-origin\" }))\n .then(r => r.json() as Promise<FormDefinitionFormItem>);\n const draftPageUrl = formId == null ? await mainStore.getUrl(\"getDraftTemplateData\", { areaCode: areaCode, areaUrlSlug: areaUrlSlug, formName, formVersion, formHash, urlSlug, testMode, asAdmin: false }) : await mainStore.getUrl(\"getDraftData\", { areaCode: areaCode, areaUrlSlug: areaUrlSlug, formId });\n const pagePromise = fetch(draftPageUrl, { credentials: \"same-origin\" }); //TODO - fetch query parameter?\n const pageDefPromise = formName != null && formVersion != null && formHash != null ? fetchPageDef(areaCode, areaUrlSlug, formName, formVersion, formHash) : Promise.resolve(null);\n const pageResponse = await pagePromise;\n if (pageResponse.status == 404) {\n throw new Error(\"NotFound\");\n }\n const pageJson = (await pageResponse.json()) as FormJson;\n let pageDefJson = null;\n try {\n pageDefJson = await pageDefPromise;\n } catch {\n // Offline mode?\n }\n if (pageDefJson == null || pageJson.formHash != pageDefJson.formHash) {\n pageDefJson = await fetchPageDef(pageJson.formTenantCode, null, pageJson.formName, pageJson.formVersion, pageJson.formHash);\n }\n\n await _loadFormData({\n definition: pageDefJson,\n page: pageJson,\n canAddComments: false,\n canChangeStatus: false,\n anonymousUser: false,\n canDeleteSubmissions: false,\n canDeleteReviewComments: false,\n canReplyToComments: true, // TODO?\n canAdminEditData: false, // TODO?\n canUpgradeDefinition: false, // TODO?\n adminPreview: false,\n adminReview: false,\n externalData,\n testMode: pageJson.testMode != null ? pageJson.testMode : (testMode as unknown as string) == \"true\", // TODO?\n });\n if (formId != null) {\n mainStore.hasSession = true;\n }\n };\n const loadAdminPreviewFormData = async ({ definition, form, baseDefinition, baseForm }: { definition: FormDefinitionFormItem; form: FormJson; baseDefinition?: FormDefinitionFormItem | null; baseForm?: FormJson | null }): Promise<void> => {\n await _loadFormData({\n definition,\n page: form,\n baseDefinition,\n canAddComments: false,\n canChangeStatus: false,\n canReplyToComments: false,\n canAdminEditData: false,\n canUpgradeDefinition: false, // TODO?\n anonymousUser: false,\n canDeleteSubmissions: false,\n canDeleteReviewComments: false,\n basePage: baseForm,\n adminPreview: true,\n adminReview: false,\n testMode: true,\n });\n };\n const loadAdminReviewFormData = async (data: { areaCode?: string; areaUrlSlug?: string; formId?: string; formHash?: string; formName?: string; formVersion?: string; testMode?: boolean; urlSlug?: string; preloadedData?: ReviewDataData }): Promise<void> => {\n const { areaCode, areaUrlSlug, formId, formHash, formName, formVersion, testMode, urlSlug, preloadedData } = data; // TODO?\n _formDataIsLoading();\n const mainStore = useMainStore();\n const fetchPageDef = (formName: string, formVersion: string, formHash: string) =>\n mainStore\n .getUrl(\"getPageDefinitionData\", { areaCode: areaCode, areaUrlSlug: areaUrlSlug, formName, formVersion, formHash, testMode })\n .then(url => fetch(url, { credentials: \"same-origin\" }))\n .then(r => r.json());\n\n const draftPageUrl = formId == null ? await mainStore.getUrl(\"getDraftTemplateData\", { areaCode: areaCode, areaUrlSlug: areaUrlSlug, formName, formVersion, formHash, urlSlug, forceFresh: true, asAdmin: true, testMode: testMode }) : await mainStore.getUrl(\"adminSearchReviewData\", { tenantCode: areaCode, tenantUrlSlug: areaUrlSlug, formId });\n const pagePromise = preloadedData != null && preloadedData.form?.formId != null && preloadedData.form?.formId == formId ? Promise.resolve(preloadedData) : fetch(draftPageUrl, { credentials: \"same-origin\" }).then(r => r.json() as Promise<FormJson>); //TODO - fetch query parameter?\n const pageDefPromise = formName != null && formVersion != null && formHash != null ? fetchPageDef(formName, formVersion, formHash) : Promise.resolve(null);\n const reviewData = formId == null ? ({ form: await pagePromise } as ReviewDataData) : ((await pagePromise) as ReviewDataData);\n const pageJson = reviewData.form;\n let pageDefJson = await pageDefPromise;\n if (pageDefJson == null || pageJson.formHash != pageDefJson.formHash) {\n pageDefJson = await fetchPageDef(pageJson.formName, pageJson.formVersion, pageJson.formHash);\n }\n await _loadFormData({\n definition: pageDefJson,\n canAddComments: reviewData.canAddComments,\n canChangeStatus: reviewData.canChangeStatus,\n canReplyToComments: reviewData.canReplyToComments,\n canAdminEditData: reviewData.canAdminEditData,\n anonymousUser: reviewData.anonymousUser,\n canDeleteSubmissions: reviewData.canDeleteSubmissions,\n canDeleteReviewComments: reviewData.canDeleteReviewComments,\n canUpgradeDefinition: reviewData.canUpgradeDefinition,\n page: pageJson,\n adminPreview: false,\n adminReview: true,\n testMode: pageJson.testMode != null ? pageJson.testMode : (testMode as unknown as string) == \"true\", // TODO?\n });\n };\n const getWorkflowManualOverrideGetPossibleUpgradeRevisions = async () => {\n const workflowEl = state.formData.value!.getElementsByFilter(i => i.definition.type == \"WorkflowDef\");\n const result = (await invokeForm({ type: \"ListPossibleDefinitionUpgradeRevisions\", target: workflowEl[0].id!, segment: null, data: null })) as ManualOverrideInvokeResult;\n return { success: result.Success, messages: result.FailureMessages, revisions: result.Revisions };\n };\n const getSchemaLabelMapping = async () => {\n if (state.schemaLabelMappingPromise.value == null) {\n _setSchemaLabelMapping(\n (async () => {\n try {\n const mainStore = useMainStore();\n const url = await mainStore.getUrl(\"schemaLabels\", { tenantCode: formTenantCode.value });\n const response = await fetchXsrf(mainStore, url, {});\n if (response.status == 200) {\n return (await response.json()) as Record<string, string>;\n } else {\n throw new Error(\"error: \" + response.status);\n }\n } catch (e) {\n _setSchemaLabelMapping(null);\n throw e;\n }\n })(),\n );\n }\n\n return state.schemaLabelMappingPromise.value;\n };\n const _loadFormData = async ({ definition, page, baseDefinition, basePage, canAddComments, canChangeStatus, canReplyToComments, canAdminEditData, anonymousUser, canDeleteSubmissions, canDeleteReviewComments, canUpgradeDefinition, adminPreview, adminReview, testMode, externalData }: { definition: FormDefinitionFormItem; page: FormJson; baseDefinition?: FormDefinitionFormItem | null; basePage?: FormJson | null; canAddComments: boolean; canChangeStatus: boolean; canReplyToComments: boolean; canAdminEditData: boolean; canUpgradeDefinition: boolean; anonymousUser: boolean; canDeleteSubmissions: boolean; canDeleteReviewComments: boolean; adminPreview: boolean; adminReview: boolean; testMode: boolean; externalData?: Record<string, string[]> }): Promise<void> => {\n const mainStore = useMainStore();\n const bulkInvoke = await mainStore.isFeatureFlagActiveAsync(KnownFeatureFlags.BulkInvoke.Id);\n const nonLiveTextboxes = await mainStore.isFeatureFlagActiveAsync(KnownFeatureFlags.NonLiveTextboxes.Id);\n const buildRoot = (definition: FormDefinitionFormItem, page: FormJson) => {\n const calculationContext: CalculationContext = {\n fetchXsrf: fetchXsrf.bind(null, mainStore),\n urlFetcher: (key: string, data: Record<string, string>) => mainStore.getUrl(key, { tenantCode: formTenantCode.value, ...data }),\n getOrCreateFormId: () => getOrCreateFormId(),\n rootElement: null,\n now: mainStore.now,\n timeZone: mainStore.getTimeZone(formTenantCode.value),\n adminPreview: adminPreview,\n adminReview: adminReview,\n schemaVersion: definition.formSchemaVersion!,\n testMode: testMode,\n bulkInvoke,\n nonLiveTextboxes,\n };\n const rootElement = buildElement(null, page, definition, calculationContext) as FormDef;\n rootElement.appendExternalData(externalData!);\n if (calculationContext.rootElement != rootElement) {\n debugger;\n }\n return rootElement;\n };\n const rootElement = buildRoot(definition, page);\n let baseRootElement = null;\n if (adminPreview && baseDefinition != null) {\n baseRootElement = buildRoot(baseDefinition, basePage!);\n rootElement.linkBaseElement(baseRootElement);\n }\n _formDataLoaded({\n formData: rootElement,\n baseFormData: baseRootElement,\n adminPreview: adminPreview,\n adminReview: adminReview,\n canAddComments: canAddComments,\n canChangeStatus: canChangeStatus,\n canReplyToComments: canReplyToComments,\n canAdminEditData: canAdminEditData,\n canUpgradeDefinition: canUpgradeDefinition,\n anonymousUser: anonymousUser,\n canDeleteSubmissions: canDeleteSubmissions,\n canDeleteReviewComments: canDeleteReviewComments,\n testMode: testMode,\n });\n if (segments.value?.length ?? 0 > 0) {\n const availableSegmentsI = availableSegments.value!;\n //cspell:ignore NOMATCH\n const selectedSegment = availableSegmentsI.length == 1 ? availableSegmentsI[0].id! : state.adminPreview.value && availableSegmentsI.length > 0 ? availableSegmentsI[0].id! : \"NOMATCH\";\n setSegment(selectedSegment);\n }\n };\n const setCommentVisibility = async ({ elementId, elementData, commentId, visibleToSubmitter }: { elementId: string; elementData: BaseElementDefBase; commentId: string; visibleToSubmitter: boolean }): Promise<void> => {\n const formIdI = formId.value;\n const formData = new FormData();\n //formData.append('formId', formId);\n formData.append(\"elementId\", elementId);\n formData.append(\"commentId\", commentId);\n formData.append(\"visibleToSubmitter\", visibleToSubmitter.toString());\n const mainStore = useMainStore();\n const url = await mainStore.getUrl(\"setDraftCommentVisibility\", { tenantCode: formTenantCode.value, formId: formIdI });\n const response = await fetchXsrf(mainStore, url, {\n method: \"POST\",\n credentials: \"same-origin\",\n body: formData,\n });\n if (response.status == 200) {\n const responseJson = (await response.json()) as SimpleResult;\n if (responseJson.Success !== true) {\n throw new Error(\"Error: Success is not true\");\n }\n } else {\n throw new Error(\"error: \" + response.status);\n }\n _setCommentVisibility({ elementData, commentId, visibleToSubmitter });\n };\n\n const addCommentAndChangeStatus = async (data: { text: string; visibleToSubmitter: boolean; status: string; elementId?: string; elementData: BaseElementDefBase; fileIds?: string[]; fileNames?: string[]; fileContentTypes?: string[]; userName: string }): Promise<AddCommentResponse | undefined | null> => {\n const { text, visibleToSubmitter, status, elementId, elementData, fileIds, fileNames, fileContentTypes, userName } = data;\n const textEmpty = text == null || /^\\s*$/.test(text);\n const statusEmpty = status == null || /^\\s*$/.test(status);\n const filesEmpty = fileIds == null || fileIds.length == 0;\n if (textEmpty && statusEmpty && filesEmpty) {\n return;\n }\n const statusLabelR = statusEmpty ? \"N/A\" : statusLabel(status);\n\n const returned = status == \"Returned\"; // TODO - enum?\n const rejected = status == \"Rejected\"; // TODO - enum?\n const deleted = status == \"Deleted\"; // TODO - enum?\n const specialStatus = returned || rejected || deleted;\n if (returned && (textEmpty || !visibleToSubmitter)) {\n alert(\"You must supply a visible comment if returning a submission.\");\n return;\n } else if (rejected && textEmpty) {\n alert(\"You must supply a comment if rejecting a submission.\");\n return;\n }\n if (!specialStatus || confirm(\"Are you sure you wish to set this submission to \" + statusLabelR + \"?\" + (returned ? \" This will prompt the submitter to correct and resubmit this submission. You will not be able to add comments or change the status again until the submitter re-submits the submission.\" : deleted ? \" This will PERMANENTLY delete this submission!\" : \"\"))) {\n const formIdI = formId.value;\n const formDataI = new FormData();\n //formDataI.append('formId', formId);\n formDataI.append(\"elementId\", elementId ?? \"\");\n formDataI.append(\"text\", text == null ? \"\" : text);\n formDataI.append(\"visibleToSubmitter\", visibleToSubmitter?.toString());\n formDataI.append(\"json\", true.toString());\n formDataI.append(\"asAdmin\", (state.adminReview.value ?? false).toString());\n formDataI.append(\"status\", status == null ? \"\" : status);\n formDataI.append(\"userName\", userName == null ? \"Anonymous\" : userName);\n for (const i of fileIds ?? []) {\n formDataI.append(\"fileIds\", i);\n }\n for (const i of fileNames ?? []) {\n formDataI.append(\"fileNames\", i);\n }\n for (const i of fileContentTypes ?? []) {\n formDataI.append(\"fileContentTypes\", i);\n }\n const mainStore = useMainStore();\n const url = await mainStore.getUrl(\"addDraftComment\", { tenantCode: formTenantCode.value, formId: formIdI });\n const response = await fetchXsrf(mainStore, url, {\n method: \"POST\",\n credentials: \"same-origin\",\n body: formDataI,\n });\n let responseJson = null;\n if (response.status == 200) {\n responseJson = (await response.json()) as AddCommentResponse;\n if (responseJson.success !== true) {\n throw new Error(\"error: success is not true\");\n } else if (!responseJson.accessible) {\n // TODO?\n } else if (!responseJson.editable) {\n _makeUneditable();\n }\n } else if (isOfflineAndUsingServiceWorker(response)) {\n // assume ok?\n } else {\n throw new Error(\"error: \" + response.status);\n }\n\n if (!textEmpty || !filesEmpty) {\n const fileUrl = (fileId: string) => mainStore.getUrl(\"downloadCommentExternalReference\", { tenantCode: formTenantCode.value, formId: formId.value, fileId: elementId || state.formData.value!.id, valueId: fileId });\n _addComment({ elementData, comment: { id: responseJson!.id, text, visibleToSubmitter, date: useMainStore().now(), files: await Promise.all((fileNames ?? []).map(async (i, j) => ({ filename: i, valueId: (fileIds ?? [])[j], fileUrl: await fileUrl((fileIds ?? [])[j]) }))), userName } as unknown as Comment });\n }\n if (!statusEmpty) {\n _addComment({ elementData, comment: { text: \"Changed status to \" + statusLabelR, date: useMainStore().now() } as Comment });\n }\n\n return responseJson;\n }\n };\n\n return {\n segment: state.segment,\n page: state.page,\n formData: state.formData,\n baseFormData: state.baseFormData,\n formDataLoading: state.formDataLoading,\n adminPreview: state.adminPreview,\n adminReview: state.adminReview,\n testMode: state.testMode,\n unsavedFormId: state.unsavedFormId,\n adminEditElementIds: state.adminEditElementIds,\n canAddComments: state.canAddComments,\n canChangeStatus: state.canChangeStatus,\n canUpgradeDefinition: state.canUpgradeDefinition,\n canReplyToComments: state.canReplyToComments,\n canAdminEditData: state.canAdminEditData,\n anonymousUser: state.anonymousUser,\n canDeleteSubmissions: state.canDeleteSubmissions,\n canDeleteReviewComments: state.canDeleteReviewComments,\n showAdminDiff: state.showAdminDiff,\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n pendingActions: state.pendingActions,\n isSaveDisabledOnSectionChange: state.isSaveDisabledOnSectionChange,\n schemaLabelMappingPromise: state.schemaLabelMappingPromise,\n fakeFormId: state.fakeFormId,\n pendingAddressVerifications: state.pendingAddressVerifications,\n\n getElementByVmId,\n getElementsById$,\n formDataTyped,\n baseFormDataTyped,\n getValueByVmId,\n getChildrenByVmId,\n isAdminEditingById,\n getValuesById$,\n getElementPathString,\n viewTypes,\n directLinkTemplates,\n allFileElements,\n allElementsWithFileComments,\n allElementsWithHistory,\n allHistoryEntries,\n allElementsWithIssues,\n allIssuesEntries,\n segments,\n initializedSegments,\n uninitializedSegments,\n visibleSegments,\n availableSegments,\n unlockableSegments,\n completedSegments,\n activeSegments,\n hasCompletedSegmentsToReturnTo,\n possibleStagesToReturn,\n showChanges,\n hasChanges,\n isSubmittable$,\n isOffline,\n endUserStatuses,\n formId,\n formTenantCode,\n status,\n title,\n offlineContent,\n mustLogin,\n formSettings,\n isViewOnly,\n isWorkflow,\n isPageViewOnly,\n isPageEditable,\n isPageObjViewOnly$,\n isPageObjControlsViewOnly$,\n isPageObjViewOnly,\n isPageObjEditable,\n hasIssues,\n pages,\n currentStatusLabel,\n statusLabel,\n isClientValidationOnly,\n possibleStatuses,\n visiblePages,\n visiblePages$,\n enabledPages$,\n enabledPagesPromise,\n status$,\n segment$,\n comments,\n pendingActionPromise,\n setAdminEditing,\n clearAdminEditing,\n setSegment,\n setValueByVmId,\n setFileStatusByVmId,\n setFileInfoByVmId,\n addForEachItem,\n removeForEachItem,\n setForEachChildren,\n toggleAdminDiff,\n _formDataIsLoading,\n _formDataLoaded,\n _formDataUpdated,\n _setFormId,\n _setAllPagesStatus,\n _addPendingAction,\n _removePendingAction,\n _addComment,\n _setCommentVisibility,\n _makeUneditable,\n _setSchemaLabelMapping,\n _trackAction,\n _formPageDataUpdated,\n _setPageStatus,\n getOrCreateFormId,\n uploadExternalFile,\n submitForm,\n selfAssignSegment,\n saveAllAdminEdits,\n invokeForm,\n saveFormPage,\n deleteDraft,\n returnDraft,\n resendEmail,\n workflowManualOverride,\n loadFormData,\n loadAdminPreviewFormData,\n loadAdminReviewFormData,\n getWorkflowManualOverrideGetPossibleUpgradeRevisions,\n getSchemaLabelMapping,\n _loadFormData,\n setCommentVisibility,\n addCommentAndChangeStatus,\n };\n});\n\n//export type pageStore = ReturnType<typeof usePageStore>;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.input-group[data-v-11f759cf] > .form-control:not(:first-child) {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n.input-group .input-group-text[data-v-11f759cf] {\n padding: 0.25rem;\n font-size: larger;\n}\n#jsPageEditor .input-group .input-group-text[data-v-11f759cf] {\n padding: 0.35rem;\n font-size: 22px;\n border-color: #787878;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./lib/DatePicker.3.vue\",\"webpack://./../DatePicker.3.vue\"],\"names\":[],\"mappings\":\"AAGI;EACI,+BAAA;EACA,kCAAA;ACFR;ADDA;EAMQ,gBAAA;EACA,iBAAA;ACFR;ADGQ;EACI,gBAAA;EACA,eAAA;EACA,qBAAA;ACDZ\",\"sourcesContent\":[\"\\n@import \\\"/styles/SiteColors.less\\\";\\n.input-group {\\n & > ::v-deep(.form-control:not(:first-child)) {\\n border-top-left-radius: 0.25rem;\\n border-bottom-left-radius: 0.25rem;\\n }\\n .input-group-text {\\n padding: 0.25rem;\\n font-size: larger;\\n #jsPageEditor & {\\n padding: 0.35rem;\\n font-size: 22px;\\n border-color: @primary-lightest;\\n }\\n }\\n}\\n\",\".input-group > ::v-deep(.form-control:not(:first-child)) {\\n border-top-left-radius: 0.25rem;\\n border-bottom-left-radius: 0.25rem;\\n}\\n.input-group .input-group-text {\\n padding: 0.25rem;\\n font-size: larger;\\n}\\n#jsPageEditor .input-group .input-group-text {\\n padding: 0.35rem;\\n font-size: 22px;\\n border-color: #787878;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","<style lang=\"less\" scoped>\n@import \"/styles/SiteColors.less\";\n.input-group {\n & > ::v-deep(.form-control:not(:first-child)) {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n }\n .input-group-text {\n padding: 0.25rem;\n font-size: larger;\n #jsPageEditor & {\n padding: 0.35rem;\n font-size: 22px;\n border-color: @primary-lightest;\n }\n }\n}\n</style>\n<template>\n <div class=\"input-group datepicker-group\">\n <!-- <pre>\n value: {{value}}\n tempValue: {{tempValue}}\n altInputValue: {{altInputValue}}\n </pre> -->\n <flat-pickr ref=\"flatPickrEl\" v-model=\"tempValue\" v-bind=\"$attrs\" @on-close=\"emitValue\" @change=\"emitValue\" :config=\"effectiveConfig\" />\n <div class=\"input-group-append\">\n <button ref=\"datepickerToggle\" @click=\"openDatepicker\" class=\"input-group-text icon icon-lg-calendar\" type=\"button\" aria-label=\"Open datepicker\" aria-expanded=\"false\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\n//cspell:ignore PAGEUP, Dayof\nimport { defineComponent, onMounted, ref, computed, SetupContext, watch } from \"vue\";\nimport { usePageStore } from \"../public/pages/pageState/store\";\nimport FlatPickr from \"vue-flatpickr-component\";\nimport \"flatpickr/dist/flatpickr.css\";\nimport { isNullOrWhitespace, stringCoalesce } from \"@/lib/whitespaceMethods\";\nimport moment from \"moment\";\ninterface Props {\n modelValue: string;\n ariaLabelledBy: string;\n ariaRequired: boolean;\n ariaDescribedBy: string;\n vmId: string;\n defaultValue: string;\n placeholder: string;\n config: {\n allowInput: boolean;\n altInput: boolean;\n dateFormat: string;\n altFormat: string;\n disableMobile: boolean;\n defaultDate: string;\n onOpen: () => void;\n onClose: () => void;\n };\n}\nexport default defineComponent({\n props: {\n modelValue: {\n type: String,\n required: false,\n },\n ariaLabelledBy: {\n type: String,\n required: false,\n },\n ariaRequired: {\n type: Boolean,\n required: false,\n },\n ariaDescribedBy: {\n type: String,\n required: false,\n },\n vmId: {\n type: String,\n required: false,\n },\n defaultValue: {\n type: String,\n required: false,\n },\n placeholder: {\n type: String,\n required: false,\n },\n config: {\n type: Object,\n required: false,\n default() {\n return {\n allowInput: true,\n altInput: true,\n dateFormat: \"m-d-Y\",\n altFormat: \"m-d-Y\",\n disableMobile: true,\n defaultDate: \"\",\n onOpen: () => {},\n onClose: () => {},\n };\n },\n },\n },\n components: {\n \"flat-pickr\": FlatPickr,\n },\n // @ts-expect-error\n setup(props: Props, context: SetupContext) {\n const flatPickrEl = ref<any>(null); // eslint-disable-line @typescript-eslint/no-explicit-any\n const pageStore = usePageStore();\n const tempValue = ref<string>(\"\");\n const altInputValue = ref<string>(\"\");\n const datepickerToggle = ref<Element>(null!);\n\n const effectiveConfig = computed(() => {\n const getValueVal = getValue();\n return {\n ...props.config,\n wrap: true,\n clickOpens: false,\n defaultDate: stringCoalesce(...(Array.isArray(getValueVal) ? getValueVal : [getValueVal || \"\"]), props.defaultValue, props.config.defaultDate),\n onOpen: (_1: string[], selectedDate: string, flatpickrInstance: typeof flatPickr.value) => {\n if (props.config.onOpen) {\n props.config.onOpen();\n }\n flatpickrInstance.jumpToDate(selectedDate || undefined);\n datepickerToggle.value.setAttribute(\"aria-expanded\", \"true\");\n },\n onClose: (_1: string[], selectedDate: string, _flatpickrInstance: typeof flatPickr.value) => {\n altInputValue.value = selectedDate;\n datepickerToggle.value.setAttribute(\"aria-expanded\", \"false\");\n (datepickerToggle.value as HTMLElement).focus();\n if (props.config.onClose) {\n props.config.onClose();\n }\n },\n };\n });\n const flatPickr = computed(() => {\n return flatPickrEl.value ? flatPickrEl.value.fp : null;\n });\n\n const getValue = () => {\n if (props.modelValue !== undefined) {\n return props.modelValue;\n } else if (props.vmId !== undefined) {\n return pageStore.getValueByVmId(props.vmId);\n }\n };\n const setPlaceholder = () => {\n const effectivePlaceholder = stringCoalesce(props.defaultValue, props.placeholder, null);\n if (effectivePlaceholder != null) {\n flatPickr.value._input.setAttribute(\"placeholder\", effectivePlaceholder);\n } else {\n flatPickr.value._input.removeAttribute(\"placeholder\");\n }\n if (!isNullOrWhitespace(props.defaultValue)) {\n flatPickr.value._input.classList.add(\"dfDefaultValue\");\n } else {\n flatPickr.value._input.classList.remove(\"dfDefaultValue\");\n }\n };\n const emitValue = () => {\n if (context.attrs.onHtmlInput) {\n context.emit(\"html-input\", { target: flatPickr.value._input } as Event);\n } else {\n context.emit(\"update:modelValue\", flatPickr.value._input.value);\n }\n };\n const setAltInputValue = (event: KeyboardEvent) => {\n altInputValue.value = (event.target as HTMLInputElement).value;\n if (!altInputValue.value.length) {\n flatPickr.value.clear();\n }\n };\n const setDate = () => {\n if (altInputValue.value.length === 10 && flatPickr.value.parseDate(altInputValue.value) !== undefined) {\n flatPickr.value.setDate(altInputValue.value);\n }\n };\n const openDatepicker = async () => {\n if (!flatPickr.value.isOpen) {\n await flatPickr.value.open();\n } else {\n flatPickr.value.close();\n }\n const elementToFocus = flatPickr.value.calendarContainer.querySelector(\".flatpickr-day.selected\") || flatPickr.value.calendarContainer.querySelector(\".flatpickr-day.today\");\n if (elementToFocus?.classList.contains(\"selected\")) {\n elementToFocus.setAttribute(\"aria-description\", \"selected\");\n }\n elementToFocus.focus();\n };\n const calendarKeydownHandler = async (event: KeyboardEvent) => {\n /* Key event.key\n * Backspace \"Backspace\"\n * Tab \"Tab\"\n * Enter \"Enter\"\n * Escape \"Escape\"\n * Spacebar \" \"\n * Page Up \"PageUp\"\n * Page Down \"PageDown\"\n * End \"End\"\n * Home \"Home\"\n * Arrow Left \"ArrowLeft\"\n * Arrow Up \"ArrowUp\"\n * Arrow Right \"ArrowRight\"\n * Arrow Down \"ArrowDown\"\n * Delete \"Delete\"\n */\n if ([\"Backspace\", \"Tab\", \"Enter\", \"Escape\", \" \", \"PageUp\", \"PageDown\", \"End\", \"Home\", \"ArrowLeft\", \"ArrowUp\", \"ArrowRight\", \"ArrowDown\", \"Delete\"].includes(event.key)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n const momentDate = moment({\n year: flatPickr.value.currentYear,\n month: flatPickr.value.currentMonth,\n day: parseInt(document.activeElement?.textContent || \"\"),\n });\n let ariaLabel;\n\n switch (event.key) {\n // Close datepicker by ESCAPE or TAB key\n case \"Escape\":\n case \"Tab\": {\n if (document.activeElement != flatPickr.value._input) {\n flatPickr.value._input.focus();\n }\n flatPickr.value.close();\n break;\n }\n // Clear datepicker value by BACKSPACE or DELETE key\n case \"Backspace\":\n case \"Delete\": {\n flatPickr.value.clear();\n await new Promise(resolve => setTimeout(resolve, 0));\n flatPickr.value.todayDateElem.focus();\n break;\n }\n // Set date by ENTER or SPACEBAR key\n case \"Enter\":\n case \" \": {\n flatPickr.value.setDate(new Date(flatPickr.value.currentYear, flatPickr.value.currentMonth, parseInt(document.activeElement?.textContent || \"\")));\n if (event.key == \"Enter\") {\n flatPickr.value._input.focus();\n flatPickr.value.close();\n } else {\n flatPickr.value.selectedDateElem.setAttribute(\"aria-description\", \"selected\");\n flatPickr.value.selectedDateElem.focus();\n }\n break;\n }\n // Navigate month or year by PAGEUP or PAGEDOWN key\n case \"PageUp\":\n case \"PageDown\": {\n const isPrevious = event.key == \"PageUp\";\n ariaLabel = flatPickr.value.formatDate(momentDate[isPrevious ? \"subtract\" : \"add\"](1, event.shiftKey ? \"years\" : \"months\").toDate(), flatPickr.value.config.ariaDateFormat);\n flatPickr.value[event.shiftKey ? \"changeYear\" : \"changeMonth\"]((event.shiftKey ? flatPickr.value.currentYear : 0) + (isPrevious ? -1 : 1));\n flatPickr.value.calendarContainer.querySelector(`.flatpickr-day[aria-label=\"${ariaLabel}\"]`).focus();\n break;\n }\n // Select the first or last day of the week by HOME or END key\n case \"Home\":\n case \"End\": {\n const isFirstDayofWeek = event.key == \"Home\";\n ariaLabel = flatPickr.value.formatDate(momentDate[isFirstDayofWeek ? \"startOf\" : \"endOf\"](\"week\").toDate(), flatPickr.value.config.ariaDateFormat);\n flatPickr.value.calendarContainer.querySelector(`.flatpickr-day[aria-label=\"${ariaLabel}\"]`).focus();\n break;\n }\n // Navigate date daily by ARROW LEFT or RIGHT key\n case \"ArrowLeft\":\n case \"ArrowRight\": {\n const isPreviousDay = event.key == \"ArrowLeft\";\n const updatedDayDate = momentDate[isPreviousDay ? \"subtract\" : \"add\"](1, \"days\").toDate();\n ariaLabel = flatPickr.value.formatDate(updatedDayDate, flatPickr.value.config.ariaDateFormat);\n\n flatPickr.value.jumpToDate(updatedDayDate);\n flatPickr.value.calendarContainer.querySelector(`.flatpickr-day[aria-label=\"${ariaLabel}\"]`).focus();\n break;\n }\n // Navigate date weekly by ARROW UP or DOWN key\n case \"ArrowUp\":\n case \"ArrowDown\": {\n const isPreviousWeek = event.key == \"ArrowUp\";\n const updatedWeekDate = momentDate[isPreviousWeek ? \"subtract\" : \"add\"](1, \"weeks\").toDate();\n ariaLabel = flatPickr.value.formatDate(updatedWeekDate, flatPickr.value.config.ariaDateFormat);\n\n flatPickr.value.jumpToDate(updatedWeekDate);\n flatPickr.value.calendarContainer.querySelector(`.flatpickr-day[aria-label=\"${ariaLabel}\"]`).focus();\n break;\n }\n default:\n break;\n }\n };\n\n onMounted(() => {\n if (flatPickr.value !== undefined) {\n flatPickr.value._input.addEventListener(\n \"blur\",\n () => {\n setDate();\n emitValue();\n },\n true,\n );\n flatPickr.value._input.addEventListener(\"input\", (event: KeyboardEvent) => setAltInputValue(event));\n flatPickr.value.daysContainer.addEventListener(\"keydown\", calendarKeydownHandler);\n\n flatPickr.value._input.setAttribute(\"aria-labelledby\", props.ariaLabelledBy || context.attrs.id);\n flatPickr.value._input.setAttribute(\"aria-required\", props.ariaRequired);\n flatPickr.value._input.setAttribute(\"aria-describedby\", props.ariaDescribedBy);\n\n flatPickr.value.calendarContainer.setAttribute(\"role\", \"dialog\");\n flatPickr.value.calendarContainer.setAttribute(\"aria-modal\", \"true\");\n flatPickr.value.calendarContainer.setAttribute(\"aria-label\", \"Choose Date\");\n flatPickr.value.calendarContainer.setAttribute(\"aria-description\", \"Cursor keys can navigate dates\");\n\n if (context.attrs.id) {\n flatPickr.value._input.setAttribute(\"id\", context.attrs.id);\n flatPickr.value.element.removeAttribute(\"id\");\n }\n setPlaceholder();\n }\n });\n\n watch(\n () => props.placeholder,\n () => {\n setPlaceholder();\n },\n );\n watch(\n () => props.defaultValue,\n () => {\n setPlaceholder();\n },\n );\n watch(\n () => tempValue.value,\n tempVal => {\n if (props.modelValue != tempVal) {\n context.emit(\"update:modelValue\", tempVal);\n }\n },\n );\n watch(\n () => props.modelValue,\n val => {\n if (tempValue.value != val) {\n tempValue.value = val;\n }\n },\n );\n watch(\n () => altInputValue.value,\n () => setDate(),\n );\n watch(\n () => props.ariaDescribedBy,\n () => flatPickr.value._input.setAttribute(\"aria-describedby\", props.ariaDescribedBy),\n );\n\n return {\n // Ref\n datepickerToggle,\n\n // States\n tempValue,\n\n // Computed\n effectiveConfig,\n flatPickr,\n\n // Methods\n emitValue,\n openDatepicker,\n\n // Ref\n flatPickrEl,\n };\n },\n});\n</script>\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-5.use[1]!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/less-loader/dist/cjs.js??clonedRuleSet-5.use[2]!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./DatePicker.3.vue?vue&type=style&index=0&id=11f759cf&lang=less&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-5.use[1]!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/less-loader/dist/cjs.js??clonedRuleSet-5.use[2]!../../node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./DatePicker.3.vue?vue&type=style&index=0&id=11f759cf&lang=less&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render } from \"./DatePicker.3.vue?vue&type=template&id=11f759cf&scoped=true&ts=true\"\nimport script from \"./DatePicker.3.vue?vue&type=script&lang=ts\"\nexport * from \"./DatePicker.3.vue?vue&type=script&lang=ts\"\n\nimport \"./DatePicker.3.vue?vue&type=style&index=0&id=11f759cf&lang=less&scoped=true\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-11f759cf\"]])\n\nexport default __exports__"],"names":["BuiltinExportSchemas","static","DocumentTypeEnum","FormAccessPurpose","ReadonlyAndDelayedOkay","VerificationStatus","arrays","flat","reduce","acc","val","concat","DfParseFloatWithoutNan","value","result","toString","replace","parseFloat","DfParseFloat","isNaN","parseBool","valueStr","toLowerCase","resolveHtmlContentCalculations","calculations","content","parsedDom","parseStringToDom","HtmlProcessDeeperMatchedNodes","body","element","calculation","resolveFunc","calculationElement","parent","parentElement","notIterable","text","length","childWrapper","document","createElement","append","children","walkUpdateNodeTextContent","replaceChild","dataset","isIterable","iterables","JSON","parse","unshift","stringify","conditional-block","conditionalElement","replaceWith","querySelector","outerHTML","nodeName","toLocaleLowerCase","HtmlResolveCalculationElement","isNullOrWhitespace","id","find","calc","querySelectorAll","processFunc","iterableElement","cartesianSets","a","b","flatMap","d","map","e","cartesian","forEach","set","clonedElement","cloneNode","isIterables","i","Array","isArray","elem","HtmlResolveIterableCalculations","innerHTML","node","selector","func","matches","toUpperCase","v","trim","toUpperCaseList","list","AddressDef","BaseElementDef","constructor","elementData","definitionData","calculationContext","super","this","typeName","errorMessages$","BehaviorSubject","effectiveLabel$","_effectiveLabel$","definition","settings","labelCalculationId","resolveCalculation","pipe","subscribe","label","effectiveShortLabel$","shortLabel","from","setData","data","excludeChildren","setKey","getData","verified","verificationResponse","currentAddressData","verifyAddress","address","response","invokeAsync","setVerified","AddressVerificationEnum","Verify","Result","Code","Success","Messages","next","markEdited","state","verified$","effectiveLabelText$","combineLatest","s","l","stringCoalesce","valid$","edited$","valid","edited","Off","errors$","errorMessages","validationMessages","_resolveCalculation","fullType","comments","history","issues","rootElement","dependenciesIndex","dependencies","foreachCounts","typeNameMatch","exec","Error","stub","fixedCalculationResults","fixedCalculationResults$","_children$","_edited$","initChildren","baseLink","undefined","isBase","isFocusable","customErrorIds","_customErrorIds$","name","saveKey","getValue","childDefinition","index","childData","buildElement","legacyCalc","debug","then","module","switchMap","type","adjuster","formNode","getRoot","url","urlFetcher","formId","postData","formName","formVersion","formHash","segment","skipForm","noWrite","asAdmin","adminReview","inPreview","adminPreview","testMode","target","targetPathArray","getElementPathIndexFromRoot","resp","fetchXsrf","method","headers","outerResult","json","resolveCalculationPromiseBool","first","toPromise","resolveCalculationPromise","getVirtualContext$","getCalculation","fallback","effectiveExtraData$","fallbackCalculation","visible$","effectiveHiddenValueMode","hiddenValueMode","HiddenValueMode","Inherit","Blank","vmId","generateGuid","child","item","c","getCustomPageNav","filter","hasCustomPageNav","getLabel","displayLabel","adminDisplayLabel","getElementByVmId","some","getElementPathByVmId","el","push","indexOf","reverse","getElementsByFilter2","getElementsByFilter","_getElementsByFilter","apply","getElementsById$","contextVmId","_getElementsById$","observable","nonObservable","flattenArrays","getSegmentView","triggerKey","SegmentView","getValuesById$","elements","effectiveValueList$","arraysOfValues","includeUnedited","_baseElementValid$","true","false","finalResult","_validateChild$","validateChild","results","every","share","resetOnRefCountZero","connector","ReplaySubject","customErrorIds$","join","firstInvalidElement","thisValid","thisHasCustomErrors","Promise","all","childFirst","firstFocusableElement","descendentsErrors","totalErrors","thisErrors","errors","_validateUneditedChild$","_validateUnedited$","_maskedValue$","_effectiveLabelText$","markElementAsBase","linkBaseElement","baseElement","baseChanges","diffBaseElement","matchedElement","j","baseChangeType","baseChangeRecursive","changeType","compare","prefix","baseSettings","currentSettings","compareKey","prefixedKey","baseSetting","currentSetting","baseSettingA","currentSettingA","key","Math","max","baseSettingsA","currentSettingsA","distinct","Object","keys","splitValidationList","match","buildFullMatcher","matcher","matchList","v2","dataMatch","dataList","convert","matcher2","numberMatch","dataNumber","valueMatch","matchType","isValueSet","values","test","formatIfOtherMessage","rules","otherValue","ruleKey","message","matchLabels","otherMatch","m","prototype","wrapped","BaseControlDef","_value","getValueFromDependencies","_value$","_hasValue","hasValue","_hasValue$","clientValidateRules$","clientValidateRules","autoEdit","indexList","valueSet","_baseControlValid$","hasErrors$","superValid","validateUnedited","setValue","value$","valueList$","effectiveValue$","hasValue$","defaultValue$","defaultValueCalculationId","defaultV","defaultValue","_effectiveValueList$","pipes","EnteredValue","DefaultValue","source$","sourceTransformed$","effectiveValueList","rules$","assign","_baseControlErrors$","result$s","ruleKeys","simpleValidation","ifOtherMatchesValidation","otherElementResult$","ifOtherMatchesSubject","otherElementResult","valueList","isMatch","matchValues","counts","others","other","otherValues","matchIndex","dataIndex","count","parseInt","otherLabels","elementsIds","values$","fileSize$","fileSize","maxSize","fileName$","fileName","fileExtensionsStr","fileExtensions","split","upperFileName","endsWith","minLength","maxLength","regex","RegExp","isICustomConfirmElement","input","hasCustomConfirmComponent","getCustomConfirmComponent","isIBlockSubmitElement","blockSubmit$","isILockableElement","getLockActions","isIPostSubmitRedirectElement","getPostSubmitRedirect","isIShouldSkipCompletionElement","shouldSkipCompletion","isIShouldSkipConfirmElement","shouldSkipConfirm","shouldSkipConfirm$","isICustomSubmitTextElement","submitText","submitText$","isICustomReceiptElement","isCustomReceiptContent","isICustomViewElement","isCustomViewType","ContentTemplatePageDef","DisplayElementDef","DisplayIfOtherHasValueDef","calculationId","legacyCalculation","valuesToMatch","slice","valueToMatch","upperCaseMatches","otherElementId","valueLists","upperValueList","invert","visible","ExtraDataShimDef","extraShimValue$","TYPE_NAME","FileDef","isFileUpload","uploadStatus","_setFileData","setFileData","fileDependencies","valueId","contentType","removeExisting","k","newK","substring","isFileDef","ForEachDef","topIndex","childCounts","childrenCount","min","fill","r","generateItem","addItem","shift","setItems","setCalculationItems","ids","manualCounter","isManualChild","includes","childId","idsToAdd","visibleChildrenLength","removedChild","childIndex","childIndex$","sort","addRemoveItems","manualChild","splice","items","ForEachDefItem","_addItem","removeItem","calculatedItems","x","childItem","thisValid$","walk","context2","context","unwrappedResults","observableResults","nonObservableResults","ForEachChildIdDef","ForEachChildIndexDef","setForEachItem","foreachItem","foreachItem$","FormDef","externalData","can","viewTypes","status","appendExternalData","entries","locks","lock","controls","control","SignatureDef","isSignature","isSigned","isSigned$","requireUserVerification","rUV","hasCustomSubmitText$","isSignatureDef","StateFormDef","_status$","asReviewer","AdminView","UserView","AdminWorkflowAssign","UserAssign","AdminWorkflowEdit","UserEdit","AdminWorkflowUnlock","UserUnlock","_can","activatedDate","completedDate","isAssignedToOtherUser","setStatus","clientStatus$","TextboxDef","baseList","nonLiveTextboxes","forceNonLive","debounceExceptFirst","debounceValueTime","maskedValue$","maskValue","effectiveOutputMask","time","debounce","timer","outputMask","cha","CalculatedDef","_valueList$","ValidationDef","customErrorId","associatedElements","serverSide","errorIds","errorIndex","errorMessage","CheckGroupDef","effectiveItems$","dV","eI","layout","buildItems","item$s","label$","valueCalculationId","effectiveValue","ContactPageTemplateDef","ContentDef","effectiveHtmlContent$","_effectiveHtmlContent$","htmlContent","htmlCalculations","htmlCalculations$","htmlCalculation","resolvedHtmlContent","DatePickerDef","mapping","states","provinces","countries","resolveDatasourceItemsCache","DropDownListDef","resolveItems","groups","texts","group","itemDatasourceAsync","datasourceTable","cacheKey","Text","Group","Value","console","log","itemStock","standardDropdownList","fetch","throwIfNonSuccessStatus","standardDropdownLists","standardDropdownListsMapping","items$","listDataType","listItems","group$","groupCalculationId","legacyGroupCalculation","text$","textCalculationId","legacyTextCalculation","legacyValueCalculation","isObservable","sortedItems$","sortList","aGroupName","bGroupName","aNumber","DfStrictParseFloat","bNumber","aDate","tryParseDate","bDate","newItems","groupedItems$","sortedItems","getCaseInsensitiveNameProperty","obj","ungroupedItems$","placeholderText","FormAlternative","LandingPageTemplateDef","allowAnonymous","PageDef","permitLaterPages$","mustBeCompletedToProceed","isEnabled$","isVisible","mode","_isDisplay","isEditable","isViewOnly","pageSegment","pageModel","effectiveStatuses","currentStatus","VisibleEnum","Edit","Display","PdfAlternativeDef","fileUrl","RadioGroupDef","RegionDef","RequireValueIfOtherHasValueDef","SectionDef","ReceiptContentDef","conditionalCalculationId","legacyConditionalCalculation","resolve","conditionalItems","conditionalValuesToMatch","conditionalInvert","receiptContents","htmlContentCalculationId","legacyHtmlContentCalculation","DisplayStampedPdfDef","showByDefault","showByDefaultCalculatedId","DisplayGeneratedPdfDef","FileDocumentDef","fileUploadId","TrueFalseCalculated","True","False","CompletionRedirectDef","isPostSubmitRedirect","skipConfirmation","skipCompletion","redirectUrlCalculationId","legacyRedirectUrlCalculation","redirectUrl","DEFAULT_PAYMENT_SUBMIT_TEXT","AbstractPayDef","getCalculatedItems$","quantity","unitPrice","skip","paymentSubmitButtonTextCalculationId","paymentSubmitButtonText","getCalculatedItems","itemIndex","itemConstants","itemItems","description","sku","rV","calcSubject","resolvedCalc","inputItems","valueIndex","CommonCheckoutDef","async","unlock","LexmarkIntegrationDef","CompletionEmailerDef","SubmitTriggerDef","submitButtons$","mapText","trigger","order","coalesce","array","cur","buttonText","calculationIds","calcId","_submitButtons$","observables","buttonTextCalculationId","Observable","displayCalculationId","WorkflowSwitchDef","_branchSubjects","setTimeout","initBranchSubjects","_currentBranch","branchId","branch","branches","branchSubject","CaptchaControlDef","captchaToken","hasCaptchaToken$","isSegment","setCaptchaToken","token","behaviorId","behavior","component","markRaw","default","callback","CaptchaBehaviorDef","DataTableDef","setSelectedRows","rows","selectedRows","selectedRows$","getSelectedRows","exportRows","exportRowsData","exportType","exportsAll","dataCount","dataSourceCalculationId","makeBackendFunc","otherData$","exportRows$","rootCalc","rows$","skip$","top$","sort$","top","SkipRows","OnlyFirstRows","Sort","otherData","pagedRows","unpagedRowCount","Key","DataTableSelectedColumnDataDef","datatable","colIndex","tableColumns","findIndex","datasourceColumn","column","personRequestToSettingMap","AddressLine1","AddressLine2","City","DateOfBirth","FirstName","LastName","Phone","Ssn","State","ZipCode","Email","IdVerificationDef","isPersonalIdVerification","IdVerificationTypeEnum","PersonalIdentityVerification","cacheKey$","verificationResponseRaw","_verified","verifyIdentity","error$s","element$","calculatedElement$s","silent","_verified$","_","personRequestData","requestProp","settingProp","settingId","PersonalVerificationSummary","PersonRequest","currentVerifiedState","valueIds","hasValues","responseSummary","DocumentVerificationSummary","responseValueIds","Front","ValueId","Back","arrayEqual","documentType","DocumentVerificationTypeEnum","IdDriverLicense","calculatedElementsValid$","valids","superValid$","FormAlternativeDef","hasServiceWorker","isOfflineAndUsingServiceWorker","navigator","onLine","statusText","isUsingServiceWorker","serviceWorker","ready","FormSubmitResultEnum","toObserverComputed","subject","watch","Function","immediate","onTrack","onTrigger","usePageStore","defineStore","ref","page","formData","baseFormData","formDataLoading","adminEditElementIds","canAddComments","canChangeStatus","canUpgradeDefinition","canReplyToComments","canAdminEditData","anonymousUser","canDeleteSubmissions","canDeleteReviewComments","showAdminDiff","unsavedFormId","pendingActions","Set","isSaveDisabledOnSectionChange","schemaLabelMappingPromise","fakeFormId","pendingAddressVerifications","_getElementByVmId","_getChildren","currentElement","baseChildren","currentChildren","currentChild","baseChild","_adminPreview","_showChanges","memorizeState","memorizeInState","pages$","_getPages","status$","segment$","_getVisiblePages$","pages","aE","aS","bS","_getVisiblePages","segmentsF","_completedSegments","segments","_visibleSegments","_availableSegments","formDataTyped","computed","baseFormDataTyped","getElementPathString","elementPath","elementPathElements","_calculateElementPath","directLinkTemplates","isWorkflow","allFileElements","allElementsWithFileComments","files","allElementsWithHistory","allHistoryEntries","h","allElementsWithIssues","allIssuesEntries","hasIssues","initializedSegments","_initializedSegments","uninitializedSegments","_uninitializedSegments","visibleSegments","availableSegments","unlockableSegments","_unlockableSegments","completedSegments","activeSegments","_activeSegments","hasCompletedSegmentsToReturnTo","allowReturning","_hasCompletedSegmentsToReturnTo","possibleStagesToReturn","_possibleStagesToReturn","showChanges","hasChanges","isSubmittable$","isOffline","StandardFormStatus","Returned","defSettings","availability","AvailabilityType","Online","Offline","Scheduled","now","Date","zonedToJsTime","date","startDate","effectiveStartDate","endDate","effectiveDeadline","endUserStatuses","formTenantCode","formTenant","title","offlineContent","mustLogin","formSettings","isPageViewOnly","pageNumber","isPageObjViewOnly","isPageEditable","isPageObjEditable","isPageObjControlsViewOnly$","ignoreSegment","currentStatusLabel","adminText","statusLabel","status2","isClientValidationOnly","possibleStatuses","Deleted","visiblePages","visiblePages$","enabledPages$","enabled$","isEnabled","r2","stop","enabledPagesPromise","pendingActionPromise","clearAdminEditing","setSegment","segmentI","setFileInfoByVmId","params","_formDataIsLoading","_formDataLoaded","_setFormId","_setAllPagesStatus","p","_addPendingAction","promise","add","_removePendingAction","delete","_addComment","comment","_setCommentVisibility","commentId","visibleToSubmitter","_makeUneditable","_setSchemaLabelMapping","_trackAction","remove","_formPageDataUpdated","availableSegmentsI","selectedSegment","_setPageStatus","formIdPromise","getOrCreateFormId","saveFormPage","invokeForm","targetPath","formID","mainStore","useMainStore","getUrl","areaCode","credentials","responseData","Form","isSaveAndExit","isSubmit","hasSession","isFeatureFlagActiveAsync","KnownFeatureFlags","SaveOnlyEditable","Id","form","formDataI","pagesI","visiblePagesI","pageObj","saveChildIndex","FormModel","sourceStatus","submitType","formDataR","_loadFormData","baseDefinition","basePage","bulkInvoke","BulkInvoke","NonLiveTextboxes","buildRoot","bind","tenantCode","timeZone","getTimeZone","schemaVersion","formSchemaVersion","baseRootElement","getValueByVmId","getChildrenByVmId","isAdminEditingById","isPageObjViewOnly$","setAdminEditing","enabled","setValueByVmId","setFileStatusByVmId","addForEachItem","removeForEachItem","forEachVmId","setForEachChildren","foreach","toggleAdminDiff","_formDataUpdated","uploadExternalFile","newFile","isComment","formIdI","uploadData","FormData","isThreat","uploadUrl","successCallback","size","failCallback","tooLarge","offlineUpload","filereader","FileReader","readAsText","addEventListener","uploadOfflineUrl","mimeType","err","uploadResponse","ThreatDetected","submitForm","buildOfflineResponse","redirectUrls","formValid","SubmittedWithRedirect","Submitted","ValidationFailed","RedirectUrl","selfAssignSegment","verifyData","FailureMessages","saveAllAdminEdits","changes","path","change","deleteDraft","deleteDraftFunc","returnDraft","Comment","success","messages","resendEmail","eventType","workflowManualOverride","workflowEl","loadFormData","areaUrlSlug","urlSlug","fetchPageDef","draftPageUrl","pagePromise","pageDefPromise","pageResponse","pageJson","pageDefJson","loadAdminPreviewFormData","baseForm","loadAdminReviewFormData","preloadedData","forceFresh","tenantUrlSlug","reviewData","getWorkflowManualOverrideGetPossibleUpgradeRevisions","revisions","Revisions","getSchemaLabelMapping","setCommentVisibility","elementId","addCommentAndChangeStatus","fileIds","fileNames","fileContentTypes","userName","textEmpty","statusEmpty","filesEmpty","statusLabelR","returned","rejected","deleted","specialStatus","alert","confirm","responseJson","accessible","editable","fileId","filename","___CSS_LOADER_EXPORT___","class","defineComponent","props","modelValue","String","required","ariaLabelledBy","ariaRequired","Boolean","ariaDescribedBy","placeholder","config","allowInput","altInput","dateFormat","altFormat","disableMobile","defaultDate","onOpen","onClose","components","FlatPickr","setup","flatPickrEl","pageStore","tempValue","altInputValue","datepickerToggle","effectiveConfig","getValueVal","wrap","clickOpens","_1","selectedDate","flatpickrInstance","jumpToDate","setAttribute","_flatpickrInstance","focus","flatPickr","fp","setPlaceholder","effectivePlaceholder","_input","removeAttribute","classList","emitValue","attrs","onHtmlInput","emit","setDate","parseDate","calendarKeydownHandler","event","preventDefault","stopImmediatePropagation","momentDate","moment","year","currentYear","month","currentMonth","day","activeElement","textContent","ariaLabel","close","clear","todayDateElem","selectedDateElem","isPrevious","formatDate","shiftKey","toDate","ariaDateFormat","calendarContainer","isFirstDayofWeek","updatedDayDate","updatedWeekDate","onMounted","setAltInputValue","daysContainer","tempVal","openDatepicker","isOpen","open","elementToFocus","contains","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_createElementBlock","_hoisted_1","_createVNode","_component_flat_pickr","_mergeProps","_ctx","_cache","$event","$attrs","onOnClose","onChange","_createElementVNode","_hoisted_2","onClick","args"],"sourceRoot":""}